@geotrekce/geotrek-rando-widget 0.2.5 → 0.2.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.
- package/dist/cjs/geotrek-rando-widget.cjs.js +1 -1
- package/dist/cjs/geotrek-rando-widget.cjs.js.br +0 -0
- package/dist/cjs/geotrek-rando-widget.cjs.js.gz +0 -0
- package/dist/cjs/grw-app.cjs.entry.js +13 -3
- package/dist/cjs/grw-app.cjs.entry.js.br +0 -0
- package/dist/cjs/grw-app.cjs.entry.js.gz +0 -0
- package/dist/cjs/grw-app.cjs.entry.js.map +1 -1
- package/dist/cjs/grw-filter_7.cjs.entry.js +10 -11
- package/dist/cjs/grw-filter_7.cjs.entry.js.br +0 -0
- package/dist/cjs/grw-filter_7.cjs.entry.js.gz +0 -0
- package/dist/cjs/grw-filter_7.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js.br +0 -0
- package/dist/cjs/loader.cjs.js.gz +0 -0
- package/dist/collection/components/grw-app/grw-app.css +11 -2
- package/dist/collection/components/grw-app/grw-app.css.br +0 -0
- package/dist/collection/components/grw-app/grw-app.css.gz +0 -0
- package/dist/collection/components/grw-app/grw-app.js +48 -2
- package/dist/collection/components/grw-app/grw-app.js.br +0 -0
- package/dist/collection/components/grw-app/grw-app.js.gz +0 -0
- package/dist/collection/components/grw-app/grw-app.js.map +1 -1
- package/dist/collection/components/grw-map/grw-map.js +8 -9
- package/dist/collection/components/grw-map/grw-map.js.br +0 -0
- package/dist/collection/components/grw-map/grw-map.js.gz +0 -0
- package/dist/collection/components/grw-map/grw-map.js.map +1 -1
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.css +3 -2
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.css.br +0 -0
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.css.gz +0 -0
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.js +1 -1
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.br +0 -0
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.gz +0 -0
- package/dist/collection/components/grw-trek-detail/grw-trek-detail.js.map +1 -1
- package/dist/collection/stories/App.js +4 -0
- package/dist/collection/stories/App.js.br +0 -0
- package/dist/collection/stories/App.js.gz +0 -0
- package/dist/collection/stories/App.stories.js +2 -0
- package/dist/collection/stories/App.stories.js.br +0 -0
- package/dist/collection/stories/App.stories.js.gz +0 -0
- package/dist/esm/geotrek-rando-widget.js +1 -1
- package/dist/esm/geotrek-rando-widget.js.br +0 -0
- package/dist/esm/geotrek-rando-widget.js.gz +0 -0
- package/dist/esm/grw-app.entry.js +13 -3
- package/dist/esm/grw-app.entry.js.br +0 -0
- package/dist/esm/grw-app.entry.js.gz +0 -0
- package/dist/esm/grw-app.entry.js.map +1 -1
- package/dist/esm/grw-filter_7.entry.js +10 -11
- package/dist/esm/grw-filter_7.entry.js.br +0 -0
- package/dist/esm/grw-filter_7.entry.js.gz +0 -0
- package/dist/esm/grw-filter_7.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loader.js.br +0 -0
- package/dist/esm/loader.js.gz +0 -0
- package/dist/esm-es5/geotrek-rando-widget.js +1 -1
- package/dist/esm-es5/geotrek-rando-widget.js.br +0 -0
- package/dist/esm-es5/geotrek-rando-widget.js.gz +0 -0
- package/dist/esm-es5/geotrek-rando-widget.js.map +1 -1
- package/dist/esm-es5/grw-app.entry.js +1 -1
- package/dist/esm-es5/grw-app.entry.js.br +0 -0
- package/dist/esm-es5/grw-app.entry.js.gz +0 -0
- package/dist/esm-es5/grw-app.entry.js.map +1 -1
- package/dist/esm-es5/grw-filter_7.entry.js +1 -1
- package/dist/esm-es5/grw-filter_7.entry.js.br +0 -0
- package/dist/esm-es5/grw-filter_7.entry.js.gz +0 -0
- package/dist/esm-es5/grw-filter_7.entry.js.map +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.br +0 -0
- package/dist/esm-es5/loader.js.gz +0 -0
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/geotrek-rando-widget/geotrek-rando-widget.css +1 -1
- package/dist/geotrek-rando-widget/geotrek-rando-widget.css.br +0 -0
- package/dist/geotrek-rando-widget/geotrek-rando-widget.css.gz +0 -0
- package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js +1 -1
- package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.br +0 -0
- package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.gz +0 -0
- package/dist/geotrek-rando-widget/geotrek-rando-widget.esm.js.map +1 -1
- package/dist/geotrek-rando-widget/p-4bb30f7a.entry.js +2 -0
- package/dist/geotrek-rando-widget/p-4bb30f7a.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-4bb30f7a.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-4bb30f7a.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/{p-c74b5417.entry.js → p-76645b38.entry.js} +2 -2
- package/dist/geotrek-rando-widget/p-76645b38.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/{p-c74b5417.entry.js.gz → p-76645b38.entry.js.gz} +0 -0
- package/dist/geotrek-rando-widget/{p-c74b5417.entry.js.map → p-76645b38.entry.js.map} +1 -1
- package/dist/geotrek-rando-widget/{p-aefb821d.system.entry.js → p-946bfe33.system.entry.js} +2 -2
- package/dist/geotrek-rando-widget/p-946bfe33.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/{p-aefb821d.system.entry.js.gz → p-946bfe33.system.entry.js.gz} +0 -0
- package/dist/geotrek-rando-widget/{p-aefb821d.system.entry.js.map → p-946bfe33.system.entry.js.map} +1 -1
- package/dist/geotrek-rando-widget/p-b7bd61e5.system.entry.js +2 -0
- package/dist/geotrek-rando-widget/p-b7bd61e5.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-b7bd61e5.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-b7bd61e5.system.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/p-ccc3be5e.system.js +1 -1
- package/dist/geotrek-rando-widget/p-ccc3be5e.system.js.br +0 -0
- package/dist/geotrek-rando-widget/p-ccc3be5e.system.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-ccc3be5e.system.js.map +1 -1
- package/dist/types/components/grw-app/grw-app.d.ts +3 -1
- package/dist/types/components/grw-map/grw-map.d.ts +2 -0
- package/dist/types/components.d.ts +4 -0
- package/package.json +1 -1
- package/readme.md +0 -2
- package/dist/geotrek-rando-widget/p-4a818914.system.entry.js +0 -2
- package/dist/geotrek-rando-widget/p-4a818914.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-4a818914.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-4a818914.system.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-586ce7f8.entry.js +0 -2
- package/dist/geotrek-rando-widget/p-586ce7f8.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-586ce7f8.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-586ce7f8.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-aefb821d.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-c74b5417.entry.js.br +0 -0
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -30,7 +30,7 @@ const patchEsm = () => {
|
|
|
30
30
|
const defineCustomElements = (win, options) => {
|
|
31
31
|
if (typeof window === 'undefined') return Promise.resolve();
|
|
32
32
|
return patchEsm().then(() => {
|
|
33
|
-
return index.bootstrapLazy([["grw-trek-card.cjs",[[1,"grw-trek-card",{"trek":[16],"colorPrimaryApp":[1,"color-primary-app"],"colorOnSurface":[1,"color-on-surface"],"colorSecondaryContainer":[1,"color-secondary-container"],"colorOnSecondaryContainer":[1,"color-on-secondary-container"],"colorSurfaceContainerLow":[1,"color-surface-container-low"],"isLargeView":[4,"is-large-view"],"resetStoreOnDisconnected":[4,"reset-store-on-disconnected"],"currentTrek":[32],"difficulty":[32],"route":[32],"practice":[32],"themes":[32],"departureCity":[32]}]]],["grw-information-desk-detail_3.cjs",[[1,"grw-information-desk-detail",{"informationDesk":[16],"displayShortDescription":[32]}],[1,"grw-poi-detail",{"poi":[16],"displayShortDescription":[32],"displayFullscreen":[32]}],[1,"grw-sensitive-area-detail",{"sensitiveArea":[16]}]]],["grw-filter_7.cjs",[[0,"grw-trek-detail",{"trek":[16],"colorPrimaryApp":[1,"color-primary-app"],"colorOnSurface":[1,"color-on-surface"],"colorPrimaryContainer":[1,"color-primary-container"],"colorOnPrimaryContainer":[1,"color-on-primary-container"],"colorSecondaryContainer":[1,"color-secondary-container"],"colorOnSecondaryContainer":[1,"color-on-secondary-container"],"colorBackground":[1,"color-background"],"resetStoreOnDisconnected":[4,"reset-store-on-disconnected"],"weather":[4],"isLargeView":[4,"is-large-view"],"currentTrek":[32],"difficulty":[32],"route":[32],"practice":[32],"themes":[32],"labels":[32],"sources":[32],"accessibilities":[32],"accessibilityLevel":[32],"displayFullscreen":[32],"cities":[32],"options":[32]}],[1,"grw-treks-list",{"colorPrimaryApp":[1,"color-primary-app"],"colorOnSurface":[1,"color-on-surface"],"colorSecondaryContainer":[1,"color-secondary-container"],"colorOnSecondaryContainer":[1,"color-on-secondary-container"],"colorSurfaceContainerLow":[1,"color-surface-container-low"],"isLargeView":[4,"is-large-view"],"resetStoreOnDisconnected":[4,"reset-store-on-disconnected"],"treksToDisplay":[32]}],[1,"grw-filter",{"filterType":[1,"filter-type"],"filterName":[1,"filter-name"],"filterNameProperty":[1,"filter-name-property"]}],[0,"grw-map",{"urlLayer":[1,"url-layer"],"attribution":[1],"center":[1],"zoom":[2],"colorPrimaryApp":[1,"color-primary-app"],"colorOnSurface":[1,"color-on-surface"],"colorPrimaryContainer":[1,"color-primary-container"],"colorOnPrimaryContainer":[1,"color-on-primary-container"],"colorBackground":[1,"color-background"],"colorTrekLine":[1,"color-trek-line"],"colorDepartureIcon":[1,"color-departure-icon"],"colorArrivalIcon":[1,"color-arrival-icon"],"colorSensitiveArea":[1,"color-sensitive-area"],"colorPoiIcon":[1,"color-poi-icon"],"resetStoreOnDisconnected":[4,"reset-store-on-disconnected"],"isLargeView":[4,"is-large-view"],"mapIsReady":[32]},[[8,"centerOnMap","onCenterOnMap"],[8,"descriptionReferenceIsInViewport","descriptionReferenceIsInViewport"],[8,"parkingIsInViewport","parkingIsInViewport"],[8,"informationDeskIsInViewport","onInformationDesksIsInViewport"],[8,"sensitiveAreaIsInViewport","sensitiveAreaIsInViewport"],[8,"poiIsInViewport","poiIsInViewport"]]],[1,"grw-select-language"],[1,"grw-trek-provider",{"languages":[1],"api":[1],"trekId":[1,"trek-id"]}],[1,"grw-treks-provider",{"languages":[1],"api":[1],"inBbox":[1,"in-bbox"],"cities":[1],"districts":[1],"structures":[1],"themes":[1],"portals":[1],"routes":[1],"practices":[1]}]]],["grw-app.cjs",[[0,"grw-app",{"api":[1],"languages":[1],"inBbox":[1,"in-bbox"],"cities":[1],"districts":[1],"structures":[1],"themes":[1],"portals":[1],"routes":[1],"practices":[1],"urlLayer":[1,"url-layer"],"center":[1],"zoom":[2],"attribution":[1],"linkName":[1,"link-name"],"linkTarget":[1,"link-target"],"weather":[4],"colorPrimaryApp":[1,"color-primary-app"],"colorOnPrimary":[1,"color-on-primary"],"colorSurface":[1,"color-surface"],"colorOnSurface":[1,"color-on-surface"],"colorSurfaceVariant":[1,"color-surface-variant"],"colorOnSurfaceVariant":[1,"color-on-surface-variant"],"colorPrimaryContainer":[1,"color-primary-container"],"colorOnPrimaryContainer":[1,"color-on-primary-container"],"colorSecondaryContainer":[1,"color-secondary-container"],"colorOnSecondaryContainer":[1,"color-on-secondary-container"],"colorBackground":[1,"color-background"],"colorSurfaceContainerHigh":[1,"color-surface-container-high"],"colorSurfaceContainerLow":[1,"color-surface-container-low"],"fabBackgroundColor":[1,"fab-background-color"],"fabColor":[1,"fab-color"],"colorTrekLine":[1,"color-trek-line"],"colorDepartureIcon":[1,"color-departure-icon"],"colorArrivalIcon":[1,"color-arrival-icon"],"colorSensitiveArea":[1,"color-sensitive-area"],"colorPoiIcon":[1,"color-poi-icon"],"showTrek":[32],"showTreksMap":[32],"showTrekMap":[32],"showFilters":[32],"isLargeView":[32],"currentTrekId":[32]},[[8,"trekCardPress","onTrekCardPress"],[9,"resize","onWindowResize"],[8,"centerOnMap","onCenterOnMap"]]]]]], options);
|
|
33
|
+
return index.bootstrapLazy([["grw-trek-card.cjs",[[1,"grw-trek-card",{"trek":[16],"colorPrimaryApp":[1,"color-primary-app"],"colorOnSurface":[1,"color-on-surface"],"colorSecondaryContainer":[1,"color-secondary-container"],"colorOnSecondaryContainer":[1,"color-on-secondary-container"],"colorSurfaceContainerLow":[1,"color-surface-container-low"],"isLargeView":[4,"is-large-view"],"resetStoreOnDisconnected":[4,"reset-store-on-disconnected"],"currentTrek":[32],"difficulty":[32],"route":[32],"practice":[32],"themes":[32],"departureCity":[32]}]]],["grw-information-desk-detail_3.cjs",[[1,"grw-information-desk-detail",{"informationDesk":[16],"displayShortDescription":[32]}],[1,"grw-poi-detail",{"poi":[16],"displayShortDescription":[32],"displayFullscreen":[32]}],[1,"grw-sensitive-area-detail",{"sensitiveArea":[16]}]]],["grw-filter_7.cjs",[[0,"grw-trek-detail",{"trek":[16],"colorPrimaryApp":[1,"color-primary-app"],"colorOnSurface":[1,"color-on-surface"],"colorPrimaryContainer":[1,"color-primary-container"],"colorOnPrimaryContainer":[1,"color-on-primary-container"],"colorSecondaryContainer":[1,"color-secondary-container"],"colorOnSecondaryContainer":[1,"color-on-secondary-container"],"colorBackground":[1,"color-background"],"resetStoreOnDisconnected":[4,"reset-store-on-disconnected"],"weather":[4],"isLargeView":[4,"is-large-view"],"currentTrek":[32],"difficulty":[32],"route":[32],"practice":[32],"themes":[32],"labels":[32],"sources":[32],"accessibilities":[32],"accessibilityLevel":[32],"displayFullscreen":[32],"cities":[32],"options":[32]}],[1,"grw-treks-list",{"colorPrimaryApp":[1,"color-primary-app"],"colorOnSurface":[1,"color-on-surface"],"colorSecondaryContainer":[1,"color-secondary-container"],"colorOnSecondaryContainer":[1,"color-on-secondary-container"],"colorSurfaceContainerLow":[1,"color-surface-container-low"],"isLargeView":[4,"is-large-view"],"resetStoreOnDisconnected":[4,"reset-store-on-disconnected"],"treksToDisplay":[32]}],[1,"grw-filter",{"filterType":[1,"filter-type"],"filterName":[1,"filter-name"],"filterNameProperty":[1,"filter-name-property"]}],[0,"grw-map",{"urlLayer":[1,"url-layer"],"attribution":[1],"center":[1],"zoom":[2],"colorPrimaryApp":[1,"color-primary-app"],"colorOnSurface":[1,"color-on-surface"],"colorPrimaryContainer":[1,"color-primary-container"],"colorOnPrimaryContainer":[1,"color-on-primary-container"],"colorBackground":[1,"color-background"],"colorTrekLine":[1,"color-trek-line"],"colorDepartureIcon":[1,"color-departure-icon"],"colorArrivalIcon":[1,"color-arrival-icon"],"colorSensitiveArea":[1,"color-sensitive-area"],"colorPoiIcon":[1,"color-poi-icon"],"resetStoreOnDisconnected":[4,"reset-store-on-disconnected"],"isLargeView":[4,"is-large-view"],"mapIsReady":[32]},[[8,"centerOnMap","onCenterOnMap"],[8,"descriptionReferenceIsInViewport","descriptionReferenceIsInViewport"],[8,"parkingIsInViewport","parkingIsInViewport"],[8,"informationDeskIsInViewport","onInformationDesksIsInViewport"],[8,"sensitiveAreaIsInViewport","sensitiveAreaIsInViewport"],[8,"poiIsInViewport","poiIsInViewport"]]],[1,"grw-select-language"],[1,"grw-trek-provider",{"languages":[1],"api":[1],"trekId":[1,"trek-id"]}],[1,"grw-treks-provider",{"languages":[1],"api":[1],"inBbox":[1,"in-bbox"],"cities":[1],"districts":[1],"structures":[1],"themes":[1],"portals":[1],"routes":[1],"practices":[1]}]]],["grw-app.cjs",[[0,"grw-app",{"appWidth":[1,"app-width"],"appHeight":[1,"app-height"],"api":[1],"languages":[1],"inBbox":[1,"in-bbox"],"cities":[1],"districts":[1],"structures":[1],"themes":[1],"portals":[1],"routes":[1],"practices":[1],"urlLayer":[1,"url-layer"],"center":[1],"zoom":[2],"attribution":[1],"linkName":[1,"link-name"],"linkTarget":[1,"link-target"],"weather":[4],"colorPrimaryApp":[1,"color-primary-app"],"colorOnPrimary":[1,"color-on-primary"],"colorSurface":[1,"color-surface"],"colorOnSurface":[1,"color-on-surface"],"colorSurfaceVariant":[1,"color-surface-variant"],"colorOnSurfaceVariant":[1,"color-on-surface-variant"],"colorPrimaryContainer":[1,"color-primary-container"],"colorOnPrimaryContainer":[1,"color-on-primary-container"],"colorSecondaryContainer":[1,"color-secondary-container"],"colorOnSecondaryContainer":[1,"color-on-secondary-container"],"colorBackground":[1,"color-background"],"colorSurfaceContainerHigh":[1,"color-surface-container-high"],"colorSurfaceContainerLow":[1,"color-surface-container-low"],"fabBackgroundColor":[1,"fab-background-color"],"fabColor":[1,"fab-color"],"colorTrekLine":[1,"color-trek-line"],"colorDepartureIcon":[1,"color-departure-icon"],"colorArrivalIcon":[1,"color-arrival-icon"],"colorSensitiveArea":[1,"color-sensitive-area"],"colorPoiIcon":[1,"color-poi-icon"],"showTrek":[32],"showTreksMap":[32],"showTrekMap":[32],"showFilters":[32],"isLargeView":[32],"currentTrekId":[32]},[[8,"trekCardPress","onTrekCardPress"],[9,"resize","onWindowResize"],[8,"centerOnMap","onCenterOnMap"]]]]]], options);
|
|
34
34
|
});
|
|
35
35
|
};
|
|
36
36
|
|
|
Binary file
|
|
Binary file
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
}
|
|
4
4
|
|
|
5
5
|
grw-app {
|
|
6
|
+
display: block;
|
|
6
7
|
position: relative;
|
|
7
|
-
width:
|
|
8
|
-
height:
|
|
8
|
+
width: var(--app-width);
|
|
9
|
+
height: var(--app-height);
|
|
9
10
|
font-family: "Roboto";
|
|
10
11
|
color: var(--color-on-surface);
|
|
11
12
|
overflow: hidden;
|
|
@@ -248,6 +249,14 @@ grw-app {
|
|
|
248
249
|
width: 100%;
|
|
249
250
|
}
|
|
250
251
|
|
|
252
|
+
grw-treks-list {
|
|
253
|
+
max-height: calc(100vh - 64px - 64px);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.trek-detail-container {
|
|
257
|
+
max-height: calc(100vh - 64px - 48px);
|
|
258
|
+
}
|
|
259
|
+
|
|
251
260
|
.app-map-container {
|
|
252
261
|
width: 100%;
|
|
253
262
|
position: absolute;
|
|
Binary file
|
|
Binary file
|
|
@@ -11,6 +11,8 @@ export class GrwApp {
|
|
|
11
11
|
this.showFilters = false;
|
|
12
12
|
this.isLargeView = false;
|
|
13
13
|
this.currentTrekId = undefined;
|
|
14
|
+
this.appWidth = '100%';
|
|
15
|
+
this.appHeight = '100vh';
|
|
14
16
|
this.api = undefined;
|
|
15
17
|
this.languages = 'fr';
|
|
16
18
|
this.inBbox = undefined;
|
|
@@ -95,7 +97,7 @@ export class GrwApp {
|
|
|
95
97
|
this.showTrek = !this.showTrek;
|
|
96
98
|
}
|
|
97
99
|
handleView() {
|
|
98
|
-
this.isLargeView = this.
|
|
100
|
+
this.isLargeView = this.appElement.getBoundingClientRect().width >= this.largeViewSize;
|
|
99
101
|
this.showTreksMap = this.isLargeView;
|
|
100
102
|
this.showTrekMap = this.isLargeView;
|
|
101
103
|
}
|
|
@@ -132,6 +134,12 @@ export class GrwApp {
|
|
|
132
134
|
this.showTreksMap = !this.showTreksMap;
|
|
133
135
|
}
|
|
134
136
|
}
|
|
137
|
+
// handleEraseFilters() {
|
|
138
|
+
// console.log('handleEraseFilters');
|
|
139
|
+
// }
|
|
140
|
+
// handleOkFilters() {
|
|
141
|
+
// console.log('handleOkFilters');
|
|
142
|
+
// }
|
|
135
143
|
disconnectedCallback() {
|
|
136
144
|
reset();
|
|
137
145
|
window.removeEventListener('popstate', this.handlePopStateBind);
|
|
@@ -153,6 +161,8 @@ export class GrwApp {
|
|
|
153
161
|
'--color-surface-container-low': this.colorSurfaceContainerLow,
|
|
154
162
|
'--fab-background-color': this.fabBackgroundColor,
|
|
155
163
|
'--fab-color': this.fabColor,
|
|
164
|
+
'--app-width': this.appWidth,
|
|
165
|
+
'--app-height': this.appHeight,
|
|
156
166
|
} }, !state.currentTreks && !state.currentTrek && (h("div", { class: "init-loader-container" }, h("span", { class: "loader" }))), !this.showTrek && !state.treks && (h("grw-treks-provider", { api: this.api, languages: this.languages, "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 && !state.currentTrek && (h("grw-trek-provider", { api: this.api, languages: this.languages, "trek-id": this.currentTrekId })), (state.currentTreks || state.currentTrek) && (h("div", { class: "app-container" }, h("div", { class: this.isLargeView ? 'large-view-header-container' : 'header-container' }, h("div", { class: "header-top" }, h("div", { class: "header-left-container" }, this.showTrek ? (h("button", { onClick: () => this.handleBackButton(), class: "arrow-back-icon" }, h("span", { class: "material-symbols-outlined" }, "arrow_back"))) : (h("div", { class: "attribution-container" }, h("a", { target: "_blank", href: this.linkTarget }, this.linkName)))), h("div", { class: "header-right-container" }, state.languages.length > 1 && h("grw-select-language", null))), !this.showTrek && (h("div", { class: "handle-filters-container" }, state.treksWithinBounds && (h("div", { class: "current-treks-within-bounds-length" }, `${state.treksWithinBounds.length} ${state.treksWithinBounds.length > 1 ? translate[state.language].treks : translate[state.language].trek}`)), h("button", { onClick: () => this.handleFilters(), class: "handle-filters-button" }, h("span", { class: "material-symbols-outlined margin-right-icon" }, "filter_list"), translate[state.language].filter)))), h("div", { class: `content-container ${this.showTrek ? 'content-trek' : 'content-treks'}` }, h("div", { class: this.isLargeView ? 'large-view-app-treks-list-container' : 'app-treks-list-container', style: { display: this.showTrek ? 'none' : 'flex', position: this.showTrek ? 'absolute' : 'relative' } }, h("grw-treks-list", { "reset-store-on-disconnected": "false", "is-large-view": this.isLargeView, "color-primary-app": this.colorPrimaryApp, "color-on-surface": this.colorOnSurface, "color-secondary-container": this.colorSecondaryContainer, "color-on-secondary-container": this.colorOnSecondaryContainer, "color-surface-container-low": this.colorSurfaceContainerLow })), this.showTrek && !state.currentTrek && (h("div", { class: this.isLargeView ? 'large-view-loader-container' : 'loader-container' }, h("span", { class: "loader" }))), state.currentTrek && (h("div", { class: this.isLargeView ? 'large-view-app-trek-detail-container' : 'app-trek-detail-container' }, h("grw-trek-detail", { "reset-store-on-disconnected": "false", "color-primary-app": this.colorPrimaryApp, "color-on-surface": this.colorOnSurface, "color-primary-container": this.colorPrimaryContainer, "color-on-primary-container": this.colorOnPrimaryContainer, "color-secondary-container": this.colorSecondaryContainer, "color-on-secondary-container": this.colorOnSecondaryContainer, "color-background": this.colorBackground, weather: this.weather, style: { zIndex: this.showTrekMap ? '0' : '1' }, "is-large-view": this.isLargeView }))), h("grw-map", { "reset-store-on-disconnected": "false", class: this.isLargeView ? 'large-view-app-map-container' : 'app-map-container', style: {
|
|
157
167
|
visibility: (this.showTreksMap && !this.showTrek) || (this.showTrekMap && this.showTrek) || this.isLargeView ? 'visible' : 'hidden',
|
|
158
168
|
zIndex: this.showTrekMap ? '1' : '0',
|
|
@@ -177,6 +187,42 @@ export class GrwApp {
|
|
|
177
187
|
}
|
|
178
188
|
static get properties() {
|
|
179
189
|
return {
|
|
190
|
+
"appWidth": {
|
|
191
|
+
"type": "string",
|
|
192
|
+
"mutable": false,
|
|
193
|
+
"complexType": {
|
|
194
|
+
"original": "string",
|
|
195
|
+
"resolved": "string",
|
|
196
|
+
"references": {}
|
|
197
|
+
},
|
|
198
|
+
"required": false,
|
|
199
|
+
"optional": false,
|
|
200
|
+
"docs": {
|
|
201
|
+
"tags": [],
|
|
202
|
+
"text": ""
|
|
203
|
+
},
|
|
204
|
+
"attribute": "app-width",
|
|
205
|
+
"reflect": false,
|
|
206
|
+
"defaultValue": "'100%'"
|
|
207
|
+
},
|
|
208
|
+
"appHeight": {
|
|
209
|
+
"type": "string",
|
|
210
|
+
"mutable": false,
|
|
211
|
+
"complexType": {
|
|
212
|
+
"original": "string",
|
|
213
|
+
"resolved": "string",
|
|
214
|
+
"references": {}
|
|
215
|
+
},
|
|
216
|
+
"required": false,
|
|
217
|
+
"optional": false,
|
|
218
|
+
"docs": {
|
|
219
|
+
"tags": [],
|
|
220
|
+
"text": ""
|
|
221
|
+
},
|
|
222
|
+
"attribute": "app-height",
|
|
223
|
+
"reflect": false,
|
|
224
|
+
"defaultValue": "'100vh'"
|
|
225
|
+
},
|
|
180
226
|
"api": {
|
|
181
227
|
"type": "string",
|
|
182
228
|
"mutable": false,
|
|
@@ -842,7 +888,7 @@ export class GrwApp {
|
|
|
842
888
|
"currentTrekId": {}
|
|
843
889
|
};
|
|
844
890
|
}
|
|
845
|
-
static get elementRef() { return "
|
|
891
|
+
static get elementRef() { return "appElement"; }
|
|
846
892
|
static get watchers() {
|
|
847
893
|
return [{
|
|
848
894
|
"propName": "isLargeView",
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grw-app.js","sourceRoot":"","sources":["../../../src/components/grw-app/grw-app.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Listen, State, Prop, Element, Watch } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange, reset } from 'store/store';\n\n@Component({\n tag: 'grw-app',\n styleUrls: ['grw-app.scss'],\n shadow: false,\n})\nexport class GrwApp {\n @Element() element: HTMLElement;\n @State() showTrek = false;\n @State() showTreksMap = false;\n @State() showTrekMap = false;\n @State() showFilters = false;\n @State() isLargeView = false;\n @State() currentTrekId: number;\n @Prop() api: string;\n @Prop() languages = 'fr';\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() portals: string;\n @Prop() routes: string;\n @Prop() practices: string;\n @Prop() urlLayer: string;\n @Prop() center: string;\n @Prop() zoom: number;\n @Prop() attribution: string;\n @Prop() linkName = 'GEOTREK';\n @Prop() linkTarget = 'https://geotrek.fr';\n @Prop() weather = false;\n\n @Prop() colorPrimaryApp = '#6750a4';\n @Prop() colorOnPrimary = '#ffffff';\n @Prop() colorSurface = '#1c1b1f';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSurfaceVariant = '#fef7ff';\n @Prop() colorOnSurfaceVariant = '#1c1b1f';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorBackground = '#fef7ff';\n @Prop() colorSurfaceContainerHigh = '#ece6f0';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() fabBackgroundColor = '#eaddff';\n @Prop() fabColor = '#21005d';\n\n @Prop() colorTrekLine = '#6b0030';\n @Prop() colorDepartureIcon = '#006b3b';\n @Prop() colorArrivalIcon = '#85003b';\n @Prop() colorSensitiveArea = '#4974a5';\n @Prop() colorPoiIcon = '#974c6e';\n\n largeViewSize = 1024;\n handlePopStateBind: (event: any) => void = this.handlePopState.bind(this);\n\n @Listen('trekCardPress', { target: 'window' })\n onTrekCardPress(event: CustomEvent<number>) {\n this.currentTrekId = event.detail;\n this.showTrek = !this.showTrek;\n this.showTrekMap = false;\n const url = new URL(window.location.toString());\n url.searchParams.set('trek', this.currentTrekId.toString());\n window.history.pushState({}, '', url);\n }\n\n @Listen('resize', { target: 'window' })\n onWindowResize() {\n this.handleView();\n }\n\n @Listen('centerOnMap', { target: 'window' })\n onCenterOnMap() {\n if (!this.isLargeView) {\n this.showTrekMap = true;\n }\n }\n\n @Watch('isLargeView')\n watchPropHandler() {\n window.dispatchEvent(new window.Event('resize'));\n }\n\n componentWillLoad() {\n const url = new URL(window.location.toString());\n const trekParam = url.searchParams.get('trek');\n if (trekParam) {\n window.history.replaceState({ isInitialHistoryWithTrek: true }, '', url);\n this.currentTrekId = Number(trekParam);\n this.showTrek = !this.showTrek;\n }\n }\n\n componentDidLoad() {\n onChange('trekNetworkError', () => {\n if (state.trekNetworkError) {\n const urlRedirect = new URL(window.location.toString());\n urlRedirect.searchParams.delete('trek');\n window.history.replaceState({}, '', urlRedirect);\n this.onTrekDetailsClose();\n }\n });\n window.addEventListener('popstate', this.handlePopStateBind, false);\n this.handleView();\n }\n\n onTrekDetailsClose() {\n state.currentTrek = null;\n this.currentTrekId = null;\n this.showTrek = !this.showTrek;\n }\n\n handleView() {\n this.isLargeView = this.element.getBoundingClientRect().width >= this.largeViewSize;\n this.showTreksMap = this.isLargeView;\n this.showTrekMap = this.isLargeView;\n }\n\n handleFilters() {\n this.showFilters = !this.showFilters;\n }\n\n handleBackButton() {\n if (window.history.state && window.history.state.isInitialHistoryWithTrek) {\n this.onTrekDetailsClose();\n const url = new URL(window.location.toString());\n url.searchParams.delete('trek');\n window.history.pushState({}, '', url);\n } else {\n window.history.back();\n }\n }\n\n handlePopState() {\n const url = new URL(window.location.toString());\n const trekParam = Number(url.searchParams.get('trek'));\n if (trekParam && this.currentTrekId !== trekParam) {\n this.currentTrekId = trekParam;\n this.showTrek = true;\n } else if (!trekParam) {\n this.onTrekDetailsClose();\n }\n }\n\n handleShowMap() {\n if (this.currentTrekId) {\n this.showTrekMap = !this.showTrekMap;\n } else {\n this.showTreksMap = !this.showTreksMap;\n }\n }\n\n disconnectedCallback() {\n reset();\n window.removeEventListener('popstate', this.handlePopStateBind);\n }\n\n render() {\n return (\n <Host\n style={{\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-primary': this.colorOnPrimary,\n '--color-surface': this.colorSurface,\n '--color-on-surface': this.colorOnSurface,\n '--color-surface-variant': this.colorSurfaceVariant,\n '--color-on-surface-variant': this.colorOnSurfaceVariant,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-secondary-container': this.colorSecondaryContainer,\n '--color-on-secondary-container': this.colorOnSecondaryContainer,\n '--color-background': this.colorBackground,\n '--color-surface-container-high': this.colorSurfaceContainerHigh,\n '--color-surface-container-low': this.colorSurfaceContainerLow,\n '--fab-background-color': this.fabBackgroundColor,\n '--fab-color': this.fabColor,\n }}\n >\n {!state.currentTreks && !state.currentTrek && (\n <div class=\"init-loader-container\">\n <span class=\"loader\"></span>\n </div>\n )}\n {!this.showTrek && !state.treks && (\n <grw-treks-provider\n api={this.api}\n languages={this.languages}\n in-bbox={this.inBbox}\n cities={this.cities}\n districts={this.districts}\n structures={this.structures}\n themes={this.themes}\n portals={this.portals}\n routes={this.routes}\n practices={this.practices}\n ></grw-treks-provider>\n )}\n {this.showTrek && this.currentTrekId && !state.currentTrek && (\n <grw-trek-provider api={this.api} languages={this.languages} trek-id={this.currentTrekId}></grw-trek-provider>\n )}\n {(state.currentTreks || state.currentTrek) && (\n <div class=\"app-container\">\n <div class={this.isLargeView ? 'large-view-header-container' : 'header-container'}>\n <div class=\"header-top\">\n <div class=\"header-left-container\">\n {this.showTrek ? (\n <button onClick={() => this.handleBackButton()} class=\"arrow-back-icon\">\n <span class=\"material-symbols-outlined\">arrow_back</span>\n </button>\n ) : (\n <div class=\"attribution-container\">\n <a target=\"_blank\" href={this.linkTarget}>\n {this.linkName}\n </a>\n </div>\n )}\n </div>\n <div class=\"header-right-container\">{state.languages.length > 1 && <grw-select-language></grw-select-language>}</div>\n </div>\n {!this.showTrek && (\n <div class=\"handle-filters-container\">\n {state.treksWithinBounds && (\n <div class=\"current-treks-within-bounds-length\">{`${state.treksWithinBounds.length} ${\n state.treksWithinBounds.length > 1 ? translate[state.language].treks : translate[state.language].trek\n }`}</div>\n )}\n <button onClick={() => this.handleFilters()} class=\"handle-filters-button\">\n <span class=\"material-symbols-outlined margin-right-icon\">filter_list</span>\n {translate[state.language].filter}\n </button>\n </div>\n )}\n </div>\n\n <div class={`content-container ${this.showTrek ? 'content-trek' : 'content-treks'}`}>\n <div\n class={this.isLargeView ? 'large-view-app-treks-list-container' : 'app-treks-list-container'}\n style={{ display: this.showTrek ? 'none' : 'flex', position: this.showTrek ? 'absolute' : 'relative' }}\n >\n <grw-treks-list\n reset-store-on-disconnected=\"false\"\n is-large-view={this.isLargeView}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-surface-container-low={this.colorSurfaceContainerLow}\n ></grw-treks-list>\n </div>\n {this.showTrek && !state.currentTrek && (\n <div class={this.isLargeView ? 'large-view-loader-container' : 'loader-container'}>\n <span class=\"loader\"></span>\n </div>\n )}\n {state.currentTrek && (\n <div class={this.isLargeView ? 'large-view-app-trek-detail-container' : 'app-trek-detail-container'}>\n <grw-trek-detail\n reset-store-on-disconnected=\"false\"\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-primary-container={this.colorPrimaryContainer}\n color-on-primary-container={this.colorOnPrimaryContainer}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-background={this.colorBackground}\n weather={this.weather}\n style={{ zIndex: this.showTrekMap ? '0' : '1' }}\n is-large-view={this.isLargeView}\n ></grw-trek-detail>\n </div>\n )}\n <grw-map\n reset-store-on-disconnected=\"false\"\n class={this.isLargeView ? 'large-view-app-map-container' : 'app-map-container'}\n style={{\n visibility: (this.showTreksMap && !this.showTrek) || (this.showTrekMap && this.showTrek) || this.isLargeView ? 'visible' : 'hidden',\n zIndex: this.showTrekMap ? '1' : '0',\n }}\n url-layer={this.urlLayer}\n center={this.center}\n zoom={this.zoom}\n attribution={this.attribution}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-primary-container={this.colorPrimaryContainer}\n color-on-primary-container={this.colorOnPrimaryContainer}\n color-background={this.colorBackground}\n color-trek-line={this.colorTrekLine}\n color-departure-icon={this.colorDepartureIcon}\n color-arrival-icon={this.colorArrivalIcon}\n color-sensitive-area={this.colorSensitiveArea}\n color-poi-icon={this.colorPoiIcon}\n is-large-view={this.isLargeView}\n ></grw-map>\n </div>\n {(!this.showTrek || (this.showTrek && state.currentTrek)) && (\n <div class=\"map-visibility-button-container\">\n <button onClick={() => this.handleShowMap()} class=\"map-visibility-button\" style={{ display: this.isLargeView ? 'none' : 'flex' }}>\n <span class=\"material-symbols-outlined\">{this.showTrek ? (this.showTrekMap ? 'summarize' : 'map') : this.showTreksMap ? 'list' : 'map'}</span>\n {this.showTrek\n ? this.showTrekMap\n ? translate[state.language].showDetails\n : translate[state.language].showRoute\n : this.showTreksMap\n ? translate[state.language].showList\n : translate[state.language].showMap}\n </button>\n </div>\n )}\n </div>\n )}\n {!this.showTrek && this.showFilters && (\n <div class=\"options-container\">\n <div class=\"filters-container\">\n <grw-filter filterName={translate[state.language].practice} filterType=\"practices\" filterNameProperty=\"name\"></grw-filter>\n <div class=\"divider\"></div>\n <grw-filter filterName={translate[state.language].difficulty} filterType=\"difficulties\" filterNameProperty=\"label\"></grw-filter>\n <div class=\"divider\"></div>\n <grw-filter filterName={translate[state.language].duration} filterType=\"durations\" filterNameProperty=\"name\"></grw-filter>\n </div>\n <div onClick={() => this.handleFilters()} class=\"back-filters-container\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"grw-app.js","sourceRoot":"","sources":["../../../src/components/grw-app/grw-app.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Listen, State, Prop, Element, Watch } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange, reset } from 'store/store';\n\n@Component({\n tag: 'grw-app',\n styleUrls: ['grw-app.scss'],\n shadow: false,\n})\nexport class GrwApp {\n @Element() appElement: HTMLElement;\n @State() showTrek = false;\n @State() showTreksMap = false;\n @State() showTrekMap = false;\n @State() showFilters = false;\n @State() isLargeView = false;\n @State() currentTrekId: number;\n @Prop() appWidth: string = '100%';\n @Prop() appHeight: string = '100vh';\n @Prop() api: string;\n @Prop() languages = 'fr';\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() portals: string;\n @Prop() routes: string;\n @Prop() practices: string;\n @Prop() urlLayer: string;\n @Prop() center: string;\n @Prop() zoom: number;\n @Prop() attribution: string;\n @Prop() linkName = 'GEOTREK';\n @Prop() linkTarget = 'https://geotrek.fr';\n @Prop() weather = false;\n\n @Prop() colorPrimaryApp = '#6750a4';\n @Prop() colorOnPrimary = '#ffffff';\n @Prop() colorSurface = '#1c1b1f';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSurfaceVariant = '#fef7ff';\n @Prop() colorOnSurfaceVariant = '#1c1b1f';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorBackground = '#fef7ff';\n @Prop() colorSurfaceContainerHigh = '#ece6f0';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() fabBackgroundColor = '#eaddff';\n @Prop() fabColor = '#21005d';\n\n @Prop() colorTrekLine = '#6b0030';\n @Prop() colorDepartureIcon = '#006b3b';\n @Prop() colorArrivalIcon = '#85003b';\n @Prop() colorSensitiveArea = '#4974a5';\n @Prop() colorPoiIcon = '#974c6e';\n\n largeViewSize = 1024;\n handlePopStateBind: (event: any) => void = this.handlePopState.bind(this);\n\n @Listen('trekCardPress', { target: 'window' })\n onTrekCardPress(event: CustomEvent<number>) {\n this.currentTrekId = event.detail;\n this.showTrek = !this.showTrek;\n this.showTrekMap = false;\n const url = new URL(window.location.toString());\n url.searchParams.set('trek', this.currentTrekId.toString());\n window.history.pushState({}, '', url);\n }\n\n @Listen('resize', { target: 'window' })\n onWindowResize() {\n this.handleView();\n }\n\n @Listen('centerOnMap', { target: 'window' })\n onCenterOnMap() {\n if (!this.isLargeView) {\n this.showTrekMap = true;\n }\n }\n\n @Watch('isLargeView')\n watchPropHandler() {\n window.dispatchEvent(new window.Event('resize'));\n }\n\n componentWillLoad() {\n const url = new URL(window.location.toString());\n const trekParam = url.searchParams.get('trek');\n if (trekParam) {\n window.history.replaceState({ isInitialHistoryWithTrek: true }, '', url);\n this.currentTrekId = Number(trekParam);\n this.showTrek = !this.showTrek;\n }\n }\n\n componentDidLoad() {\n onChange('trekNetworkError', () => {\n if (state.trekNetworkError) {\n const urlRedirect = new URL(window.location.toString());\n urlRedirect.searchParams.delete('trek');\n window.history.replaceState({}, '', urlRedirect);\n this.onTrekDetailsClose();\n }\n });\n window.addEventListener('popstate', this.handlePopStateBind, false);\n this.handleView();\n }\n\n onTrekDetailsClose() {\n state.currentTrek = null;\n this.currentTrekId = null;\n this.showTrek = !this.showTrek;\n }\n\n handleView() {\n this.isLargeView = this.appElement.getBoundingClientRect().width >= this.largeViewSize;\n this.showTreksMap = this.isLargeView;\n this.showTrekMap = this.isLargeView;\n }\n\n handleFilters() {\n this.showFilters = !this.showFilters;\n }\n\n handleBackButton() {\n if (window.history.state && window.history.state.isInitialHistoryWithTrek) {\n this.onTrekDetailsClose();\n const url = new URL(window.location.toString());\n url.searchParams.delete('trek');\n window.history.pushState({}, '', url);\n } else {\n window.history.back();\n }\n }\n\n handlePopState() {\n const url = new URL(window.location.toString());\n const trekParam = Number(url.searchParams.get('trek'));\n if (trekParam && this.currentTrekId !== trekParam) {\n this.currentTrekId = trekParam;\n this.showTrek = true;\n } else if (!trekParam) {\n this.onTrekDetailsClose();\n }\n }\n\n handleShowMap() {\n if (this.currentTrekId) {\n this.showTrekMap = !this.showTrekMap;\n } else {\n this.showTreksMap = !this.showTreksMap;\n }\n }\n\n // handleEraseFilters() {\n // console.log('handleEraseFilters');\n // }\n\n // handleOkFilters() {\n // console.log('handleOkFilters');\n // }\n\n disconnectedCallback() {\n reset();\n window.removeEventListener('popstate', this.handlePopStateBind);\n }\n\n render() {\n return (\n <Host\n style={{\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-primary': this.colorOnPrimary,\n '--color-surface': this.colorSurface,\n '--color-on-surface': this.colorOnSurface,\n '--color-surface-variant': this.colorSurfaceVariant,\n '--color-on-surface-variant': this.colorOnSurfaceVariant,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-secondary-container': this.colorSecondaryContainer,\n '--color-on-secondary-container': this.colorOnSecondaryContainer,\n '--color-background': this.colorBackground,\n '--color-surface-container-high': this.colorSurfaceContainerHigh,\n '--color-surface-container-low': this.colorSurfaceContainerLow,\n '--fab-background-color': this.fabBackgroundColor,\n '--fab-color': this.fabColor,\n '--app-width': this.appWidth,\n '--app-height': this.appHeight,\n }}\n >\n {!state.currentTreks && !state.currentTrek && (\n <div class=\"init-loader-container\">\n <span class=\"loader\"></span>\n </div>\n )}\n {!this.showTrek && !state.treks && (\n <grw-treks-provider\n api={this.api}\n languages={this.languages}\n in-bbox={this.inBbox}\n cities={this.cities}\n districts={this.districts}\n structures={this.structures}\n themes={this.themes}\n portals={this.portals}\n routes={this.routes}\n practices={this.practices}\n ></grw-treks-provider>\n )}\n {this.showTrek && this.currentTrekId && !state.currentTrek && (\n <grw-trek-provider api={this.api} languages={this.languages} trek-id={this.currentTrekId}></grw-trek-provider>\n )}\n {(state.currentTreks || state.currentTrek) && (\n <div class=\"app-container\">\n <div class={this.isLargeView ? 'large-view-header-container' : 'header-container'}>\n <div class=\"header-top\">\n <div class=\"header-left-container\">\n {this.showTrek ? (\n <button onClick={() => this.handleBackButton()} class=\"arrow-back-icon\">\n <span class=\"material-symbols-outlined\">arrow_back</span>\n </button>\n ) : (\n <div class=\"attribution-container\">\n <a target=\"_blank\" href={this.linkTarget}>\n {this.linkName}\n </a>\n </div>\n )}\n </div>\n <div class=\"header-right-container\">{state.languages.length > 1 && <grw-select-language></grw-select-language>}</div>\n </div>\n {!this.showTrek && (\n <div class=\"handle-filters-container\">\n {state.treksWithinBounds && (\n <div class=\"current-treks-within-bounds-length\">{`${state.treksWithinBounds.length} ${\n state.treksWithinBounds.length > 1 ? translate[state.language].treks : translate[state.language].trek\n }`}</div>\n )}\n <button onClick={() => this.handleFilters()} class=\"handle-filters-button\">\n <span class=\"material-symbols-outlined margin-right-icon\">filter_list</span>\n {translate[state.language].filter}\n </button>\n </div>\n )}\n </div>\n\n <div class={`content-container ${this.showTrek ? 'content-trek' : 'content-treks'}`}>\n <div\n class={this.isLargeView ? 'large-view-app-treks-list-container' : 'app-treks-list-container'}\n style={{ display: this.showTrek ? 'none' : 'flex', position: this.showTrek ? 'absolute' : 'relative' }}\n >\n <grw-treks-list\n reset-store-on-disconnected=\"false\"\n is-large-view={this.isLargeView}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-surface-container-low={this.colorSurfaceContainerLow}\n ></grw-treks-list>\n </div>\n {this.showTrek && !state.currentTrek && (\n <div class={this.isLargeView ? 'large-view-loader-container' : 'loader-container'}>\n <span class=\"loader\"></span>\n </div>\n )}\n {state.currentTrek && (\n <div class={this.isLargeView ? 'large-view-app-trek-detail-container' : 'app-trek-detail-container'}>\n <grw-trek-detail\n reset-store-on-disconnected=\"false\"\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-primary-container={this.colorPrimaryContainer}\n color-on-primary-container={this.colorOnPrimaryContainer}\n color-secondary-container={this.colorSecondaryContainer}\n color-on-secondary-container={this.colorOnSecondaryContainer}\n color-background={this.colorBackground}\n weather={this.weather}\n style={{ zIndex: this.showTrekMap ? '0' : '1' }}\n is-large-view={this.isLargeView}\n ></grw-trek-detail>\n </div>\n )}\n <grw-map\n reset-store-on-disconnected=\"false\"\n class={this.isLargeView ? 'large-view-app-map-container' : 'app-map-container'}\n style={{\n visibility: (this.showTreksMap && !this.showTrek) || (this.showTrekMap && this.showTrek) || this.isLargeView ? 'visible' : 'hidden',\n zIndex: this.showTrekMap ? '1' : '0',\n }}\n url-layer={this.urlLayer}\n center={this.center}\n zoom={this.zoom}\n attribution={this.attribution}\n color-primary-app={this.colorPrimaryApp}\n color-on-surface={this.colorOnSurface}\n color-primary-container={this.colorPrimaryContainer}\n color-on-primary-container={this.colorOnPrimaryContainer}\n color-background={this.colorBackground}\n color-trek-line={this.colorTrekLine}\n color-departure-icon={this.colorDepartureIcon}\n color-arrival-icon={this.colorArrivalIcon}\n color-sensitive-area={this.colorSensitiveArea}\n color-poi-icon={this.colorPoiIcon}\n is-large-view={this.isLargeView}\n ></grw-map>\n </div>\n {(!this.showTrek || (this.showTrek && state.currentTrek)) && (\n <div class=\"map-visibility-button-container\">\n <button onClick={() => this.handleShowMap()} class=\"map-visibility-button\" style={{ display: this.isLargeView ? 'none' : 'flex' }}>\n <span class=\"material-symbols-outlined\">{this.showTrek ? (this.showTrekMap ? 'summarize' : 'map') : this.showTreksMap ? 'list' : 'map'}</span>\n {this.showTrek\n ? this.showTrekMap\n ? translate[state.language].showDetails\n : translate[state.language].showRoute\n : this.showTreksMap\n ? translate[state.language].showList\n : translate[state.language].showMap}\n </button>\n </div>\n )}\n </div>\n )}\n {!this.showTrek && this.showFilters && (\n <div class=\"options-container\">\n {/* <div class=\"filters-buttons-container\">\n <button class=\"filter-button\" onClick={() => this.handleEraseFilters()}>\n Effacer\n </button>\n <button class=\"filter-button\" onClick={() => this.handleOkFilters()}>\n Ok\n </button>\n </div> */}\n <div class=\"filters-container\">\n <grw-filter filterName={translate[state.language].practice} filterType=\"practices\" filterNameProperty=\"name\"></grw-filter>\n <div class=\"divider\"></div>\n <grw-filter filterName={translate[state.language].difficulty} filterType=\"difficulties\" filterNameProperty=\"label\"></grw-filter>\n <div class=\"divider\"></div>\n <grw-filter filterName={translate[state.language].duration} filterType=\"durations\" filterNameProperty=\"name\"></grw-filter>\n </div>\n <div onClick={() => this.handleFilters()} class=\"back-filters-container\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -123,14 +123,13 @@ export class GrwMap {
|
|
|
123
123
|
});
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
let bounds;
|
|
127
126
|
if (!this.treksLayer) {
|
|
128
127
|
if (trekscurrentDepartureCoordinates.length > 0 && !state.currentMapTreksBounds) {
|
|
129
|
-
bounds = L.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
|
|
128
|
+
this.bounds = L.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
|
|
130
129
|
}
|
|
131
130
|
else {
|
|
132
131
|
if (state.currentMapTreksBounds) {
|
|
133
|
-
bounds = state.currentMapTreksBounds;
|
|
132
|
+
this.bounds = state.currentMapTreksBounds;
|
|
134
133
|
}
|
|
135
134
|
}
|
|
136
135
|
this.treksLayer = L.geoJSON(treksFeatureCollection, {
|
|
@@ -164,7 +163,7 @@ export class GrwMap {
|
|
|
164
163
|
}
|
|
165
164
|
else {
|
|
166
165
|
if (trekscurrentDepartureCoordinates.length > 0) {
|
|
167
|
-
bounds = L.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
|
|
166
|
+
this.bounds = L.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));
|
|
168
167
|
}
|
|
169
168
|
else {
|
|
170
169
|
this.map.fire('moveend');
|
|
@@ -172,7 +171,7 @@ export class GrwMap {
|
|
|
172
171
|
this.treksLayer.clearLayers();
|
|
173
172
|
this.treksLayer.addData(treksFeatureCollection);
|
|
174
173
|
}
|
|
175
|
-
bounds && this.map.fitBounds(bounds);
|
|
174
|
+
this.bounds && this.map.fitBounds(this.bounds);
|
|
176
175
|
!this.mapIsReady && (this.mapIsReady = !this.mapIsReady);
|
|
177
176
|
this.map.on('moveend', this.handleTreksWithinBoundsBind);
|
|
178
177
|
}
|
|
@@ -379,7 +378,7 @@ export class GrwMap {
|
|
|
379
378
|
}
|
|
380
379
|
const elevationOptions = {
|
|
381
380
|
srcFolder: 'https://unpkg.com/@raruto/leaflet-elevation/src/',
|
|
382
|
-
elevationDiv:
|
|
381
|
+
elevationDiv: `#elevation`,
|
|
383
382
|
theme: 'custom-theme',
|
|
384
383
|
detached: true,
|
|
385
384
|
height: 250,
|
|
@@ -431,8 +430,8 @@ export class GrwMap {
|
|
|
431
430
|
}
|
|
432
431
|
this.layersControl = L.control.layers(null, overlays, { collapsed: true }).addTo(this.map);
|
|
433
432
|
this.handleLayersControlEvent();
|
|
434
|
-
|
|
435
|
-
bounds && this.map.fitBounds(bounds);
|
|
433
|
+
this.bounds = L.latLngBounds(state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));
|
|
434
|
+
this.bounds && this.map.fitBounds(this.bounds);
|
|
436
435
|
!this.mapIsReady && (this.mapIsReady = !this.mapIsReady);
|
|
437
436
|
}
|
|
438
437
|
handleLayersControlEvent() {
|
|
@@ -501,7 +500,7 @@ export class GrwMap {
|
|
|
501
500
|
'--color-trek-line': this.colorTrekLine,
|
|
502
501
|
'--layers-image-src': `url(${layersImageSrc})`,
|
|
503
502
|
'--map-bottom-space-height': this.isLargeView ? '0px' : '70px',
|
|
504
|
-
} }, h("div", { id: "map", class: state.currentTrek ? 'trek-map' : 'treks-map', ref: el => (this.mapRef = el) }), h("div", { id: "elevation", ref: el => (this.elevationRef = el) }), h("div", { class: "map-bottom-space" }), !this.mapIsReady && (h("div", { class: "map-loader-container" }, h("span", { class: "loader" })))));
|
|
503
|
+
} }, h("div", { id: "map", style: {}, class: state.currentTrek ? 'trek-map' : 'treks-map', ref: el => (this.mapRef = el) }), state.currentTrek && (h("div", null, h("div", { id: "elevation", ref: el => (this.elevationRef = el) }), h("div", { class: "map-bottom-space" }))), !this.mapIsReady && (h("div", { class: "map-loader-container" }, h("span", { class: "loader" })))));
|
|
505
504
|
}
|
|
506
505
|
static get is() { return "grw-map"; }
|
|
507
506
|
static get originalStyleUrls() {
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grw-map.js","sourceRoot":"","sources":["../../../src/components/grw-map/grw-map.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Event, EventEmitter, getAssetPath, Build, Listen } from '@stencil/core';\nimport { Feature, FeatureCollection } from 'geojson';\nimport L from 'leaflet';\nimport 'leaflet.locatecontrol';\nimport '@raruto/leaflet-elevation/dist/leaflet-elevation.min.js';\nimport state, { onChange, reset } from 'store/store';\nimport { translate } from 'i18n/i18n';\n\n@Component({\n tag: 'grw-map',\n styleUrl: 'grw-map.scss',\n})\nexport class GrwMap {\n mapRef: HTMLElement;\n elevationRef: HTMLElement;\n @Event() trekCardPress: EventEmitter<number>;\n @State() mapIsReady = false;\n @Prop() urlLayer: string;\n @Prop() attribution: string;\n @Prop() center = '1, 1';\n @Prop() zoom = 10;\n\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorBackground = '#fef7ff';\n\n @Prop() colorTrekLine = '#6b0030';\n @Prop() colorDepartureIcon = '#006b3b';\n @Prop() colorArrivalIcon = '#85003b';\n @Prop() colorSensitiveArea = '\t#4974a5';\n @Prop() colorPoiIcon = '#974c6e';\n\n @Prop() resetStoreOnDisconnected = true;\n @Prop() isLargeView = false;\n map: L.Map;\n treksLayer: L.GeoJSON<any>;\n currentTrekLayer: L.GeoJSON<any>;\n currentDepartureArrivalLayer: L.GeoJSON<any>;\n currentPointsReferenceLayer: L.GeoJSON<any>;\n currentParkingLayer: L.GeoJSON<any>;\n currentSensitiveAreasLayer: L.GeoJSON<any>;\n currentPoisLayer: L.GeoJSON<any>;\n currentInformationDesksLayer: L.GeoJSON<any>;\n elevationControl: L.Control.Layers;\n layersControl: L.Control.Layers;\n userLayersState: {\n [key: number]: boolean;\n } = {};\n\n handleTreksWithinBoundsBind: (event: any) => void = this.handleTreksWithinBounds.bind(this);\n\n @Listen('centerOnMap', { target: 'window' })\n onCenterOnMap(event: CustomEvent<{ latitude: number; longitude: number }>) {\n this.map.setView(new L.LatLng(event.detail.latitude, event.detail.longitude), 17, { animate: false });\n }\n\n @Listen('descriptionReferenceIsInViewport', { target: 'window' })\n descriptionReferenceIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentPointsReferenceLayer) {\n this.handleLayerVisibility(event.detail, this.currentPointsReferenceLayer);\n }\n }\n\n @Listen('parkingIsInViewport', { target: 'window' })\n parkingIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentParkingLayer) {\n this.handleLayerVisibility(event.detail, this.currentParkingLayer);\n }\n }\n\n @Listen('informationDeskIsInViewport', { target: 'window' })\n onInformationDesksIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentInformationDesksLayer) {\n this.handleLayerVisibility(event.detail, this.currentInformationDesksLayer);\n }\n }\n\n @Listen('sensitiveAreaIsInViewport', { target: 'window' })\n sensitiveAreaIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentSensitiveAreasLayer) {\n this.handleLayerVisibility(event.detail, this.currentSensitiveAreasLayer);\n }\n }\n\n @Listen('poiIsInViewport', { target: 'window' })\n poiIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentPoisLayer) {\n this.handleLayerVisibility(event.detail, this.currentPoisLayer);\n }\n }\n\n componentDidLoad() {\n this.map = L.map(this.mapRef, {\n center: this.center.split(',').map(Number) as L.LatLngExpression,\n zoom: this.zoom,\n });\n\n L.control.scale({ metric: true, imperial: false }).addTo(this.map);\n (L.control as any).locate({ showPopup: false }).addTo(this.map);\n\n L.tileLayer(this.urlLayer, {\n maxZoom: 19,\n attribution: this.attribution,\n }).addTo(this.map);\n\n if (state.currentTrek) {\n this.addTrek();\n } else if (state.currentTreks) {\n this.addTreks();\n }\n\n onChange('currentTreks', () => {\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTrek();\n this.addTreks();\n }\n });\n\n onChange('currentTrek', () => {\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else {\n this.removeTrek();\n this.addTreks();\n }\n });\n }\n\n handleLayerVisibility(visible: boolean, layer: L.GeoJSON) {\n if (visible && !this.map.hasLayer(layer)) {\n layer.addTo(this.map);\n } else if (this.map.hasLayer(layer) && !this.userLayersState[(layer as any)._leaflet_id]) {\n this.map.removeLayer(layer);\n }\n this.handleLayersControlEvent();\n }\n\n addTreks() {\n const trekscurrentDepartureCoordinates = [];\n const treksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTreks) {\n for (const trek of state.currentTreks) {\n trekscurrentDepartureCoordinates.push(trek.departure_geom);\n treksFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: trek.departure_geom },\n properties: {\n id: trek.id,\n name: trek.name,\n practice: state.practices.find(practice => practice.id === trek.practice)?.pictogram,\n imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,\n },\n });\n }\n }\n let bounds;\n if (!this.treksLayer) {\n if (trekscurrentDepartureCoordinates.length > 0 && !state.currentMapTreksBounds) {\n bounds = L.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapTreksBounds) {\n bounds = state.currentMapTreksBounds;\n }\n }\n this.treksLayer = L.geoJSON(treksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: geoJsonPoint.properties.practice ? `<img src=${geoJsonPoint.properties.practice} />` : `<img />`,\n className: 'trek-marker',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n trekDeparturePopup.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n if (geoJsonPoint.properties.imgSrc) {\n trekName.className += ' trek-name-margin-top';\n const trekImg = L.DomUtil.create('img');\n trekImg.src = geoJsonPoint.properties.imgSrc;\n trekDeparturePopup.appendChild(trekImg);\n }\n trekDeparturePopup.appendChild(trekName);\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n },\n }).addTo(this.map);\n } else {\n if (trekscurrentDepartureCoordinates.length > 0) {\n bounds = L.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.treksLayer.clearLayers();\n this.treksLayer.addData(treksFeatureCollection);\n }\n\n bounds && this.map.fitBounds(bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n\n this.map.on('moveend', this.handleTreksWithinBoundsBind);\n }\n\n removeTreks() {\n if (this.treksLayer) {\n state.currentMapTreksBounds = this.map.getBounds();\n this.map.removeLayer(this.treksLayer);\n this.treksLayer = null;\n this.map.off('moveend', this.handleTreksWithinBoundsBind);\n }\n }\n\n handleTreksWithinBounds() {\n if (\n (state.currentTreks && !state.currentMapTreksBounds) ||\n (state.currentTreks && state.currentMapTreksBounds && state.currentMapTreksBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.treksWithinBounds = state.currentTreks.filter(trek => this.map.getBounds().contains(L.latLng(trek.departure_geom[1], trek.departure_geom[0])));\n }\n }\n\n addTrek() {\n const departureArrivalImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/departure-arrival.svg`);\n const currentTrekFeature: Feature = {\n type: 'Feature',\n geometry: state.currentTrek.geometry,\n properties: {},\n };\n\n this.currentTrekLayer = L.geoJSON(currentTrekFeature, {\n style: () => ({\n color: 'transparent',\n }),\n interactive: false,\n }).addTo(this.map);\n\n const currentDepartureCoordinates = [state.currentTrek.geometry.coordinates.at(0)[0], state.currentTrek.geometry.coordinates.at(0)[1]];\n const currentArrivalCoordinates = [state.currentTrek.geometry.coordinates.at(-1)[0], state.currentTrek.geometry.coordinates.at(-1)[1]];\n const currentDepartureArrivalFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n properties: { type: 'departure' },\n geometry: { type: 'Point', coordinates: currentDepartureCoordinates },\n },\n ],\n };\n\n if (currentDepartureCoordinates[0] !== currentArrivalCoordinates[0] || currentDepartureCoordinates[1] !== currentArrivalCoordinates[1]) {\n currentDepartureArrivalFeatureCollection.features.push({\n type: 'Feature',\n properties: { type: 'arrival' },\n geometry: { type: 'Point', coordinates: currentArrivalCoordinates },\n });\n }\n\n this.currentDepartureArrivalLayer = L.geoJSON(currentDepartureArrivalFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: `<img src=${departureArrivalImageSrc}>`,\n className: geoJsonPoint.properties.type === 'departure' ? 'departure-icon' : 'arrival-icon',\n iconSize: 48,\n iconAnchor: [0, 48],\n } as any),\n autoPanOnFocus: false,\n interactive: false,\n } as any),\n }).addTo(this.map);\n\n if (state.currentTrek.parking_location) {\n const currentParking: Feature = {\n type: 'Feature',\n properties: {},\n geometry: { type: 'Point', coordinates: state.currentTrek.parking_location },\n };\n this.currentParkingLayer = L.geoJSON(currentParking, {\n pointToLayer: (_geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: '<div>P</div>',\n className: 'parking-icon',\n iconSize: 48,\n iconAnchor: [0, 48],\n } as any),\n autoPanOnFocus: false,\n interactive: false,\n } as any),\n });\n }\n\n if (state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) {\n const currentSensitiveAreasFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const sensitiveArea of state.currentSensitiveAreas) {\n currentSensitiveAreasFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: sensitiveArea.name },\n geometry: sensitiveArea.geometry,\n });\n }\n\n this.currentSensitiveAreasLayer = L.geoJSON(currentSensitiveAreasFeatureCollection, {\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const sensitiveAreaTooltip = L.DomUtil.create('div');\n sensitiveAreaTooltip.className = 'sensitive-area-tooltip';\n const sensitiveAreaName = L.DomUtil.create('div');\n sensitiveAreaName.innerHTML = geoJsonPoint.properties.name;\n sensitiveAreaName.className = 'sensitive-area-name';\n sensitiveAreaTooltip.appendChild(sensitiveAreaName);\n layer.bindTooltip(sensitiveAreaTooltip).openTooltip();\n });\n },\n style: () => ({ color: this.colorSensitiveArea }),\n });\n }\n\n if (state.currentPois && state.currentPois.length > 0) {\n const currentPoisFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const currentPoi of state.currentPois) {\n currentPoisFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: currentPoi.name, type_pictogram: state.poiTypes.find(poiType => poiType.id === currentPoi.type)?.pictogram },\n geometry: currentPoi.geometry,\n });\n }\n\n this.currentPoisLayer = L.geoJSON(currentPoisFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: geoJsonPoint.properties.type_pictogram ? `<img src=${geoJsonPoint.properties.type_pictogram} />` : `<img />`,\n className: 'poi-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const poiTooltip = L.DomUtil.create('div');\n poiTooltip.className = 'poi-tooltip';\n const poiName = L.DomUtil.create('div');\n poiName.innerHTML = geoJsonPoint.properties.name;\n poiName.className = 'poi-name';\n poiTooltip.appendChild(poiName);\n layer.bindTooltip(poiTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.currentInformationDesks && state.currentInformationDesks.length > 0) {\n const currentInformationDesksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const currentInformationDesk of state.currentInformationDesks.filter(currentInformationDesks =>\n state.currentTrek.information_desks.includes(currentInformationDesks.id),\n )) {\n if (currentInformationDesk.latitude && currentInformationDesk.longitude) {\n currentInformationDesksFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: currentInformationDesk.name, type_pictogram: currentInformationDesk.type.pictogram },\n geometry: { type: 'Point', coordinates: [Number(currentInformationDesk.longitude), Number(currentInformationDesk.latitude)] },\n });\n }\n }\n\n this.currentInformationDesksLayer = L.geoJSON(currentInformationDesksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: geoJsonPoint.properties.type_pictogram ? `<img src=${geoJsonPoint.properties.type_pictogram} />` : `<img />`,\n className: 'information-desks-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const informationDesksTooltip = L.DomUtil.create('div');\n informationDesksTooltip.className = 'information-desks-tooltip';\n const informationDesksName = L.DomUtil.create('div');\n informationDesksName.innerHTML = geoJsonPoint.properties.name;\n informationDesksName.className = 'information-desks-name';\n informationDesksTooltip.appendChild(informationDesksName);\n layer.bindTooltip(informationDesksTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.currentTrek.points_reference) {\n const currentPointsReferenceFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n currentPointsReferenceFeatureCollection.features.push({\n type: 'Feature',\n properties: {},\n geometry: state.currentTrek.points_reference,\n });\n\n let index = 0;\n this.currentPointsReferenceLayer = L.geoJSON(currentPointsReferenceFeatureCollection, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n index += 1;\n return L.marker(latlng, {\n icon: L.divIcon({\n html: index,\n className: 'point-reference-icon',\n iconSize: 24,\n } as any),\n autoPanOnFocus: false,\n interactive: false,\n } as any);\n },\n });\n }\n const elevationOptions = {\n srcFolder: 'https://unpkg.com/@raruto/leaflet-elevation/src/',\n elevationDiv: `#${this.elevationRef.id}`,\n theme: 'custom-theme',\n detached: true,\n height: 250,\n wptIcons: false,\n wptLabels: false,\n collapsed: false,\n autohide: false,\n distanceMarkers: false,\n hotline: false,\n closeBtn: false,\n summary: false,\n time: false,\n timestamps: false,\n legend: false,\n downloadLink: false,\n autofitBounds: false,\n ruler: false,\n edgeScale: false,\n waypoints: false,\n almostOver: false,\n speed: false,\n slope: false,\n acceleration: false,\n reverseCoords: false,\n imperial: false,\n };\n this.elevationControl = (L.control as any).elevation({ ...elevationOptions }).addTo(this.map);\n const elevation = JSON.stringify({\n name: `${state.currentTrek.name}`,\n type: 'FeatureCollection',\n features: [{ type: 'Feature', geometry: { type: 'LineString', coordinates: state.currentTrek.geometry.coordinates }, properties: null }],\n });\n (this.elevationControl as any).load(elevation);\n\n const overlays = {};\n if (this.currentPointsReferenceLayer) {\n overlays[translate[state.language].layers.pointsReference] = this.currentPointsReferenceLayer;\n }\n if (this.currentParkingLayer) {\n overlays[translate[state.language].layers.parking] = this.currentParkingLayer;\n }\n if (this.currentSensitiveAreasLayer) {\n overlays[translate[state.language].layers.sensitiveArea] = this.currentSensitiveAreasLayer;\n }\n if (this.currentInformationDesksLayer) {\n overlays[translate[state.language].layers.informationPlaces] = this.currentInformationDesksLayer;\n }\n if (this.currentPoisLayer) {\n overlays[translate[state.language].layers.pois] = this.currentPoisLayer;\n }\n this.layersControl = L.control.layers(null, overlays, { collapsed: true }).addTo(this.map);\n this.handleLayersControlEvent();\n\n const bounds = L.latLngBounds(state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n bounds && this.map.fitBounds(bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n handleLayersControlEvent() {\n const userLayersState: HTMLInputElement[] = (this.layersControl as any)._layerControlInputs;\n userLayersState.forEach((userLayerState: any) => {\n userLayerState.onchange = event => {\n this.userLayersState[userLayerState.layerId] = (event.target as any).checked;\n };\n });\n }\n\n removeTrek() {\n if (this.layersControl) {\n this.map.removeControl(this.layersControl);\n this.layersControl = null;\n }\n\n if (this.elevationControl) {\n (this.elevationControl as any).clear();\n this.map.removeControl(this.elevationControl);\n this.elevationControl = null;\n }\n\n if (this.currentTrekLayer) {\n this.map.removeLayer(this.currentTrekLayer);\n this.currentTrekLayer = null;\n }\n\n if (this.currentDepartureArrivalLayer) {\n this.map.removeLayer(this.currentDepartureArrivalLayer);\n this.currentDepartureArrivalLayer = null;\n }\n\n if (this.currentParkingLayer) {\n this.map.removeLayer(this.currentParkingLayer);\n this.currentParkingLayer = null;\n }\n\n if (this.currentSensitiveAreasLayer) {\n this.map.removeLayer(this.currentSensitiveAreasLayer);\n this.currentSensitiveAreasLayer = null;\n }\n\n if (this.currentPoisLayer) {\n this.map.removeLayer(this.currentPoisLayer);\n this.currentPoisLayer = null;\n }\n\n if (this.currentInformationDesksLayer) {\n this.map.removeLayer(this.currentInformationDesksLayer);\n this.currentInformationDesksLayer = null;\n }\n\n if (this.currentPointsReferenceLayer) {\n this.map.removeLayer(this.currentPointsReferenceLayer);\n this.currentPointsReferenceLayer = null;\n }\n }\n\n disconnectedCallback() {\n if (this.resetStoreOnDisconnected) {\n reset();\n }\n }\n\n render() {\n const layersImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/layers.svg`);\n return (\n <Host\n style={{\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-background': this.colorBackground,\n '--color-departure-icon': this.colorDepartureIcon,\n '--color-arrival-icon': this.colorArrivalIcon,\n '--color-poi-icon': this.colorPoiIcon,\n '--color-trek-line': this.colorTrekLine,\n '--layers-image-src': `url(${layersImageSrc})`,\n '--map-bottom-space-height': this.isLargeView ? '0px' : '70px',\n }}\n >\n <div id=\"map\" class={state.currentTrek ? 'trek-map' : 'treks-map'} ref={el => (this.mapRef = el)}></div>\n <div id=\"elevation\" ref={el => (this.elevationRef = el)}></div>\n <div class=\"map-bottom-space\"></div>\n {!this.mapIsReady && (\n <div class=\"map-loader-container\">\n <span class=\"loader\"></span>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"grw-map.js","sourceRoot":"","sources":["../../../src/components/grw-map/grw-map.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, State, Event, EventEmitter, getAssetPath, Build, Listen } from '@stencil/core';\nimport { Feature, FeatureCollection } from 'geojson';\nimport L from 'leaflet';\nimport 'leaflet.locatecontrol';\nimport '@raruto/leaflet-elevation/dist/leaflet-elevation.min.js';\nimport state, { onChange, reset } from 'store/store';\nimport { translate } from 'i18n/i18n';\n\n@Component({\n tag: 'grw-map',\n styleUrl: 'grw-map.scss',\n})\nexport class GrwMap {\n mapRef: HTMLElement;\n elevationRef: HTMLElement;\n @Event() trekCardPress: EventEmitter<number>;\n @State() mapIsReady = false;\n @Prop() urlLayer: string;\n @Prop() attribution: string;\n @Prop() center = '1, 1';\n @Prop() zoom = 10;\n\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorBackground = '#fef7ff';\n\n @Prop() colorTrekLine = '#6b0030';\n @Prop() colorDepartureIcon = '#006b3b';\n @Prop() colorArrivalIcon = '#85003b';\n @Prop() colorSensitiveArea = '\t#4974a5';\n @Prop() colorPoiIcon = '#974c6e';\n\n @Prop() resetStoreOnDisconnected = true;\n @Prop() isLargeView = false;\n map: L.Map;\n resizeObserver: ResizeObserver;\n bounds;\n treksLayer: L.GeoJSON<any>;\n currentTrekLayer: L.GeoJSON<any>;\n currentDepartureArrivalLayer: L.GeoJSON<any>;\n currentPointsReferenceLayer: L.GeoJSON<any>;\n currentParkingLayer: L.GeoJSON<any>;\n currentSensitiveAreasLayer: L.GeoJSON<any>;\n currentPoisLayer: L.GeoJSON<any>;\n currentInformationDesksLayer: L.GeoJSON<any>;\n elevationControl: L.Control.Layers;\n layersControl: L.Control.Layers;\n userLayersState: {\n [key: number]: boolean;\n } = {};\n\n handleTreksWithinBoundsBind: (event: any) => void = this.handleTreksWithinBounds.bind(this);\n\n @Listen('centerOnMap', { target: 'window' })\n onCenterOnMap(event: CustomEvent<{ latitude: number; longitude: number }>) {\n this.map.setView(new L.LatLng(event.detail.latitude, event.detail.longitude), 17, { animate: false });\n }\n\n @Listen('descriptionReferenceIsInViewport', { target: 'window' })\n descriptionReferenceIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentPointsReferenceLayer) {\n this.handleLayerVisibility(event.detail, this.currentPointsReferenceLayer);\n }\n }\n\n @Listen('parkingIsInViewport', { target: 'window' })\n parkingIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentParkingLayer) {\n this.handleLayerVisibility(event.detail, this.currentParkingLayer);\n }\n }\n\n @Listen('informationDeskIsInViewport', { target: 'window' })\n onInformationDesksIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentInformationDesksLayer) {\n this.handleLayerVisibility(event.detail, this.currentInformationDesksLayer);\n }\n }\n\n @Listen('sensitiveAreaIsInViewport', { target: 'window' })\n sensitiveAreaIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentSensitiveAreasLayer) {\n this.handleLayerVisibility(event.detail, this.currentSensitiveAreasLayer);\n }\n }\n\n @Listen('poiIsInViewport', { target: 'window' })\n poiIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentPoisLayer) {\n this.handleLayerVisibility(event.detail, this.currentPoisLayer);\n }\n }\n\n componentDidLoad() {\n this.map = L.map(this.mapRef, {\n center: this.center.split(',').map(Number) as L.LatLngExpression,\n zoom: this.zoom,\n });\n\n L.control.scale({ metric: true, imperial: false }).addTo(this.map);\n (L.control as any).locate({ showPopup: false }).addTo(this.map);\n\n L.tileLayer(this.urlLayer, {\n maxZoom: 19,\n attribution: this.attribution,\n }).addTo(this.map);\n\n if (state.currentTrek) {\n this.addTrek();\n } else if (state.currentTreks) {\n this.addTreks();\n }\n\n onChange('currentTreks', () => {\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTrek();\n this.addTreks();\n }\n });\n\n onChange('currentTrek', () => {\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else {\n this.removeTrek();\n this.addTreks();\n }\n });\n }\n\n handleLayerVisibility(visible: boolean, layer: L.GeoJSON) {\n if (visible && !this.map.hasLayer(layer)) {\n layer.addTo(this.map);\n } else if (this.map.hasLayer(layer) && !this.userLayersState[(layer as any)._leaflet_id]) {\n this.map.removeLayer(layer);\n }\n this.handleLayersControlEvent();\n }\n\n addTreks() {\n const trekscurrentDepartureCoordinates = [];\n const treksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTreks) {\n for (const trek of state.currentTreks) {\n trekscurrentDepartureCoordinates.push(trek.departure_geom);\n treksFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: trek.departure_geom },\n properties: {\n id: trek.id,\n name: trek.name,\n practice: state.practices.find(practice => practice.id === trek.practice)?.pictogram,\n imgSrc: trek.attachments && trek.attachments.length > 0 && trek.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.treksLayer) {\n if (trekscurrentDepartureCoordinates.length > 0 && !state.currentMapTreksBounds) {\n this.bounds = L.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapTreksBounds) {\n this.bounds = state.currentMapTreksBounds;\n }\n }\n this.treksLayer = L.geoJSON(treksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: geoJsonPoint.properties.practice ? `<img src=${geoJsonPoint.properties.practice} />` : `<img />`,\n className: 'trek-marker',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n trekDeparturePopup.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n if (geoJsonPoint.properties.imgSrc) {\n trekName.className += ' trek-name-margin-top';\n const trekImg = L.DomUtil.create('img');\n trekImg.src = geoJsonPoint.properties.imgSrc;\n trekDeparturePopup.appendChild(trekImg);\n }\n trekDeparturePopup.appendChild(trekName);\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n },\n }).addTo(this.map);\n } else {\n if (trekscurrentDepartureCoordinates.length > 0) {\n this.bounds = L.latLngBounds(trekscurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.treksLayer.clearLayers();\n this.treksLayer.addData(treksFeatureCollection);\n }\n\n this.bounds && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n\n this.map.on('moveend', this.handleTreksWithinBoundsBind);\n }\n\n removeTreks() {\n if (this.treksLayer) {\n state.currentMapTreksBounds = this.map.getBounds();\n this.map.removeLayer(this.treksLayer);\n this.treksLayer = null;\n this.map.off('moveend', this.handleTreksWithinBoundsBind);\n }\n }\n\n handleTreksWithinBounds() {\n if (\n (state.currentTreks && !state.currentMapTreksBounds) ||\n (state.currentTreks && state.currentMapTreksBounds && state.currentMapTreksBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.treksWithinBounds = state.currentTreks.filter(trek => this.map.getBounds().contains(L.latLng(trek.departure_geom[1], trek.departure_geom[0])));\n }\n }\n\n addTrek() {\n const departureArrivalImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/departure-arrival.svg`);\n const currentTrekFeature: Feature = {\n type: 'Feature',\n geometry: state.currentTrek.geometry,\n properties: {},\n };\n\n this.currentTrekLayer = L.geoJSON(currentTrekFeature, {\n style: () => ({\n color: 'transparent',\n }),\n interactive: false,\n }).addTo(this.map);\n\n const currentDepartureCoordinates = [state.currentTrek.geometry.coordinates.at(0)[0], state.currentTrek.geometry.coordinates.at(0)[1]];\n const currentArrivalCoordinates = [state.currentTrek.geometry.coordinates.at(-1)[0], state.currentTrek.geometry.coordinates.at(-1)[1]];\n const currentDepartureArrivalFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n properties: { type: 'departure' },\n geometry: { type: 'Point', coordinates: currentDepartureCoordinates },\n },\n ],\n };\n\n if (currentDepartureCoordinates[0] !== currentArrivalCoordinates[0] || currentDepartureCoordinates[1] !== currentArrivalCoordinates[1]) {\n currentDepartureArrivalFeatureCollection.features.push({\n type: 'Feature',\n properties: { type: 'arrival' },\n geometry: { type: 'Point', coordinates: currentArrivalCoordinates },\n });\n }\n\n this.currentDepartureArrivalLayer = L.geoJSON(currentDepartureArrivalFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: `<img src=${departureArrivalImageSrc}>`,\n className: geoJsonPoint.properties.type === 'departure' ? 'departure-icon' : 'arrival-icon',\n iconSize: 48,\n iconAnchor: [0, 48],\n } as any),\n autoPanOnFocus: false,\n interactive: false,\n } as any),\n }).addTo(this.map);\n\n if (state.currentTrek.parking_location) {\n const currentParking: Feature = {\n type: 'Feature',\n properties: {},\n geometry: { type: 'Point', coordinates: state.currentTrek.parking_location },\n };\n this.currentParkingLayer = L.geoJSON(currentParking, {\n pointToLayer: (_geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: '<div>P</div>',\n className: 'parking-icon',\n iconSize: 48,\n iconAnchor: [0, 48],\n } as any),\n autoPanOnFocus: false,\n interactive: false,\n } as any),\n });\n }\n\n if (state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) {\n const currentSensitiveAreasFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const sensitiveArea of state.currentSensitiveAreas) {\n currentSensitiveAreasFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: sensitiveArea.name },\n geometry: sensitiveArea.geometry,\n });\n }\n\n this.currentSensitiveAreasLayer = L.geoJSON(currentSensitiveAreasFeatureCollection, {\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const sensitiveAreaTooltip = L.DomUtil.create('div');\n sensitiveAreaTooltip.className = 'sensitive-area-tooltip';\n const sensitiveAreaName = L.DomUtil.create('div');\n sensitiveAreaName.innerHTML = geoJsonPoint.properties.name;\n sensitiveAreaName.className = 'sensitive-area-name';\n sensitiveAreaTooltip.appendChild(sensitiveAreaName);\n layer.bindTooltip(sensitiveAreaTooltip).openTooltip();\n });\n },\n style: () => ({ color: this.colorSensitiveArea }),\n });\n }\n\n if (state.currentPois && state.currentPois.length > 0) {\n const currentPoisFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const currentPoi of state.currentPois) {\n currentPoisFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: currentPoi.name, type_pictogram: state.poiTypes.find(poiType => poiType.id === currentPoi.type)?.pictogram },\n geometry: currentPoi.geometry,\n });\n }\n\n this.currentPoisLayer = L.geoJSON(currentPoisFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: geoJsonPoint.properties.type_pictogram ? `<img src=${geoJsonPoint.properties.type_pictogram} />` : `<img />`,\n className: 'poi-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const poiTooltip = L.DomUtil.create('div');\n poiTooltip.className = 'poi-tooltip';\n const poiName = L.DomUtil.create('div');\n poiName.innerHTML = geoJsonPoint.properties.name;\n poiName.className = 'poi-name';\n poiTooltip.appendChild(poiName);\n layer.bindTooltip(poiTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.currentInformationDesks && state.currentInformationDesks.length > 0) {\n const currentInformationDesksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const currentInformationDesk of state.currentInformationDesks.filter(currentInformationDesks =>\n state.currentTrek.information_desks.includes(currentInformationDesks.id),\n )) {\n if (currentInformationDesk.latitude && currentInformationDesk.longitude) {\n currentInformationDesksFeatureCollection.features.push({\n type: 'Feature',\n properties: { name: currentInformationDesk.name, type_pictogram: currentInformationDesk.type.pictogram },\n geometry: { type: 'Point', coordinates: [Number(currentInformationDesk.longitude), Number(currentInformationDesk.latitude)] },\n });\n }\n }\n\n this.currentInformationDesksLayer = L.geoJSON(currentInformationDesksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: geoJsonPoint.properties.type_pictogram ? `<img src=${geoJsonPoint.properties.type_pictogram} />` : `<img />`,\n className: 'information-desks-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const informationDesksTooltip = L.DomUtil.create('div');\n informationDesksTooltip.className = 'information-desks-tooltip';\n const informationDesksName = L.DomUtil.create('div');\n informationDesksName.innerHTML = geoJsonPoint.properties.name;\n informationDesksName.className = 'information-desks-name';\n informationDesksTooltip.appendChild(informationDesksName);\n layer.bindTooltip(informationDesksTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.currentTrek.points_reference) {\n const currentPointsReferenceFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n currentPointsReferenceFeatureCollection.features.push({\n type: 'Feature',\n properties: {},\n geometry: state.currentTrek.points_reference,\n });\n\n let index = 0;\n this.currentPointsReferenceLayer = L.geoJSON(currentPointsReferenceFeatureCollection, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n index += 1;\n return L.marker(latlng, {\n icon: L.divIcon({\n html: index,\n className: 'point-reference-icon',\n iconSize: 24,\n } as any),\n autoPanOnFocus: false,\n interactive: false,\n } as any);\n },\n });\n }\n const elevationOptions = {\n srcFolder: 'https://unpkg.com/@raruto/leaflet-elevation/src/',\n elevationDiv: `#elevation`,\n theme: 'custom-theme',\n detached: true,\n height: 250,\n wptIcons: false,\n wptLabels: false,\n collapsed: false,\n autohide: false,\n distanceMarkers: false,\n hotline: false,\n closeBtn: false,\n summary: false,\n time: false,\n timestamps: false,\n legend: false,\n downloadLink: false,\n autofitBounds: false,\n ruler: false,\n edgeScale: false,\n waypoints: false,\n almostOver: false,\n speed: false,\n slope: false,\n acceleration: false,\n reverseCoords: false,\n imperial: false,\n };\n this.elevationControl = (L.control as any).elevation({ ...elevationOptions }).addTo(this.map);\n const elevation = JSON.stringify({\n name: `${state.currentTrek.name}`,\n type: 'FeatureCollection',\n features: [{ type: 'Feature', geometry: { type: 'LineString', coordinates: state.currentTrek.geometry.coordinates }, properties: null }],\n });\n (this.elevationControl as any).load(elevation);\n\n const overlays = {};\n if (this.currentPointsReferenceLayer) {\n overlays[translate[state.language].layers.pointsReference] = this.currentPointsReferenceLayer;\n }\n if (this.currentParkingLayer) {\n overlays[translate[state.language].layers.parking] = this.currentParkingLayer;\n }\n if (this.currentSensitiveAreasLayer) {\n overlays[translate[state.language].layers.sensitiveArea] = this.currentSensitiveAreasLayer;\n }\n if (this.currentInformationDesksLayer) {\n overlays[translate[state.language].layers.informationPlaces] = this.currentInformationDesksLayer;\n }\n if (this.currentPoisLayer) {\n overlays[translate[state.language].layers.pois] = this.currentPoisLayer;\n }\n this.layersControl = L.control.layers(null, overlays, { collapsed: true }).addTo(this.map);\n this.handleLayersControlEvent();\n\n this.bounds = L.latLngBounds(state.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n this.bounds && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n handleLayersControlEvent() {\n const userLayersState: HTMLInputElement[] = (this.layersControl as any)._layerControlInputs;\n userLayersState.forEach((userLayerState: any) => {\n userLayerState.onchange = event => {\n this.userLayersState[userLayerState.layerId] = (event.target as any).checked;\n };\n });\n }\n\n removeTrek() {\n if (this.layersControl) {\n this.map.removeControl(this.layersControl);\n this.layersControl = null;\n }\n\n if (this.elevationControl) {\n (this.elevationControl as any).clear();\n this.map.removeControl(this.elevationControl);\n this.elevationControl = null;\n }\n\n if (this.currentTrekLayer) {\n this.map.removeLayer(this.currentTrekLayer);\n this.currentTrekLayer = null;\n }\n\n if (this.currentDepartureArrivalLayer) {\n this.map.removeLayer(this.currentDepartureArrivalLayer);\n this.currentDepartureArrivalLayer = null;\n }\n\n if (this.currentParkingLayer) {\n this.map.removeLayer(this.currentParkingLayer);\n this.currentParkingLayer = null;\n }\n\n if (this.currentSensitiveAreasLayer) {\n this.map.removeLayer(this.currentSensitiveAreasLayer);\n this.currentSensitiveAreasLayer = null;\n }\n\n if (this.currentPoisLayer) {\n this.map.removeLayer(this.currentPoisLayer);\n this.currentPoisLayer = null;\n }\n\n if (this.currentInformationDesksLayer) {\n this.map.removeLayer(this.currentInformationDesksLayer);\n this.currentInformationDesksLayer = null;\n }\n\n if (this.currentPointsReferenceLayer) {\n this.map.removeLayer(this.currentPointsReferenceLayer);\n this.currentPointsReferenceLayer = null;\n }\n }\n\n disconnectedCallback() {\n if (this.resetStoreOnDisconnected) {\n reset();\n }\n }\n\n render() {\n const layersImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/layers.svg`);\n return (\n <Host\n style={{\n '--color-primary-app': this.colorPrimaryApp,\n '--color-on-surface': this.colorOnSurface,\n '--color-primary-container': this.colorPrimaryContainer,\n '--color-on-primary-container': this.colorOnPrimaryContainer,\n '--color-background': this.colorBackground,\n '--color-departure-icon': this.colorDepartureIcon,\n '--color-arrival-icon': this.colorArrivalIcon,\n '--color-poi-icon': this.colorPoiIcon,\n '--color-trek-line': this.colorTrekLine,\n '--layers-image-src': `url(${layersImageSrc})`,\n '--map-bottom-space-height': this.isLargeView ? '0px' : '70px',\n }}\n >\n <div id=\"map\" style={{}} class={state.currentTrek ? 'trek-map' : 'treks-map'} ref={el => (this.mapRef = el)}></div>\n {state.currentTrek && (\n <div>\n <div id=\"elevation\" ref={el => (this.elevationRef = el)}></div>\n <div class=\"map-bottom-space\"></div>\n </div>\n )}\n\n {!this.mapIsReady && (\n <div class=\"map-loader-container\">\n <span class=\"loader\"></span>\n </div>\n )}\n </Host>\n );\n }\n}\n"]}
|
|
@@ -684,12 +684,13 @@ grw-trek-detail {
|
|
|
684
684
|
font-size: 16px;
|
|
685
685
|
line-height: 24px;
|
|
686
686
|
font-weight: 500;
|
|
687
|
-
margin-bottom: 8px;
|
|
688
687
|
}
|
|
689
688
|
.trek-detail-container .downloads-container .links-container {
|
|
690
689
|
display: flex;
|
|
690
|
+
flex-wrap: wrap;
|
|
691
691
|
}
|
|
692
692
|
.trek-detail-container .downloads-container .links-container a {
|
|
693
|
+
margin-top: 8px;
|
|
693
694
|
background-color: var(--color-primary-container);
|
|
694
695
|
color: var(--color-on-primary-container);
|
|
695
696
|
border-radius: 8px;
|
|
@@ -708,7 +709,7 @@ grw-trek-detail {
|
|
|
708
709
|
text-decoration: none;
|
|
709
710
|
}
|
|
710
711
|
.trek-detail-container .downloads-container .links-container a:nth-child(2) {
|
|
711
|
-
margin: 0px 12px;
|
|
712
|
+
margin: 8px 12px 0px 12px;
|
|
712
713
|
}
|
|
713
714
|
.trek-detail-container .downloads-container .links-container a:hover {
|
|
714
715
|
box-shadow: var(--elevation-2);
|
|
Binary file
|
|
Binary file
|