@geotrekce/geotrek-rando-widget 0.7.0 → 0.8.0
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 +5 -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-common-button_21.cjs.entry.js +2 -2
- package/dist/cjs/grw-common-button_21.cjs.entry.js.br +0 -0
- package/dist/cjs/grw-common-button_21.cjs.entry.js.gz +0 -0
- package/dist/cjs/grw-common-button_21.cjs.entry.js.map +1 -1
- package/dist/cjs/grw-information-desk_6.cjs.entry.js +11 -5
- package/dist/cjs/grw-information-desk_6.cjs.entry.js.br +0 -0
- package/dist/cjs/grw-information-desk_6.cjs.entry.js.gz +0 -0
- package/dist/cjs/grw-information-desk_6.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 +1 -1
- 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 +22 -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-filters/grw-filters.css +1 -1
- package/dist/collection/components/grw-filters/grw-filters.css.br +0 -0
- package/dist/collection/components/grw-filters/grw-filters.css.gz +0 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.css +2 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.css.br +0 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.css.gz +0 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.js +4 -1
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.js.br +0 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.js.gz +0 -0
- package/dist/collection/components/grw-touristic-content-card/grw-touristic-content-card.js.map +1 -1
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.css +2 -0
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.css.br +0 -0
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.css.gz +0 -0
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.js +4 -1
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.js.br +0 -0
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.js.gz +0 -0
- package/dist/collection/components/grw-touristic-event-card/grw-touristic-event-card.js.map +1 -1
- package/dist/collection/components/grw-trek-card/grw-trek-card.css +3 -1
- package/dist/collection/components/grw-trek-card/grw-trek-card.css.br +0 -0
- package/dist/collection/components/grw-trek-card/grw-trek-card.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/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 +5 -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-common-button_21.entry.js +2 -2
- package/dist/esm/grw-common-button_21.entry.js.br +0 -0
- package/dist/esm/grw-common-button_21.entry.js.gz +0 -0
- package/dist/esm/grw-common-button_21.entry.js.map +1 -1
- package/dist/esm/grw-information-desk_6.entry.js +11 -5
- package/dist/esm/grw-information-desk_6.entry.js.br +0 -0
- package/dist/esm/grw-information-desk_6.entry.js.gz +0 -0
- package/dist/esm/grw-information-desk_6.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-common-button_21.entry.js +2 -2
- package/dist/esm-es5/grw-common-button_21.entry.js.br +0 -0
- package/dist/esm-es5/grw-common-button_21.entry.js.gz +0 -0
- package/dist/esm-es5/grw-common-button_21.entry.js.map +1 -1
- package/dist/esm-es5/grw-information-desk_6.entry.js +1 -1
- package/dist/esm-es5/grw-information-desk_6.entry.js.br +0 -0
- package/dist/esm-es5/grw-information-desk_6.entry.js.gz +0 -0
- package/dist/esm-es5/grw-information-desk_6.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-e2a73eac.entry.js → p-40e69a46.entry.js} +4 -4
- package/dist/geotrek-rando-widget/p-40e69a46.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-40e69a46.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-40e69a46.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/{p-d2fb6fb4.system.entry.js → p-4c85680a.system.entry.js} +2 -2
- package/dist/geotrek-rando-widget/p-4c85680a.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-4c85680a.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-4c85680a.system.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js +2 -0
- package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-83f9c2c2.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/{p-9d826a4c.entry.js → p-ae129a99.entry.js} +2 -2
- package/dist/geotrek-rando-widget/p-ae129a99.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-ae129a99.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-ae129a99.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/p-b02ae30d.system.js +1 -1
- package/dist/geotrek-rando-widget/p-b02ae30d.system.js.br +0 -0
- package/dist/geotrek-rando-widget/p-b02ae30d.system.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-b02ae30d.system.js.map +1 -1
- package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js +2 -0
- package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-ced23fd3.system.entry.js.map +1 -0
- package/dist/geotrek-rando-widget/{p-05f3277d.system.entry.js → p-dfd293bb.system.entry.js} +3 -3
- package/dist/geotrek-rando-widget/p-dfd293bb.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-dfd293bb.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-dfd293bb.system.entry.js.map +1 -0
- package/dist/types/components/grw-app/grw-app.d.ts +1 -0
- package/dist/types/components.d.ts +2 -0
- package/package.json +1 -1
- package/dist/geotrek-rando-widget/p-05f3277d.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-05f3277d.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-05f3277d.system.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-9d826a4c.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-9d826a4c.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-9d826a4c.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js +0 -2
- package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-ae17f2a9.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-d2fb6fb4.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-d2fb6fb4.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-d2fb6fb4.system.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-e2a73eac.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-e2a73eac.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-e2a73eac.entry.js.map +0 -1
- package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js +0 -2
- package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js.br +0 -0
- package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js.gz +0 -0
- package/dist/geotrek-rando-widget/p-f2af961a.system.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"grw-common-button.grw-extended-fab.grw-filters.grw-loader.grw-map.grw-search.grw-segmented-segment.grw-select-language.grw-switch.grw-touristic-content-detail.grw-touristic-content-provider.grw-touristic-contents-list.grw-touristic-contents-provider.grw-touristic-event-detail.grw-touristic-event-provider.grw-touristic-events-list.grw-touristic-events-provider.grw-trek-detail.grw-trek-provider.grw-treks-list.grw-treks-provider.entry.cjs.js","mappings":"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","names":["h","Host","treksFilters","state","handleTreksFiltersAndSearch","touristicContentsFilters","touristicEventsFilters","handleTouristicContentsFiltersAndSearch","handleTouristicEventsFiltersAndSearch","translate","require$$0","this","L","tileLayerOffline","onChange","getDataInStore","arrayBufferToBlob","getAssetPath","index","getTrekGeometry","getWindow","now","nextTick","getDocument","elementOffset","createElementIfNotDefined","createElement","elementTransitionEnd","Swiper","Navigation","Pagination","Keyboard","FreeMode","getAllDataInStore","setFilesFromStore","imagesRegExp","GrwTouristicContentsList","writeOrUpdateTilesInStore","getTreksList","getDistricts","writeOrUpdateDataInStore","writeOrUpdateFilesInStore","getTrek","formatDuration","formatLength","formatAscent","formatDescent","durations","lengths","elevations","trekIsAvailableOffline"],"sources":["./src/components/grw-common-button/grw-common-button.scss?tag=grw-common-button&encapsulation=shadow","./src/components/grw-common-button/grw-common-button.tsx","./src/components/grw-extended-fab/grw-extended-fab.scss?tag=grw-extended-fab&encapsulation=shadow","./src/components/grw-extended-fab/grw-extended-fab.tsx","./src/components/grw-filters/grw-filters.scss?tag=grw-filters&encapsulation=shadow","./src/components/grw-filters/grw-filters.tsx","./src/components/grw-loader/grw-loader.scss?tag=grw-loader&encapsulation=shadow","./src/components/grw-loader/grw-loader.tsx","./node_modules/leaflet-rotate/dist/leaflet-rotate.js","./node_modules/leaflet.locatecontrol/src/L.Control.Locate.js","./node_modules/leaflet-i18n/Leaflet.i18n.js","./node_modules/@raruto/leaflet-elevation/dist/leaflet-elevation.min.js","./node_modules/leaflet.markercluster/dist/leaflet.markercluster.js","./src/components/grw-map/grw-map.scss?tag=grw-map&encapsulation=shadow","./src/components/grw-map/grw-map.tsx","./src/components/grw-search/grw-search.scss?tag=grw-search&encapsulation=shadow","./src/components/grw-search/grw-search.tsx","./src/components/grw-segmented-segment/grw-segmented-segment.scss?tag=grw-segmented-segment&encapsulation=shadow","./src/components/grw-segmented-segment/grw-segmented-segment.tsx","./src/components/grw-select-language/grw-select-language.scss?tag=grw-select-language&encapsulation=shadow","./src/components/grw-select-language/grw-select-language.tsx","./src/components/grw-switch/grw-switch.scss?tag=grw-switch&encapsulation=shadow","./src/components/grw-switch/grw-switch.tsx","./node_modules/swiper/modules/mousewheel/mousewheel.js","./node_modules/swiper/modules/scrollbar/scrollbar.js","./node_modules/swiper/modules/free-mode/free-mode.js","./src/components/grw-touristic-content-detail/grw-touristic-content-detail.scss?tag=grw-touristic-content-detail&encapsulation=shadow","./src/components/grw-touristic-content-detail/grw-touristic-content-detail.tsx","./src/services/touristic-contents.service.ts","./src/store/grw-touristic-content-provider.tsx","./src/components/grw-touristic-contents-list/grw-touristic-contents-list.scss?tag=grw-touristic-contents-list&encapsulation=shadow","./src/components/grw-touristic-contents-list/grw-touristic-contents-list.tsx","./src/store/grw-touristic-contents-provider.tsx","./src/components/grw-touristic-event-detail/grw-touristic-event-detail.scss?tag=grw-touristic-event-detail&encapsulation=shadow","./src/components/grw-touristic-event-detail/grw-touristic-event-detail.tsx","./src/services/touristic-events.service.ts","./src/store/grw-touristic-event-provider.tsx","./src/components/grw-touristic-events-list/grw-touristic-events-list.scss?tag=grw-touristic-events-list&encapsulation=shadow","./src/components/grw-touristic-events-list/grw-touristic-events-list.tsx","./src/store/grw-touristic-events-provider.tsx","./src/components/grw-trek-detail/grw-trek-detail.scss?tag=grw-trek-detail&encapsulation=shadow","./src/components/grw-trek-detail/grw-trek-detail.tsx","./src/store/grw-trek-provider.tsx","./src/components/grw-treks-list/grw-treks-list.scss?tag=grw-treks-list&encapsulation=shadow","./src/components/grw-treks-list/grw-treks-list.tsx","./src/store/grw-treks-provider.tsx"],"sourcesContent":[".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.common-button {\n user-select: none;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n padding: 12px 24px;\n border-radius: var(--border-radius, 20px);\n box-sizing: border-box;\n position: relative;\n gap: 8px;\n white-space: nowrap;\n line-height: 20px;\n letter-spacing: 0.1px;\n font-family: var(--font-family);\n font-size: 14px;\n font-weight: 500;\n box-shadow: var(--elevation-1);\n transition: box-shadow 0.2s ease-in-out 0s;\n .common-button-icon {\n font-size: 18px;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-common-button',\n styleUrl: 'grw-common-button.scss',\n shadow: true,\n})\nexport class GrwCommonButton {\n @Prop() action: Function;\n @Prop() icon: string;\n @Prop() name: string;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <button part=\"common-button\" class=\"common-button\" onClick={() => this.action()}>\n {/* @ts-ignore */}\n <span part=\"common-button-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n {this.icon}\n </span>\n <span part=\"common-button-label\" class=\"label\">\n {this.name}\n </span>\n </button>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.map-visibility-button {\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n text-decoration: none;\n padding: 16px;\n background-color: var(--fab-background-color);\n color: var(--fab-color);\n box-shadow: var(--elevation-1);\n border-radius: var(--border-radius, 12px);\n height: 56px;\n font-family: var(--font-family);\n font-size: 16px;\n width: unset;\n &:hover {\n box-shadow: var(--elevation-4);\n }\n .icon {\n font-size: 24px;\n margin-right: 8px;\n color: var(--fab-color);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-extended-fab',\n styleUrl: 'grw-extended-fab.scss',\n shadow: true,\n})\nexport class GrwExtendedFab {\n @Prop() action: Function;\n @Prop() icon: Function;\n @Prop() name: Function;\n @Prop() display: string;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <button part=\"map-visibility-button\" class=\"map-visibility-button\" onClick={() => this.action()} style={{ display: this.display }}>\n {/* @ts-ignore */}\n <span part=\"map-visibility-button-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n {this.icon()}\n </span>\n <span part=\"map-visibility-button-label\" class=\"label\">\n {this.name()}\n </span>\n </button>\n </Host>\n );\n }\n}\n",".options-container {\n height: 100%;\n position: absolute;\n width: 100%;\n z-index: 1100;\n top: 0px;\n}\n\n.filters-container {\n background-color: var(--color-background);\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1100;\n .filters-treks-container,\n .filters-touristic-contents-container,\n .filters-touristic-events-container {\n height: 100%;\n }\n .segmented-buttons-container {\n display: flex;\n justify-content: center;\n width: calc(100% - 32px);\n height: 40px;\n margin: 16px;\n border: 1px solid var(--color-outline);\n border-radius: var(--border-radius, 20px);\n line-height: 20px;\n .segment {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n -webkit-tap-highlight-color: transparent;\n color: var(--color-on-surface-variant);\n background-color: transparent;\n border-radius: 0px;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n font-family: var(--font-family);\n &:first-child {\n border-top-left-radius: var(--border-radius, 20px);\n border-bottom-left-radius: var(--border-radius, 20px);\n }\n &:not(:last-child) {\n border-right: 1px solid var(--color-outline);\n }\n &:last-child {\n border-top-right-radius: var(--border-radius, 20px);\n border-bottom-right-radius: var(--border-radius, 20px);\n }\n }\n .selected-segment {\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n }\n }\n}\n\n.filters-segment-container {\n overflow-y: visible;\n height: 100%;\n max-height: calc(100% - 64px - 42px - 32px);\n}\n\n.back-filters-container {\n background-color: rgba(0, 0, 0, 0.5);\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 1099;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.filters-options-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 64px;\n margin: 0px 16px;\n .filters-options-buttons-container {\n display: flex;\n .filter-option-button {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n margin: 8px 0px 0px 8px;\n padding: 8px 16px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: var(--elevation-0);\n border: none;\n -webkit-tap-highlight-color: transparent;\n line-height: 20px;\n color: var(--color-on-primary-container);\n background-color: transparent;\n font-family: var(--font-family);\n }\n }\n}\n\n.segment-container {\n overflow: scroll;\n height: 100%;\n}\n\n.filter-container {\n &:not(:last-child) {\n &::after {\n content: '';\n display: block;\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n }\n }\n &:last-child {\n margin-bottom: 16px;\n }\n}\n\n.current-treks-within-bounds-length {\n color: var(--color-on-surface-variant);\n font-family: var(--font-family);\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport {\n treksFilters,\n handleTreksFiltersAndSearch,\n touristicContentsFilters,\n handleTouristicContentsFiltersAndSearch,\n handleTouristicEventsFiltersAndSearch,\n touristicEventsFilters,\n} from 'utils/utils';\n\n@Component({\n tag: 'grw-filters',\n styleUrl: 'grw-filters.scss',\n shadow: true,\n})\nexport class GrwFilters {\n @Event() resetFilter: EventEmitter;\n\n @State() selectedSegment = 'selectedActivitiesFilters';\n\n @Prop() handleFilters: Function;\n\n @Prop() fontFamily = 'Roboto';\n\n handleEraseTreksFilters() {\n treksFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedThemesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTreks = handleTreksFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTreksFilters() {\n this.handleFilters();\n }\n\n handleSelectedSegment(selectedSegment) {\n this.selectedSegment = selectedSegment;\n }\n\n handleSegment(segment) {\n if (state.mode === 'treks') {\n return treksFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n } else if (state.mode === 'touristicContents') {\n return touristicContentsFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n } else if (state.mode === 'touristicEvents') {\n return touristicEventsFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n }\n }\n\n handleEraseTouristicContentsFilters() {\n touristicContentsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTouristicContentsFilters() {\n this.handleFilters();\n }\n\n handleEraseTouristicEventsFilters() {\n touristicEventsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTouristicEventsFilters() {\n this.handleFilters();\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <div part=\"options-container\" class=\"options-container\">\n <div part=\"filters-container\" class=\"filters-container\">\n {state.mode === 'treks' && (\n <div part=\"filters-treks-container\" class=\"filters-treks-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.treksWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" 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 <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTreksFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTreksFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].home.segment.treks} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedThemesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedThemesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedThemesFilters')}\n >\n {translate[state.language].themes} {state.selectedThemesFilters !== 0 && `(${state.selectedThemesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"treks-activities-segment-container\">\n {state['practices'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].practice}\n filterType=\"practices\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n filterPlaceholder={translate[state.language].placeholderPractices}\n ></grw-filter>\n </div>\n )}\n {state['difficulties'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].difficulty}\n filterType=\"difficulties\"\n filterNameProperty=\"label\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['durations'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].duration}\n filterType=\"durations\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['lengths'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].length}\n filterType=\"lengths\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['elevations'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].elevation}\n filterType=\"elevations\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['routes'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].routes}\n filterType=\"routes\"\n filterNameProperty=\"route\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['accessibilities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].accessibility}\n filterType=\"accessibilities\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['labels'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].activities}\n filterType=\"labels\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedThemesFilters' && (\n <div part=\"filter-container\" class=\"segment-container\" key=\"treks-themes-segment-container\">\n {state['themes'].length > 0 && (\n <div part=\"\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].themes}\n filterPlaceholder={translate[state.language].placeholderThemes}\n filterType=\"themes\"\n filterNameProperty=\"label\"\n segment=\"selectedThemesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"treks-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n {state.mode === 'touristicContents' && (\n <div part=\"filters-touristic-contents-container\" class=\"filters-touristic-contents-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.touristicContentsWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.touristicContentsWithinBounds.length} ${\n state.touristicContentsWithinBounds.length > 1 ? translate[state.language].home.touristicContents : translate[state.language].home.touristicContent\n }`}</div>\n )}\n <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTouristicContentsFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTouristicContentsFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].services} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-activities-segment-container\">\n {state['touristicContentCategories'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].category}\n filterType=\"touristicContentCategories\"\n filterNameProperty=\"label\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n {state.mode === 'touristicEvents' && (\n <div part=\"filters-touristic-events-container\" class=\"filters-touristic-events-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.touristicEventsWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.touristicEventsWithinBounds.length} ${\n state.touristicEventsWithinBounds.length > 1 ? translate[state.language].home.touristicEvents : translate[state.language].home.touristicEvent\n }`}</div>\n )}\n <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTouristicEventsFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTouristicEventsFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].services} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-activities-segment-container\">\n {state['touristicEventTypes'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].type}\n filterPlaceholder={translate[state.language].placeholderType}\n filterType=\"touristicEventTypes\"\n filterNameProperty=\"type\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-events-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n <div part=\"back-filters-container\" class=\"back-filters-container\" onClick={() => this.handleFilters()}></div>\n </div>\n </Host>\n );\n }\n}\n",".loader {\n width: 48px;\n height: 48px;\n border: 5px solid var(--color-primary-container);\n border-bottom-color: var(--color-on-primary-container);\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: rotation 1s linear infinite;\n}\n\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-loader',\n styleUrl: 'grw-loader.scss',\n shadow: true,\n})\nexport class GrwLoader {\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n\n render() {\n return (\n <Host style={{ '--color-primary-container': this.colorPrimaryContainer, '--color-on-primary-container': this.colorOnPrimaryContainer }}>\n <span part=\"loader\" class=\"loader\"></span>\n </Host>\n );\n }\n}\n","!function(t){\"function\"==typeof define&&define.amd?define(t):t()}((function(){\"use strict\";const t=L.extend({},L.DomUtil);L.extend(L.DomUtil,{setTransform:function(o,e,i,n,a){var s=e||new L.Point(0,0);if(!n)return e=s._round(),t.setTransform.apply(this,arguments);s=s.rotateFrom(n,a),o.style[L.DomUtil.TRANSFORM]=\"translate3d(\"+s.x+\"px,\"+s.y+\"px,0)\"+(i?\" scale(\"+i+\")\":\"\")+\" rotate(\"+n+\"rad)\"},setPosition:function(o,e,i,n,a){if(!i)return t.setPosition.apply(this,arguments);o._leaflet_pos=e,L.Browser.any3d?L.DomUtil.setTransform(o,e,a,i,n):(o.style.left=e.x+\"px\",o.style.top=e.y+\"px\")},DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI}),L.Draggable.include({}),L.extend(L.Point.prototype,{rotate:function(t){return this.rotateFrom(t,new L.Point(0,0))},rotateFrom:function(t,o){if(!t)return this;var e=Math.sin(t),i=Math.cos(t),n=o.x,a=o.y,s=this.x-n,r=this.y-a;return new L.Point(s*i-r*e+n,s*e+r*i+a)}});const o=L.extend({},L.DivOverlay.prototype);L.DivOverlay.include({getEvents:function(){return L.extend(o.getEvents.apply(this,arguments),{rotate:this._updatePosition})},_updatePosition:function(){if(this._map&&(o._updatePosition.apply(this,arguments),this._map&&this._map._rotate&&this._zoomAnimated)){var t=this._getAnchor(),e=L.DomUtil.getPosition(this._container).subtract(t);L.DomUtil.setPosition(this._container,this._map.rotatedPointToMapPanePoint(e).add(t))}}});const e=L.extend({},L.Popup.prototype);L.Popup.include({_animateZoom:function(t){if(e._animateZoom.apply(this,arguments),this._map&&this._map._rotate){var o=this._getAnchor(),i=L.DomUtil.getPosition(this._container).subtract(o);L.DomUtil.setPosition(this._container,this._map.rotatedPointToMapPanePoint(i).add(o))}},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress))if(this._autopanning)this._autopanning=!1;else{var t=this._map,o=parseInt(L.DomUtil.getStyle(this._container,\"marginBottom\"),10)||0,e=this._container.offsetHeight+o,i=this._containerWidth,n=new L.Point(this._containerLeft,-e-this._containerBottom);n._add(L.DomUtil.getPosition(this._container));var a=n._add(this._map._getMapPanePos()),s=L.point(this.options.autoPanPadding),r=L.point(this.options.autoPanPaddingTopLeft||s),h=L.point(this.options.autoPanPaddingBottomRight||s),_=t.getSize(),d=0,p=0;a.x+i+h.x>_.x&&(d=a.x+i-_.x+h.x),a.x-d-r.x<0&&(d=a.x-r.x),a.y+e+h.y>_.y&&(p=a.y+e-_.y+h.y),a.y-p-r.y<0&&(p=a.y-r.y),(d||p)&&(this.options.keepInView&&(this._autopanning=!0),t.fire(\"autopanstart\").panBy([d,p]))}}});const i=L.extend({},L.Tooltip.prototype);L.Tooltip.include({_animateZoom:function(t){if(!this._map._rotate)return i._animateZoom.apply(this,arguments);var o=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);o=this._map.rotatedPointToMapPanePoint(o),this._setPosition(o)},_updatePosition:function(){if(!this._map._rotate)return i._updatePosition.apply(this,arguments);var t=this._map.latLngToLayerPoint(this._latlng);t=this._map.rotatedPointToMapPanePoint(t),this._setPosition(t)}}),L.extend({},L.Icon.prototype),L.Icon.include({_setIconStyles:function(t,o){var e=this.options,i=e[o+\"Size\"];\"number\"==typeof i&&(i=[i,i]);var n=L.point(i),a=L.point(\"shadow\"===o&&e.shadowAnchor||e.iconAnchor||n&&n.divideBy(2,!0));t.className=\"leaflet-marker-\"+o+\" \"+(e.className||\"\"),a&&(t.style.marginLeft=-a.x+\"px\",t.style.marginTop=-a.y+\"px\",t.style[L.DomUtil.TRANSFORM+\"Origin\"]=a.x+\"px \"+a.y+\"px 0px\"),n&&(t.style.width=n.x+\"px\",t.style.height=n.y+\"px\")}});const n=L.extend({},L.Marker.prototype);var a;L.Marker.mergeOptions({rotation:0,rotateWithView:!1,scale:void 0});var s={_onDrag:function(t){var o=this._marker,e=o.options.rotation||o.options.rotateWithView,i=o._shadow,n=L.DomUtil.getPosition(o._icon);!e&&i&&L.DomUtil.setPosition(i,n),o._map._rotate&&(n=o._map.mapPanePointToRotatedPoint(n));var a=o._map.layerPointToLatLng(n);o._latlng=a,t.latlng=a,t.oldLatLng=this._oldLatLng,e?o.setLatLng(a):o.fire(\"move\",t),o.fire(\"drag\",t)},_onDragEnd:function(t){this._marker._map._rotate&&this._marker.update(),a._onDragEnd.apply(this,arguments)}};L.Marker.include({getEvents:function(){return L.extend(n.getEvents.apply(this,arguments),{rotate:this.update})},_initInteraction:function(){var t=n._initInteraction.apply(this,arguments);return this.dragging&&this.dragging.enabled()&&this._map&&this._map._rotate&&(a=a||Object.getPrototypeOf(this.dragging),this.dragging.disable(),Object.assign(this.dragging,{_onDrag:s._onDrag.bind(this.dragging),_onDragEnd:s._onDragEnd.bind(this.dragging)}),this.dragging.enable()),t},_setPos:function(t){this._map._rotate&&(t=this._map.rotatedPointToMapPanePoint(t));var o=this.options.rotation||0;this.options.rotateWithView&&(o+=this._map._bearing),this._icon&&L.DomUtil.setPosition(this._icon,t,o,t,this.options.scale),this._shadow&&L.DomUtil.setPosition(this._shadow,t,o,t,this.options.scale),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},setRotation:function(t){this.options.rotation=t,this.update()}});const r=L.extend({},L.GridLayer.prototype);L.GridLayer.include({getEvents:function(){var t=r.getEvents.apply(this,arguments);return this._map._rotate&&!this.options.updateWhenIdle&&(this._onRotate||(this._onRotate=L.Util.throttle(this._onMoveEnd,this.options.updateInterval,this)),t.rotate=this._onRotate),t},_getTiledPixelBounds:function(t){return this._map._rotate?this._map._getNewPixelBounds(t,this._tileZoom):r._getTiledPixelBounds.apply(this,arguments)}});const h=L.extend({},L.Renderer.prototype);L.Renderer.include({getEvents:function(){return L.extend(h.getEvents.apply(this,arguments),{rotate:this._update})},onAdd:function(){h.onAdd.apply(this,arguments),L.version<=\"1.9.3\"&&this._container.classList.add(\"leaflet-zoom-animated\")},_updateTransform:function(t,o){if(!this._map._rotate)return h._updateTransform.apply(this,arguments);var e=this._map.getZoomScale(o,this._zoom),i=this._map._latLngToNewLayerPoint(this._topLeft,o,t);L.DomUtil.setTransform(this._container,i,e)},_update:function(){if(!this._map._rotate)return h._update.apply(this,arguments);this._bounds=this._map._getPaddedPixelBounds(this.options.padding),this._topLeft=this._map.layerPointToLatLng(this._bounds.min),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}});const _=L.extend({},L.Map.prototype);L.Map.mergeOptions({rotate:!1,bearing:0}),L.Map.include({initialize:function(t,o){o.rotate&&(this._rotate=!0,this._bearing=0),_.initialize.apply(this,arguments),this.options.rotate&&this.setBearing(this.options.bearing)},containerPointToLayerPoint:function(t){return this._rotate?L.point(t).subtract(this._getMapPanePos()).rotateFrom(-this._bearing,this._getRotatePanePos()).subtract(this._getRotatePanePos()):_.containerPointToLayerPoint.apply(this,arguments)},layerPointToContainerPoint:function(t){return this._rotate?L.point(t).add(this._getRotatePanePos()).rotateFrom(this._bearing,this._getRotatePanePos()).add(this._getMapPanePos()):_.layerPointToContainerPoint.apply(this,arguments)},rotatedPointToMapPanePoint:function(t){return L.point(t).rotate(this._bearing)._add(this._getRotatePanePos())},mapPanePointToRotatedPoint:function(t){return L.point(t)._subtract(this._getRotatePanePos()).rotate(-this._bearing)},mapBoundsToContainerBounds:function(t){if(!this._rotate&&_.mapBoundsToContainerBounds)return _.mapBoundsToContainerBounds.apply(this,arguments);const o=this.getPixelOrigin(),e=this.layerPointToContainerPoint(this.project(t.getNorthWest())._subtract(o)),i=this.layerPointToContainerPoint(this.project(t.getNorthEast())._subtract(o)),n=this.layerPointToContainerPoint(this.project(t.getSouthWest())._subtract(o)),a=this.layerPointToContainerPoint(this.project(t.getSouthEast())._subtract(o));return L.bounds([L.point(Math.min(e.x,i.x,a.x,n.x),Math.min(e.y,i.y,a.y,n.y)),L.point(Math.max(e.x,i.x,a.x,n.x),Math.max(e.y,i.y,a.y,n.y))])},getBounds:function(){if(!this._rotate)return _.getBounds.apply(this,arguments);var t=this.getSize();return new L.LatLngBounds([this.containerPointToLatLng([0,0]),this.containerPointToLatLng([t.x,0]),this.containerPointToLatLng([t.x,t.y]),this.containerPointToLatLng([0,t.y])])},setBearing:function(t){if(L.Browser.any3d&&this._rotate){var o=L.Util.wrapNum(t,[0,360])*L.DomUtil.DEG_TO_RAD,e=this._getPixelCenter(),i=this._getRotatePanePos().rotateFrom(-this._bearing,e),n=i.rotateFrom(o,e);L.DomUtil.setPosition(this._rotatePane,i,o,e),this._pivot=e,this._bearing=o,this._rotatePanePos=n,this.fire(\"rotate\")}},getBearing:function(){return this._bearing*L.DomUtil.RAD_TO_DEG},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane(\"mapPane\",this._container),L.DomUtil.setPosition(this._mapPane,new L.Point(0,0)),this._rotate?(this._rotatePane=this.createPane(\"rotatePane\",this._mapPane),this._norotatePane=this.createPane(\"norotatePane\",this._mapPane),this.createPane(\"tilePane\",this._rotatePane),this.createPane(\"overlayPane\",this._rotatePane),this.createPane(\"shadowPane\",this._norotatePane),this.createPane(\"markerPane\",this._norotatePane),this.createPane(\"tooltipPane\",this._norotatePane),this.createPane(\"popupPane\",this._norotatePane)):(this.createPane(\"tilePane\"),this.createPane(\"overlayPane\"),this.createPane(\"shadowPane\"),this.createPane(\"markerPane\"),this.createPane(\"tooltipPane\"),this.createPane(\"popupPane\")),this.options.markerZoomAnimation||(L.DomUtil.addClass(t.markerPane,\"leaflet-zoom-hide\"),L.DomUtil.addClass(t.shadowPane,\"leaflet-zoom-hide\"))},panInside(t,o){if(!this._rotate||Math.abs(this._bearing).toFixed(1)<.1)return _.panInside.apply(this,arguments);o=o||{};const e=L.point(o.paddingTopLeft||o.padding||[0,0]),i=L.point(o.paddingBottomRight||o.padding||[0,0]),n=this._container.getBoundingClientRect(),a=this.latLngToContainerPoint(t),s=L.bounds([L.point(n),L.point(n).add(this.getSize())]),r=s.getCenter(),h=L.bounds([s.min.add(e),s.max.subtract(i)]),d=h.getSize();if(!h.contains(a)){this._enforcingBounds=!0;const t=a.subtract(h.getCenter()),e=h.extend(a).getSize().subtract(d);r.x+=t.x<0?-e.x:e.x,r.y+=t.y<0?-e.y:e.y,this.panTo(this.containerPointToLatLng(r),o),this._enforcingBounds=!1}return this},getBoundsZoom(t,o,e){if(!this._rotate||Math.abs(this._bearing).toFixed(1)<.1)return _.getBoundsZoom.apply(this,arguments);t=L.latLngBounds(t),e=L.point(e||[0,0]);let i=this.getZoom()||0;const n=this.getMinZoom(),a=this.getMaxZoom(),s=this.getSize().subtract(e),r=this.mapBoundsToContainerBounds(t).getSize(),h=this.options.zoomSnap,d=s.x/r.x,p=s.y/r.y,l=o?Math.max(d,p):Math.min(d,p);return i=this.getScaleZoom(l,i),h&&(i=Math.round(i/(h/100))*(h/100),i=o?Math.ceil(i/h)*h:Math.floor(i/h)*h),Math.max(n,Math.min(a,i))},_getCenterOffset:function(t){var o=_._getCenterOffset.apply(this,arguments);return this._rotate&&(o=o.rotate(this._bearing)),o},_getRotatePanePos:function(){return this._rotatePanePos||new L.Point(0,0)},_getNewPixelOrigin:function(t,o){if(!this._rotate)return _._getNewPixelOrigin.apply(this,arguments);var e=this.getSize()._divideBy(2);return this.project(t,o).rotate(this._bearing)._subtract(e)._add(this._getMapPanePos())._add(this._getRotatePanePos()).rotate(-this._bearing)._round()},_getNewPixelBounds:function(t,o){if(t=t||this.getCenter(),o=o||this.getZoom(),!this._rotate&&_._getNewPixelBounds)return _._getNewPixelBounds.apply(this,arguments);var e=this._animatingZoom?Math.max(this._animateToZoom,this.getZoom()):this.getZoom(),i=this.getZoomScale(e,o),n=this.project(t,o).floor(),a=this.getSize(),s=new L.Bounds([this.containerPointToLayerPoint([0,0]).floor(),this.containerPointToLayerPoint([a.x,0]).floor(),this.containerPointToLayerPoint([0,a.y]).floor(),this.containerPointToLayerPoint([a.x,a.y]).floor()]).getSize().divideBy(2*i);return new L.Bounds(n.subtract(s),n.add(s))},_getPixelCenter:function(){return!this._rotate&&_._getPixelCenter?_._getPixelCenter.apply(this,arguments):this.getSize()._divideBy(2)._subtract(this._getMapPanePos())},_getPaddedPixelBounds:function(t){if(!this._rotate&&_._getPaddedPixelBounds)return _._getPaddedPixelBounds.apply(this,arguments);var o=t,e=this.getSize(),i=e.multiplyBy(-o),n=e.multiplyBy(1+o);return new L.Bounds([this.containerPointToLayerPoint([i.x,i.y]).floor(),this.containerPointToLayerPoint([i.x,n.y]).floor(),this.containerPointToLayerPoint([n.x,i.y]).floor(),this.containerPointToLayerPoint([n.x,n.y]).floor()])},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var o=t.coords.latitude,e=t.coords.longitude,i=t.coords.heading,n=new L.LatLng(o,e),a=n.toBounds(t.coords.accuracy),s=this._locateOptions;if(s.setView){var r=this.getBoundsZoom(a);this.setView(n,s.maxZoom?Math.min(r,s.maxZoom):r)}var h={latlng:n,bounds:a,timestamp:t.timestamp,heading:i};for(var _ in t.coords)\"number\"==typeof t.coords[_]&&(h[_]=t.coords[_]);this.fire(\"locationfound\",h)}}}),L.Map.CompassBearing=L.Handler.extend({initialize:function(t){this._map=t,\"ondeviceorientationabsolute\"in window?this.__deviceOrientationEvent=\"deviceorientationabsolute\":\"ondeviceorientation\"in window&&(this.__deviceOrientationEvent=\"deviceorientation\"),this._throttled=L.Util.throttle(this._onDeviceOrientation,100,this)},addHooks:function(){this._map._rotate&&this.__deviceOrientationEvent?L.DomEvent.on(window,this.__deviceOrientationEvent,this._throttled,this):this.disable()},removeHooks:function(){this._map._rotate&&this.__deviceOrientationEvent&&L.DomEvent.off(window,this.__deviceOrientationEvent,this._throttled,this)},_onDeviceOrientation:function(t){var o=t.webkitCompassHeading||t.alpha,e=0;!t.absolute&&t.webkitCompassHeading&&(o=360-o),t.absolute||void 0===window.orientation||(e=window.orientation),this._map.setBearing(o-e)}}),L.Map.addInitHook(\"addHandler\",\"compassBearing\",L.Map.CompassBearing),L.Map.mergeOptions({trackContainerMutation:!1}),L.Map.ContainerMutation=L.Handler.extend({addHooks:function(){this._observer||(this._observer=new MutationObserver(L.Util.bind(this._map.invalidateSize,this._map))),this._observer.observe(this._map.getContainer(),{childList:!1,attributes:!0,characterData:!1,subtree:!1,attributeFilter:[\"style\"]})},removeHooks:function(){this._observer.disconnect()}}),L.Map.addInitHook(\"addHandler\",\"trackContainerMutation\",L.Map.ContainerMutation),L.Map.mergeOptions({bounceAtZoomLimits:!0}),L.Map.TouchGestures=L.Handler.extend({initialize:function(t){this._map=t,this.rotate=!!this._map.options.touchRotate,this.zoom=!!this._map.options.touchZoom},addHooks:function(){L.DomEvent.on(this._map._container,\"touchstart\",this._onTouchStart,this)},removeHooks:function(){L.DomEvent.off(this._map._container,\"touchstart\",this._onTouchStart,this)},_onTouchStart:function(t){var o=this._map;if(t.touches&&2===t.touches.length&&!o._animatingZoom&&!this._zooming&&!this._rotating){var e=o.mouseEventToContainerPoint(t.touches[0]),i=o.mouseEventToContainerPoint(t.touches[1]),n=e.subtract(i);this._centerPoint=o.getSize()._divideBy(2),this._startLatLng=o.containerPointToLatLng(this._centerPoint),this.zoom?(\"center\"!==o.options.touchZoom&&(this._pinchStartLatLng=o.containerPointToLatLng(e.add(i)._divideBy(2))),this._startDist=e.distanceTo(i),this._startZoom=o.getZoom(),this._zooming=!0):this._zooming=!1,this.rotate?(this._startTheta=Math.atan(n.x/n.y),this._startBearing=o.getBearing(),n.y<0&&(this._startBearing+=180),this._rotating=!0):this._rotating=!1,this._moved=!1,o._stop(),L.DomEvent.on(document,\"touchmove\",this._onTouchMove,this).on(document,\"touchend touchcancel\",this._onTouchEnd,this),L.DomEvent.preventDefault(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&(this._zooming||this._rotating)){var o,e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),a=i.subtract(n),s=i.distanceTo(n)/this._startDist;if(this._rotating){var r=(Math.atan(a.x/a.y)-this._startTheta)*L.DomUtil.RAD_TO_DEG;a.y<0&&(r+=180),r&&e.setBearing(this._startBearing-r)}if(this._zooming)if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoom<e.getMinZoom()&&s<1||this._zoom>e.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),\"center\"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{if(o=i._add(n)._divideBy(2)._subtract(this._centerPoint),1===s&&0===o.x&&0===o.y)return;var h=-e.getBearing()*L.DomUtil.DEG_TO_RAD;this._center=e.unproject(e.project(this._pinchStartLatLng).subtract(o.rotate(h)))}this._moved||(e._moveStart(!0,!1),this._moved=!0),L.Util.cancelAnimFrame(this._animRequest);var _=e._move.bind(e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=L.Util.requestAnimFrame(_,this,!0),L.DomEvent.preventDefault(t)}},_onTouchEnd:function(){this._moved&&(this._zooming||this._rotating)?(this._zooming=!1,this._rotating=!1,L.Util.cancelAnimFrame(this._animRequest),L.DomEvent.off(document,\"touchmove\",this._onTouchMove,this).off(document,\"touchend touchcancel\",this._onTouchEnd,this),this.zoom&&(this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom)))):this._zooming=!1}}),L.Map.addInitHook(\"addHandler\",\"touchGestures\",L.Map.TouchGestures),L.Map.mergeOptions({touchRotate:!1}),L.Map.TouchRotate=L.Handler.extend({addHooks:function(){this._map.touchGestures.enable(),this._map.touchGestures.rotate=!0},removeHooks:function(){this._map.touchGestures.rotate=!1}}),L.Map.addInitHook(\"addHandler\",\"touchRotate\",L.Map.TouchRotate),L.Map.mergeOptions({shiftKeyRotate:!0}),L.Map.ShiftKeyRotate=L.Handler.extend({addHooks:function(){L.DomEvent.on(this._map._container,\"wheel\",this._handleShiftScroll,this),this._map.shiftKeyRotate.rotate=!0},removeHooks:function(){L.DomEvent.off(this._map._container,\"wheel\",this._handleShiftScroll,this),this._map.shiftKeyRotate.rotate=!1},_handleShiftScroll:function(t){t.shiftKey?(t.preventDefault(),this._map.scrollWheelZoom.disable(),this._map.setBearing(this._map._bearing*L.DomUtil.RAD_TO_DEG+5*Math.sign(t.deltaY))):this._map.scrollWheelZoom.enable()}}),L.Map.addInitHook(\"addHandler\",\"shiftKeyRotate\",L.Map.ShiftKeyRotate),L.Map.addInitHook((function(){this.scrollWheelZoom.enabled()&&this.shiftKeyRotate.enabled()&&(this.scrollWheelZoom.disable(),this.scrollWheelZoom.enable())})),L.Map.mergeOptions({touchZoom:L.Browser.touch,bounceAtZoomLimits:!1}),L.Map.TouchZoom=L.Handler.extend({addHooks:function(){L.DomUtil.addClass(this._map._container,\"leaflet-touch-zoom\"),this._map.touchGestures.enable(),this._map.touchGestures.zoom=!0},removeHooks:function(){L.DomUtil.removeClass(this._map._container,\"leaflet-touch-zoom\"),this._map.touchGestures.zoom=!1}}),L.Map.addInitHook(\"addHandler\",\"touchZoom\",L.Map.TouchZoom),L.Control.Rotate=L.Control.extend({options:{position:\"topleft\",closeOnZeroBearing:!0},onAdd:function(t){var o=this._container=L.DomUtil.create(\"div\",\"leaflet-control-rotate leaflet-bar\"),e=this._arrow=L.DomUtil.create(\"span\",\"leaflet-control-rotate-arrow\");e.style.backgroundImage=\"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\\\")\",e.style.cursor=\"grab\",e.style.display=\"block\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.backgroundRepeat=\"no-repeat\",e.style.backgroundPosition=\"50%\";var i=this._link=L.DomUtil.create(\"a\",\"leaflet-control-rotate-toggle\",o);return i.appendChild(e),i.href=\"#\",i.title=\"Rotate map\",L.DomEvent.on(i,\"dblclick\",L.DomEvent.stopPropagation).on(i,\"mousedown\",this._handleMouseDown,this).on(i,\"click\",L.DomEvent.stop).on(i,\"click\",this._cycleState,this).on(i,\"click\",this._refocusOnMap,this),L.Browser.any3d||L.DomUtil.addClass(i,\"leaflet-disabled\"),this._restyle(),t.on(\"rotate\",this._restyle,this),this._follow=!1,this._canFollow=!1,this.options.closeOnZeroBearing&&0===t.getBearing()&&(o.style.display=\"none\"),o},onRemove:function(t){t.off(\"rotate\",this._restyle,this)},_handleMouseDown:function(t){L.DomEvent.stop(t),this.dragging=!0,this.dragstartX=t.pageX,this.dragstartY=t.pageY,L.DomEvent.on(document,\"mousemove\",this._handleMouseDrag,this).on(document,\"mouseup\",this._handleMouseUp,this)},_handleMouseUp:function(t){L.DomEvent.stop(t),this.dragging=!1,L.DomEvent.off(document,\"mousemove\",this._handleMouseDrag,this).off(document,\"mouseup\",this._handleMouseUp,this)},_handleMouseDrag:function(t){if(this.dragging){var o=t.clientX-this.dragstartX;this._map.setBearing(o)}},_cycleState:function(t){if(this._map){var o=this._map;o.touchRotate.enabled()||o.compassBearing.enabled()?o.compassBearing.enabled()?(o.compassBearing.disable(),o.setBearing(0),this.options.closeOnZeroBearing&&o.touchRotate.enable()):(o.touchRotate.disable(),o.compassBearing.enable()):o.touchRotate.enable(),this._restyle()}},_restyle:function(){if(this._map.options.rotate){var t=this._map,o=t.getBearing();this._arrow.style.transform=\"rotate(\"+o+\"deg)\",o&&this.options.closeOnZeroBearing&&(this._container.style.display=\"block\"),t.compassBearing.enabled()?this._link.style.backgroundColor=\"orange\":t.touchRotate.enabled()?this._link.style.backgroundColor=null:(this._link.style.backgroundColor=\"grey\",0===o&&this.options.closeOnZeroBearing&&(this._container.style.display=\"none\"))}else L.DomUtil.addClass(this._link,\"leaflet-disabled\")}}),L.control.rotate=function(t){return new L.Control.Rotate(t)},L.Map.mergeOptions({rotateControl:!0}),L.Map.addInitHook((function(){if(this.options.rotateControl){var t=\"object\"==typeof this.options.rotateControl?this.options.rotateControl:{};this.rotateControl=L.control.rotate(t),this.addControl(this.rotateControl)}}))}));\n//# sourceMappingURL=leaflet-rotate.js.map\n","/*!\nCopyright (c) 2016 Dominik Moritz\n\nThis file is part of the leaflet locate control. It is licensed under the MIT license.\nYou can find the project at: https://github.com/domoritz/leaflet-locatecontrol\n*/\n(function (factory, window) {\n // see https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md#module-loaders\n // for details on how to structure a leaflet plugin.\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === \"function\" && define.amd) {\n define([\"leaflet\"], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === \"object\") {\n if (typeof window !== \"undefined\" && window.L) {\n module.exports = factory(L);\n } else {\n module.exports = factory(require(\"leaflet\"));\n }\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== \"undefined\" && window.L) {\n window.L.Control.Locate = factory(L);\n }\n})(function (L) {\n const LDomUtilApplyClassesMethod = (method, element, classNames) => {\n classNames = classNames.split(\" \");\n classNames.forEach(function (className) {\n L.DomUtil[method].call(this, element, className);\n });\n };\n\n const addClasses = (el, names) => LDomUtilApplyClassesMethod(\"addClass\", el, names);\n const removeClasses = (el, names) => LDomUtilApplyClassesMethod(\"removeClass\", el, names);\n\n /**\n * Compatible with L.Circle but a true marker instead of a path\n */\n const LocationMarker = L.Marker.extend({\n initialize(latlng, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this.createIcon();\n },\n\n /**\n * Create a styled circle location marker\n */\n createIcon() {\n const opt = this.options;\n\n let style = \"\";\n\n if (opt.color !== undefined) {\n style += `stroke:${opt.color};`;\n }\n if (opt.weight !== undefined) {\n style += `stroke-width:${opt.weight};`;\n }\n if (opt.fillColor !== undefined) {\n style += `fill:${opt.fillColor};`;\n }\n if (opt.fillOpacity !== undefined) {\n style += `fill-opacity:${opt.fillOpacity};`;\n }\n if (opt.opacity !== undefined) {\n style += `opacity:${opt.opacity};`;\n }\n\n const icon = this._getIconSVG(opt, style);\n\n this._locationIcon = L.divIcon({\n className: icon.className,\n html: icon.svg,\n iconSize: [icon.w, icon.h]\n });\n\n this.setIcon(this._locationIcon);\n },\n\n /**\n * Return the raw svg for the shape\n *\n * Split so can be easily overridden\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.weight;\n const s = r + w;\n const s2 = s * 2;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${s2}\" height=\"${s2}\" version=\"1.1\" viewBox=\"-${s} -${s} ${s2} ${s2}\">` +\n '<circle r=\"' +\n r +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-location\",\n svg,\n w: s2,\n h: s2\n };\n },\n\n setStyle(style) {\n L.Util.setOptions(this, style);\n this.createIcon();\n }\n });\n\n const CompassMarker = LocationMarker.extend({\n initialize(latlng, heading, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this._heading = heading;\n this.createIcon();\n },\n\n setHeading(heading) {\n this._heading = heading;\n },\n\n /**\n * Create a styled arrow compass marker\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.width + options.weight;\n const h = (r + options.depth + options.weight) * 2;\n const path = `M0,0 l${options.width / 2},${options.depth} l-${w},0 z`;\n const svgstyle = `transform: rotate(${this._heading}deg)`;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${w}\" height=\"${h}\" version=\"1.1\" viewBox=\"-${w / 2} 0 ${w} ${h}\" style=\"${svgstyle}\">` +\n '<path d=\"' +\n path +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-heading\",\n svg,\n w,\n h\n };\n }\n });\n\n const LocateControl = L.Control.extend({\n options: {\n /** Position of the control */\n position: \"topleft\",\n /** The layer that the user's location should be drawn on. By default creates a new layer. */\n layer: undefined,\n /**\n * Automatically sets the map view (zoom and pan) to the user's location as it updates.\n * While the map is following the user's location, the control is in the `following` state,\n * which changes the style of the control and the circle marker.\n *\n * Possible values:\n * - false: never updates the map view when location changes.\n * - 'once': set the view when the location is first determined\n * - 'always': always updates the map view when location changes.\n * The map view follows the user's location.\n * - 'untilPan': like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n * - 'untilPanOrZoom': (default) like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n */\n setView: \"untilPanOrZoom\",\n /** Keep the current map zoom level when setting the view and only pan. */\n keepCurrentZoomLevel: false,\n /** After activating the plugin by clicking on the icon, zoom to the selected zoom level, even when keepCurrentZoomLevel is true. Set to 'false' to disable this feature. */\n initialZoomLevel: false,\n /**\n * This callback can be used to override the viewport tracking\n * This function should return a LatLngBounds object.\n *\n * For example to extend the viewport to ensure that a particular LatLng is visible:\n *\n * getLocationBounds: function(locationEvent) {\n * return locationEvent.bounds.extend([-33.873085, 151.219273]);\n * },\n */\n getLocationBounds(locationEvent) {\n return locationEvent.bounds;\n },\n /** Smooth pan and zoom to the location of the marker. Only works in Leaflet 1.0+. */\n flyTo: false,\n /**\n * The user location can be inside and outside the current view when the user clicks on the\n * control that is already active. Both cases can be configures separately.\n * Possible values are:\n * - 'setView': zoom and pan to the current location\n * - 'stop': stop locating and remove the location marker\n */\n clickBehavior: {\n /** What should happen if the user clicks on the control while the location is within the current view. */\n inView: \"stop\",\n /** What should happen if the user clicks on the control while the location is outside the current view. */\n outOfView: \"setView\",\n /**\n * What should happen if the user clicks on the control while the location is within the current view\n * and we could be following but are not. Defaults to a special value which inherits from 'inView';\n */\n inViewNotFollowing: \"inView\"\n },\n /**\n * If set, save the map bounds just before centering to the user's\n * location. When control is disabled, set the view back to the\n * bounds that were saved.\n */\n returnToPrevBounds: false,\n /**\n * Keep a cache of the location after the user deactivates the control. If set to false, the user has to wait\n * until the locate API returns a new location before they see where they are again.\n */\n cacheLocation: true,\n /** If set, a circle that shows the location accuracy is drawn. */\n drawCircle: true,\n /** If set, the marker at the users' location is drawn. */\n drawMarker: true,\n /** If set and supported then show the compass heading */\n showCompass: true,\n /** The class to be used to create the marker. For example L.CircleMarker or L.Marker */\n markerClass: LocationMarker,\n /** The class us be used to create the compass bearing arrow */\n compassClass: CompassMarker,\n /** Accuracy circle style properties. NOTE these styles should match the css animations styles */\n circleStyle: {\n className: \"leaflet-control-locate-circle\",\n color: \"#136AEC\",\n fillColor: \"#136AEC\",\n fillOpacity: 0.15,\n weight: 0\n },\n /** Inner marker style properties. Only works if your marker class supports `setStyle`. */\n markerStyle: {\n className: \"leaflet-control-locate-marker\",\n color: \"#fff\",\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 3,\n opacity: 1,\n radius: 9\n },\n /** Compass */\n compassStyle: {\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 0,\n color: \"#fff\",\n opacity: 1,\n radius: 9, // How far is the arrow is from the center of of the marker\n width: 9, // Width of the arrow\n depth: 6 // Length of the arrow\n },\n /**\n * Changes to accuracy circle and inner marker while following.\n * It is only necessary to provide the properties that should change.\n */\n followCircleStyle: {},\n followMarkerStyle: {\n // color: '#FFA500',\n // fillColor: '#FFB000'\n },\n followCompassStyle: {},\n /** The CSS class for the icon. For example fa-location-arrow or fa-map-marker */\n icon: \"leaflet-control-locate-location-arrow\",\n iconLoading: \"leaflet-control-locate-spinner\",\n /** The element to be created for icons. For example span or i */\n iconElementTag: \"span\",\n /** The element to be created for the text. For example small or span */\n textElementTag: \"small\",\n /** Padding around the accuracy circle. */\n circlePadding: [0, 0],\n /** Use metric units. */\n metric: true,\n /**\n * This callback can be used in case you would like to override button creation behavior.\n * This is useful for DOM manipulation frameworks such as angular etc.\n * This function should return an object with HtmlElement for the button (link property) and the icon (icon property).\n */\n createButtonCallback(container, options) {\n const link = L.DomUtil.create(\"a\", \"leaflet-bar-part leaflet-bar-part-single\", container);\n link.title = options.strings.title;\n link.href = \"#\";\n link.setAttribute(\"role\", \"button\");\n const icon = L.DomUtil.create(options.iconElementTag, options.icon, link);\n\n if (options.strings.text !== undefined) {\n const text = L.DomUtil.create(options.textElementTag, \"leaflet-locate-text\", link);\n text.textContent = options.strings.text;\n link.classList.add(\"leaflet-locate-text-active\");\n link.parentNode.style.display = \"flex\";\n if (options.icon.length > 0) {\n icon.classList.add(\"leaflet-locate-icon\");\n }\n }\n\n return { link, icon };\n },\n /** This event is called in case of any location error that is not a time out error. */\n onLocationError(err, control) {\n alert(err.message);\n },\n /**\n * This event is called when the user's location is outside the bounds set on the map.\n * The event is called repeatedly when the location changes.\n */\n onLocationOutsideMapBounds(control) {\n control.stop();\n alert(control.options.strings.outsideMapBoundsMsg);\n },\n /** Display a pop-up when the user click on the inner marker. */\n showPopup: true,\n strings: {\n title: \"Show me where I am\",\n metersUnit: \"meters\",\n feetUnit: \"feet\",\n popup: \"You are within {distance} {unit} from this point\",\n outsideMapBoundsMsg: \"You seem located outside the boundaries of the map\"\n },\n /** The default options passed to leaflets locate method. */\n locateOptions: {\n maxZoom: Infinity,\n watch: true, // if you overwrite this, visualization cannot be updated\n setView: false // have to set this to false because we have to\n // do setView manually\n }\n },\n\n initialize(options) {\n // set default options if nothing is set (merge one step deep)\n for (const i in options) {\n if (typeof this.options[i] === \"object\") {\n L.extend(this.options[i], options[i]);\n } else {\n this.options[i] = options[i];\n }\n }\n\n // extend the follow marker style and circle from the normal style\n this.options.followMarkerStyle = L.extend({}, this.options.markerStyle, this.options.followMarkerStyle);\n this.options.followCircleStyle = L.extend({}, this.options.circleStyle, this.options.followCircleStyle);\n this.options.followCompassStyle = L.extend({}, this.options.compassStyle, this.options.followCompassStyle);\n },\n\n /**\n * Add control to map. Returns the container for the control.\n */\n onAdd(map) {\n const container = L.DomUtil.create(\"div\", \"leaflet-control-locate leaflet-bar leaflet-control\");\n this._container = container;\n this._map = map;\n this._layer = this.options.layer || new L.LayerGroup();\n this._layer.addTo(map);\n this._event = undefined;\n this._compassHeading = null;\n this._prevBounds = null;\n\n const linkAndIcon = this.options.createButtonCallback(container, this.options);\n this._link = linkAndIcon.link;\n this._icon = linkAndIcon.icon;\n\n L.DomEvent.on(\n this._link,\n \"click\",\n function (ev) {\n L.DomEvent.stopPropagation(ev);\n L.DomEvent.preventDefault(ev);\n this._onClick();\n },\n this\n ).on(this._link, \"dblclick\", L.DomEvent.stopPropagation);\n\n this._resetVariables();\n\n this._map.on(\"unload\", this._unload, this);\n\n return container;\n },\n\n /**\n * This method is called when the user clicks on the control.\n */\n _onClick() {\n this._justClicked = true;\n const wasFollowing = this._isFollowing();\n this._userPanned = false;\n this._userZoomed = false;\n\n if (this._active && !this._event) {\n // click while requesting\n this.stop();\n } else if (this._active) {\n const behaviors = this.options.clickBehavior;\n let behavior = behaviors.outOfView;\n if (this._map.getBounds().contains(this._event.latlng)) {\n behavior = wasFollowing ? behaviors.inView : behaviors.inViewNotFollowing;\n }\n\n // Allow inheriting from another behavior\n if (behaviors[behavior]) {\n behavior = behaviors[behavior];\n }\n\n switch (behavior) {\n case \"setView\":\n this.setView();\n break;\n case \"stop\":\n this.stop();\n if (this.options.returnToPrevBounds) {\n const f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n f.bind(this._map)(this._prevBounds);\n }\n break;\n }\n } else {\n if (this.options.returnToPrevBounds) {\n this._prevBounds = this._map.getBounds();\n }\n this.start();\n }\n\n this._updateContainerStyle();\n },\n\n /**\n * Starts the plugin:\n * - activates the engine\n * - draws the marker (if coordinates available)\n */\n start() {\n this._activate();\n\n if (this._event) {\n this._drawMarker(this._map);\n\n // if we already have a location but the user clicked on the control\n if (this.options.setView) {\n this.setView();\n }\n }\n this._updateContainerStyle();\n },\n\n /**\n * Stops the plugin:\n * - deactivates the engine\n * - reinitializes the button\n * - removes the marker\n */\n stop() {\n this._deactivate();\n\n this._cleanClasses();\n this._resetVariables();\n\n this._removeMarker();\n },\n\n /**\n * Keep the control active but stop following the location\n */\n stopFollowing() {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n },\n\n /**\n * This method launches the location engine.\n * It is called before the marker is updated,\n * event if it does not mean that the event will be ready.\n *\n * Override it if you want to add more functionalities.\n * It should set the this._active to true and do nothing if\n * this._active is true.\n */\n _activate() {\n if (this._active || !this._map) {\n return;\n }\n\n this._map.locate(this.options.locateOptions);\n this._map.fire(\"locateactivate\", this);\n this._active = true;\n\n // bind event listeners\n this._map.on(\"locationfound\", this._onLocationFound, this);\n this._map.on(\"locationerror\", this._onLocationError, this);\n this._map.on(\"dragstart\", this._onDrag, this);\n this._map.on(\"zoomstart\", this._onZoom, this);\n this._map.on(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n const oriAbs = \"ondeviceorientationabsolute\" in window;\n if (oriAbs || \"ondeviceorientation\" in window) {\n const _this = this;\n const deviceorientation = function () {\n L.DomEvent.on(window, oriAbs ? \"deviceorientationabsolute\" : \"deviceorientation\", _this._onDeviceOrientation, _this);\n };\n if (DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === \"function\") {\n DeviceOrientationEvent.requestPermission().then(function (permissionState) {\n if (permissionState === \"granted\") {\n deviceorientation();\n }\n });\n } else {\n deviceorientation();\n }\n }\n }\n },\n\n /**\n * Called to stop the location engine.\n *\n * Override it to shutdown any functionalities you added on start.\n */\n _deactivate() {\n if (!this._active || !this._map) {\n return;\n }\n\n this._map.stopLocate();\n this._map.fire(\"locatedeactivate\", this);\n this._active = false;\n\n if (!this.options.cacheLocation) {\n this._event = undefined;\n }\n\n // unbind event listeners\n this._map.off(\"locationfound\", this._onLocationFound, this);\n this._map.off(\"locationerror\", this._onLocationError, this);\n this._map.off(\"dragstart\", this._onDrag, this);\n this._map.off(\"zoomstart\", this._onZoom, this);\n this._map.off(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n this._compassHeading = null;\n if (\"ondeviceorientationabsolute\" in window) {\n L.DomEvent.off(window, \"deviceorientationabsolute\", this._onDeviceOrientation, this);\n } else if (\"ondeviceorientation\" in window) {\n L.DomEvent.off(window, \"deviceorientation\", this._onDeviceOrientation, this);\n }\n }\n },\n\n /**\n * Zoom (unless we should keep the zoom level) and an to the current view.\n */\n setView() {\n this._drawMarker();\n if (this._isOutsideMapBounds()) {\n this._event = undefined; // clear the current location so we can get back into the bounds\n this.options.onLocationOutsideMapBounds(this);\n } else {\n if (this._justClicked && this.options.initialZoomLevel !== false) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.setView;\n f.bind(this._map)([this._event.latitude, this._event.longitude], this.options.initialZoomLevel);\n } else if (this.options.keepCurrentZoomLevel) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.panTo;\n f.bind(this._map)([this._event.latitude, this._event.longitude]);\n } else {\n var f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n // Ignore zoom events while setting the viewport as these would stop following\n this._ignoreEvent = true;\n f.bind(this._map)(this.options.getLocationBounds(this._event), {\n padding: this.options.circlePadding,\n maxZoom: this.options.initialZoomLevel || this.options.locateOptions.maxZoom\n });\n L.Util.requestAnimFrame(function () {\n // Wait until after the next animFrame because the flyTo can be async\n this._ignoreEvent = false;\n }, this);\n }\n }\n },\n\n /**\n *\n */\n _drawCompass() {\n if (!this._event) {\n return;\n }\n\n const latlng = this._event.latlng;\n\n if (this.options.showCompass && latlng && this._compassHeading !== null) {\n const cStyle = this._isFollowing() ? this.options.followCompassStyle : this.options.compassStyle;\n if (!this._compass) {\n this._compass = new this.options.compassClass(latlng, this._compassHeading, cStyle).addTo(this._layer);\n } else {\n this._compass.setLatLng(latlng);\n this._compass.setHeading(this._compassHeading);\n // If the compassClass can be updated with setStyle, update it.\n if (this._compass.setStyle) {\n this._compass.setStyle(cStyle);\n }\n }\n //\n }\n if (this._compass && (!this.options.showCompass || this._compassHeading === null)) {\n this._compass.removeFrom(this._layer);\n this._compass = null;\n }\n },\n\n /**\n * Draw the marker and accuracy circle on the map.\n *\n * Uses the event retrieved from onLocationFound from the map.\n */\n _drawMarker() {\n if (this._event.accuracy === undefined) {\n this._event.accuracy = 0;\n }\n\n const radius = this._event.accuracy;\n const latlng = this._event.latlng;\n\n // circle with the radius of the location's accuracy\n if (this.options.drawCircle) {\n const style = this._isFollowing() ? this.options.followCircleStyle : this.options.circleStyle;\n\n if (!this._circle) {\n this._circle = L.circle(latlng, radius, style).addTo(this._layer);\n } else {\n this._circle.setLatLng(latlng).setRadius(radius).setStyle(style);\n }\n }\n\n let distance;\n let unit;\n if (this.options.metric) {\n distance = radius.toFixed(0);\n unit = this.options.strings.metersUnit;\n } else {\n distance = (radius * 3.2808399).toFixed(0);\n unit = this.options.strings.feetUnit;\n }\n\n // small inner marker\n if (this.options.drawMarker) {\n const mStyle = this._isFollowing() ? this.options.followMarkerStyle : this.options.markerStyle;\n if (!this._marker) {\n this._marker = new this.options.markerClass(latlng, mStyle).addTo(this._layer);\n } else {\n this._marker.setLatLng(latlng);\n // If the markerClass can be updated with setStyle, update it.\n if (this._marker.setStyle) {\n this._marker.setStyle(mStyle);\n }\n }\n }\n\n this._drawCompass();\n\n const t = this.options.strings.popup;\n function getPopupText() {\n if (typeof t === \"string\") {\n return L.Util.template(t, { distance, unit });\n } else if (typeof t === \"function\") {\n return t({ distance, unit });\n } else {\n return t;\n }\n }\n if (this.options.showPopup && t && this._marker) {\n this._marker.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n if (this.options.showPopup && t && this._compass) {\n this._compass.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n },\n\n /**\n * Remove the marker from map.\n */\n _removeMarker() {\n this._layer.clearLayers();\n this._marker = undefined;\n this._circle = undefined;\n },\n\n /**\n * Unload the plugin and all event listeners.\n * Kind of the opposite of onAdd.\n */\n _unload() {\n this.stop();\n this._map.off(\"unload\", this._unload, this);\n },\n\n /**\n * Sets the compass heading\n */\n _setCompassHeading(angle) {\n if (!isNaN(parseFloat(angle)) && isFinite(angle)) {\n angle = Math.round(angle);\n\n this._compassHeading = angle;\n L.Util.requestAnimFrame(this._drawCompass, this);\n } else {\n this._compassHeading = null;\n }\n },\n\n /**\n * If the compass fails calibration just fail safely and remove the compass\n */\n _onCompassNeedsCalibration() {\n this._setCompassHeading();\n },\n\n /**\n * Process and normalise compass events\n */\n _onDeviceOrientation(e) {\n if (!this._active) {\n return;\n }\n\n if (e.webkitCompassHeading) {\n // iOS\n this._setCompassHeading(e.webkitCompassHeading);\n } else if (e.absolute && e.alpha) {\n // Android\n this._setCompassHeading(360 - e.alpha);\n }\n },\n\n /**\n * Calls deactivate and dispatches an error.\n */\n _onLocationError(err) {\n // ignore time out error if the location is watched\n if (err.code == 3 && this.options.locateOptions.watch) {\n return;\n }\n\n this.stop();\n this.options.onLocationError(err, this);\n },\n\n /**\n * Stores the received event and updates the marker.\n */\n _onLocationFound(e) {\n // no need to do anything if the location has not changed\n if (this._event && this._event.latlng.lat === e.latlng.lat && this._event.latlng.lng === e.latlng.lng && this._event.accuracy === e.accuracy) {\n return;\n }\n\n if (!this._active) {\n // we may have a stray event\n return;\n }\n\n this._event = e;\n\n this._drawMarker();\n this._updateContainerStyle();\n\n switch (this.options.setView) {\n case \"once\":\n if (this._justClicked) {\n this.setView();\n }\n break;\n case \"untilPan\":\n if (!this._userPanned) {\n this.setView();\n }\n break;\n case \"untilPanOrZoom\":\n if (!this._userPanned && !this._userZoomed) {\n this.setView();\n }\n break;\n case \"always\":\n this.setView();\n break;\n case false:\n // don't set the view\n break;\n }\n\n this._justClicked = false;\n },\n\n /**\n * When the user drags. Need a separate event so we can bind and unbind event listeners.\n */\n _onDrag() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * When the user zooms. Need a separate event so we can bind and unbind event listeners.\n */\n _onZoom() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userZoomed = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * After a zoom ends update the compass and handle sideways zooms\n */\n _onZoomEnd() {\n if (this._event) {\n this._drawCompass();\n }\n\n if (this._event && !this._ignoreEvent) {\n // If we have zoomed in and out and ended up sideways treat it as a pan\n if (this._marker && !this._map.getBounds().pad(-0.3).contains(this._marker.getLatLng())) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n }\n },\n\n /**\n * Compute whether the map is following the user location with pan and zoom.\n */\n _isFollowing() {\n if (!this._active) {\n return false;\n }\n\n if (this.options.setView === \"always\") {\n return true;\n } else if (this.options.setView === \"untilPan\") {\n return !this._userPanned;\n } else if (this.options.setView === \"untilPanOrZoom\") {\n return !this._userPanned && !this._userZoomed;\n }\n },\n\n /**\n * Check if location is in map bounds\n */\n _isOutsideMapBounds() {\n if (this._event === undefined) {\n return false;\n }\n return this._map.options.maxBounds && !this._map.options.maxBounds.contains(this._event.latlng);\n },\n\n /**\n * Toggles button class between following and active.\n */\n _updateContainerStyle() {\n if (!this._container) {\n return;\n }\n\n if (this._active && !this._event) {\n // active but don't have a location yet\n this._setClasses(\"requesting\");\n } else if (this._isFollowing()) {\n this._setClasses(\"following\");\n } else if (this._active) {\n this._setClasses(\"active\");\n } else {\n this._cleanClasses();\n }\n },\n\n /**\n * Sets the CSS classes for the state.\n */\n _setClasses(state) {\n if (state == \"requesting\") {\n removeClasses(this._container, \"active following\");\n addClasses(this._container, \"requesting\");\n\n removeClasses(this._icon, this.options.icon);\n addClasses(this._icon, this.options.iconLoading);\n } else if (state == \"active\") {\n removeClasses(this._container, \"requesting following\");\n addClasses(this._container, \"active\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n } else if (state == \"following\") {\n removeClasses(this._container, \"requesting\");\n addClasses(this._container, \"active following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n }\n },\n\n /**\n * Removes all classes from button.\n */\n _cleanClasses() {\n L.DomUtil.removeClass(this._container, \"requesting\");\n L.DomUtil.removeClass(this._container, \"active\");\n L.DomUtil.removeClass(this._container, \"following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n },\n\n /**\n * Reinitializes state variables.\n */\n _resetVariables() {\n // whether locate is active or not\n this._active = false;\n\n // true if the control was clicked for the first time\n // we need this so we can pan and zoom once we have the location\n this._justClicked = false;\n\n // true if the user has panned the map after clicking the control\n this._userPanned = false;\n\n // true if the user has zoomed the map after clicking the control\n this._userZoomed = false;\n }\n });\n\n L.control.locate = (options) => new L.Control.Locate(options);\n\n return LocateControl;\n}, window);\n","// Following https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md\n(function (factory, window) {\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === 'function' && define.amd) {\n define(['leaflet'], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === 'object') {\n module.exports = factory(require('leaflet'));\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== 'undefined' && window.L) {\n factory(window.L);\n\n }\n}(function (L) {\n L.locales = {};\n L.locale = null;\n L.registerLocale = function registerLocale(code, locale) {\n L.locales[code] = L.Util.extend({}, L.locales[code], locale);\n };\n L.setLocale = function setLocale(code) {\n L.locale = code;\n };\n return L.i18n = L._ = function translate(string, data) {\n if (L.locale && L.locales[L.locale] && typeof L.locales[L.locale][string] !== \"undefined\") {\n string = L.locales[L.locale][string];\n }\n try {\n // Do not fail if some data is missing\n // a bad translation should not break the app\n string = L.Util.template(string, data);\n }\n catch (err) {/*pass*/\n }\n\n return string;\n };\n}, window));\n","!function(t){\"function\"==typeof define&&define.amd?define(t):t()}((function(){\"use strict\";!function(t,e){\"function\"==typeof define&&define.amd?define([\"leaflet\"],t):\"object\"==typeof exports&&(module.exports=t(require(\"leaflet\"))),void 0!==e&&e.L&&t(e.L)}((function(t){return t.locales={},t.locale=null,t.registerLocale=function(e,a){t.locales[e]=t.Util.extend({},t.locales[e],a)},t.setLocale=function(e){t.locale=e},t.i18n=t._=function(e,a){t.locale&&t.locales[t.locale]&&t.locales[t.locale][e]&&(e=t.locales[t.locale][e]);try{e=t.Util.template(e,a)}catch(t){}return e}}),window);var t=6e4,e=60*t,a=24*e;function i(i){var n=Math.floor(i/a),r=Math.floor((i-n*a)/e),o=Math.floor((i-n*a-r*e)/t),s=Math.round((i-n*a-r*e-o*t)/1e3);return 60===s&&(o++,s=0),60===o&&(r++,o=0),24===r&&(n++,r=0),(n?n+\"d \":\"\")+r.toString().padStart(2,0)+\":\"+o.toString().padStart(2,0)+\"'\"+s.toString().padStart(2,0)+'\"'}function n(t,e){var a=m(\"a\",\"\",{href:t,target:\"_new\",download:e||\"\",style:\"display:none;\"}),i=document.body;i.appendChild(a),a.click(),i.removeChild(a)}function r(t,e,a){return!1===e?Promise.resolve():a instanceof Promise?a:new Promise((function(e,a){var i=document.createElement(\"script\");i.addEventListener(\"load\",e,{once:!0}),i.src=t,document.head.appendChild(i)}))}function o(t,e){e.classed(\"canvas-path\",!0),t.beginPath(),t.moveTo(0,0);var a=new Path2D(e.attr(\"d\"));t.strokeStyle=e.attr(\"stroke\"),t.fillStyle=e.attr(\"fill\"),t.lineWidth=1.25,t.globalCompositeOperation=\"source-over\",t.globalAlpha=e.attr(\"stroke-opacity\")||.3,t.stroke(a),t.globalAlpha=e.attr(\"fill-opacity\")||.45,t.fill(a),t.globalAlpha=1,t.closePath()}function s(t,e){return e?t<e[0]?e[0]:t>e[1]?e[1]:t:t}function l(t,e){t&&e.split(\" \").every((function(e){return e&&L.DomUtil.addClass(t,e)}))}function c(t,e){t&&e.split(\" \").every((function(e){return e&&L.DomUtil.removeClass(t,e)}))}function h(t,e,a){return(a?l:c).call(null,t,e)}function d(t,e,a){e&&c(t,e),a&&l(t,a)}function u(t,e,a){return void 0===a?L.DomUtil.getStyle(t,e):t.style.setProperty(e,a)}function _(t,e,a,i){return u(t,e,i?a:\"\")}function p(t,e,a,i){return t[i?\"on\":\"off\"](e,a)}function m(t,e,a,i){var n=L.DomUtil.create(t,e||\"\");return a&&v(n,a),i&&f(i,n),n}function f(t,e){return t.appendChild(e)}function g(t,e,a){return t.insertAdjacentElement(a,e)}function v(t,e){for(var a in e)t.setAttribute(a,e[a])}function y(t,e){return(e||document).querySelector(t)}var x=L.DomEvent.on,b=L.DomEvent.off,k=L.DomUtil.hasClass;function w(){return Math.random().toString(36).substr(2,9)}function M(t,e){for(var a in t)e(t[a],a)}var C=Object.freeze({__proto__:null,formatTime:i,saveFile:n,lazyLoader:r,drawCanvas:o,clamp:s,addClass:l,removeClass:c,toggleClass:h,replaceClass:d,style:u,toggleStyle:_,toggleEvent:p,create:m,append:f,insert:g,setAttributes:v,select:y,on:x,off:b,hasClass:k,randomId:w,each:M}),A={lightblue:{area:\"#3366CC\",alpha:.45,stroke:\"#3366CC\"},magenta:{area:\"#FF005E\"},yellow:{area:\"#FF0\"},purple:{area:\"#732C7B\"},steelblue:{area:\"#4682B4\"},red:{area:\"#F00\"},lime:{area:\"#9CC222\",line:\"#566B13\"}},S=function(t){t.width;var e=t.height,a=t.xAttr,i=t.yAttr,n=t.scaleX,r=t.scaleY,o=t.interpolation,s=void 0===o?\"curveLinear\":o;return d3.area().curve(\"string\"==typeof s?d3[s]:s).x((function(t){return t.xDiagCoord=n(t[a])})).y0(e).y1((function(t){return r(t[i])}))},z=function(t){var e=t.name,a=t.color,i=t.strokeColor,n=t.strokeOpacity,r=t.fillOpacity,o=d3.create(\"svg:path\");return e&&o.classed(e,!0),o.style(\"pointer-events\",\"none\"),o.attr(\"fill\",a||\"#3366CC\").attr(\"stroke\",i||\"#000\").attr(\"stroke-opacity\",n||\"1\").attr(\"fill-opacity\",r||\"0.8\"),o},D=function(t){var e=t.type,a=void 0===e?\"axis\":e,i=t.tickSize,n=void 0===i?6:i,r=t.tickPadding,o=void 0===r?3:r,s=t.position,l=t.height,c=t.width,h=t.axis,d=t.scale,u=t.ticks,_=t.tickFormat,p=t.label,m=t.labelX,f=t.labelY,g=t.name,v=void 0===g?\"\":g,y=t.onAxisMount;return function(t){var e=0,i=0;\"bottom\"==s&&(i=l),\"right\"==s&&(e=c),\"x\"==h&&\"grid\"==a?n=-l:\"y\"==h&&\"grid\"==a&&(n=-c);var r=d3[\"axis\"+s.replace(/\\b\\w/g,(function(t){return t.toUpperCase()}))]().scale(d).ticks(u).tickPadding(o).tickSize(n).tickFormat(_),g=t.append(\"g\").attr(\"class\",[h,a,s,v].join(\" \")).attr(\"transform\",\"translate(\"+e+\",\"+i+\")\").call(r);return p&&g.append(\"svg:text\").attr(\"x\",m).attr(\"y\",f).text(p),y&&g.call(y),g}},F=function(t){return t.type=\"grid\",D(t)},E=function(t){var e=t.theme,a=t.xCoord,i=void 0===a?0:a,n=t.yCoord,r=void 0===n?0:n,o=t.labels,s=void 0===o?{}:o,l=t.item,c=void 0===l?{}:l,h=t.length,d=void 0===h?0:h;return function(t){t.attr(\"class\",\"height-focus-group\");var a,n=t.select(\".height-focus.line\"),o=t.select(\".height-focus.circle-lower\"),l=t.select(\".height-focus-label\");return n.node()||(n=t.append(\"svg:line\")),o.node()||(o=t.append(\"svg:circle\")),l.node()||(l=t.append(\"svg:text\")),isNaN(i)||isNaN(r)||(o.attr(\"class\",e+\" height-focus circle-lower\").attr(\"transform\",\"translate(\"+i+\",\"+r+\")\").attr(\"r\",6).attr(\"cx\",0).attr(\"cy\",0),n.attr(\"class\",e+\" height-focus line\").attr(\"x1\",i).attr(\"x2\",i).attr(\"y1\",r).attr(\"y2\",d),l.attr(\"class\",e+\" height-focus-label\").style(\"pointer-events\",\"none\").attr(\"x\",i+5).attr(\"y\",d),Object.keys(s).sort((function(t,e){return s[t].order-s[e].order})).forEach((function(t){(a=l.select(\".height-focus-\"+s[t].name)).size()||(a=l.append(\"svg:tspan\").attr(\"class\",\"height-focus-\"+s[t].name).attr(\"dy\",\"1.5em\")),a.text(\"function\"!=typeof s[t].value?s[t].value:s[t].value(c))})),l.select(\"tspan\").attr(\"dy\",l.selectAll(\"tspan\").size()>1?\"-1.5em\":\"0em\"),l.selectAll(\"tspan\").attr(\"x\",i+5)),t}},T=function(t){var e=t.name,a=t.label,i=t.width,n=t.height,r=t.margins,o=void 0===r?{}:r,s=t.color,l=t.path;return function(t){return t.attr(\"class\",\"legend-item legend-\"+e.toLowerCase()).attr(\"data-name\",e),t.on(\"click.legend\",(function(){return d3.select(t.node().ownerSVGElement||t).dispatch(\"legend_clicked\",{detail:{path:l.node(),name:e,legend:t.node(),enabled:!l.classed(\"leaflet-hidden\")}})})),t.append(\"svg:rect\").attr(\"x\",i/2-50).attr(\"y\",n+o.bottom/2).attr(\"width\",50).attr(\"height\",10).attr(\"fill\",s).attr(\"stroke\",\"#000\").attr(\"stroke-opacity\",\"0.5\").attr(\"fill-opacity\",\"0.25\"),t.append(\"svg:text\").text(L._(a||e)).attr(\"x\",i/2+5).attr(\"font-size\",10).style(\"text-decoration-thickness\",\"2px\").style(\"font-weight\",\"700\").attr(\"y\",n+o.bottom/2).attr(\"dy\",\"0.75em\"),t}},I=function(t){var e=t.xCoord,a=t.yCoord,i=t.width,n=t.height,r=t.labels,o=void 0===r?{}:r,s=t.item,l=void 0===s?{}:s;return function(t){var r=t.select(\".mouse-focus-line\"),s=t.select(\".mouse-focus-label\");r.node()||(r=t.append(\"svg:line\")),s.node()||(s=t.append(\"g\"));var c=s.select(\".mouse-focus-label-rect\"),h=s.select(\".mouse-focus-label-text\");c.node()||(c=s.append(\"svg:rect\")),h.node()||(h=s.append(\"svg:text\"));var d,u=0,_=0,p={width:0,height:0};try{p=h.node().getBBox()}catch(e){return t}return e&&(u=e+(e<i/2?10:-p.width-10)),a&&(_=Math.max(a-p.height,L.Browser.webkit?0:-1/0)),r.attr(\"class\",\"mouse-focus-line\").attr(\"x2\",e).attr(\"y2\",0).attr(\"x1\",e).attr(\"y1\",n),s.attr(\"class\",\"mouse-focus-label\"),c.attr(\"class\",\"mouse-focus-label-rect\").attr(\"x\",u-5).attr(\"y\",_-5).attr(\"width\",p.width+10).attr(\"height\",p.height+10).attr(\"rx\",3).attr(\"ry\",3),h.attr(\"class\",\"mouse-focus-label-text\").style(\"font-weight\",\"700\").attr(\"y\",_),Object.keys(o).sort((function(t,e){return o[t].order-o[e].order})).forEach((function(t){(d=h.select(\".mouse-focus-label-\"+o[t].name)).size()||(d=h.append(\"svg:tspan\",\".mouse-focus-label-x\").attr(\"class\",\"mouse-focus-label-\"+o[t].name).attr(\"dy\",\"1.5em\")),d.text(\"function\"!=typeof o[t].value?o[t].value:o[t].value(l))})),h.select(\"tspan\").attr(\"dy\",\"1em\"),h.selectAll(\"tspan\").attr(\"x\",u),t}},O=function(t){var e=t.height,a=t.width;return function(t){t.data([{x:0,y:e}]).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"}));var i=t.selectAll(\".horizontal-drag-rect\").data([{w:a}]),n=t.selectAll(\".horizontal-drag-line\").data([{w:a}]),r=t.selectAll(\".horizontal-drag-label\").data([{w:a-8}]),o=t.selectAll(\".horizontal-drag-symbol\").data([{type:d3.symbolTriangle,x:a+7,y:0,angle:-90,size:50}]);return i.exit().remove(),n.exit().remove(),r.exit().remove(),o.exit().remove(),i.enter().append(\"svg:rect\").attr(\"class\",\"horizontal-drag-rect\").attr(\"x\",0).attr(\"y\",-8).attr(\"height\",8).attr(\"fill\",\"none\").attr(\"pointer-events\",\"all\").merge(i).attr(\"width\",(function(t){return t.w})),n.enter().append(\"svg:line\").attr(\"class\",\"horizontal-drag-line\").attr(\"x1\",0).merge(n).attr(\"x2\",(function(t){return t.w})),r.enter().append(\"svg:text\").attr(\"class\",\"horizontal-drag-label\").attr(\"text-anchor\",\"end\").attr(\"y\",-8).merge(r).attr(\"x\",(function(t){return t.w})),o.enter().append(\"svg:path\").attr(\"class\",\"horizontal-drag-symbol\").merge(o).attr(\"d\",d3.symbol().type((function(t){return t.type})).size((function(t){return t.size}))).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\") rotate(\"+t.angle+\")\"})),t}},N=function(t){var e=t.point,a=t.height,i=t.width,n=t.x,r=t.y;return function(t){return isNaN(n)||isNaN(r)||(e.item&&e.item.property(\"isConnected\")||(e.position=e.position||\"bottom\",e.item=t.append(\"g\"),e.item.append(\"svg:line\").attr(\"y1\",0).attr(\"x1\",0).attr(\"style\",\"stroke: rgb(51, 51, 51); stroke-width: 0.5; stroke-dasharray: 2, 2;\"),e.item.append(\"svg:circle\").attr(\"class\",\" height-focus circle-lower\").attr(\"r\",3),e.label&&e.item.append(\"svg:text\").attr(\"dx\",\"4px\").attr(\"dy\",\"-4px\")),e.item.datum({pos:e.position,x:n,y:r}).attr(\"class\",(function(t){return\"point \"+t.pos})).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"})),e.item.select(\"line\").datum({y2:{top:-r,bottom:a-r}[e.position],x2:{left:-n,right:i-n}[e.position]||0}).attr(\"y2\",(function(t){return t.y2})).attr(\"x2\",(function(t){return t.x2})),e.label&&e.item.select(\"text\").text(e.label)),t}},P=function(t){var e=t.min,a=t.max,i=t.attr,n=t.name,r=t.forceBounds,o=t.scale;return function(t){i=i||n,o&&o.attr&&(i=o.attr);var s=t&&t.length?d3.extent(t,(function(t){return t[i]})):[0,1];return void 0!==e&&(e<s[0]||r)&&(s[0]=e),void 0!==a&&(a>s[1]||r)&&(s[1]=a),s}},B=function(t){var e=t.axis;return function(t,a){return\"x\"==e?[0,t]:\"y\"==e?[a,0]:void 0}},G=function(t){var e=t.data,a=t.attr,i=t.min,n=t.max,r=t.forceBounds,o=t.range;return d3.scaleLinear().range(o).domain(P({min:i,max:n,attr:a,forceBounds:r})(e))},H=function(t){var e=t.width,a=t.height,i=t.margins,n=void 0===i?{}:i,r=(t.ruler,e-n.left-n.right),o=a-n.top-n.bottom,s=d3.create(\"svg:svg\").attr(\"class\",\"background\"),l=s.append(\"g\"),c={grid:l.append(\"g\").attr(\"class\",\"grid\"),area:l.append(\"g\").attr(\"class\",\"area\"),axis:l.append(\"g\").attr(\"class\",\"axis\"),point:l.append(\"g\").attr(\"class\",\"point\"),brush:l.append(\"g\").attr(\"class\",\"brush\"),tooltip:l.append(\"g\").attr(\"class\",\"tooltip\").attr(\"display\",\"none\"),ruler:l.append(\"g\").attr(\"class\",\"ruler\"),legend:l.append(\"g\").attr(\"class\",\"legend\")},h=c.area.append(\"svg:mask\").attr(\"id\",\"elevation-clipper\").attr(\"fill-opacity\",1),d=h.append(\"svg:rect\").attr(\"class\",\"zoom\").attr(\"fill\",\"white\"),u=c.area.append(\"svg:foreignObject\").attr(\"mask\",\"url(#\"+h.attr(\"id\")+\")\"),_=u.append(\"xhtml:canvas\").attr(\"class\",\"canvas-plot\"),p=_.node().getContext(\"2d\");c.tooltip.call(I({xCoord:0,yCoord:0,height:o,width:r,labels:{}}));var m=d3.brushX().on(\"start.cursor end.cursor brush.cursor\",(function(){return c.brush.select(\".overlay\").attr(\"cursor\",null)})),f={mask:h,canvas:_,context:p,brush:m},g={svg:s,g:l,panes:c,utils:f,scale:function(t){return{x:G(t.x),y:G(t.y)}},_resize:function(t){var e=t.width,a=t.height,i=t.margins,n=void 0===i?{}:i,r=t.ruler,o=e-n.left-n.right,h=a-n.top-n.bottom;s.attr(\"viewBox\",\"0 0 \".concat(e,\" \").concat(a)).attr(\"width\",e).attr(\"height\",a),l.attr(\"transform\",\"translate(\"+n.left+\",\"+n.top+\")\"),/Mac|iPod|iPhone|iPad/.test(navigator.platform)&&/AppleWebkit/i.test(navigator.userAgent)&&_.style(\"transform\",\"translate(\"+n.left+\"px,\"+n.top+\"px)\"),d.attr(\"x\",0).attr(\"y\",0).attr(\"width\",o).attr(\"height\",h),u.attr(\"width\",o).attr(\"height\",h),_.attr(\"width\",o).attr(\"height\",h),r&&c.ruler.call(O({height:h,width:o})),c.brush.call(m.extent([[0,0],[o,h]])),c.brush.select(\".overlay\").attr(\"cursor\",null),g._width=o,g._height=h,g.svg.dispatch(\"resize\",{detail:{width:o,height:h}})},pane:function(t){return c[t]||(c[t]=l.append(\"g\").attr(\"class\",t)),c[t]},get:function(t){return f[t]}};return g._resize({width:e,height:a,margins:n}),g},X=Object.freeze({__proto__:null,Colors:A,Area:S,Path:z,Axis:D,Grid:F,PositionMarker:E,LegendItem:T,Tooltip:I,Ruler:O,CheckPoint:N,Domain:P,Range:B,Scale:G,Bisect:function(t){var e=t.data,a=void 0===e?[0,1]:e,i=t.scale,n=t.x,r=t.attr;return d3.bisector((function(t){return t[r]})).left(a,i.invert(n))},Chart:H}),U=L.Class.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,initialize:function(t,e){var a=this;this.options=t,this.control=e,this._data=[],this._props={scales:{},paths:{},areas:{},grids:{},axes:{},legendItems:{},tooltipItems:{}},this._scales={},this._domains={},this._ranges={},this._paths={},this._brushEnabled=t.dragging,this._zoomEnabled=t.zooming;var i=this._chart=H(t);this._container=i.svg;this._grid=i.pane(\"grid\"),this._area=i.pane(\"area\"),this._point=i.pane(\"point\"),this._axis=i.pane(\"axis\"),this._legend=i.pane(\"legend\"),this._tooltip=i.pane(\"tooltip\"),this._ruler=i.pane(\"ruler\"),this._initScale(),this._mask=i.get(\"mask\"),this._context=i.get(\"context\"),this._brush=i.get(\"brush\"),this._zoom=d3.zoom(),this._drag=d3.drag(),this._initInteractions(),this._maskGaps=[],e.on(\"eletrack_added\",(function(t){a._maskGaps.push(t.index),e.once(\"eledata_updated\",(function(t){return a._maskGaps.push(t.index)}))}))},update:function(t){return t&&(t.data&&(this._data=t.data),t.options&&(this.options=t.options)),this._updateScale(),this._updateArea(),this._updateAxis(),this._updateLegend(),this._updateClipper(),this},render:function(){var t=this;return function(e){return e.append((function(){return t._container.node()}))}},clear:function(){this._resetDrag(),this._hideDiagramIndicator(),this._area.selectAll(\"path\").attr(\"d\",\"M0 0\"),this._context.clearRect(0,0,this._width(),this._height()),this._maskGaps=[],this._mask.selectAll(\".gap\").remove()},_drawPath:function(t){var e=this._paths[t],a=this._props.areas[t];e.datum(this._data).attr(\"d\",S(L.extend({},a,{width:this._width(),height:this._height(),scaleX:this._scales[a.scaleX],scaleY:this._scales[a.scaleY]}))),e.classed(\"leaflet-hidden\")||(this.options.preferCanvas?o(this._context,e):this._area.append((function(){return e.node()})))},_hasActiveLayers:function(){var t=this._paths;for(var e in t)if(!t[e].classed(\"leaflet-hidden\"))return!0;return!1},_initBrush:function(t){var e=this,a=function(t){if(e._data.length&&(\"brush\"!=t.type||t.sourceEvent)){var a=e._chart.panes.brush.select(\".overlay\").node(),i=d3.pointers(t,a)[0][0],n=e._data[e._findIndexForXCoord(i)];e.fire(\"mouse_move\",{item:n,xCoord:i})}};this._brush.filter((function(t){return e._brushEnabled&&!t.shiftKey&&!t.button})).on(\"end.update\",(function(t){if(e._data.length){var a=t.selection;if(a){var i=e._findIndexForXCoord(a[0]),n=e._findIndexForXCoord(a[1]);e.fire(\"dragged\",{dragstart:e._data[i],dragend:e._data[n]})}}})).on(\"brush.update\",a),this._chart.panes.brush.on(\"mouseenter.focus touchstart.focus\",this.fire.bind(this,\"mouse_enter\")).on(\"mouseout.focus touchend.focus\",this.fire.bind(this,\"mouse_out\")).on(\"mousemove.focus touchmove.focus\",a)},_initClipper:function(){var t=this,e=this._container,a=this.options.margins,i=this._zoom;i.scaleExtent([1,10]).extent([[a.left,0],[this._width()-a.right,this._height()]]).translateExtent([[a.left,-1/0],[this._width()-a.right,1/0]]).filter((function(e){return t._zoomEnabled&&(e.shiftKey||4==e.buttons)})).on(\"start\",(function(a){a.sourceEvent&&\"mousedown\"==a.sourceEvent.type&&e.style(\"cursor\",\"grabbing\"),1==a.transform.k&&0==a.transform.x&&(t._container.classed(\"zoomed\",!0),t._mask&&t._point.attr(\"mask\",\"url(#\"+t._mask.attr(\"id\")+\")\")),t.zooming=!0})).on(\"end\",(function(a){1==a.transform.k&&0==a.transform.x&&(t._container.classed(\"zoomed\",!1),t._mask&&t._point.attr(\"mask\",null)),t.zooming=!1,e.style(\"cursor\",\"\")})).on(\"zoom\",(function(e){t.zooming=!1,t._updateScale(),t.zooming=!0,t._scales.distance=t._x=e.transform.rescaleX(t._x),t._scales.time&&(t._scales.time=e.transform.rescaleX(t._scales.time)),t._resetDrag(),e.sourceEvent&&\"mousemove\"==e.sourceEvent.type&&t._hideDiagramIndicator(),t.fire(\"zoom\")})),e.call(i)},_initInteractions:function(){this._initBrush(),this._initRuler(),this._initClipper(),this._initLegend()},_initLegend:function(){var t=this;this._container.on(\"legend_clicked\",(function(e){var a=e.detail,i=a.path,n=a.legend,r=a.name,o=a.enabled;if(i){var s=y(\"text\",n),l=y(\"rect\",n);_(s,\"text-decoration-line\",\"line-through\",o),_(l,\"fill-opacity\",\"0\",o),h(i,\"leaflet-hidden\",o),t._updateArea(),t.fire(\"elepath_toggle\",{path:i,name:r,legend:n,enabled:o})}}))},_initRuler:function(){var t=this;if(this.options.ruler){var e=d3.format(\".0f\"),a=this._drag;a.on(\"start end\",(function(e,a){var i=t._height(),n=t._ruler.data()[0].y;(n>=i||n<=0)&&t._ruler.select(\".horizontal-drag-label\").text(\"\"),t._hideDiagramIndicator()})).on(\"drag\",(function(a,i){var n=t._height(),r=d3.pointers(a,t._area.node())[0][1],o=r>0?r<n?r:n:0,s=t._y.invert(o),l=L.extend(t._ruler.data()[0],{y:o});t._ruler.data([l]).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"})).classed(\"active\",o<n),t._container.select(\".horizontal-drag-label\").text(e(s)+\" \"+(t.options.imperial?\"ft\":\"m\")),t.fire(\"ruler_filter\",{coords:r<n&&r>0?t._findCoordsForY(r):[]})})),this._ruler.call(a)}},_initScale:function(){var t=this.options;this._registerAxisScale({axis:\"x\",position:\"bottom\",attr:t.xAttr,min:t.xAxisMin,max:t.xAxisMax,name:\"distance\"}),this._registerAxisScale({axis:\"y\",position:\"left\",attr:t.yAttr,min:t.yAxisMin,max:t.yAxisMax,name:\"altitude\"}),this._x=this._scales.distance,this._y=this._scales.altitude},_registerAreaPath:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x);var e=this.options;t.xAttr||(t.xAttr=e.xAttr),t.yAttr||(t.yAttr=e.yAttr),void 0===t.preferCanvas&&(t.preferCanvas=e.preferCanvas);var a=z(t);this._paths[t.name]=a,this._props.areas[t.name]=t,e.legend&&(this._props.legendItems[t.name]={name:t.name,label:t.label,color:t.color,path:a})},_registerAxisGrid:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x),this._props.grids[t.name||t.axis]=t},_registerAxisScale:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x);var e=this.options,a=t.scale;if(\"function\"==typeof this._scales[t.name])t.scale=this._scales[t.name];else if(\"function\"!=typeof a){(a=L.extend({data:this._data,forceBounds:e.forceAxisBounds},a)).attr=a.attr||t.name;var i=this._domains[t.name]=P(t),n=this._ranges[t.name]=B(t);a.range=a.range||n(this._width(),this._height()),a.domain=a.domain||i(this._data),this._props.scales[t.name]=a,t.scale=this._scales[t.name]=G(a)}return t.ticks||(\"x\"==t.axis?t.ticks=e.xTicks:\"y\"==t.axis&&(t.ticks=e.yTicks)),this._props.axes[t.name]=t,a},_registerCheckPoint:function(t){var e,a,i;this._data.length&&(t.latlng?(e=this._data[this._findIndexForLatLng(t.latlng)],a=this._x(e.dist),i=this._y(e.z)):isNaN(t.dist)||(a=this._x(t.dist),e=this._data[this._findIndexForXCoord(a)],i=this._y(e.z)),this._point.call(N({point:t,width:this._width(),height:this._height(),x:a,y:i})))},_registerTooltip:function(t){var e;t.order=null!==(e=t.order)&&void 0!==e?e:100,this._props.tooltipItems[t.name]=t},_updateArea:function(){var t=this._paths;for(var e in this._context.clearRect(0,0,this._width(),this._height()),t)t[e].classed(\"leaflet-hidden\")||this._drawPath(e)},_updateAxis:function(){var t=this.options;this._grid.selectAll(\"g\").remove(),this._axis.selectAll(\"g\").remove();var e,a,i,n=this._props.grids,r=this._props.axes,o={width:this._width(),height:this._height(),tickFormat:\"\"},s={width:this._width(),height:this._height()};for(var l in n)e=L.extend({},o,n[l]),i=F(e),this._grid.call(i);for(var c in r)!1!==t[c]&&\"summary\"!==t[c]&&(e=L.extend({},s,r[c]),a=D(e),this._axis.call(a));this._axis.selectAll(\".y.axis.right\").each((function(t,e,a){var i=d3.select(a[e]),n=i.attr(\"transform\"),r=n.substring(n.indexOf(\"(\")+1,n.indexOf(\")\")).split(\",\");i.attr(\"transform\",\"translate(\"+(+r[0]+40*e)+\",\"+r[1]+\")\"),e>0&&(i.select(\":scope > path\").attr(\"opacity\",.25),i.selectAll(\":scope > .tick line\").attr(\"opacity\",.75))}))},_updateClipper:function(){var t=this,e=this.options.margins;this._zoom.scaleExtent([1,10]).extent([[e.left,0],[this._width()-e.right,this._height()]]).translateExtent([[e.left,-1/0],[this._width()-e.right,1/0]]),this._mask.selectAll(\".gap\").remove(),this._maskGaps.forEach((function(e,a){if(!(a>=t._maskGaps.length-2)){var i=t._data[t._maskGaps[a]],n=t._data[t._maskGaps[a+1]],r=t._x(t._data[t._findIndexForLatLng(i.latlng)].dist),o=t._x(t._data[t._findIndexForLatLng(n.latlng)].dist);t._mask.append(\"rect\").attr(\"x\",r).attr(\"y\",0).attr(\"width\",o-r).attr(\"height\",t._height()).attr(\"class\",\"gap\").attr(\"fill-opacity\",\"0.8\").attr(\"fill\",\"black\")}}))},_updateLegend:function(){var t=this;if(!1!==this.options.legend){var e,a=this._props.legendItems;for(var i in this._legend.selectAll(\"g\").remove(),a)e=T(L.extend({width:this._width(),height:this._height(),margins:this.options.margins},a[i])),this._legend.append(\"g\").call(e);var n=this._legend.selectAll(\".legend-item\"),r=n.nodes().length,o=Array(Math.floor(r/2)).fill(null).map((function(t,e){return 2*(e+1)-(1-Math.sign(r%2))})),s=o.slice().reverse().map((function(t){return-t}));r%2!=0&&s.push(0),o=s.concat(o);var l=this._axis.selectAll(\".x.axis.bottom\").nodes().length,c=30+2*l,h=30*r;r&&this.options.margins.right<h&&(this.options.margins.right=h,this.fire(\"margins_updated\")),l&&this.options.margins.bottom<c&&(this.options.margins.bottom=c,this.fire(\"margins_updated\")),n.each((function(e,a,i){var n=d3.select(i[a]),r=(n.select(\"rect\"),n.attr(\"data-name\")),s=t._paths[r],c=55*o[a],h=2*l;n.attr(\"transform\",\"translate(\"+c+\", \"+h+\")\"),r in t.options&&\"disabled\"==t.options[r]&&(s.classed(\"leaflet-hidden\",!0),n.select(\"text\").style(\"text-decoration-line\",\"line-through\"),n.select(\"rect\").style(\"fill-opacity\",\"0\")),t._mask&&s.attr(\"mask\",\"url(#\"+t._mask.attr(\"id\")+\")\")}))}},_updateScale:function(){if(this.zooming)return{x:this._x,y:this._y};for(var t in this._scales)this._scales[t].domain(this._domains[t](this._data)).range(this._ranges[t](this._width(),this._height()));return{x:this._x,y:this._y}},_width:function(){return this._chart._width},_height:function(){return this._chart._height},_findCoordsForY:function(t){var e,a=this._data,i=this._y.invert(t),n=a.reduce((function(t,e,a){return e.z>=i&&t.push(a),t}),[]),r=0;return n.reduce((function(t,i,o){return n[e=o+1]===n[o]+1&&e!==n.length||(t.push(n.slice(r,e).map((function(t){return a[t].latlng}))),r=e),t}),[])},_findIndexForXCoord:function(t){var e=this;return d3.bisector((function(t){return t[e.options.xAttr]})).left(this._data||[0,1],this._x.invert(t))},_findIndexForLatLng:function(t){var e=null,a=1/0;return this._data.forEach((function(i,n){var r=t.distanceTo(i.latlng);r<a&&(a=r,e=n)})),e},_resetDrag:function(){this._chart.panes.brush.select(\".selection\").attr(\"width\")&&(this._chart.panes.brush.call(this._brush.clear),this._hideDiagramIndicator(),this.fire(\"reset_drag\"))},_resetZoom:function(){this._zoom&&this._zoom.transform(this._chart.svg,d3.zoomIdentity)},_showDiagramIndicator:function(t,e){this._tooltip.attr(\"display\",null).call(I({xCoord:e,yCoord:this._y(t[this.options.yAttr]),height:this._height(),width:this._width(),labels:this._props.tooltipItems,item:t}))},_hideDiagramIndicator:function(){this._tooltip.attr(\"display\",\"none\")}});function j(t){return(j=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var R,J=L.Class.extend({initialize:function(t){switch(this.options=t,this.options.marker){case\"elevation-line\":break;case\"position-marker\":this._marker=L.marker([0,0],{icon:this.options.markerIcon,zIndexOffset:1e6,interactive:!1})}return this._labels={},this},addTo:function(t){switch(this._map=t,this.options.marker){case\"elevation-line\":this._container=d3.select(t.getPane(\"elevationPane\")).select(\"svg > g\").call(E({}));break;case\"position-marker\":this._marker.addTo(t,{pane:\"overlayPane\"})}return this},update:function(t){if(t?this._props=t:t=this._props,t)switch(t.options&&(this.options=t.options),this._map||this.addTo(t.map),this._latlng=t.item.latlng,this.options.marker){case\"elevation-line\":if(this._container){var e=this._map.latLngToLayerPoint(this._latlng);e=L.extend({},t.item,this._map._rotate?this._map.rotatedPointToMapPanePoint(e):e),this._container.classed(\"leaflet-hidden\",!1),this._container.call(E({theme:this.options.theme,xCoord:e.x,yCoord:e.y,length:e.y-this._height()/t.maxElevation*e.z,labels:this._labels,item:e}))}break;case\"position-marker\":c(this._marker.getElement(),\"leaflet-hidden\"),this._marker.setLatLng(this._latlng)}},remove:function(){switch(this._props=null,this.options.marker){case\"elevation-line\":this._container&&this._container.classed(\"leaflet-hidden\",!0);break;case\"position-marker\":l(this._marker.getElement(),\"leaflet-hidden\")}},getLatLng:function(){return this._latlng},_height:function(){var t=this.options;return t.height-t.margins.top-t.margins.bottom},_registerTooltip:function(t){this._labels[t.name]=t}}),Y=L.Class.extend({initialize:function(t,e){this.options=t,this.control=e,this.labels={},u(this._container=m(\"div\",\"elevation-summary \"+(t.summary?t.summary+\"-summary\":\"\")),\"max-width\",t.width?t.width+\"px\":\"\")},render:function(){var t=this;return function(e){return e.append((function(){return t._container}))}},reset:function(){this._container.innerHTML=\"\"},append:function(t,e,a){return this._container.innerHTML+='<span class=\"'.concat(t,'\"><span class=\"summarylabel\">').concat(e,'</span><span class=\"summaryvalue\">').concat(a,\"</span></span>\"),this},update:function(){var t=this;Object.keys(this.labels).sort((function(e,a){return t.labels[e].order-t.labels[a].order})).forEach((function(e){t.append(e,L._(t.labels[e].label),\"function\"!=typeof t.labels[e].value?t.labels[e].value:t.labels[e].value(t.control.track_info))}))},_registerSummary:function(t){for(var e in t){var a;t[e].order=null!==(a=t[e].order)&&void 0!==a?a:100,this.labels[e]=t[e]}}}),V={autofitBounds:!0,autohide:!L.Browser.mobile,autohideMarker:!0,almostover:!0,altitude:!0,collapsed:!1,detached:!0,distance:!0,distanceMarkers:{lazy:!0,distance:!0,direction:!0},decimalsX:2,decimalsY:0,dragging:!L.Browser.mobile,downloadLink:\"link\",elevationDiv:\"#elevation-div\",followMarker:!0,forceAxisBounds:!1,height:200,imperial:!1,interpolation:\"curveLinear\",lazyLoadJS:!0,legend:!0,margins:{top:30,right:30,bottom:30,left:40},marker:\"elevation-line\",markerIcon:L.divIcon({className:\"elevation-position-marker\",html:'<i class=\"elevation-position-icon\"></i>',iconSize:[32,32],iconAnchor:[16,16]}),position:\"topright\",polyline:{className:\"elevation-polyline\",color:\"#000\",opacity:.75,weight:5,lineCap:\"round\"},polylineSegments:{className:\"elevation-polyline-segments\",color:\"#F00\",interactive:!1},preferCanvas:!1,reverseCoords:!1,ruler:!0,skipNullZCoords:!1,theme:\"lightblue-theme\",summary:\"inline\",slope:!1,slopeDeltaMax:void 0,slopeRange:void 0,speed:!1,speedDeltaMax:void 0,speedRange:void 0,time:!1,timeFactor:3600,timeFormat:!1,timestamps:!1,width:600,waypoints:!0,wptIcons:{\"\":L.divIcon({className:\"elevation-waypoint-marker\",html:'<i class=\"elevation-waypoint-icon default\"></i>',iconSize:[30,30],iconAnchor:[8,30]})},wptLabels:!0,xAttr:\"dist\",xLabel:\"km\",xTicks:void 0,yAttr:\"z\",yAxisMax:void 0,yAxisMin:void 0,yLabel:\"m\",yTicks:void 0,zFollow:!1,zooming:!L.Browser.Mobile},W=L.Control.Elevation=L.Control.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,options:V,__mileFactor:.621371,__footFactor:3.28084,__D3:\"https://unpkg.com/d3@6.5.0/dist/d3.min.js\",__TOGEOJSON:\"https://unpkg.com/@tmcw/togeojson@4.5.0/dist/togeojson.umd.js\",__LGEOMUTIL:\"https://unpkg.com/leaflet-geometryutil@0.9.3/src/leaflet.geometryutil.js\",__LALMOSTOVER:\"https://unpkg.com/leaflet-almostover@1.0.1/src/leaflet.almostover.js\",__LDISTANCEM:\"https://unpkg.com/@raruto/leaflet-elevation@1.9.6/libs/leaflet-distance-marker.min.js\",addData:function(t,e){var a=this;this.lazyLoad(this.__D3).then((function(){void 0===e&&t.on&&(e=t),a._addData(t),a._addLayer(e),a._fireEvt(\"eledata_added\",{data:t,layer:e,track_info:a.track_info})}))},addTo:function(t){if(this.options.detached){var e=this._initElevationDiv();e.isConnected||g(t.getContainer(),e,\"afterend\"),f(e,this.onAdd(t))}else L.Control.prototype.addTo.call(this,t);return this},clear:function(){this._marker&&this._marker.remove(),this._chart&&this._clearChart(),this._layers&&this._clearLayers(),this._markers&&this._clearMarkers(),this._data=[],this.track_info={},this._fireEvt(\"eledata_clear\"),this._updateChart()},_clearChart:function(){var t=this;this._events&&this._events.elechart_updated&&this._events.elechart_updated.forEach((function(e){return t.off(\"elechart_updated\",e.fn,e.ctx)})),this._chart&&this._chart._container&&(this._chart._container.selectAll(\"g.point .point\").remove(),this._chart.clear())},_clearLayers:function(){this._layers&&this._layers.eachLayer&&(this._layers.eachLayer((function(t){return t.remove()})),this._layers.clearLayers())},_clearMarkers:function(){this._markers&&this._markers.eachLayer&&(this._markers.eachLayer((function(t){return t.remove()})),this._markers.clearLayers())},disableBrush:function(){this._chart._brushEnabled=!1,this._resetDrag()},enableBrush:function(){this._chart._brushEnabled=!0},disableZoom:function(){this._chart._zoomEnabled=!1,this._chart._resetZoom()},enableZoom:function(){this._chart._zoomEnabled=!0},fitBounds:function(t){t=t||this.getBounds(),this._map&&t.isValid()&&this._map.fitBounds(t)},getBounds:function(t){return t=t||this._data,L.latLngBounds(t.map((function(t){return t.latlng})))},getZFollow:function(){return this.options.zFollow},hide:function(){u(this._container,\"display\",\"none\")},initialize:function(t){this._data=[],this._layers=L.featureGroup(),this._markers=L.featureGroup(),this._markedSegments=L.polyline([]),this._chartEnabled=!0,this.track_info={},this.handlers=[],L.setOptions(this,t),this.options.followMarker&&(this._setMapView=L.Util.throttle(this._setMapView,300,this)),this.options.legend&&(this.options.margins.bottom+=30),this.options.theme&&(this.options.polylineSegments.className+=\" \"+this.options.theme),!0===this.options.wptIcons&&(this.options.wptIcons=V.wptIcons),!0===this.options.distanceMarkers&&(this.options.distanceMarkers=V.distanceMarkers),this._markedSegments.setStyle(this.options.polylineSegments),L.extend(A,this.options.colors||{}),this._fixCanvasPaths(),this._fixTooltipSize()},lazyLoad:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"\";if(!this.options.lazyLoadJS)return Promise.resolve();switch(t){case this.__D3:a=\"_d3LazyLoader\",e=\"object\"!==(\"undefined\"==typeof d3?\"undefined\":j(d3));break;case this.__TOGEOJSON:a=\"_togeojsonLazyLoader\",e=\"object\"!==(\"undefined\"==typeof toGeoJSON?\"undefined\":j(toGeoJSON));break;case this.__LGEOMUTIL:a=\"_geomutilLazyLoader\",e=\"object\"!==j(L.GeometryUtil);break;case this.__LALMOSTOVER:a=\"_almostoverLazyLoader\",e=\"function\"!=typeof L.Handler.AlmostOver;break;case this.__LDISTANCEM:a=\"_distanceMarkersLazyLoader\",e=\"function\"!=typeof L.DistanceMarkers}return L.Control.Elevation[a]=r(t,e,L.Control.Elevation[a])},load:function(t){var e=this;this._parseFromString(t).then((function(a){return a?e._loadLayer(a):e._loadFile(t)}))},onAdd:function(t){var e=this;this._map=t;var a=this._container=m(\"div\",\"elevation-control elevation \"+this.options.theme+\" \"+(this.options.detached?\"\":\"leaflet-control\"));return this.lazyLoad(this.__D3).then((function(){e._initButton(a),e._initChart(a),e._initSummary(a),e._initMarker(t),e._initLayer(t),t.on(\"zoom viewreset zoomanim\",e._hideMarker,e).on(\"resize\",e._resetView,e).on(\"resize\",e._resizeChart,e).on(\"rotate\",e._rotateMarker,e).on(\"mousedown\",e._resetDrag,e),x(t.getContainer(),\"mousewheel\",e._resetDrag,e),x(t.getContainer(),\"touchstart\",e._resetDrag,e),x(document,\"keydown\",e._keydownHandler,e),e.on(\"eledata_added eledata_loaded\",e._updateChart,e).on(\"eledata_added eledata_loaded\",e._updateSummary,e),e._updateChart(),e._updateSummary()})),a},onRemove:function(t){this._container=null,t.off(\"zoom viewreset zoomanim\",this._hideMarker,this).off(\"resize\",this._resetView,this).off(\"resize\",this._resizeChart,this).off(\"mousedown\",this._resetDrag,this),b(t.getContainer(),\"mousewheel\",this._resetDrag,this),b(t.getContainer(),\"touchstart\",this._resetDrag,this),b(document,\"keydown\",this._keydownHandler,this),this.off(\"eledata_added eledata_loaded\",this._updateChart,this).off(\"eledata_added eledata_loaded\",this._updateSummary,this)},redraw:function(){this._resizeChart()},setZFollow:function(t){this.options.zFollow=t},show:function(){u(this._container,\"display\",\"block\")},_addData:function(t){var e=this;if(t){var a=t.geometry;if(a)switch(a.type){case\"LineString\":this._addGeoJSONData(a.coordinates);break;case\"MultiLineString\":M(a.coordinates,(function(t){return e._addGeoJSONData(t)}));break;default:console.warn(\"Unsopperted GeoJSON feature geometry type:\"+a.type)}\"FeatureCollection\"===t.type&&M(t.features,(function(t){return e._addData(t)})),t._latlngs&&this._addGeoJSONData(t._latlngs,t.feature&&t.feature.properties)}},_addGeoJSONData:function(t,e){var a=this;t.forEach((function(t,i){var n,r,o,s,l;t.meta=null!==(n=t.meta)&&void 0!==n?n:{time:null,ele:null,hr:null,cad:null,atemp:null};var c=e&&e.coordinateProperties||e;a.fire(\"elepoint_init\",{point:t,props:c,id:i}),a._addPoint(null!==(r=t.lat)&&void 0!==r?r:t[1],null!==(o=t.lng)&&void 0!==o?o:t[0],null!==(s=null!==(l=t.alt)&&void 0!==l?l:t.meta.ele)&&void 0!==s?s:t[2]),a.fire(\"elepoint_added\",{point:t,index:a._data.length-1})})),this.fire(\"eletrack_added\",{coords:t,index:this._data.length-1})},_addPoint:function(t,e,a){if(this.options.reverseCoords){var i=[e,t];t=i[0],e=i[1]}this._data.push({x:t,y:e,z:a,latlng:L.latLng(t,e,a)}),this.fire(\"eledata_updated\",{index:this._data.length-1})},_addLayer:function(t){t&&this._layers.addLayer(t),t&&this.options.distanceMarkers&&this.options.distanceMarkers.lazy&&t.on(\"add remove\",(function(t){return L.DistanceMarkers&&t.target instanceof L.Polyline&&t.target[t.type+\"DistanceMarkers\"]()}))},_addMarker:function(t){t&&this._markers.addLayer(t)},_initAlmostOverHandler:function(t,e){var a=this;t&&this.options.almostOver&&this.lazyLoad(this.__LGEOMUTIL).then((function(){return a.lazyLoad(a.__LALMOSTOVER)})).then((function(){t.addHandler(\"almostOver\",L.Handler.AlmostOver),L.GeometryUtil&&t.almostOver&&t.almostOver.enabled()&&(t.almostOver.addLayer(e),t.on(\"almost:move\",(function(t){return a._mousemoveLayerHandler(t)})).on(\"almost:out\",(function(t){return a._mouseoutHandler(t)})))}))},_initDistanceMarkers:function(t,e){var a=this;t&&(this.options.distanceMarkers?this.lazyLoad(this.__LGEOMUTIL).then((function(){return a.lazyLoad(a.__LDISTANCEM)})).then((function(){return a.options.polyline&&e.addTo(t)})):this.options.polyline&&e.addTo(t))},_initElevationDiv:function(){var t=y(this.options.elevationDiv);return t||(this.options.elevationDiv=\"#elevation-div_\"+w(),t=m(\"div\",\"leaflet-control elevation elevation-div\",{id:this.options.elevationDiv.substr(1)})),this.options.detached&&d(t,\"leaflet-control\",\"elevation-detached\"),this.eleDiv=t},_initMapIntegrations:function(t,e){var a=t._map;t._map?(a.once(\"layeradd\",(function(a){return t.options.autofitBounds&&t.fitBounds(e.getBounds())})),L.Browser.mobile?t.options.polyline&&e.addTo(a):(t._initAlmostOverHandler(a,e),t._initDistanceMarkers(a,e))):console.warn(\"Undefined elevation map object\")},_collapse:function(){d(this._container,\"elevation-expanded\",\"elevation-collapsed\")},_expand:function(){d(this._container,\"elevation-collapsed\",\"elevation-expanded\")},_fixCanvasPaths:function(){var t=L.Canvas.prototype._fillStroke,e=this;L.Canvas.include({_fillStroke:function(a,i){if(e._layers.hasLayer(i)){var n=e.options.theme.replace(\"-theme\",\"\"),r=A[n]||{},o=i.options;if(o.color=r.line||r.area||n,o.stroke=!!o.color,t.call(this,a,i),o.stroke&&0!==o.weight){var s=a.globalCompositeOperation||\"source-over\";a.globalCompositeOperation=\"destination-over\",a.strokeStyle=r.outline||\"#FFF\",a.lineWidth=1.75*o.weight,a.stroke(),a.globalCompositeOperation=s}}else t.call(this,a,i)}})},_fixTooltipSize:function(){var t=this;this.on(\"elechart_init\",(function(){return t.once(\"elechart_change elechart_hover\",(function(e){t._chartEnabled&&(t._chart._showDiagramIndicator(e.data,e.xCoord),t._chart._showDiagramIndicator(e.data,e.xCoord)),t._updateMarker(e.data)}))}))},_findItemForLatLng:function(t){return this._data[this._chart._findIndexForLatLng(t)]},_findItemForX:function(t){return this._data[this._chart._findIndexForXCoord(t)]},_fireEvt:function(t,e,a){this.fire&&this.fire(t,e,a),this._map&&this._map.fire(t,e,a)},_height:function(){if(this._chart)return this._chart._height();var t=this.options;return t.height-t.margins.top-t.margins.bottom},_hideMarker:function(){this.options.autohideMarker&&this._marker.remove()},_initChart:function(t){var e=this.options;if(e.xTicks=this._xTicks(),e.yTicks=this._yTicks(),e.detached){var a=this.eleDiv,i=a.offsetWidth,n=a.offsetHeight;i>0&&(e.width=i),n>20&&(e.height=n-20)}else{var r=this._map.getContainer().clientWidth;e._maxWidth=e._maxWidth>e.width?e._maxWidth:e.width,this._container.style.maxWidth=e._maxWidth+\"px\",e._maxWidth>r&&(e.width=r-30)}var o=this._chart=new U(e,this);this._x=this._chart._x,this._y=this._chart._y,d3.select(t).call(o.render()),o.on(\"reset_drag\",this._hideMarker,this).on(\"mouse_enter\",this._mouseenterHandler,this).on(\"dragged\",this._dragendHandler,this).on(\"mouse_move\",this._mousemoveHandler,this).on(\"mouse_out\",this._mouseoutHandler,this).on(\"ruler_filter\",this._rulerFilterHandler,this).on(\"zoom\",this._updateChart,this).on(\"elepath_toggle\",this._toggleChartHandler,this).on(\"margins_updated\",this._resizeChart,this),this.fire(\"elechart_axis\"),this.options.legend&&this.fire(\"elechart_legend\"),this.fire(\"elechart_init\")},_initLayer:function(){var t=this;this._layers.on(\"layeradd layerremove\",(function(e){var a=e.layer;h(a.getElement&&a.getElement(),t.options.polyline.className+\" \"+t.options.theme,\"layeradd\"==e.type),p(a,\"mousemove\",t._mousemoveLayerHandler.bind(t),\"layeradd\"==e.type),p(a,\"mouseout\",t._mouseoutHandler.bind(t),\"layeradd\"==e.type)}))},_initMarker:function(t){var e=t.getPane(\"elevationPane\");e||((e=this._pane=t.createPane(\"elevationPane\",t.getPane(\"norotatePane\")||t.getPane(\"mapPane\"))).style.zIndex=625,e.style.pointerEvents=\"none\"),this._renderer&&this._renderer.remove(),this._renderer=L.svg({pane:\"elevationPane\"}).addTo(this._map),this._marker=new J(this.options),this.fire(\"elechart_marker\")},_initButton:function(t){if(!L.Browser.mobile&&this.options.detached||L.DomEvent.disableClickPropagation(t).disableScrollPropagation(t),!this.options.detached){var e=this._button=m(\"a\",\"elevation-toggle elevation-toggle-icon\"+(this.options.autohide?\"\":\" close-button\"),{href:\"#\",title:L._(\"Elevation\")},t);this.options.collapsed&&(this._collapse(),this.options.autohide?(x(t,\"mouseover\",this._expand,this),x(t,\"mouseout\",this._collapse,this)):(x(e,\"click\",L.DomEvent.stop),x(e,\"click\",this._toggle,this)),x(e,\"focus\",this._toggle,this),this._map.on(\"click\",this._collapse,this))}},_initSummary:function(t){this._summary=new Y({summary:this.options.summary},this),d3.select(t).call(this._summary.render())},_keydownHandler:function(t){this.options.detached||\"Escape\"!==t.key||this._collapse()},_loadFile:function(t){var e=this;fetch(t).then((function(t){return t.text()})).then((function(a){e._downloadURL=t,e._parseFromString(a).then((function(t){return t&&e._loadLayer(t)}))})).catch((function(t){return console.warn(t)}))},_loadLayer:function(t){var e=this,a=e.options,i=a.wptIcons,n=a.wptLabels,r=L.geoJson(t,{distanceMarkers:e.options.distanceMarkers,style:function(t){var a=L.extend({},e.options.polyline);return e.options.theme&&(a.className+=\" \"+e.options.theme),a},pointToLayer:function(t,a){var r,o,s;if(e.options.waypoints){var l=t.properties,c=null!==(r=l.desc)&&void 0!==r?r:\"\",h=null!==(o=l.name)&&void 0!==o?o:\"\",d=(null!==(s=l.sym)&&void 0!==s?s:h).replace(\" \",\"-\").replace('\"',\"\").replace(\"'\",\"\").toLowerCase();if([!0,\"dots\"].includes(e.options.waypoints)&&e._registerCheckPoint({latlng:a,label:[!0,\"dots\"].includes(n)?h:\"\"}),[!0,\"markers\"].includes(e.options.waypoints)&&0!=i){i.hasOwnProperty(d)||(i[d]=L.divIcon(L.extend({},i[\"\"].options,{html:'<i class=\"elevation-waypoint-icon '+d+'\"></i>'})));var u=L.marker(a,{icon:i[d]});if([!0,\"markers\"].includes(n)&&(h||c)){var _=decodeURI(\"<b>\"+h+\"</b>\"+(c.length>0?\"<br>\"+c:\"\"));u.bindPopup(_,{className:\"elevation-popup\",keepInView:!0}).openPopup(),u.bindTooltip(_,{className:\"elevation-tooltip\",direction:\"auto\",sticky:!0,opacity:1}).openTooltip()}return e._addMarker(u),e.fire(\"waypoint_added\",{point:u,element:a,properties:l}),u}}},onEachFeature:function(a,i){a.geometry&&\"Point\"!=a.geometry.type&&(e.addData(i),e.track_info=L.extend({},e.track_info,{name:t.name}))}});return e.lazyLoad(e.__D3).then((function(){e._initMapIntegrations(e,r),e._fireEvt(\"eledata_loaded\",{data:t,layer:r,name:e.track_info.name,track_info:e.track_info})})),r},_dragendHandler:function(t){this._hideMarker(),this.fitBounds(L.latLngBounds([t.dragstart.latlng,t.dragend.latlng])),this.fire(\"elechart_dragged\")},_mouseenterHandler:function(t){this.fire(\"elechart_enter\")},_mousemoveHandler:function(t){if(this._data.length&&this._chartEnabled){var e=this._findItemForX(t.xCoord);if(e){var a=t.xCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,a),this._updateMarker(e),this._setMapView(e),this._map&&l(this._map.getContainer(),\"elechart-hover\"),this.fire(\"elechart_change\",{data:e,xCoord:a}),this.fire(\"elechart_hover\",{data:e,xCoord:a})}}},_mousemoveLayerHandler:function(t){if(this._data.length){var e=this._findItemForLatLng(t.latlng);if(e){var a=e.xDiagCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,a),this._updateMarker(e),this.fire(\"elechart_change\",{data:e,xCoord:a})}}},_mouseoutHandler:function(){this.options.detached||(this._hideMarker(),this._chart._hideDiagramIndicator()),this._map&&c(this._map.getContainer(),\"elechart-hover\"),this.fire(\"elechart_leave\")},_parseFromGeoJSONString:function(t){try{return JSON.parse(t)}catch(t){}},_parseFromString:function(t){var e=this;return new Promise((function(a){return e.lazyLoad(e.__TOGEOJSON).then((function(){var i;try{i=e._parseFromXMLString(t.trim())}catch(a){i=e._parseFromGeoJSONString(t.toString())}i&&(i=e._prepareMultiLineStrings(i),i=e._prepareAdditionalProperties(i)),a(i)}))}))},_parseFromXMLString:function(t){var e;if(0!=t.indexOf(\"<\"))throw\"Invalid XML\";var a=(new DOMParser).parseFromString(t,\"text/xml\"),i=a.documentElement.tagName.toLowerCase(),n=a.getElementsByTagName(\"name\");if(a.getElementsByTagName(\"parsererror\").length)throw\"Invalid XML\";i in toGeoJSON||(i=\"TrainingCenterDatabase\"==a.documentElement.tagName?\"tcx\":\"gpx\");var r=toGeoJSON[i](a);return r.name=n.length>0?(null!==(e=Array.from(n).find((function(t){return\"trk\"==t.parentElement.tagName})))&&void 0!==e?e:n[0]).textContent:\"\",r},_prepareAdditionalProperties:function(t){return!t.name&&this._downloadURL&&(t.name=this._downloadURL.split(\"/\").pop().split(\"#\")[0].split(\"?\")[0]),t},_prepareMultiLineStrings:function(t){return t.features.forEach((function(e){\"MultiLineString\"==e.geometry.type&&e.geometry.coordinates.forEach((function(a){t.features.push({geometry:{type:\"LineString\",coordinates:a},properties:e.properties,type:\"Feature\"})}))})),t.features.filter((function(t){return\"MultiLineString\"!=t.geometry.type}))},_registerAreaPath:function(t){var e=this;this.on(\"elechart_init\",(function(){return e._chart._registerAreaPath(t)}))},_registerAxisGrid:function(t){var e=this;this.on(\"elechart_axis\",(function(){return e._chart._registerAxisGrid(t)}))},_registerAxisScale:function(t){var e=this;this.on(\"elechart_axis\",(function(){return e._chart._registerAxisScale(t)}))},_registerCheckPoint:function(t){var e=this;this.on(\"elechart_updated\",(function(){return e._chart._registerCheckPoint(t)}))},_registerDataAttribute:function(t){var e=this,a=null;t.init&&this.on(\"elepoint_init\",(function(a){return t.init.call(e,a)})),this.on(\"elepoint_added\",(function(i){if(!1===t.skipNull){var n=e._data[i.index][t.name];if(i.index>0){var r=e._data[i.index-1][t.name];if(isNaN(r)){if(isNaN(a)||isNaN(n)?isNaN(a)?isNaN(n)||(r=n):r=a:r=(a+n)/2,!isNaN(r))return e._data.splice(i.index-1,1);e._data[i.index-1][t.name]=r}}isNaN(n)||(a=n)}e._data[i.index][t.name]=t.fetch.call(e,i.index,i.point),t.update&&(e._data[i.index][t.name]=t.update.call(e,e._data[i.index][t.name],i.index,i.point))}))},_registerTooltip:function(t){var e=this;if(t.chart){var a=L.extend({},t,{value:t.chart});this.on(\"elechart_init\",(function(){return e._chart._registerTooltip(a)}))}if(t.marker){var i=L.extend({},t,{value:t.marker});this.on(\"elechart_marker\",(function(){return e._marker._registerTooltip(i)}))}},_registerSummary:function(t){var e=this;this.on(\"elechart_summary\",(function(){return e._summary._registerSummary(t)}))},_resetDrag:function(){this._chart._resetDrag(),this._hideMarker()},_resetView:function(){this._map&&this._map._isFullscreen||(this._resetDrag(),this._hideMarker(),this.options.autofitBounds&&this.fitBounds())},_resizeChart:function(){if(this._container&&\"none\"!=u(this._container,\"display\")){var t,e=this.options;if(e.detached)t=(this.eleDiv||this._container).offsetWidth;else{var a=this._map.getContainer().clientWidth;t=e._maxWidth>a?a-30:e._maxWidth}if(t){var i=this._chart;e.width=t,i&&i._chart&&(i._chart._resize(e),e.xTicks=this._xTicks(),e.yTicks=this._yTicks(),this._updateChart())}this._updateMapSegments()}},_rulerFilterHandler:function(t){this._updateMapSegments(t.coords)},_toggle:function(){k(this._container,\"elevation-expanded\")?this._collapse():this._expand()},_setMapView:function(t){if(this.options.followMarker&&this._map){var e=this._map.getZoom(),a=this.options.zFollow;\"number\"==typeof a?this._map.setView(t.latlng,e<a?a:e,{animate:!0,duration:.25}):this._map.getBounds().contains(t.latlng)||this._map.setView(t.latlng,e,{animate:!0,duration:.25})}},_toggleChartHandler:function(t){var e=this,a=t.name,i=t.enabled;this._chartEnabled=this._chart._hasActiveLayers(),this._layers.eachLayer((function(t){return h(t.getElement&&t.getElement(),e.options.polyline.className+\" \"+e.options.theme,e._chartEnabled)})),this.options[a]=i||\"disabled\"!=this.options[a]?\"disabled\":\"enabled\",this._chartEnabled||(this._chart._hideDiagramIndicator(),this._marker.remove())},_updateChart:function(){\n/*!this._data.length ||*/\nthis._chart&&this._container&&(this.fire(\"elechart_axis\"),this.fire(\"elechart_area\"),this._chart.update({data:this._data,options:this.options}),this._x=this._chart._x,this._y=this._chart._y,this.fire(\"elechart_updated\"))},_updateMarker:function(t){this._marker&&this._marker.update({map:this._map,item:t,maxElevation:this.track_info.elevation_max||0,options:this.options})},_rotateMarker:function(){this._marker&&this._marker.update()},_updateMapSegments:function(t){this._markedSegments.setLatLngs(t||[]),t&&this._map&&!this._map.hasLayer(this._markedSegments)&&this._markedSegments.addTo(this._map)},_updateSummary:function(){var t=this;this._summary.reset(),this.options.summary&&(this.fire(\"elechart_summary\"),this._summary.update()),this.options.downloadLink&&this._downloadURL&&(this._summary._container.innerHTML+='<span class=\"download\"><a href=\"#\">'+L._(\"Download\")+\"</a></span>\",y(\".download a\",this._summary._container).onclick=function(e){e.preventDefault();var a={downloadLink:t.options.downloadLink,confirm:n.bind(t,t._downloadURL)};\"modal\"==t.options.downloadLink&&\"function\"==typeof CustomEvent?document.dispatchEvent(new CustomEvent(\"eletrack_download\",{detail:a})):\"link\"!=t.options.downloadLink&&!0!==t.options.downloadLink||a.confirm(),t.fire(\"eletrack_download\",a)})},_width:function(){if(this._chart)return this._chart._width();var t=this.options;return t.width-t.margins.left-t.margins.right},_xTicks:function(){return this.__xTicks&&(this.__xTicks=this.options.xTicks),this.__xTicks||Math.round(this._width()/75)},_yTicks:function(){return this.__yTicks&&(this.__yTicks=this.options.yTicks),this.__yTicks||Math.round(this._height()/30)}});W.addInitHook((function(){var t=this,e=this.options,a={};e.imperial?(e.distanceFactor=this.__mileFactor,a.label=\"mi\"):(e.distanceFactor=e.distanceFactor||1,a.label=e.xLabel),this._registerDataAttribute({name:\"dist\",init:function(){},fetch:function(a){var i=t._data[a].latlng.distanceTo(t._data[a>0?a-1:a].latlng)*e.distanceFactor;return Math.round(i/1e3*1e5)/1e5},update:function(e){return t.track_info.distance=t.track_info.distance||0,t.track_info.distance+=e,t.track_info.distance}}),\"summary\"!=this.options.distance&&this._registerAxisScale({axis:\"x\",position:\"bottom\",scale:\"x\",label:a.label,labelY:25,labelX:function(){return t._width()+6},name:\"distance\"}),this._registerAxisGrid({axis:\"x\",position:\"bottom\",scale:\"x\"}),this._registerTooltip({name:\"x\",chart:function(t){return L._(\"x: \")+d3.format(\".\"+e.decimalsX+\"f\")(t[e.xAttr])+\" \"+a.label},order:20}),this._registerSummary({totlen:{label:\"Total Length: \",value:function(t){return(t.distance||0).toFixed(2)+\" \"+a.label},order:10}})})),W.addInitHook((function(){var t=this,e=this.options,a={};a.label=e.timeLabel||\"t\",e.timeFactor=e.timeFactor||3600,this._timeAVGSpeed=(e.timeAVGSpeed||3.6)*(e.speedFactor||1),e.timeFormat?\"time\"==e.timeFormat?e.timeFormat=function(t){return new Date(t).toLocaleTimeString()}:\"date\"==e.timeFormat&&(e.timeFormat=function(t){return new Date(t).toLocaleDateString()}):e.timeFormat=function(t){return new Date(t).toLocaleString().replaceAll(\"/\",\"-\").replaceAll(\",\",\" \")},e.xTimeFormat=e.xTimeFormat||function(t){return i(t).split(\"'\")[0]},this._registerDataAttribute({name:\"time\",init:function(t){var e=t.point,a=t.props,i=t.id;a&&(\"coordTimes\"in a?e.meta.time=new Date(Date.parse(a.coordTimes[i])):\"times\"in a?e.meta.time=new Date(Date.parse(a.times[i])):\"time\"in a&&(e.meta.time=new Date(Date.parse(\"object\"===j(a.time)?a.time[i]:a.time))))},fetch:function(t,e){if(!e.meta||!e.meta.time)if(e.meta=e.meta||{},t>0){var a=this._data[t].dist-this._data[t-1].dist,i=this._data[t-1].time.getTime(),n=a/this._timeAVGSpeed*this.options.timeFactor*1e3;e.meta.time=new Date(i+n)}else e.meta.time=new Date(Date.now());var r=e.meta.time;return r.getTime()-60*r.getTimezoneOffset()*1e3==0&&(r=0),r},update:function(t,e){return this.track_info.time=(this.track_info.time||0)+Math.abs(this._data[e].time-this._data[e>0?e-1:e].time),this._data[e].duration=this.track_info.time,t}}),e.time&&\"summary\"!=e.time&&!L.Browser.mobile&&this._registerAxisScale({axis:\"x\",position:\"top\",scale:{attr:\"duration\",min:0},label:a.label,labelY:-10,labelX:function(){return t._width()},name:\"time\",tickFormat:function(t){return 0==t?\"\":e.xTimeFormat(t)},onAxisMount:function(e){e.select(\".domain\").remove(),e.selectAll(\"text\").attr(\"opacity\",.65).style(\"font-family\",\"Monospace\").style(\"font-size\",\"110%\"),e.selectAll(\".tick line\").attr(\"y2\",t._height()).attr(\"stroke-dasharray\",2).attr(\"opacity\",.75)}}),this.options.timestamps&&this._registerTooltip({name:\"date\",chart:function(e){return L._(\"t: \")+t.options.timeFormat(e.time)},order:20}),this.options.time&&(this._registerTooltip({name:\"time\",chart:function(t){return L._(\"T: \")+i(t.duration||0)},order:20}),this._registerSummary({tottime:{label:\"Total Time: \",value:function(t){return i(t.time||0)},order:20}}))})),W.addInitHook((function(){var t=this,e=this.options,a={},i=e.theme.replace(\"-theme\",\"\"),n=A[i]||{};e.imperial?(e.altitudeFactor=this.__footFactor,a.label=\"ft\"):(e.altitudeFactor=e.heightFactor||e.altitudeFactor||1,a.label=e.yLabel),this._registerDataAttribute({name:\"z\",skipNull:this.options.skipNullZCoords,init:function(t){var e=t.point;\"alt\"in e&&(e.meta.ele=e.alt)},fetch:function(a){return t._data[a].z*e.altitudeFactor},update:function(e,a){t.track_info.elevation_max=t.track_info.elevation_max||-1/0,t.track_info.elevation_min=t.track_info.elevation_max||1/0,t.track_info.elevation_avg=t.track_info.elevation_avg||0;var i=t._data,n=t.track_info;if(t.options.altitudeDeltaMax){var r=e-i[a>0?a-1:a].z,o=t.options.altitudeDeltaMax;Math.abs(r)>o&&(e=i[a-1].z+o*Math.sign(r))}return(e=s(e,t.options.altitudeRange))>n.elevation_max&&(n.elevation_max=e),e<n.elevation_min&&(n.elevation_min=e),n.elevation_avg=(e+n.elevation_avg)/2,e}}),this._registerAxisScale({axis:\"y\",position:\"left\",scale:\"y\",label:a.label,labelX:-3,labelY:-8,name:\"altitude\",visbile:\"summary\"!=this.options.altitude}),this._registerAxisGrid({axis:\"y\",position:\"left\",scale:\"y\"}),this._registerAreaPath({name:\"altitude\",label:\"Altitude\",scaleX:\"distance\",scaleY:\"altitude\",color:n.area||i,strokeColor:e.detached?n.stroke:\"#000\",strokeOpacity:\"1\",fillOpacity:e.detached?n.alpha||\"0.8\":1,preferCanvas:e.preferCanvas,visbile:\"summary\"!=this.options.altitude}),this._registerTooltip({name:\"y\",chart:function(t){return L._(\"y: \")+d3.format(\".\"+e.decimalsY+\"f\")(t[e.yAttr])+\" \"+a.label},marker:function(t){return d3.format(\".\"+e.decimalsY+\"f\")(t[e.yAttr])+\" \"+a.label},order:10}),this._registerSummary({maxele:{label:\"Max Elevation: \",value:function(t){return(t.elevation_max||0).toFixed(2)+\" \"+a.label},order:30},minele:{label:\"Min Elevation: \",value:function(t){return(t.elevation_min||0).toFixed(2)+\" \"+a.label},order:30},avgele:{label:\"Avg Elevation: \",value:function(t){return(t.elevation_avg||0).toFixed(2)+\" \"+a.label},order:30}})})),W.addInitHook((function(){var t=this;if(this.options.slope){var e=this.options,a={};a.label=e.slopeLabel||\"%\",this._registerDataAttribute({name:\"slope\",fetch:function(e){var a=t._data,i=1e3*(a[e].dist-a[e>0?e-1:e].dist),n=a[e].z-a[e>0?e-1:e].z;return isNaN(n)||0===i?0:n/i*100},update:function(e,a){t.track_info.ascent=t.track_info.ascent||0,t.track_info.descent=t.track_info.descent||0,t.track_info.slope_max=t.track_info.slope_max||-1/0,t.track_info.slope_min=t.track_info.slope_min||1/0,t.track_info.slope_avg=t.track_info.slope_avg||0;var i=t.track_info,n=t._data,r=n[a].z-n[a>0?a-1:a].z;if(t.options.slopeDeltaMax){var o=slop-n[a>0?a-1:a].slope,l=t.options.slopeDeltaMax;Math.abs(o)>l&&(e=n[a-1].slope+l*Math.sign(o))}return e=s(e,t.options.slopeRange),r>0?t.track_info.ascent+=r:r<0&&(t.track_info.descent-=r),e>i.slope_max&&(i.slope_max=e),e<i.slope_min&&(i.slope_min=e),i.slope_avg=(e+i.slope_avg)/2,L.Util.formatNum(e,2)}}),this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:-1,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"slope\",visbile:\"summary\"!=this.options.slope}),this._registerAreaPath({name:\"slope\",label:\"Slope\",yAttr:\"slope\",scaleX:\"distance\",scaleY:\"slope\",color:\"#F00\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\",visbile:\"summary\"!=this.options.slope}),this._registerTooltip({name:\"slope\",chart:function(t){return L._(\"m: \")+t.slope+a.label},marker:function(t){return Math.round(t.slope)+a.label},order:40}),this._registerSummary({ascent:{label:\"Total Ascent: \",value:function(e){return Math.round(e.ascent||0)+\" \"+(t.options.imperial?\"ft\":\"m\")},order:40},descent:{label:\"Total Descent: \",value:function(e){return Math.round(e.descent||0)+\" \"+(t.options.imperial?\"ft\":\"m\")},order:40},minslope:{label:\"Min Slope: \",value:function(t){return Math.round(t.slope_min||0)+\" \"+a.label},order:40},maxslope:{label:\"Max Slope: \",value:function(t){return Math.round(t.slope_max||0)+\" \"+a.label},order:40},avgslope:{label:\"Avg Slope: \",value:function(t){return Math.round(t.slope_avg||0)+\" \"+a.label},order:40}})}})),W.addInitHook((function(){var t=this;if(this.options.speed||this.options.acceleration){var e=this.options,a={};a.label=e.speedLabel||L._(e.imperial?\"mph\":\"km/h\"),e.speedFactor=e.speedFactor||1,this._registerDataAttribute({name:\"speed\",init:function(){},fetch:function(a){var i=t._data,n=1e3*(i[a].dist-i[a>0?a-1:a].dist),r=i[a].time-i[a>0?a-1:a].time;return r>0?Math.abs(n/r*e.timeFactor)*e.speedFactor:0},update:function(e,a){t.track_info.speed_max=t.track_info.speed_max||-1/0,t.track_info.speed_min=t.track_info.speed_min||1/0,t.track_info.speed_avg=t.track_info.speed_avg||0;var i=t._data,n=t.track_info;if(t.options.speedDeltaMax){var r=e-i[a>0?a-1:a].speed,o=t.options.speedDeltaMax;Math.abs(r)>o&&(e=i[a-1].speed+o*Math.sign(r))}return(e=s(e,t.options.speedRange))>n.speed_max&&(n.speed_max=e),e<n.speed_min&&(n.speed_min=e),n.speed_avg=(e+n.speed_avg)/2,L.Util.formatNum(e,2)}}),this.options.speed&&\"summary\"!=this.options.speed&&(this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:0,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"speed\"}),this._registerAreaPath({name:\"speed\",label:\"Speed\",yAttr:\"speed\",scaleX:\"distance\",scaleY:\"speed\",color:\"#03ffff\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\"})),this.options.speed&&(this._registerTooltip({name:\"speed\",chart:function(t){return L._(\"v: \")+t.speed+\" \"+a.label},marker:function(t){return Math.round(t.speed)+\" \"+a.label},order:50}),this._registerSummary({minspeed:{label:\"Min Speed: \",value:function(t){return Math.round(t.speed_min||0)+\" \"+a.label},order:50},maxspeed:{label:\"Max Speed: \",value:function(t){return Math.round(t.speed_max||0)+\" \"+a.label},order:50},avgspeed:{label:\"Avg Speed: \",value:function(t){return Math.round(t.speed_avg||0)+\" \"+a.label},order:50}}))}})),W.addInitHook((function(){var t=this;if(this.options.acceleration){var e=this.options,a={};a.label=e.accelerationLabel||L._(e.imperial?\"ft/s²\":\"m/s²\"),e.accelerationFactor=e.accelerationFactor||1,this._registerDataAttribute({name:\"acceleration\",init:function(){},fetch:function(a){var i=t._data,n=(i[a].speed-i[a>0?a-1:a].speed)*(1e3/e.timeFactor),r=(i[a].time-i[a>0?a-1:a].time)/1e3;return r>0?Math.abs(n/r)*e.accelerationFactor:0},update:function(e,a){t.track_info.acceleration_max=t.track_info.acceleration_max||-1/0,t.track_info.acceleration_min=t.track_info.acceleration_min||1/0,t.track_info.acceleration_avg=t.track_info.acceleration_avg||0;var i=t._data,n=t.track_info;if(t.options.accelerationDeltaMax){var r=e-i[a>0?a-1:a].acceleration,o=t.options.accelerationDeltaMax;Math.abs(r)>o&&(e=i[a-1].acceleration+o*Math.sign(r))}return(e=s(e,t.options.accelerationRange))>n.acceleration_max&&(n.acceleration_max=e),e<n.acceleration_min&&(n.acceleration_min=e),n.acceleration_avg=(e+n.acceleration_avg)/2,L.Util.formatNum(e,2)}}),\"summary\"!=this.options.acceleration&&(this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:0,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"acceleration\"}),this._registerAreaPath({name:\"acceleration\",label:\"Acceleration\",yAttr:\"acceleration\",scaleX:\"distance\",scaleY:\"acceleration\",color:\"#050402\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\"})),this._registerTooltip({name:\"acceleration\",chart:function(t){return L._(\"a: \")+t.acceleration+\" \"+a.label},marker:function(t){return Math.round(t.acceleration)+\" \"+a.label},order:60}),this._registerSummary({minacceleration:{label:\"Min Acceleration: \",value:function(t){return Math.round(t.acceleration_min||0)+\" \"+a.label},order:60},maxacceleration:{label:\"Max Acceleration: \",value:function(t){return Math.round(t.acceleration_max||0)+\" \"+a.label},order:60},avgacceleration:{label:\"Avg Acceleration: \",value:function(t){return Math.round(t.acceleration_avg||0)+\" \"+a.label},order:60}})}})),W.Utils=C,W.Components=X,W.Chart=U,R=L.i18n.bind({}),L.i18n=L._=function(t,e){return L.locale&&L.locales[L.locale]&&\"\"==L.locales[L.locale][t]&&(L.locales[L.locale][t]=\"\"),R.call(null,t,e)},W.addInitHook((function(){this.enableDragging=this.enableBrush,this.disableDragging=this.disableBrush,this.loadChart=this.addTo,this.loadData=this.load,this.loadGPX=this.load,this.loadGeoJSON=this.load,this.loadXML=this.load,this.loadFile=this.load,this._addGPXData=this._addGeoJSONData,this._registerFocusLabel=this._registerTooltip})),L.control.elevation=function(t){return new W(t)}}));\n//# sourceMappingURL=leaflet-elevation.min.js.map\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(((e=e||self).Leaflet=e.Leaflet||{},e.Leaflet.markercluster={}))}(this,function(e){\"use strict\";var t=L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,clusterPane:L.Marker.prototype.options.pane,spiderfyOnEveryZoom:!1,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyShapePositions:null,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:\"#222\",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.addEventParent(this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.addEventParent(this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[],this._childMarkerEventHandlers={dragstart:this._childMarkerDragStart,move:this._childMarkerMoved,dragend:this._childMarkerDragEnd};var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup)return this.addLayers([e]);if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this.fire(\"layeradd\",{layer:e}),this;if(!this._map)return this._needsClustering.push(e),this.fire(\"layeradd\",{layer:e}),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this.fire(\"layeradd\",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons();var t=e,i=this._zoom;if(e.__parent)for(;t.__parent._zoom>=i;)t=t.__parent;return this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,t):this._animationAddLayerNonAnimated(e,t)),this},removeLayer:function(e){return e instanceof L.LayerGroup?this.removeLayers([e]):(e.getLatLng?this._map?e.__parent&&(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this.fire(\"layerremove\",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),e.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow())):(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push({layer:e,latlng:e._latlng}),this.fire(\"layerremove\",{layer:e})):(this._nonPointGroup.removeLayer(e),this.fire(\"layerremove\",{layer:e})),this)},addLayers:function(n,s){if(!L.Util.isArray(n))return this.addLayer(n);var o,a=this._featureGroup,h=this._nonPointGroup,l=this.options.chunkedLoading,u=this.options.chunkInterval,_=this.options.chunkProgress,d=n.length,p=0,c=!0;if(this._map){var f=(new Date).getTime(),m=L.bind(function(){var e=(new Date).getTime();for(this._map&&this._unspiderfy&&this._unspiderfy();p<d;p++){if(l&&p%200==0){var t=(new Date).getTime()-e;if(u<t)break}if((o=n[p])instanceof L.LayerGroup)c&&(n=n.slice(),c=!1),this._extractNonGroupLayers(o,n),d=n.length;else if(o.getLatLng){if(!this.hasLayer(o)&&(this._addLayer(o,this._maxZoom),s||this.fire(\"layeradd\",{layer:o}),o.__parent&&2===o.__parent.getChildCount())){var i=o.__parent.getAllChildMarkers(),r=i[0]===o?i[1]:i[0];a.removeLayer(r)}}else h.addLayer(o),s||this.fire(\"layeradd\",{layer:o})}_&&_(p,d,(new Date).getTime()-f),p===d?(this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(m,this.options.chunkDelay)},this);m()}else for(var e=this._needsClustering;p<d;p++)(o=n[p])instanceof L.LayerGroup?(c&&(n=n.slice(),c=!1),this._extractNonGroupLayers(o,n),d=n.length):o.getLatLng?this.hasLayer(o)||e.push(o):h.addLayer(o);return this},removeLayers:function(e){var t,i,r=e.length,n=this._featureGroup,s=this._nonPointGroup,o=!0;if(!this._map){for(t=0;t<r;t++)(i=e[t])instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),r=e.length):(this._arraySplice(this._needsClustering,i),s.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push({layer:i,latlng:i._latlng}),this.fire(\"layerremove\",{layer:i}));return this}if(this._unspiderfy){this._unspiderfy();var a=e.slice(),h=r;for(t=0;t<h;t++)(i=a[t])instanceof L.LayerGroup?(this._extractNonGroupLayers(i,a),h=a.length):this._unspiderfyLayer(i)}for(t=0;t<r;t++)(i=e[t])instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),r=e.length):i.__parent?(this._removeLayer(i,!0,!0),this.fire(\"layerremove\",{layer:i}),n.hasLayer(i)&&(n.removeLayer(i),i.clusterShow&&i.clusterShow())):(s.removeLayer(i),this.fire(\"layerremove\",{layer:i}));return this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),this},clearLayers:function(){return this._map||(this._needsClustering=[],this._needsRemoving=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(e){e.off(this._childMarkerEventHandlers,this),delete e.__parent},this),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;0<=t;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var i,r,n,s=this._needsClustering.slice(),o=this._needsRemoving;for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(s),r=s.length-1;0<=r;r--){for(i=!0,n=o.length-1;0<=n;n--)if(o[n].layer===s[r]){i=!1;break}i&&e.call(t,s[r])}this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var t=[];return this.eachLayer(function(e){t.push(e)}),t},getLayer:function(t){var i=null;return t=parseInt(t,10),this.eachLayer(function(e){L.stamp(e)===t&&(i=e)}),i},hasLayer:function(e){if(!e)return!1;var t,i=this._needsClustering;for(t=i.length-1;0<=t;t--)if(i[t]===e)return!0;for(t=(i=this._needsRemoving).length-1;0<=t;t--)if(i[t].layer===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){var i=this._map;\"function\"!=typeof t&&(t=function(){});var r=function(){!i.hasLayer(e)&&!i.hasLayer(e.__parent)||this._inZoomAnimation||(this._map.off(\"moveend\",r,this),this.off(\"animationend\",r,this),i.hasLayer(e)?t():e.__parent._icon&&(this.once(\"spiderfied\",t,this),e.__parent.spiderfy()))};e._icon&&this._map.getBounds().contains(e.getLatLng())?t():e.__parent._zoom<Math.round(this._map._zoom)?(this._map.on(\"moveend\",r,this),this._map.panTo(e.getLatLng())):(this._map.on(\"moveend\",r,this),this.on(\"animationend\",r,this),e.__parent.zoomToBounds())},onAdd:function(e){var t,i,r;if(this._map=e,!isFinite(this._map.getMaxZoom()))throw\"Map has no maxZoom specified\";for(this._featureGroup.addTo(e),this._nonPointGroup.addTo(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,i=this._needsRemoving.length;t<i;t++)(r=this._needsRemoving[t]).newlatlng=r.layer._latlng,r.layer._latlng=r.latlng;for(t=0,i=this._needsRemoving.length;t<i;t++)r=this._needsRemoving[t],this._removeLayer(r.layer,!0),r.layer._latlng=r.newlatlng;this._needsRemoving=[],this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on(\"zoomend\",this._zoomEnd,this),this._map.on(\"moveend\",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),i=this._needsClustering,this._needsClustering=[],this.addLayers(i,!0)},onRemove:function(e){e.off(\"zoomend\",this._zoomEnd,this),e.off(\"moveend\",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(\" leaflet-cluster-anim\",\"\"),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.remove(),this._nonPointGroup.remove(),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var i=e.length-1;0<=i;i--)if(e[i]===t)return e.splice(i,1),!0},_removeFromGridUnclustered:function(e,t){for(var i=this._map,r=this._gridUnclustered,n=Math.floor(this._map.getMinZoom());n<=t&&r[t].removeObject(e,i.project(e.getLatLng(),t));t--);},_childMarkerDragStart:function(e){e.target.__dragStart=e.target._latlng},_childMarkerMoved:function(e){if(!this._ignoreMove&&!e.target.__dragStart){var t=e.target._popup&&e.target._popup.isOpen();this._moveChild(e.target,e.oldLatLng,e.latlng),t&&e.target.openPopup()}},_moveChild:function(e,t,i){e._latlng=t,this.removeLayer(e),e._latlng=i,this.addLayer(e)},_childMarkerDragEnd:function(e){var t=e.target.__dragStart;delete e.target.__dragStart,t&&this._moveChild(e.target,t,e.target._latlng)},_removeLayer:function(e,t,i){var r=this._gridClusters,n=this._gridUnclustered,s=this._featureGroup,o=this._map,a=Math.floor(this._map.getMinZoom());t&&this._removeFromGridUnclustered(e,this._maxZoom);var h,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<a));)t&&l._childCount<=1?(h=l._markers[0]===e?l._markers[1]:l._markers[0],r[l._zoom].removeObject(l,o.project(l._cLatLng,l._zoom)),n[l._zoom].addObject(h,o.project(h.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(h),h.__parent=l.__parent,l._icon&&(s.removeLayer(l),i||s.addLayer(h))):l._iconNeedsUpdate=!0,l=l.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},fire:function(e,t,i){if(t&&t.layer instanceof L.MarkerCluster){if(t.originalEvent&&this._isOrIsParent(t.layer._icon,t.originalEvent.relatedTarget))return;e=\"cluster\"+e}L.FeatureGroup.prototype.fire.call(this,e,t,i)},listens:function(e,t){return L.FeatureGroup.prototype.listens.call(this,e,t)||L.FeatureGroup.prototype.listens.call(this,\"cluster\"+e,t)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),i=\" marker-cluster-\";return i+=t<10?\"small\":t<100?\"medium\":\"large\",new L.DivIcon({html:\"<div><span>\"+t+\"</span></div>\",className:\"marker-cluster\"+i,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,i=this.options.showCoverageOnHover,r=this.options.zoomToBoundsOnClick,n=this.options.spiderfyOnEveryZoom;(t||r||n)&&this.on(\"clusterclick clusterkeypress\",this._zoomOrSpiderfy,this),i&&(this.on(\"clustermouseover\",this._showCoverage,this),this.on(\"clustermouseout\",this._hideCoverage,this),e.on(\"zoomend\",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){var t=e.layer,i=t;if(\"clusterkeypress\"!==e.type||!e.originalEvent||13===e.originalEvent.keyCode){for(;1===i._childClusters.length;)i=i._childClusters[0];i._zoom===this._maxZoom&&i._childCount===t._childCount&&this.options.spiderfyOnMaxZoom?t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),this.options.spiderfyOnEveryZoom&&t.spiderfy(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()}},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),2<e.layer.getChildCount()&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick,r=this.options.spiderfyOnEveryZoom,n=this._map;(e||i||r)&&this.off(\"clusterclick clusterkeypress\",this._zoomOrSpiderfy,this),t&&(this.off(\"clustermouseover\",this._showCoverage,this),this.off(\"clustermouseout\",this._hideCoverage,this),n.off(\"zoomend\",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=Math.ceil(this._map.getMaxZoom()),t=Math.floor(this._map.getMinZoom()),i=this.options.maxClusterRadius,r=i;\"function\"!=typeof i&&(r=function(){return i}),null!==this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var n=e;t<=n;n--)this._gridClusters[n]=new L.DistanceGrid(r(n)),this._gridUnclustered[n]=new L.DistanceGrid(r(n));this._topClusterLevel=new this._markerCluster(this,t-1)},_addLayer:function(e,t){var i,r,n=this._gridClusters,s=this._gridUnclustered,o=Math.floor(this._map.getMinZoom());for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e),e.on(this._childMarkerEventHandlers,this);o<=t;t--){i=this._map.project(e.getLatLng(),t);var a=n[t].getNearObject(i);if(a)return a._addChild(e),void(e.__parent=a);if(a=s[t].getNearObject(i)){var h=a.__parent;h&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);n[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l;var u=e.__parent=l;for(r=t-1;r>h._zoom;r--)u=new this._markerCluster(this,r,u),n[r].addObject(u,this._map.project(a.getLatLng(),r));return h._addChild(u),void this._removeFromGridUnclustered(a,t)}s[t].addObject(e,i)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){var e=Math.round(this._map._zoom);this._processQueue(),this._zoom<e&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,e)):this._zoom>e?(this._animationStart(),this._animationZoomOut(this._zoom,e)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return void 0!==t&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var i=t.getAllChildMarkers();this._featureGroup.removeLayer(i[0]),this._featureGroup.removeLayer(i[1])}else t._updateIcon()},_extractNonGroupLayers:function(e,t){var i,r=e.getLayers(),n=0;for(t=t||[];n<r.length;n++)(i=r[n])instanceof L.LayerGroup?this._extractNonGroupLayers(i,t):t.push(i);return t},_overrideMarkerIcon:function(e){return e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}})}});L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(\"animationend\")},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(\"animationend\")},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=\" leaflet-cluster-anim\",this._inZoomAnimation++},_animationZoomIn:function(n,s){var o,a=this._getExpandedVisibleBounds(),h=this._featureGroup,e=Math.floor(this._map.getMinZoom());this._ignoreMove=!0,this._topClusterLevel._recursively(a,n,e,function(e){var t,i=e._latlng,r=e._markers;for(a.contains(i)||(i=null),e._isSingleParent()&&n+1===s?(h.removeLayer(e),e._recursivelyAddChildrenToMap(null,s,a)):(e.clusterHide(),e._recursivelyAddChildrenToMap(i,s,a)),o=r.length-1;0<=o;o--)t=r[o],a.contains(t._latlng)||h.removeLayer(t)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(a,s),h.eachLayer(function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()}),this._topClusterLevel._recursively(a,n,s,function(e){e._recursivelyRestoreChildPositions(s)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(a,n,e,function(e){h.removeLayer(e),e.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var i=this,r=this._featureGroup;r.addLayer(e),t!==e&&(2<t._childCount?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue(function(){r.removeLayer(e),e.clusterShow(),i._animationEnd()})):(this._forceLayout(),i._animationStart(),i._animationZoomOutSingle(t,this._map.getMaxZoom(),this._zoom)))}},_animationZoomOutSingle:function(t,i,r){var n=this._getExpandedVisibleBounds(),s=Math.floor(this._map.getMinZoom());t._recursivelyAnimateChildrenInAndAddSelfToMap(n,s,i+1,r);var o=this;this._forceLayout(),t._recursivelyBecomeVisible(n,r),this._enqueue(function(){if(1===t._childCount){var e=t._markers[0];this._ignoreMove=!0,e.setLatLng(e.getLatLng()),this._ignoreMove=!1,e.clusterShow&&e.clusterShow()}else t._recursively(n,r,s,function(e){e._recursivelyRemoveChildrenFromMap(n,s,i+1)});o._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(\" leaflet-cluster-anim\",\"\")),this._inZoomAnimation--,this.fire(\"animationend\")},_forceLayout:function(){L.Util.falseFn(document.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)};var i=L.MarkerCluster=L.Marker.extend({options:L.Icon.prototype.options,initialize:function(e,t,i,r){L.Marker.prototype.initialize.call(this,i?i._cLatLng||i.getLatLng():new L.LatLng(0,0),{icon:this,pane:e.options.clusterPane}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,i&&this._addChild(i),r&&this._addChild(r)},getAllChildMarkers:function(e,t){e=e||[];for(var i=this._childClusters.length-1;0<=i;i--)this._childClusters[i].getAllChildMarkers(e,t);for(var r=this._markers.length-1;0<=r;r--)t&&this._markers[r].__dragStart||e.push(this._markers[r]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(e){for(var t,i=this._childClusters.slice(),r=this._group._map,n=r.getBoundsZoom(this._bounds),s=this._zoom+1,o=r.getZoom();0<i.length&&s<n;){s++;var a=[];for(t=0;t<i.length;t++)a=a.concat(i[t]._childClusters);i=a}s<n?this._group._map.setView(this._latlng,s):n<=o?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds,e)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,i,r,n=this._markers,s=this._childClusters,o=0,a=0,h=this._childCount;if(0!==h){for(this._resetBounds(),e=0;e<n.length;e++)i=n[e]._latlng,this._bounds.extend(i),o+=i.lat,a+=i.lng;for(e=0;e<s.length;e++)(t=s[e])._boundsNeedUpdate&&t._recalculateBounds(),this._bounds.extend(t._bounds),i=t._wLatLng,r=t._childCount,o+=i.lat*r,a+=i.lng*r;this._latlng=this._wLatLng=new L.LatLng(o/h,a/h),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,n,t){this._recursively(e,this._group._map.getMinZoom(),t-1,function(e){var t,i,r=e._markers;for(t=r.length-1;0<=t;t--)(i=r[t])._icon&&(i._setPos(n),i.clusterHide())},function(e){var t,i,r=e._childClusters;for(t=r.length-1;0<=t;t--)(i=r[t])._icon&&(i._setPos(n),i.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(t,i,r,n){this._recursively(t,n,i,function(e){e._recursivelyAnimateChildrenIn(t,e._group._map.latLngToLayerPoint(e.getLatLng()).round(),r),e._isSingleParent()&&r-1===n?(e.clusterShow(),e._recursivelyRemoveChildrenFromMap(t,i,r)):e.clusterHide(),e._addToMap()})},_recursivelyBecomeVisible:function(e,t){this._recursively(e,this._group._map.getMinZoom(),t,null,function(e){e.clusterShow()})},_recursivelyAddChildrenToMap:function(r,n,s){this._recursively(s,this._group._map.getMinZoom()-1,n,function(e){if(n!==e._zoom)for(var t=e._markers.length-1;0<=t;t--){var i=e._markers[t];s.contains(i._latlng)&&(r&&(i._backupLatlng=i.getLatLng(),i.setLatLng(r),i.clusterHide&&i.clusterHide()),e._group._featureGroup.addLayer(i))}},function(e){e._addToMap(r)})},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;0<=t;t--){var i=this._markers[t];i._backupLatlng&&(i.setLatLng(i._backupLatlng),delete i._backupLatlng)}if(e-1===this._zoom)for(var r=this._childClusters.length-1;0<=r;r--)this._childClusters[r]._restorePosition();else for(var n=this._childClusters.length-1;0<=n;n--)this._childClusters[n]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,i,r){var n,s;this._recursively(e,t-1,i-1,function(e){for(s=e._markers.length-1;0<=s;s--)n=e._markers[s],r&&r.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())},function(e){for(s=e._childClusters.length-1;0<=s;s--)n=e._childClusters[s],r&&r.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())})},_recursively:function(e,t,i,r,n){var s,o,a=this._childClusters,h=this._zoom;if(t<=h&&(r&&r(this),n&&h===i&&n(this)),h<t||h<i)for(s=a.length-1;0<=s;s--)(o=a[s])._boundsNeedUpdate&&o._recalculateBounds(),e.intersects(o._bounds)&&o._recursively(e,t,i,r,n)},_isSingleParent:function(){return 0<this._childClusters.length&&this._childClusters[0]._childCount===this._childCount}});L.Marker.include({clusterHide:function(){var e=this.options.opacity;return this.setOpacity(0),this.options.opacity=e,this},clusterShow:function(){return this.setOpacity(this.options.opacity)}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var i=this._getCoord(t.x),r=this._getCoord(t.y),n=this._grid,s=n[r]=n[r]||{},o=s[i]=s[i]||[],a=L.Util.stamp(e);this._objectPoint[a]=t,o.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var i,r,n=this._getCoord(t.x),s=this._getCoord(t.y),o=this._grid,a=o[s]=o[s]||{},h=a[n]=a[n]||[];for(delete this._objectPoint[L.Util.stamp(e)],i=0,r=h.length;i<r;i++)if(h[i]===e)return h.splice(i,1),1===r&&delete a[n],!0},eachObject:function(e,t){var i,r,n,s,o,a,h=this._grid;for(i in h)for(r in o=h[i])for(n=0,s=(a=o[r]).length;n<s;n++)e.call(t,a[n])&&(n--,s--)},getNearObject:function(e){var t,i,r,n,s,o,a,h,l=this._getCoord(e.x),u=this._getCoord(e.y),_=this._objectPoint,d=this._sqCellSize,p=null;for(t=u-1;t<=u+1;t++)if(n=this._grid[t])for(i=l-1;i<=l+1;i++)if(s=n[i])for(r=0,o=s.length;r<o;r++)a=s[r],((h=this._sqDist(_[L.Util.stamp(a)],e))<d||h<=d&&null===p)&&(d=h,p=a);return p},_getCoord:function(e){var t=Math.floor(e/this._cellSize);return isFinite(t)?t:e},_sqDist:function(e,t){var i=t.x-e.x,r=t.y-e.y;return i*i+r*r}},L.QuickHull={getDistant:function(e,t){var i=t[1].lat-t[0].lat;return(t[0].lng-t[1].lng)*(e.lat-t[0].lat)+i*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var i,r,n,s=0,o=null,a=[];for(i=t.length-1;0<=i;i--)r=t[i],0<(n=this.getDistant(r,e))&&(a.push(r),s<n&&(s=n,o=r));return{maxPoint:o,newPoints:a}},buildConvexHull:function(e,t){var i=[],r=this.findMostDistantPointFromBaseLine(e,t);return r.maxPoint?i=(i=i.concat(this.buildConvexHull([e[0],r.maxPoint],r.newPoints))).concat(this.buildConvexHull([r.maxPoint,e[1]],r.newPoints)):[e[0]]},getConvexHull:function(e){var t,i=!1,r=!1,n=!1,s=!1,o=null,a=null,h=null,l=null,u=null,_=null;for(t=e.length-1;0<=t;t--){var d=e[t];(!1===i||d.lat>i)&&(i=(o=d).lat),(!1===r||d.lat<r)&&(r=(a=d).lat),(!1===n||d.lng>n)&&(n=(h=d).lng),(!1===s||d.lng<s)&&(s=(l=d).lng)}return u=r!==i?(_=a,o):(_=l,h),[].concat(this.buildConvexHull([_,u],e),this.buildConvexHull([u,_],e))}},L.MarkerCluster.include({getConvexHull:function(){var e,t,i=this.getAllChildMarkers(),r=[];for(t=i.length-1;0<=t;t--)e=i[t].getLatLng(),r.push(e);return L.QuickHull.getConvexHull(r)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:0,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(null,!0),i=this._group._map.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),e=(this._group._spiderfied=this)._group.options.spiderfyShapePositions?this._group.options.spiderfyShapePositions(t.length,i):t.length>=this._circleSpiralSwitchover?this._generatePointsSpiral(t.length,i):(i.y+=10,this._generatePointsCircle(t.length,i)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var i,r,n=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e)/this._2PI,s=this._2PI/e,o=[];for(n=Math.max(n,35),o.length=e,i=0;i<e;i++)r=this._circleStartAngle+i*s,o[i]=new L.Point(t.x+n*Math.cos(r),t.y+n*Math.sin(r))._round();return o},_generatePointsSpiral:function(e,t){var i,r=this._group.options.spiderfyDistanceMultiplier,n=r*this._spiralLengthStart,s=r*this._spiralFootSeparation,o=r*this._spiralLengthFactor*this._2PI,a=0,h=[];for(i=h.length=e;0<=i;i--)i<e&&(h[i]=new L.Point(t.x+n*Math.cos(a),t.y+n*Math.sin(a))._round()),n+=o/(a+=s/n+5e-4*i);return h},_noanimationUnspiderfy:function(){var e,t,i=this._group,r=i._map,n=i._featureGroup,s=this.getAllChildMarkers(null,!0);for(i._ignoreMove=!0,this.setOpacity(1),t=s.length-1;0<=t;t--)e=s[t],n.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(r.removeLayer(e._spiderLeg),delete e._spiderLeg);i.fire(\"unspiderfied\",{cluster:this,markers:s}),i._ignoreMove=!1,i._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var i,r,n,s,o=this._group,a=o._map,h=o._featureGroup,l=this._group.options.spiderLegPolylineOptions;for(o._ignoreMove=!0,i=0;i<e.length;i++)s=a.layerPointToLatLng(t[i]),r=e[i],n=new L.Polyline([this._latlng,s],l),a.addLayer(n),r._spiderLeg=n,r._preSpiderfyLatlng=r._latlng,r.setLatLng(s),r.setZIndexOffset&&r.setZIndexOffset(1e6),h.addLayer(r);this.setOpacity(.3),o._ignoreMove=!1,o.fire(\"spiderfied\",{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var i,r,n,s,o,a,h=this,l=this._group,u=l._map,_=l._featureGroup,d=this._latlng,p=u.latLngToLayerPoint(d),c=L.Path.SVG,f=L.extend({},this._group.options.spiderLegPolylineOptions),m=f.opacity;for(void 0===m&&(m=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),c?(f.opacity=0,f.className=(f.className||\"\")+\" leaflet-cluster-spider-leg\"):f.opacity=m,l._ignoreMove=!0,i=0;i<e.length;i++)r=e[i],a=u.layerPointToLatLng(t[i]),n=new L.Polyline([d,a],f),u.addLayer(n),r._spiderLeg=n,c&&(o=(s=n._path).getTotalLength()+.1,s.style.strokeDasharray=o,s.style.strokeDashoffset=o),r.setZIndexOffset&&r.setZIndexOffset(1e6),r.clusterHide&&r.clusterHide(),_.addLayer(r),r._setPos&&r._setPos(p);for(l._forceLayout(),l._animationStart(),i=e.length-1;0<=i;i--)a=u.layerPointToLatLng(t[i]),(r=e[i])._preSpiderfyLatlng=r._latlng,r.setLatLng(a),r.clusterShow&&r.clusterShow(),c&&((s=(n=r._spiderLeg)._path).style.strokeDashoffset=0,n.setStyle({opacity:m}));this.setOpacity(.3),l._ignoreMove=!1,setTimeout(function(){l._animationEnd(),l.fire(\"spiderfied\",{cluster:h,markers:e})},200)},_animationUnspiderfy:function(e){var t,i,r,n,s,o,a=this,h=this._group,l=h._map,u=h._featureGroup,_=e?l._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):l.latLngToLayerPoint(this._latlng),d=this.getAllChildMarkers(null,!0),p=L.Path.SVG;for(h._ignoreMove=!0,h._animationStart(),this.setOpacity(1),i=d.length-1;0<=i;i--)(t=d[i])._preSpiderfyLatlng&&(t.closePopup(),t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,o=!0,t._setPos&&(t._setPos(_),o=!1),t.clusterHide&&(t.clusterHide(),o=!1),o&&u.removeLayer(t),p&&(s=(n=(r=t._spiderLeg)._path).getTotalLength()+.1,n.style.strokeDashoffset=s,r.setStyle({opacity:0})));h._ignoreMove=!1,setTimeout(function(){var e=0;for(i=d.length-1;0<=i;i--)(t=d[i])._spiderLeg&&e++;for(i=d.length-1;0<=i;i--)(t=d[i])._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),1<e&&u.removeLayer(t),l.removeLayer(t._spiderLeg),delete t._spiderLeg);h._animationEnd(),h.fire(\"unspiderfied\",{cluster:a,markers:d})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,unspiderfy:function(){this._unspiderfy.apply(this,arguments)},_spiderfierOnAdd:function(){this._map.on(\"click\",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on(\"zoomstart\",this._unspiderfyZoomStart,this),this._map.on(\"zoomend\",this._noanimationUnspiderfy,this),L.Browser.touch||this._map.getRenderer(this)},_spiderfierOnRemove:function(){this._map.off(\"click\",this._unspiderfyWrapper,this),this._map.off(\"zoomstart\",this._unspiderfyZoomStart,this),this._map.off(\"zoomanim\",this._unspiderfyZoomAnim,this),this._map.off(\"zoomend\",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on(\"zoomanim\",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,\"leaflet-touching\")||(this._map.off(\"zoomanim\",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,i;for(t in e)for(i=e[t].__parent;i;)i._iconNeedsUpdate=!0,i=i.__parent},_refreshSingleMarkerModeMarkers:function(e){var t,i;for(t in e)i=e[t],this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i))}}),L.Marker.include({refreshIconOptions:function(e,t){var i=this.options.icon;return L.setOptions(i,e),this.setIcon(i),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}}),e.MarkerClusterGroup=t,e.MarkerCluster=i,Object.defineProperty(e,\"__esModule\",{value:!0})});\n//# sourceMappingURL=leaflet.markercluster.js.map","@use '~leaflet/dist/leaflet.css';\n@use '~leaflet.locatecontrol/dist/L.Control.Locate.min.css';\n@use '~@raruto/leaflet-elevation/dist/leaflet-elevation.min.css';\n@use '~leaflet.markercluster/dist/MarkerCluster.css';\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n#map {\n position: relative;\n font-family: var(--font-family);\n display: block;\n}\n\n.leaflet-control-layers-toggle,\n.leaflet-retina .leaflet-control-layers-toggle {\n background-image: var(--layers-image-src);\n}\n\n.treks-map {\n height: calc(100%);\n}\n\n.trek-map {\n height: calc(100% - 350px - var(--map-bottom-space-height));\n}\n\n#elevation {\n position: relative;\n background-color: #ffffff;\n}\n\n.elevation-control .background {\n border-radius: 0px;\n}\n\n.custom-theme.elevation-control .axis text {\n fill: var(--color-on-surface);\n}\n\n.custom-theme.elevation-control .axis line,\n.custom-theme.elevation-control .axis path {\n stroke: var(--color-on-surface);\n}\n\n.custom-theme.elevation-control .mouse-focus-label-rect {\n fill: var(--color-primary-container);\n stroke: var(--color-on-primary-container);\n}\n\n.custom-theme.elevation-control .mouse-focus-label-text {\n fill: var(--color-on-primary-container);\n}\n\n.custom-theme.elevation-control .background {\n background-color: var(--color-background);\n}\n\n.custom-theme.elevation-control .mouse-focus-line {\n stroke: var(--color-on-surface);\n}\n\n.use-theme-color.elevation-control .area path.altitude,\n.use-theme-color .legend-altitude rect.area {\n fill: var(--color-primary-app);\n stroke: var(--color-trek-line);\n}\n\n.custom-theme.height-focus.circle-lower {\n fill: #ffffff;\n stroke: var(--color-on-surface);\n}\n\n.custom-theme.elevation-polyline {\n stroke: var(--color-trek-line);\n}\n\n.custom-theme.height-focus.line,\n.custom-theme.height-focus-label {\n display: none;\n}\n\n.custom-theme .elevation-summary {\n margin: -12px 0px 0px 36px;\n font-size: 8px;\n font-family: var(--font-family);\n :nth-child(3)::after {\n display: none;\n }\n .avgele {\n display: none;\n }\n}\n\n.treks-marker-cluster-group-icon,\n.touristic-content-marker-cluster-group-icon,\n.touristic-event-marker-cluster-group-icon {\n background-color: var(--color-primary-app);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n color: var(--color-on-primary);\n font-size: 16px;\n}\n\n.trek-marker,\n.step-marker,\n.touristic-content-marker,\n.touristic-event-marker,\n.selected-trek-marker,\n.selected-step-marker,\n.selected-touristic-content-marker,\n.selected-touristic-event-marker,\n.departure-marker,\n.arrival-marker {\n .trek-marker-container,\n .step-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50% 50% 50% 0;\n border: 2px solid #ffffff;\n width: 32px;\n height: 32px;\n transform: rotate(-45deg);\n img,\n .step-number {\n display: flex;\n justify-content: center;\n align-items: center;\n transform: rotate(45deg);\n position: absolute;\n z-index: 20;\n width: 24px !important;\n }\n }\n .trek-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n background-color: var(--color-surface);\n }\n .step-marker-container {\n background-color: var(--color-surface-variant);\n }\n}\n\n.departure-marker {\n background-color: #008000;\n border-radius: 14px;\n width: 14px !important;\n height: 14px !important;\n border: 4px #ffffff solid;\n z-index: 4000001 !important;\n}\n\n.arrival-marker {\n background-color: #ff0000;\n border-radius: 14px;\n width: 14px !important;\n height: 14px !important;\n border: 4px #ffffff solid;\n z-index: 4000000 !important;\n}\n\n.selected-trek-marker,\n.selected-step-marker,\n.selected-touristic-content-marker,\n.selected-touristic-event-marker {\n .trek-marker-container,\n .step-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n width: 48px;\n height: 48px;\n img,\n .step-number {\n width: 32px !important;\n }\n }\n}\n\n.step-marker,\n.selected-step-marker {\n color: var(--color-on-surface-variant);\n}\n\n.map-loader-container {\n position: absolute;\n z-index: 500;\n width: 100%;\n height: 100%;\n background-color: var(--color-background);\n display: flex;\n justify-content: center;\n align-items: center;\n .loader {\n width: 48px;\n height: 48px;\n border: 5px solid var(--color-primary-container);\n border-bottom-color: var(--color-on-primary-container);\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: rotation 1s linear infinite;\n }\n\n @keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n}\n\n.trek-departure-popup,\n.touristic-content-coordinates-popup,\n.touristic-event-coordinates-popup {\n position: relative;\n display: flex;\n flex-direction: column;\n img {\n border-top-left-radius: var(--border-radius, 8px);\n border-top-right-radius: var(--border-radius, 8px);\n }\n .trek-name,\n .touristic-content-name,\n .touristic-event-name {\n color: var(--color-primary-app);\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n padding: 8px;\n }\n .trek-button,\n .touristic-content-button,\n .touristic-event-button {\n margin: 0px 8px 8px 8px;\n user-select: none;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n background-color: var(--color-background);\n color: var(--color-on-surface);\n padding: 12px 24px;\n border-radius: var(--border-radius, 20px);\n box-sizing: border-box;\n position: relative;\n gap: 8px;\n white-space: nowrap;\n line-height: 20px;\n letter-spacing: 0.1000000015px;\n font-size: 14px;\n font-weight: 500;\n box-shadow: var(--elevation-1);\n transition: box-shadow 0.2s ease-in-out 0s;\n font-family: var(--font-family);\n }\n}\n\n.poi-tooltip,\n.information-desks-tooltip,\n.sensitive-area-tooltip,\n.touristic-content-tooltip,\n.touristic-event-tooltip,\n.parking-tooltip {\n .poi-name,\n .information-desks-name,\n .sensitive-area-name,\n .touristic-content-name,\n .touristic-event-name,\n .parking-name {\n color: var(--color-primary-app);\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n }\n}\n\n.sensitiveAreasCheckboxContainer {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #ffffff;\n padding: 8px;\n border-radius: var(--border-radius, 8px);\n user-select: none;\n input,\n label {\n cursor: pointer;\n }\n input {\n margin: 0;\n }\n label {\n padding-left: 8px;\n }\n}\n\n.poi-icon,\n.information-desks-icon,\n.touristic-content-icon,\n.touristic-event-icon {\n background-color: var(--color-poi-icon);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n img {\n width: 36px !important;\n }\n}\n\n.parking-icon {\n img {\n width: 48px !important;\n }\n}\n\n.point-reference-icon {\n background-color: #ff0000;\n border: 1px solid #ffffff;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 24px;\n height: 24px;\n font-size: 24px;\n color: #ffffff;\n}\n\n.map-bottom-space {\n min-height: var(--map-bottom-space-height);\n height: var(--map-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.leaflet-popup {\n bottom: 40px !important;\n left: -70px !important;\n}\n\n.leaflet-popup-content-wrapper {\n cursor: default;\n padding: 0px;\n background-color: var(--color-background);\n box-shadow: var(--elevation-2);\n}\n\n.leaflet-popup-content {\n width: 144px;\n margin: 0;\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, getAssetPath, Build, Listen } from '@stencil/core';\nimport { Feature, FeatureCollection } from 'geojson';\nimport L, { MarkerClusterGroup, TileLayer } from 'leaflet';\nimport 'leaflet-rotate';\nimport 'leaflet.locatecontrol';\nimport 'leaflet-i18n';\nimport '@raruto/leaflet-elevation/dist/leaflet-elevation.min.js';\nimport 'leaflet.markercluster/dist/leaflet.markercluster.js';\nimport state, { onChange } from 'store/store';\nimport { translate } from 'i18n/i18n';\nimport { getTrekGeometry } from 'services/treks.service';\nimport { tileLayerOffline } from 'leaflet.offline';\nimport { Trek } from 'components';\nimport { getDataInStore } from 'services/grw-db.service';\nimport { arrayBufferToBlob } from 'utils/utils';\n\n@Component({\n tag: 'grw-map',\n styleUrl: 'grw-map.scss',\n shadow: true,\n})\nexport class GrwMap {\n mapRef: HTMLElement;\n elevationRef: HTMLElement;\n maxZoom = 19;\n\n @Event() trekCardPress: EventEmitter<number>;\n @Event() touristicContentCardPress: EventEmitter<number>;\n @Event() touristicEventCardPress: EventEmitter<number>;\n\n @State() mapIsReady = false;\n @Prop() nameLayer: string;\n @Prop() urlLayer: string;\n @Prop() attributionLayer: string;\n @Prop() center = '1, 1';\n @Prop() zoom = 10;\n\n @Prop() fontFamily = 'Roboto';\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() colorSensitiveArea = '#4974a5';\n @Prop() colorPoiIcon = '#974c6e';\n @Prop() useGradient = false;\n @Prop() trekTilesMaxZoomOffline = 16;\n\n @Prop() isLargeView = false;\n map: L.Map;\n resizeObserver: ResizeObserver;\n bounds;\n treksLayer: L.GeoJSON<any>;\n toutisticContentsLayer: L.GeoJSON<any>;\n touristicEventsLayer: L.GeoJSON<any>;\n\n treksMarkerClusterGroup: MarkerClusterGroup;\n touristicContentsMarkerClusterGroup: MarkerClusterGroup;\n touristicEventsMarkerClusterGroup: MarkerClusterGroup;\n currentTrekLayer: L.GeoJSON<any>;\n currentStepsLayer: L.GeoJSON<any>;\n selectedCurrentTrekLayer: L.GeoJSON<any>;\n selectedCurrentStepLayer: L.GeoJSON<any>;\n selectedTouristicContentLayer: L.GeoJSON<any>;\n selectedTouristicEventLayer: L.GeoJSON<any>;\n currentReferencePointsLayer: L.GeoJSON<any>;\n currentParkingLayer: L.GeoJSON<any>;\n currentSensitiveAreasLayer: L.GeoJSON<any>;\n currentPoisLayer: L.GeoJSON<any>;\n currentInformationDesksLayer: L.GeoJSON<any>;\n currentToutisticContentsLayer: L.GeoJSON<any>;\n currenttouristicEventsLayer: L.GeoJSON<any>;\n currentToutisticContentLayer: L.GeoJSON<any>;\n currentToutisticEventLayer: L.GeoJSON<any>;\n elevationControl: L.Control.Layers;\n departureArrivalLayer: L.GeoJSON<any>;\n layersControl: L.Control.Layers;\n userLayersState: {\n [key: number]: boolean;\n } = {};\n tileLayer: { key: string; value: TileLayer }[] = [];\n trekPopupIsOpen: boolean;\n stepPopupIsOpen: boolean;\n touristicContentPopupIsOpen: boolean;\n touristicEventPopupIsOpen: boolean;\n\n handleTreksWithinBoundsBind: (event: any) => void = this.handleTreksWithinBounds.bind(this);\n handleTouristicContentsWithinBoundsBind: (event: any) => void = this.handleTouristicContentsWithinBounds.bind(this);\n handleTouristicEventsWithinBoundsBind: (event: any) => void = this.handleTouristicEventsWithinBounds.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('stepsIsInViewport', { target: 'window' })\n stepsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentStepsLayer) {\n this.handleLayerVisibility(event.detail, this.currentStepsLayer);\n }\n }\n\n @Listen('descriptionIsInViewport', { target: 'window' })\n descriptionIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentReferencePointsLayer) {\n this.handleLayerVisibility(event.detail, this.currentReferencePointsLayer);\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 @Listen('touristicContentsIsInViewport', { target: 'window' })\n touristicContentsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentToutisticContentsLayer) {\n this.handleLayerVisibility(event.detail, this.currentToutisticContentsLayer);\n }\n }\n\n @Listen('touristicEventsIsInViewport', { target: 'window' })\n touristicEventsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currenttouristicEventsLayer) {\n this.handleLayerVisibility(event.detail, this.currenttouristicEventsLayer);\n }\n }\n\n @Listen('cardTrekMouseOver', { target: 'window' })\n onCardTrekMouseOver(event: CustomEvent<number>) {\n if (!state.parentTrek && (!state.selectedTrekId || state.selectedTrekId !== event.detail)) {\n state.selectedTrekId = event.detail;\n this.hideTrekLine();\n this.showTrekLine(event.detail);\n this.addSelectedCurrentTrek(event.detail);\n } else if (state.parentTrek) {\n this.stepPopupIsOpen = false;\n state.selectedStepId = null;\n this.addSelectedCurrentStep(event.detail);\n }\n }\n\n @Listen('cardTrekMouseLeave', { target: 'window' })\n onCardTrekMouseLeave() {\n if (!this.trekPopupIsOpen && state.selectedTrekId) {\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n } else if (this.selectedCurrentStepLayer) {\n this.removeSelectedCurrentStep();\n }\n }\n\n @Listen('cardTouristicContentMouseOver', { target: 'window' })\n onTouristicContentMouseOver(event: CustomEvent<number>) {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.addSelectedTouristicContent(event.detail);\n }\n\n @Listen('cardTouristicContentMouseLeave', { target: 'window' })\n onTouristicContentMouseLeave() {\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n\n @Listen('cardTouristicEventMouseOver', { target: 'window' })\n onTouristicEventMouseOver(event: CustomEvent<number>) {\n this.touristicEventPopupIsOpen = false;\n state.selectedTouristicEventId = null;\n this.addSelectedTouristicEvent(event.detail);\n }\n\n @Listen('cardTouristicEventMouseLeave', { target: 'window' })\n onTouristicEventMouseLeave() {\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n\n @Listen('trekDownloadedSuccessConfirm', { target: 'window' })\n onTrekDownloadedSuccessConfirm() {\n this.map.setMaxZoom(this.trekTilesMaxZoomOffline);\n }\n\n @Listen('trekDeleteSuccessConfirm', { target: 'window' })\n onTrekDeleteSuccessConfirm() {\n this.map.setMaxZoom(this.maxZoom);\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 const nameLayers = this.nameLayer ? this.nameLayer.split(',') : [];\n\n const urlLayers = this.urlLayer.split(',http').map((url, index) => (index === 0 ? url : 'http' + url));\n\n const attributionLayers = this.attributionLayer ? this.attributionLayer.split(',') : [];\n urlLayers.forEach((urlLayer, index) => {\n this.tileLayer.push({\n key: `${nameLayers[index]}`,\n value: tileLayerOffline(urlLayer, {\n maxZoom: this.maxZoom,\n attribution: `${\n attributionLayers[index] && attributionLayers[index] !== '' ? attributionLayers[index].concat(' | ') : ''\n }Powered by <a target=\"_blank\" href=\"https://geotrek.fr/\">Geotrek</a>`,\n crossOrigin: true,\n }),\n });\n });\n\n this.tileLayer[0].value.addTo(this.map);\n\n if (urlLayers.length > 1) {\n this.layersControl = L.control\n .layers(\n this.tileLayer.reduce((tileLayers, tileLayer) => Object.assign(tileLayers, { [tileLayer.key]: tileLayer.value }), {}),\n {},\n { collapsed: true },\n )\n .addTo(this.map);\n }\n\n (L.Control as any).Contract = L.Control.extend({\n onAdd: () => {\n const contractContainer = L.DomUtil.create('div');\n contractContainer.className = 'leaflet-bar leaflet-control';\n const contract = contractContainer.appendChild(L.DomUtil.create('a'));\n contract.href = '#';\n contract.style.backgroundImage = `var(--contract-image-src)`;\n contractContainer.onclick = e => {\n this.bounds && this.map.fitBounds(this.bounds);\n e.preventDefault();\n };\n return contractContainer;\n },\n });\n\n (L.control as any).contract = opts => {\n return new (L.Control as any).Contract(opts);\n };\n\n (L.control as any).contract({ position: 'topleft' }).addTo(this.map);\n\n if (state.currentTrek) {\n this.addTrek();\n } else if (state.currentTreks) {\n this.addTreks();\n } else if (state.currentTouristicContent) {\n this.addTouristicContent();\n } else if (state.currentTouristicEvent) {\n this.addTouristicEvent();\n } else if (state.touristicContents) {\n this.addTouristicContents();\n } else if (state.touristicEvents) {\n this.addTouristicEvents();\n }\n\n onChange('currentTreks', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTreks();\n this.removeTouristicContents();\n this.removeTouristicEvents();\n this.removeTrek();\n this.removeTouristicContent();\n this.removeTouristicEvent();\n this.addTreks(true);\n }\n });\n\n onChange('currentTrek', () => {\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTrek();\n this.removeTouristicContent();\n this.removeTouristicEvent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicContent', () => {\n if (state.currentTouristicContent) {\n this.removeTrek();\n this.removeTouristicContents();\n this.addTouristicContent();\n } else if (state.touristicContents) {\n this.removeTouristicContent();\n this.addTouristicContents();\n } else if (state.currentTrek) {\n this.removeTouristicContent();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTouristicContent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicEvent', () => {\n if (state.currentTouristicEvent) {\n this.removeTrek();\n this.removeTouristicEvents();\n this.addTouristicEvent();\n } else if (state.currentTrek) {\n this.removeTouristicEvent();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTouristicEvent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicContents', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTouristicContent) {\n this.removeTouristicContents();\n this.addTouristicContent();\n } else if (state.currentTouristicContents) {\n this.removeTreks();\n this.removeTouristicEvents();\n this.removeTouristicContent();\n this.addTouristicContents(true);\n }\n });\n\n onChange('currentTouristicEvents', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTouristicEvent) {\n this.removeTouristicEvents();\n this.addTouristicEvent();\n } else if (state.currentTouristicEvents) {\n this.removeTreks();\n this.removeTouristicContents();\n this.removeTouristicEvent();\n this.addTouristicEvents(true);\n }\n });\n\n onChange('mode', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.mode === 'treks') {\n if (state.treks) {\n this.removeTouristicContents();\n this.removeTouristicEvents();\n this.addTreks(true);\n }\n } else if (state.mode === 'touristicContents') {\n if (state.touristicContents) {\n this.removeTreks();\n this.removeTouristicEvents();\n this.addTouristicContents(true);\n }\n } else if (state.mode === 'touristicEvents') {\n if (state.touristicEvents) {\n this.removeTreks();\n this.removeTouristicContents();\n this.addTouristicEvents(true);\n }\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 async addTreks(resetBounds = false) {\n state.treksWithinBounds = state.currentTreks;\n\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.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(treksCurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n\n const treksIcons = await this.getIcons(treksFeatureCollection, 'practice');\n\n this.treksLayer = L.geoJSON(treksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: treksIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"trek-marker-container\"><img crossorigin=\"anonymous\" src=${treksIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"trek-marker-container\"></div>`,\n className: 'trek-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.hideTrekLine();\n this.showTrekLine(geoJsonPoint.properties.id);\n this.addSelectedCurrentTrek(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.treksMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({ html: '<div>' + cluster.getChildCount() + '</div>', className: 'treks-marker-cluster-group-icon', iconSize: 48 } as any);\n },\n });\n\n this.treksMarkerClusterGroup.addLayer(this.treksLayer);\n this.map.addLayer(this.treksMarkerClusterGroup);\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 this.treksMarkerClusterGroup.clearLayers();\n this.treksMarkerClusterGroup.addLayer(this.treksLayer);\n }\n this.bounds && this.bounds._northEast && this.bounds._southWest && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n this.map.on('moveend', this.handleTreksWithinBoundsBind);\n }\n\n removeTreks() {\n if (this.treksLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.treksMarkerClusterGroup);\n this.treksLayer = null;\n this.treksMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTreksWithinBoundsBind);\n }\n }\n\n handleTreksWithinBounds() {\n if (\n (state.currentTreks && !state.currentMapBounds) ||\n (state.currentTreks && state.currentMapBounds && state.currentMapBounds.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 handleTouristicContentsWithinBounds() {\n if (\n (state.currentTouristicContents && !state.currentMapBounds) ||\n (state.currentTouristicContents && state.currentMapBounds && state.currentMapBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.touristicContentsWithinBounds = state.currentTouristicContents.filter(touristicContent =>\n this.map.getBounds().contains(L.latLng(touristicContent.geometry.coordinates[1], touristicContent.geometry.coordinates[0])),\n );\n }\n }\n\n handleTouristicEventsWithinBounds() {\n if (\n (state.currentTouristicEvents && !state.currentMapBounds) ||\n (state.currentTouristicEvents && state.currentMapBounds && state.currentMapBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.touristicEventsWithinBounds = state.currentTouristicEvents.filter(touristicEvent =>\n this.map.getBounds().contains(L.latLng(touristicEvent.geometry.coordinates[1], touristicEvent.geometry.coordinates[0])),\n );\n }\n }\n\n async addTrek() {\n const trekInStore: Trek = await getDataInStore('treks', state.currentTrek.id);\n if (trekInStore) {\n this.map.setMaxZoom(this.trekTilesMaxZoomOffline);\n } else {\n this.map.setMaxZoom(this.maxZoom);\n }\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n\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 if (state.currentTrek.parking_location) {\n const parkingImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/parking.svg`);\n const currentParking: Feature = {\n type: 'Feature',\n properties: { name: state.currentTrek.advised_parking },\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: `<img crossorigin=\"anonymous\" src=${parkingImageSrc} />`,\n className: 'parking-icon',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const parkingTooltip = L.DomUtil.create('div');\n parkingTooltip.className = 'parking-tooltip';\n const parkingName = L.DomUtil.create('div');\n parkingName.innerHTML = geoJsonPoint.properties.name;\n parkingName.className = 'parking-name';\n parkingTooltip.appendChild(parkingName);\n layer.bindTooltip(parkingTooltip).openTooltip();\n });\n },\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 const poiIcons = await this.getIcons(currentPoisFeatureCollection, 'type_pictogram');\n\n this.currentPoisLayer = L.geoJSON(currentPoisFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: poiIcons[geoJsonPoint.properties.type_pictogram] ? `<img crossorigin=\"anonymous\" src=${poiIcons[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.trekTouristicContents && state.trekTouristicContents.length > 0) {\n const currentTouristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const touristicContent of state.trekTouristicContents) {\n currentTouristicContentsFeatureCollection.features.push({\n type: 'Feature',\n properties: {\n name: touristicContent.name,\n category_pictogram: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === touristicContent.category)?.pictogram,\n },\n geometry: touristicContent.geometry,\n });\n }\n\n const toutisticContentsIcons = await this.getIcons(currentTouristicContentsFeatureCollection, 'category_pictogram');\n\n this.currentToutisticContentsLayer = L.geoJSON(currentTouristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) => {\n return L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentsIcons[geoJsonPoint.properties.category_pictogram]\n ? `<img crossorigin=\"anonymous \"src=${toutisticContentsIcons[geoJsonPoint.properties.category_pictogram]} />`\n : `<img />`,\n className: 'touristic-content-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const touristicContentTooltip = L.DomUtil.create('div');\n touristicContentTooltip.className = 'touristic-content-tooltip';\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentTooltip.appendChild(touristicContentName);\n layer.bindTooltip(touristicContentTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.touristicEvents && state.touristicEvents.length > 0) {\n const currentTouristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const touristicEvent of state.touristicEvents) {\n currentTouristicEventsFeatureCollection.features.push({\n type: 'Feature',\n properties: {\n name: touristicEvent.name,\n type_pictogram: state.touristicEventTypes.find(touristicEventType => touristicEventType.id === touristicEvent.type)?.pictogram,\n },\n geometry: touristicEvent.geometry,\n });\n }\n\n const toutisticEventsIcons = await this.getIcons(currentTouristicEventsFeatureCollection, 'type_pictogram');\n this.currenttouristicEventsLayer = L.geoJSON(currentTouristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticEventsIcons[geoJsonPoint.properties.type_pictogram]\n ? `\n <img crossorigin=\"anonymous\" src=${toutisticEventsIcons[geoJsonPoint.properties.type_pictogram]} />`\n : `<img />`,\n className: 'touristic-event-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const touristicEventTooltip = L.DomUtil.create('div');\n touristicEventTooltip.className = 'touristic-event-tooltip';\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventTooltip.appendChild(touristicEventName);\n layer.bindTooltip(touristicEventTooltip).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 if (currentInformationDesksFeatureCollection.features.length > 0) {\n const informationDesksIcons = await this.getIcons(currentInformationDesksFeatureCollection, 'type_pictogram');\n this.currentInformationDesksLayer = L.geoJSON(currentInformationDesksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: informationDesksIcons[geoJsonPoint.properties.type_pictogram]\n ? `<img crossorigin=\"anonymous\" src=${informationDesksIcons[geoJsonPoint.properties.type_pictogram]} />`\n : `<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\n if (state.currentTrek.points_reference) {\n const currentReferencePointsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n currentReferencePointsFeatureCollection.features.push({\n type: 'Feature',\n properties: {},\n geometry: state.currentTrek.points_reference,\n });\n\n let index = 0;\n this.currentReferencePointsLayer = L.geoJSON(currentReferencePointsFeatureCollection, {\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\n if (!this.currentStepsLayer && state.parentTrekId && state.parentTrek && state.currentTrek.id === state.parentTrekId) {\n const stepsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTrekSteps) {\n for (const trek of state.currentTrekSteps) {\n stepsFeatureCollection.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 let stepIndex = 0;\n this.currentStepsLayer = L.geoJSON(stepsFeatureCollection, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n stepIndex += 1;\n return L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: `<div class=\"step-marker-container\"><div class=\"step-number\">${stepIndex}</div></div>`,\n className: 'step-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedCurrentStep(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n }\n\n let elevationTranslation = {\n 'y: ': '',\n 'x: ': '',\n 'Total Length: ': 'Longueur totale : ',\n 'Min Elevation: ': 'Altitude min : ',\n 'Max Elevation: ': 'Altitude max : ',\n };\n\n /* @ts-ignore */\n L.registerLocale('fr', elevationTranslation);\n /* @ts-ignore */\n L.setLocale('fr');\n\n const elevationOptions = {\n srcFolder: 'https://unpkg.com/@raruto/leaflet-elevation/src/',\n elevationDiv: `#elevation`,\n theme: `custom-theme${!this.useGradient ? ' use-theme-color' : ''}`,\n detached: true,\n height: 280,\n wptIcons: true,\n wptLabels: true,\n collapsed: false,\n autohide: false,\n distanceMarkers: { distance: false, direction: true },\n hotline: this.useGradient,\n closeBtn: false,\n summary: 'inline',\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 dragging: false,\n zooming: false,\n handlers: ['Altitude', 'Distance', 'Slope', 'LinearGradient'],\n linearGradient: {\n attr: 'z',\n path: 'altitude',\n range: { 0.0: '#008800', 0.5: '#ffff00', 1.0: '#ff0000' },\n min: 'elevation_min',\n max: 'elevation_max',\n },\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 departureArrival: FeatureCollection = {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTrek.geometry.coordinates[state.currentTrek.geometry.coordinates.length - 1] },\n properties: null,\n },\n {\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTrek.geometry.coordinates[0] },\n properties: null,\n },\n ],\n };\n\n let index = 0;\n this.departureArrivalLayer = L.geoJSON(departureArrival, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n index += 1;\n return L.marker(latlng, {\n icon: L.divIcon({\n html: `<div></div>`,\n className: index === 1 ? 'departure-marker' : 'arrival-marker',\n iconSize: 22,\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n });\n this.map.addLayer(this.departureArrivalLayer);\n\n const overlays = {};\n if (this.currentStepsLayer) {\n overlays[translate[state.language].layers.steps] = this.currentStepsLayer;\n }\n if (this.currentReferencePointsLayer) {\n overlays[translate[state.language].layers.referencePoints] = this.currentReferencePointsLayer;\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 if (this.currentToutisticContentsLayer) {\n overlays[translate[state.language].layers.touristicContents] = this.currentToutisticContentsLayer;\n }\n\n if (this.currenttouristicEventsLayer) {\n overlays[translate[state.language].layers.touristicEvents] = this.currenttouristicEventsLayer;\n }\n\n if (this.layersControl) {\n Object.keys(overlays).forEach(key => {\n this.layersControl.addOverlay(overlays[key], key);\n });\n } else {\n this.layersControl = L.control.layers({}, overlays, { collapsed: true }).addTo(this.map);\n }\n\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 async getIcons(featuresCollection, property) {\n const icons = {};\n for (let index = 0; index < featuresCollection.features.length; index++) {\n if (featuresCollection.features[index].properties[property]) {\n icons[featuresCollection.features[index].properties[property]] = await this.getIcon(featuresCollection.features[index].properties[property]);\n }\n }\n return icons;\n }\n async getIcon(pictogram) {\n const dataInStore = await getDataInStore('images', pictogram);\n const icon = dataInStore ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type)) : pictogram ? pictogram : null;\n return icon;\n }\n\n async addSelectedCurrentTrek(id, customCoordinates?) {\n const treksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTreks) {\n const trek = state.currentTreks.find(trek => trek.id === id);\n treksFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : 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 this.removeSelectedCurrentTrek();\n state.selectedTrekId = id;\n\n const treksIcons = await this.getIcons(treksFeatureCollection, 'practice');\n this.selectedCurrentTrekLayer = L.geoJSON(treksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: treksIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"trek-marker-container\"><img crossorigin=\"anonymous\" src=${treksIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"trek-marker-container\"></div>`,\n className: 'selected-trek-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.trekPopupIsOpen) {\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n }\n });\n layer.on('popupopen', () => {\n this.trekPopupIsOpen = Boolean(state.selectedTrekId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTrekId) {\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedCurrentTrek() {\n state.selectedTrekId = null;\n this.selectedCurrentTrekLayer && this.map.removeLayer(this.selectedCurrentTrekLayer);\n this.selectedCurrentTrekLayer = null;\n }\n\n addSelectedCurrentStep(id, customCoordinates?) {\n const stepsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTrekSteps) {\n const stepIndex = state.currentTrekSteps.findIndex(trek => trek.id === id);\n stepsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : state.currentTrekSteps[stepIndex].departure_geom },\n properties: {\n id: state.currentTrekSteps[stepIndex].id,\n name: state.currentTrekSteps[stepIndex].name,\n practice: state.practices.find(practice => practice.id === state.currentTrekSteps[stepIndex].practice)?.pictogram,\n imgSrc:\n state.currentTrekSteps[stepIndex].attachments && state.currentTrekSteps[stepIndex].attachments.length > 0 && state.currentTrekSteps[stepIndex].attachments[0].thumbnail,\n index: stepIndex + 1,\n },\n });\n }\n\n this.removeSelectedCurrentStep();\n state.selectedStepId = id;\n\n this.selectedCurrentStepLayer = L.geoJSON(stepsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: `<div class=\"step-marker-container\"><div class=\"step-number\">${geoJsonPoint.properties.index}</div></div>`,\n className: 'selected-step-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.stepPopupIsOpen) {\n state.selectedTrekId = null;\n this.removeSelectedCurrentStep();\n }\n });\n layer.on('popupopen', () => {\n this.stepPopupIsOpen = Boolean(state.selectedStepId);\n });\n layer.on('popupclose', () => {\n if (state.selectedStepId) {\n this.stepPopupIsOpen = false;\n state.selectedStepId = null;\n this.removeSelectedCurrentStep();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedCurrentStep() {\n if (state.selectedStepId) {\n state.selectedStepId = null;\n this.selectedCurrentStepLayer && this.map.removeLayer(this.selectedCurrentStepLayer);\n this.selectedCurrentStepLayer = null;\n }\n }\n\n handleLayersControlEvent() {\n const userLayersState: HTMLInputElement[] = (this.layersControl as any)._layerControlInputs;\n userLayersState.forEach((userLayerState: any) => {\n if ((this.layersControl as any)._layers.find(layer => layer.layer._leaflet_id === userLayerState.layerId).overlay) {\n userLayerState.onchange = event => {\n this.userLayersState[userLayerState.layerId] = (event.target as any).checked;\n };\n }\n });\n }\n\n removeTrek() {\n if (this.layersControl) {\n if (!(this.layersControl as any)._layers.some(layer => !layer.overlay)) {\n this.map.removeControl(this.layersControl);\n this.layersControl = null;\n } else {\n (this.layersControl as any)._layers\n .filter(layer => layer.overlay)\n .forEach(layer => {\n this.layersControl.removeLayer(layer.layer);\n });\n }\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.departureArrivalLayer) {\n this.map.removeLayer(this.departureArrivalLayer);\n this.departureArrivalLayer = null;\n }\n\n if (this.currentTrekLayer) {\n this.map.removeLayer(this.currentTrekLayer);\n this.currentTrekLayer = 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.currentReferencePointsLayer) {\n this.map.removeLayer(this.currentReferencePointsLayer);\n this.currentReferencePointsLayer = null;\n }\n\n if (this.currentStepsLayer) {\n this.map.removeLayer(this.currentStepsLayer);\n this.currentStepsLayer = null;\n }\n\n if (this.currentToutisticContentsLayer) {\n this.map.removeLayer(this.currentToutisticContentsLayer);\n this.currentToutisticContentsLayer = null;\n }\n if (this.currenttouristicEventsLayer) {\n this.map.removeLayer(this.currenttouristicEventsLayer);\n this.currenttouristicEventsLayer = null;\n }\n }\n\n async showTrekLine(id) {\n // this.removeSelectedCurrentTrek();\n const trekLine = await getTrekGeometry(id);\n const currentTrekFeature: Feature = {\n type: 'Feature',\n geometry: trekLine.geometry,\n properties: {},\n };\n\n this.currentTrekLayer = L.geoJSON(currentTrekFeature, {\n style: () => ({\n color: this.colorTrekLine,\n }),\n interactive: false,\n }).addTo(this.map);\n }\n\n hideTrekLine() {\n if (this.currentTrekLayer) {\n this.map.removeLayer(this.currentTrekLayer);\n this.currentTrekLayer = null;\n }\n }\n\n async addTouristicContent() {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n\n const touristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicContent) {\n touristicContentsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTouristicContent.geometry.coordinates },\n properties: {\n id: state.currentTouristicContent.id,\n name: state.currentTouristicContent.name,\n practice: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === state.currentTouristicContent.category).pictogram,\n },\n });\n }\n\n if (!this.currentToutisticContentLayer) {\n const toutisticContentIcons = await this.getIcons(touristicContentsFeatureCollection, 'practice');\n this.currentToutisticContentLayer = L.geoJSON(touristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous \"src=${toutisticContentIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'touristic-content-marker',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n });\n this.map.addLayer(this.currentToutisticContentLayer);\n }\n\n this.map.setView([state.currentTouristicContent.geometry.coordinates[1], state.currentTouristicContent.geometry.coordinates[0]], this.maxZoom);\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n removeTouristicContent() {\n if (this.currentToutisticContentLayer) {\n this.map.removeLayer(this.currentToutisticContentLayer);\n this.currentToutisticContentLayer = null;\n }\n }\n\n async addTouristicContents(resetBounds = false) {\n state.touristicContentsWithinBounds = state.currentTouristicContents;\n\n const touristicContentsCurrentCoordinates = [];\n\n const touristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicContents) {\n for (const currentTouristicContent of state.currentTouristicContents) {\n touristicContentsCurrentCoordinates.push(currentTouristicContent.geometry.coordinates);\n\n touristicContentsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: currentTouristicContent.geometry.coordinates },\n properties: {\n id: currentTouristicContent.id,\n name: currentTouristicContent.name,\n practice: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === currentTouristicContent.category).pictogram,\n imgSrc: currentTouristicContent.attachments && currentTouristicContent.attachments.length > 0 && currentTouristicContent.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.toutisticContentsLayer) {\n if ((touristicContentsCurrentCoordinates.length > 0 && !state.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(touristicContentsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n const toutisticContentIcons = await this.getIcons(touristicContentsFeatureCollection, 'practice');\n this.toutisticContentsLayer = L.geoJSON(touristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticContentIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'touristic-content-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicContentCoordinatesPopup = L.DomUtil.create('div');\n touristicContentCoordinatesPopup.className = 'touristic-content-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicContentImg = L.DomUtil.create('img');\n touristicContentImg.src = geoJsonPoint.properties.imgSrc;\n touristicContentImg.crossOrigin = 'anonymous';\n touristicContentCoordinatesPopup.appendChild(touristicContentImg);\n }\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentCoordinatesPopup.appendChild(touristicContentName);\n\n const touristicContentButton = L.DomUtil.create('button');\n touristicContentButton.innerHTML = 'Afficher le détail';\n touristicContentButton.className = 'touristic-content-button';\n touristicContentButton.onclick = () => this.touristicContentCardPress.emit(geoJsonPoint.properties.id);\n touristicContentCoordinatesPopup.appendChild(touristicContentButton);\n\n layer.bindPopup(touristicContentCoordinatesPopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedTouristicContent(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.touristicContentsMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({\n html: '<div>' + cluster.getChildCount() + '</div>',\n className: 'touristic-content-marker-cluster-group-icon',\n iconSize: 48,\n } as any);\n },\n });\n\n this.touristicContentsMarkerClusterGroup.addLayer(this.toutisticContentsLayer);\n this.map.addLayer(this.touristicContentsMarkerClusterGroup);\n } else {\n if (touristicContentsCurrentCoordinates.length > 0) {\n this.bounds = L.latLngBounds(touristicContentsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.toutisticContentsLayer.clearLayers();\n this.toutisticContentsLayer.addData(touristicContentsFeatureCollection);\n this.touristicContentsMarkerClusterGroup.clearLayers();\n this.touristicContentsMarkerClusterGroup.addLayer(this.toutisticContentsLayer);\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.handleTouristicContentsWithinBoundsBind);\n }\n\n removeTouristicContents() {\n if (this.toutisticContentsLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.touristicContentsMarkerClusterGroup);\n this.toutisticContentsLayer = null;\n this.touristicContentsMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTouristicContentsWithinBoundsBind);\n }\n }\n\n async addTouristicEvent() {\n const touristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicEvent) {\n const touristicEventType = state.touristicEventTypes.find(touristicEventType => touristicEventType.id === state.currentTouristicEvent.type);\n touristicEventsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTouristicEvent.geometry.coordinates },\n properties: {\n id: state.currentTouristicEvent.id,\n name: state.currentTouristicEvent.name,\n type: touristicEventType ? touristicEventType.pictogram : null,\n },\n });\n }\n\n if (!this.currentToutisticEventLayer) {\n const toutisticEventsIcons = await this.getIcons(touristicEventsFeatureCollection, 'type');\n this.currentToutisticEventLayer = L.geoJSON(touristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticEventsIcons[geoJsonPoint.properties.type]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticEventsIcons[geoJsonPoint.properties.type]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'touristic-event-marker',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n });\n this.map.addLayer(this.currentToutisticEventLayer);\n }\n\n this.map.setView([state.currentTouristicEvent.geometry.coordinates[1], state.currentTouristicEvent.geometry.coordinates[0]], this.maxZoom);\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n removeTouristicEvent() {\n if (this.currentToutisticEventLayer) {\n this.map.removeLayer(this.currentToutisticEventLayer);\n this.currentToutisticEventLayer = null;\n }\n }\n\n async addSelectedTouristicContent(id, customCoordinates?) {\n const touristicContentFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.touristicContents) {\n const touristicContent = state.touristicContents.find(touristicContent => touristicContent.id === id);\n touristicContentFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : touristicContent.geometry.coordinates },\n properties: {\n id: touristicContent.id,\n name: touristicContent.name,\n category: state.touristicContentCategories.find(practice => practice.id === touristicContent.category)?.pictogram,\n imgSrc: touristicContent.attachments && touristicContent.attachments.length > 0 && touristicContent.attachments[0].thumbnail,\n },\n });\n }\n\n this.removeSelectedTouristicContent();\n state.selectedTouristicContentId = id;\n\n const toutisticContentIcons = await this.getIcons(touristicContentFeatureCollection, 'category');\n this.selectedTouristicContentLayer = L.geoJSON(touristicContentFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.category]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticContentIcons[geoJsonPoint.properties.category]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'selected-touristic-content-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicContentDeparturePopup = L.DomUtil.create('div');\n touristicContentDeparturePopup.className = 'touristic-content-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicContentImg = L.DomUtil.create('img');\n touristicContentImg.src = geoJsonPoint.properties.imgSrc;\n touristicContentImg.crossOrigin = 'anonymous';\n touristicContentDeparturePopup.appendChild(touristicContentImg);\n }\n\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentDeparturePopup.appendChild(touristicContentName);\n\n const touristicContentButton = L.DomUtil.create('button');\n touristicContentButton.innerHTML = 'Afficher le détail';\n touristicContentButton.className = 'touristic-content-button';\n touristicContentButton.onclick = () => this.touristicContentCardPress.emit(geoJsonPoint.properties.id);\n touristicContentDeparturePopup.appendChild(touristicContentButton);\n\n layer.bindPopup(touristicContentDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.touristicContentPopupIsOpen) {\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n });\n layer.on('popupopen', () => {\n this.touristicContentPopupIsOpen = Boolean(state.selectedTouristicContentId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTouristicContentId) {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedTouristicContent() {\n state.selectedTouristicContentId = null;\n this.selectedTouristicContentLayer && this.map.removeLayer(this.selectedTouristicContentLayer);\n this.selectedTouristicContentLayer = null;\n }\n\n async addTouristicEvents(resetBounds = false) {\n state.touristicEventsWithinBounds = state.currentTouristicEvents;\n\n const touristicEventsCurrentCoordinates = [];\n\n const touristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicEvents) {\n for (const currentTouristicEvent of state.currentTouristicEvents) {\n touristicEventsCurrentCoordinates.push(currentTouristicEvent.geometry.coordinates);\n\n touristicEventsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: currentTouristicEvent.geometry.coordinates },\n properties: {\n id: currentTouristicEvent.id,\n name: currentTouristicEvent.name,\n type: state.touristicEventTypes.find(touristicEventType => touristicEventType.id === currentTouristicEvent.type)?.pictogram,\n imgSrc: currentTouristicEvent.attachments && currentTouristicEvent.attachments.length > 0 && currentTouristicEvent.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.touristicEventsLayer) {\n if ((touristicEventsCurrentCoordinates.length > 0 && !state.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(touristicEventsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n const touristicEventsIcons = await this.getIcons(touristicEventsFeatureCollection, 'type');\n this.touristicEventsLayer = L.geoJSON(touristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: touristicEventsIcons[geoJsonPoint.properties.type]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${touristicEventsIcons[geoJsonPoint.properties.type]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'touristic-event-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicEventCoordinatesPopup = L.DomUtil.create('div');\n touristicEventCoordinatesPopup.className = 'touristic-event-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicEventImg = L.DomUtil.create('img');\n touristicEventImg.src = geoJsonPoint.properties.imgSrc;\n touristicEventImg.crossOrigin = 'anonymous';\n touristicEventCoordinatesPopup.appendChild(touristicEventImg);\n }\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventCoordinatesPopup.appendChild(touristicEventName);\n\n const touristicEventButton = L.DomUtil.create('button');\n touristicEventButton.innerHTML = 'Afficher le détail';\n touristicEventButton.className = 'touristic-event-button';\n touristicEventButton.onclick = () => this.touristicEventCardPress.emit(geoJsonPoint.properties.id);\n touristicEventCoordinatesPopup.appendChild(touristicEventButton);\n\n layer.bindPopup(touristicEventCoordinatesPopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedTouristicEvent(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.touristicEventsMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({\n html: '<div>' + cluster.getChildCount() + '</div>',\n className: 'touristic-event-marker-cluster-group-icon',\n iconSize: 48,\n } as any);\n },\n });\n\n this.touristicEventsMarkerClusterGroup.addLayer(this.touristicEventsLayer);\n this.map.addLayer(this.touristicEventsMarkerClusterGroup);\n } else {\n if (touristicEventsCurrentCoordinates.length > 0) {\n this.bounds = L.latLngBounds(touristicEventsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.touristicEventsLayer.clearLayers();\n this.touristicEventsLayer.addData(touristicEventsFeatureCollection);\n this.touristicEventsMarkerClusterGroup.clearLayers();\n this.touristicEventsMarkerClusterGroup.addLayer(this.touristicEventsLayer);\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.handleTouristicEventsWithinBoundsBind);\n }\n\n removeTouristicEvents() {\n if (this.touristicEventsLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.touristicEventsMarkerClusterGroup);\n this.touristicEventsLayer = null;\n this.touristicEventsMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTouristicEventsWithinBoundsBind);\n }\n }\n\n async addSelectedTouristicEvent(id, customCoordinates?) {\n const touristicEventFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.touristicEvents) {\n const touristicEvent = state.touristicEvents.find(touristicEvent => touristicEvent.id === id);\n touristicEventFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : touristicEvent.geometry.coordinates },\n properties: {\n id: touristicEvent.id,\n name: touristicEvent.name,\n category: state.touristicEventTypes.find(type => type.id === touristicEvent.type)?.pictogram,\n imgSrc: touristicEvent.attachments && touristicEvent.attachments.length > 0 && touristicEvent.attachments[0].thumbnail,\n },\n });\n }\n\n this.removeSelectedTouristicEvent();\n state.selectedTouristicEventId = id;\n\n const touristicEventsIcons = await this.getIcons(touristicEventFeatureCollection, 'category');\n this.selectedTouristicEventLayer = L.geoJSON(touristicEventFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: touristicEventsIcons[geoJsonPoint.properties.category]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${touristicEventsIcons[geoJsonPoint.properties.category]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'selected-touristic-event-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicEventDeparturePopup = L.DomUtil.create('div');\n touristicEventDeparturePopup.className = 'touristic-event-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicEventImg = L.DomUtil.create('img');\n touristicEventImg.src = geoJsonPoint.properties.imgSrc;\n touristicEventImg.crossOrigin = 'anonymous';\n touristicEventDeparturePopup.appendChild(touristicEventImg);\n }\n\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventDeparturePopup.appendChild(touristicEventName);\n\n const touristicEventButton = L.DomUtil.create('button');\n touristicEventButton.innerHTML = 'Afficher le détail';\n touristicEventButton.className = 'touristic-event-button';\n touristicEventButton.onclick = () => this.touristicEventCardPress.emit(geoJsonPoint.properties.id);\n touristicEventDeparturePopup.appendChild(touristicEventButton);\n\n layer.bindPopup(touristicEventDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.touristicEventPopupIsOpen) {\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n });\n layer.on('popupopen', () => {\n this.touristicEventPopupIsOpen = Boolean(state.selectedTouristicEventId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTouristicEventId) {\n this.touristicEventPopupIsOpen = false;\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedTouristicEvent() {\n state.selectedTouristicEventId = null;\n this.selectedTouristicEventLayer && this.map.removeLayer(this.selectedTouristicEventLayer);\n this.selectedTouristicEventLayer = null;\n }\n\n render() {\n const layersImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/layers.svg`);\n const contractImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/contract.svg`);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\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-poi-icon': this.colorPoiIcon,\n '--color-trek-line': this.colorTrekLine,\n '--layers-image-src': `url(${layersImageSrc})`,\n '--contract-image-src': `url(${contractImageSrc})`,\n '--map-bottom-space-height': this.isLargeView ? '0px' : '80px',\n }}\n >\n <div id=\"map\" part=\"map\" class={state.currentTrek ? 'trek-map' : 'treks-map'} ref={el => (this.mapRef = el)}></div>\n {state.currentTrek && (\n <div>\n <div id=\"elevation\" part=\"elevation\" ref={el => (this.elevationRef = el)}></div>\n <div part=\"map-bottom-space\" class=\"map-bottom-space\"></div>\n </div>\n )}\n\n {!this.mapIsReady && (\n <div part=\"map-loader-container\" class=\"map-loader-container\">\n <span part=\"loader\" class=\"loader\"></span>\n </div>\n )}\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n display: flex;\n justify-content: center;\n align-items: center;\n .icon {\n color: var(--color-on-primary-container);\n font-size: 24px;\n position: absolute;\n left: 32px;\n z-index: 20;\n pointer-events: none;\n }\n}\n\n.search-input {\n width: 100%;\n background-color: var(--color-surface-container-high);\n box-shadow: var(--elevation-2);\n border: none;\n border-radius: var(--border-radius, 40px);\n color: var(--color-on-primary-container);\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n font-family: var(--font-family);\n height: 44px;\n padding: 0px 16px 0px 48px;\n outline-color: var(--color-outline);\n &::placeholder {\n color: var(--color-on-primary-container);\n }\n &::-webkit-search-cancel-button {\n -webkit-appearance: none;\n background-color: var(--color-on-primary-container);\n -webkit-mask-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23777'><path d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/></svg>\");\n background-size: 20px 20px;\n height: 20px;\n width: 20px;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport state from 'store/store';\nimport { handleTouristicContentsFiltersAndSearch, handleTouristicEventsFiltersAndSearch, handleTreksFiltersAndSearch } from 'utils/utils';\n\n@Component({\n tag: 'grw-search',\n styleUrl: 'grw-search.scss',\n shadow: true,\n})\nexport class GrwSearch {\n @Prop() fontFamily = 'Roboto';\n\n onSearchChange(event: InputEvent) {\n state.searchValue = (event.target as any).value;\n if (state.mode === 'treks') {\n state.currentTreks = handleTreksFiltersAndSearch();\n } else if (state.mode === 'touristicContents') {\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n } else if (state.mode === 'touristicEvents') {\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n }\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n search\n </span>\n <input part=\"search-input\" class=\"search-input\" onInput={e => this.onSearchChange(e)} type=\"search\" placeholder=\"Rechercher\" value={state.searchValue}></input>\n </Host>\n );\n }\n}\n",".segmented-buttons-container {\n font-family: var(--font-family);\n display: flex;\n justify-content: center;\n width: calc(100% - 32px);\n height: 40px;\n margin: 16px;\n border: 1px solid var(--color-outline);\n border-radius: var(--border-radius, 20px);\n line-height: 20px;\n .segment {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n -webkit-tap-highlight-color: transparent;\n color: var(--color-on-surface);\n background-color: transparent;\n border-radius: 0px;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n &:first-child {\n border-top-left-radius: var(--border-radius, 20px);\n border-bottom-left-radius: var(--border-radius, 20px);\n }\n &:not(:last-child) {\n border-right: 1px solid var(--color-outline);\n }\n &:last-child {\n border-top-right-radius: var(--border-radius, 20px);\n border-bottom-right-radius: var(--border-radius, 20px);\n }\n }\n .selected-segment {\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport { Mode } from 'types/types';\n\nimport {\n handleTouristicContentsFiltersAndSearch,\n handleTouristicEventsFiltersAndSearch,\n handleTreksFiltersAndSearch,\n touristicContentsFilters,\n touristicEventsFilters,\n treksFilters,\n} from 'utils/utils';\n\n@Component({\n tag: 'grw-segmented-segment',\n styleUrl: 'grw-segmented-segment.scss',\n shadow: true,\n})\nexport class GrwSegmentedSegment {\n @Prop() treks = true;\n @Prop() touristicContents = false;\n @Prop() touristicEvents = false;\n\n @Prop() fontFamily = 'Roboto';\n\n changeMode(mode: Mode) {\n state.searchValue = '';\n if (mode === 'treks' && state.currentTreks) {\n treksFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedThemesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTreks = handleTreksFiltersAndSearch();\n } else if (mode === 'touristicContents' && state.currentTouristicContents) {\n touristicContentsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n } else if (mode === 'touristicEvents' && state.currentTouristicEvents) {\n touristicEventsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n }\n state.mode = mode;\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.treks && (\n <label part=\"segment\" class={`segment${state.mode === 'treks' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('treks')}>\n {translate[state.language].home.segment.treks}\n </label>\n )}\n {this.touristicContents && (\n <label part=\"segment\" class={`segment${state.mode === 'touristicContents' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('touristicContents')}>\n {translate[state.language].home.segment.touristicContents}\n </label>\n )}\n {this.touristicEvents && (\n <label part=\"segment\" class={`segment${state.mode === 'touristicEvents' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('touristicEvents')}>\n {translate[state.language].home.segment.touristicEvents}\n </label>\n )}\n </div>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n display: flex;\n align-items: center;\n .icon {\n font-size: 18px;\n }\n #language-select {\n border: none;\n background-color: var(--color-background);\n &:focus-visible {\n outline: none;\n }\n }\n}\n","import { Component, Host, h } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-select-language',\n styleUrl: 'grw-select-language.scss',\n shadow: true,\n})\nexport class GrwSelectLanguage {\n handleSelect(event) {\n state.treks = null;\n state.currentTreks = null;\n state.currentTrek = null;\n state.language = event.target.value;\n }\n\n render() {\n return (\n <Host>\n {/* @ts-ignore */}\n <span part=\"select-language-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n translate\n </span>\n <select part=\"select-language-select\" onInput={event => this.handleSelect(event)} name=\"languages\" id=\"language-select\">\n {state.languages.map(language => (\n <option part=\"select-language-option\" selected={language === state.language} value={language.toLocaleLowerCase()}>\n {language.toLocaleUpperCase()}\n </option>\n ))}\n </select>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.md3.switch {\n user-select: none;\n position: relative;\n -webkit-tap-highlight-color: transparent;\n margin: 10px;\n font-family: var(--font-family);\n}\n\n.md3.switch input {\n opacity: 0;\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n}\n\n.md3.switch span.slider {\n position: absolute;\n cursor: pointer;\n background-color: var(--color-primary-container);\n width: 48px;\n height: 28px;\n border-radius: 28px;\n border: 2px solid var(--color-outline);\n transition: background-color 0.1s ease-in-out, border-color 0.1s ease-in-out;\n}\n\n/* thumb */\n.md3.switch span.slider::before {\n position: absolute;\n content: '';\n height: 16px;\n width: 16px;\n left: 0px;\n margin: 6px;\n background-color: var(--color-outline);\n border-radius: 28px;\n transition: left 175ms cubic-bezier(0, 0.5, 0.5, 1.5), background-color 0.1s ease-in-out, height 50ms ease-in-out, width 50ms ease-in-out, margin 50ms ease-in-out;\n}\n\n.md3.switch span.slider span.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n left: 0px;\n margin: 6px 0px;\n height: 16px;\n width: 16px;\n font-size: 16px;\n text-align: center;\n opacity: 0;\n transition: left 175ms cubic-bezier(0, 0.5, 0.5, 1.5);\n color: var(--color-surface-variant);\n}\n\n.md3.switch input:checked + span.slider {\n background-color: var(--color-primary);\n border-color: transparent;\n}\n\n.md3.switch input:checked + span.slider::before {\n background-color: var(--color-on-primary);\n height: 24px;\n width: 24px;\n left: 20px;\n margin: 2px;\n}\n\n.md3.switch input:not(:disabled):hover + span.slider::before {\n background-color: var(--color-on-surface-variant);\n}\n\n.md3.switch input:not(:disabled):checked:hover + span.slider::before {\n background-color: var(--color-primary-container);\n}\n\n.md3.switch input:not(:disabled):active + span.slider::before {\n height: 28px;\n width: 28px;\n margin: 0px;\n}\n\n.md3.switch input:not(:disabled):checked:active + span.slider::before {\n background-color: var(--color-primary-container);\n}\n\n.md3.switch input:checked + span.slider span.icon {\n left: 26px;\n opacity: 1;\n color: var(--color-on-primary-container);\n}\n\n.md3.switch input:focus-visible + span.slider {\n outline: 2px solid var(--color-primary);\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-switch',\n styleUrl: 'grw-switch.scss',\n shadow: true,\n})\nexport class GrwSwitch {\n @Prop() action: Function;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <label class=\"md3 switch\">\n <input onChange={() => this.action()} type=\"checkbox\" id=\"darkmode\" name=\"darkmode\" />\n <span class=\"slider\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n done\n </span>\n </span>\n </label>\n </Host>\n );\n }\n}\n","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import { getDocument } from 'ssr-window';\nimport { createElement, elementOffset, nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(`.${swiper.params.scrollbar.dragClass}`);\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n disableDraggable();\n }\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import { elementTransitionEnd, now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd({\n currentPos\n }) {\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.swiper {\n z-index: 0;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-touristic-content-detail {\n overflow: hidden;\n}\n\n.touristic-content-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .touristic-content-category-container {\n display: flex;\n align-items: center;\n padding: 0px 24px;\n margin: 8px 0px;\n .touristic-content-category-name {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n }\n img {\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n background-color: var(--color-primary-app);\n }\n }\n .name {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .image,\n .default-poi-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-poi-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .description-teaser,\n .description-container,\n .useful-information-container,\n .contact-container {\n padding: 0px 24px 0px 24px;\n }\n .description-container,\n .useful-information-container,\n .contact-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-title,\n .useful-information-title,\n .contact-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n margin-bottom: 16px;\n }\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.cities-container {\n display: flex;\n align-items: center;\n padding: 24px 24px 0px 24px;\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n\n.downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.email-container,\n.website-container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.legend-container {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n\n.touristic-content-category-img {\n border-radius: 100%;\n padding: 2px;\n max-height: 20px;\n max-width: 20px;\n}\n","import { Build, Component, Host, Prop, State, getAssetPath, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport Swiper, { FreeMode, Keyboard, Mousewheel, Navigation, Pagination } from 'swiper';\n\n@Component({\n tag: 'grw-touristic-content-detail',\n styleUrl: 'grw-touristic-content-detail.scss',\n shadow: true,\n})\nexport class GrwTouristicContentDetail {\n swiperImages?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n presentationRef?: HTMLDivElement;\n\n @State() displayFullscreen = false;\n @State() offline = false;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n @Prop() isLargeView = false;\n\n descriptionRef?: HTMLDivElement;\n touristicContentDetailContainerRef?: HTMLElement;\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.offline = state.currentTouristicContent.offline;\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (state.currentTouristicContent.attachments && state.currentTouristicContent.attachments[0] && state.currentTouristicContent.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n }\n } else {\n (document as any).exitFullscreen();\n }\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n const touristicContentCategory =\n state.touristicContentCategories &&\n state.currentTouristicContent &&\n state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === state.currentTouristicContent.category);\n const cities = state.currentTouristicContent && state.currentTouristicContent.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\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 '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '204px'\n : '164px',\n }}\n >\n {state.currentTouristicContent && (\n <div part=\"touristic-content-detail-container\" class=\"touristic-content-detail-container\" ref={el => (this.touristicContentDetailContainerRef = el)}>\n <div part=\"images-container\" class=\"images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTouristicContent.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n state.currentTouristicContent.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"close-fullscreen-button\" class=\"close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n close\n </span>\n </div>\n )}\n <div part=\"legend-container\" class=\"legend-container\">\n {legend}\n </div>\n <img\n part=\"image\"\n class=\"image\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n />\n </div>\n );\n })\n ) : (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <img\n part=\"default-poi-img\"\n class=\"default-poi-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n </div>\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n <div part=\"touristic-content-category-container\" class=\"touristic-content-category-container\">\n <img\n part=\"touristic-content-category-img\"\n class=\"touristic-content-category-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={touristicContentCategory.pictogram}\n />\n <div part=\"touristic-content-category-name\" class=\"touristic-content-category-name\">\n {touristicContentCategory.label}\n </div>\n </div>\n <div part=\"name\" class=\"name\">\n {state.currentTouristicContent.name}\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].download}\n </div>\n <div part=\"links-container\" class=\"links-container\">\n <a part=\"link-container\" class=\"link-container\" href={`${state.currentTouristicContent.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n download\n </span>\n <span part=\"label\" class=\"\">\n PDF\n </span>\n </a>\n </div>\n </div>\n {state.currentTouristicContent.description_teaser && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={state.currentTouristicContent.description_teaser}></div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {state.currentTouristicContent.practical_info && (\n <div part=\"description-container\" class=\"description-container\" ref={el => (this.descriptionRef = el)}>\n <div part=\"description-title\" class=\"description-title\">\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={state.currentTouristicContent.description}></div>\n </div>\n )}\n {cities && cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].city} : \n </div>\n <div part=\"cities\" class=\"cities\" innerHTML={cities.join(', ')}></div>\n </div>\n )}\n {state.currentTouristicContent.practical_info && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"useful-information-container\" class=\"useful-information-container\">\n <div part=\"useful-information-title\" class=\"useful-information-title\">\n {translate[state.language].usefulInformation} : \n </div>\n <div part=\"useful-information\" innerHTML={state.currentTouristicContent.practical_info}></div>\n </div>\n </div>\n )}\n {(state.currentTouristicContent.contact || state.currentTouristicContent.email || state.currentTouristicContent.website) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"contact-container\" class=\"contact-container\">\n <div part=\"contact-title\" class=\"contact-title\">\n {translate[state.language].contact} : \n </div>\n {state.currentTouristicContent.contact && <div part=\"contact\" class=\"contact\" innerHTML={state.currentTouristicContent.contact}></div>}\n {state.currentTouristicContent.email && (\n <div part=\"email-container\" class=\"email-container\">\n <div part=\"email-title\" class=\"email-title\">\n {translate[state.language].email} : \n </div>\n <div part=\"email\" class=\"email\" innerHTML={state.currentTouristicContent.email}></div>\n </div>\n )}\n {state.currentTouristicContent.website && (\n <div part=\"website-container\" class=\"website-container\">\n <div part=\"website-title\" class=\"website-title\">\n {translate[state.language].website} : \n </div>\n <div part=\"website\" class=\"website\" innerHTML={state.currentTouristicContent.website}></div>\n </div>\n )}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","export function getTouristicContent(api, language, touristicContentId, init) {\n return fetch(\n `${api}touristiccontent/${touristicContentId}/?language=${language}&published=true&fields=id,name,attachments,description,description_teaser,category,geometry,cities,pdf,practical_info,contact,email,website,districts`,\n init,\n );\n}\n\nexport function getTouristicContentsNearTrek(api, language, trekId, init) {\n return fetch(\n `${api}touristiccontent/?language=${language}&near_trek=${trekId}&published=true&fields=id,name,attachments,description,description_teaser,category,geometry,cities,pdf,practical_info,contact,email,website,districts&page_size=999`,\n init,\n );\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicContent } from 'services/touristic-contents.service';\nimport state from 'store/store';\nimport { TouristicContent } from 'types/types';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-touristic-content-provider',\n shadow: true,\n})\nexport class GrwTouristicContentProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() touristicContentId: number;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicContent();\n }\n\n async handleTouristicContent() {\n const touristicContentInStore: TouristicContent = await getDataInStore('touristicContents', this.touristicContentId);\n if (touristicContentInStore && touristicContentInStore.offline) {\n this.handleOfflineTouristicContent(touristicContentInStore);\n } else {\n this.handleOnlineTouristicContent();\n }\n }\n\n async handleOfflineTouristicContent(touristicContent: TouristicContent) {\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.touristicContentCategories) {\n state.touristicContentCategories = await getAllDataInStore('touristicContentCategories');\n }\n setFilesFromStore(touristicContent, imagesRegExp);\n state.currentTouristicContent = touristicContent;\n }\n\n handleOnlineTouristicContent() {\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.touristicContentCategories\n ? fetch(\n `${state.api}touristiccontent_category/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,label,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n try {\n Promise.all([...requests, getTouristicContent(state.api, state.language, this.touristicContentId, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, touristicContentCategory, touristicContent]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n state.currentTouristicContent = touristicContent;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-touristic-content-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-touristic-contents-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.touristic-contents-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { TouristicContents } from 'types/types';\n\n@Component({\n tag: 'grw-touristic-contents-list',\n styleUrl: 'grw-touristic-contents-list.scss',\n shadow: true,\n})\nexport class GrwTouristicContentsList {\n @Element() element: HTMLElement;\n @State() touristicContentsToDisplay: TouristicContents = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n\n @Prop() isLargeView = false;\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTouristicContents) {\n this.touristicContentsToDisplay = [...state.currentTouristicContents.slice(0, this.step)];\n }\n onChange('currentTouristicContents', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTouristicContents) {\n this.touristicContentsToDisplay = [...state.currentTouristicContents.slice(0, this.step)];\n }\n });\n onChange('touristicContentsWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.touristicContentsWithinBounds) {\n this.touristicContentsToDisplay = [...state.touristicContentsWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.touristicContentsToDisplay.length < state.touristicContentsWithinBounds.length) {\n this.touristicContentsToDisplay = state.touristicContentsWithinBounds.slice(\n 0,\n this.touristicContentsToDisplay.length + this.step >= state.touristicContentsWithinBounds.length\n ? state.touristicContentsWithinBounds.length\n : this.touristicContentsToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.touristicContentsWithinBounds && (\n <div part=\"current-touristic-contents-within-bounds-length\" class=\"current-touristic-contents-within-bounds-length\">{`${state.touristicContentsWithinBounds.length} ${\n state.touristicContentsWithinBounds.length > 1 ? translate[state.language].home.touristicContents : translate[state.language].home.touristicContent\n }`}</div>\n )}\n <div part=\"touristic-contents-list-container\" class=\"touristic-contents-list-container\">\n {this.touristicContentsToDisplay.map(touristicContent => (\n <grw-touristic-content-card\n exportparts=\"touristic-content-card,touristic-content-img-container,swiper-touristic-content,swiper-wrapper,swiper-slide,touristic-content-img,default-touristic-content-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-content-sub-container,touristic-content-category-container,touristic-content-category-img,touristic-content-category-name,touristic-content-name,touristic-content-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n key={`touristic-content-${touristicContent.id}`}\n touristicContent={touristicContent}\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-touristic-content-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-touristic-contents-provider',\n shadow: true,\n})\nexport class GrwTouristicContentsProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\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\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicContents();\n }\n\n handleTouristicContents() {\n let touristicContentsRequest = `${state.api}touristiccontent/?language=${state.language}&published=true`;\n this.inBbox && (touristicContentsRequest += `&in_bbox=${this.inBbox}`);\n this.cities && (touristicContentsRequest += `&cities=${this.cities}`);\n this.districts && (touristicContentsRequest += `&districts=${this.districts}`);\n this.structures && (touristicContentsRequest += `&structures=${this.structures}`);\n this.themes && (touristicContentsRequest += `&themes=${this.themes}`);\n this.portals && (touristicContentsRequest += `&portals=${this.portals}`);\n\n touristicContentsRequest += `&fields=id,name,attachments,category,geometry,cities,districts&page_size=999`;\n\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(!state.districts ? fetch(`${state.api}district/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null')),\n requests.push(\n !state.touristicContentCategories\n ? fetch(\n `${state.api}touristiccontent_category/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,label,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n try {\n Promise.all([...requests, fetch(touristicContentsRequest, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, districts, touristicContentCategory, touristicContents]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (districts) {\n state.districts = districts.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n state.touristicContents = touristicContents.results;\n state.currentTouristicContents = touristicContents.results;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n\n.swiper {\n z-index: 0;\n}\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-touristic-event-detail {\n overflow: hidden;\n}\n\n.touristic-event-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .touristic-event-category-container {\n display: flex;\n align-items: center;\n padding: 0px 24px;\n margin: 8px 0px;\n .touristic-event-category-name {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n }\n img {\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n background-color: var(--color-primary-app);\n }\n }\n .name {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .touristic-event-date-container {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .image,\n .default-poi-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-poi-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .description-teaser,\n .description-container,\n .useful-information-container,\n .contact-container {\n padding: 0px 24px 0px 24px;\n }\n .description-container,\n .useful-information-container,\n .contact-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-title,\n .useful-information-title,\n .contact-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n margin-bottom: 16px;\n }\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.cities-container {\n display: flex;\n align-items: center;\n padding: 24px 24px 0px 24px;\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n\n.downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.email-container,\n.website-container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.legend-container {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n","import { Build, Component, Host, Prop, State, getAssetPath, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport Swiper, { FreeMode, Keyboard, Mousewheel, Navigation, Pagination } from 'swiper';\n\n@Component({\n tag: 'grw-touristic-event-detail',\n styleUrl: 'grw-touristic-event-detail.scss',\n shadow: true,\n})\nexport class GrwTouristicEventDetail {\n swiperImages?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n presentationRef?: HTMLDivElement;\n\n @State() displayFullscreen = false;\n @State() offline = false;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n @Prop() isLargeView = false;\n\n descriptionRef?: HTMLDivElement;\n touristicEventDetailContainerRef?: HTMLElement;\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.offline = state.currentTouristicEvent.offline;\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (state.currentTouristicEvent.attachments && state.currentTouristicEvent.attachments[0] && state.currentTouristicEvent.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n } else {\n (document as any).exitFullscreen();\n }\n }\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n const touristicEventType =\n state.touristicEventTypes &&\n state.currentTouristicEvent &&\n state.touristicEventTypes.find(touristicEventCategory => touristicEventCategory.id === state.currentTouristicEvent.type);\n const cities = state.currentTouristicEvent && state.currentTouristicEvent.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\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 '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '204px'\n : '164px',\n }}\n >\n {state.currentTouristicEvent && (\n <div part=\"touristic-event-detail-container\" class=\"touristic-event-detail-container\" ref={el => (this.touristicEventDetailContainerRef = el)}>\n <div part=\"images-container\" class=\"images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTouristicEvent.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n state.currentTouristicEvent.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"close-fullscreen-button\" class=\"close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"icon\" translate={false} class=\"material-symbols material-symbols-outlined icon\">\n close\n </span>\n </div>\n )}\n <div part=\"legend-container\" class=\"legend-container\">\n {legend}\n </div>\n <img\n part=\"image\"\n class=\"image\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n />\n </div>\n );\n })\n ) : (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <img\n part=\"default-poi-img\"\n class=\"default-poi-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n </div>\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n <div part=\"touristic-event-category-container\" class=\"touristic-event-category-container\">\n {touristicEventType && touristicEventType.pictogram && (\n <img\n part=\"touristic-event-category-img\"\n class=\"touristic-event-category-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={touristicEventType.pictogram}\n />\n )}\n {touristicEventType && touristicEventType.type && (\n <div part=\"touristic-event-category-name\" class=\"touristic-event-category-name\">\n {touristicEventType.type}\n </div>\n )}\n </div>\n <div part=\"name\" class=\"name\">\n {state.currentTouristicEvent.name}\n </div>\n {(state.currentTouristicEvent.begin_date || state.currentTouristicEvent.end_date) && (\n <div part=\"touristic-event-date-container\" class=\"touristic-event-date-container\">\n {state.currentTouristicEvent.begin_date === state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].date} : {state.currentTouristicEvent.begin_date}\n </div>\n )}\n {state.currentTouristicEvent.begin_date && state.currentTouristicEvent.begin_date !== state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].startDate} : {state.currentTouristicEvent.begin_date}\n </div>\n )}\n {state.currentTouristicEvent.end_date && state.currentTouristicEvent.begin_date !== state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].endDate} : {state.currentTouristicEvent.end_date}\n </div>\n )}\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].download}\n </div>\n <div part=\"links-container\" class=\"links-container\">\n <a part=\"link\" class=\"link\" href={`${state.currentTouristicEvent.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n download\n </span>\n <span part=\"label\" class=\"label\">\n PDF\n </span>\n </a>\n </div>\n </div>\n {state.currentTouristicEvent.description_teaser && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={state.currentTouristicEvent.description_teaser}></div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {state.currentTouristicEvent.practical_info && (\n <div part=\"description-container\" class=\"description-container\" ref={el => (this.descriptionRef = el)}>\n <div part=\"description-title\" class=\"description-title\">\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={state.currentTouristicEvent.description}></div>\n </div>\n )}\n {cities && cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].city} : \n </div>\n <div part=\"cities\" class=\"cities\" innerHTML={cities.join(', ')}></div>\n </div>\n )}\n {state.currentTouristicEvent.practical_info && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"useful-information-container\" class=\"useful-information-container\">\n <div part=\"useful-information-title\" class=\"useful-information-title\">\n {translate[state.language].usefulInformation} : \n </div>\n <div part=\"useful-information\" class=\"useful-information\" innerHTML={state.currentTouristicEvent.practical_info}></div>\n </div>\n </div>\n )}\n {(state.currentTouristicEvent.contact || state.currentTouristicEvent.email || state.currentTouristicEvent.website) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"contact-container\" class=\"contact-container\">\n <div part=\"contact-title\" class=\"contact-title\">\n {translate[state.language].contact} : \n </div>\n {state.currentTouristicEvent.contact && <div part=\"contact\" class=\"contact\" innerHTML={state.currentTouristicEvent.contact}></div>}\n {state.currentTouristicEvent.email && (\n <div part=\"email-container\" class=\"email-container\">\n <div part=\"email-title\" class=\"email-title\">\n {translate[state.language].email} : \n </div>\n <div part=\"email\" class=\"email\" innerHTML={state.currentTouristicEvent.email}></div>\n </div>\n )}\n {state.currentTouristicEvent.website && (\n <div part=\"website-container\" class=\"website-container\">\n <div part=\"website-title\" class=\"website-title\">\n {translate[state.language].website} : \n </div>\n <div part=\"website\" class=\"website\" innerHTML={state.currentTouristicEvent.website}></div>\n </div>\n )}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","export function getTouristicEvent(api, language, touristicEventId, init) {\n fetch(\n `${api}touristicevent/${touristicEventId}/?language=${language}&fields=id,name,attachments,description,description_teaser,type,geometry,cities,pdf,practical_info,contact,email,website,begin_date,end_date&published=true`,\n init,\n );\n}\n\nexport function getTouristicEventsNearTrek(api, language, trekId, init) {\n return fetch(`${api}touristicevent/?language=${language}&near_trek=${trekId}&published=true&fields=id,name,attachments,type,geometry&page_size=999`, init);\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { TouristicEvent } from 'components';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicEvent } from 'services/touristic-events.service';\nimport state from 'store/store';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-touristic-event-provider',\n shadow: true,\n})\nexport class GrwTouristicEventProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() touristicEventId: string;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicEvent();\n }\n\n async handleTouristicEvent() {\n const touristicEventInStore: TouristicEvent = await getDataInStore('touristicEvents', this.touristicEventId);\n if (touristicEventInStore && touristicEventInStore.offline) {\n this.handleOfflineTouristicEvent(touristicEventInStore);\n } else {\n this.handleOnlineTouristicEvent();\n }\n }\n\n async handleOfflineTouristicEvent(touristicEvent: TouristicEvent) {\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.touristicEventTypes) {\n state.touristicEventTypes = await getAllDataInStore('touristicEventTypes');\n }\n setFilesFromStore(touristicEvent, imagesRegExp);\n state.currentTouristicEvent = touristicEvent;\n }\n\n handleOnlineTouristicEvent() {\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.touristicEventTypes\n ? fetch(\n `${state.api}touristicevent_type/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,type,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n\n try {\n Promise.all([...requests, getTouristicEvent(state.api, state.language, this.touristicEventId, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, touristicEventTypes, touristicEvent]) => {\n state.networkError = false;\n if (cities) {\n state.cities = cities.results;\n }\n if (touristicEventTypes) {\n state.touristicEventTypes = touristicEventTypes.results;\n }\n state.currentTouristicEvent = touristicEvent;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-touristic-event-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-touristic-events-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.touristic-events-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { TouristicEvents } from 'types/types';\n\n@Component({\n tag: 'grw-touristic-events-list',\n styleUrl: 'grw-touristic-events-list.scss',\n shadow: true,\n})\nexport class GrwTouristicContentsList {\n @Element() element: HTMLElement;\n @State() touristicEventsToDisplay: TouristicEvents = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n\n @Prop() isLargeView = false;\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTouristicEvents) {\n this.touristicEventsToDisplay = [...state.currentTouristicEvents.slice(0, this.step)];\n }\n onChange('currentTouristicEvents', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTouristicContents) {\n this.touristicEventsToDisplay = [...state.currentTouristicEvents.slice(0, this.step)];\n }\n });\n onChange('touristicEventsWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.touristicEventsWithinBounds) {\n this.touristicEventsToDisplay = [...state.touristicEventsWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.touristicEventsToDisplay.length < state.touristicEventsWithinBounds.length) {\n this.touristicEventsToDisplay = state.touristicEventsWithinBounds.slice(\n 0,\n this.touristicEventsToDisplay.length + this.step >= state.touristicEventsWithinBounds.length\n ? state.touristicEventsWithinBounds.length\n : this.touristicEventsToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.touristicEventsWithinBounds && (\n <div part=\"current-touristic-events-within-bounds-length\" class=\"current-touristic-events-within-bounds-length\">{`${state.touristicEventsWithinBounds.length} ${\n state.touristicEventsWithinBounds.length > 1 ? translate[state.language].home.touristicEvents : translate[state.language].home.touristicEvent\n }`}</div>\n )}\n <div part=\"touristic-events-list-container\" class=\"touristic-events-list-container\">\n {this.touristicEventsToDisplay.map(touristicEvent => (\n <grw-touristic-event-card\n exportparts=\"touristic-event-card,touristic-event-img-container,swiper-touristic-event,swiper-wrapper,swiper-slide,touristic-event-img,default-touristic-event-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-event-sub-container,touristic-event-sub-container,touristic-event-type-img,touristic-event-type-name,touristic-event-name,touristic-event-date-container,touristic-event-date,touristic-event-more-detail-container,more-details-button\"\n key={`touristic-event-${touristicEvent.id}`}\n touristicEvent={touristicEvent}\n is-large-view={this.isLargeView}\n fontFamily={this.fontFamily}\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-touristic-event-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-touristic-events-provider',\n shadow: true,\n})\nexport class GrwTouristicEventsProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\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\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicEvents();\n }\n\n handleTouristicEvents() {\n let touristicEventsRequest = `${state.api}touristicevent/?language=${state.language}&published=true`;\n this.inBbox && (touristicEventsRequest += `&in_bbox=${this.inBbox}`);\n this.cities && (touristicEventsRequest += `&cities=${this.cities}`);\n this.districts && (touristicEventsRequest += `&districts=${this.districts}`);\n this.structures && (touristicEventsRequest += `&structures=${this.structures}`);\n this.themes && (touristicEventsRequest += `&themes=${this.themes}`);\n this.portals && (touristicEventsRequest += `&portals=${this.portals}`);\n\n touristicEventsRequest += `&fields=id,name,attachments,category,geometry,cities,districts,type,begin_date,end_date&page_size=999`;\n\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(!state.districts ? fetch(`${state.api}district/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null')),\n requests.push(\n !state.touristicEventTypes\n ? fetch(\n `${state.api}touristicevent_type/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,type,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n\n try {\n Promise.all([...requests, fetch(touristicEventsRequest, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, districts, touristicEventTypes, touristicEvents]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (districts) {\n state.districts = districts.results;\n }\n if (touristicEventTypes) {\n state.touristicEventTypes = touristicEventTypes.results;\n }\n state.touristicEvents = touristicEvents.results;\n state.currentTouristicEvents = touristicEvents.results;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n@use '~swiper/modules/scrollbar/scrollbar.scss';\n\n.swiper {\n z-index: 0;\n}\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-trek-detail {\n overflow: hidden;\n}\n\n.trek-options {\n display: flex;\n position: relative;\n width: 100%;\n min-height: 32px;\n padding: 8px 0px;\n background-color: var(--color-background);\n overflow-x: auto;\n font-family: var(--font-family);\n &::-webkit-scrollbar {\n display: none;\n }\n .trek-option {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-left: 16px;\n font-size: 22px;\n line-height: 28px;\n font-weight: 500;\n white-space: nowrap;\n text-decoration: none;\n color: var(--color-on-surface);\n transition-property: color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.3s;\n &:hover {\n color: var(--color-primary-app);\n }\n @media (hover: none) {\n &:not(.selected-trek-option):hover {\n color: inherit;\n }\n }\n }\n .trek-option:last-of-type {\n margin-right: 16px;\n }\n .selected-trek-option {\n color: var(--color-primary-app);\n }\n .trek-indicator-selected-trek-option {\n position: absolute;\n bottom: 8px;\n height: 2px;\n background-image: linear-gradient(var(--color-primary-app), var(--color-primary-app));\n background-repeat: no-repeat;\n transition: transform 0.5s ease, background-size 0.5s ease 0.5s;\n margin-left: 16px;\n background-position: center;\n }\n}\n.trek-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .trek-name {\n color: var(--color-primary-app);\n font-size: 32px;\n line-height: 28px;\n font-weight: 600;\n padding: 0px 24px;\n margin: 16px 0px;\n }\n .trek-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-trek-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .sub-container {\n padding: 24px 24px 0px 24px;\n .icons-labels-container {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n .icon-label {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n .icon {\n font-size: 24px;\n width: 24px;\n height: auto;\n color: var(--color-primary-app);\n margin-right: 8px;\n }\n .network {\n &:not(:last-child) {\n margin-right: 16px;\n }\n }\n }\n .practice {\n .icon {\n background-color: var(--color-primary-app);\n }\n }\n .network {\n display: flex;\n align-items: center;\n }\n }\n }\n .row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n }\n .downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n font-family: var(--font-family);\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n }\n .themes-container {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-wrap: wrap;\n padding: 0px 24px 0px 24px;\n .theme {\n background-color: var(--color-secondary-container);\n color: var(--color-on-secondary-container);\n border-radius: var(--border-radius, 40px);\n padding: 8px 16px;\n margin: 0px 8px 8px 0px;\n box-shadow: var(--elevation-0);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n }\n }\n .ambiance,\n .description-teaser,\n .description-container,\n .altimetric-profile-container,\n .access-container,\n .public-transport-container,\n .advice-container,\n .advised-parking-container,\n .sensitive-areas-container,\n .source-container,\n .accessibilities-container,\n .parent-trek-container,\n .weather-container,\n .weblinks-container {\n padding: 0px 24px 0px 24px;\n }\n .ambiance,\n .description-teaser,\n .description-container,\n .altimetric-profile-container,\n .access-container,\n .public-transport-container,\n .advice-container,\n .advised-parking-container,\n .sensitive-areas-container,\n .information-desks-container,\n .pois-container,\n .source-container,\n .accessibilities-container,\n .weather-container,\n .parent-trek-container,\n .step-container,\n .touristic-content-container,\n .touristic-event-container,\n .weblinks-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-teaser {\n font-weight: 600;\n font-size: 22px;\n margin-bottom: 8px;\n }\n .description-title,\n .altimetric-profile-title,\n .access-title,\n .public-transport-title,\n .advice-title,\n .advised-parking-title,\n .sensitive-areas-title,\n .information-desks-title,\n .pois-title,\n .source-title,\n .accessibilities-title,\n .step-title,\n .parent-trek-title,\n .touristic-content-title,\n .touristic-event-title,\n .weblinks-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n }\n\n .access {\n margin-bottom: 16px;\n }\n\n .advised-parking-title {\n font-size: 16px;\n }\n\n .description-title,\n .altimetric-profile-title,\n .access-title,\n .public-transport-title,\n .advice-title,\n .advised-parking-title,\n .sensitive-areas-title,\n .information-desks-title,\n .pois-title,\n .source-title,\n .accessibilities-title,\n .parent-trek-title,\n .touristic-content-title,\n .touristic-event-title,\n .weblinks-title {\n margin-bottom: 16px;\n }\n\n .step-title {\n margin-bottom: 12px;\n }\n\n .information-desks-title,\n .pois-title,\n .step-title,\n .touristic-content-title,\n .touristic-event-title {\n padding: 0px 24px 0px 24px;\n }\n\n .parent-trek-title {\n cursor: pointer;\n user-select: none;\n font-weight: 500;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n box-shadow: var(--elevation-0);\n border: none;\n -webkit-tap-highlight-color: transparent;\n line-height: 20px;\n color: var(--color-primary);\n background-color: transparent;\n div {\n margin-right: 4px;\n }\n }\n\n .accessibility-emergency-number-content {\n a {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: row;\n border-radius: var(--border-radius, 40px);\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n text-decoration: none;\n font-weight: 600;\n width: fit-content;\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n position: relative;\n font-family: var(--font-family);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.description-container {\n .description {\n ol {\n position: relative;\n counter-reset: referencePoint;\n &:before {\n content: '';\n position: absolute;\n width: 4px;\n top: 0px;\n bottom: 0px;\n left: 14px;\n background-color: var(--color-primary-app);\n }\n li {\n position: relative;\n list-style-type: none;\n counter-increment: referencePoint;\n p {\n margin: 0;\n }\n &:not(:first-child) {\n margin-top: 12px;\n }\n }\n li:before {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n content: counter(referencePoint);\n width: 24px;\n height: 24px;\n background: #f04141;\n border-radius: 12px;\n font-weight: bold;\n font-size: 0.8em;\n color: white;\n margin-left: -36px;\n top: calc(50% - 12px);\n }\n }\n }\n}\n\n.current-advice-container,\n.gear-container {\n display: flex;\n padding: 12px;\n border: 2px solid var(--color-outline);\n border-radius: var(--border-radius, 12px);\n font-size: 16px;\n .material-symbols {\n font-size: 24px;\n width: 26px;\n margin-right: 8px;\n }\n margin-bottom: 12px;\n}\n\n.label-container {\n padding: 12px;\n border: 2px solid var(--color-outline);\n border-radius: var(--border-radius, 12px);\n margin-bottom: 12px;\n .label-sub-container {\n display: flex;\n align-items: center;\n img {\n width: 26px;\n margin-right: 16px;\n background-color: var(--color-on-surface);\n }\n .label-name {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 600;\n padding: 12px 0px;\n }\n }\n .label-advice {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n}\n\n.advice-container {\n div:last-child {\n margin-bottom: 0px;\n }\n}\n\n.source-container {\n .source-sub-container {\n display: flex;\n align-items: center;\n img {\n width: 26px;\n margin-right: 16px;\n }\n .source-name {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n padding: 12px 0px;\n }\n }\n}\n.weblinks-container {\n .weblink-container {\n display: flex;\n align-items: center;\n width: fit-content;\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n padding: 12px 0px;\n img {\n width: 26px;\n margin-right: 16px;\n }\n }\n}\n\n.departure-container,\n.arrival-container,\n.cities-container {\n display: flex;\n align-items: center;\n padding: 0px 24px 24px 24px;\n .departure-title,\n .arrival-title,\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n.accessibilities-container {\n div:nth-child(2) {\n div:first-child {\n padding: 0px 0px 12px 0px;\n }\n }\n .accessibilities-content-container {\n padding: 12px 0px 0px 0px;\n display: flex;\n .accessibility-content-container {\n display: flex;\n align-items: center;\n margin: 0px 8px 8px 0px;\n img {\n margin-right: 16px;\n width: 26px;\n }\n }\n }\n .accessibility-level-title,\n .accessibility-slope-title,\n .accessibility-width-title,\n .accessibility-signage-title,\n .accessibility-covering-title,\n .accessibility-exposure-title,\n .accessibility-advice-title,\n .accessibility-emergency-number-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 12px 0px;\n }\n}\n\n.weather-container {\n iframe {\n width: 100%;\n }\n}\n\n.swiper-information-desks,\n.swiper-pois,\n.swiper-step,\n.swiper-touristic-content,\n.swiper-touristic-event {\n padding-right: 32px;\n padding-left: 32px;\n padding-bottom: 20px;\n}\n\n.swiper-step {\n padding-bottom: 4px;\n .swiper-wrapper {\n .swiper-slide {\n counter-increment: stepPoint;\n padding-top: 36px;\n }\n .swiper-slide:first-child:before {\n border-top-left-radius: var(--border-radius, 8px);\n border-bottom-left-radius: var(--border-radius, 8px);\n }\n .swiper-slide:before {\n content: '';\n position: absolute;\n top: 6px;\n height: 12px;\n width: calc(100% + 20px);\n background-color: var(--color-secondary-container);\n }\n .swiper-slide:last-child:before {\n border-top-right-radius: 8px;\n border-bottom-right-radius: 8px;\n width: 100%;\n }\n .swiper-slide:after {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n content: counter(stepPoint);\n width: 24px;\n height: 24px;\n background: var(--color-primary-app);\n border-radius: var(--border-radius, 12px);\n font-weight: bold;\n font-size: 0.8em;\n color: white;\n margin-left: calc(50% - 12px);\n top: 0px;\n }\n }\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.trek-images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.descent .icon {\n transform: rotateX(180deg);\n}\n\n.swiper-horizontal > .swiper-scrollbar,\n.swiper-scrollbar.swiper-scrollbar-horizontal {\n --swiper-scrollbar-sides-offset: 32px;\n}\n\n.swiper-scrollbar-drag {\n background-color: var(--color-primary-app);\n}\n\n.sensitive-areas-description {\n font-size: 16px;\n}\n\n.step-container {\n .swiper-wrapper {\n padding-bottom: 16px;\n }\n}\n\n.trek-image-legend {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.trek-close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n\n.practice {\n .icon {\n border-radius: 100%;\n padding: 2px;\n max-height: 20px;\n max-width: 20px;\n }\n}\n\n.offline-button {\n cursor: pointer;\n font-size: 14px;\n border: none;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n &:hover {\n box-shadow: var(--elevation-2);\n }\n .icon {\n font-size: 16px;\n }\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, Build, Listen, getAssetPath } from '@stencil/core';\nimport Swiper, { Navigation, Pagination, Keyboard, FreeMode, Mousewheel, Scrollbar } from 'swiper';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { Accessibilities, AccessibilityLevel, Difficulty, Labels, Practice, Route, Sources, Themes, Trek, Option, Options, Treks } from 'types/types';\nimport { formatDuration, formatLength, formatAscent, formatDescent, imagesRegExp } from 'utils/utils';\nimport { getAllDataInStore, getDataInStore, writeOrUpdateDataInStore, writeOrUpdateFilesInStore, writeOrUpdateTilesInStore } from 'services/grw-db.service';\nimport { tileLayerOffline } from 'leaflet.offline';\nimport L from 'leaflet';\nimport { getDistricts, getTrek, getTreksList } from 'services/treks.service';\nimport { getTouristicContentsNearTrek } from 'services/touristic-contents.service';\nimport { getTouristicEventsNearTrek } from 'services/touristic-events.service';\n\nconst threshold = 1;\nconst presentation: Option = {\n visible: true,\n indicator: false,\n ref: 'presentationOptionRef',\n};\nconst steps: Option = {\n visible: false,\n indicator: false,\n ref: 'stepsOptionRef',\n};\nconst description: Option = {\n visible: false,\n indicator: false,\n ref: 'descriptionOptionRef',\n};\nconst pois: Option = {\n visible: false,\n indicator: false,\n ref: 'poisOptionRef',\n};\nconst recommendations: Option = {\n visible: false,\n indicator: false,\n ref: 'recommendationsOptionRef',\n};\nconst sensitiveArea: Option = {\n visible: false,\n indicator: false,\n ref: 'sensitiveAreaOptionRef',\n};\nconst informationPlaces: Option = {\n visible: false,\n indicator: false,\n ref: 'informationPlacesOptionRef',\n};\nconst accessibility: Option = {\n visible: false,\n indicator: false,\n ref: 'accessibilityOptionRef',\n};\nconst touristicContents: Option = {\n visible: false,\n indicator: false,\n ref: 'touristicContentsOptionRef',\n};\nconst touristicEvents: Option = {\n visible: false,\n indicator: false,\n ref: 'touristicEventsOptionRef',\n};\nconst options: Options = {\n presentation,\n steps,\n description,\n pois,\n recommendations,\n sensitiveArea,\n informationPlaces,\n accessibility,\n touristicContents,\n touristicEvents,\n};\n\n@Component({\n tag: 'grw-trek-detail',\n styleUrl: 'grw-trek-detail.scss',\n shadow: true,\n})\nexport class GrwTrekDetail {\n swiperImages?: Swiper;\n swiperStep?: Swiper;\n swiperPois?: Swiper;\n swiperInformationDesks?: Swiper;\n swiperTouristicContents?: Swiper;\n swiperTouristicEvents?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n swiperStepRef?: HTMLDivElement;\n swiperPoisRef?: HTMLDivElement;\n swiperInformationDesksRef?: HTMLDivElement;\n swiperTouristicContentsRef?: HTMLDivElement;\n swiperTouristicEventsRef?: HTMLDivElement;\n trekDetailContainerRef?: HTMLElement;\n presentationRef?: HTMLDivElement;\n descriptionRef?: HTMLDivElement;\n parkingRef?: HTMLDivElement;\n recommendationRef?: HTMLDivElement;\n sensitiveAreaRef?: HTMLDivElement;\n informationPlacesRef?: HTMLDivElement;\n poiRef?: HTMLDivElement;\n stepsRef?: HTMLDivElement;\n accessibilityRef?: HTMLDivElement;\n touristicContentsRef?: HTMLDivElement;\n touristicEventsRef?: HTMLDivElement;\n presentationOptionRef?: HTMLAnchorElement;\n stepsOptionRef?: HTMLAnchorElement;\n descriptionOptionRef?: HTMLAnchorElement;\n recommendationsOptionRef?: HTMLAnchorElement;\n accessibilityOptionRef?: HTMLAnchorElement;\n OptionRef?: HTMLAnchorElement;\n sensitiveAreaOptionRef?: HTMLAnchorElement;\n informationPlacesOptionRef?: HTMLAnchorElement;\n poisOptionRef?: HTMLAnchorElement;\n touristicContentsOptionRef?: HTMLAnchorElement;\n touristicEventsOptionRef?: HTMLAnchorElement;\n stepSwiperScrollbar?: HTMLDivElement;\n poisSwiperScrollbar?: HTMLDivElement;\n informationDesksContentsSwiperScrollbar?: HTMLDivElement;\n touristicContentsSwiperScrollbar?: HTMLDivElement;\n touristicEventsSwiperScrollbar?: HTMLDivElement;\n\n presentationObserver: IntersectionObserver;\n stepsObserver: IntersectionObserver;\n descriptionObserver: IntersectionObserver;\n recommendationsObserver: IntersectionObserver;\n parkingObserver: IntersectionObserver;\n sensitiveAreaObserver: IntersectionObserver;\n informationPlacesObserver: IntersectionObserver;\n accessibilityObserve: IntersectionObserver;\n poiObserver: IntersectionObserver;\n accessibilityObserver: IntersectionObserver;\n touristicContentObserver: IntersectionObserver;\n touristicEventObserver: IntersectionObserver;\n\n hasStep?: boolean;\n\n defaultOptions: Options;\n @Event() descriptionIsInViewport: EventEmitter<boolean>;\n @Event() parkingIsInViewport: EventEmitter<boolean>;\n @Event() sensitiveAreaIsInViewport: EventEmitter<boolean>;\n @Event() informationPlacesIsInViewport: EventEmitter<boolean>;\n @Event() poiIsInViewport: EventEmitter<boolean>;\n @Event() stepsIsInViewport: EventEmitter<boolean>;\n @Event() touristicContentsIsInViewport: EventEmitter<boolean>;\n @Event() touristicEventsIsInViewport: EventEmitter<boolean>;\n @Event() parentTrekPress: EventEmitter<number>;\n @State() currentTrek: Trek;\n @State() difficulty: Difficulty;\n @State() route: Route;\n @State() practice: Practice;\n @State() themes: Themes;\n @State() labels: Labels;\n @State() sources: Sources;\n @State() accessibilities: Accessibilities;\n @State() accessibilityLevel: AccessibilityLevel;\n @State() displayFullscreen = false;\n @State() cities: string[];\n @State() options: Options;\n @State() offline = false;\n\n @Prop() trek: Trek;\n @Prop() emergencyNumber: number;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n\n @Prop() weather = false;\n @Prop() isLargeView = false;\n\n @Prop() defaultBackgroundLayerUrl;\n @Prop() defaultBackgroundLayerAttribution;\n\n @Prop() enableOffline = false;\n @Prop() globalTilesMinZoomOffline = 0;\n @Prop() globalTilesMaxZoomOffline = 11;\n @Prop() trekTilesMinZoomOffline = 12;\n @Prop() trekTilesMaxZoomOffline = 16;\n\n @Event() trekDownloadConfirm: EventEmitter<number>;\n @Event() trekDownloadedSuccessConfirm: EventEmitter<number>;\n\n @Event() trekDeleteConfirm: EventEmitter<number>;\n @Event() trekDeleteSuccessConfirm: EventEmitter<number>;\n\n indicatorSelectedTrekOption = { translateX: null, width: null, backgroundSize: null, ref: null };\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.swiperStep = new Swiper(this.swiperStepRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n initialSlide: this.getCurrentStepIndex(),\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.stepSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperPois = new Swiper(this.swiperPoisRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.poisSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperInformationDesks = new Swiper(this.swiperInformationDesksRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.informationDesksContentsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperTouristicContents = new Swiper(this.swiperTouristicContentsRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.touristicContentsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperTouristicEvents = new Swiper(this.swiperTouristicEventsRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.touristicEventsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n if (this.presentationRef) {\n this.presentationObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, presentation: { ...this.defaultOptions.presentation, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.presentationObserver.observe(this.presentationRef);\n }\n if (this.stepsRef) {\n this.stepsObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.stepsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, steps: { ...this.defaultOptions.steps, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.stepsObserver.observe(this.stepsRef);\n }\n if (this.descriptionRef) {\n this.descriptionObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.descriptionIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, description: { ...this.defaultOptions.description, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.descriptionObserver.observe(this.descriptionRef);\n }\n if (this.recommendationRef) {\n this.recommendationsObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, recommendations: { ...this.defaultOptions.recommendations, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.recommendationsObserver.observe(this.recommendationRef);\n }\n if (this.parkingRef) {\n this.parkingObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.parkingIsInViewport.emit(isIntersecting);\n },\n { threshold },\n );\n this.parkingObserver.observe(this.parkingRef);\n }\n\n if (this.sensitiveAreaRef) {\n this.sensitiveAreaObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.sensitiveAreaIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, sensitiveArea: { ...this.defaultOptions.sensitiveArea, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.sensitiveAreaObserver.observe(this.sensitiveAreaRef);\n }\n\n if (this.informationPlacesRef) {\n this.informationPlacesObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.informationPlacesIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, informationPlaces: { ...this.defaultOptions.informationPlaces, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.informationPlacesObserver.observe(this.informationPlacesRef);\n }\n\n if (this.accessibilityRef) {\n this.accessibilityObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, accessibility: { ...this.defaultOptions.accessibility, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.accessibilityObserver.observe(this.accessibilityRef);\n }\n\n if (this.poiRef) {\n this.poiObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.poiIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, pois: { ...this.defaultOptions.pois, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.poiObserver.observe(this.poiRef);\n }\n\n if (this.touristicContentsRef) {\n this.touristicContentObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.touristicContentsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, touristicContents: { ...this.defaultOptions.touristicContents, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.touristicContentObserver.observe(this.touristicContentsRef);\n }\n if (this.touristicEventsRef) {\n this.touristicEventObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.touristicEventsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, touristicEvents: { ...this.defaultOptions.touristicEvents, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.touristicEventObserver.observe(this.touristicContentsRef);\n }\n }\n\n async connectedCallback() {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.offline = this.currentTrek.offline;\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n this.hasStep = this.currentTrek.children.length > 0;\n }\n onChange('currentTrek', async () => {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.offline = this.currentTrek.offline;\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n this.hasStep = this.currentTrek.children.length > 0;\n }\n });\n }\n\n disconnectedCallback() {\n this.presentationObserver && this.presentationObserver.disconnect();\n this.stepsObserver && this.stepsObserver.disconnect();\n this.descriptionObserver && this.descriptionObserver.disconnect();\n this.recommendationsObserver && this.recommendationsObserver.disconnect();\n this.parkingObserver && this.parkingObserver.disconnect();\n this.sensitiveAreaObserver && this.sensitiveAreaObserver.disconnect();\n this.informationPlacesObserver && this.informationPlacesObserver.disconnect();\n this.accessibilityObserver && this.accessibilityObserver.disconnect();\n this.poiObserver && this.poiObserver.disconnect();\n this.accessibilityObserver && this.accessibilityObserver.disconnect();\n this.touristicContentObserver && this.touristicContentObserver.disconnect();\n this.touristicEventObserver && this.touristicEventObserver.disconnect();\n }\n\n handleOptions() {\n return {\n ...options,\n presentation: { ...presentation },\n steps: { ...steps, visible: Boolean(state.parentTrek) },\n description: { ...description, visible: Boolean(this.currentTrek.description) },\n pois: { ...pois, visible: Boolean(state.currentPois && state.currentPois.length > 0) },\n recommendations: { ...recommendations, visible: Boolean(this.currentTrek.advice || (this.labels && this.labels.length > 0)) },\n sensitiveArea: { ...sensitiveArea, visible: Boolean(state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) },\n informationPlaces: {\n ...informationPlaces,\n visible: Boolean(\n state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0,\n ),\n },\n accessibility: {\n ...accessibility,\n visible: Boolean(\n this.currentTrek.disabled_infrastructure ||\n (this.accessibilities && this.accessibilities.length > 0) ||\n this.currentTrek.accessibility_level ||\n this.currentTrek.accessibility_slope ||\n this.currentTrek.accessibility_width ||\n this.currentTrek.accessibility_signage ||\n this.currentTrek.accessibility_covering ||\n this.currentTrek.accessibility_exposure ||\n this.currentTrek.accessibility_advice ||\n this.emergencyNumber,\n ),\n },\n touristicContents: { ...touristicContents, visible: Boolean(state.trekTouristicContents && state.trekTouristicContents.length > 0) },\n touristicEvents: { ...touristicEvents, visible: Boolean(state.trekTouristicEvents && state.trekTouristicEvents.length > 0) },\n };\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n }\n } else {\n (document as any).exitFullscreen();\n }\n }\n\n handleIndicatorSelectedTrekOption() {\n let currentOption: Option;\n let previousVisibleOptions = 0;\n let previousWidthOptions = 0;\n let elementWidth = 0;\n\n const options: Option[] = Object.values(this.options);\n let index = 0;\n while (!currentOption && index < options.length) {\n if (options[index].indicator) {\n currentOption = options[index];\n } else {\n if (options[index].visible) {\n previousVisibleOptions += 1;\n previousWidthOptions += this[options[index].ref].clientWidth;\n }\n }\n index++;\n }\n if (currentOption && this[currentOption.ref]) {\n elementWidth = this[currentOption.ref].clientWidth;\n this.indicatorSelectedTrekOption = {\n translateX: `${previousWidthOptions + 16 * previousVisibleOptions - elementWidth / 2}px`,\n width: `${elementWidth * 2}px`,\n backgroundSize: `${elementWidth}px 100%`,\n ref: currentOption.ref,\n };\n }\n }\n\n handleScrollTo(element: HTMLDivElement) {\n this.trekDetailContainerRef.scrollTo({ top: element.offsetTop - 64 });\n }\n\n getCurrentStepIndex(): number {\n return state.currentTrekSteps ? state.currentTrekSteps.findIndex(step => step.id === this.currentTrek.id) : 0;\n }\n\n async downloadGlobalTiles(url, attribution) {\n const offlineLayer = tileLayerOffline(url, { attribution });\n\n const treksDepartureCoordinates = [];\n\n if (state.treks) {\n for (const trek of state.treks) {\n treksDepartureCoordinates.push(trek.departure_geom);\n }\n }\n\n const bounds = L.latLngBounds(treksDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n\n await writeOrUpdateTilesInStore(offlineLayer, bounds, this.globalTilesMinZoomOffline, this.globalTilesMaxZoomOffline);\n }\n\n async downloadTrekTiles(url, attribution) {\n const offlineLayer = tileLayerOffline(url, { attribution });\n\n const bounds = L.latLngBounds(this.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n\n await writeOrUpdateTilesInStore(offlineLayer, bounds, this.trekTilesMinZoomOffline, this.trekTilesMaxZoomOffline);\n }\n\n async downloadTrek() {\n // download treks list data\n const controller = new AbortController();\n const signal = controller.signal;\n const init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: signal };\n const offlineTreks = (await getAllDataInStore('treks')).filter(trek => trek.offline === true);\n let treks;\n if (!state.treks) {\n const treksList = await getTreksList(\n state.api,\n state.language,\n state.inBboxFromProviders,\n state.citiesFromProviders,\n state.districts,\n state.structuresFromProviders,\n state.themesFromProviders,\n state.portalsFromProviders,\n state.routesFromProviders,\n state.practicesFromProviders,\n init,\n );\n state.treks = (await treksList.json()).results;\n }\n treks = state.treks;\n treks = treks.filter(trek => offlineTreks.findIndex(offlineTrek => offlineTrek.id === trek.id) === -1);\n\n if (!state.districts) {\n const districtsList = await getDistricts(state.api, state.language, init);\n state.districts = (await districtsList.json()).results;\n }\n\n await writeOrUpdateDataInStore('treks', treks);\n await writeOrUpdateDataInStore('districts', state.districts);\n\n // download global tiles\n // await this.downloadGlobalTiles(this.defaultBackgroundLayerUrl, this.defaultBackgroundLayerAttribution);\n\n // download trek tiles\n // await this.downloadTrekTiles(this.defaultBackgroundLayerUrl, this.defaultBackgroundLayerAttribution);\n\n // download global medias\n await writeOrUpdateFilesInStore(state.difficulties, imagesRegExp);\n await writeOrUpdateFilesInStore(state.routes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.practices, imagesRegExp);\n await writeOrUpdateFilesInStore(state.themes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.labels, imagesRegExp);\n await writeOrUpdateFilesInStore(state.districts, imagesRegExp);\n await writeOrUpdateFilesInStore(state.sources, imagesRegExp);\n await writeOrUpdateFilesInStore(state.accessibilities, imagesRegExp);\n await writeOrUpdateFilesInStore(state.poiTypes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.currentInformationDesks, imagesRegExp);\n await writeOrUpdateFilesInStore(state.touristicContentCategories, imagesRegExp);\n await writeOrUpdateFilesInStore(state.touristicEventTypes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.networks, imagesRegExp);\n\n // // download trek images\n await writeOrUpdateFilesInStore(this.currentTrek, imagesRegExp, true);\n\n // // download trek data\n await writeOrUpdateDataInStore('difficulties', state.difficulties);\n await writeOrUpdateDataInStore('routes', state.routes);\n await writeOrUpdateDataInStore(\n 'practices',\n state.practices.map(practice => ({ ...practice, selected: false })),\n );\n await writeOrUpdateDataInStore('themes', state.themes);\n await writeOrUpdateDataInStore('cities', state.cities);\n await writeOrUpdateDataInStore('accessibilities', state.accessibilities);\n await writeOrUpdateDataInStore('ratings', state.ratings);\n await writeOrUpdateDataInStore('ratingsScale', state.ratingsScale);\n await writeOrUpdateDataInStore('sensitiveAreas', state.currentSensitiveAreas);\n await writeOrUpdateDataInStore('labels', state.labels);\n await writeOrUpdateDataInStore('sources', state.sources);\n await writeOrUpdateDataInStore('accessibilitiesLevel', state.accessibilitiesLevel);\n await writeOrUpdateDataInStore('touristicContentCategories', state.touristicContentCategories);\n await writeOrUpdateDataInStore('touristicEvents', state.trekTouristicEvents);\n await writeOrUpdateDataInStore('touristicEventTypes', state.touristicEventTypes);\n await writeOrUpdateDataInStore('networks', state.networks);\n await writeOrUpdateDataInStore('pois', state.currentPois);\n await writeOrUpdateDataInStore('poiTypes', state.poiTypes);\n await writeOrUpdateDataInStore('informationDesks', state.currentInformationDesks);\n\n await writeOrUpdateDataInStore('treks', [{ ...this.currentTrek, offline: true }]);\n\n await writeOrUpdateFilesInStore(state.currentPois, imagesRegExp, true);\n await writeOrUpdateFilesInStore(state.currentInformationDesks, imagesRegExp, true);\n\n // download items data\n await writeOrUpdateFilesInStore(state.trekTouristicContents, imagesRegExp, true);\n state.trekTouristicContents.forEach(trekTouristicContent => {\n trekTouristicContent.offline = true;\n });\n await writeOrUpdateDataInStore('touristicContents', state.trekTouristicContents);\n\n await writeOrUpdateFilesInStore(state.trekTouristicEvents, imagesRegExp, true);\n state.trekTouristicEvents.forEach(trekTouristicEvent => {\n trekTouristicEvent.offline = true;\n });\n await writeOrUpdateDataInStore('touristicEvents', state.trekTouristicEvents);\n\n // download itinerancy\n if (this.currentTrek.children && this.currentTrek.children.length > 0) {\n // fetch and store children treks\n const steps: number[] = [];\n steps.push(...this.currentTrek.children);\n const stepRequests = [];\n const stepsTouristicContentsRequests = [];\n const stepsTouristicEventsRequests = [];\n\n steps.forEach(stepId => {\n stepRequests.push(getTrek(state.api, state.language, stepId, init));\n stepsTouristicContentsRequests.push(getTouristicContentsNearTrek(state.api, state.language, stepId, init));\n stepsTouristicEventsRequests.push(getTouristicEventsNearTrek(state.api, state.language, stepId, init));\n });\n\n const trekSteps: Treks = await Promise.all([...stepRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n const stepsTouristicContentsResponses = await Promise.all([...stepsTouristicContentsRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n const stepsTouristicEventsResponses = await Promise.all([...stepsTouristicEventsRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n for (let index = 0; index < trekSteps.length; index++) {\n trekSteps[index].offline = true;\n await writeOrUpdateDataInStore('treks', [trekSteps[index]]);\n await writeOrUpdateFilesInStore(trekSteps[index], imagesRegExp, true);\n }\n\n for (let index = 0; index < stepsTouristicContentsResponses.length; index++) {\n const stepsTouristicContentsResponse = stepsTouristicContentsResponses[index];\n for (let index = 0; index < stepsTouristicContentsResponse.results.length; index++) {\n stepsTouristicContentsResponse.results[index].offline = true;\n await writeOrUpdateDataInStore('touristicContents', [stepsTouristicContentsResponse.results[index]]);\n await writeOrUpdateFilesInStore(stepsTouristicContentsResponse.results[index], imagesRegExp, true);\n }\n }\n\n for (let index = 0; index < stepsTouristicEventsResponses.length; index++) {\n const stepsTouristicEventsResponse = stepsTouristicEventsResponses[index];\n for (let index = 0; index < stepsTouristicEventsResponse.results.length; index++) {\n stepsTouristicEventsResponse[index].offline = true;\n await writeOrUpdateDataInStore('touristicEvents', [stepsTouristicEventsResponse[index]]);\n await writeOrUpdateFilesInStore(stepsTouristicEventsResponse[index], imagesRegExp, true);\n }\n }\n }\n\n state.treks.find(trek => trek.id === this.currentTrek.id).offline = true;\n if (!state.currentTreks) {\n state.currentTreks = state.treks;\n }\n state.currentTreks.find(trek => trek.id === this.currentTrek.id).offline = true;\n this.swiperImages.slideTo(0);\n this.offline = true;\n this.trekDownloadedSuccessConfirm.emit();\n }\n\n async deleteTrek() {\n const treksInStore: Treks = [];\n const trekInStore = await getDataInStore('treks', this.currentTrek.id);\n this.deleteOfflineTrekProperties(trekInStore);\n treksInStore.push(trekInStore);\n if (this.currentTrek.children.length > 0) {\n for (let index = 0; index < this.currentTrek.children.length; index++) {\n const trekInStore = await getDataInStore('treks', this.currentTrek.children[index]);\n this.deleteOfflineTrekProperties(trekInStore);\n treksInStore.push(trekInStore);\n }\n }\n await writeOrUpdateDataInStore('treks', treksInStore);\n\n if (state.treks) {\n delete state.treks.find(trek => trek.id === this.currentTrek.id).offline;\n\n if (!state.currentTreks) {\n state.currentTreks = state.treks;\n }\n delete state.currentTreks.find(trek => trek.id === this.currentTrek.id).offline;\n }\n\n if (state.parentTrek) {\n delete state.parentTrek.offline;\n }\n\n if (state.currentTrekSteps) {\n state.currentTrekSteps.forEach(currentTrekStep => {\n delete currentTrekStep.offline;\n });\n }\n\n this.offline = false;\n this.trekDeleteSuccessConfirm.emit();\n }\n\n displayTrekDownloadModal() {\n this.trekDownloadConfirm.emit();\n }\n\n displayTrekDeleteModal() {\n this.trekDeleteConfirm.emit();\n }\n\n @Listen('trekDownloadPress', { target: 'window' })\n onTrekDownloadPress() {\n this.downloadTrek();\n }\n\n @Listen('trekDeletePress', { target: 'window' })\n onTrekDeletePress() {\n this.deleteTrek();\n }\n\n deleteOfflineTrekProperties(trekInStore) {\n delete trekInStore.descent;\n delete trekInStore.geometry;\n delete trekInStore.gpx;\n delete trekInStore.kml;\n delete trekInStore.pdf;\n delete trekInStore.parking_location;\n delete trekInStore.arrival;\n delete trekInStore.ambiance;\n delete trekInStore.access;\n delete trekInStore.public_transport;\n delete trekInStore.advice;\n delete trekInStore.advised_parking;\n delete trekInStore.gear;\n delete trekInStore.source;\n delete trekInStore.points_reference;\n delete trekInStore.disabled_infrastructure;\n delete trekInStore.accessibility_level;\n delete trekInStore.accessibility_slope;\n delete trekInStore.accessibility_width;\n delete trekInStore.accessibility_signage;\n delete trekInStore.accessibility_covering;\n delete trekInStore.accessibility_exposure;\n delete trekInStore.accessibility_advice;\n delete trekInStore.ratings;\n delete trekInStore.ratings_description;\n delete trekInStore.children;\n delete trekInStore.networks;\n delete trekInStore.web_links;\n delete trekInStore.update_datetime;\n delete trekInStore.offline;\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\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 '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '244px'\n : '204px',\n }}\n >\n {this.currentTrek && (\n <div part=\"trek-options\" class=\"trek-options\">\n <a\n part=\"trek-option\"\n class={`presentation trek-option${this.indicatorSelectedTrekOption.ref === 'presentationOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.presentationOptionRef = el)}\n onClick={() => this.handleScrollTo(this.presentationRef)}\n >\n {translate[state.language].options.presentation}\n </a>\n {this.options.steps.visible && (\n <a\n part=\"trek-option\"\n class={`steps trek-option${this.options.steps.indicator ? ' selected-trek-option' : ''}`}\n ref={el => (this.stepsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.stepsRef)}\n >\n {translate[state.language].options.steps}\n </a>\n )}\n {this.options.description.visible && (\n <a\n part=\"trek-option\"\n class={`description trek-option${this.indicatorSelectedTrekOption.ref === 'descriptionOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.descriptionOptionRef = el)}\n onClick={() => this.handleScrollTo(this.descriptionRef)}\n >\n {translate[state.language].options.description}\n </a>\n )}\n {this.options.pois.visible && (\n <a\n part=\"trek-option\"\n class={`pois trek-option${this.indicatorSelectedTrekOption.ref === 'poisOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.poisOptionRef = el)}\n onClick={() => this.handleScrollTo(this.poiRef)}\n >\n {translate[state.language].options.pois}\n </a>\n )}\n {this.options.recommendations.visible && (\n <a\n part=\"trek-option\"\n class={`recommendations trek-option${this.indicatorSelectedTrekOption.ref === 'recommendationsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.recommendationsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.recommendationRef)}\n >\n {translate[state.language].options.recommendations}\n </a>\n )}\n {this.options.sensitiveArea.visible && (\n <a\n part=\"trek-option\"\n class={`sensitive-areas trek-option${this.indicatorSelectedTrekOption.ref === 'sensitiveAreaOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.sensitiveAreaOptionRef = el)}\n onClick={() => this.handleScrollTo(this.sensitiveAreaRef)}\n >\n {translate[state.language].options.environmentalSensitiveAreas}\n </a>\n )}\n {this.options.informationPlaces.visible && (\n <a\n part=\"trek-option\"\n class={`information-places trek-option${this.indicatorSelectedTrekOption.ref === 'informationPlacesOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.informationPlacesOptionRef = el)}\n onClick={() => this.handleScrollTo(this.informationPlacesRef)}\n >\n {translate[state.language].options.informationPlaces}\n </a>\n )}\n {this.options.accessibility.visible && (\n <a\n part=\"trek-option\"\n class={`accessibility trek-option${this.indicatorSelectedTrekOption.ref === 'accessibilityOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.accessibilityOptionRef = el)}\n onClick={() => this.handleScrollTo(this.accessibilityRef)}\n >\n {translate[state.language].options.accessibility}\n </a>\n )}\n {this.options.touristicContents.visible && (\n <a\n part=\"trek-option\"\n class={`touristic-content trek-option${this.indicatorSelectedTrekOption.ref === 'touristicContentsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.touristicContentsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.touristicContentsRef)}\n >\n {translate[state.language].options.touristicContents}\n </a>\n )}\n {this.options.touristicEvents.visible && (\n <a\n part=\"trek-option\"\n class={`touristic-event trek-option${this.indicatorSelectedTrekOption.ref === 'touristicEventsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.touristicEventsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.touristicEventsRef)}\n >\n {translate[state.language].options.touristicEvents}\n </a>\n )}\n {this.presentationOptionRef && (\n <span\n part=\"trek-indicator-selected-trek-option\"\n class=\"trek-indicator-selected-trek-option\"\n style={{\n transform: `translateX(${this.indicatorSelectedTrekOption.translateX})`,\n width: this.indicatorSelectedTrekOption.width,\n backgroundSize: this.indicatorSelectedTrekOption.backgroundSize,\n }}\n ></span>\n )}\n </div>\n )}\n {this.currentTrek && (\n <div part=\"trek-detail-container\" class=\"trek-detail-container\" ref={el => (this.trekDetailContainerRef = el)}>\n <div part=\"trek-images\" class=\"trek-images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {this.currentTrek.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n this.currentTrek.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"trek-close-fullscreen-button\" class=\"trek-close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"trek-close-fullcreen-icon\" class=\"trek-close-fullcreen-icon material-symbols material-symbols-outlined\" translate={false}>\n close\n </span>\n </div>\n )}\n <div part=\"trek-image-legend\" class=\"trek-image-legend\">\n {legend}\n </div>\n <img\n part=\"trek-img\"\n class=\"trek-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n /* @ts-ignore */\n onerror={event => {\n event.target.onerror = null;\n event.target.className = 'trek-img default-trek-img';\n event.target.src = defaultImageSrc;\n }}\n />\n </div>\n );\n })\n ) : (\n <img\n part=\"trek-img\"\n class=\"trek-img default-trek-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }}>\n <div part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n </div>\n <div part=\"trek-name\" class=\"trek-name\">\n {this.currentTrek.name}\n </div>\n {this.themes.length > 0 && (\n <div part=\"themes-container\" class=\"themes-container\">\n {this.themes.map(theme => (\n <div part=\"theme\" class=\"theme\">\n {theme.label}\n </div>\n ))}\n </div>\n )}\n <div part=\"sub-container\" class=\"sub-container\">\n <div part=\"icons-labels-container\" class=\"icons-labels-container\">\n {this.difficulty && (\n <div part=\"icon-label\" class=\"icon-label difficulty\">\n {this.difficulty.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.difficulty.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.difficulty.label}\n </span>\n </div>\n )}\n <div part=\"icon-label\" class=\"icon-label duration\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n timelapse\n </span>\n <span part=\"label\" class=\"label\">\n {formatDuration(this.currentTrek?.duration)}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label route\">\n {this.route?.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.route.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.route?.route}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label length\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n open_in_full\n </span>\n <span part=\"label\" class=\"label\">\n {formatLength(this.currentTrek.length_2d)}\n </span>\n </div>\n {this.currentTrek.ascent && (\n <div part=\"icon-label\" class=\"icon-label ascent\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n moving\n </span>\n <span part=\"label\" class=\"label\">\n {formatAscent(this.currentTrek.ascent)}\n </span>\n </div>\n )}\n {this.currentTrek.descent && (\n <div part=\"icon-label\" class=\"icon-label descent\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n moving\n </span>\n <span part=\"label\" class=\"label\">\n {formatDescent(this.currentTrek.descent)}\n </span>\n </div>\n )}\n <div part=\"icon-label\" class=\"icon-label practice\">\n {this.practice?.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.practice.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.practice?.name}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label networks\">\n {this.currentTrek.networks.map(networkId => {\n const currentNetwork = state.networks.find(network => network.id === networkId);\n return (\n <div part=\"network\" class=\"network\">\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={currentNetwork.pictogram}\n />\n <span part=\"label\" class=\"label\">\n {currentNetwork.label}\n </span>\n </div>\n );\n })}\n </div>\n {this.currentTrek.ratings.map(trekRating => (\n <div part=\"row\" class=\"row\">\n {`${state.ratingsScale.find(ratingScale => ratingScale.id === state.ratings.find(rating => rating.id === trekRating).scale).name} : ${\n state.ratings.find(rating => rating.id === trekRating).name\n }`}\n </div>\n ))}\n {this.currentTrek.ratings_description && this.currentTrek.ratings_description !== '' && (\n <div part=\"row\" class=\"row\" innerHTML={this.currentTrek.ratings_description}></div>\n )}\n </div>\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].downloads}\n </div>\n {this.enableOffline && !this.offline && (\n <button part=\"offline-button\" class=\"offline-button\" onClick={() => this.displayTrekDownloadModal()}>\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download_for_offline\n </span>\n <span part=\"label\" class=\"label\">\n RENDRE DISPONIBLE HORS LIGNE\n </span>\n </button>\n )}\n {this.enableOffline && this.offline && (\n <button part=\"offline-button\" class=\"offline-button\" onClick={() => this.displayTrekDeleteModal()}>\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n delete\n </span>\n <span part=\"label\" class=\"label\">\n SUPPRIMER DU HORS LIGNE\n </span>\n </button>\n )}\n <div part=\"links-container\" class=\"links-container\">\n <a href={`${this.currentTrek.gpx}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n GPX\n </span>\n </a>\n <a href={`${this.currentTrek.kml}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n KML\n </span>\n </a>\n <a href={`${this.currentTrek.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n PDF\n </span>\n </a>\n </div>\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n {this.currentTrek.description_teaser && <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={this.currentTrek.description_teaser}></div>}\n {this.currentTrek.ambiance && <div part=\"ambiance\" class=\"ambiance\" innerHTML={this.currentTrek.ambiance}></div>}\n {state.parentTrekId && state.parentTrek && this.currentTrek.id !== state.parentTrekId && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"parent-trek-container\" class=\"parent-trek-container\">\n <button part=\"parent-trek-title\" class=\"parent-trek-title\" onClick={() => this.parentTrekPress.emit(state.parentTrekId)}>\n <div><</div>\n {state.parentTrek.name}\n </button>\n </div>\n </div>\n )}\n {state.currentTrekSteps && (\n <div part=\"step-container\" class=\"step-container\">\n <div part=\"step-title\" class=\"step-title\" ref={el => (this.stepsRef = el)}>{`${state.currentTrekSteps.length} ${translate[state.language].steps}`}</div>\n <div part=\"swiper-step\" class=\"swiper swiper-step\" ref={el => (this.swiperStepRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTrekSteps &&\n state.currentTrekSteps.map(trek => {\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-trek-card\n exportparts=\"trek-card,trek-img-container,trek-img,trek-sub-container,trek-departure,trek-name,trek-themes-container,trek-theme,trek-icons-labels-container,trek-icon-label,trek-icon,trek-label\"\n key={`trek-${trek.id}`}\n trek={trek}\n is-large-view={false}\n is-step={true}\n fontFamily={this.fontFamily}\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-trek-card>\n </div>\n );\n })}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.stepSwiperScrollbar = el)}></div>\n </div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {this.currentTrek.description && (\n <div part=\"description-container\" class=\"description-container\">\n <div part=\"description-title\" class=\"description-title\" ref={el => (this.descriptionRef = el)}>\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={this.currentTrek.description}></div>\n </div>\n )}\n {this.currentTrek.departure && (\n <div part=\"departure-container\" class=\"departure-container\">\n <div part=\"departure-title\" class=\"departure-title\">\n {translate[state.language].departure} : \n </div>\n <div part=\"departure\" innerHTML={this.currentTrek.departure}></div>\n </div>\n )}\n {this.currentTrek.arrival && (\n <div part=\"arrival-container\" class=\"arrival-container\">\n <div part=\"arrival-title\" class=\"arrival-title\">\n {translate[state.language].arrival} : \n </div>\n <div part=\"arrival\" innerHTML={this.currentTrek.arrival}></div>\n </div>\n )}\n {this.currentTrek.cities && this.currentTrek.cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].crossedCities} : \n </div>\n <div part=\"cities\" innerHTML={this.cities.join(', ')}></div>\n </div>\n )}\n {state.currentPois && state.currentPois.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"pois-container\" class=\"pois-container\">\n <div part=\"pois-title\" class=\"pois-title\" ref={el => (this.poiRef = el)}>\n {translate[state.language].pois(state.currentPois.length)}\n </div>\n <div part=\"swiper-pois\" class=\"swiper swiper-pois\" ref={el => (this.swiperPoisRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentPois.map(poi => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-poi\n exportparts=\"poi-type-img-container,poi-type,swiper-poi,swiper-wrapper,swiper-slide,poi-img,default-poi-img,swiper-pagination,swiper-button-prev,swiper-button-next,poi-sub-container,poi-name,poi-description,handle-poi-description\"\n poi={poi}\n ></grw-poi>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.poisSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {this.weather && this.currentTrek.departure_city && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"weather-container\" class=\"weather-container\">\n <iframe height=\"150\" frameborder=\"0\" src={`https://meteofrance.com/widget/prevision/${this.currentTrek.departure_city}0#${this.colorPrimaryApp}`}></iframe>\n </div>\n </div>\n )}\n {this.currentTrek.access && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"access-container\" class=\"access-container\">\n <div part=\"access-title\" class=\"access-title\">\n {translate[state.language].roadAccessAndParking}\n </div>\n <div part=\"access\" class=\"access\" innerHTML={this.currentTrek.access}></div>\n {this.currentTrek.advised_parking && (\n <div>\n <div part=\"advised-parking-title\" class=\"advised-parking-title\" ref={el => (this.parkingRef = el)}>\n {translate[state.language].recommendedParking}\n </div>\n <div part=\"advised-parking\" class=\"advised-parking\" innerHTML={this.currentTrek.advised_parking}></div>\n </div>\n )}\n </div>\n </div>\n )}\n {this.currentTrek.public_transport && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"public-transport-container\" class=\"public-transport-container\">\n <div part=\"public-transport-title\" class=\"public-transport-title\">\n {translate[state.language].transport}\n </div>\n <div part=\"public-transport\" class=\"public-transport\" innerHTML={this.currentTrek.public_transport}></div>\n </div>\n </div>\n )}\n {(this.currentTrek.advice || this.currentTrek.gear || this.labels.length > 0) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"advice-container\" class=\"advice-container\">\n <div part=\"advice-title\" class=\"advice-title\" ref={el => (this.recommendationRef = el)}>\n {translate[state.language].recommendations}\n </div>\n {this.currentTrek.advice && (\n <div part=\"current-advice-container\" class=\"current-advice-container\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n warning\n </span>\n <div part=\"advice\" class=\"advice\" innerHTML={this.currentTrek.advice}></div>\n </div>\n )}\n {this.currentTrek.gear && (\n <div part=\"gear-container\" class=\"gear-container\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n backpack\n </span>\n <div part=\"gear\" class=\"gear\" innerHTML={this.currentTrek.gear}></div>\n </div>\n )}\n {this.labels.map(label => (\n <div part=\"label-container\" class=\"label-container\">\n <div part=\"label-sub-container\" class=\"label-sub-container\">\n {label.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={label.pictogram}\n />\n )}\n <div part=\"label-name\" class=\"label-name\" innerHTML={label.name}></div>\n </div>\n <div part=\"label-advice\" class=\"label-advice\" innerHTML={label.advice}></div>\n </div>\n ))}\n </div>\n </div>\n )}\n {state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"sensitive-areas-container\" class=\"sensitive-areas-container\">\n <div part=\"ensitive-areas-title\" class=\"sensitive-areas-title\" ref={el => (this.sensitiveAreaRef = el)}>\n {translate[state.language].environmentalSensitiveAreas}\n </div>\n <div part=\"sensitive-areas-description\" class=\"sensitive-areas-description\">\n {translate[state.language].sensitiveAreasDescription}\n </div>\n {state.currentSensitiveAreas.map(sensitiveArea => (\n <grw-sensitive-area-detail\n exportparts=\"sensitive-area-title-container,sensitive-area-color-container,sensitive-area-title,sensitive-area-description,sensitive-area-practice-container,sensitive-area-practice-title,sensitive-area-practices,sensitive-area-practice,sensitive-area-period-container,sensitive-area-period-title,sensitive-area-periods,sensitive-area-period,sensitive-area-contact-container,sensitive-area-contact-title,sensitive-area-contact-value\"\n sensitiveArea={sensitiveArea}\n ></grw-sensitive-area-detail>\n ))}\n </div>\n </div>\n )}\n {state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"information-desks-container\" class=\"information-desks-container\">\n <div part=\"information-desks-title\" class=\"information-desks-title\" ref={el => (this.informationPlacesRef = el)}>\n {translate[state.language].informationPlaces}\n </div>\n <div part=\"swiper-information-desks\" class=\"swiper swiper-information-desks\" ref={el => (this.swiperInformationDesksRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentInformationDesks\n .filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id))\n .map(informationDesk => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-information-desk\n exportparts=\"information-desk-img-container,information-desk-img,information-desk-sub-container,information-desk-name,center-on-map-button,icon,label,information-desk-informations,phone-container,mail-container,link-container,information-desk-description-container,information-desk-description,handle-information-desk-description\"\n informationDesk={informationDesk}\n ></grw-information-desk>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.informationDesksContentsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {(this.currentTrek.disabled_infrastructure ||\n (this.accessibilities && this.accessibilities.length > 0) ||\n this.currentTrek.accessibility_level ||\n this.currentTrek.accessibility_slope ||\n this.currentTrek.accessibility_width ||\n this.currentTrek.accessibility_signage ||\n this.currentTrek.accessibility_covering ||\n this.currentTrek.accessibility_exposure ||\n this.currentTrek.accessibility_advice ||\n this.emergencyNumber) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"accessibilities-container\" class=\"accessibilities-container\">\n <div part=\"accessibilities-title\" class=\"accessibilities-title\" ref={el => (this.accessibilityRef = el)}>\n {translate[state.language].accessibility}\n </div>\n {this.currentTrek.disabled_infrastructure && <div part=\"disabled-infrastructure\" innerHTML={this.currentTrek.disabled_infrastructure}></div>}\n {this.accessibilities && this.accessibilities.length > 0 && (\n <div part=\"accessibilities-content-container\" class=\"accessibilities-content-container\">\n {this.accessibilities.map(accessibility => (\n <div part=\"accessibility-content-container\" class=\"accessibility-content-container\">\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={accessibility.pictogram}\n ></img>\n <div part=\"accessibility-name\" innerHTML={accessibility.name}></div>\n </div>\n ))}\n </div>\n )}\n {this.emergencyNumber && (\n <div part=\"accessibility-emergency-number-container\" class=\"accessibility-emergency-number-container\">\n <div part=\"accessibility-emergency-number-title\" class=\"accessibility-emergency-number-title\">\n {translate[state.language].emergencyNumber}\n </div>\n <div part=\"accessibility-emergency-number-content\" class=\"accessibility-emergency-number-content\">\n {\n <a href={`tel:${this.emergencyNumber.toString()}`}>\n <span\n part=\"icon\"\n class=\"material-symbols material-symbols-outlined icon\"\n /* @ts-ignore */\n translate={false}\n >\n call\n </span>\n <span part=\"emergency-number\" class=\"emergency-number\">\n {this.emergencyNumber.toString()}\n </span>\n </a>\n }\n </div>\n </div>\n )}\n {this.currentTrek.accessibility_level && (\n <div part=\"accessibility-level-container\" class=\"accessibility-level-container\">\n <div part=\"accessibility-level-title\" class=\"accessibility-level-title\">\n {translate[state.language].accessibilityLevel}\n </div>\n <div part=\"accessibility-level-name\" innerHTML={this.accessibilityLevel.name}></div>\n </div>\n )}\n {this.currentTrek.accessibility_slope && (\n <div part=\"accessibility-slope-container\" class=\"accessibility-slope-container\">\n <div part=\"accessibility-slope-title\" class=\"accessibility-slope-title\">\n {translate[state.language].accessibilitySlope}\n </div>\n <div part=\"accessibility-slope\" innerHTML={this.currentTrek.accessibility_slope}></div>\n </div>\n )}\n {this.currentTrek.accessibility_width && (\n <div part=\"accessibility-width-container\" class=\"accessibility-width-container\">\n <div part=\"accessibility-width-title\" class=\"accessibility-width-title\">\n {translate[state.language].accessibilityWidth}\n </div>\n <div part=\"accessibility-width\" innerHTML={this.currentTrek.accessibility_width}></div>\n </div>\n )}\n {this.currentTrek.accessibility_signage && (\n <div part=\"accessibility-signage-container\" class=\"accessibility-signage-container\">\n <div part=\"accessibility-signage-title\" class=\"accessibility-signage-title\">\n {translate[state.language].accessibilitySignage}\n </div>\n <div part=\"accessibility-signage\" innerHTML={this.currentTrek.accessibility_signage}></div>\n </div>\n )}\n {this.currentTrek.accessibility_covering && (\n <div part=\"accessibility-covering-container\" class=\"accessibility-covering-container\">\n <div part=\"accessibility-covering-title\" class=\"accessibility-covering-title\">\n {translate[state.language].accessibilityCovering}\n </div>\n <div part=\"accessibility-covering\" innerHTML={this.currentTrek.accessibility_covering}></div>\n </div>\n )}\n {this.currentTrek.accessibility_exposure && (\n <div part=\"accessibility-exposure-container\" class=\"accessibility-exposure-container\">\n <div part=\"accessibility-exposure-title\" class=\"accessibility-exposure-title\">\n {translate[state.language].accessibilityExposure}\n </div>\n <div part=\"accessibility-exposure\" innerHTML={this.currentTrek.accessibility_exposure}></div>\n </div>\n )}\n {this.currentTrek.accessibility_advice && (\n <div part=\"accessibility-advice-container\" class=\"accessibility-advice-container\">\n <div part=\"accessibility-advice-title\" class=\"accessibility-advice-title\">\n {translate[state.language].accessibilityAdvices}\n </div>\n <div part=\"accessibility-advice\" innerHTML={this.currentTrek.accessibility_advice}></div>\n </div>\n )}\n </div>\n </div>\n )}\n {state.trekTouristicContents && state.trekTouristicContents.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"touristic-content-container\" class=\"touristic-content-container\">\n <div part=\"touristic-content-title\" class=\"touristic-content-title\" ref={el => (this.touristicContentsRef = el)}>\n {translate[state.language].touristicContents(state.trekTouristicContents.length)}\n </div>\n <div part=\"swiper-touristic-content\" class=\"swiper swiper-touristic-content\" ref={el => (this.swiperTouristicContentsRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.trekTouristicContents.map(touristicContent => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-touristic-content-card\n exportparts=\"touristic-content-card,touristic-content-img-container,swiper-touristic-content,swiper-wrapper,swiper-slide,touristic-content-img,default-touristic-content-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-content-sub-container,touristic-content-category-container,touristic-content-category-img,touristic-content-category-name,touristic-content-name,touristic-content-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n touristicContent={touristicContent}\n isInsideHorizontalList={true}\n ></grw-touristic-content-card>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.touristicContentsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {state.trekTouristicEvents && state.trekTouristicEvents.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"touristic-event-container\" class=\"touristic-event-container\">\n <div part=\"touristic-event-title\" class=\"touristic-event-title\" ref={el => (this.touristicEventsRef = el)}>\n {translate[state.language].touristicEvents(state.trekTouristicEvents.length)}\n </div>\n <div part=\"swiper-touristic-event\" class=\"swiper swiper-touristic-event\" ref={el => (this.swiperTouristicEventsRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.trekTouristicEvents.map(touristicEvent => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-touristic-event-card\n exportparts=\"touristic-event-card,touristic-event-img-container,swiper-touristic-event,swiper-wrapper,swiper-slide,touristic-event-img,default-touristic-event-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-event-sub-container,touristic-event-sub-container,touristic-event-type-img,touristic-event-type-name,touristic-event-name,touristic-event-date-container,touristic-event-date,touristic-event-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n touristicEvent={touristicEvent}\n ></grw-touristic-event-card>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.touristicEventsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {this.currentTrek.web_links && this.currentTrek.web_links.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"weblinks-container\" class=\"weblinks-container\">\n <div part=\"weblinks-title\" class=\"weblinks-title\">\n {translate[state.language].learnMore}\n </div>\n {this.currentTrek.web_links.map(weblink => (\n <a part=\"weblink-container\" class=\"weblink-container\" href={weblink.url} target=\"_blank\" rel=\"noopener noreferrer\">\n {weblink.category && weblink.category.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={weblink.category.pictogram}\n />\n )}\n {weblink.name}\n </a>\n ))}\n </div>\n </div>\n )}\n {this.currentTrek.source && this.currentTrek.source.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"source-container\" class=\"source-container\">\n <div part=\"source-title\" class=\"source-title\">\n {translate[state.language].sources}\n </div>\n {this.sources.map(source => (\n <div part=\"source-sub-container\" class=\"source-sub-container\">\n {source.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={source.pictogram}\n />\n )}\n <div>\n <div part=\"source-name\" class=\"source-name\" innerHTML={source.name}></div>\n <a part=\"source-advice\" class=\"source-advice\" href={source.website} innerHTML={source.website}></a>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicContentsNearTrek } from 'services/touristic-contents.service';\nimport { getTouristicEventsNearTrek } from 'services/touristic-events.service';\nimport { getTrek } from 'services/treks.service';\nimport state from 'store/store';\nimport { Trek } from 'types/types';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-trek-provider',\n shadow: true,\n})\nexport class GrwTrekProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() trekId: number;\n\n @Prop() portals: string;\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() routes: string;\n @Prop() practices: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n\n state.portalsFromProviders = this.portals;\n state.inBboxFromProviders = this.inBbox;\n state.citiesFromProviders = this.cities;\n state.districtsFromProviders = this.districts;\n state.structuresFromProviders = this.structures;\n state.themesFromProviders = this.themes;\n state.routesFromProviders = this.routes;\n state.practicesFromProviders = this.practices;\n\n this.handleTrek();\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n async handleTrek() {\n const trekInStore: Trek = await getDataInStore('treks', this.trekId);\n if (trekInStore && trekInStore.offline) {\n this.handleOfflineTrek(trekInStore);\n } else {\n this.handleOnlineTrek();\n }\n }\n\n async handleOfflineTrek(trek: Trek) {\n if ((trek && trek.children.length > 0) || state.parentTrekId) {\n const steps: number[] = [];\n if (trek.children.length > 0) {\n state.parentTrekId = trek.id;\n state.parentTrek = trek;\n steps.push(...trek.children);\n } else {\n const parentTrek = await getDataInStore('treks', state.parentTrekId);\n state.parentTrek = parentTrek;\n steps.push(...parentTrek.children);\n }\n const stepRequests = [];\n steps.forEach(stepId => {\n stepRequests.push(getDataInStore('treks', stepId));\n });\n state.currentTrekSteps = await Promise.all([...stepRequests]).then(responses => responses);\n }\n\n if (!state.difficulties) {\n const difficulties = await getAllDataInStore('difficulties');\n setFilesFromStore(difficulties, imagesRegExp);\n state.difficulties = difficulties;\n }\n if (!state.routes) {\n state.routes = await getAllDataInStore('routes');\n }\n if (!state.practices) {\n state.practices = await getAllDataInStore('practices');\n }\n if (!state.themes) {\n state.themes = await getAllDataInStore('themes');\n }\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.accessibilities) {\n state.accessibilities = await getAllDataInStore('accessibilities');\n }\n if (!state.ratings) {\n state.ratings = await getAllDataInStore('ratings');\n }\n if (!state.ratingsScale) {\n state.ratingsScale = await getAllDataInStore('ratingsScale');\n }\n if (!state.currentSensitiveAreas) {\n // filter trek items\n state.currentSensitiveAreas = await getAllDataInStore('sensitiveAreas');\n }\n if (!state.labels) {\n state.labels = await getAllDataInStore('labels');\n }\n if (!state.sources) {\n state.sources = await getAllDataInStore('sources');\n }\n if (!state.accessibilitiesLevel) {\n state.accessibilitiesLevel = await getAllDataInStore('accessibilitiesLevel');\n }\n if (!state.trekTouristicContents) {\n // filter trek items\n const touristicContents = await getAllDataInStore('touristicContents');\n setFilesFromStore(touristicContents, imagesRegExp);\n state.trekTouristicContents = touristicContents;\n }\n if (!state.touristicContentCategories) {\n state.touristicContentCategories = await getAllDataInStore('touristicContentCategories');\n }\n if (!state.trekTouristicEvents) {\n // filter trek items\n state.trekTouristicEvents = await getAllDataInStore('touristicEvents');\n }\n if (!state.touristicEventTypes) {\n state.touristicEventTypes = await getAllDataInStore('touristicEventTypes');\n }\n if (!state.networks) {\n state.networks = await getAllDataInStore('networks');\n }\n if (!state.currentPois) {\n // filter trek items\n const pois = await getAllDataInStore('pois');\n setFilesFromStore(pois, imagesRegExp);\n state.currentPois = pois;\n }\n\n if (!state.poiTypes) {\n state.poiTypes = await getAllDataInStore('poiTypes');\n }\n if (!state.currentInformationDesks) {\n // filter trek items\n state.currentInformationDesks = await getAllDataInStore('informationDesks');\n }\n\n // handle images\n setFilesFromStore(trek, imagesRegExp);\n state.currentTrek = trek;\n }\n\n handleOnlineTrek() {\n const requests = [];\n requests.push(\n !state.difficulties\n ? fetch(`${state.api}trek_difficulty/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.routes\n ? fetch(`${state.api}trek_route/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,route,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.practices\n ? fetch(`${state.api}trek_practice/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.themes\n ? fetch(`${state.api}theme/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.accessibilities\n ? fetch(`${state.api}trek_accessibility/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.ratings\n ? fetch(`${state.api}trek_rating/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,scale`, this.init)\n : new Response('null'),\n );\n requests.push(!state.ratings ? fetch(`${state.api}trek_ratingscale/?language=${state.language}&fields=id,name`, this.init) : new Response('null'));\n\n try {\n Promise.all([\n ...requests,\n fetch(\n `${this.api}sensitivearea/?language=${state.language}&published=true&trek=${this.trekId}&period=ignore&fields=id,geometry,name,description,contact,info_url,period,practices`,\n this.init,\n )\n .then(response => {\n if (response.ok) {\n return response;\n } else {\n throw new Error('Sentive area error');\n }\n })\n .catch(() => {\n return new Response('null');\n }),\n fetch(`${state.api}label/?language=${state.language}&fields=id,name,advice,pictogram`, this.init),\n fetch(`${state.api}source/?language=${state.language}&fields=id,name,website,pictogram`, this.init),\n fetch(`${state.api}trek_accessibility_level/?language=${state.language}&fields=id,name`, this.init).catch(() => new Response('null')),\n fetch(`${state.api}poi/?language=${state.language}&trek=${this.trekId}&published=true&fields=id,name,description,attachments,type,geometry&page_size=999`, this.init),\n fetch(`${state.api}poi_type/?language=${state.language}&fields=id,pictogram`, this.init),\n fetch(\n `${state.api}informationdesk/?language=${state.language}&fields=id,name,description,type,phone,email,website,municipality,postal_code,street,photo_url,latitude,longitude&page_size=999`,\n this.init,\n ),\n getTouristicContentsNearTrek(state.api, state.language, this.trekId, this.init),\n fetch(`${state.api}touristiccontent_category/?language=${state.language}&published=true&fields=id,label,pictogram&page_size=999`, this.init),\n getTouristicEventsNearTrek(state.api, state.language, this.trekId, this.init),\n fetch(`${state.api}touristicevent_type/?language=${state.language}&published=true&fields=id,type,pictogram&page_size=999`, this.init),\n fetch(`${state.api}trek_network/?language=${state.language}&published=true&fields=id,label,pictogram&page_size=999`, this.init),\n getTrek(state.api, state.language, this.trekId, this.init),\n ])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(\n async ([\n difficulties,\n routes,\n practices,\n themes,\n cities,\n accessibilities,\n ratings,\n ratingsScale,\n sensitiveAreas,\n labels,\n sources,\n accessibilitiesLevel,\n pois,\n poiTypes,\n informationDesks,\n touristicContent,\n touristicContentCategory,\n touristicEvent,\n touristicEventType,\n networks,\n trek,\n ]) => {\n state.networkError = false;\n if ((trek && trek.children.length > 0) || state.parentTrekId) {\n const steps: number[] = [];\n if (trek.children.length > 0) {\n state.parentTrekId = trek.id;\n state.parentTrek = trek;\n steps.push(...trek.children);\n } else {\n const parentTrek = await fetch(`${state.api}trek/${state.parentTrekId}/?language=${state.language}&published=true&fields=name,children`).then(response =>\n response.json(),\n );\n state.parentTrek = parentTrek;\n steps.push(...parentTrek.children);\n }\n const stepRequests = [];\n steps.forEach(stepId => {\n stepRequests.push(getTrek(state.api, state.language, stepId, this.init));\n });\n state.currentTrekSteps = await Promise.all([...stepRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n }\n\n if (difficulties) {\n state.difficulties = difficulties.results;\n }\n if (routes) {\n state.routes = routes.results;\n }\n if (practices) {\n state.practices = practices.results.map(practice => ({ ...practice, selected: false }));\n }\n if (themes) {\n state.themes = themes.results;\n }\n if (cities) {\n state.cities = cities.results;\n }\n if (accessibilities) {\n state.accessibilities = accessibilities.results;\n }\n if (ratings) {\n state.ratings = ratings.results;\n }\n if (ratingsScale) {\n state.ratingsScale = ratingsScale.results;\n }\n if (sensitiveAreas) {\n state.currentSensitiveAreas = sensitiveAreas.results;\n }\n if (labels) {\n state.labels = labels.results;\n }\n if (sources) {\n state.sources = sources.results;\n }\n if (accessibilitiesLevel) {\n state.accessibilitiesLevel = accessibilitiesLevel.results;\n }\n if (touristicContent) {\n state.trekTouristicContents = touristicContent.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n if (touristicEvent) {\n state.trekTouristicEvents = touristicEvent.results;\n }\n if (touristicEventType) {\n state.touristicEventTypes = touristicEventType.results;\n }\n if (networks) {\n state.networks = networks.results;\n }\n if (pois) {\n state.currentPois = pois.results;\n }\n if (poiTypes) {\n state.poiTypes = poiTypes.results;\n }\n if (informationDesks) {\n state.currentInformationDesks = informationDesks.results;\n }\n if (trek) {\n state.currentTrek = trek;\n }\n },\n );\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-trek-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-treks-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.treks-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { Treks } from 'types/types';\n\n@Component({\n tag: 'grw-treks-list',\n styleUrl: 'grw-treks-list.scss',\n shadow: true,\n})\nexport class GrwTreksList {\n @Element() element: HTMLElement;\n @State() treksToDisplay: Treks = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() displayOnlyOfflineTreks = false;\n @Prop() isLargeView = false;\n\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTreks) {\n this.treksToDisplay = [...state.currentTreks.slice(0, this.step)];\n }\n onChange('currentTreks', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTreks) {\n this.treksToDisplay = [...state.currentTreks.slice(0, this.step)];\n }\n });\n onChange('treksWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.treksWithinBounds) {\n this.treksToDisplay = [...state.treksWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.treksToDisplay.length < state.treksWithinBounds.length) {\n this.treksToDisplay = state.treksWithinBounds.slice(\n 0,\n this.treksToDisplay.length + this.step >= state.treksWithinBounds.length ? state.treksWithinBounds.length : this.treksToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.treksWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" 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 <div part=\"treks-list-container\" class=\"treks-list-container\">\n {this.treksToDisplay.map(trek => (\n <grw-trek-card\n exportparts=\"trek-card,trek-img-container,trek-img,trek-sub-container,trek-departure,trek-name,trek-themes-container,trek-theme,trek-icons-labels-container,trek-icon-label,trek-icon,trek-label\"\n key={`trek-${trek.id}`}\n trek={trek}\n is-large-view={this.isLargeView}\n fontFamily={this.fontFamily}\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-trek-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore } from 'services/grw-db.service';\nimport { getDistricts, getTreksList, trekIsAvailableOffline } from 'services/treks.service';\nimport state from 'store/store';\nimport { Treks } from 'types/types';\nimport { durations, elevations, lengths } from 'utils/utils';\n\n@Component({\n tag: 'grw-treks-provider',\n shadow: true,\n})\nexport class GrwTreksProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\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\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n\n state.portalsFromProviders = this.portals;\n state.inBboxFromProviders = this.inBbox;\n state.citiesFromProviders = this.cities;\n state.districtsFromProviders = this.districts;\n state.structuresFromProviders = this.structures;\n state.themesFromProviders = this.themes;\n state.routesFromProviders = this.routes;\n state.practicesFromProviders = this.practices;\n\n this.handleTreks();\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n async handleTreks() {\n this.handleOnlineTreks();\n }\n\n async handleOfflineTreks(treks: Treks) {\n if (!state.difficulties) {\n state.difficulties = await getAllDataInStore('difficulties');\n }\n if (!state.routes) {\n state.routes = await getAllDataInStore('routes');\n }\n if (!state.practices) {\n state.practices = await getAllDataInStore('practices');\n }\n if (!state.themes) {\n state.themes = await getAllDataInStore('themes');\n }\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.accessibilities) {\n state.accessibilities = await getAllDataInStore('accessibilities');\n }\n if (!state.labels) {\n state.labels = await getAllDataInStore('labels');\n }\n if (!state.districts) {\n state.districts = await getAllDataInStore('districts');\n }\n if (!state.durations) {\n state.durations = durations;\n }\n if (!state.lengths) {\n state.lengths = lengths;\n }\n if (!state.elevations) {\n state.elevations = elevations;\n }\n this.sortTreks(treks);\n state.treks = treks;\n state.currentTreks = treks;\n }\n\n sortTreks(treks) {\n treks.sort((a, b) => {\n return a.name.localeCompare(b.name, undefined, {\n numeric: true,\n sensitivity: 'base',\n });\n });\n }\n\n handleOnlineTreks() {\n Promise.all([\n fetch(`${state.api}trek_difficulty/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init),\n fetch(`${state.api}trek_route/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,route,pictogram`, this.init),\n fetch(`${state.api}trek_practice/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init),\n fetch(`${state.api}theme/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init),\n fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init),\n fetch(\n `${state.api}trek_accessibility/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram&published=true&page_size=999`,\n this.init,\n ),\n fetch(\n `${state.api}label/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,advice,pictogram,filter&published=true&page_size=999`,\n this.init,\n ),\n getDistricts(state.api, state.language, this.init),\n getTreksList(this.api, state.language, this.inBbox, this.cities, this.districts, this.structures, this.themes, this.portals, this.routes, this.practices, this.init),\n ])\n .then(responses => {\n responses.forEach(response => {\n if (response.status !== 200) {\n throw new Error('network error');\n }\n });\n return Promise.all(responses.map(response => response.json()));\n })\n .then(async ([difficulties, routes, practices, themes, cities, accessibility, labels, districts, treks]) => {\n state.networkError = false;\n state.difficulties = difficulties.results;\n state.routes = routes.results;\n state.practices = practices.results.map(practice => ({ ...practice, selected: false }));\n state.themes = themes.results;\n state.cities = cities.results;\n state.accessibilities = accessibility.results;\n state.labels = labels.results;\n state.districts = districts.results;\n state.durations = durations;\n state.lengths = lengths;\n state.elevations = elevations;\n const treksWithOfflineValue = [];\n for (let index = 0; index < treks.results.length; index++) {\n const offline = await trekIsAvailableOffline(treks.results[index].id);\n treksWithOfflineValue.push({ ...treks.results[index], offline });\n }\n state.treks = treksWithOfflineValue;\n state.currentTreks = treksWithOfflineValue;\n })\n .catch(async () => {\n const treksInStore: Treks = await getAllDataInStore('treks');\n if (treksInStore && treksInStore.length > 0) {\n this.handleOfflineTreks(treksInStore);\n } else {\n state.networkError = true;\n }\n });\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"grw-common-button.grw-extended-fab.grw-filters.grw-loader.grw-map.grw-search.grw-segmented-segment.grw-select-language.grw-switch.grw-touristic-content-detail.grw-touristic-content-provider.grw-touristic-contents-list.grw-touristic-contents-provider.grw-touristic-event-detail.grw-touristic-event-provider.grw-touristic-events-list.grw-touristic-events-provider.grw-trek-detail.grw-trek-provider.grw-treks-list.grw-treks-provider.entry.cjs.js","mappings":"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","names":["h","Host","treksFilters","state","handleTreksFiltersAndSearch","touristicContentsFilters","touristicEventsFilters","handleTouristicContentsFiltersAndSearch","handleTouristicEventsFiltersAndSearch","translate","require$$0","this","L","tileLayerOffline","onChange","getDataInStore","arrayBufferToBlob","getAssetPath","index","getTrekGeometry","getWindow","now","nextTick","getDocument","elementOffset","createElementIfNotDefined","createElement","elementTransitionEnd","Swiper","Navigation","Pagination","Keyboard","FreeMode","getAllDataInStore","setFilesFromStore","imagesRegExp","GrwTouristicContentsList","writeOrUpdateTilesInStore","getTreksList","getDistricts","writeOrUpdateDataInStore","writeOrUpdateFilesInStore","getTrek","formatDuration","formatLength","formatAscent","formatDescent","durations","lengths","elevations","trekIsAvailableOffline"],"sources":["./src/components/grw-common-button/grw-common-button.scss?tag=grw-common-button&encapsulation=shadow","./src/components/grw-common-button/grw-common-button.tsx","./src/components/grw-extended-fab/grw-extended-fab.scss?tag=grw-extended-fab&encapsulation=shadow","./src/components/grw-extended-fab/grw-extended-fab.tsx","./src/components/grw-filters/grw-filters.scss?tag=grw-filters&encapsulation=shadow","./src/components/grw-filters/grw-filters.tsx","./src/components/grw-loader/grw-loader.scss?tag=grw-loader&encapsulation=shadow","./src/components/grw-loader/grw-loader.tsx","./node_modules/leaflet-rotate/dist/leaflet-rotate.js","./node_modules/leaflet.locatecontrol/src/L.Control.Locate.js","./node_modules/leaflet-i18n/Leaflet.i18n.js","./node_modules/@raruto/leaflet-elevation/dist/leaflet-elevation.min.js","./node_modules/leaflet.markercluster/dist/leaflet.markercluster.js","./src/components/grw-map/grw-map.scss?tag=grw-map&encapsulation=shadow","./src/components/grw-map/grw-map.tsx","./src/components/grw-search/grw-search.scss?tag=grw-search&encapsulation=shadow","./src/components/grw-search/grw-search.tsx","./src/components/grw-segmented-segment/grw-segmented-segment.scss?tag=grw-segmented-segment&encapsulation=shadow","./src/components/grw-segmented-segment/grw-segmented-segment.tsx","./src/components/grw-select-language/grw-select-language.scss?tag=grw-select-language&encapsulation=shadow","./src/components/grw-select-language/grw-select-language.tsx","./src/components/grw-switch/grw-switch.scss?tag=grw-switch&encapsulation=shadow","./src/components/grw-switch/grw-switch.tsx","./node_modules/swiper/modules/mousewheel/mousewheel.js","./node_modules/swiper/modules/scrollbar/scrollbar.js","./node_modules/swiper/modules/free-mode/free-mode.js","./src/components/grw-touristic-content-detail/grw-touristic-content-detail.scss?tag=grw-touristic-content-detail&encapsulation=shadow","./src/components/grw-touristic-content-detail/grw-touristic-content-detail.tsx","./src/services/touristic-contents.service.ts","./src/store/grw-touristic-content-provider.tsx","./src/components/grw-touristic-contents-list/grw-touristic-contents-list.scss?tag=grw-touristic-contents-list&encapsulation=shadow","./src/components/grw-touristic-contents-list/grw-touristic-contents-list.tsx","./src/store/grw-touristic-contents-provider.tsx","./src/components/grw-touristic-event-detail/grw-touristic-event-detail.scss?tag=grw-touristic-event-detail&encapsulation=shadow","./src/components/grw-touristic-event-detail/grw-touristic-event-detail.tsx","./src/services/touristic-events.service.ts","./src/store/grw-touristic-event-provider.tsx","./src/components/grw-touristic-events-list/grw-touristic-events-list.scss?tag=grw-touristic-events-list&encapsulation=shadow","./src/components/grw-touristic-events-list/grw-touristic-events-list.tsx","./src/store/grw-touristic-events-provider.tsx","./src/components/grw-trek-detail/grw-trek-detail.scss?tag=grw-trek-detail&encapsulation=shadow","./src/components/grw-trek-detail/grw-trek-detail.tsx","./src/store/grw-trek-provider.tsx","./src/components/grw-treks-list/grw-treks-list.scss?tag=grw-treks-list&encapsulation=shadow","./src/components/grw-treks-list/grw-treks-list.tsx","./src/store/grw-treks-provider.tsx"],"sourcesContent":[".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.common-button {\n user-select: none;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n padding: 12px 24px;\n border-radius: var(--border-radius, 20px);\n box-sizing: border-box;\n position: relative;\n gap: 8px;\n white-space: nowrap;\n line-height: 20px;\n letter-spacing: 0.1px;\n font-family: var(--font-family);\n font-size: 14px;\n font-weight: 500;\n box-shadow: var(--elevation-1);\n transition: box-shadow 0.2s ease-in-out 0s;\n .common-button-icon {\n font-size: 18px;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-common-button',\n styleUrl: 'grw-common-button.scss',\n shadow: true,\n})\nexport class GrwCommonButton {\n @Prop() action: Function;\n @Prop() icon: string;\n @Prop() name: string;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <button part=\"common-button\" class=\"common-button\" onClick={() => this.action()}>\n {/* @ts-ignore */}\n <span part=\"common-button-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n {this.icon}\n </span>\n <span part=\"common-button-label\" class=\"label\">\n {this.name}\n </span>\n </button>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.map-visibility-button {\n cursor: pointer;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n text-decoration: none;\n padding: 16px;\n background-color: var(--fab-background-color);\n color: var(--fab-color);\n box-shadow: var(--elevation-1);\n border-radius: var(--border-radius, 12px);\n height: 56px;\n font-family: var(--font-family);\n font-size: 16px;\n width: unset;\n &:hover {\n box-shadow: var(--elevation-4);\n }\n .icon {\n font-size: 24px;\n margin-right: 8px;\n color: var(--fab-color);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-extended-fab',\n styleUrl: 'grw-extended-fab.scss',\n shadow: true,\n})\nexport class GrwExtendedFab {\n @Prop() action: Function;\n @Prop() icon: Function;\n @Prop() name: Function;\n @Prop() display: string;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <button part=\"map-visibility-button\" class=\"map-visibility-button\" onClick={() => this.action()} style={{ display: this.display }}>\n {/* @ts-ignore */}\n <span part=\"map-visibility-button-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n {this.icon()}\n </span>\n <span part=\"map-visibility-button-label\" class=\"label\">\n {this.name()}\n </span>\n </button>\n </Host>\n );\n }\n}\n",".options-container {\n height: 100%;\n position: absolute;\n width: 100%;\n z-index: 1100;\n top: 0px;\n}\n\n.filters-container {\n background-color: var(--color-background);\n position: relative;\n width: 100%;\n height: 100%;\n z-index: 1100;\n .filters-treks-container,\n .filters-touristic-contents-container,\n .filters-touristic-events-container {\n height: 100%;\n }\n .segmented-buttons-container {\n display: flex;\n justify-content: center;\n width: calc(100% - 32px);\n height: 40px;\n margin: 16px;\n border: 1px solid var(--color-outline);\n border-radius: var(--border-radius, 20px);\n line-height: 20px;\n .segment {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n -webkit-tap-highlight-color: transparent;\n color: var(--color-on-surface-variant);\n background-color: transparent;\n border-radius: 0px;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n font-family: var(--font-family);\n &:first-child {\n border-top-left-radius: var(--border-radius, 20px);\n border-bottom-left-radius: var(--border-radius, 20px);\n }\n &:not(:last-child) {\n border-right: 1px solid var(--color-outline);\n }\n &:last-child {\n border-top-right-radius: var(--border-radius, 20px);\n border-bottom-right-radius: var(--border-radius, 20px);\n }\n }\n .selected-segment {\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n }\n }\n}\n\n.filters-segment-container {\n overflow-y: visible;\n height: 100%;\n max-height: calc(100% - 64px - 42px - 32px);\n}\n\n.back-filters-container {\n background-color: rgba(0, 0, 0, 0.5);\n width: 100%;\n height: 100%;\n position: absolute;\n z-index: 1099;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.filters-options-container {\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 64px;\n margin: 0px 16px;\n .filters-options-buttons-container {\n display: flex;\n .filter-option-button {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n margin: 8px 0px 0px 8px;\n padding: 8px 16px;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: var(--elevation-0);\n border: none;\n -webkit-tap-highlight-color: transparent;\n line-height: 20px;\n color: var(--color-primary-app);\n background-color: transparent;\n font-family: var(--font-family);\n }\n }\n}\n\n.segment-container {\n overflow: scroll;\n height: 100%;\n}\n\n.filter-container {\n &:not(:last-child) {\n &::after {\n content: '';\n display: block;\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n }\n }\n &:last-child {\n margin-bottom: 16px;\n }\n}\n\n.current-treks-within-bounds-length {\n color: var(--color-on-surface-variant);\n font-family: var(--font-family);\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport {\n treksFilters,\n handleTreksFiltersAndSearch,\n touristicContentsFilters,\n handleTouristicContentsFiltersAndSearch,\n handleTouristicEventsFiltersAndSearch,\n touristicEventsFilters,\n} from 'utils/utils';\n\n@Component({\n tag: 'grw-filters',\n styleUrl: 'grw-filters.scss',\n shadow: true,\n})\nexport class GrwFilters {\n @Event() resetFilter: EventEmitter;\n\n @State() selectedSegment = 'selectedActivitiesFilters';\n\n @Prop() handleFilters: Function;\n\n @Prop() fontFamily = 'Roboto';\n\n handleEraseTreksFilters() {\n treksFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedThemesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTreks = handleTreksFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTreksFilters() {\n this.handleFilters();\n }\n\n handleSelectedSegment(selectedSegment) {\n this.selectedSegment = selectedSegment;\n }\n\n handleSegment(segment) {\n if (state.mode === 'treks') {\n return treksFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n } else if (state.mode === 'touristicContents') {\n return touristicContentsFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n } else if (state.mode === 'touristicEvents') {\n return touristicEventsFilters.filter(filter => filter.segment === segment).some(filter => state[filter.property] && state[filter.property].length > 0);\n }\n }\n\n handleEraseTouristicContentsFilters() {\n touristicContentsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTouristicContentsFilters() {\n this.handleFilters();\n }\n\n handleEraseTouristicEventsFilters() {\n touristicEventsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n this.resetFilter.emit();\n }\n\n handleOkTouristicEventsFilters() {\n this.handleFilters();\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <div part=\"options-container\" class=\"options-container\">\n <div part=\"filters-container\" class=\"filters-container\">\n {state.mode === 'treks' && (\n <div part=\"filters-treks-container\" class=\"filters-treks-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.treksWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" 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 <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTreksFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTreksFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].home.segment.treks} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedThemesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedThemesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedThemesFilters')}\n >\n {translate[state.language].themes} {state.selectedThemesFilters !== 0 && `(${state.selectedThemesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"treks-activities-segment-container\">\n {state['practices'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].practice}\n filterType=\"practices\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n filterPlaceholder={translate[state.language].placeholderPractices}\n ></grw-filter>\n </div>\n )}\n {state['difficulties'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].difficulty}\n filterType=\"difficulties\"\n filterNameProperty=\"label\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['durations'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].duration}\n filterType=\"durations\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['lengths'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].length}\n filterType=\"lengths\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['elevations'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].elevation}\n filterType=\"elevations\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['routes'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].routes}\n filterType=\"routes\"\n filterNameProperty=\"route\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['accessibilities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].accessibility}\n filterType=\"accessibilities\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n {state['labels'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].activities}\n filterType=\"labels\"\n filterNameProperty=\"name\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedThemesFilters' && (\n <div part=\"filter-container\" class=\"segment-container\" key=\"treks-themes-segment-container\">\n {state['themes'].length > 0 && (\n <div part=\"\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].themes}\n filterPlaceholder={translate[state.language].placeholderThemes}\n filterType=\"themes\"\n filterNameProperty=\"label\"\n segment=\"selectedThemesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"treks-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n {state.mode === 'touristicContents' && (\n <div part=\"filters-touristic-contents-container\" class=\"filters-touristic-contents-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.touristicContentsWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.touristicContentsWithinBounds.length} ${\n state.touristicContentsWithinBounds.length > 1 ? translate[state.language].home.touristicContents : translate[state.language].home.touristicContent\n }`}</div>\n )}\n <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTouristicContentsFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTouristicContentsFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].services} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-activities-segment-container\">\n {state['touristicContentCategories'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].category}\n filterType=\"touristicContentCategories\"\n filterNameProperty=\"label\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n {state.mode === 'touristicEvents' && (\n <div part=\"filters-touristic-events-container\" class=\"filters-touristic-events-container\">\n <div part=\"filters-options-container\" class=\"filters-options-container\">\n {state.touristicEventsWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" class=\"current-treks-within-bounds-length\">{`${state.touristicEventsWithinBounds.length} ${\n state.touristicEventsWithinBounds.length > 1 ? translate[state.language].home.touristicEvents : translate[state.language].home.touristicEvent\n }`}</div>\n )}\n <div part=\"filters-options-buttons-container\" class=\"filters-options-buttons-container\">\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleEraseTouristicEventsFilters()}>\n {translate[state.language].erase}\n </button>\n <button part=\"filter-option-button\" class=\"filter-option-button\" onClick={() => this.handleOkTouristicEventsFilters()}>\n {translate[state.language].ok}\n </button>\n </div>\n </div>\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.handleSegment('selectedActivitiesFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedActivitiesFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedActivitiesFilters')}\n >\n {translate[state.language].services} {state.selectedActivitiesFilters !== 0 && `(${state.selectedActivitiesFilters})`}\n </label>\n )}\n {this.handleSegment('selectedLocationFilters') && (\n <label\n part=\"segment\"\n class={`segment${this.selectedSegment === 'selectedLocationFilters' ? ' selected-segment' : ''}`}\n onClick={() => this.handleSelectedSegment('selectedLocationFilters')}\n >\n {translate[state.language].location} {state.selectedLocationFilters !== 0 && `(${state.selectedLocationFilters})`}\n </label>\n )}\n </div>\n <div part=\"filters-segment-container\" class=\"filters-segment-container\">\n {this.selectedSegment === 'selectedActivitiesFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-contents-activities-segment-container\">\n {state['touristicEventTypes'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].type}\n filterPlaceholder={translate[state.language].placeholderType}\n filterType=\"touristicEventTypes\"\n filterNameProperty=\"type\"\n segment=\"selectedActivitiesFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n {this.selectedSegment === 'selectedLocationFilters' && (\n <div part=\"segment-container\" class=\"segment-container\" key=\"touristic-events-location-segment-container\">\n {state['districts'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].districts}\n filterType=\"districts\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n {state['cities'].length > 0 && (\n <div part=\"filter-container\" class=\"filter-container\">\n <grw-filter\n exportparts=\"filter-name,filter-button-container,filter-select,filter-button,elected-filter-icon,filter-label\"\n fontFamily={this.fontFamily}\n filterName={translate[state.language].crossedCities}\n filterPlaceholder={translate[state.language].placeholderCrossedCities}\n filterType=\"cities\"\n filterNameProperty=\"name\"\n segment=\"selectedLocationFilters\"\n ></grw-filter>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n <div part=\"back-filters-container\" class=\"back-filters-container\" onClick={() => this.handleFilters()}></div>\n </div>\n </Host>\n );\n }\n}\n",".loader {\n width: 48px;\n height: 48px;\n border: 5px solid var(--color-primary-container);\n border-bottom-color: var(--color-on-primary-container);\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: rotation 1s linear infinite;\n}\n\n@keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-loader',\n styleUrl: 'grw-loader.scss',\n shadow: true,\n})\nexport class GrwLoader {\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n\n render() {\n return (\n <Host style={{ '--color-primary-container': this.colorPrimaryContainer, '--color-on-primary-container': this.colorOnPrimaryContainer }}>\n <span part=\"loader\" class=\"loader\"></span>\n </Host>\n );\n }\n}\n","!function(t){\"function\"==typeof define&&define.amd?define(t):t()}((function(){\"use strict\";const t=L.extend({},L.DomUtil);L.extend(L.DomUtil,{setTransform:function(o,e,i,n,a){var s=e||new L.Point(0,0);if(!n)return e=s._round(),t.setTransform.apply(this,arguments);s=s.rotateFrom(n,a),o.style[L.DomUtil.TRANSFORM]=\"translate3d(\"+s.x+\"px,\"+s.y+\"px,0)\"+(i?\" scale(\"+i+\")\":\"\")+\" rotate(\"+n+\"rad)\"},setPosition:function(o,e,i,n,a){if(!i)return t.setPosition.apply(this,arguments);o._leaflet_pos=e,L.Browser.any3d?L.DomUtil.setTransform(o,e,a,i,n):(o.style.left=e.x+\"px\",o.style.top=e.y+\"px\")},DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI}),L.Draggable.include({}),L.extend(L.Point.prototype,{rotate:function(t){return this.rotateFrom(t,new L.Point(0,0))},rotateFrom:function(t,o){if(!t)return this;var e=Math.sin(t),i=Math.cos(t),n=o.x,a=o.y,s=this.x-n,r=this.y-a;return new L.Point(s*i-r*e+n,s*e+r*i+a)}});const o=L.extend({},L.DivOverlay.prototype);L.DivOverlay.include({getEvents:function(){return L.extend(o.getEvents.apply(this,arguments),{rotate:this._updatePosition})},_updatePosition:function(){if(this._map&&(o._updatePosition.apply(this,arguments),this._map&&this._map._rotate&&this._zoomAnimated)){var t=this._getAnchor(),e=L.DomUtil.getPosition(this._container).subtract(t);L.DomUtil.setPosition(this._container,this._map.rotatedPointToMapPanePoint(e).add(t))}}});const e=L.extend({},L.Popup.prototype);L.Popup.include({_animateZoom:function(t){if(e._animateZoom.apply(this,arguments),this._map&&this._map._rotate){var o=this._getAnchor(),i=L.DomUtil.getPosition(this._container).subtract(o);L.DomUtil.setPosition(this._container,this._map.rotatedPointToMapPanePoint(i).add(o))}},_adjustPan:function(){if(!(!this.options.autoPan||this._map._panAnim&&this._map._panAnim._inProgress))if(this._autopanning)this._autopanning=!1;else{var t=this._map,o=parseInt(L.DomUtil.getStyle(this._container,\"marginBottom\"),10)||0,e=this._container.offsetHeight+o,i=this._containerWidth,n=new L.Point(this._containerLeft,-e-this._containerBottom);n._add(L.DomUtil.getPosition(this._container));var a=n._add(this._map._getMapPanePos()),s=L.point(this.options.autoPanPadding),r=L.point(this.options.autoPanPaddingTopLeft||s),h=L.point(this.options.autoPanPaddingBottomRight||s),_=t.getSize(),d=0,p=0;a.x+i+h.x>_.x&&(d=a.x+i-_.x+h.x),a.x-d-r.x<0&&(d=a.x-r.x),a.y+e+h.y>_.y&&(p=a.y+e-_.y+h.y),a.y-p-r.y<0&&(p=a.y-r.y),(d||p)&&(this.options.keepInView&&(this._autopanning=!0),t.fire(\"autopanstart\").panBy([d,p]))}}});const i=L.extend({},L.Tooltip.prototype);L.Tooltip.include({_animateZoom:function(t){if(!this._map._rotate)return i._animateZoom.apply(this,arguments);var o=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center);o=this._map.rotatedPointToMapPanePoint(o),this._setPosition(o)},_updatePosition:function(){if(!this._map._rotate)return i._updatePosition.apply(this,arguments);var t=this._map.latLngToLayerPoint(this._latlng);t=this._map.rotatedPointToMapPanePoint(t),this._setPosition(t)}}),L.extend({},L.Icon.prototype),L.Icon.include({_setIconStyles:function(t,o){var e=this.options,i=e[o+\"Size\"];\"number\"==typeof i&&(i=[i,i]);var n=L.point(i),a=L.point(\"shadow\"===o&&e.shadowAnchor||e.iconAnchor||n&&n.divideBy(2,!0));t.className=\"leaflet-marker-\"+o+\" \"+(e.className||\"\"),a&&(t.style.marginLeft=-a.x+\"px\",t.style.marginTop=-a.y+\"px\",t.style[L.DomUtil.TRANSFORM+\"Origin\"]=a.x+\"px \"+a.y+\"px 0px\"),n&&(t.style.width=n.x+\"px\",t.style.height=n.y+\"px\")}});const n=L.extend({},L.Marker.prototype);var a;L.Marker.mergeOptions({rotation:0,rotateWithView:!1,scale:void 0});var s={_onDrag:function(t){var o=this._marker,e=o.options.rotation||o.options.rotateWithView,i=o._shadow,n=L.DomUtil.getPosition(o._icon);!e&&i&&L.DomUtil.setPosition(i,n),o._map._rotate&&(n=o._map.mapPanePointToRotatedPoint(n));var a=o._map.layerPointToLatLng(n);o._latlng=a,t.latlng=a,t.oldLatLng=this._oldLatLng,e?o.setLatLng(a):o.fire(\"move\",t),o.fire(\"drag\",t)},_onDragEnd:function(t){this._marker._map._rotate&&this._marker.update(),a._onDragEnd.apply(this,arguments)}};L.Marker.include({getEvents:function(){return L.extend(n.getEvents.apply(this,arguments),{rotate:this.update})},_initInteraction:function(){var t=n._initInteraction.apply(this,arguments);return this.dragging&&this.dragging.enabled()&&this._map&&this._map._rotate&&(a=a||Object.getPrototypeOf(this.dragging),this.dragging.disable(),Object.assign(this.dragging,{_onDrag:s._onDrag.bind(this.dragging),_onDragEnd:s._onDragEnd.bind(this.dragging)}),this.dragging.enable()),t},_setPos:function(t){this._map._rotate&&(t=this._map.rotatedPointToMapPanePoint(t));var o=this.options.rotation||0;this.options.rotateWithView&&(o+=this._map._bearing),this._icon&&L.DomUtil.setPosition(this._icon,t,o,t,this.options.scale),this._shadow&&L.DomUtil.setPosition(this._shadow,t,o,t,this.options.scale),this._zIndex=t.y+this.options.zIndexOffset,this._resetZIndex()},setRotation:function(t){this.options.rotation=t,this.update()}});const r=L.extend({},L.GridLayer.prototype);L.GridLayer.include({getEvents:function(){var t=r.getEvents.apply(this,arguments);return this._map._rotate&&!this.options.updateWhenIdle&&(this._onRotate||(this._onRotate=L.Util.throttle(this._onMoveEnd,this.options.updateInterval,this)),t.rotate=this._onRotate),t},_getTiledPixelBounds:function(t){return this._map._rotate?this._map._getNewPixelBounds(t,this._tileZoom):r._getTiledPixelBounds.apply(this,arguments)}});const h=L.extend({},L.Renderer.prototype);L.Renderer.include({getEvents:function(){return L.extend(h.getEvents.apply(this,arguments),{rotate:this._update})},onAdd:function(){h.onAdd.apply(this,arguments),L.version<=\"1.9.3\"&&this._container.classList.add(\"leaflet-zoom-animated\")},_updateTransform:function(t,o){if(!this._map._rotate)return h._updateTransform.apply(this,arguments);var e=this._map.getZoomScale(o,this._zoom),i=this._map._latLngToNewLayerPoint(this._topLeft,o,t);L.DomUtil.setTransform(this._container,i,e)},_update:function(){if(!this._map._rotate)return h._update.apply(this,arguments);this._bounds=this._map._getPaddedPixelBounds(this.options.padding),this._topLeft=this._map.layerPointToLatLng(this._bounds.min),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}});const _=L.extend({},L.Map.prototype);L.Map.mergeOptions({rotate:!1,bearing:0}),L.Map.include({initialize:function(t,o){o.rotate&&(this._rotate=!0,this._bearing=0),_.initialize.apply(this,arguments),this.options.rotate&&this.setBearing(this.options.bearing)},containerPointToLayerPoint:function(t){return this._rotate?L.point(t).subtract(this._getMapPanePos()).rotateFrom(-this._bearing,this._getRotatePanePos()).subtract(this._getRotatePanePos()):_.containerPointToLayerPoint.apply(this,arguments)},layerPointToContainerPoint:function(t){return this._rotate?L.point(t).add(this._getRotatePanePos()).rotateFrom(this._bearing,this._getRotatePanePos()).add(this._getMapPanePos()):_.layerPointToContainerPoint.apply(this,arguments)},rotatedPointToMapPanePoint:function(t){return L.point(t).rotate(this._bearing)._add(this._getRotatePanePos())},mapPanePointToRotatedPoint:function(t){return L.point(t)._subtract(this._getRotatePanePos()).rotate(-this._bearing)},mapBoundsToContainerBounds:function(t){if(!this._rotate&&_.mapBoundsToContainerBounds)return _.mapBoundsToContainerBounds.apply(this,arguments);const o=this.getPixelOrigin(),e=this.layerPointToContainerPoint(this.project(t.getNorthWest())._subtract(o)),i=this.layerPointToContainerPoint(this.project(t.getNorthEast())._subtract(o)),n=this.layerPointToContainerPoint(this.project(t.getSouthWest())._subtract(o)),a=this.layerPointToContainerPoint(this.project(t.getSouthEast())._subtract(o));return L.bounds([L.point(Math.min(e.x,i.x,a.x,n.x),Math.min(e.y,i.y,a.y,n.y)),L.point(Math.max(e.x,i.x,a.x,n.x),Math.max(e.y,i.y,a.y,n.y))])},getBounds:function(){if(!this._rotate)return _.getBounds.apply(this,arguments);var t=this.getSize();return new L.LatLngBounds([this.containerPointToLatLng([0,0]),this.containerPointToLatLng([t.x,0]),this.containerPointToLatLng([t.x,t.y]),this.containerPointToLatLng([0,t.y])])},setBearing:function(t){if(L.Browser.any3d&&this._rotate){var o=L.Util.wrapNum(t,[0,360])*L.DomUtil.DEG_TO_RAD,e=this._getPixelCenter(),i=this._getRotatePanePos().rotateFrom(-this._bearing,e),n=i.rotateFrom(o,e);L.DomUtil.setPosition(this._rotatePane,i,o,e),this._pivot=e,this._bearing=o,this._rotatePanePos=n,this.fire(\"rotate\")}},getBearing:function(){return this._bearing*L.DomUtil.RAD_TO_DEG},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane(\"mapPane\",this._container),L.DomUtil.setPosition(this._mapPane,new L.Point(0,0)),this._rotate?(this._rotatePane=this.createPane(\"rotatePane\",this._mapPane),this._norotatePane=this.createPane(\"norotatePane\",this._mapPane),this.createPane(\"tilePane\",this._rotatePane),this.createPane(\"overlayPane\",this._rotatePane),this.createPane(\"shadowPane\",this._norotatePane),this.createPane(\"markerPane\",this._norotatePane),this.createPane(\"tooltipPane\",this._norotatePane),this.createPane(\"popupPane\",this._norotatePane)):(this.createPane(\"tilePane\"),this.createPane(\"overlayPane\"),this.createPane(\"shadowPane\"),this.createPane(\"markerPane\"),this.createPane(\"tooltipPane\"),this.createPane(\"popupPane\")),this.options.markerZoomAnimation||(L.DomUtil.addClass(t.markerPane,\"leaflet-zoom-hide\"),L.DomUtil.addClass(t.shadowPane,\"leaflet-zoom-hide\"))},panInside(t,o){if(!this._rotate||Math.abs(this._bearing).toFixed(1)<.1)return _.panInside.apply(this,arguments);o=o||{};const e=L.point(o.paddingTopLeft||o.padding||[0,0]),i=L.point(o.paddingBottomRight||o.padding||[0,0]),n=this._container.getBoundingClientRect(),a=this.latLngToContainerPoint(t),s=L.bounds([L.point(n),L.point(n).add(this.getSize())]),r=s.getCenter(),h=L.bounds([s.min.add(e),s.max.subtract(i)]),d=h.getSize();if(!h.contains(a)){this._enforcingBounds=!0;const t=a.subtract(h.getCenter()),e=h.extend(a).getSize().subtract(d);r.x+=t.x<0?-e.x:e.x,r.y+=t.y<0?-e.y:e.y,this.panTo(this.containerPointToLatLng(r),o),this._enforcingBounds=!1}return this},getBoundsZoom(t,o,e){if(!this._rotate||Math.abs(this._bearing).toFixed(1)<.1)return _.getBoundsZoom.apply(this,arguments);t=L.latLngBounds(t),e=L.point(e||[0,0]);let i=this.getZoom()||0;const n=this.getMinZoom(),a=this.getMaxZoom(),s=this.getSize().subtract(e),r=this.mapBoundsToContainerBounds(t).getSize(),h=this.options.zoomSnap,d=s.x/r.x,p=s.y/r.y,l=o?Math.max(d,p):Math.min(d,p);return i=this.getScaleZoom(l,i),h&&(i=Math.round(i/(h/100))*(h/100),i=o?Math.ceil(i/h)*h:Math.floor(i/h)*h),Math.max(n,Math.min(a,i))},_getCenterOffset:function(t){var o=_._getCenterOffset.apply(this,arguments);return this._rotate&&(o=o.rotate(this._bearing)),o},_getRotatePanePos:function(){return this._rotatePanePos||new L.Point(0,0)},_getNewPixelOrigin:function(t,o){if(!this._rotate)return _._getNewPixelOrigin.apply(this,arguments);var e=this.getSize()._divideBy(2);return this.project(t,o).rotate(this._bearing)._subtract(e)._add(this._getMapPanePos())._add(this._getRotatePanePos()).rotate(-this._bearing)._round()},_getNewPixelBounds:function(t,o){if(t=t||this.getCenter(),o=o||this.getZoom(),!this._rotate&&_._getNewPixelBounds)return _._getNewPixelBounds.apply(this,arguments);var e=this._animatingZoom?Math.max(this._animateToZoom,this.getZoom()):this.getZoom(),i=this.getZoomScale(e,o),n=this.project(t,o).floor(),a=this.getSize(),s=new L.Bounds([this.containerPointToLayerPoint([0,0]).floor(),this.containerPointToLayerPoint([a.x,0]).floor(),this.containerPointToLayerPoint([0,a.y]).floor(),this.containerPointToLayerPoint([a.x,a.y]).floor()]).getSize().divideBy(2*i);return new L.Bounds(n.subtract(s),n.add(s))},_getPixelCenter:function(){return!this._rotate&&_._getPixelCenter?_._getPixelCenter.apply(this,arguments):this.getSize()._divideBy(2)._subtract(this._getMapPanePos())},_getPaddedPixelBounds:function(t){if(!this._rotate&&_._getPaddedPixelBounds)return _._getPaddedPixelBounds.apply(this,arguments);var o=t,e=this.getSize(),i=e.multiplyBy(-o),n=e.multiplyBy(1+o);return new L.Bounds([this.containerPointToLayerPoint([i.x,i.y]).floor(),this.containerPointToLayerPoint([i.x,n.y]).floor(),this.containerPointToLayerPoint([n.x,i.y]).floor(),this.containerPointToLayerPoint([n.x,n.y]).floor()])},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var o=t.coords.latitude,e=t.coords.longitude,i=t.coords.heading,n=new L.LatLng(o,e),a=n.toBounds(t.coords.accuracy),s=this._locateOptions;if(s.setView){var r=this.getBoundsZoom(a);this.setView(n,s.maxZoom?Math.min(r,s.maxZoom):r)}var h={latlng:n,bounds:a,timestamp:t.timestamp,heading:i};for(var _ in t.coords)\"number\"==typeof t.coords[_]&&(h[_]=t.coords[_]);this.fire(\"locationfound\",h)}}}),L.Map.CompassBearing=L.Handler.extend({initialize:function(t){this._map=t,\"ondeviceorientationabsolute\"in window?this.__deviceOrientationEvent=\"deviceorientationabsolute\":\"ondeviceorientation\"in window&&(this.__deviceOrientationEvent=\"deviceorientation\"),this._throttled=L.Util.throttle(this._onDeviceOrientation,100,this)},addHooks:function(){this._map._rotate&&this.__deviceOrientationEvent?L.DomEvent.on(window,this.__deviceOrientationEvent,this._throttled,this):this.disable()},removeHooks:function(){this._map._rotate&&this.__deviceOrientationEvent&&L.DomEvent.off(window,this.__deviceOrientationEvent,this._throttled,this)},_onDeviceOrientation:function(t){var o=t.webkitCompassHeading||t.alpha,e=0;!t.absolute&&t.webkitCompassHeading&&(o=360-o),t.absolute||void 0===window.orientation||(e=window.orientation),this._map.setBearing(o-e)}}),L.Map.addInitHook(\"addHandler\",\"compassBearing\",L.Map.CompassBearing),L.Map.mergeOptions({trackContainerMutation:!1}),L.Map.ContainerMutation=L.Handler.extend({addHooks:function(){this._observer||(this._observer=new MutationObserver(L.Util.bind(this._map.invalidateSize,this._map))),this._observer.observe(this._map.getContainer(),{childList:!1,attributes:!0,characterData:!1,subtree:!1,attributeFilter:[\"style\"]})},removeHooks:function(){this._observer.disconnect()}}),L.Map.addInitHook(\"addHandler\",\"trackContainerMutation\",L.Map.ContainerMutation),L.Map.mergeOptions({bounceAtZoomLimits:!0}),L.Map.TouchGestures=L.Handler.extend({initialize:function(t){this._map=t,this.rotate=!!this._map.options.touchRotate,this.zoom=!!this._map.options.touchZoom},addHooks:function(){L.DomEvent.on(this._map._container,\"touchstart\",this._onTouchStart,this)},removeHooks:function(){L.DomEvent.off(this._map._container,\"touchstart\",this._onTouchStart,this)},_onTouchStart:function(t){var o=this._map;if(t.touches&&2===t.touches.length&&!o._animatingZoom&&!this._zooming&&!this._rotating){var e=o.mouseEventToContainerPoint(t.touches[0]),i=o.mouseEventToContainerPoint(t.touches[1]),n=e.subtract(i);this._centerPoint=o.getSize()._divideBy(2),this._startLatLng=o.containerPointToLatLng(this._centerPoint),this.zoom?(\"center\"!==o.options.touchZoom&&(this._pinchStartLatLng=o.containerPointToLatLng(e.add(i)._divideBy(2))),this._startDist=e.distanceTo(i),this._startZoom=o.getZoom(),this._zooming=!0):this._zooming=!1,this.rotate?(this._startTheta=Math.atan(n.x/n.y),this._startBearing=o.getBearing(),n.y<0&&(this._startBearing+=180),this._rotating=!0):this._rotating=!1,this._moved=!1,o._stop(),L.DomEvent.on(document,\"touchmove\",this._onTouchMove,this).on(document,\"touchend touchcancel\",this._onTouchEnd,this),L.DomEvent.preventDefault(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&(this._zooming||this._rotating)){var o,e=this._map,i=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),a=i.subtract(n),s=i.distanceTo(n)/this._startDist;if(this._rotating){var r=(Math.atan(a.x/a.y)-this._startTheta)*L.DomUtil.RAD_TO_DEG;a.y<0&&(r+=180),r&&e.setBearing(this._startBearing-r)}if(this._zooming)if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoom<e.getMinZoom()&&s<1||this._zoom>e.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),\"center\"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{if(o=i._add(n)._divideBy(2)._subtract(this._centerPoint),1===s&&0===o.x&&0===o.y)return;var h=-e.getBearing()*L.DomUtil.DEG_TO_RAD;this._center=e.unproject(e.project(this._pinchStartLatLng).subtract(o.rotate(h)))}this._moved||(e._moveStart(!0,!1),this._moved=!0),L.Util.cancelAnimFrame(this._animRequest);var _=e._move.bind(e,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=L.Util.requestAnimFrame(_,this,!0),L.DomEvent.preventDefault(t)}},_onTouchEnd:function(){this._moved&&(this._zooming||this._rotating)?(this._zooming=!1,this._rotating=!1,L.Util.cancelAnimFrame(this._animRequest),L.DomEvent.off(document,\"touchmove\",this._onTouchMove,this).off(document,\"touchend touchcancel\",this._onTouchEnd,this),this.zoom&&(this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom)))):this._zooming=!1}}),L.Map.addInitHook(\"addHandler\",\"touchGestures\",L.Map.TouchGestures),L.Map.mergeOptions({touchRotate:!1}),L.Map.TouchRotate=L.Handler.extend({addHooks:function(){this._map.touchGestures.enable(),this._map.touchGestures.rotate=!0},removeHooks:function(){this._map.touchGestures.rotate=!1}}),L.Map.addInitHook(\"addHandler\",\"touchRotate\",L.Map.TouchRotate),L.Map.mergeOptions({shiftKeyRotate:!0}),L.Map.ShiftKeyRotate=L.Handler.extend({addHooks:function(){L.DomEvent.on(this._map._container,\"wheel\",this._handleShiftScroll,this),this._map.shiftKeyRotate.rotate=!0},removeHooks:function(){L.DomEvent.off(this._map._container,\"wheel\",this._handleShiftScroll,this),this._map.shiftKeyRotate.rotate=!1},_handleShiftScroll:function(t){t.shiftKey?(t.preventDefault(),this._map.scrollWheelZoom.disable(),this._map.setBearing(this._map._bearing*L.DomUtil.RAD_TO_DEG+5*Math.sign(t.deltaY))):this._map.scrollWheelZoom.enable()}}),L.Map.addInitHook(\"addHandler\",\"shiftKeyRotate\",L.Map.ShiftKeyRotate),L.Map.addInitHook((function(){this.scrollWheelZoom.enabled()&&this.shiftKeyRotate.enabled()&&(this.scrollWheelZoom.disable(),this.scrollWheelZoom.enable())})),L.Map.mergeOptions({touchZoom:L.Browser.touch,bounceAtZoomLimits:!1}),L.Map.TouchZoom=L.Handler.extend({addHooks:function(){L.DomUtil.addClass(this._map._container,\"leaflet-touch-zoom\"),this._map.touchGestures.enable(),this._map.touchGestures.zoom=!0},removeHooks:function(){L.DomUtil.removeClass(this._map._container,\"leaflet-touch-zoom\"),this._map.touchGestures.zoom=!1}}),L.Map.addInitHook(\"addHandler\",\"touchZoom\",L.Map.TouchZoom),L.Control.Rotate=L.Control.extend({options:{position:\"topleft\",closeOnZeroBearing:!0},onAdd:function(t){var o=this._container=L.DomUtil.create(\"div\",\"leaflet-control-rotate leaflet-bar\"),e=this._arrow=L.DomUtil.create(\"span\",\"leaflet-control-rotate-arrow\");e.style.backgroundImage=\"url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E%3Cpath d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E\\\")\",e.style.cursor=\"grab\",e.style.display=\"block\",e.style.width=\"100%\",e.style.height=\"100%\",e.style.backgroundRepeat=\"no-repeat\",e.style.backgroundPosition=\"50%\";var i=this._link=L.DomUtil.create(\"a\",\"leaflet-control-rotate-toggle\",o);return i.appendChild(e),i.href=\"#\",i.title=\"Rotate map\",L.DomEvent.on(i,\"dblclick\",L.DomEvent.stopPropagation).on(i,\"mousedown\",this._handleMouseDown,this).on(i,\"click\",L.DomEvent.stop).on(i,\"click\",this._cycleState,this).on(i,\"click\",this._refocusOnMap,this),L.Browser.any3d||L.DomUtil.addClass(i,\"leaflet-disabled\"),this._restyle(),t.on(\"rotate\",this._restyle,this),this._follow=!1,this._canFollow=!1,this.options.closeOnZeroBearing&&0===t.getBearing()&&(o.style.display=\"none\"),o},onRemove:function(t){t.off(\"rotate\",this._restyle,this)},_handleMouseDown:function(t){L.DomEvent.stop(t),this.dragging=!0,this.dragstartX=t.pageX,this.dragstartY=t.pageY,L.DomEvent.on(document,\"mousemove\",this._handleMouseDrag,this).on(document,\"mouseup\",this._handleMouseUp,this)},_handleMouseUp:function(t){L.DomEvent.stop(t),this.dragging=!1,L.DomEvent.off(document,\"mousemove\",this._handleMouseDrag,this).off(document,\"mouseup\",this._handleMouseUp,this)},_handleMouseDrag:function(t){if(this.dragging){var o=t.clientX-this.dragstartX;this._map.setBearing(o)}},_cycleState:function(t){if(this._map){var o=this._map;o.touchRotate.enabled()||o.compassBearing.enabled()?o.compassBearing.enabled()?(o.compassBearing.disable(),o.setBearing(0),this.options.closeOnZeroBearing&&o.touchRotate.enable()):(o.touchRotate.disable(),o.compassBearing.enable()):o.touchRotate.enable(),this._restyle()}},_restyle:function(){if(this._map.options.rotate){var t=this._map,o=t.getBearing();this._arrow.style.transform=\"rotate(\"+o+\"deg)\",o&&this.options.closeOnZeroBearing&&(this._container.style.display=\"block\"),t.compassBearing.enabled()?this._link.style.backgroundColor=\"orange\":t.touchRotate.enabled()?this._link.style.backgroundColor=null:(this._link.style.backgroundColor=\"grey\",0===o&&this.options.closeOnZeroBearing&&(this._container.style.display=\"none\"))}else L.DomUtil.addClass(this._link,\"leaflet-disabled\")}}),L.control.rotate=function(t){return new L.Control.Rotate(t)},L.Map.mergeOptions({rotateControl:!0}),L.Map.addInitHook((function(){if(this.options.rotateControl){var t=\"object\"==typeof this.options.rotateControl?this.options.rotateControl:{};this.rotateControl=L.control.rotate(t),this.addControl(this.rotateControl)}}))}));\n//# sourceMappingURL=leaflet-rotate.js.map\n","/*!\nCopyright (c) 2016 Dominik Moritz\n\nThis file is part of the leaflet locate control. It is licensed under the MIT license.\nYou can find the project at: https://github.com/domoritz/leaflet-locatecontrol\n*/\n(function (factory, window) {\n // see https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md#module-loaders\n // for details on how to structure a leaflet plugin.\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === \"function\" && define.amd) {\n define([\"leaflet\"], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === \"object\") {\n if (typeof window !== \"undefined\" && window.L) {\n module.exports = factory(L);\n } else {\n module.exports = factory(require(\"leaflet\"));\n }\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== \"undefined\" && window.L) {\n window.L.Control.Locate = factory(L);\n }\n})(function (L) {\n const LDomUtilApplyClassesMethod = (method, element, classNames) => {\n classNames = classNames.split(\" \");\n classNames.forEach(function (className) {\n L.DomUtil[method].call(this, element, className);\n });\n };\n\n const addClasses = (el, names) => LDomUtilApplyClassesMethod(\"addClass\", el, names);\n const removeClasses = (el, names) => LDomUtilApplyClassesMethod(\"removeClass\", el, names);\n\n /**\n * Compatible with L.Circle but a true marker instead of a path\n */\n const LocationMarker = L.Marker.extend({\n initialize(latlng, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this.createIcon();\n },\n\n /**\n * Create a styled circle location marker\n */\n createIcon() {\n const opt = this.options;\n\n let style = \"\";\n\n if (opt.color !== undefined) {\n style += `stroke:${opt.color};`;\n }\n if (opt.weight !== undefined) {\n style += `stroke-width:${opt.weight};`;\n }\n if (opt.fillColor !== undefined) {\n style += `fill:${opt.fillColor};`;\n }\n if (opt.fillOpacity !== undefined) {\n style += `fill-opacity:${opt.fillOpacity};`;\n }\n if (opt.opacity !== undefined) {\n style += `opacity:${opt.opacity};`;\n }\n\n const icon = this._getIconSVG(opt, style);\n\n this._locationIcon = L.divIcon({\n className: icon.className,\n html: icon.svg,\n iconSize: [icon.w, icon.h]\n });\n\n this.setIcon(this._locationIcon);\n },\n\n /**\n * Return the raw svg for the shape\n *\n * Split so can be easily overridden\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.weight;\n const s = r + w;\n const s2 = s * 2;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${s2}\" height=\"${s2}\" version=\"1.1\" viewBox=\"-${s} -${s} ${s2} ${s2}\">` +\n '<circle r=\"' +\n r +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-location\",\n svg,\n w: s2,\n h: s2\n };\n },\n\n setStyle(style) {\n L.Util.setOptions(this, style);\n this.createIcon();\n }\n });\n\n const CompassMarker = LocationMarker.extend({\n initialize(latlng, heading, options) {\n L.Util.setOptions(this, options);\n this._latlng = latlng;\n this._heading = heading;\n this.createIcon();\n },\n\n setHeading(heading) {\n this._heading = heading;\n },\n\n /**\n * Create a styled arrow compass marker\n */\n _getIconSVG(options, style) {\n const r = options.radius;\n const w = options.width + options.weight;\n const h = (r + options.depth + options.weight) * 2;\n const path = `M0,0 l${options.width / 2},${options.depth} l-${w},0 z`;\n const svgstyle = `transform: rotate(${this._heading}deg)`;\n const svg =\n `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"${w}\" height=\"${h}\" version=\"1.1\" viewBox=\"-${w / 2} 0 ${w} ${h}\" style=\"${svgstyle}\">` +\n '<path d=\"' +\n path +\n '\" style=\"' +\n style +\n '\" />' +\n \"</svg>\";\n return {\n className: \"leaflet-control-locate-heading\",\n svg,\n w,\n h\n };\n }\n });\n\n const LocateControl = L.Control.extend({\n options: {\n /** Position of the control */\n position: \"topleft\",\n /** The layer that the user's location should be drawn on. By default creates a new layer. */\n layer: undefined,\n /**\n * Automatically sets the map view (zoom and pan) to the user's location as it updates.\n * While the map is following the user's location, the control is in the `following` state,\n * which changes the style of the control and the circle marker.\n *\n * Possible values:\n * - false: never updates the map view when location changes.\n * - 'once': set the view when the location is first determined\n * - 'always': always updates the map view when location changes.\n * The map view follows the user's location.\n * - 'untilPan': like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n * - 'untilPanOrZoom': (default) like 'always', except stops updating the\n * view if the user has manually panned the map.\n * The map view follows the user's location until she pans.\n */\n setView: \"untilPanOrZoom\",\n /** Keep the current map zoom level when setting the view and only pan. */\n keepCurrentZoomLevel: false,\n /** After activating the plugin by clicking on the icon, zoom to the selected zoom level, even when keepCurrentZoomLevel is true. Set to 'false' to disable this feature. */\n initialZoomLevel: false,\n /**\n * This callback can be used to override the viewport tracking\n * This function should return a LatLngBounds object.\n *\n * For example to extend the viewport to ensure that a particular LatLng is visible:\n *\n * getLocationBounds: function(locationEvent) {\n * return locationEvent.bounds.extend([-33.873085, 151.219273]);\n * },\n */\n getLocationBounds(locationEvent) {\n return locationEvent.bounds;\n },\n /** Smooth pan and zoom to the location of the marker. Only works in Leaflet 1.0+. */\n flyTo: false,\n /**\n * The user location can be inside and outside the current view when the user clicks on the\n * control that is already active. Both cases can be configures separately.\n * Possible values are:\n * - 'setView': zoom and pan to the current location\n * - 'stop': stop locating and remove the location marker\n */\n clickBehavior: {\n /** What should happen if the user clicks on the control while the location is within the current view. */\n inView: \"stop\",\n /** What should happen if the user clicks on the control while the location is outside the current view. */\n outOfView: \"setView\",\n /**\n * What should happen if the user clicks on the control while the location is within the current view\n * and we could be following but are not. Defaults to a special value which inherits from 'inView';\n */\n inViewNotFollowing: \"inView\"\n },\n /**\n * If set, save the map bounds just before centering to the user's\n * location. When control is disabled, set the view back to the\n * bounds that were saved.\n */\n returnToPrevBounds: false,\n /**\n * Keep a cache of the location after the user deactivates the control. If set to false, the user has to wait\n * until the locate API returns a new location before they see where they are again.\n */\n cacheLocation: true,\n /** If set, a circle that shows the location accuracy is drawn. */\n drawCircle: true,\n /** If set, the marker at the users' location is drawn. */\n drawMarker: true,\n /** If set and supported then show the compass heading */\n showCompass: true,\n /** The class to be used to create the marker. For example L.CircleMarker or L.Marker */\n markerClass: LocationMarker,\n /** The class us be used to create the compass bearing arrow */\n compassClass: CompassMarker,\n /** Accuracy circle style properties. NOTE these styles should match the css animations styles */\n circleStyle: {\n className: \"leaflet-control-locate-circle\",\n color: \"#136AEC\",\n fillColor: \"#136AEC\",\n fillOpacity: 0.15,\n weight: 0\n },\n /** Inner marker style properties. Only works if your marker class supports `setStyle`. */\n markerStyle: {\n className: \"leaflet-control-locate-marker\",\n color: \"#fff\",\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 3,\n opacity: 1,\n radius: 9\n },\n /** Compass */\n compassStyle: {\n fillColor: \"#2A93EE\",\n fillOpacity: 1,\n weight: 0,\n color: \"#fff\",\n opacity: 1,\n radius: 9, // How far is the arrow is from the center of of the marker\n width: 9, // Width of the arrow\n depth: 6 // Length of the arrow\n },\n /**\n * Changes to accuracy circle and inner marker while following.\n * It is only necessary to provide the properties that should change.\n */\n followCircleStyle: {},\n followMarkerStyle: {\n // color: '#FFA500',\n // fillColor: '#FFB000'\n },\n followCompassStyle: {},\n /** The CSS class for the icon. For example fa-location-arrow or fa-map-marker */\n icon: \"leaflet-control-locate-location-arrow\",\n iconLoading: \"leaflet-control-locate-spinner\",\n /** The element to be created for icons. For example span or i */\n iconElementTag: \"span\",\n /** The element to be created for the text. For example small or span */\n textElementTag: \"small\",\n /** Padding around the accuracy circle. */\n circlePadding: [0, 0],\n /** Use metric units. */\n metric: true,\n /**\n * This callback can be used in case you would like to override button creation behavior.\n * This is useful for DOM manipulation frameworks such as angular etc.\n * This function should return an object with HtmlElement for the button (link property) and the icon (icon property).\n */\n createButtonCallback(container, options) {\n const link = L.DomUtil.create(\"a\", \"leaflet-bar-part leaflet-bar-part-single\", container);\n link.title = options.strings.title;\n link.href = \"#\";\n link.setAttribute(\"role\", \"button\");\n const icon = L.DomUtil.create(options.iconElementTag, options.icon, link);\n\n if (options.strings.text !== undefined) {\n const text = L.DomUtil.create(options.textElementTag, \"leaflet-locate-text\", link);\n text.textContent = options.strings.text;\n link.classList.add(\"leaflet-locate-text-active\");\n link.parentNode.style.display = \"flex\";\n if (options.icon.length > 0) {\n icon.classList.add(\"leaflet-locate-icon\");\n }\n }\n\n return { link, icon };\n },\n /** This event is called in case of any location error that is not a time out error. */\n onLocationError(err, control) {\n alert(err.message);\n },\n /**\n * This event is called when the user's location is outside the bounds set on the map.\n * The event is called repeatedly when the location changes.\n */\n onLocationOutsideMapBounds(control) {\n control.stop();\n alert(control.options.strings.outsideMapBoundsMsg);\n },\n /** Display a pop-up when the user click on the inner marker. */\n showPopup: true,\n strings: {\n title: \"Show me where I am\",\n metersUnit: \"meters\",\n feetUnit: \"feet\",\n popup: \"You are within {distance} {unit} from this point\",\n outsideMapBoundsMsg: \"You seem located outside the boundaries of the map\"\n },\n /** The default options passed to leaflets locate method. */\n locateOptions: {\n maxZoom: Infinity,\n watch: true, // if you overwrite this, visualization cannot be updated\n setView: false // have to set this to false because we have to\n // do setView manually\n }\n },\n\n initialize(options) {\n // set default options if nothing is set (merge one step deep)\n for (const i in options) {\n if (typeof this.options[i] === \"object\") {\n L.extend(this.options[i], options[i]);\n } else {\n this.options[i] = options[i];\n }\n }\n\n // extend the follow marker style and circle from the normal style\n this.options.followMarkerStyle = L.extend({}, this.options.markerStyle, this.options.followMarkerStyle);\n this.options.followCircleStyle = L.extend({}, this.options.circleStyle, this.options.followCircleStyle);\n this.options.followCompassStyle = L.extend({}, this.options.compassStyle, this.options.followCompassStyle);\n },\n\n /**\n * Add control to map. Returns the container for the control.\n */\n onAdd(map) {\n const container = L.DomUtil.create(\"div\", \"leaflet-control-locate leaflet-bar leaflet-control\");\n this._container = container;\n this._map = map;\n this._layer = this.options.layer || new L.LayerGroup();\n this._layer.addTo(map);\n this._event = undefined;\n this._compassHeading = null;\n this._prevBounds = null;\n\n const linkAndIcon = this.options.createButtonCallback(container, this.options);\n this._link = linkAndIcon.link;\n this._icon = linkAndIcon.icon;\n\n L.DomEvent.on(\n this._link,\n \"click\",\n function (ev) {\n L.DomEvent.stopPropagation(ev);\n L.DomEvent.preventDefault(ev);\n this._onClick();\n },\n this\n ).on(this._link, \"dblclick\", L.DomEvent.stopPropagation);\n\n this._resetVariables();\n\n this._map.on(\"unload\", this._unload, this);\n\n return container;\n },\n\n /**\n * This method is called when the user clicks on the control.\n */\n _onClick() {\n this._justClicked = true;\n const wasFollowing = this._isFollowing();\n this._userPanned = false;\n this._userZoomed = false;\n\n if (this._active && !this._event) {\n // click while requesting\n this.stop();\n } else if (this._active) {\n const behaviors = this.options.clickBehavior;\n let behavior = behaviors.outOfView;\n if (this._map.getBounds().contains(this._event.latlng)) {\n behavior = wasFollowing ? behaviors.inView : behaviors.inViewNotFollowing;\n }\n\n // Allow inheriting from another behavior\n if (behaviors[behavior]) {\n behavior = behaviors[behavior];\n }\n\n switch (behavior) {\n case \"setView\":\n this.setView();\n break;\n case \"stop\":\n this.stop();\n if (this.options.returnToPrevBounds) {\n const f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n f.bind(this._map)(this._prevBounds);\n }\n break;\n }\n } else {\n if (this.options.returnToPrevBounds) {\n this._prevBounds = this._map.getBounds();\n }\n this.start();\n }\n\n this._updateContainerStyle();\n },\n\n /**\n * Starts the plugin:\n * - activates the engine\n * - draws the marker (if coordinates available)\n */\n start() {\n this._activate();\n\n if (this._event) {\n this._drawMarker(this._map);\n\n // if we already have a location but the user clicked on the control\n if (this.options.setView) {\n this.setView();\n }\n }\n this._updateContainerStyle();\n },\n\n /**\n * Stops the plugin:\n * - deactivates the engine\n * - reinitializes the button\n * - removes the marker\n */\n stop() {\n this._deactivate();\n\n this._cleanClasses();\n this._resetVariables();\n\n this._removeMarker();\n },\n\n /**\n * Keep the control active but stop following the location\n */\n stopFollowing() {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n },\n\n /**\n * This method launches the location engine.\n * It is called before the marker is updated,\n * event if it does not mean that the event will be ready.\n *\n * Override it if you want to add more functionalities.\n * It should set the this._active to true and do nothing if\n * this._active is true.\n */\n _activate() {\n if (this._active || !this._map) {\n return;\n }\n\n this._map.locate(this.options.locateOptions);\n this._map.fire(\"locateactivate\", this);\n this._active = true;\n\n // bind event listeners\n this._map.on(\"locationfound\", this._onLocationFound, this);\n this._map.on(\"locationerror\", this._onLocationError, this);\n this._map.on(\"dragstart\", this._onDrag, this);\n this._map.on(\"zoomstart\", this._onZoom, this);\n this._map.on(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n const oriAbs = \"ondeviceorientationabsolute\" in window;\n if (oriAbs || \"ondeviceorientation\" in window) {\n const _this = this;\n const deviceorientation = function () {\n L.DomEvent.on(window, oriAbs ? \"deviceorientationabsolute\" : \"deviceorientation\", _this._onDeviceOrientation, _this);\n };\n if (DeviceOrientationEvent && typeof DeviceOrientationEvent.requestPermission === \"function\") {\n DeviceOrientationEvent.requestPermission().then(function (permissionState) {\n if (permissionState === \"granted\") {\n deviceorientation();\n }\n });\n } else {\n deviceorientation();\n }\n }\n }\n },\n\n /**\n * Called to stop the location engine.\n *\n * Override it to shutdown any functionalities you added on start.\n */\n _deactivate() {\n if (!this._active || !this._map) {\n return;\n }\n\n this._map.stopLocate();\n this._map.fire(\"locatedeactivate\", this);\n this._active = false;\n\n if (!this.options.cacheLocation) {\n this._event = undefined;\n }\n\n // unbind event listeners\n this._map.off(\"locationfound\", this._onLocationFound, this);\n this._map.off(\"locationerror\", this._onLocationError, this);\n this._map.off(\"dragstart\", this._onDrag, this);\n this._map.off(\"zoomstart\", this._onZoom, this);\n this._map.off(\"zoomend\", this._onZoomEnd, this);\n if (this.options.showCompass) {\n this._compassHeading = null;\n if (\"ondeviceorientationabsolute\" in window) {\n L.DomEvent.off(window, \"deviceorientationabsolute\", this._onDeviceOrientation, this);\n } else if (\"ondeviceorientation\" in window) {\n L.DomEvent.off(window, \"deviceorientation\", this._onDeviceOrientation, this);\n }\n }\n },\n\n /**\n * Zoom (unless we should keep the zoom level) and an to the current view.\n */\n setView() {\n this._drawMarker();\n if (this._isOutsideMapBounds()) {\n this._event = undefined; // clear the current location so we can get back into the bounds\n this.options.onLocationOutsideMapBounds(this);\n } else {\n if (this._justClicked && this.options.initialZoomLevel !== false) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.setView;\n f.bind(this._map)([this._event.latitude, this._event.longitude], this.options.initialZoomLevel);\n } else if (this.options.keepCurrentZoomLevel) {\n var f = this.options.flyTo ? this._map.flyTo : this._map.panTo;\n f.bind(this._map)([this._event.latitude, this._event.longitude]);\n } else {\n var f = this.options.flyTo ? this._map.flyToBounds : this._map.fitBounds;\n // Ignore zoom events while setting the viewport as these would stop following\n this._ignoreEvent = true;\n f.bind(this._map)(this.options.getLocationBounds(this._event), {\n padding: this.options.circlePadding,\n maxZoom: this.options.initialZoomLevel || this.options.locateOptions.maxZoom\n });\n L.Util.requestAnimFrame(function () {\n // Wait until after the next animFrame because the flyTo can be async\n this._ignoreEvent = false;\n }, this);\n }\n }\n },\n\n /**\n *\n */\n _drawCompass() {\n if (!this._event) {\n return;\n }\n\n const latlng = this._event.latlng;\n\n if (this.options.showCompass && latlng && this._compassHeading !== null) {\n const cStyle = this._isFollowing() ? this.options.followCompassStyle : this.options.compassStyle;\n if (!this._compass) {\n this._compass = new this.options.compassClass(latlng, this._compassHeading, cStyle).addTo(this._layer);\n } else {\n this._compass.setLatLng(latlng);\n this._compass.setHeading(this._compassHeading);\n // If the compassClass can be updated with setStyle, update it.\n if (this._compass.setStyle) {\n this._compass.setStyle(cStyle);\n }\n }\n //\n }\n if (this._compass && (!this.options.showCompass || this._compassHeading === null)) {\n this._compass.removeFrom(this._layer);\n this._compass = null;\n }\n },\n\n /**\n * Draw the marker and accuracy circle on the map.\n *\n * Uses the event retrieved from onLocationFound from the map.\n */\n _drawMarker() {\n if (this._event.accuracy === undefined) {\n this._event.accuracy = 0;\n }\n\n const radius = this._event.accuracy;\n const latlng = this._event.latlng;\n\n // circle with the radius of the location's accuracy\n if (this.options.drawCircle) {\n const style = this._isFollowing() ? this.options.followCircleStyle : this.options.circleStyle;\n\n if (!this._circle) {\n this._circle = L.circle(latlng, radius, style).addTo(this._layer);\n } else {\n this._circle.setLatLng(latlng).setRadius(radius).setStyle(style);\n }\n }\n\n let distance;\n let unit;\n if (this.options.metric) {\n distance = radius.toFixed(0);\n unit = this.options.strings.metersUnit;\n } else {\n distance = (radius * 3.2808399).toFixed(0);\n unit = this.options.strings.feetUnit;\n }\n\n // small inner marker\n if (this.options.drawMarker) {\n const mStyle = this._isFollowing() ? this.options.followMarkerStyle : this.options.markerStyle;\n if (!this._marker) {\n this._marker = new this.options.markerClass(latlng, mStyle).addTo(this._layer);\n } else {\n this._marker.setLatLng(latlng);\n // If the markerClass can be updated with setStyle, update it.\n if (this._marker.setStyle) {\n this._marker.setStyle(mStyle);\n }\n }\n }\n\n this._drawCompass();\n\n const t = this.options.strings.popup;\n function getPopupText() {\n if (typeof t === \"string\") {\n return L.Util.template(t, { distance, unit });\n } else if (typeof t === \"function\") {\n return t({ distance, unit });\n } else {\n return t;\n }\n }\n if (this.options.showPopup && t && this._marker) {\n this._marker.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n if (this.options.showPopup && t && this._compass) {\n this._compass.bindPopup(getPopupText())._popup.setLatLng(latlng);\n }\n },\n\n /**\n * Remove the marker from map.\n */\n _removeMarker() {\n this._layer.clearLayers();\n this._marker = undefined;\n this._circle = undefined;\n },\n\n /**\n * Unload the plugin and all event listeners.\n * Kind of the opposite of onAdd.\n */\n _unload() {\n this.stop();\n this._map.off(\"unload\", this._unload, this);\n },\n\n /**\n * Sets the compass heading\n */\n _setCompassHeading(angle) {\n if (!isNaN(parseFloat(angle)) && isFinite(angle)) {\n angle = Math.round(angle);\n\n this._compassHeading = angle;\n L.Util.requestAnimFrame(this._drawCompass, this);\n } else {\n this._compassHeading = null;\n }\n },\n\n /**\n * If the compass fails calibration just fail safely and remove the compass\n */\n _onCompassNeedsCalibration() {\n this._setCompassHeading();\n },\n\n /**\n * Process and normalise compass events\n */\n _onDeviceOrientation(e) {\n if (!this._active) {\n return;\n }\n\n if (e.webkitCompassHeading) {\n // iOS\n this._setCompassHeading(e.webkitCompassHeading);\n } else if (e.absolute && e.alpha) {\n // Android\n this._setCompassHeading(360 - e.alpha);\n }\n },\n\n /**\n * Calls deactivate and dispatches an error.\n */\n _onLocationError(err) {\n // ignore time out error if the location is watched\n if (err.code == 3 && this.options.locateOptions.watch) {\n return;\n }\n\n this.stop();\n this.options.onLocationError(err, this);\n },\n\n /**\n * Stores the received event and updates the marker.\n */\n _onLocationFound(e) {\n // no need to do anything if the location has not changed\n if (this._event && this._event.latlng.lat === e.latlng.lat && this._event.latlng.lng === e.latlng.lng && this._event.accuracy === e.accuracy) {\n return;\n }\n\n if (!this._active) {\n // we may have a stray event\n return;\n }\n\n this._event = e;\n\n this._drawMarker();\n this._updateContainerStyle();\n\n switch (this.options.setView) {\n case \"once\":\n if (this._justClicked) {\n this.setView();\n }\n break;\n case \"untilPan\":\n if (!this._userPanned) {\n this.setView();\n }\n break;\n case \"untilPanOrZoom\":\n if (!this._userPanned && !this._userZoomed) {\n this.setView();\n }\n break;\n case \"always\":\n this.setView();\n break;\n case false:\n // don't set the view\n break;\n }\n\n this._justClicked = false;\n },\n\n /**\n * When the user drags. Need a separate event so we can bind and unbind event listeners.\n */\n _onDrag() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * When the user zooms. Need a separate event so we can bind and unbind event listeners.\n */\n _onZoom() {\n // only react to drags once we have a location\n if (this._event && !this._ignoreEvent) {\n this._userZoomed = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n },\n\n /**\n * After a zoom ends update the compass and handle sideways zooms\n */\n _onZoomEnd() {\n if (this._event) {\n this._drawCompass();\n }\n\n if (this._event && !this._ignoreEvent) {\n // If we have zoomed in and out and ended up sideways treat it as a pan\n if (this._marker && !this._map.getBounds().pad(-0.3).contains(this._marker.getLatLng())) {\n this._userPanned = true;\n this._updateContainerStyle();\n this._drawMarker();\n }\n }\n },\n\n /**\n * Compute whether the map is following the user location with pan and zoom.\n */\n _isFollowing() {\n if (!this._active) {\n return false;\n }\n\n if (this.options.setView === \"always\") {\n return true;\n } else if (this.options.setView === \"untilPan\") {\n return !this._userPanned;\n } else if (this.options.setView === \"untilPanOrZoom\") {\n return !this._userPanned && !this._userZoomed;\n }\n },\n\n /**\n * Check if location is in map bounds\n */\n _isOutsideMapBounds() {\n if (this._event === undefined) {\n return false;\n }\n return this._map.options.maxBounds && !this._map.options.maxBounds.contains(this._event.latlng);\n },\n\n /**\n * Toggles button class between following and active.\n */\n _updateContainerStyle() {\n if (!this._container) {\n return;\n }\n\n if (this._active && !this._event) {\n // active but don't have a location yet\n this._setClasses(\"requesting\");\n } else if (this._isFollowing()) {\n this._setClasses(\"following\");\n } else if (this._active) {\n this._setClasses(\"active\");\n } else {\n this._cleanClasses();\n }\n },\n\n /**\n * Sets the CSS classes for the state.\n */\n _setClasses(state) {\n if (state == \"requesting\") {\n removeClasses(this._container, \"active following\");\n addClasses(this._container, \"requesting\");\n\n removeClasses(this._icon, this.options.icon);\n addClasses(this._icon, this.options.iconLoading);\n } else if (state == \"active\") {\n removeClasses(this._container, \"requesting following\");\n addClasses(this._container, \"active\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n } else if (state == \"following\") {\n removeClasses(this._container, \"requesting\");\n addClasses(this._container, \"active following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n }\n },\n\n /**\n * Removes all classes from button.\n */\n _cleanClasses() {\n L.DomUtil.removeClass(this._container, \"requesting\");\n L.DomUtil.removeClass(this._container, \"active\");\n L.DomUtil.removeClass(this._container, \"following\");\n\n removeClasses(this._icon, this.options.iconLoading);\n addClasses(this._icon, this.options.icon);\n },\n\n /**\n * Reinitializes state variables.\n */\n _resetVariables() {\n // whether locate is active or not\n this._active = false;\n\n // true if the control was clicked for the first time\n // we need this so we can pan and zoom once we have the location\n this._justClicked = false;\n\n // true if the user has panned the map after clicking the control\n this._userPanned = false;\n\n // true if the user has zoomed the map after clicking the control\n this._userZoomed = false;\n }\n });\n\n L.control.locate = (options) => new L.Control.Locate(options);\n\n return LocateControl;\n}, window);\n","// Following https://github.com/Leaflet/Leaflet/blob/master/PLUGIN-GUIDE.md\n(function (factory, window) {\n\n // define an AMD module that relies on 'leaflet'\n if (typeof define === 'function' && define.amd) {\n define(['leaflet'], factory);\n\n // define a Common JS module that relies on 'leaflet'\n } else if (typeof exports === 'object') {\n module.exports = factory(require('leaflet'));\n }\n\n // attach your plugin to the global 'L' variable\n if (typeof window !== 'undefined' && window.L) {\n factory(window.L);\n\n }\n}(function (L) {\n L.locales = {};\n L.locale = null;\n L.registerLocale = function registerLocale(code, locale) {\n L.locales[code] = L.Util.extend({}, L.locales[code], locale);\n };\n L.setLocale = function setLocale(code) {\n L.locale = code;\n };\n return L.i18n = L._ = function translate(string, data) {\n if (L.locale && L.locales[L.locale] && typeof L.locales[L.locale][string] !== \"undefined\") {\n string = L.locales[L.locale][string];\n }\n try {\n // Do not fail if some data is missing\n // a bad translation should not break the app\n string = L.Util.template(string, data);\n }\n catch (err) {/*pass*/\n }\n\n return string;\n };\n}, window));\n","!function(t){\"function\"==typeof define&&define.amd?define(t):t()}((function(){\"use strict\";!function(t,e){\"function\"==typeof define&&define.amd?define([\"leaflet\"],t):\"object\"==typeof exports&&(module.exports=t(require(\"leaflet\"))),void 0!==e&&e.L&&t(e.L)}((function(t){return t.locales={},t.locale=null,t.registerLocale=function(e,a){t.locales[e]=t.Util.extend({},t.locales[e],a)},t.setLocale=function(e){t.locale=e},t.i18n=t._=function(e,a){t.locale&&t.locales[t.locale]&&t.locales[t.locale][e]&&(e=t.locales[t.locale][e]);try{e=t.Util.template(e,a)}catch(t){}return e}}),window);var t=6e4,e=60*t,a=24*e;function i(i){var n=Math.floor(i/a),r=Math.floor((i-n*a)/e),o=Math.floor((i-n*a-r*e)/t),s=Math.round((i-n*a-r*e-o*t)/1e3);return 60===s&&(o++,s=0),60===o&&(r++,o=0),24===r&&(n++,r=0),(n?n+\"d \":\"\")+r.toString().padStart(2,0)+\":\"+o.toString().padStart(2,0)+\"'\"+s.toString().padStart(2,0)+'\"'}function n(t,e){var a=m(\"a\",\"\",{href:t,target:\"_new\",download:e||\"\",style:\"display:none;\"}),i=document.body;i.appendChild(a),a.click(),i.removeChild(a)}function r(t,e,a){return!1===e?Promise.resolve():a instanceof Promise?a:new Promise((function(e,a){var i=document.createElement(\"script\");i.addEventListener(\"load\",e,{once:!0}),i.src=t,document.head.appendChild(i)}))}function o(t,e){e.classed(\"canvas-path\",!0),t.beginPath(),t.moveTo(0,0);var a=new Path2D(e.attr(\"d\"));t.strokeStyle=e.attr(\"stroke\"),t.fillStyle=e.attr(\"fill\"),t.lineWidth=1.25,t.globalCompositeOperation=\"source-over\",t.globalAlpha=e.attr(\"stroke-opacity\")||.3,t.stroke(a),t.globalAlpha=e.attr(\"fill-opacity\")||.45,t.fill(a),t.globalAlpha=1,t.closePath()}function s(t,e){return e?t<e[0]?e[0]:t>e[1]?e[1]:t:t}function l(t,e){t&&e.split(\" \").every((function(e){return e&&L.DomUtil.addClass(t,e)}))}function c(t,e){t&&e.split(\" \").every((function(e){return e&&L.DomUtil.removeClass(t,e)}))}function h(t,e,a){return(a?l:c).call(null,t,e)}function d(t,e,a){e&&c(t,e),a&&l(t,a)}function u(t,e,a){return void 0===a?L.DomUtil.getStyle(t,e):t.style.setProperty(e,a)}function _(t,e,a,i){return u(t,e,i?a:\"\")}function p(t,e,a,i){return t[i?\"on\":\"off\"](e,a)}function m(t,e,a,i){var n=L.DomUtil.create(t,e||\"\");return a&&v(n,a),i&&f(i,n),n}function f(t,e){return t.appendChild(e)}function g(t,e,a){return t.insertAdjacentElement(a,e)}function v(t,e){for(var a in e)t.setAttribute(a,e[a])}function y(t,e){return(e||document).querySelector(t)}var x=L.DomEvent.on,b=L.DomEvent.off,k=L.DomUtil.hasClass;function w(){return Math.random().toString(36).substr(2,9)}function M(t,e){for(var a in t)e(t[a],a)}var C=Object.freeze({__proto__:null,formatTime:i,saveFile:n,lazyLoader:r,drawCanvas:o,clamp:s,addClass:l,removeClass:c,toggleClass:h,replaceClass:d,style:u,toggleStyle:_,toggleEvent:p,create:m,append:f,insert:g,setAttributes:v,select:y,on:x,off:b,hasClass:k,randomId:w,each:M}),A={lightblue:{area:\"#3366CC\",alpha:.45,stroke:\"#3366CC\"},magenta:{area:\"#FF005E\"},yellow:{area:\"#FF0\"},purple:{area:\"#732C7B\"},steelblue:{area:\"#4682B4\"},red:{area:\"#F00\"},lime:{area:\"#9CC222\",line:\"#566B13\"}},S=function(t){t.width;var e=t.height,a=t.xAttr,i=t.yAttr,n=t.scaleX,r=t.scaleY,o=t.interpolation,s=void 0===o?\"curveLinear\":o;return d3.area().curve(\"string\"==typeof s?d3[s]:s).x((function(t){return t.xDiagCoord=n(t[a])})).y0(e).y1((function(t){return r(t[i])}))},z=function(t){var e=t.name,a=t.color,i=t.strokeColor,n=t.strokeOpacity,r=t.fillOpacity,o=d3.create(\"svg:path\");return e&&o.classed(e,!0),o.style(\"pointer-events\",\"none\"),o.attr(\"fill\",a||\"#3366CC\").attr(\"stroke\",i||\"#000\").attr(\"stroke-opacity\",n||\"1\").attr(\"fill-opacity\",r||\"0.8\"),o},D=function(t){var e=t.type,a=void 0===e?\"axis\":e,i=t.tickSize,n=void 0===i?6:i,r=t.tickPadding,o=void 0===r?3:r,s=t.position,l=t.height,c=t.width,h=t.axis,d=t.scale,u=t.ticks,_=t.tickFormat,p=t.label,m=t.labelX,f=t.labelY,g=t.name,v=void 0===g?\"\":g,y=t.onAxisMount;return function(t){var e=0,i=0;\"bottom\"==s&&(i=l),\"right\"==s&&(e=c),\"x\"==h&&\"grid\"==a?n=-l:\"y\"==h&&\"grid\"==a&&(n=-c);var r=d3[\"axis\"+s.replace(/\\b\\w/g,(function(t){return t.toUpperCase()}))]().scale(d).ticks(u).tickPadding(o).tickSize(n).tickFormat(_),g=t.append(\"g\").attr(\"class\",[h,a,s,v].join(\" \")).attr(\"transform\",\"translate(\"+e+\",\"+i+\")\").call(r);return p&&g.append(\"svg:text\").attr(\"x\",m).attr(\"y\",f).text(p),y&&g.call(y),g}},F=function(t){return t.type=\"grid\",D(t)},E=function(t){var e=t.theme,a=t.xCoord,i=void 0===a?0:a,n=t.yCoord,r=void 0===n?0:n,o=t.labels,s=void 0===o?{}:o,l=t.item,c=void 0===l?{}:l,h=t.length,d=void 0===h?0:h;return function(t){t.attr(\"class\",\"height-focus-group\");var a,n=t.select(\".height-focus.line\"),o=t.select(\".height-focus.circle-lower\"),l=t.select(\".height-focus-label\");return n.node()||(n=t.append(\"svg:line\")),o.node()||(o=t.append(\"svg:circle\")),l.node()||(l=t.append(\"svg:text\")),isNaN(i)||isNaN(r)||(o.attr(\"class\",e+\" height-focus circle-lower\").attr(\"transform\",\"translate(\"+i+\",\"+r+\")\").attr(\"r\",6).attr(\"cx\",0).attr(\"cy\",0),n.attr(\"class\",e+\" height-focus line\").attr(\"x1\",i).attr(\"x2\",i).attr(\"y1\",r).attr(\"y2\",d),l.attr(\"class\",e+\" height-focus-label\").style(\"pointer-events\",\"none\").attr(\"x\",i+5).attr(\"y\",d),Object.keys(s).sort((function(t,e){return s[t].order-s[e].order})).forEach((function(t){(a=l.select(\".height-focus-\"+s[t].name)).size()||(a=l.append(\"svg:tspan\").attr(\"class\",\"height-focus-\"+s[t].name).attr(\"dy\",\"1.5em\")),a.text(\"function\"!=typeof s[t].value?s[t].value:s[t].value(c))})),l.select(\"tspan\").attr(\"dy\",l.selectAll(\"tspan\").size()>1?\"-1.5em\":\"0em\"),l.selectAll(\"tspan\").attr(\"x\",i+5)),t}},T=function(t){var e=t.name,a=t.label,i=t.width,n=t.height,r=t.margins,o=void 0===r?{}:r,s=t.color,l=t.path;return function(t){return t.attr(\"class\",\"legend-item legend-\"+e.toLowerCase()).attr(\"data-name\",e),t.on(\"click.legend\",(function(){return d3.select(t.node().ownerSVGElement||t).dispatch(\"legend_clicked\",{detail:{path:l.node(),name:e,legend:t.node(),enabled:!l.classed(\"leaflet-hidden\")}})})),t.append(\"svg:rect\").attr(\"x\",i/2-50).attr(\"y\",n+o.bottom/2).attr(\"width\",50).attr(\"height\",10).attr(\"fill\",s).attr(\"stroke\",\"#000\").attr(\"stroke-opacity\",\"0.5\").attr(\"fill-opacity\",\"0.25\"),t.append(\"svg:text\").text(L._(a||e)).attr(\"x\",i/2+5).attr(\"font-size\",10).style(\"text-decoration-thickness\",\"2px\").style(\"font-weight\",\"700\").attr(\"y\",n+o.bottom/2).attr(\"dy\",\"0.75em\"),t}},I=function(t){var e=t.xCoord,a=t.yCoord,i=t.width,n=t.height,r=t.labels,o=void 0===r?{}:r,s=t.item,l=void 0===s?{}:s;return function(t){var r=t.select(\".mouse-focus-line\"),s=t.select(\".mouse-focus-label\");r.node()||(r=t.append(\"svg:line\")),s.node()||(s=t.append(\"g\"));var c=s.select(\".mouse-focus-label-rect\"),h=s.select(\".mouse-focus-label-text\");c.node()||(c=s.append(\"svg:rect\")),h.node()||(h=s.append(\"svg:text\"));var d,u=0,_=0,p={width:0,height:0};try{p=h.node().getBBox()}catch(e){return t}return e&&(u=e+(e<i/2?10:-p.width-10)),a&&(_=Math.max(a-p.height,L.Browser.webkit?0:-1/0)),r.attr(\"class\",\"mouse-focus-line\").attr(\"x2\",e).attr(\"y2\",0).attr(\"x1\",e).attr(\"y1\",n),s.attr(\"class\",\"mouse-focus-label\"),c.attr(\"class\",\"mouse-focus-label-rect\").attr(\"x\",u-5).attr(\"y\",_-5).attr(\"width\",p.width+10).attr(\"height\",p.height+10).attr(\"rx\",3).attr(\"ry\",3),h.attr(\"class\",\"mouse-focus-label-text\").style(\"font-weight\",\"700\").attr(\"y\",_),Object.keys(o).sort((function(t,e){return o[t].order-o[e].order})).forEach((function(t){(d=h.select(\".mouse-focus-label-\"+o[t].name)).size()||(d=h.append(\"svg:tspan\",\".mouse-focus-label-x\").attr(\"class\",\"mouse-focus-label-\"+o[t].name).attr(\"dy\",\"1.5em\")),d.text(\"function\"!=typeof o[t].value?o[t].value:o[t].value(l))})),h.select(\"tspan\").attr(\"dy\",\"1em\"),h.selectAll(\"tspan\").attr(\"x\",u),t}},O=function(t){var e=t.height,a=t.width;return function(t){t.data([{x:0,y:e}]).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"}));var i=t.selectAll(\".horizontal-drag-rect\").data([{w:a}]),n=t.selectAll(\".horizontal-drag-line\").data([{w:a}]),r=t.selectAll(\".horizontal-drag-label\").data([{w:a-8}]),o=t.selectAll(\".horizontal-drag-symbol\").data([{type:d3.symbolTriangle,x:a+7,y:0,angle:-90,size:50}]);return i.exit().remove(),n.exit().remove(),r.exit().remove(),o.exit().remove(),i.enter().append(\"svg:rect\").attr(\"class\",\"horizontal-drag-rect\").attr(\"x\",0).attr(\"y\",-8).attr(\"height\",8).attr(\"fill\",\"none\").attr(\"pointer-events\",\"all\").merge(i).attr(\"width\",(function(t){return t.w})),n.enter().append(\"svg:line\").attr(\"class\",\"horizontal-drag-line\").attr(\"x1\",0).merge(n).attr(\"x2\",(function(t){return t.w})),r.enter().append(\"svg:text\").attr(\"class\",\"horizontal-drag-label\").attr(\"text-anchor\",\"end\").attr(\"y\",-8).merge(r).attr(\"x\",(function(t){return t.w})),o.enter().append(\"svg:path\").attr(\"class\",\"horizontal-drag-symbol\").merge(o).attr(\"d\",d3.symbol().type((function(t){return t.type})).size((function(t){return t.size}))).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\") rotate(\"+t.angle+\")\"})),t}},N=function(t){var e=t.point,a=t.height,i=t.width,n=t.x,r=t.y;return function(t){return isNaN(n)||isNaN(r)||(e.item&&e.item.property(\"isConnected\")||(e.position=e.position||\"bottom\",e.item=t.append(\"g\"),e.item.append(\"svg:line\").attr(\"y1\",0).attr(\"x1\",0).attr(\"style\",\"stroke: rgb(51, 51, 51); stroke-width: 0.5; stroke-dasharray: 2, 2;\"),e.item.append(\"svg:circle\").attr(\"class\",\" height-focus circle-lower\").attr(\"r\",3),e.label&&e.item.append(\"svg:text\").attr(\"dx\",\"4px\").attr(\"dy\",\"-4px\")),e.item.datum({pos:e.position,x:n,y:r}).attr(\"class\",(function(t){return\"point \"+t.pos})).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"})),e.item.select(\"line\").datum({y2:{top:-r,bottom:a-r}[e.position],x2:{left:-n,right:i-n}[e.position]||0}).attr(\"y2\",(function(t){return t.y2})).attr(\"x2\",(function(t){return t.x2})),e.label&&e.item.select(\"text\").text(e.label)),t}},P=function(t){var e=t.min,a=t.max,i=t.attr,n=t.name,r=t.forceBounds,o=t.scale;return function(t){i=i||n,o&&o.attr&&(i=o.attr);var s=t&&t.length?d3.extent(t,(function(t){return t[i]})):[0,1];return void 0!==e&&(e<s[0]||r)&&(s[0]=e),void 0!==a&&(a>s[1]||r)&&(s[1]=a),s}},B=function(t){var e=t.axis;return function(t,a){return\"x\"==e?[0,t]:\"y\"==e?[a,0]:void 0}},G=function(t){var e=t.data,a=t.attr,i=t.min,n=t.max,r=t.forceBounds,o=t.range;return d3.scaleLinear().range(o).domain(P({min:i,max:n,attr:a,forceBounds:r})(e))},H=function(t){var e=t.width,a=t.height,i=t.margins,n=void 0===i?{}:i,r=(t.ruler,e-n.left-n.right),o=a-n.top-n.bottom,s=d3.create(\"svg:svg\").attr(\"class\",\"background\"),l=s.append(\"g\"),c={grid:l.append(\"g\").attr(\"class\",\"grid\"),area:l.append(\"g\").attr(\"class\",\"area\"),axis:l.append(\"g\").attr(\"class\",\"axis\"),point:l.append(\"g\").attr(\"class\",\"point\"),brush:l.append(\"g\").attr(\"class\",\"brush\"),tooltip:l.append(\"g\").attr(\"class\",\"tooltip\").attr(\"display\",\"none\"),ruler:l.append(\"g\").attr(\"class\",\"ruler\"),legend:l.append(\"g\").attr(\"class\",\"legend\")},h=c.area.append(\"svg:mask\").attr(\"id\",\"elevation-clipper\").attr(\"fill-opacity\",1),d=h.append(\"svg:rect\").attr(\"class\",\"zoom\").attr(\"fill\",\"white\"),u=c.area.append(\"svg:foreignObject\").attr(\"mask\",\"url(#\"+h.attr(\"id\")+\")\"),_=u.append(\"xhtml:canvas\").attr(\"class\",\"canvas-plot\"),p=_.node().getContext(\"2d\");c.tooltip.call(I({xCoord:0,yCoord:0,height:o,width:r,labels:{}}));var m=d3.brushX().on(\"start.cursor end.cursor brush.cursor\",(function(){return c.brush.select(\".overlay\").attr(\"cursor\",null)})),f={mask:h,canvas:_,context:p,brush:m},g={svg:s,g:l,panes:c,utils:f,scale:function(t){return{x:G(t.x),y:G(t.y)}},_resize:function(t){var e=t.width,a=t.height,i=t.margins,n=void 0===i?{}:i,r=t.ruler,o=e-n.left-n.right,h=a-n.top-n.bottom;s.attr(\"viewBox\",\"0 0 \".concat(e,\" \").concat(a)).attr(\"width\",e).attr(\"height\",a),l.attr(\"transform\",\"translate(\"+n.left+\",\"+n.top+\")\"),/Mac|iPod|iPhone|iPad/.test(navigator.platform)&&/AppleWebkit/i.test(navigator.userAgent)&&_.style(\"transform\",\"translate(\"+n.left+\"px,\"+n.top+\"px)\"),d.attr(\"x\",0).attr(\"y\",0).attr(\"width\",o).attr(\"height\",h),u.attr(\"width\",o).attr(\"height\",h),_.attr(\"width\",o).attr(\"height\",h),r&&c.ruler.call(O({height:h,width:o})),c.brush.call(m.extent([[0,0],[o,h]])),c.brush.select(\".overlay\").attr(\"cursor\",null),g._width=o,g._height=h,g.svg.dispatch(\"resize\",{detail:{width:o,height:h}})},pane:function(t){return c[t]||(c[t]=l.append(\"g\").attr(\"class\",t)),c[t]},get:function(t){return f[t]}};return g._resize({width:e,height:a,margins:n}),g},X=Object.freeze({__proto__:null,Colors:A,Area:S,Path:z,Axis:D,Grid:F,PositionMarker:E,LegendItem:T,Tooltip:I,Ruler:O,CheckPoint:N,Domain:P,Range:B,Scale:G,Bisect:function(t){var e=t.data,a=void 0===e?[0,1]:e,i=t.scale,n=t.x,r=t.attr;return d3.bisector((function(t){return t[r]})).left(a,i.invert(n))},Chart:H}),U=L.Class.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,initialize:function(t,e){var a=this;this.options=t,this.control=e,this._data=[],this._props={scales:{},paths:{},areas:{},grids:{},axes:{},legendItems:{},tooltipItems:{}},this._scales={},this._domains={},this._ranges={},this._paths={},this._brushEnabled=t.dragging,this._zoomEnabled=t.zooming;var i=this._chart=H(t);this._container=i.svg;this._grid=i.pane(\"grid\"),this._area=i.pane(\"area\"),this._point=i.pane(\"point\"),this._axis=i.pane(\"axis\"),this._legend=i.pane(\"legend\"),this._tooltip=i.pane(\"tooltip\"),this._ruler=i.pane(\"ruler\"),this._initScale(),this._mask=i.get(\"mask\"),this._context=i.get(\"context\"),this._brush=i.get(\"brush\"),this._zoom=d3.zoom(),this._drag=d3.drag(),this._initInteractions(),this._maskGaps=[],e.on(\"eletrack_added\",(function(t){a._maskGaps.push(t.index),e.once(\"eledata_updated\",(function(t){return a._maskGaps.push(t.index)}))}))},update:function(t){return t&&(t.data&&(this._data=t.data),t.options&&(this.options=t.options)),this._updateScale(),this._updateArea(),this._updateAxis(),this._updateLegend(),this._updateClipper(),this},render:function(){var t=this;return function(e){return e.append((function(){return t._container.node()}))}},clear:function(){this._resetDrag(),this._hideDiagramIndicator(),this._area.selectAll(\"path\").attr(\"d\",\"M0 0\"),this._context.clearRect(0,0,this._width(),this._height()),this._maskGaps=[],this._mask.selectAll(\".gap\").remove()},_drawPath:function(t){var e=this._paths[t],a=this._props.areas[t];e.datum(this._data).attr(\"d\",S(L.extend({},a,{width:this._width(),height:this._height(),scaleX:this._scales[a.scaleX],scaleY:this._scales[a.scaleY]}))),e.classed(\"leaflet-hidden\")||(this.options.preferCanvas?o(this._context,e):this._area.append((function(){return e.node()})))},_hasActiveLayers:function(){var t=this._paths;for(var e in t)if(!t[e].classed(\"leaflet-hidden\"))return!0;return!1},_initBrush:function(t){var e=this,a=function(t){if(e._data.length&&(\"brush\"!=t.type||t.sourceEvent)){var a=e._chart.panes.brush.select(\".overlay\").node(),i=d3.pointers(t,a)[0][0],n=e._data[e._findIndexForXCoord(i)];e.fire(\"mouse_move\",{item:n,xCoord:i})}};this._brush.filter((function(t){return e._brushEnabled&&!t.shiftKey&&!t.button})).on(\"end.update\",(function(t){if(e._data.length){var a=t.selection;if(a){var i=e._findIndexForXCoord(a[0]),n=e._findIndexForXCoord(a[1]);e.fire(\"dragged\",{dragstart:e._data[i],dragend:e._data[n]})}}})).on(\"brush.update\",a),this._chart.panes.brush.on(\"mouseenter.focus touchstart.focus\",this.fire.bind(this,\"mouse_enter\")).on(\"mouseout.focus touchend.focus\",this.fire.bind(this,\"mouse_out\")).on(\"mousemove.focus touchmove.focus\",a)},_initClipper:function(){var t=this,e=this._container,a=this.options.margins,i=this._zoom;i.scaleExtent([1,10]).extent([[a.left,0],[this._width()-a.right,this._height()]]).translateExtent([[a.left,-1/0],[this._width()-a.right,1/0]]).filter((function(e){return t._zoomEnabled&&(e.shiftKey||4==e.buttons)})).on(\"start\",(function(a){a.sourceEvent&&\"mousedown\"==a.sourceEvent.type&&e.style(\"cursor\",\"grabbing\"),1==a.transform.k&&0==a.transform.x&&(t._container.classed(\"zoomed\",!0),t._mask&&t._point.attr(\"mask\",\"url(#\"+t._mask.attr(\"id\")+\")\")),t.zooming=!0})).on(\"end\",(function(a){1==a.transform.k&&0==a.transform.x&&(t._container.classed(\"zoomed\",!1),t._mask&&t._point.attr(\"mask\",null)),t.zooming=!1,e.style(\"cursor\",\"\")})).on(\"zoom\",(function(e){t.zooming=!1,t._updateScale(),t.zooming=!0,t._scales.distance=t._x=e.transform.rescaleX(t._x),t._scales.time&&(t._scales.time=e.transform.rescaleX(t._scales.time)),t._resetDrag(),e.sourceEvent&&\"mousemove\"==e.sourceEvent.type&&t._hideDiagramIndicator(),t.fire(\"zoom\")})),e.call(i)},_initInteractions:function(){this._initBrush(),this._initRuler(),this._initClipper(),this._initLegend()},_initLegend:function(){var t=this;this._container.on(\"legend_clicked\",(function(e){var a=e.detail,i=a.path,n=a.legend,r=a.name,o=a.enabled;if(i){var s=y(\"text\",n),l=y(\"rect\",n);_(s,\"text-decoration-line\",\"line-through\",o),_(l,\"fill-opacity\",\"0\",o),h(i,\"leaflet-hidden\",o),t._updateArea(),t.fire(\"elepath_toggle\",{path:i,name:r,legend:n,enabled:o})}}))},_initRuler:function(){var t=this;if(this.options.ruler){var e=d3.format(\".0f\"),a=this._drag;a.on(\"start end\",(function(e,a){var i=t._height(),n=t._ruler.data()[0].y;(n>=i||n<=0)&&t._ruler.select(\".horizontal-drag-label\").text(\"\"),t._hideDiagramIndicator()})).on(\"drag\",(function(a,i){var n=t._height(),r=d3.pointers(a,t._area.node())[0][1],o=r>0?r<n?r:n:0,s=t._y.invert(o),l=L.extend(t._ruler.data()[0],{y:o});t._ruler.data([l]).attr(\"transform\",(function(t){return\"translate(\"+t.x+\",\"+t.y+\")\"})).classed(\"active\",o<n),t._container.select(\".horizontal-drag-label\").text(e(s)+\" \"+(t.options.imperial?\"ft\":\"m\")),t.fire(\"ruler_filter\",{coords:r<n&&r>0?t._findCoordsForY(r):[]})})),this._ruler.call(a)}},_initScale:function(){var t=this.options;this._registerAxisScale({axis:\"x\",position:\"bottom\",attr:t.xAttr,min:t.xAxisMin,max:t.xAxisMax,name:\"distance\"}),this._registerAxisScale({axis:\"y\",position:\"left\",attr:t.yAttr,min:t.yAxisMin,max:t.yAxisMax,name:\"altitude\"}),this._x=this._scales.distance,this._y=this._scales.altitude},_registerAreaPath:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x);var e=this.options;t.xAttr||(t.xAttr=e.xAttr),t.yAttr||(t.yAttr=e.yAttr),void 0===t.preferCanvas&&(t.preferCanvas=e.preferCanvas);var a=z(t);this._paths[t.name]=a,this._props.areas[t.name]=t,e.legend&&(this._props.legendItems[t.name]={name:t.name,label:t.label,color:t.color,path:a})},_registerAxisGrid:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x),this._props.grids[t.name||t.axis]=t},_registerAxisScale:function(t){\"y\"==t.scale?t.scale=this._y:\"x\"==t.scale&&(t.scale=this._x);var e=this.options,a=t.scale;if(\"function\"==typeof this._scales[t.name])t.scale=this._scales[t.name];else if(\"function\"!=typeof a){(a=L.extend({data:this._data,forceBounds:e.forceAxisBounds},a)).attr=a.attr||t.name;var i=this._domains[t.name]=P(t),n=this._ranges[t.name]=B(t);a.range=a.range||n(this._width(),this._height()),a.domain=a.domain||i(this._data),this._props.scales[t.name]=a,t.scale=this._scales[t.name]=G(a)}return t.ticks||(\"x\"==t.axis?t.ticks=e.xTicks:\"y\"==t.axis&&(t.ticks=e.yTicks)),this._props.axes[t.name]=t,a},_registerCheckPoint:function(t){var e,a,i;this._data.length&&(t.latlng?(e=this._data[this._findIndexForLatLng(t.latlng)],a=this._x(e.dist),i=this._y(e.z)):isNaN(t.dist)||(a=this._x(t.dist),e=this._data[this._findIndexForXCoord(a)],i=this._y(e.z)),this._point.call(N({point:t,width:this._width(),height:this._height(),x:a,y:i})))},_registerTooltip:function(t){var e;t.order=null!==(e=t.order)&&void 0!==e?e:100,this._props.tooltipItems[t.name]=t},_updateArea:function(){var t=this._paths;for(var e in this._context.clearRect(0,0,this._width(),this._height()),t)t[e].classed(\"leaflet-hidden\")||this._drawPath(e)},_updateAxis:function(){var t=this.options;this._grid.selectAll(\"g\").remove(),this._axis.selectAll(\"g\").remove();var e,a,i,n=this._props.grids,r=this._props.axes,o={width:this._width(),height:this._height(),tickFormat:\"\"},s={width:this._width(),height:this._height()};for(var l in n)e=L.extend({},o,n[l]),i=F(e),this._grid.call(i);for(var c in r)!1!==t[c]&&\"summary\"!==t[c]&&(e=L.extend({},s,r[c]),a=D(e),this._axis.call(a));this._axis.selectAll(\".y.axis.right\").each((function(t,e,a){var i=d3.select(a[e]),n=i.attr(\"transform\"),r=n.substring(n.indexOf(\"(\")+1,n.indexOf(\")\")).split(\",\");i.attr(\"transform\",\"translate(\"+(+r[0]+40*e)+\",\"+r[1]+\")\"),e>0&&(i.select(\":scope > path\").attr(\"opacity\",.25),i.selectAll(\":scope > .tick line\").attr(\"opacity\",.75))}))},_updateClipper:function(){var t=this,e=this.options.margins;this._zoom.scaleExtent([1,10]).extent([[e.left,0],[this._width()-e.right,this._height()]]).translateExtent([[e.left,-1/0],[this._width()-e.right,1/0]]),this._mask.selectAll(\".gap\").remove(),this._maskGaps.forEach((function(e,a){if(!(a>=t._maskGaps.length-2)){var i=t._data[t._maskGaps[a]],n=t._data[t._maskGaps[a+1]],r=t._x(t._data[t._findIndexForLatLng(i.latlng)].dist),o=t._x(t._data[t._findIndexForLatLng(n.latlng)].dist);t._mask.append(\"rect\").attr(\"x\",r).attr(\"y\",0).attr(\"width\",o-r).attr(\"height\",t._height()).attr(\"class\",\"gap\").attr(\"fill-opacity\",\"0.8\").attr(\"fill\",\"black\")}}))},_updateLegend:function(){var t=this;if(!1!==this.options.legend){var e,a=this._props.legendItems;for(var i in this._legend.selectAll(\"g\").remove(),a)e=T(L.extend({width:this._width(),height:this._height(),margins:this.options.margins},a[i])),this._legend.append(\"g\").call(e);var n=this._legend.selectAll(\".legend-item\"),r=n.nodes().length,o=Array(Math.floor(r/2)).fill(null).map((function(t,e){return 2*(e+1)-(1-Math.sign(r%2))})),s=o.slice().reverse().map((function(t){return-t}));r%2!=0&&s.push(0),o=s.concat(o);var l=this._axis.selectAll(\".x.axis.bottom\").nodes().length,c=30+2*l,h=30*r;r&&this.options.margins.right<h&&(this.options.margins.right=h,this.fire(\"margins_updated\")),l&&this.options.margins.bottom<c&&(this.options.margins.bottom=c,this.fire(\"margins_updated\")),n.each((function(e,a,i){var n=d3.select(i[a]),r=(n.select(\"rect\"),n.attr(\"data-name\")),s=t._paths[r],c=55*o[a],h=2*l;n.attr(\"transform\",\"translate(\"+c+\", \"+h+\")\"),r in t.options&&\"disabled\"==t.options[r]&&(s.classed(\"leaflet-hidden\",!0),n.select(\"text\").style(\"text-decoration-line\",\"line-through\"),n.select(\"rect\").style(\"fill-opacity\",\"0\")),t._mask&&s.attr(\"mask\",\"url(#\"+t._mask.attr(\"id\")+\")\")}))}},_updateScale:function(){if(this.zooming)return{x:this._x,y:this._y};for(var t in this._scales)this._scales[t].domain(this._domains[t](this._data)).range(this._ranges[t](this._width(),this._height()));return{x:this._x,y:this._y}},_width:function(){return this._chart._width},_height:function(){return this._chart._height},_findCoordsForY:function(t){var e,a=this._data,i=this._y.invert(t),n=a.reduce((function(t,e,a){return e.z>=i&&t.push(a),t}),[]),r=0;return n.reduce((function(t,i,o){return n[e=o+1]===n[o]+1&&e!==n.length||(t.push(n.slice(r,e).map((function(t){return a[t].latlng}))),r=e),t}),[])},_findIndexForXCoord:function(t){var e=this;return d3.bisector((function(t){return t[e.options.xAttr]})).left(this._data||[0,1],this._x.invert(t))},_findIndexForLatLng:function(t){var e=null,a=1/0;return this._data.forEach((function(i,n){var r=t.distanceTo(i.latlng);r<a&&(a=r,e=n)})),e},_resetDrag:function(){this._chart.panes.brush.select(\".selection\").attr(\"width\")&&(this._chart.panes.brush.call(this._brush.clear),this._hideDiagramIndicator(),this.fire(\"reset_drag\"))},_resetZoom:function(){this._zoom&&this._zoom.transform(this._chart.svg,d3.zoomIdentity)},_showDiagramIndicator:function(t,e){this._tooltip.attr(\"display\",null).call(I({xCoord:e,yCoord:this._y(t[this.options.yAttr]),height:this._height(),width:this._width(),labels:this._props.tooltipItems,item:t}))},_hideDiagramIndicator:function(){this._tooltip.attr(\"display\",\"none\")}});function j(t){return(j=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}var R,J=L.Class.extend({initialize:function(t){switch(this.options=t,this.options.marker){case\"elevation-line\":break;case\"position-marker\":this._marker=L.marker([0,0],{icon:this.options.markerIcon,zIndexOffset:1e6,interactive:!1})}return this._labels={},this},addTo:function(t){switch(this._map=t,this.options.marker){case\"elevation-line\":this._container=d3.select(t.getPane(\"elevationPane\")).select(\"svg > g\").call(E({}));break;case\"position-marker\":this._marker.addTo(t,{pane:\"overlayPane\"})}return this},update:function(t){if(t?this._props=t:t=this._props,t)switch(t.options&&(this.options=t.options),this._map||this.addTo(t.map),this._latlng=t.item.latlng,this.options.marker){case\"elevation-line\":if(this._container){var e=this._map.latLngToLayerPoint(this._latlng);e=L.extend({},t.item,this._map._rotate?this._map.rotatedPointToMapPanePoint(e):e),this._container.classed(\"leaflet-hidden\",!1),this._container.call(E({theme:this.options.theme,xCoord:e.x,yCoord:e.y,length:e.y-this._height()/t.maxElevation*e.z,labels:this._labels,item:e}))}break;case\"position-marker\":c(this._marker.getElement(),\"leaflet-hidden\"),this._marker.setLatLng(this._latlng)}},remove:function(){switch(this._props=null,this.options.marker){case\"elevation-line\":this._container&&this._container.classed(\"leaflet-hidden\",!0);break;case\"position-marker\":l(this._marker.getElement(),\"leaflet-hidden\")}},getLatLng:function(){return this._latlng},_height:function(){var t=this.options;return t.height-t.margins.top-t.margins.bottom},_registerTooltip:function(t){this._labels[t.name]=t}}),Y=L.Class.extend({initialize:function(t,e){this.options=t,this.control=e,this.labels={},u(this._container=m(\"div\",\"elevation-summary \"+(t.summary?t.summary+\"-summary\":\"\")),\"max-width\",t.width?t.width+\"px\":\"\")},render:function(){var t=this;return function(e){return e.append((function(){return t._container}))}},reset:function(){this._container.innerHTML=\"\"},append:function(t,e,a){return this._container.innerHTML+='<span class=\"'.concat(t,'\"><span class=\"summarylabel\">').concat(e,'</span><span class=\"summaryvalue\">').concat(a,\"</span></span>\"),this},update:function(){var t=this;Object.keys(this.labels).sort((function(e,a){return t.labels[e].order-t.labels[a].order})).forEach((function(e){t.append(e,L._(t.labels[e].label),\"function\"!=typeof t.labels[e].value?t.labels[e].value:t.labels[e].value(t.control.track_info))}))},_registerSummary:function(t){for(var e in t){var a;t[e].order=null!==(a=t[e].order)&&void 0!==a?a:100,this.labels[e]=t[e]}}}),V={autofitBounds:!0,autohide:!L.Browser.mobile,autohideMarker:!0,almostover:!0,altitude:!0,collapsed:!1,detached:!0,distance:!0,distanceMarkers:{lazy:!0,distance:!0,direction:!0},decimalsX:2,decimalsY:0,dragging:!L.Browser.mobile,downloadLink:\"link\",elevationDiv:\"#elevation-div\",followMarker:!0,forceAxisBounds:!1,height:200,imperial:!1,interpolation:\"curveLinear\",lazyLoadJS:!0,legend:!0,margins:{top:30,right:30,bottom:30,left:40},marker:\"elevation-line\",markerIcon:L.divIcon({className:\"elevation-position-marker\",html:'<i class=\"elevation-position-icon\"></i>',iconSize:[32,32],iconAnchor:[16,16]}),position:\"topright\",polyline:{className:\"elevation-polyline\",color:\"#000\",opacity:.75,weight:5,lineCap:\"round\"},polylineSegments:{className:\"elevation-polyline-segments\",color:\"#F00\",interactive:!1},preferCanvas:!1,reverseCoords:!1,ruler:!0,skipNullZCoords:!1,theme:\"lightblue-theme\",summary:\"inline\",slope:!1,slopeDeltaMax:void 0,slopeRange:void 0,speed:!1,speedDeltaMax:void 0,speedRange:void 0,time:!1,timeFactor:3600,timeFormat:!1,timestamps:!1,width:600,waypoints:!0,wptIcons:{\"\":L.divIcon({className:\"elevation-waypoint-marker\",html:'<i class=\"elevation-waypoint-icon default\"></i>',iconSize:[30,30],iconAnchor:[8,30]})},wptLabels:!0,xAttr:\"dist\",xLabel:\"km\",xTicks:void 0,yAttr:\"z\",yAxisMax:void 0,yAxisMin:void 0,yLabel:\"m\",yTicks:void 0,zFollow:!1,zooming:!L.Browser.Mobile},W=L.Control.Elevation=L.Control.extend({includes:L.Evented?L.Evented.prototype:L.Mixin.Events,options:V,__mileFactor:.621371,__footFactor:3.28084,__D3:\"https://unpkg.com/d3@6.5.0/dist/d3.min.js\",__TOGEOJSON:\"https://unpkg.com/@tmcw/togeojson@4.5.0/dist/togeojson.umd.js\",__LGEOMUTIL:\"https://unpkg.com/leaflet-geometryutil@0.9.3/src/leaflet.geometryutil.js\",__LALMOSTOVER:\"https://unpkg.com/leaflet-almostover@1.0.1/src/leaflet.almostover.js\",__LDISTANCEM:\"https://unpkg.com/@raruto/leaflet-elevation@1.9.6/libs/leaflet-distance-marker.min.js\",addData:function(t,e){var a=this;this.lazyLoad(this.__D3).then((function(){void 0===e&&t.on&&(e=t),a._addData(t),a._addLayer(e),a._fireEvt(\"eledata_added\",{data:t,layer:e,track_info:a.track_info})}))},addTo:function(t){if(this.options.detached){var e=this._initElevationDiv();e.isConnected||g(t.getContainer(),e,\"afterend\"),f(e,this.onAdd(t))}else L.Control.prototype.addTo.call(this,t);return this},clear:function(){this._marker&&this._marker.remove(),this._chart&&this._clearChart(),this._layers&&this._clearLayers(),this._markers&&this._clearMarkers(),this._data=[],this.track_info={},this._fireEvt(\"eledata_clear\"),this._updateChart()},_clearChart:function(){var t=this;this._events&&this._events.elechart_updated&&this._events.elechart_updated.forEach((function(e){return t.off(\"elechart_updated\",e.fn,e.ctx)})),this._chart&&this._chart._container&&(this._chart._container.selectAll(\"g.point .point\").remove(),this._chart.clear())},_clearLayers:function(){this._layers&&this._layers.eachLayer&&(this._layers.eachLayer((function(t){return t.remove()})),this._layers.clearLayers())},_clearMarkers:function(){this._markers&&this._markers.eachLayer&&(this._markers.eachLayer((function(t){return t.remove()})),this._markers.clearLayers())},disableBrush:function(){this._chart._brushEnabled=!1,this._resetDrag()},enableBrush:function(){this._chart._brushEnabled=!0},disableZoom:function(){this._chart._zoomEnabled=!1,this._chart._resetZoom()},enableZoom:function(){this._chart._zoomEnabled=!0},fitBounds:function(t){t=t||this.getBounds(),this._map&&t.isValid()&&this._map.fitBounds(t)},getBounds:function(t){return t=t||this._data,L.latLngBounds(t.map((function(t){return t.latlng})))},getZFollow:function(){return this.options.zFollow},hide:function(){u(this._container,\"display\",\"none\")},initialize:function(t){this._data=[],this._layers=L.featureGroup(),this._markers=L.featureGroup(),this._markedSegments=L.polyline([]),this._chartEnabled=!0,this.track_info={},this.handlers=[],L.setOptions(this,t),this.options.followMarker&&(this._setMapView=L.Util.throttle(this._setMapView,300,this)),this.options.legend&&(this.options.margins.bottom+=30),this.options.theme&&(this.options.polylineSegments.className+=\" \"+this.options.theme),!0===this.options.wptIcons&&(this.options.wptIcons=V.wptIcons),!0===this.options.distanceMarkers&&(this.options.distanceMarkers=V.distanceMarkers),this._markedSegments.setStyle(this.options.polylineSegments),L.extend(A,this.options.colors||{}),this._fixCanvasPaths(),this._fixTooltipSize()},lazyLoad:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"\";if(!this.options.lazyLoadJS)return Promise.resolve();switch(t){case this.__D3:a=\"_d3LazyLoader\",e=\"object\"!==(\"undefined\"==typeof d3?\"undefined\":j(d3));break;case this.__TOGEOJSON:a=\"_togeojsonLazyLoader\",e=\"object\"!==(\"undefined\"==typeof toGeoJSON?\"undefined\":j(toGeoJSON));break;case this.__LGEOMUTIL:a=\"_geomutilLazyLoader\",e=\"object\"!==j(L.GeometryUtil);break;case this.__LALMOSTOVER:a=\"_almostoverLazyLoader\",e=\"function\"!=typeof L.Handler.AlmostOver;break;case this.__LDISTANCEM:a=\"_distanceMarkersLazyLoader\",e=\"function\"!=typeof L.DistanceMarkers}return L.Control.Elevation[a]=r(t,e,L.Control.Elevation[a])},load:function(t){var e=this;this._parseFromString(t).then((function(a){return a?e._loadLayer(a):e._loadFile(t)}))},onAdd:function(t){var e=this;this._map=t;var a=this._container=m(\"div\",\"elevation-control elevation \"+this.options.theme+\" \"+(this.options.detached?\"\":\"leaflet-control\"));return this.lazyLoad(this.__D3).then((function(){e._initButton(a),e._initChart(a),e._initSummary(a),e._initMarker(t),e._initLayer(t),t.on(\"zoom viewreset zoomanim\",e._hideMarker,e).on(\"resize\",e._resetView,e).on(\"resize\",e._resizeChart,e).on(\"rotate\",e._rotateMarker,e).on(\"mousedown\",e._resetDrag,e),x(t.getContainer(),\"mousewheel\",e._resetDrag,e),x(t.getContainer(),\"touchstart\",e._resetDrag,e),x(document,\"keydown\",e._keydownHandler,e),e.on(\"eledata_added eledata_loaded\",e._updateChart,e).on(\"eledata_added eledata_loaded\",e._updateSummary,e),e._updateChart(),e._updateSummary()})),a},onRemove:function(t){this._container=null,t.off(\"zoom viewreset zoomanim\",this._hideMarker,this).off(\"resize\",this._resetView,this).off(\"resize\",this._resizeChart,this).off(\"mousedown\",this._resetDrag,this),b(t.getContainer(),\"mousewheel\",this._resetDrag,this),b(t.getContainer(),\"touchstart\",this._resetDrag,this),b(document,\"keydown\",this._keydownHandler,this),this.off(\"eledata_added eledata_loaded\",this._updateChart,this).off(\"eledata_added eledata_loaded\",this._updateSummary,this)},redraw:function(){this._resizeChart()},setZFollow:function(t){this.options.zFollow=t},show:function(){u(this._container,\"display\",\"block\")},_addData:function(t){var e=this;if(t){var a=t.geometry;if(a)switch(a.type){case\"LineString\":this._addGeoJSONData(a.coordinates);break;case\"MultiLineString\":M(a.coordinates,(function(t){return e._addGeoJSONData(t)}));break;default:console.warn(\"Unsopperted GeoJSON feature geometry type:\"+a.type)}\"FeatureCollection\"===t.type&&M(t.features,(function(t){return e._addData(t)})),t._latlngs&&this._addGeoJSONData(t._latlngs,t.feature&&t.feature.properties)}},_addGeoJSONData:function(t,e){var a=this;t.forEach((function(t,i){var n,r,o,s,l;t.meta=null!==(n=t.meta)&&void 0!==n?n:{time:null,ele:null,hr:null,cad:null,atemp:null};var c=e&&e.coordinateProperties||e;a.fire(\"elepoint_init\",{point:t,props:c,id:i}),a._addPoint(null!==(r=t.lat)&&void 0!==r?r:t[1],null!==(o=t.lng)&&void 0!==o?o:t[0],null!==(s=null!==(l=t.alt)&&void 0!==l?l:t.meta.ele)&&void 0!==s?s:t[2]),a.fire(\"elepoint_added\",{point:t,index:a._data.length-1})})),this.fire(\"eletrack_added\",{coords:t,index:this._data.length-1})},_addPoint:function(t,e,a){if(this.options.reverseCoords){var i=[e,t];t=i[0],e=i[1]}this._data.push({x:t,y:e,z:a,latlng:L.latLng(t,e,a)}),this.fire(\"eledata_updated\",{index:this._data.length-1})},_addLayer:function(t){t&&this._layers.addLayer(t),t&&this.options.distanceMarkers&&this.options.distanceMarkers.lazy&&t.on(\"add remove\",(function(t){return L.DistanceMarkers&&t.target instanceof L.Polyline&&t.target[t.type+\"DistanceMarkers\"]()}))},_addMarker:function(t){t&&this._markers.addLayer(t)},_initAlmostOverHandler:function(t,e){var a=this;t&&this.options.almostOver&&this.lazyLoad(this.__LGEOMUTIL).then((function(){return a.lazyLoad(a.__LALMOSTOVER)})).then((function(){t.addHandler(\"almostOver\",L.Handler.AlmostOver),L.GeometryUtil&&t.almostOver&&t.almostOver.enabled()&&(t.almostOver.addLayer(e),t.on(\"almost:move\",(function(t){return a._mousemoveLayerHandler(t)})).on(\"almost:out\",(function(t){return a._mouseoutHandler(t)})))}))},_initDistanceMarkers:function(t,e){var a=this;t&&(this.options.distanceMarkers?this.lazyLoad(this.__LGEOMUTIL).then((function(){return a.lazyLoad(a.__LDISTANCEM)})).then((function(){return a.options.polyline&&e.addTo(t)})):this.options.polyline&&e.addTo(t))},_initElevationDiv:function(){var t=y(this.options.elevationDiv);return t||(this.options.elevationDiv=\"#elevation-div_\"+w(),t=m(\"div\",\"leaflet-control elevation elevation-div\",{id:this.options.elevationDiv.substr(1)})),this.options.detached&&d(t,\"leaflet-control\",\"elevation-detached\"),this.eleDiv=t},_initMapIntegrations:function(t,e){var a=t._map;t._map?(a.once(\"layeradd\",(function(a){return t.options.autofitBounds&&t.fitBounds(e.getBounds())})),L.Browser.mobile?t.options.polyline&&e.addTo(a):(t._initAlmostOverHandler(a,e),t._initDistanceMarkers(a,e))):console.warn(\"Undefined elevation map object\")},_collapse:function(){d(this._container,\"elevation-expanded\",\"elevation-collapsed\")},_expand:function(){d(this._container,\"elevation-collapsed\",\"elevation-expanded\")},_fixCanvasPaths:function(){var t=L.Canvas.prototype._fillStroke,e=this;L.Canvas.include({_fillStroke:function(a,i){if(e._layers.hasLayer(i)){var n=e.options.theme.replace(\"-theme\",\"\"),r=A[n]||{},o=i.options;if(o.color=r.line||r.area||n,o.stroke=!!o.color,t.call(this,a,i),o.stroke&&0!==o.weight){var s=a.globalCompositeOperation||\"source-over\";a.globalCompositeOperation=\"destination-over\",a.strokeStyle=r.outline||\"#FFF\",a.lineWidth=1.75*o.weight,a.stroke(),a.globalCompositeOperation=s}}else t.call(this,a,i)}})},_fixTooltipSize:function(){var t=this;this.on(\"elechart_init\",(function(){return t.once(\"elechart_change elechart_hover\",(function(e){t._chartEnabled&&(t._chart._showDiagramIndicator(e.data,e.xCoord),t._chart._showDiagramIndicator(e.data,e.xCoord)),t._updateMarker(e.data)}))}))},_findItemForLatLng:function(t){return this._data[this._chart._findIndexForLatLng(t)]},_findItemForX:function(t){return this._data[this._chart._findIndexForXCoord(t)]},_fireEvt:function(t,e,a){this.fire&&this.fire(t,e,a),this._map&&this._map.fire(t,e,a)},_height:function(){if(this._chart)return this._chart._height();var t=this.options;return t.height-t.margins.top-t.margins.bottom},_hideMarker:function(){this.options.autohideMarker&&this._marker.remove()},_initChart:function(t){var e=this.options;if(e.xTicks=this._xTicks(),e.yTicks=this._yTicks(),e.detached){var a=this.eleDiv,i=a.offsetWidth,n=a.offsetHeight;i>0&&(e.width=i),n>20&&(e.height=n-20)}else{var r=this._map.getContainer().clientWidth;e._maxWidth=e._maxWidth>e.width?e._maxWidth:e.width,this._container.style.maxWidth=e._maxWidth+\"px\",e._maxWidth>r&&(e.width=r-30)}var o=this._chart=new U(e,this);this._x=this._chart._x,this._y=this._chart._y,d3.select(t).call(o.render()),o.on(\"reset_drag\",this._hideMarker,this).on(\"mouse_enter\",this._mouseenterHandler,this).on(\"dragged\",this._dragendHandler,this).on(\"mouse_move\",this._mousemoveHandler,this).on(\"mouse_out\",this._mouseoutHandler,this).on(\"ruler_filter\",this._rulerFilterHandler,this).on(\"zoom\",this._updateChart,this).on(\"elepath_toggle\",this._toggleChartHandler,this).on(\"margins_updated\",this._resizeChart,this),this.fire(\"elechart_axis\"),this.options.legend&&this.fire(\"elechart_legend\"),this.fire(\"elechart_init\")},_initLayer:function(){var t=this;this._layers.on(\"layeradd layerremove\",(function(e){var a=e.layer;h(a.getElement&&a.getElement(),t.options.polyline.className+\" \"+t.options.theme,\"layeradd\"==e.type),p(a,\"mousemove\",t._mousemoveLayerHandler.bind(t),\"layeradd\"==e.type),p(a,\"mouseout\",t._mouseoutHandler.bind(t),\"layeradd\"==e.type)}))},_initMarker:function(t){var e=t.getPane(\"elevationPane\");e||((e=this._pane=t.createPane(\"elevationPane\",t.getPane(\"norotatePane\")||t.getPane(\"mapPane\"))).style.zIndex=625,e.style.pointerEvents=\"none\"),this._renderer&&this._renderer.remove(),this._renderer=L.svg({pane:\"elevationPane\"}).addTo(this._map),this._marker=new J(this.options),this.fire(\"elechart_marker\")},_initButton:function(t){if(!L.Browser.mobile&&this.options.detached||L.DomEvent.disableClickPropagation(t).disableScrollPropagation(t),!this.options.detached){var e=this._button=m(\"a\",\"elevation-toggle elevation-toggle-icon\"+(this.options.autohide?\"\":\" close-button\"),{href:\"#\",title:L._(\"Elevation\")},t);this.options.collapsed&&(this._collapse(),this.options.autohide?(x(t,\"mouseover\",this._expand,this),x(t,\"mouseout\",this._collapse,this)):(x(e,\"click\",L.DomEvent.stop),x(e,\"click\",this._toggle,this)),x(e,\"focus\",this._toggle,this),this._map.on(\"click\",this._collapse,this))}},_initSummary:function(t){this._summary=new Y({summary:this.options.summary},this),d3.select(t).call(this._summary.render())},_keydownHandler:function(t){this.options.detached||\"Escape\"!==t.key||this._collapse()},_loadFile:function(t){var e=this;fetch(t).then((function(t){return t.text()})).then((function(a){e._downloadURL=t,e._parseFromString(a).then((function(t){return t&&e._loadLayer(t)}))})).catch((function(t){return console.warn(t)}))},_loadLayer:function(t){var e=this,a=e.options,i=a.wptIcons,n=a.wptLabels,r=L.geoJson(t,{distanceMarkers:e.options.distanceMarkers,style:function(t){var a=L.extend({},e.options.polyline);return e.options.theme&&(a.className+=\" \"+e.options.theme),a},pointToLayer:function(t,a){var r,o,s;if(e.options.waypoints){var l=t.properties,c=null!==(r=l.desc)&&void 0!==r?r:\"\",h=null!==(o=l.name)&&void 0!==o?o:\"\",d=(null!==(s=l.sym)&&void 0!==s?s:h).replace(\" \",\"-\").replace('\"',\"\").replace(\"'\",\"\").toLowerCase();if([!0,\"dots\"].includes(e.options.waypoints)&&e._registerCheckPoint({latlng:a,label:[!0,\"dots\"].includes(n)?h:\"\"}),[!0,\"markers\"].includes(e.options.waypoints)&&0!=i){i.hasOwnProperty(d)||(i[d]=L.divIcon(L.extend({},i[\"\"].options,{html:'<i class=\"elevation-waypoint-icon '+d+'\"></i>'})));var u=L.marker(a,{icon:i[d]});if([!0,\"markers\"].includes(n)&&(h||c)){var _=decodeURI(\"<b>\"+h+\"</b>\"+(c.length>0?\"<br>\"+c:\"\"));u.bindPopup(_,{className:\"elevation-popup\",keepInView:!0}).openPopup(),u.bindTooltip(_,{className:\"elevation-tooltip\",direction:\"auto\",sticky:!0,opacity:1}).openTooltip()}return e._addMarker(u),e.fire(\"waypoint_added\",{point:u,element:a,properties:l}),u}}},onEachFeature:function(a,i){a.geometry&&\"Point\"!=a.geometry.type&&(e.addData(i),e.track_info=L.extend({},e.track_info,{name:t.name}))}});return e.lazyLoad(e.__D3).then((function(){e._initMapIntegrations(e,r),e._fireEvt(\"eledata_loaded\",{data:t,layer:r,name:e.track_info.name,track_info:e.track_info})})),r},_dragendHandler:function(t){this._hideMarker(),this.fitBounds(L.latLngBounds([t.dragstart.latlng,t.dragend.latlng])),this.fire(\"elechart_dragged\")},_mouseenterHandler:function(t){this.fire(\"elechart_enter\")},_mousemoveHandler:function(t){if(this._data.length&&this._chartEnabled){var e=this._findItemForX(t.xCoord);if(e){var a=t.xCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,a),this._updateMarker(e),this._setMapView(e),this._map&&l(this._map.getContainer(),\"elechart-hover\"),this.fire(\"elechart_change\",{data:e,xCoord:a}),this.fire(\"elechart_hover\",{data:e,xCoord:a})}}},_mousemoveLayerHandler:function(t){if(this._data.length){var e=this._findItemForLatLng(t.latlng);if(e){var a=e.xDiagCoord;this._chartEnabled&&this._chart._showDiagramIndicator(e,a),this._updateMarker(e),this.fire(\"elechart_change\",{data:e,xCoord:a})}}},_mouseoutHandler:function(){this.options.detached||(this._hideMarker(),this._chart._hideDiagramIndicator()),this._map&&c(this._map.getContainer(),\"elechart-hover\"),this.fire(\"elechart_leave\")},_parseFromGeoJSONString:function(t){try{return JSON.parse(t)}catch(t){}},_parseFromString:function(t){var e=this;return new Promise((function(a){return e.lazyLoad(e.__TOGEOJSON).then((function(){var i;try{i=e._parseFromXMLString(t.trim())}catch(a){i=e._parseFromGeoJSONString(t.toString())}i&&(i=e._prepareMultiLineStrings(i),i=e._prepareAdditionalProperties(i)),a(i)}))}))},_parseFromXMLString:function(t){var e;if(0!=t.indexOf(\"<\"))throw\"Invalid XML\";var a=(new DOMParser).parseFromString(t,\"text/xml\"),i=a.documentElement.tagName.toLowerCase(),n=a.getElementsByTagName(\"name\");if(a.getElementsByTagName(\"parsererror\").length)throw\"Invalid XML\";i in toGeoJSON||(i=\"TrainingCenterDatabase\"==a.documentElement.tagName?\"tcx\":\"gpx\");var r=toGeoJSON[i](a);return r.name=n.length>0?(null!==(e=Array.from(n).find((function(t){return\"trk\"==t.parentElement.tagName})))&&void 0!==e?e:n[0]).textContent:\"\",r},_prepareAdditionalProperties:function(t){return!t.name&&this._downloadURL&&(t.name=this._downloadURL.split(\"/\").pop().split(\"#\")[0].split(\"?\")[0]),t},_prepareMultiLineStrings:function(t){return t.features.forEach((function(e){\"MultiLineString\"==e.geometry.type&&e.geometry.coordinates.forEach((function(a){t.features.push({geometry:{type:\"LineString\",coordinates:a},properties:e.properties,type:\"Feature\"})}))})),t.features.filter((function(t){return\"MultiLineString\"!=t.geometry.type}))},_registerAreaPath:function(t){var e=this;this.on(\"elechart_init\",(function(){return e._chart._registerAreaPath(t)}))},_registerAxisGrid:function(t){var e=this;this.on(\"elechart_axis\",(function(){return e._chart._registerAxisGrid(t)}))},_registerAxisScale:function(t){var e=this;this.on(\"elechart_axis\",(function(){return e._chart._registerAxisScale(t)}))},_registerCheckPoint:function(t){var e=this;this.on(\"elechart_updated\",(function(){return e._chart._registerCheckPoint(t)}))},_registerDataAttribute:function(t){var e=this,a=null;t.init&&this.on(\"elepoint_init\",(function(a){return t.init.call(e,a)})),this.on(\"elepoint_added\",(function(i){if(!1===t.skipNull){var n=e._data[i.index][t.name];if(i.index>0){var r=e._data[i.index-1][t.name];if(isNaN(r)){if(isNaN(a)||isNaN(n)?isNaN(a)?isNaN(n)||(r=n):r=a:r=(a+n)/2,!isNaN(r))return e._data.splice(i.index-1,1);e._data[i.index-1][t.name]=r}}isNaN(n)||(a=n)}e._data[i.index][t.name]=t.fetch.call(e,i.index,i.point),t.update&&(e._data[i.index][t.name]=t.update.call(e,e._data[i.index][t.name],i.index,i.point))}))},_registerTooltip:function(t){var e=this;if(t.chart){var a=L.extend({},t,{value:t.chart});this.on(\"elechart_init\",(function(){return e._chart._registerTooltip(a)}))}if(t.marker){var i=L.extend({},t,{value:t.marker});this.on(\"elechart_marker\",(function(){return e._marker._registerTooltip(i)}))}},_registerSummary:function(t){var e=this;this.on(\"elechart_summary\",(function(){return e._summary._registerSummary(t)}))},_resetDrag:function(){this._chart._resetDrag(),this._hideMarker()},_resetView:function(){this._map&&this._map._isFullscreen||(this._resetDrag(),this._hideMarker(),this.options.autofitBounds&&this.fitBounds())},_resizeChart:function(){if(this._container&&\"none\"!=u(this._container,\"display\")){var t,e=this.options;if(e.detached)t=(this.eleDiv||this._container).offsetWidth;else{var a=this._map.getContainer().clientWidth;t=e._maxWidth>a?a-30:e._maxWidth}if(t){var i=this._chart;e.width=t,i&&i._chart&&(i._chart._resize(e),e.xTicks=this._xTicks(),e.yTicks=this._yTicks(),this._updateChart())}this._updateMapSegments()}},_rulerFilterHandler:function(t){this._updateMapSegments(t.coords)},_toggle:function(){k(this._container,\"elevation-expanded\")?this._collapse():this._expand()},_setMapView:function(t){if(this.options.followMarker&&this._map){var e=this._map.getZoom(),a=this.options.zFollow;\"number\"==typeof a?this._map.setView(t.latlng,e<a?a:e,{animate:!0,duration:.25}):this._map.getBounds().contains(t.latlng)||this._map.setView(t.latlng,e,{animate:!0,duration:.25})}},_toggleChartHandler:function(t){var e=this,a=t.name,i=t.enabled;this._chartEnabled=this._chart._hasActiveLayers(),this._layers.eachLayer((function(t){return h(t.getElement&&t.getElement(),e.options.polyline.className+\" \"+e.options.theme,e._chartEnabled)})),this.options[a]=i||\"disabled\"!=this.options[a]?\"disabled\":\"enabled\",this._chartEnabled||(this._chart._hideDiagramIndicator(),this._marker.remove())},_updateChart:function(){\n/*!this._data.length ||*/\nthis._chart&&this._container&&(this.fire(\"elechart_axis\"),this.fire(\"elechart_area\"),this._chart.update({data:this._data,options:this.options}),this._x=this._chart._x,this._y=this._chart._y,this.fire(\"elechart_updated\"))},_updateMarker:function(t){this._marker&&this._marker.update({map:this._map,item:t,maxElevation:this.track_info.elevation_max||0,options:this.options})},_rotateMarker:function(){this._marker&&this._marker.update()},_updateMapSegments:function(t){this._markedSegments.setLatLngs(t||[]),t&&this._map&&!this._map.hasLayer(this._markedSegments)&&this._markedSegments.addTo(this._map)},_updateSummary:function(){var t=this;this._summary.reset(),this.options.summary&&(this.fire(\"elechart_summary\"),this._summary.update()),this.options.downloadLink&&this._downloadURL&&(this._summary._container.innerHTML+='<span class=\"download\"><a href=\"#\">'+L._(\"Download\")+\"</a></span>\",y(\".download a\",this._summary._container).onclick=function(e){e.preventDefault();var a={downloadLink:t.options.downloadLink,confirm:n.bind(t,t._downloadURL)};\"modal\"==t.options.downloadLink&&\"function\"==typeof CustomEvent?document.dispatchEvent(new CustomEvent(\"eletrack_download\",{detail:a})):\"link\"!=t.options.downloadLink&&!0!==t.options.downloadLink||a.confirm(),t.fire(\"eletrack_download\",a)})},_width:function(){if(this._chart)return this._chart._width();var t=this.options;return t.width-t.margins.left-t.margins.right},_xTicks:function(){return this.__xTicks&&(this.__xTicks=this.options.xTicks),this.__xTicks||Math.round(this._width()/75)},_yTicks:function(){return this.__yTicks&&(this.__yTicks=this.options.yTicks),this.__yTicks||Math.round(this._height()/30)}});W.addInitHook((function(){var t=this,e=this.options,a={};e.imperial?(e.distanceFactor=this.__mileFactor,a.label=\"mi\"):(e.distanceFactor=e.distanceFactor||1,a.label=e.xLabel),this._registerDataAttribute({name:\"dist\",init:function(){},fetch:function(a){var i=t._data[a].latlng.distanceTo(t._data[a>0?a-1:a].latlng)*e.distanceFactor;return Math.round(i/1e3*1e5)/1e5},update:function(e){return t.track_info.distance=t.track_info.distance||0,t.track_info.distance+=e,t.track_info.distance}}),\"summary\"!=this.options.distance&&this._registerAxisScale({axis:\"x\",position:\"bottom\",scale:\"x\",label:a.label,labelY:25,labelX:function(){return t._width()+6},name:\"distance\"}),this._registerAxisGrid({axis:\"x\",position:\"bottom\",scale:\"x\"}),this._registerTooltip({name:\"x\",chart:function(t){return L._(\"x: \")+d3.format(\".\"+e.decimalsX+\"f\")(t[e.xAttr])+\" \"+a.label},order:20}),this._registerSummary({totlen:{label:\"Total Length: \",value:function(t){return(t.distance||0).toFixed(2)+\" \"+a.label},order:10}})})),W.addInitHook((function(){var t=this,e=this.options,a={};a.label=e.timeLabel||\"t\",e.timeFactor=e.timeFactor||3600,this._timeAVGSpeed=(e.timeAVGSpeed||3.6)*(e.speedFactor||1),e.timeFormat?\"time\"==e.timeFormat?e.timeFormat=function(t){return new Date(t).toLocaleTimeString()}:\"date\"==e.timeFormat&&(e.timeFormat=function(t){return new Date(t).toLocaleDateString()}):e.timeFormat=function(t){return new Date(t).toLocaleString().replaceAll(\"/\",\"-\").replaceAll(\",\",\" \")},e.xTimeFormat=e.xTimeFormat||function(t){return i(t).split(\"'\")[0]},this._registerDataAttribute({name:\"time\",init:function(t){var e=t.point,a=t.props,i=t.id;a&&(\"coordTimes\"in a?e.meta.time=new Date(Date.parse(a.coordTimes[i])):\"times\"in a?e.meta.time=new Date(Date.parse(a.times[i])):\"time\"in a&&(e.meta.time=new Date(Date.parse(\"object\"===j(a.time)?a.time[i]:a.time))))},fetch:function(t,e){if(!e.meta||!e.meta.time)if(e.meta=e.meta||{},t>0){var a=this._data[t].dist-this._data[t-1].dist,i=this._data[t-1].time.getTime(),n=a/this._timeAVGSpeed*this.options.timeFactor*1e3;e.meta.time=new Date(i+n)}else e.meta.time=new Date(Date.now());var r=e.meta.time;return r.getTime()-60*r.getTimezoneOffset()*1e3==0&&(r=0),r},update:function(t,e){return this.track_info.time=(this.track_info.time||0)+Math.abs(this._data[e].time-this._data[e>0?e-1:e].time),this._data[e].duration=this.track_info.time,t}}),e.time&&\"summary\"!=e.time&&!L.Browser.mobile&&this._registerAxisScale({axis:\"x\",position:\"top\",scale:{attr:\"duration\",min:0},label:a.label,labelY:-10,labelX:function(){return t._width()},name:\"time\",tickFormat:function(t){return 0==t?\"\":e.xTimeFormat(t)},onAxisMount:function(e){e.select(\".domain\").remove(),e.selectAll(\"text\").attr(\"opacity\",.65).style(\"font-family\",\"Monospace\").style(\"font-size\",\"110%\"),e.selectAll(\".tick line\").attr(\"y2\",t._height()).attr(\"stroke-dasharray\",2).attr(\"opacity\",.75)}}),this.options.timestamps&&this._registerTooltip({name:\"date\",chart:function(e){return L._(\"t: \")+t.options.timeFormat(e.time)},order:20}),this.options.time&&(this._registerTooltip({name:\"time\",chart:function(t){return L._(\"T: \")+i(t.duration||0)},order:20}),this._registerSummary({tottime:{label:\"Total Time: \",value:function(t){return i(t.time||0)},order:20}}))})),W.addInitHook((function(){var t=this,e=this.options,a={},i=e.theme.replace(\"-theme\",\"\"),n=A[i]||{};e.imperial?(e.altitudeFactor=this.__footFactor,a.label=\"ft\"):(e.altitudeFactor=e.heightFactor||e.altitudeFactor||1,a.label=e.yLabel),this._registerDataAttribute({name:\"z\",skipNull:this.options.skipNullZCoords,init:function(t){var e=t.point;\"alt\"in e&&(e.meta.ele=e.alt)},fetch:function(a){return t._data[a].z*e.altitudeFactor},update:function(e,a){t.track_info.elevation_max=t.track_info.elevation_max||-1/0,t.track_info.elevation_min=t.track_info.elevation_max||1/0,t.track_info.elevation_avg=t.track_info.elevation_avg||0;var i=t._data,n=t.track_info;if(t.options.altitudeDeltaMax){var r=e-i[a>0?a-1:a].z,o=t.options.altitudeDeltaMax;Math.abs(r)>o&&(e=i[a-1].z+o*Math.sign(r))}return(e=s(e,t.options.altitudeRange))>n.elevation_max&&(n.elevation_max=e),e<n.elevation_min&&(n.elevation_min=e),n.elevation_avg=(e+n.elevation_avg)/2,e}}),this._registerAxisScale({axis:\"y\",position:\"left\",scale:\"y\",label:a.label,labelX:-3,labelY:-8,name:\"altitude\",visbile:\"summary\"!=this.options.altitude}),this._registerAxisGrid({axis:\"y\",position:\"left\",scale:\"y\"}),this._registerAreaPath({name:\"altitude\",label:\"Altitude\",scaleX:\"distance\",scaleY:\"altitude\",color:n.area||i,strokeColor:e.detached?n.stroke:\"#000\",strokeOpacity:\"1\",fillOpacity:e.detached?n.alpha||\"0.8\":1,preferCanvas:e.preferCanvas,visbile:\"summary\"!=this.options.altitude}),this._registerTooltip({name:\"y\",chart:function(t){return L._(\"y: \")+d3.format(\".\"+e.decimalsY+\"f\")(t[e.yAttr])+\" \"+a.label},marker:function(t){return d3.format(\".\"+e.decimalsY+\"f\")(t[e.yAttr])+\" \"+a.label},order:10}),this._registerSummary({maxele:{label:\"Max Elevation: \",value:function(t){return(t.elevation_max||0).toFixed(2)+\" \"+a.label},order:30},minele:{label:\"Min Elevation: \",value:function(t){return(t.elevation_min||0).toFixed(2)+\" \"+a.label},order:30},avgele:{label:\"Avg Elevation: \",value:function(t){return(t.elevation_avg||0).toFixed(2)+\" \"+a.label},order:30}})})),W.addInitHook((function(){var t=this;if(this.options.slope){var e=this.options,a={};a.label=e.slopeLabel||\"%\",this._registerDataAttribute({name:\"slope\",fetch:function(e){var a=t._data,i=1e3*(a[e].dist-a[e>0?e-1:e].dist),n=a[e].z-a[e>0?e-1:e].z;return isNaN(n)||0===i?0:n/i*100},update:function(e,a){t.track_info.ascent=t.track_info.ascent||0,t.track_info.descent=t.track_info.descent||0,t.track_info.slope_max=t.track_info.slope_max||-1/0,t.track_info.slope_min=t.track_info.slope_min||1/0,t.track_info.slope_avg=t.track_info.slope_avg||0;var i=t.track_info,n=t._data,r=n[a].z-n[a>0?a-1:a].z;if(t.options.slopeDeltaMax){var o=slop-n[a>0?a-1:a].slope,l=t.options.slopeDeltaMax;Math.abs(o)>l&&(e=n[a-1].slope+l*Math.sign(o))}return e=s(e,t.options.slopeRange),r>0?t.track_info.ascent+=r:r<0&&(t.track_info.descent-=r),e>i.slope_max&&(i.slope_max=e),e<i.slope_min&&(i.slope_min=e),i.slope_avg=(e+i.slope_avg)/2,L.Util.formatNum(e,2)}}),this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:-1,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"slope\",visbile:\"summary\"!=this.options.slope}),this._registerAreaPath({name:\"slope\",label:\"Slope\",yAttr:\"slope\",scaleX:\"distance\",scaleY:\"slope\",color:\"#F00\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\",visbile:\"summary\"!=this.options.slope}),this._registerTooltip({name:\"slope\",chart:function(t){return L._(\"m: \")+t.slope+a.label},marker:function(t){return Math.round(t.slope)+a.label},order:40}),this._registerSummary({ascent:{label:\"Total Ascent: \",value:function(e){return Math.round(e.ascent||0)+\" \"+(t.options.imperial?\"ft\":\"m\")},order:40},descent:{label:\"Total Descent: \",value:function(e){return Math.round(e.descent||0)+\" \"+(t.options.imperial?\"ft\":\"m\")},order:40},minslope:{label:\"Min Slope: \",value:function(t){return Math.round(t.slope_min||0)+\" \"+a.label},order:40},maxslope:{label:\"Max Slope: \",value:function(t){return Math.round(t.slope_max||0)+\" \"+a.label},order:40},avgslope:{label:\"Avg Slope: \",value:function(t){return Math.round(t.slope_avg||0)+\" \"+a.label},order:40}})}})),W.addInitHook((function(){var t=this;if(this.options.speed||this.options.acceleration){var e=this.options,a={};a.label=e.speedLabel||L._(e.imperial?\"mph\":\"km/h\"),e.speedFactor=e.speedFactor||1,this._registerDataAttribute({name:\"speed\",init:function(){},fetch:function(a){var i=t._data,n=1e3*(i[a].dist-i[a>0?a-1:a].dist),r=i[a].time-i[a>0?a-1:a].time;return r>0?Math.abs(n/r*e.timeFactor)*e.speedFactor:0},update:function(e,a){t.track_info.speed_max=t.track_info.speed_max||-1/0,t.track_info.speed_min=t.track_info.speed_min||1/0,t.track_info.speed_avg=t.track_info.speed_avg||0;var i=t._data,n=t.track_info;if(t.options.speedDeltaMax){var r=e-i[a>0?a-1:a].speed,o=t.options.speedDeltaMax;Math.abs(r)>o&&(e=i[a-1].speed+o*Math.sign(r))}return(e=s(e,t.options.speedRange))>n.speed_max&&(n.speed_max=e),e<n.speed_min&&(n.speed_min=e),n.speed_avg=(e+n.speed_avg)/2,L.Util.formatNum(e,2)}}),this.options.speed&&\"summary\"!=this.options.speed&&(this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:0,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"speed\"}),this._registerAreaPath({name:\"speed\",label:\"Speed\",yAttr:\"speed\",scaleX:\"distance\",scaleY:\"speed\",color:\"#03ffff\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\"})),this.options.speed&&(this._registerTooltip({name:\"speed\",chart:function(t){return L._(\"v: \")+t.speed+\" \"+a.label},marker:function(t){return Math.round(t.speed)+\" \"+a.label},order:50}),this._registerSummary({minspeed:{label:\"Min Speed: \",value:function(t){return Math.round(t.speed_min||0)+\" \"+a.label},order:50},maxspeed:{label:\"Max Speed: \",value:function(t){return Math.round(t.speed_max||0)+\" \"+a.label},order:50},avgspeed:{label:\"Avg Speed: \",value:function(t){return Math.round(t.speed_avg||0)+\" \"+a.label},order:50}}))}})),W.addInitHook((function(){var t=this;if(this.options.acceleration){var e=this.options,a={};a.label=e.accelerationLabel||L._(e.imperial?\"ft/s²\":\"m/s²\"),e.accelerationFactor=e.accelerationFactor||1,this._registerDataAttribute({name:\"acceleration\",init:function(){},fetch:function(a){var i=t._data,n=(i[a].speed-i[a>0?a-1:a].speed)*(1e3/e.timeFactor),r=(i[a].time-i[a>0?a-1:a].time)/1e3;return r>0?Math.abs(n/r)*e.accelerationFactor:0},update:function(e,a){t.track_info.acceleration_max=t.track_info.acceleration_max||-1/0,t.track_info.acceleration_min=t.track_info.acceleration_min||1/0,t.track_info.acceleration_avg=t.track_info.acceleration_avg||0;var i=t._data,n=t.track_info;if(t.options.accelerationDeltaMax){var r=e-i[a>0?a-1:a].acceleration,o=t.options.accelerationDeltaMax;Math.abs(r)>o&&(e=i[a-1].acceleration+o*Math.sign(r))}return(e=s(e,t.options.accelerationRange))>n.acceleration_max&&(n.acceleration_max=e),e<n.acceleration_min&&(n.acceleration_min=e),n.acceleration_avg=(e+n.acceleration_avg)/2,L.Util.formatNum(e,2)}}),\"summary\"!=this.options.acceleration&&(this._registerAxisScale({axis:\"y\",position:\"right\",scale:{min:0,max:1},tickPadding:16,label:a.label,labelX:25,labelY:-8,name:\"acceleration\"}),this._registerAreaPath({name:\"acceleration\",label:\"Acceleration\",yAttr:\"acceleration\",scaleX:\"distance\",scaleY:\"acceleration\",color:\"#050402\",strokeColor:\"#000\",strokeOpacity:\"0.5\",fillOpacity:\"0.25\"})),this._registerTooltip({name:\"acceleration\",chart:function(t){return L._(\"a: \")+t.acceleration+\" \"+a.label},marker:function(t){return Math.round(t.acceleration)+\" \"+a.label},order:60}),this._registerSummary({minacceleration:{label:\"Min Acceleration: \",value:function(t){return Math.round(t.acceleration_min||0)+\" \"+a.label},order:60},maxacceleration:{label:\"Max Acceleration: \",value:function(t){return Math.round(t.acceleration_max||0)+\" \"+a.label},order:60},avgacceleration:{label:\"Avg Acceleration: \",value:function(t){return Math.round(t.acceleration_avg||0)+\" \"+a.label},order:60}})}})),W.Utils=C,W.Components=X,W.Chart=U,R=L.i18n.bind({}),L.i18n=L._=function(t,e){return L.locale&&L.locales[L.locale]&&\"\"==L.locales[L.locale][t]&&(L.locales[L.locale][t]=\"\"),R.call(null,t,e)},W.addInitHook((function(){this.enableDragging=this.enableBrush,this.disableDragging=this.disableBrush,this.loadChart=this.addTo,this.loadData=this.load,this.loadGPX=this.load,this.loadGeoJSON=this.load,this.loadXML=this.load,this.loadFile=this.load,this._addGPXData=this._addGeoJSONData,this._registerFocusLabel=this._registerTooltip})),L.control.elevation=function(t){return new W(t)}}));\n//# sourceMappingURL=leaflet-elevation.min.js.map\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(((e=e||self).Leaflet=e.Leaflet||{},e.Leaflet.markercluster={}))}(this,function(e){\"use strict\";var t=L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,clusterPane:L.Marker.prototype.options.pane,spiderfyOnEveryZoom:!1,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyShapePositions:null,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:\"#222\",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(e){L.Util.setOptions(this,e),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.addEventParent(this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.addEventParent(this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[],this._childMarkerEventHandlers={dragstart:this._childMarkerDragStart,move:this._childMarkerMoved,dragend:this._childMarkerDragEnd};var t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup)return this.addLayers([e]);if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this.fire(\"layeradd\",{layer:e}),this;if(!this._map)return this._needsClustering.push(e),this.fire(\"layeradd\",{layer:e}),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this.fire(\"layeradd\",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons();var t=e,i=this._zoom;if(e.__parent)for(;t.__parent._zoom>=i;)t=t.__parent;return this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,t):this._animationAddLayerNonAnimated(e,t)),this},removeLayer:function(e){return e instanceof L.LayerGroup?this.removeLayers([e]):(e.getLatLng?this._map?e.__parent&&(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this.fire(\"layerremove\",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),e.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow())):(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push({layer:e,latlng:e._latlng}),this.fire(\"layerremove\",{layer:e})):(this._nonPointGroup.removeLayer(e),this.fire(\"layerremove\",{layer:e})),this)},addLayers:function(n,s){if(!L.Util.isArray(n))return this.addLayer(n);var o,a=this._featureGroup,h=this._nonPointGroup,l=this.options.chunkedLoading,u=this.options.chunkInterval,_=this.options.chunkProgress,d=n.length,p=0,c=!0;if(this._map){var f=(new Date).getTime(),m=L.bind(function(){var e=(new Date).getTime();for(this._map&&this._unspiderfy&&this._unspiderfy();p<d;p++){if(l&&p%200==0){var t=(new Date).getTime()-e;if(u<t)break}if((o=n[p])instanceof L.LayerGroup)c&&(n=n.slice(),c=!1),this._extractNonGroupLayers(o,n),d=n.length;else if(o.getLatLng){if(!this.hasLayer(o)&&(this._addLayer(o,this._maxZoom),s||this.fire(\"layeradd\",{layer:o}),o.__parent&&2===o.__parent.getChildCount())){var i=o.__parent.getAllChildMarkers(),r=i[0]===o?i[1]:i[0];a.removeLayer(r)}}else h.addLayer(o),s||this.fire(\"layeradd\",{layer:o})}_&&_(p,d,(new Date).getTime()-f),p===d?(this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(m,this.options.chunkDelay)},this);m()}else for(var e=this._needsClustering;p<d;p++)(o=n[p])instanceof L.LayerGroup?(c&&(n=n.slice(),c=!1),this._extractNonGroupLayers(o,n),d=n.length):o.getLatLng?this.hasLayer(o)||e.push(o):h.addLayer(o);return this},removeLayers:function(e){var t,i,r=e.length,n=this._featureGroup,s=this._nonPointGroup,o=!0;if(!this._map){for(t=0;t<r;t++)(i=e[t])instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),r=e.length):(this._arraySplice(this._needsClustering,i),s.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push({layer:i,latlng:i._latlng}),this.fire(\"layerremove\",{layer:i}));return this}if(this._unspiderfy){this._unspiderfy();var a=e.slice(),h=r;for(t=0;t<h;t++)(i=a[t])instanceof L.LayerGroup?(this._extractNonGroupLayers(i,a),h=a.length):this._unspiderfyLayer(i)}for(t=0;t<r;t++)(i=e[t])instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),r=e.length):i.__parent?(this._removeLayer(i,!0,!0),this.fire(\"layerremove\",{layer:i}),n.hasLayer(i)&&(n.removeLayer(i),i.clusterShow&&i.clusterShow())):(s.removeLayer(i),this.fire(\"layerremove\",{layer:i}));return this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),this},clearLayers:function(){return this._map||(this._needsClustering=[],this._needsRemoving=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(e){e.off(this._childMarkerEventHandlers,this),delete e.__parent},this),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;0<=t;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var i,r,n,s=this._needsClustering.slice(),o=this._needsRemoving;for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(s),r=s.length-1;0<=r;r--){for(i=!0,n=o.length-1;0<=n;n--)if(o[n].layer===s[r]){i=!1;break}i&&e.call(t,s[r])}this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var t=[];return this.eachLayer(function(e){t.push(e)}),t},getLayer:function(t){var i=null;return t=parseInt(t,10),this.eachLayer(function(e){L.stamp(e)===t&&(i=e)}),i},hasLayer:function(e){if(!e)return!1;var t,i=this._needsClustering;for(t=i.length-1;0<=t;t--)if(i[t]===e)return!0;for(t=(i=this._needsRemoving).length-1;0<=t;t--)if(i[t].layer===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){var i=this._map;\"function\"!=typeof t&&(t=function(){});var r=function(){!i.hasLayer(e)&&!i.hasLayer(e.__parent)||this._inZoomAnimation||(this._map.off(\"moveend\",r,this),this.off(\"animationend\",r,this),i.hasLayer(e)?t():e.__parent._icon&&(this.once(\"spiderfied\",t,this),e.__parent.spiderfy()))};e._icon&&this._map.getBounds().contains(e.getLatLng())?t():e.__parent._zoom<Math.round(this._map._zoom)?(this._map.on(\"moveend\",r,this),this._map.panTo(e.getLatLng())):(this._map.on(\"moveend\",r,this),this.on(\"animationend\",r,this),e.__parent.zoomToBounds())},onAdd:function(e){var t,i,r;if(this._map=e,!isFinite(this._map.getMaxZoom()))throw\"Map has no maxZoom specified\";for(this._featureGroup.addTo(e),this._nonPointGroup.addTo(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,i=this._needsRemoving.length;t<i;t++)(r=this._needsRemoving[t]).newlatlng=r.layer._latlng,r.layer._latlng=r.latlng;for(t=0,i=this._needsRemoving.length;t<i;t++)r=this._needsRemoving[t],this._removeLayer(r.layer,!0),r.layer._latlng=r.newlatlng;this._needsRemoving=[],this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on(\"zoomend\",this._zoomEnd,this),this._map.on(\"moveend\",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),i=this._needsClustering,this._needsClustering=[],this.addLayers(i,!0)},onRemove:function(e){e.off(\"zoomend\",this._zoomEnd,this),e.off(\"moveend\",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(\" leaflet-cluster-anim\",\"\"),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.remove(),this._nonPointGroup.remove(),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var i=e.length-1;0<=i;i--)if(e[i]===t)return e.splice(i,1),!0},_removeFromGridUnclustered:function(e,t){for(var i=this._map,r=this._gridUnclustered,n=Math.floor(this._map.getMinZoom());n<=t&&r[t].removeObject(e,i.project(e.getLatLng(),t));t--);},_childMarkerDragStart:function(e){e.target.__dragStart=e.target._latlng},_childMarkerMoved:function(e){if(!this._ignoreMove&&!e.target.__dragStart){var t=e.target._popup&&e.target._popup.isOpen();this._moveChild(e.target,e.oldLatLng,e.latlng),t&&e.target.openPopup()}},_moveChild:function(e,t,i){e._latlng=t,this.removeLayer(e),e._latlng=i,this.addLayer(e)},_childMarkerDragEnd:function(e){var t=e.target.__dragStart;delete e.target.__dragStart,t&&this._moveChild(e.target,t,e.target._latlng)},_removeLayer:function(e,t,i){var r=this._gridClusters,n=this._gridUnclustered,s=this._featureGroup,o=this._map,a=Math.floor(this._map.getMinZoom());t&&this._removeFromGridUnclustered(e,this._maxZoom);var h,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoom<a));)t&&l._childCount<=1?(h=l._markers[0]===e?l._markers[1]:l._markers[0],r[l._zoom].removeObject(l,o.project(l._cLatLng,l._zoom)),n[l._zoom].addObject(h,o.project(h.getLatLng(),l._zoom)),this._arraySplice(l.__parent._childClusters,l),l.__parent._markers.push(h),h.__parent=l.__parent,l._icon&&(s.removeLayer(l),i||s.addLayer(h))):l._iconNeedsUpdate=!0,l=l.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},fire:function(e,t,i){if(t&&t.layer instanceof L.MarkerCluster){if(t.originalEvent&&this._isOrIsParent(t.layer._icon,t.originalEvent.relatedTarget))return;e=\"cluster\"+e}L.FeatureGroup.prototype.fire.call(this,e,t,i)},listens:function(e,t){return L.FeatureGroup.prototype.listens.call(this,e,t)||L.FeatureGroup.prototype.listens.call(this,\"cluster\"+e,t)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),i=\" marker-cluster-\";return i+=t<10?\"small\":t<100?\"medium\":\"large\",new L.DivIcon({html:\"<div><span>\"+t+\"</span></div>\",className:\"marker-cluster\"+i,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,i=this.options.showCoverageOnHover,r=this.options.zoomToBoundsOnClick,n=this.options.spiderfyOnEveryZoom;(t||r||n)&&this.on(\"clusterclick clusterkeypress\",this._zoomOrSpiderfy,this),i&&(this.on(\"clustermouseover\",this._showCoverage,this),this.on(\"clustermouseout\",this._hideCoverage,this),e.on(\"zoomend\",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){var t=e.layer,i=t;if(\"clusterkeypress\"!==e.type||!e.originalEvent||13===e.originalEvent.keyCode){for(;1===i._childClusters.length;)i=i._childClusters[0];i._zoom===this._maxZoom&&i._childCount===t._childCount&&this.options.spiderfyOnMaxZoom?t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),this.options.spiderfyOnEveryZoom&&t.spiderfy(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()}},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),2<e.layer.getChildCount()&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick,r=this.options.spiderfyOnEveryZoom,n=this._map;(e||i||r)&&this.off(\"clusterclick clusterkeypress\",this._zoomOrSpiderfy,this),t&&(this.off(\"clustermouseover\",this._showCoverage,this),this.off(\"clustermouseout\",this._hideCoverage,this),n.off(\"zoomend\",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=Math.ceil(this._map.getMaxZoom()),t=Math.floor(this._map.getMinZoom()),i=this.options.maxClusterRadius,r=i;\"function\"!=typeof i&&(r=function(){return i}),null!==this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var n=e;t<=n;n--)this._gridClusters[n]=new L.DistanceGrid(r(n)),this._gridUnclustered[n]=new L.DistanceGrid(r(n));this._topClusterLevel=new this._markerCluster(this,t-1)},_addLayer:function(e,t){var i,r,n=this._gridClusters,s=this._gridUnclustered,o=Math.floor(this._map.getMinZoom());for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e),e.on(this._childMarkerEventHandlers,this);o<=t;t--){i=this._map.project(e.getLatLng(),t);var a=n[t].getNearObject(i);if(a)return a._addChild(e),void(e.__parent=a);if(a=s[t].getNearObject(i)){var h=a.__parent;h&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);n[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l;var u=e.__parent=l;for(r=t-1;r>h._zoom;r--)u=new this._markerCluster(this,r,u),n[r].addObject(u,this._map.project(a.getLatLng(),r));return h._addChild(u),void this._removeFromGridUnclustered(a,t)}s[t].addObject(e,i)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){var e=Math.round(this._map._zoom);this._processQueue(),this._zoom<e&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,e)):this._zoom>e?(this._animationStart(),this._animationZoomOut(this._zoom,e)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return void 0!==t&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var i=t.getAllChildMarkers();this._featureGroup.removeLayer(i[0]),this._featureGroup.removeLayer(i[1])}else t._updateIcon()},_extractNonGroupLayers:function(e,t){var i,r=e.getLayers(),n=0;for(t=t||[];n<r.length;n++)(i=r[n])instanceof L.LayerGroup?this._extractNonGroupLayers(i,t):t.push(i);return t},_overrideMarkerIcon:function(e){return e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}})}});L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(\"animationend\")},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(\"animationend\")},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=\" leaflet-cluster-anim\",this._inZoomAnimation++},_animationZoomIn:function(n,s){var o,a=this._getExpandedVisibleBounds(),h=this._featureGroup,e=Math.floor(this._map.getMinZoom());this._ignoreMove=!0,this._topClusterLevel._recursively(a,n,e,function(e){var t,i=e._latlng,r=e._markers;for(a.contains(i)||(i=null),e._isSingleParent()&&n+1===s?(h.removeLayer(e),e._recursivelyAddChildrenToMap(null,s,a)):(e.clusterHide(),e._recursivelyAddChildrenToMap(i,s,a)),o=r.length-1;0<=o;o--)t=r[o],a.contains(t._latlng)||h.removeLayer(t)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(a,s),h.eachLayer(function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()}),this._topClusterLevel._recursively(a,n,s,function(e){e._recursivelyRestoreChildPositions(s)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(a,n,e,function(e){h.removeLayer(e),e.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var i=this,r=this._featureGroup;r.addLayer(e),t!==e&&(2<t._childCount?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue(function(){r.removeLayer(e),e.clusterShow(),i._animationEnd()})):(this._forceLayout(),i._animationStart(),i._animationZoomOutSingle(t,this._map.getMaxZoom(),this._zoom)))}},_animationZoomOutSingle:function(t,i,r){var n=this._getExpandedVisibleBounds(),s=Math.floor(this._map.getMinZoom());t._recursivelyAnimateChildrenInAndAddSelfToMap(n,s,i+1,r);var o=this;this._forceLayout(),t._recursivelyBecomeVisible(n,r),this._enqueue(function(){if(1===t._childCount){var e=t._markers[0];this._ignoreMove=!0,e.setLatLng(e.getLatLng()),this._ignoreMove=!1,e.clusterShow&&e.clusterShow()}else t._recursively(n,r,s,function(e){e._recursivelyRemoveChildrenFromMap(n,s,i+1)});o._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(\" leaflet-cluster-anim\",\"\")),this._inZoomAnimation--,this.fire(\"animationend\")},_forceLayout:function(){L.Util.falseFn(document.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)};var i=L.MarkerCluster=L.Marker.extend({options:L.Icon.prototype.options,initialize:function(e,t,i,r){L.Marker.prototype.initialize.call(this,i?i._cLatLng||i.getLatLng():new L.LatLng(0,0),{icon:this,pane:e.options.clusterPane}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,i&&this._addChild(i),r&&this._addChild(r)},getAllChildMarkers:function(e,t){e=e||[];for(var i=this._childClusters.length-1;0<=i;i--)this._childClusters[i].getAllChildMarkers(e,t);for(var r=this._markers.length-1;0<=r;r--)t&&this._markers[r].__dragStart||e.push(this._markers[r]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(e){for(var t,i=this._childClusters.slice(),r=this._group._map,n=r.getBoundsZoom(this._bounds),s=this._zoom+1,o=r.getZoom();0<i.length&&s<n;){s++;var a=[];for(t=0;t<i.length;t++)a=a.concat(i[t]._childClusters);i=a}s<n?this._group._map.setView(this._latlng,s):n<=o?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds,e)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,i,r,n=this._markers,s=this._childClusters,o=0,a=0,h=this._childCount;if(0!==h){for(this._resetBounds(),e=0;e<n.length;e++)i=n[e]._latlng,this._bounds.extend(i),o+=i.lat,a+=i.lng;for(e=0;e<s.length;e++)(t=s[e])._boundsNeedUpdate&&t._recalculateBounds(),this._bounds.extend(t._bounds),i=t._wLatLng,r=t._childCount,o+=i.lat*r,a+=i.lng*r;this._latlng=this._wLatLng=new L.LatLng(o/h,a/h),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,n,t){this._recursively(e,this._group._map.getMinZoom(),t-1,function(e){var t,i,r=e._markers;for(t=r.length-1;0<=t;t--)(i=r[t])._icon&&(i._setPos(n),i.clusterHide())},function(e){var t,i,r=e._childClusters;for(t=r.length-1;0<=t;t--)(i=r[t])._icon&&(i._setPos(n),i.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(t,i,r,n){this._recursively(t,n,i,function(e){e._recursivelyAnimateChildrenIn(t,e._group._map.latLngToLayerPoint(e.getLatLng()).round(),r),e._isSingleParent()&&r-1===n?(e.clusterShow(),e._recursivelyRemoveChildrenFromMap(t,i,r)):e.clusterHide(),e._addToMap()})},_recursivelyBecomeVisible:function(e,t){this._recursively(e,this._group._map.getMinZoom(),t,null,function(e){e.clusterShow()})},_recursivelyAddChildrenToMap:function(r,n,s){this._recursively(s,this._group._map.getMinZoom()-1,n,function(e){if(n!==e._zoom)for(var t=e._markers.length-1;0<=t;t--){var i=e._markers[t];s.contains(i._latlng)&&(r&&(i._backupLatlng=i.getLatLng(),i.setLatLng(r),i.clusterHide&&i.clusterHide()),e._group._featureGroup.addLayer(i))}},function(e){e._addToMap(r)})},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;0<=t;t--){var i=this._markers[t];i._backupLatlng&&(i.setLatLng(i._backupLatlng),delete i._backupLatlng)}if(e-1===this._zoom)for(var r=this._childClusters.length-1;0<=r;r--)this._childClusters[r]._restorePosition();else for(var n=this._childClusters.length-1;0<=n;n--)this._childClusters[n]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,i,r){var n,s;this._recursively(e,t-1,i-1,function(e){for(s=e._markers.length-1;0<=s;s--)n=e._markers[s],r&&r.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())},function(e){for(s=e._childClusters.length-1;0<=s;s--)n=e._childClusters[s],r&&r.contains(n._latlng)||(e._group._featureGroup.removeLayer(n),n.clusterShow&&n.clusterShow())})},_recursively:function(e,t,i,r,n){var s,o,a=this._childClusters,h=this._zoom;if(t<=h&&(r&&r(this),n&&h===i&&n(this)),h<t||h<i)for(s=a.length-1;0<=s;s--)(o=a[s])._boundsNeedUpdate&&o._recalculateBounds(),e.intersects(o._bounds)&&o._recursively(e,t,i,r,n)},_isSingleParent:function(){return 0<this._childClusters.length&&this._childClusters[0]._childCount===this._childCount}});L.Marker.include({clusterHide:function(){var e=this.options.opacity;return this.setOpacity(0),this.options.opacity=e,this},clusterShow:function(){return this.setOpacity(this.options.opacity)}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var i=this._getCoord(t.x),r=this._getCoord(t.y),n=this._grid,s=n[r]=n[r]||{},o=s[i]=s[i]||[],a=L.Util.stamp(e);this._objectPoint[a]=t,o.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var i,r,n=this._getCoord(t.x),s=this._getCoord(t.y),o=this._grid,a=o[s]=o[s]||{},h=a[n]=a[n]||[];for(delete this._objectPoint[L.Util.stamp(e)],i=0,r=h.length;i<r;i++)if(h[i]===e)return h.splice(i,1),1===r&&delete a[n],!0},eachObject:function(e,t){var i,r,n,s,o,a,h=this._grid;for(i in h)for(r in o=h[i])for(n=0,s=(a=o[r]).length;n<s;n++)e.call(t,a[n])&&(n--,s--)},getNearObject:function(e){var t,i,r,n,s,o,a,h,l=this._getCoord(e.x),u=this._getCoord(e.y),_=this._objectPoint,d=this._sqCellSize,p=null;for(t=u-1;t<=u+1;t++)if(n=this._grid[t])for(i=l-1;i<=l+1;i++)if(s=n[i])for(r=0,o=s.length;r<o;r++)a=s[r],((h=this._sqDist(_[L.Util.stamp(a)],e))<d||h<=d&&null===p)&&(d=h,p=a);return p},_getCoord:function(e){var t=Math.floor(e/this._cellSize);return isFinite(t)?t:e},_sqDist:function(e,t){var i=t.x-e.x,r=t.y-e.y;return i*i+r*r}},L.QuickHull={getDistant:function(e,t){var i=t[1].lat-t[0].lat;return(t[0].lng-t[1].lng)*(e.lat-t[0].lat)+i*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var i,r,n,s=0,o=null,a=[];for(i=t.length-1;0<=i;i--)r=t[i],0<(n=this.getDistant(r,e))&&(a.push(r),s<n&&(s=n,o=r));return{maxPoint:o,newPoints:a}},buildConvexHull:function(e,t){var i=[],r=this.findMostDistantPointFromBaseLine(e,t);return r.maxPoint?i=(i=i.concat(this.buildConvexHull([e[0],r.maxPoint],r.newPoints))).concat(this.buildConvexHull([r.maxPoint,e[1]],r.newPoints)):[e[0]]},getConvexHull:function(e){var t,i=!1,r=!1,n=!1,s=!1,o=null,a=null,h=null,l=null,u=null,_=null;for(t=e.length-1;0<=t;t--){var d=e[t];(!1===i||d.lat>i)&&(i=(o=d).lat),(!1===r||d.lat<r)&&(r=(a=d).lat),(!1===n||d.lng>n)&&(n=(h=d).lng),(!1===s||d.lng<s)&&(s=(l=d).lng)}return u=r!==i?(_=a,o):(_=l,h),[].concat(this.buildConvexHull([_,u],e),this.buildConvexHull([u,_],e))}},L.MarkerCluster.include({getConvexHull:function(){var e,t,i=this.getAllChildMarkers(),r=[];for(t=i.length-1;0<=t;t--)e=i[t].getLatLng(),r.push(e);return L.QuickHull.getConvexHull(r)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:0,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(null,!0),i=this._group._map.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),e=(this._group._spiderfied=this)._group.options.spiderfyShapePositions?this._group.options.spiderfyShapePositions(t.length,i):t.length>=this._circleSpiralSwitchover?this._generatePointsSpiral(t.length,i):(i.y+=10,this._generatePointsCircle(t.length,i)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var i,r,n=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e)/this._2PI,s=this._2PI/e,o=[];for(n=Math.max(n,35),o.length=e,i=0;i<e;i++)r=this._circleStartAngle+i*s,o[i]=new L.Point(t.x+n*Math.cos(r),t.y+n*Math.sin(r))._round();return o},_generatePointsSpiral:function(e,t){var i,r=this._group.options.spiderfyDistanceMultiplier,n=r*this._spiralLengthStart,s=r*this._spiralFootSeparation,o=r*this._spiralLengthFactor*this._2PI,a=0,h=[];for(i=h.length=e;0<=i;i--)i<e&&(h[i]=new L.Point(t.x+n*Math.cos(a),t.y+n*Math.sin(a))._round()),n+=o/(a+=s/n+5e-4*i);return h},_noanimationUnspiderfy:function(){var e,t,i=this._group,r=i._map,n=i._featureGroup,s=this.getAllChildMarkers(null,!0);for(i._ignoreMove=!0,this.setOpacity(1),t=s.length-1;0<=t;t--)e=s[t],n.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(r.removeLayer(e._spiderLeg),delete e._spiderLeg);i.fire(\"unspiderfied\",{cluster:this,markers:s}),i._ignoreMove=!1,i._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var i,r,n,s,o=this._group,a=o._map,h=o._featureGroup,l=this._group.options.spiderLegPolylineOptions;for(o._ignoreMove=!0,i=0;i<e.length;i++)s=a.layerPointToLatLng(t[i]),r=e[i],n=new L.Polyline([this._latlng,s],l),a.addLayer(n),r._spiderLeg=n,r._preSpiderfyLatlng=r._latlng,r.setLatLng(s),r.setZIndexOffset&&r.setZIndexOffset(1e6),h.addLayer(r);this.setOpacity(.3),o._ignoreMove=!1,o.fire(\"spiderfied\",{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var i,r,n,s,o,a,h=this,l=this._group,u=l._map,_=l._featureGroup,d=this._latlng,p=u.latLngToLayerPoint(d),c=L.Path.SVG,f=L.extend({},this._group.options.spiderLegPolylineOptions),m=f.opacity;for(void 0===m&&(m=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),c?(f.opacity=0,f.className=(f.className||\"\")+\" leaflet-cluster-spider-leg\"):f.opacity=m,l._ignoreMove=!0,i=0;i<e.length;i++)r=e[i],a=u.layerPointToLatLng(t[i]),n=new L.Polyline([d,a],f),u.addLayer(n),r._spiderLeg=n,c&&(o=(s=n._path).getTotalLength()+.1,s.style.strokeDasharray=o,s.style.strokeDashoffset=o),r.setZIndexOffset&&r.setZIndexOffset(1e6),r.clusterHide&&r.clusterHide(),_.addLayer(r),r._setPos&&r._setPos(p);for(l._forceLayout(),l._animationStart(),i=e.length-1;0<=i;i--)a=u.layerPointToLatLng(t[i]),(r=e[i])._preSpiderfyLatlng=r._latlng,r.setLatLng(a),r.clusterShow&&r.clusterShow(),c&&((s=(n=r._spiderLeg)._path).style.strokeDashoffset=0,n.setStyle({opacity:m}));this.setOpacity(.3),l._ignoreMove=!1,setTimeout(function(){l._animationEnd(),l.fire(\"spiderfied\",{cluster:h,markers:e})},200)},_animationUnspiderfy:function(e){var t,i,r,n,s,o,a=this,h=this._group,l=h._map,u=h._featureGroup,_=e?l._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):l.latLngToLayerPoint(this._latlng),d=this.getAllChildMarkers(null,!0),p=L.Path.SVG;for(h._ignoreMove=!0,h._animationStart(),this.setOpacity(1),i=d.length-1;0<=i;i--)(t=d[i])._preSpiderfyLatlng&&(t.closePopup(),t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,o=!0,t._setPos&&(t._setPos(_),o=!1),t.clusterHide&&(t.clusterHide(),o=!1),o&&u.removeLayer(t),p&&(s=(n=(r=t._spiderLeg)._path).getTotalLength()+.1,n.style.strokeDashoffset=s,r.setStyle({opacity:0})));h._ignoreMove=!1,setTimeout(function(){var e=0;for(i=d.length-1;0<=i;i--)(t=d[i])._spiderLeg&&e++;for(i=d.length-1;0<=i;i--)(t=d[i])._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),1<e&&u.removeLayer(t),l.removeLayer(t._spiderLeg),delete t._spiderLeg);h._animationEnd(),h.fire(\"unspiderfied\",{cluster:a,markers:d})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,unspiderfy:function(){this._unspiderfy.apply(this,arguments)},_spiderfierOnAdd:function(){this._map.on(\"click\",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on(\"zoomstart\",this._unspiderfyZoomStart,this),this._map.on(\"zoomend\",this._noanimationUnspiderfy,this),L.Browser.touch||this._map.getRenderer(this)},_spiderfierOnRemove:function(){this._map.off(\"click\",this._unspiderfyWrapper,this),this._map.off(\"zoomstart\",this._unspiderfyZoomStart,this),this._map.off(\"zoomanim\",this._unspiderfyZoomAnim,this),this._map.off(\"zoomend\",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on(\"zoomanim\",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,\"leaflet-touching\")||(this._map.off(\"zoomanim\",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,i;for(t in e)for(i=e[t].__parent;i;)i._iconNeedsUpdate=!0,i=i.__parent},_refreshSingleMarkerModeMarkers:function(e){var t,i;for(t in e)i=e[t],this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i))}}),L.Marker.include({refreshIconOptions:function(e,t){var i=this.options.icon;return L.setOptions(i,e),this.setIcon(i),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}}),e.MarkerClusterGroup=t,e.MarkerCluster=i,Object.defineProperty(e,\"__esModule\",{value:!0})});\n//# sourceMappingURL=leaflet.markercluster.js.map","@use '~leaflet/dist/leaflet.css';\n@use '~leaflet.locatecontrol/dist/L.Control.Locate.min.css';\n@use '~@raruto/leaflet-elevation/dist/leaflet-elevation.min.css';\n@use '~leaflet.markercluster/dist/MarkerCluster.css';\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n#map {\n position: relative;\n font-family: var(--font-family);\n display: block;\n}\n\n.leaflet-control-layers-toggle,\n.leaflet-retina .leaflet-control-layers-toggle {\n background-image: var(--layers-image-src);\n}\n\n.treks-map {\n height: calc(100%);\n}\n\n.trek-map {\n height: calc(100% - 350px - var(--map-bottom-space-height));\n}\n\n#elevation {\n position: relative;\n background-color: #ffffff;\n}\n\n.elevation-control .background {\n border-radius: 0px;\n}\n\n.custom-theme.elevation-control .axis text {\n fill: var(--color-on-surface);\n}\n\n.custom-theme.elevation-control .axis line,\n.custom-theme.elevation-control .axis path {\n stroke: var(--color-on-surface);\n}\n\n.custom-theme.elevation-control .mouse-focus-label-rect {\n fill: var(--color-primary-container);\n stroke: var(--color-on-primary-container);\n}\n\n.custom-theme.elevation-control .mouse-focus-label-text {\n fill: var(--color-on-primary-container);\n}\n\n.custom-theme.elevation-control .background {\n background-color: var(--color-background);\n}\n\n.custom-theme.elevation-control .mouse-focus-line {\n stroke: var(--color-on-surface);\n}\n\n.use-theme-color.elevation-control .area path.altitude,\n.use-theme-color .legend-altitude rect.area {\n fill: var(--color-primary-app);\n stroke: var(--color-trek-line);\n}\n\n.custom-theme.height-focus.circle-lower {\n fill: #ffffff;\n stroke: var(--color-on-surface);\n}\n\n.custom-theme.elevation-polyline {\n stroke: var(--color-trek-line);\n}\n\n.custom-theme.height-focus.line,\n.custom-theme.height-focus-label {\n display: none;\n}\n\n.custom-theme .elevation-summary {\n margin: -12px 0px 0px 36px;\n font-size: 8px;\n font-family: var(--font-family);\n :nth-child(3)::after {\n display: none;\n }\n .avgele {\n display: none;\n }\n}\n\n.treks-marker-cluster-group-icon,\n.touristic-content-marker-cluster-group-icon,\n.touristic-event-marker-cluster-group-icon {\n background-color: var(--color-primary-app);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n color: var(--color-on-primary);\n font-size: 16px;\n}\n\n.trek-marker,\n.step-marker,\n.touristic-content-marker,\n.touristic-event-marker,\n.selected-trek-marker,\n.selected-step-marker,\n.selected-touristic-content-marker,\n.selected-touristic-event-marker,\n.departure-marker,\n.arrival-marker {\n .trek-marker-container,\n .step-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50% 50% 50% 0;\n border: 2px solid #ffffff;\n width: 32px;\n height: 32px;\n transform: rotate(-45deg);\n img,\n .step-number {\n display: flex;\n justify-content: center;\n align-items: center;\n transform: rotate(45deg);\n position: absolute;\n z-index: 20;\n width: 24px !important;\n }\n }\n .trek-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n background-color: var(--color-surface);\n }\n .step-marker-container {\n background-color: var(--color-surface-variant);\n }\n}\n\n.departure-marker {\n background-color: #008000;\n border-radius: 14px;\n width: 14px !important;\n height: 14px !important;\n border: 4px #ffffff solid;\n z-index: 4000001 !important;\n}\n\n.arrival-marker {\n background-color: #ff0000;\n border-radius: 14px;\n width: 14px !important;\n height: 14px !important;\n border: 4px #ffffff solid;\n z-index: 4000000 !important;\n}\n\n.selected-trek-marker,\n.selected-step-marker,\n.selected-touristic-content-marker,\n.selected-touristic-event-marker {\n .trek-marker-container,\n .step-marker-container,\n .touristic-content-marker-container,\n .touristic-event-marker-container {\n width: 48px;\n height: 48px;\n img,\n .step-number {\n width: 32px !important;\n }\n }\n}\n\n.step-marker,\n.selected-step-marker {\n color: var(--color-on-surface-variant);\n}\n\n.map-loader-container {\n position: absolute;\n z-index: 500;\n width: 100%;\n height: 100%;\n background-color: var(--color-background);\n display: flex;\n justify-content: center;\n align-items: center;\n .loader {\n width: 48px;\n height: 48px;\n border: 5px solid var(--color-primary-container);\n border-bottom-color: var(--color-on-primary-container);\n border-radius: 50%;\n display: inline-block;\n box-sizing: border-box;\n animation: rotation 1s linear infinite;\n }\n\n @keyframes rotation {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n}\n\n.trek-departure-popup,\n.touristic-content-coordinates-popup,\n.touristic-event-coordinates-popup {\n position: relative;\n display: flex;\n flex-direction: column;\n img {\n border-top-left-radius: var(--border-radius, 8px);\n border-top-right-radius: var(--border-radius, 8px);\n }\n .trek-name,\n .touristic-content-name,\n .touristic-event-name {\n color: var(--color-primary-app);\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n padding: 8px;\n }\n .trek-button,\n .touristic-content-button,\n .touristic-event-button {\n margin: 0px 8px 8px 8px;\n user-select: none;\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n border: none;\n background-color: var(--color-background);\n color: var(--color-on-surface);\n padding: 12px 24px;\n border-radius: var(--border-radius, 20px);\n box-sizing: border-box;\n position: relative;\n gap: 8px;\n white-space: nowrap;\n line-height: 20px;\n letter-spacing: 0.1000000015px;\n font-size: 14px;\n font-weight: 500;\n box-shadow: var(--elevation-1);\n transition: box-shadow 0.2s ease-in-out 0s;\n font-family: var(--font-family);\n }\n}\n\n.poi-tooltip,\n.information-desks-tooltip,\n.sensitive-area-tooltip,\n.touristic-content-tooltip,\n.touristic-event-tooltip,\n.parking-tooltip {\n .poi-name,\n .information-desks-name,\n .sensitive-area-name,\n .touristic-content-name,\n .touristic-event-name,\n .parking-name {\n color: var(--color-primary-app);\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n }\n}\n\n.sensitiveAreasCheckboxContainer {\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: #ffffff;\n padding: 8px;\n border-radius: var(--border-radius, 8px);\n user-select: none;\n input,\n label {\n cursor: pointer;\n }\n input {\n margin: 0;\n }\n label {\n padding-left: 8px;\n }\n}\n\n.poi-icon,\n.information-desks-icon,\n.touristic-content-icon,\n.touristic-event-icon {\n background-color: var(--color-poi-icon);\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n img {\n width: 36px !important;\n }\n}\n\n.parking-icon {\n img {\n width: 48px !important;\n }\n}\n\n.point-reference-icon {\n background-color: #ff0000;\n border: 1px solid #ffffff;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 24px;\n height: 24px;\n font-size: 24px;\n color: #ffffff;\n}\n\n.map-bottom-space {\n min-height: var(--map-bottom-space-height);\n height: var(--map-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.leaflet-popup {\n bottom: 40px !important;\n left: -70px !important;\n}\n\n.leaflet-popup-content-wrapper {\n cursor: default;\n padding: 0px;\n background-color: var(--color-background);\n box-shadow: var(--elevation-2);\n}\n\n.leaflet-popup-content {\n width: 144px;\n margin: 0;\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, getAssetPath, Build, Listen } from '@stencil/core';\nimport { Feature, FeatureCollection } from 'geojson';\nimport L, { MarkerClusterGroup, TileLayer } from 'leaflet';\nimport 'leaflet-rotate';\nimport 'leaflet.locatecontrol';\nimport 'leaflet-i18n';\nimport '@raruto/leaflet-elevation/dist/leaflet-elevation.min.js';\nimport 'leaflet.markercluster/dist/leaflet.markercluster.js';\nimport state, { onChange } from 'store/store';\nimport { translate } from 'i18n/i18n';\nimport { getTrekGeometry } from 'services/treks.service';\nimport { tileLayerOffline } from 'leaflet.offline';\nimport { Trek } from 'components';\nimport { getDataInStore } from 'services/grw-db.service';\nimport { arrayBufferToBlob } from 'utils/utils';\n\n@Component({\n tag: 'grw-map',\n styleUrl: 'grw-map.scss',\n shadow: true,\n})\nexport class GrwMap {\n mapRef: HTMLElement;\n elevationRef: HTMLElement;\n maxZoom = 19;\n\n @Event() trekCardPress: EventEmitter<number>;\n @Event() touristicContentCardPress: EventEmitter<number>;\n @Event() touristicEventCardPress: EventEmitter<number>;\n\n @State() mapIsReady = false;\n @Prop() nameLayer: string;\n @Prop() urlLayer: string;\n @Prop() attributionLayer: string;\n @Prop() center = '1, 1';\n @Prop() zoom = 10;\n\n @Prop() fontFamily = 'Roboto';\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() colorSensitiveArea = '#4974a5';\n @Prop() colorPoiIcon = '#974c6e';\n @Prop() useGradient = false;\n @Prop() trekTilesMaxZoomOffline = 16;\n\n @Prop() isLargeView = false;\n map: L.Map;\n resizeObserver: ResizeObserver;\n bounds;\n treksLayer: L.GeoJSON<any>;\n toutisticContentsLayer: L.GeoJSON<any>;\n touristicEventsLayer: L.GeoJSON<any>;\n\n treksMarkerClusterGroup: MarkerClusterGroup;\n touristicContentsMarkerClusterGroup: MarkerClusterGroup;\n touristicEventsMarkerClusterGroup: MarkerClusterGroup;\n currentTrekLayer: L.GeoJSON<any>;\n currentStepsLayer: L.GeoJSON<any>;\n selectedCurrentTrekLayer: L.GeoJSON<any>;\n selectedCurrentStepLayer: L.GeoJSON<any>;\n selectedTouristicContentLayer: L.GeoJSON<any>;\n selectedTouristicEventLayer: L.GeoJSON<any>;\n currentReferencePointsLayer: L.GeoJSON<any>;\n currentParkingLayer: L.GeoJSON<any>;\n currentSensitiveAreasLayer: L.GeoJSON<any>;\n currentPoisLayer: L.GeoJSON<any>;\n currentInformationDesksLayer: L.GeoJSON<any>;\n currentToutisticContentsLayer: L.GeoJSON<any>;\n currenttouristicEventsLayer: L.GeoJSON<any>;\n currentToutisticContentLayer: L.GeoJSON<any>;\n currentToutisticEventLayer: L.GeoJSON<any>;\n elevationControl: L.Control.Layers;\n departureArrivalLayer: L.GeoJSON<any>;\n layersControl: L.Control.Layers;\n userLayersState: {\n [key: number]: boolean;\n } = {};\n tileLayer: { key: string; value: TileLayer }[] = [];\n trekPopupIsOpen: boolean;\n stepPopupIsOpen: boolean;\n touristicContentPopupIsOpen: boolean;\n touristicEventPopupIsOpen: boolean;\n\n handleTreksWithinBoundsBind: (event: any) => void = this.handleTreksWithinBounds.bind(this);\n handleTouristicContentsWithinBoundsBind: (event: any) => void = this.handleTouristicContentsWithinBounds.bind(this);\n handleTouristicEventsWithinBoundsBind: (event: any) => void = this.handleTouristicEventsWithinBounds.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('stepsIsInViewport', { target: 'window' })\n stepsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentStepsLayer) {\n this.handleLayerVisibility(event.detail, this.currentStepsLayer);\n }\n }\n\n @Listen('descriptionIsInViewport', { target: 'window' })\n descriptionIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentReferencePointsLayer) {\n this.handleLayerVisibility(event.detail, this.currentReferencePointsLayer);\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 @Listen('touristicContentsIsInViewport', { target: 'window' })\n touristicContentsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currentToutisticContentsLayer) {\n this.handleLayerVisibility(event.detail, this.currentToutisticContentsLayer);\n }\n }\n\n @Listen('touristicEventsIsInViewport', { target: 'window' })\n touristicEventsIsInViewport(event: CustomEvent<boolean>) {\n if (this.currenttouristicEventsLayer) {\n this.handleLayerVisibility(event.detail, this.currenttouristicEventsLayer);\n }\n }\n\n @Listen('cardTrekMouseOver', { target: 'window' })\n onCardTrekMouseOver(event: CustomEvent<number>) {\n if (!state.parentTrek && (!state.selectedTrekId || state.selectedTrekId !== event.detail)) {\n state.selectedTrekId = event.detail;\n this.hideTrekLine();\n this.showTrekLine(event.detail);\n this.addSelectedCurrentTrek(event.detail);\n } else if (state.parentTrek) {\n this.stepPopupIsOpen = false;\n state.selectedStepId = null;\n this.addSelectedCurrentStep(event.detail);\n }\n }\n\n @Listen('cardTrekMouseLeave', { target: 'window' })\n onCardTrekMouseLeave() {\n if (!this.trekPopupIsOpen && state.selectedTrekId) {\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n } else if (this.selectedCurrentStepLayer) {\n this.removeSelectedCurrentStep();\n }\n }\n\n @Listen('cardTouristicContentMouseOver', { target: 'window' })\n onTouristicContentMouseOver(event: CustomEvent<number>) {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.addSelectedTouristicContent(event.detail);\n }\n\n @Listen('cardTouristicContentMouseLeave', { target: 'window' })\n onTouristicContentMouseLeave() {\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n\n @Listen('cardTouristicEventMouseOver', { target: 'window' })\n onTouristicEventMouseOver(event: CustomEvent<number>) {\n this.touristicEventPopupIsOpen = false;\n state.selectedTouristicEventId = null;\n this.addSelectedTouristicEvent(event.detail);\n }\n\n @Listen('cardTouristicEventMouseLeave', { target: 'window' })\n onTouristicEventMouseLeave() {\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n\n @Listen('trekDownloadedSuccessConfirm', { target: 'window' })\n onTrekDownloadedSuccessConfirm() {\n this.map.setMaxZoom(this.trekTilesMaxZoomOffline);\n }\n\n @Listen('trekDeleteSuccessConfirm', { target: 'window' })\n onTrekDeleteSuccessConfirm() {\n this.map.setMaxZoom(this.maxZoom);\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 const nameLayers = this.nameLayer ? this.nameLayer.split(',') : [];\n\n const urlLayers = this.urlLayer.split(',http').map((url, index) => (index === 0 ? url : 'http' + url));\n\n const attributionLayers = this.attributionLayer ? this.attributionLayer.split(',') : [];\n urlLayers.forEach((urlLayer, index) => {\n this.tileLayer.push({\n key: `${nameLayers[index]}`,\n value: tileLayerOffline(urlLayer, {\n maxZoom: this.maxZoom,\n attribution: `${\n attributionLayers[index] && attributionLayers[index] !== '' ? attributionLayers[index].concat(' | ') : ''\n }Powered by <a target=\"_blank\" href=\"https://geotrek.fr/\">Geotrek</a>`,\n crossOrigin: true,\n }),\n });\n });\n\n this.tileLayer[0].value.addTo(this.map);\n\n if (urlLayers.length > 1) {\n this.layersControl = L.control\n .layers(\n this.tileLayer.reduce((tileLayers, tileLayer) => Object.assign(tileLayers, { [tileLayer.key]: tileLayer.value }), {}),\n {},\n { collapsed: true },\n )\n .addTo(this.map);\n }\n\n (L.Control as any).Contract = L.Control.extend({\n onAdd: () => {\n const contractContainer = L.DomUtil.create('div');\n contractContainer.className = 'leaflet-bar leaflet-control';\n const contract = contractContainer.appendChild(L.DomUtil.create('a'));\n contract.href = '#';\n contract.style.backgroundImage = `var(--contract-image-src)`;\n contractContainer.onclick = e => {\n this.bounds && this.map.fitBounds(this.bounds);\n e.preventDefault();\n };\n return contractContainer;\n },\n });\n\n (L.control as any).contract = opts => {\n return new (L.Control as any).Contract(opts);\n };\n\n (L.control as any).contract({ position: 'topleft' }).addTo(this.map);\n\n if (state.currentTrek) {\n this.addTrek();\n } else if (state.currentTreks) {\n this.addTreks();\n } else if (state.currentTouristicContent) {\n this.addTouristicContent();\n } else if (state.currentTouristicEvent) {\n this.addTouristicEvent();\n } else if (state.touristicContents) {\n this.addTouristicContents();\n } else if (state.touristicEvents) {\n this.addTouristicEvents();\n }\n\n onChange('currentTreks', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTreks();\n this.removeTouristicContents();\n this.removeTouristicEvents();\n this.removeTrek();\n this.removeTouristicContent();\n this.removeTouristicEvent();\n this.addTreks(true);\n }\n });\n\n onChange('currentTrek', () => {\n if (state.currentTrek) {\n this.removeTreks();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTrek();\n this.removeTouristicContent();\n this.removeTouristicEvent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicContent', () => {\n if (state.currentTouristicContent) {\n this.removeTrek();\n this.removeTouristicContents();\n this.addTouristicContent();\n } else if (state.touristicContents) {\n this.removeTouristicContent();\n this.addTouristicContents();\n } else if (state.currentTrek) {\n this.removeTouristicContent();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTouristicContent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicEvent', () => {\n if (state.currentTouristicEvent) {\n this.removeTrek();\n this.removeTouristicEvents();\n this.addTouristicEvent();\n } else if (state.currentTrek) {\n this.removeTouristicEvent();\n this.addTrek();\n } else if (state.currentTreks) {\n this.removeTouristicEvent();\n this.addTreks();\n }\n });\n\n onChange('currentTouristicContents', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTouristicContent) {\n this.removeTouristicContents();\n this.addTouristicContent();\n } else if (state.currentTouristicContents) {\n this.removeTreks();\n this.removeTouristicEvents();\n this.removeTouristicContent();\n this.addTouristicContents(true);\n }\n });\n\n onChange('currentTouristicEvents', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.currentTouristicEvent) {\n this.removeTouristicEvents();\n this.addTouristicEvent();\n } else if (state.currentTouristicEvents) {\n this.removeTreks();\n this.removeTouristicContents();\n this.removeTouristicEvent();\n this.addTouristicEvents(true);\n }\n });\n\n onChange('mode', () => {\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n this.removeSelectedTouristicContent();\n this.removeSelectedTouristicEvent();\n if (state.mode === 'treks') {\n if (state.treks) {\n this.removeTouristicContents();\n this.removeTouristicEvents();\n this.addTreks(true);\n }\n } else if (state.mode === 'touristicContents') {\n if (state.touristicContents) {\n this.removeTreks();\n this.removeTouristicEvents();\n this.addTouristicContents(true);\n }\n } else if (state.mode === 'touristicEvents') {\n if (state.touristicEvents) {\n this.removeTreks();\n this.removeTouristicContents();\n this.addTouristicEvents(true);\n }\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 async addTreks(resetBounds = false) {\n state.treksWithinBounds = state.currentTreks;\n\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.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(treksCurrentDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n\n const treksIcons = await this.getIcons(treksFeatureCollection, 'practice');\n\n this.treksLayer = L.geoJSON(treksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: treksIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"trek-marker-container\"><img crossorigin=\"anonymous\" src=${treksIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"trek-marker-container\"></div>`,\n className: 'trek-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.hideTrekLine();\n this.showTrekLine(geoJsonPoint.properties.id);\n this.addSelectedCurrentTrek(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.treksMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({ html: '<div>' + cluster.getChildCount() + '</div>', className: 'treks-marker-cluster-group-icon', iconSize: 48 } as any);\n },\n });\n\n this.treksMarkerClusterGroup.addLayer(this.treksLayer);\n this.map.addLayer(this.treksMarkerClusterGroup);\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 this.treksMarkerClusterGroup.clearLayers();\n this.treksMarkerClusterGroup.addLayer(this.treksLayer);\n }\n this.bounds && this.bounds._northEast && this.bounds._southWest && this.map.fitBounds(this.bounds);\n\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n this.map.on('moveend', this.handleTreksWithinBoundsBind);\n }\n\n removeTreks() {\n if (this.treksLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.treksMarkerClusterGroup);\n this.treksLayer = null;\n this.treksMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTreksWithinBoundsBind);\n }\n }\n\n handleTreksWithinBounds() {\n if (\n (state.currentTreks && !state.currentMapBounds) ||\n (state.currentTreks && state.currentMapBounds && state.currentMapBounds.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 handleTouristicContentsWithinBounds() {\n if (\n (state.currentTouristicContents && !state.currentMapBounds) ||\n (state.currentTouristicContents && state.currentMapBounds && state.currentMapBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.touristicContentsWithinBounds = state.currentTouristicContents.filter(touristicContent =>\n this.map.getBounds().contains(L.latLng(touristicContent.geometry.coordinates[1], touristicContent.geometry.coordinates[0])),\n );\n }\n }\n\n handleTouristicEventsWithinBounds() {\n if (\n (state.currentTouristicEvents && !state.currentMapBounds) ||\n (state.currentTouristicEvents && state.currentMapBounds && state.currentMapBounds.toBBoxString() !== this.map.getBounds().toBBoxString())\n ) {\n state.touristicEventsWithinBounds = state.currentTouristicEvents.filter(touristicEvent =>\n this.map.getBounds().contains(L.latLng(touristicEvent.geometry.coordinates[1], touristicEvent.geometry.coordinates[0])),\n );\n }\n }\n\n async addTrek() {\n const trekInStore: Trek = await getDataInStore('treks', state.currentTrek.id);\n if (trekInStore) {\n this.map.setMaxZoom(this.trekTilesMaxZoomOffline);\n } else {\n this.map.setMaxZoom(this.maxZoom);\n }\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n\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 if (state.currentTrek.parking_location) {\n const parkingImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/parking.svg`);\n const currentParking: Feature = {\n type: 'Feature',\n properties: { name: state.currentTrek.advised_parking },\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: `<img crossorigin=\"anonymous\" src=${parkingImageSrc} />`,\n className: 'parking-icon',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const parkingTooltip = L.DomUtil.create('div');\n parkingTooltip.className = 'parking-tooltip';\n const parkingName = L.DomUtil.create('div');\n parkingName.innerHTML = geoJsonPoint.properties.name;\n parkingName.className = 'parking-name';\n parkingTooltip.appendChild(parkingName);\n layer.bindTooltip(parkingTooltip).openTooltip();\n });\n },\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 const poiIcons = await this.getIcons(currentPoisFeatureCollection, 'type_pictogram');\n\n this.currentPoisLayer = L.geoJSON(currentPoisFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: poiIcons[geoJsonPoint.properties.type_pictogram] ? `<img crossorigin=\"anonymous\" src=${poiIcons[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.trekTouristicContents && state.trekTouristicContents.length > 0) {\n const currentTouristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const touristicContent of state.trekTouristicContents) {\n currentTouristicContentsFeatureCollection.features.push({\n type: 'Feature',\n properties: {\n name: touristicContent.name,\n category_pictogram: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === touristicContent.category)?.pictogram,\n },\n geometry: touristicContent.geometry,\n });\n }\n\n const toutisticContentsIcons = await this.getIcons(currentTouristicContentsFeatureCollection, 'category_pictogram');\n\n this.currentToutisticContentsLayer = L.geoJSON(currentTouristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) => {\n return L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentsIcons[geoJsonPoint.properties.category_pictogram]\n ? `<img crossorigin=\"anonymous \"src=${toutisticContentsIcons[geoJsonPoint.properties.category_pictogram]} />`\n : `<img />`,\n className: 'touristic-content-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const touristicContentTooltip = L.DomUtil.create('div');\n touristicContentTooltip.className = 'touristic-content-tooltip';\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentTooltip.appendChild(touristicContentName);\n layer.bindTooltip(touristicContentTooltip).openTooltip();\n });\n },\n });\n }\n\n if (state.touristicEvents && state.touristicEvents.length > 0) {\n const currentTouristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n for (const touristicEvent of state.touristicEvents) {\n currentTouristicEventsFeatureCollection.features.push({\n type: 'Feature',\n properties: {\n name: touristicEvent.name,\n type_pictogram: state.touristicEventTypes.find(touristicEventType => touristicEventType.id === touristicEvent.type)?.pictogram,\n },\n geometry: touristicEvent.geometry,\n });\n }\n\n const toutisticEventsIcons = await this.getIcons(currentTouristicEventsFeatureCollection, 'type_pictogram');\n this.currenttouristicEventsLayer = L.geoJSON(currentTouristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticEventsIcons[geoJsonPoint.properties.type_pictogram]\n ? `\n <img crossorigin=\"anonymous\" src=${toutisticEventsIcons[geoJsonPoint.properties.type_pictogram]} />`\n : `<img />`,\n className: 'touristic-event-icon',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('mouseover', () => {\n const touristicEventTooltip = L.DomUtil.create('div');\n touristicEventTooltip.className = 'touristic-event-tooltip';\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventTooltip.appendChild(touristicEventName);\n layer.bindTooltip(touristicEventTooltip).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 if (currentInformationDesksFeatureCollection.features.length > 0) {\n const informationDesksIcons = await this.getIcons(currentInformationDesksFeatureCollection, 'type_pictogram');\n this.currentInformationDesksLayer = L.geoJSON(currentInformationDesksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: informationDesksIcons[geoJsonPoint.properties.type_pictogram]\n ? `<img crossorigin=\"anonymous\" src=${informationDesksIcons[geoJsonPoint.properties.type_pictogram]} />`\n : `<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\n if (state.currentTrek.points_reference) {\n const currentReferencePointsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n currentReferencePointsFeatureCollection.features.push({\n type: 'Feature',\n properties: {},\n geometry: state.currentTrek.points_reference,\n });\n\n let index = 0;\n this.currentReferencePointsLayer = L.geoJSON(currentReferencePointsFeatureCollection, {\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\n if (!this.currentStepsLayer && state.parentTrekId && state.parentTrek && state.currentTrek.id === state.parentTrekId) {\n const stepsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTrekSteps) {\n for (const trek of state.currentTrekSteps) {\n stepsFeatureCollection.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 let stepIndex = 0;\n this.currentStepsLayer = L.geoJSON(stepsFeatureCollection, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n stepIndex += 1;\n return L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: `<div class=\"step-marker-container\"><div class=\"step-number\">${stepIndex}</div></div>`,\n className: 'step-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedCurrentStep(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n }\n\n let elevationTranslation = {\n 'y: ': '',\n 'x: ': '',\n 'Total Length: ': 'Longueur totale : ',\n 'Min Elevation: ': 'Altitude min : ',\n 'Max Elevation: ': 'Altitude max : ',\n };\n\n /* @ts-ignore */\n L.registerLocale('fr', elevationTranslation);\n /* @ts-ignore */\n L.setLocale('fr');\n\n const elevationOptions = {\n srcFolder: 'https://unpkg.com/@raruto/leaflet-elevation/src/',\n elevationDiv: `#elevation`,\n theme: `custom-theme${!this.useGradient ? ' use-theme-color' : ''}`,\n detached: true,\n height: 280,\n wptIcons: true,\n wptLabels: true,\n collapsed: false,\n autohide: false,\n distanceMarkers: { distance: false, direction: true },\n hotline: this.useGradient,\n closeBtn: false,\n summary: 'inline',\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 dragging: false,\n zooming: false,\n handlers: ['Altitude', 'Distance', 'Slope', 'LinearGradient'],\n linearGradient: {\n attr: 'z',\n path: 'altitude',\n range: { 0.0: '#008800', 0.5: '#ffff00', 1.0: '#ff0000' },\n min: 'elevation_min',\n max: 'elevation_max',\n },\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 departureArrival: FeatureCollection = {\n type: 'FeatureCollection',\n features: [\n {\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTrek.geometry.coordinates[state.currentTrek.geometry.coordinates.length - 1] },\n properties: null,\n },\n {\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTrek.geometry.coordinates[0] },\n properties: null,\n },\n ],\n };\n\n let index = 0;\n this.departureArrivalLayer = L.geoJSON(departureArrival, {\n pointToLayer: (_geoJsonPoint, latlng) => {\n index += 1;\n return L.marker(latlng, {\n icon: L.divIcon({\n html: `<div></div>`,\n className: index === 1 ? 'departure-marker' : 'arrival-marker',\n iconSize: 22,\n } as any),\n autoPanOnFocus: false,\n } as any);\n },\n });\n this.map.addLayer(this.departureArrivalLayer);\n\n const overlays = {};\n if (this.currentStepsLayer) {\n overlays[translate[state.language].layers.steps] = this.currentStepsLayer;\n }\n if (this.currentReferencePointsLayer) {\n overlays[translate[state.language].layers.referencePoints] = this.currentReferencePointsLayer;\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 if (this.currentToutisticContentsLayer) {\n overlays[translate[state.language].layers.touristicContents] = this.currentToutisticContentsLayer;\n }\n\n if (this.currenttouristicEventsLayer) {\n overlays[translate[state.language].layers.touristicEvents] = this.currenttouristicEventsLayer;\n }\n\n if (this.layersControl) {\n Object.keys(overlays).forEach(key => {\n this.layersControl.addOverlay(overlays[key], key);\n });\n } else {\n this.layersControl = L.control.layers({}, overlays, { collapsed: true }).addTo(this.map);\n }\n\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 async getIcons(featuresCollection, property) {\n const icons = {};\n for (let index = 0; index < featuresCollection.features.length; index++) {\n if (featuresCollection.features[index].properties[property]) {\n icons[featuresCollection.features[index].properties[property]] = await this.getIcon(featuresCollection.features[index].properties[property]);\n }\n }\n return icons;\n }\n async getIcon(pictogram) {\n const dataInStore = await getDataInStore('images', pictogram);\n const icon = dataInStore ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type)) : pictogram ? pictogram : null;\n return icon;\n }\n\n async addSelectedCurrentTrek(id, customCoordinates?) {\n const treksFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTreks) {\n const trek = state.currentTreks.find(trek => trek.id === id);\n treksFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : 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 this.removeSelectedCurrentTrek();\n state.selectedTrekId = id;\n\n const treksIcons = await this.getIcons(treksFeatureCollection, 'practice');\n this.selectedCurrentTrekLayer = L.geoJSON(treksFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: treksIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"trek-marker-container\"><img crossorigin=\"anonymous\" src=${treksIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"trek-marker-container\"></div>`,\n className: 'selected-trek-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.trekPopupIsOpen) {\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n }\n });\n layer.on('popupopen', () => {\n this.trekPopupIsOpen = Boolean(state.selectedTrekId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTrekId) {\n this.trekPopupIsOpen = false;\n state.selectedTrekId = null;\n this.hideTrekLine();\n this.removeSelectedCurrentTrek();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedCurrentTrek() {\n state.selectedTrekId = null;\n this.selectedCurrentTrekLayer && this.map.removeLayer(this.selectedCurrentTrekLayer);\n this.selectedCurrentTrekLayer = null;\n }\n\n addSelectedCurrentStep(id, customCoordinates?) {\n const stepsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTrekSteps) {\n const stepIndex = state.currentTrekSteps.findIndex(trek => trek.id === id);\n stepsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : state.currentTrekSteps[stepIndex].departure_geom },\n properties: {\n id: state.currentTrekSteps[stepIndex].id,\n name: state.currentTrekSteps[stepIndex].name,\n practice: state.practices.find(practice => practice.id === state.currentTrekSteps[stepIndex].practice)?.pictogram,\n imgSrc:\n state.currentTrekSteps[stepIndex].attachments && state.currentTrekSteps[stepIndex].attachments.length > 0 && state.currentTrekSteps[stepIndex].attachments[0].thumbnail,\n index: stepIndex + 1,\n },\n });\n }\n\n this.removeSelectedCurrentStep();\n state.selectedStepId = id;\n\n this.selectedCurrentStepLayer = L.geoJSON(stepsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: `<div class=\"step-marker-container\"><div class=\"step-number\">${geoJsonPoint.properties.index}</div></div>`,\n className: 'selected-step-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', async () => {\n const dataInStore = await getDataInStore('images', geoJsonPoint.properties.imgSrc);\n const imgSrc = dataInStore\n ? window.URL.createObjectURL(arrayBufferToBlob(dataInStore.data, dataInStore.type))\n : geoJsonPoint.properties.imgSrc\n ? geoJsonPoint.properties.imgSrc\n : null;\n const trekDeparturePopup = L.DomUtil.create('div');\n trekDeparturePopup.className = 'trek-departure-popup';\n if (imgSrc) {\n const trekImg = L.DomUtil.create('img');\n trekImg.src = imgSrc;\n trekImg.crossOrigin = 'anonymous';\n trekDeparturePopup.appendChild(trekImg);\n }\n const trekName = L.DomUtil.create('div');\n trekName.innerHTML = geoJsonPoint.properties.name;\n trekName.className = 'trek-name';\n trekDeparturePopup.appendChild(trekName);\n\n const trekButton = L.DomUtil.create('button');\n trekButton.innerHTML = 'Afficher le détail';\n trekButton.className = 'trek-button';\n trekButton.onclick = () => this.trekCardPress.emit(geoJsonPoint.properties.id);\n trekDeparturePopup.appendChild(trekButton);\n\n layer.bindPopup(trekDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.stepPopupIsOpen) {\n state.selectedTrekId = null;\n this.removeSelectedCurrentStep();\n }\n });\n layer.on('popupopen', () => {\n this.stepPopupIsOpen = Boolean(state.selectedStepId);\n });\n layer.on('popupclose', () => {\n if (state.selectedStepId) {\n this.stepPopupIsOpen = false;\n state.selectedStepId = null;\n this.removeSelectedCurrentStep();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedCurrentStep() {\n if (state.selectedStepId) {\n state.selectedStepId = null;\n this.selectedCurrentStepLayer && this.map.removeLayer(this.selectedCurrentStepLayer);\n this.selectedCurrentStepLayer = null;\n }\n }\n\n handleLayersControlEvent() {\n const userLayersState: HTMLInputElement[] = (this.layersControl as any)._layerControlInputs;\n userLayersState.forEach((userLayerState: any) => {\n if ((this.layersControl as any)._layers.find(layer => layer.layer._leaflet_id === userLayerState.layerId).overlay) {\n userLayerState.onchange = event => {\n this.userLayersState[userLayerState.layerId] = (event.target as any).checked;\n };\n }\n });\n }\n\n removeTrek() {\n if (this.layersControl) {\n if (!(this.layersControl as any)._layers.some(layer => !layer.overlay)) {\n this.map.removeControl(this.layersControl);\n this.layersControl = null;\n } else {\n (this.layersControl as any)._layers\n .filter(layer => layer.overlay)\n .forEach(layer => {\n this.layersControl.removeLayer(layer.layer);\n });\n }\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.departureArrivalLayer) {\n this.map.removeLayer(this.departureArrivalLayer);\n this.departureArrivalLayer = null;\n }\n\n if (this.currentTrekLayer) {\n this.map.removeLayer(this.currentTrekLayer);\n this.currentTrekLayer = 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.currentReferencePointsLayer) {\n this.map.removeLayer(this.currentReferencePointsLayer);\n this.currentReferencePointsLayer = null;\n }\n\n if (this.currentStepsLayer) {\n this.map.removeLayer(this.currentStepsLayer);\n this.currentStepsLayer = null;\n }\n\n if (this.currentToutisticContentsLayer) {\n this.map.removeLayer(this.currentToutisticContentsLayer);\n this.currentToutisticContentsLayer = null;\n }\n if (this.currenttouristicEventsLayer) {\n this.map.removeLayer(this.currenttouristicEventsLayer);\n this.currenttouristicEventsLayer = null;\n }\n }\n\n async showTrekLine(id) {\n // this.removeSelectedCurrentTrek();\n const trekLine = await getTrekGeometry(id);\n const currentTrekFeature: Feature = {\n type: 'Feature',\n geometry: trekLine.geometry,\n properties: {},\n };\n\n this.currentTrekLayer = L.geoJSON(currentTrekFeature, {\n style: () => ({\n color: this.colorTrekLine,\n }),\n interactive: false,\n }).addTo(this.map);\n }\n\n hideTrekLine() {\n if (this.currentTrekLayer) {\n this.map.removeLayer(this.currentTrekLayer);\n this.currentTrekLayer = null;\n }\n }\n\n async addTouristicContent() {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n\n const touristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicContent) {\n touristicContentsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTouristicContent.geometry.coordinates },\n properties: {\n id: state.currentTouristicContent.id,\n name: state.currentTouristicContent.name,\n practice: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === state.currentTouristicContent.category).pictogram,\n },\n });\n }\n\n if (!this.currentToutisticContentLayer) {\n const toutisticContentIcons = await this.getIcons(touristicContentsFeatureCollection, 'practice');\n this.currentToutisticContentLayer = L.geoJSON(touristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous \"src=${toutisticContentIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'touristic-content-marker',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n });\n this.map.addLayer(this.currentToutisticContentLayer);\n }\n\n this.map.setView([state.currentTouristicContent.geometry.coordinates[1], state.currentTouristicContent.geometry.coordinates[0]], this.maxZoom);\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n removeTouristicContent() {\n if (this.currentToutisticContentLayer) {\n this.map.removeLayer(this.currentToutisticContentLayer);\n this.currentToutisticContentLayer = null;\n }\n }\n\n async addTouristicContents(resetBounds = false) {\n state.touristicContentsWithinBounds = state.currentTouristicContents;\n\n const touristicContentsCurrentCoordinates = [];\n\n const touristicContentsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicContents) {\n for (const currentTouristicContent of state.currentTouristicContents) {\n touristicContentsCurrentCoordinates.push(currentTouristicContent.geometry.coordinates);\n\n touristicContentsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: currentTouristicContent.geometry.coordinates },\n properties: {\n id: currentTouristicContent.id,\n name: currentTouristicContent.name,\n practice: state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === currentTouristicContent.category).pictogram,\n imgSrc: currentTouristicContent.attachments && currentTouristicContent.attachments.length > 0 && currentTouristicContent.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.toutisticContentsLayer) {\n if ((touristicContentsCurrentCoordinates.length > 0 && !state.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(touristicContentsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n const toutisticContentIcons = await this.getIcons(touristicContentsFeatureCollection, 'practice');\n this.toutisticContentsLayer = L.geoJSON(touristicContentsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.practice]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticContentIcons[geoJsonPoint.properties.practice]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'touristic-content-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicContentCoordinatesPopup = L.DomUtil.create('div');\n touristicContentCoordinatesPopup.className = 'touristic-content-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicContentImg = L.DomUtil.create('img');\n touristicContentImg.src = geoJsonPoint.properties.imgSrc;\n touristicContentImg.crossOrigin = 'anonymous';\n touristicContentCoordinatesPopup.appendChild(touristicContentImg);\n }\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentCoordinatesPopup.appendChild(touristicContentName);\n\n const touristicContentButton = L.DomUtil.create('button');\n touristicContentButton.innerHTML = 'Afficher le détail';\n touristicContentButton.className = 'touristic-content-button';\n touristicContentButton.onclick = () => this.touristicContentCardPress.emit(geoJsonPoint.properties.id);\n touristicContentCoordinatesPopup.appendChild(touristicContentButton);\n\n layer.bindPopup(touristicContentCoordinatesPopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedTouristicContent(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.touristicContentsMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({\n html: '<div>' + cluster.getChildCount() + '</div>',\n className: 'touristic-content-marker-cluster-group-icon',\n iconSize: 48,\n } as any);\n },\n });\n\n this.touristicContentsMarkerClusterGroup.addLayer(this.toutisticContentsLayer);\n this.map.addLayer(this.touristicContentsMarkerClusterGroup);\n } else {\n if (touristicContentsCurrentCoordinates.length > 0) {\n this.bounds = L.latLngBounds(touristicContentsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.toutisticContentsLayer.clearLayers();\n this.toutisticContentsLayer.addData(touristicContentsFeatureCollection);\n this.touristicContentsMarkerClusterGroup.clearLayers();\n this.touristicContentsMarkerClusterGroup.addLayer(this.toutisticContentsLayer);\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.handleTouristicContentsWithinBoundsBind);\n }\n\n removeTouristicContents() {\n if (this.toutisticContentsLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.touristicContentsMarkerClusterGroup);\n this.toutisticContentsLayer = null;\n this.touristicContentsMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTouristicContentsWithinBoundsBind);\n }\n }\n\n async addTouristicEvent() {\n const touristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicEvent) {\n const touristicEventType = state.touristicEventTypes.find(touristicEventType => touristicEventType.id === state.currentTouristicEvent.type);\n touristicEventsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: state.currentTouristicEvent.geometry.coordinates },\n properties: {\n id: state.currentTouristicEvent.id,\n name: state.currentTouristicEvent.name,\n type: touristicEventType ? touristicEventType.pictogram : null,\n },\n });\n }\n\n if (!this.currentToutisticEventLayer) {\n const toutisticEventsIcons = await this.getIcons(touristicEventsFeatureCollection, 'type');\n this.currentToutisticEventLayer = L.geoJSON(touristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: toutisticEventsIcons[geoJsonPoint.properties.type]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticEventsIcons[geoJsonPoint.properties.type]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'touristic-event-marker',\n iconSize: 48,\n } as any),\n autoPanOnFocus: false,\n } as any),\n });\n this.map.addLayer(this.currentToutisticEventLayer);\n }\n\n this.map.setView([state.currentTouristicEvent.geometry.coordinates[1], state.currentTouristicEvent.geometry.coordinates[0]], this.maxZoom);\n !this.mapIsReady && (this.mapIsReady = !this.mapIsReady);\n }\n\n removeTouristicEvent() {\n if (this.currentToutisticEventLayer) {\n this.map.removeLayer(this.currentToutisticEventLayer);\n this.currentToutisticEventLayer = null;\n }\n }\n\n async addSelectedTouristicContent(id, customCoordinates?) {\n const touristicContentFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.touristicContents) {\n const touristicContent = state.touristicContents.find(touristicContent => touristicContent.id === id);\n touristicContentFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : touristicContent.geometry.coordinates },\n properties: {\n id: touristicContent.id,\n name: touristicContent.name,\n category: state.touristicContentCategories.find(practice => practice.id === touristicContent.category)?.pictogram,\n imgSrc: touristicContent.attachments && touristicContent.attachments.length > 0 && touristicContent.attachments[0].thumbnail,\n },\n });\n }\n\n this.removeSelectedTouristicContent();\n state.selectedTouristicContentId = id;\n\n const toutisticContentIcons = await this.getIcons(touristicContentFeatureCollection, 'category');\n this.selectedTouristicContentLayer = L.geoJSON(touristicContentFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: toutisticContentIcons[geoJsonPoint.properties.category]\n ? `<div class=\"touristic-content-marker-container\"><img crossorigin=\"anonymous\" src=${toutisticContentIcons[geoJsonPoint.properties.category]} /></div>`\n : `<div class=\"touristic-content-marker-container\"></div>`,\n className: 'selected-touristic-content-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicContentDeparturePopup = L.DomUtil.create('div');\n touristicContentDeparturePopup.className = 'touristic-content-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicContentImg = L.DomUtil.create('img');\n touristicContentImg.src = geoJsonPoint.properties.imgSrc;\n touristicContentImg.crossOrigin = 'anonymous';\n touristicContentDeparturePopup.appendChild(touristicContentImg);\n }\n\n const touristicContentName = L.DomUtil.create('div');\n touristicContentName.innerHTML = geoJsonPoint.properties.name;\n touristicContentName.className = 'touristic-content-name';\n touristicContentDeparturePopup.appendChild(touristicContentName);\n\n const touristicContentButton = L.DomUtil.create('button');\n touristicContentButton.innerHTML = 'Afficher le détail';\n touristicContentButton.className = 'touristic-content-button';\n touristicContentButton.onclick = () => this.touristicContentCardPress.emit(geoJsonPoint.properties.id);\n touristicContentDeparturePopup.appendChild(touristicContentButton);\n\n layer.bindPopup(touristicContentDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.touristicContentPopupIsOpen) {\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n });\n layer.on('popupopen', () => {\n this.touristicContentPopupIsOpen = Boolean(state.selectedTouristicContentId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTouristicContentId) {\n this.touristicContentPopupIsOpen = false;\n state.selectedTouristicContentId = null;\n this.removeSelectedTouristicContent();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedTouristicContent() {\n state.selectedTouristicContentId = null;\n this.selectedTouristicContentLayer && this.map.removeLayer(this.selectedTouristicContentLayer);\n this.selectedTouristicContentLayer = null;\n }\n\n async addTouristicEvents(resetBounds = false) {\n state.touristicEventsWithinBounds = state.currentTouristicEvents;\n\n const touristicEventsCurrentCoordinates = [];\n\n const touristicEventsFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.currentTouristicEvents) {\n for (const currentTouristicEvent of state.currentTouristicEvents) {\n touristicEventsCurrentCoordinates.push(currentTouristicEvent.geometry.coordinates);\n\n touristicEventsFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: currentTouristicEvent.geometry.coordinates },\n properties: {\n id: currentTouristicEvent.id,\n name: currentTouristicEvent.name,\n type: state.touristicEventTypes.find(touristicEventType => touristicEventType.id === currentTouristicEvent.type)?.pictogram,\n imgSrc: currentTouristicEvent.attachments && currentTouristicEvent.attachments.length > 0 && currentTouristicEvent.attachments[0].thumbnail,\n },\n });\n }\n }\n\n if (!this.touristicEventsLayer) {\n if ((touristicEventsCurrentCoordinates.length > 0 && !state.currentMapBounds) || resetBounds) {\n this.bounds = L.latLngBounds(touristicEventsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n if (state.currentMapBounds) {\n this.bounds = state.currentMapBounds;\n }\n }\n const touristicEventsIcons = await this.getIcons(touristicEventsFeatureCollection, 'type');\n this.touristicEventsLayer = L.geoJSON(touristicEventsFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n icon: L.divIcon({\n html: touristicEventsIcons[geoJsonPoint.properties.type]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${touristicEventsIcons[geoJsonPoint.properties.type]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'touristic-event-marker',\n iconSize: 32,\n iconAnchor: [16, 32],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicEventCoordinatesPopup = L.DomUtil.create('div');\n touristicEventCoordinatesPopup.className = 'touristic-event-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicEventImg = L.DomUtil.create('img');\n touristicEventImg.src = geoJsonPoint.properties.imgSrc;\n touristicEventImg.crossOrigin = 'anonymous';\n touristicEventCoordinatesPopup.appendChild(touristicEventImg);\n }\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventCoordinatesPopup.appendChild(touristicEventName);\n\n const touristicEventButton = L.DomUtil.create('button');\n touristicEventButton.innerHTML = 'Afficher le détail';\n touristicEventButton.className = 'touristic-event-button';\n touristicEventButton.onclick = () => this.touristicEventCardPress.emit(geoJsonPoint.properties.id);\n touristicEventCoordinatesPopup.appendChild(touristicEventButton);\n\n layer.bindPopup(touristicEventCoordinatesPopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseover', e => {\n this.addSelectedTouristicEvent(geoJsonPoint.properties.id, e.latlng);\n });\n },\n });\n\n this.touristicEventsMarkerClusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n removeOutsideVisibleBounds: false,\n iconCreateFunction: cluster => {\n return L.divIcon({\n html: '<div>' + cluster.getChildCount() + '</div>',\n className: 'touristic-event-marker-cluster-group-icon',\n iconSize: 48,\n } as any);\n },\n });\n\n this.touristicEventsMarkerClusterGroup.addLayer(this.touristicEventsLayer);\n this.map.addLayer(this.touristicEventsMarkerClusterGroup);\n } else {\n if (touristicEventsCurrentCoordinates.length > 0) {\n this.bounds = L.latLngBounds(touristicEventsCurrentCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n } else {\n this.map.fire('moveend');\n }\n this.touristicEventsLayer.clearLayers();\n this.touristicEventsLayer.addData(touristicEventsFeatureCollection);\n this.touristicEventsMarkerClusterGroup.clearLayers();\n this.touristicEventsMarkerClusterGroup.addLayer(this.touristicEventsLayer);\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.handleTouristicEventsWithinBoundsBind);\n }\n\n removeTouristicEvents() {\n if (this.touristicEventsLayer) {\n state.currentMapBounds = this.map.getBounds();\n this.map.removeLayer(this.touristicEventsMarkerClusterGroup);\n this.touristicEventsLayer = null;\n this.touristicEventsMarkerClusterGroup = null;\n this.map.off('moveend', this.handleTouristicEventsWithinBoundsBind);\n }\n }\n\n async addSelectedTouristicEvent(id, customCoordinates?) {\n const touristicEventFeatureCollection: FeatureCollection = {\n type: 'FeatureCollection',\n features: [],\n };\n\n if (state.touristicEvents) {\n const touristicEvent = state.touristicEvents.find(touristicEvent => touristicEvent.id === id);\n touristicEventFeatureCollection.features.push({\n type: 'Feature',\n geometry: { type: 'Point', coordinates: customCoordinates ? [customCoordinates.lng, customCoordinates.lat] : touristicEvent.geometry.coordinates },\n properties: {\n id: touristicEvent.id,\n name: touristicEvent.name,\n category: state.touristicEventTypes.find(type => type.id === touristicEvent.type)?.pictogram,\n imgSrc: touristicEvent.attachments && touristicEvent.attachments.length > 0 && touristicEvent.attachments[0].thumbnail,\n },\n });\n }\n\n this.removeSelectedTouristicEvent();\n state.selectedTouristicEventId = id;\n\n const touristicEventsIcons = await this.getIcons(touristicEventFeatureCollection, 'category');\n this.selectedTouristicEventLayer = L.geoJSON(touristicEventFeatureCollection, {\n pointToLayer: (geoJsonPoint, latlng) =>\n L.marker(latlng, {\n zIndexOffset: 4000000,\n icon: L.divIcon({\n html: touristicEventsIcons[geoJsonPoint.properties.category]\n ? `<div class=\"touristic-event-marker-container\"><img crossorigin=\"anonymous\" src=${touristicEventsIcons[geoJsonPoint.properties.category]} /></div>`\n : `<div class=\"touristic-event-marker-container\"></div>`,\n className: 'selected-touristic-event-marker',\n iconSize: 48,\n iconAnchor: [24, 48],\n } as any),\n autoPanOnFocus: false,\n } as any),\n onEachFeature: (geoJsonPoint, layer) => {\n layer.once('click', () => {\n const touristicEventDeparturePopup = L.DomUtil.create('div');\n touristicEventDeparturePopup.className = 'touristic-event-coordinates-popup';\n if (geoJsonPoint.properties.imgSrc) {\n const touristicEventImg = L.DomUtil.create('img');\n touristicEventImg.src = geoJsonPoint.properties.imgSrc;\n touristicEventImg.crossOrigin = 'anonymous';\n touristicEventDeparturePopup.appendChild(touristicEventImg);\n }\n\n const touristicEventName = L.DomUtil.create('div');\n touristicEventName.innerHTML = geoJsonPoint.properties.name;\n touristicEventName.className = 'touristic-event-name';\n touristicEventDeparturePopup.appendChild(touristicEventName);\n\n const touristicEventButton = L.DomUtil.create('button');\n touristicEventButton.innerHTML = 'Afficher le détail';\n touristicEventButton.className = 'touristic-event-button';\n touristicEventButton.onclick = () => this.touristicEventCardPress.emit(geoJsonPoint.properties.id);\n touristicEventDeparturePopup.appendChild(touristicEventButton);\n\n layer.bindPopup(touristicEventDeparturePopup, { interactive: true, autoPan: false, closeButton: false } as any).openPopup();\n });\n layer.on('mouseout', () => {\n if (!this.touristicEventPopupIsOpen) {\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n });\n layer.on('popupopen', () => {\n this.touristicEventPopupIsOpen = Boolean(state.selectedTouristicEventId);\n });\n layer.on('popupclose', () => {\n if (state.selectedTouristicEventId) {\n this.touristicEventPopupIsOpen = false;\n state.selectedTouristicEventId = null;\n this.removeSelectedTouristicEvent();\n }\n });\n },\n }).addTo(this.map);\n }\n\n removeSelectedTouristicEvent() {\n state.selectedTouristicEventId = null;\n this.selectedTouristicEventLayer && this.map.removeLayer(this.selectedTouristicEventLayer);\n this.selectedTouristicEventLayer = null;\n }\n\n render() {\n const layersImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/layers.svg`);\n const contractImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/contract.svg`);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\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-poi-icon': this.colorPoiIcon,\n '--color-trek-line': this.colorTrekLine,\n '--layers-image-src': `url(${layersImageSrc})`,\n '--contract-image-src': `url(${contractImageSrc})`,\n '--map-bottom-space-height': this.isLargeView ? '0px' : '80px',\n }}\n >\n <div id=\"map\" part=\"map\" class={state.currentTrek ? 'trek-map' : 'treks-map'} ref={el => (this.mapRef = el)}></div>\n {state.currentTrek && (\n <div>\n <div id=\"elevation\" part=\"elevation\" ref={el => (this.elevationRef = el)}></div>\n <div part=\"map-bottom-space\" class=\"map-bottom-space\"></div>\n </div>\n )}\n\n {!this.mapIsReady && (\n <div part=\"map-loader-container\" class=\"map-loader-container\">\n <span part=\"loader\" class=\"loader\"></span>\n </div>\n )}\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n display: flex;\n justify-content: center;\n align-items: center;\n .icon {\n color: var(--color-on-primary-container);\n font-size: 24px;\n position: absolute;\n left: 32px;\n z-index: 20;\n pointer-events: none;\n }\n}\n\n.search-input {\n width: 100%;\n background-color: var(--color-surface-container-high);\n box-shadow: var(--elevation-2);\n border: none;\n border-radius: var(--border-radius, 40px);\n color: var(--color-on-primary-container);\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n font-family: var(--font-family);\n height: 44px;\n padding: 0px 16px 0px 48px;\n outline-color: var(--color-outline);\n &::placeholder {\n color: var(--color-on-primary-container);\n }\n &::-webkit-search-cancel-button {\n -webkit-appearance: none;\n background-color: var(--color-on-primary-container);\n -webkit-mask-image: url(\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23777'><path d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/></svg>\");\n background-size: 20px 20px;\n height: 20px;\n width: 20px;\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport state from 'store/store';\nimport { handleTouristicContentsFiltersAndSearch, handleTouristicEventsFiltersAndSearch, handleTreksFiltersAndSearch } from 'utils/utils';\n\n@Component({\n tag: 'grw-search',\n styleUrl: 'grw-search.scss',\n shadow: true,\n})\nexport class GrwSearch {\n @Prop() fontFamily = 'Roboto';\n\n onSearchChange(event: InputEvent) {\n state.searchValue = (event.target as any).value;\n if (state.mode === 'treks') {\n state.currentTreks = handleTreksFiltersAndSearch();\n } else if (state.mode === 'touristicContents') {\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n } else if (state.mode === 'touristicEvents') {\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n }\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n search\n </span>\n <input part=\"search-input\" class=\"search-input\" onInput={e => this.onSearchChange(e)} type=\"search\" placeholder=\"Rechercher\" value={state.searchValue}></input>\n </Host>\n );\n }\n}\n",".segmented-buttons-container {\n font-family: var(--font-family);\n display: flex;\n justify-content: center;\n width: calc(100% - 32px);\n height: 40px;\n margin: 16px;\n border: 1px solid var(--color-outline);\n border-radius: var(--border-radius, 20px);\n line-height: 20px;\n .segment {\n cursor: pointer;\n user-select: none;\n font-size: 14px;\n font-weight: 500;\n -webkit-tap-highlight-color: transparent;\n color: var(--color-on-surface);\n background-color: transparent;\n border-radius: 0px;\n min-width: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n &:first-child {\n border-top-left-radius: var(--border-radius, 20px);\n border-bottom-left-radius: var(--border-radius, 20px);\n }\n &:not(:last-child) {\n border-right: 1px solid var(--color-outline);\n }\n &:last-child {\n border-top-right-radius: var(--border-radius, 20px);\n border-bottom-right-radius: var(--border-radius, 20px);\n }\n }\n .selected-segment {\n color: var(--color-on-primary-container);\n background-color: var(--color-primary-container);\n }\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport { Mode } from 'types/types';\n\nimport {\n handleTouristicContentsFiltersAndSearch,\n handleTouristicEventsFiltersAndSearch,\n handleTreksFiltersAndSearch,\n touristicContentsFilters,\n touristicEventsFilters,\n treksFilters,\n} from 'utils/utils';\n\n@Component({\n tag: 'grw-segmented-segment',\n styleUrl: 'grw-segmented-segment.scss',\n shadow: true,\n})\nexport class GrwSegmentedSegment {\n @Prop() treks = true;\n @Prop() touristicContents = false;\n @Prop() touristicEvents = false;\n\n @Prop() fontFamily = 'Roboto';\n\n changeMode(mode: Mode) {\n state.searchValue = '';\n if (mode === 'treks' && state.currentTreks) {\n treksFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedThemesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTreks = handleTreksFiltersAndSearch();\n } else if (mode === 'touristicContents' && state.currentTouristicContents) {\n touristicContentsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicContents = handleTouristicContentsFiltersAndSearch();\n } else if (mode === 'touristicEvents' && state.currentTouristicEvents) {\n touristicEventsFilters.forEach(filter => {\n state[filter.property].forEach(currentFilter => (currentFilter.selected = false));\n });\n state.selectedActivitiesFilters = 0;\n state.selectedLocationFilters = 0;\n state.currentTouristicEvents = handleTouristicEventsFiltersAndSearch();\n }\n state.mode = mode;\n }\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <div part=\"segmented-buttons-container\" class=\"segmented-buttons-container\">\n {this.treks && (\n <label part=\"segment\" class={`segment${state.mode === 'treks' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('treks')}>\n {translate[state.language].home.segment.treks}\n </label>\n )}\n {this.touristicContents && (\n <label part=\"segment\" class={`segment${state.mode === 'touristicContents' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('touristicContents')}>\n {translate[state.language].home.segment.touristicContents}\n </label>\n )}\n {this.touristicEvents && (\n <label part=\"segment\" class={`segment${state.mode === 'touristicEvents' ? ' selected-segment' : ''}`} onClick={() => this.changeMode('touristicEvents')}>\n {translate[state.language].home.segment.touristicEvents}\n </label>\n )}\n </div>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n display: flex;\n align-items: center;\n .icon {\n font-size: 18px;\n }\n #language-select {\n border: none;\n background-color: var(--color-background);\n &:focus-visible {\n outline: none;\n }\n }\n}\n","import { Component, Host, h } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-select-language',\n styleUrl: 'grw-select-language.scss',\n shadow: true,\n})\nexport class GrwSelectLanguage {\n handleSelect(event) {\n state.treks = null;\n state.currentTreks = null;\n state.currentTrek = null;\n state.language = event.target.value;\n }\n\n render() {\n return (\n <Host>\n {/* @ts-ignore */}\n <span part=\"select-language-icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n translate\n </span>\n <select part=\"select-language-select\" onInput={event => this.handleSelect(event)} name=\"languages\" id=\"language-select\">\n {state.languages.map(language => (\n <option part=\"select-language-option\" selected={language === state.language} value={language.toLocaleLowerCase()}>\n {language.toLocaleUpperCase()}\n </option>\n ))}\n </select>\n </Host>\n );\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.md3.switch {\n user-select: none;\n position: relative;\n -webkit-tap-highlight-color: transparent;\n margin: 10px;\n font-family: var(--font-family);\n}\n\n.md3.switch input {\n opacity: 0;\n width: 0;\n height: 0;\n margin: 0;\n padding: 0;\n}\n\n.md3.switch span.slider {\n position: absolute;\n cursor: pointer;\n background-color: var(--color-primary-container);\n width: 48px;\n height: 28px;\n border-radius: 28px;\n border: 2px solid var(--color-outline);\n transition: background-color 0.1s ease-in-out, border-color 0.1s ease-in-out;\n}\n\n/* thumb */\n.md3.switch span.slider::before {\n position: absolute;\n content: '';\n height: 16px;\n width: 16px;\n left: 0px;\n margin: 6px;\n background-color: var(--color-outline);\n border-radius: 28px;\n transition: left 175ms cubic-bezier(0, 0.5, 0.5, 1.5), background-color 0.1s ease-in-out, height 50ms ease-in-out, width 50ms ease-in-out, margin 50ms ease-in-out;\n}\n\n.md3.switch span.slider span.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n left: 0px;\n margin: 6px 0px;\n height: 16px;\n width: 16px;\n font-size: 16px;\n text-align: center;\n opacity: 0;\n transition: left 175ms cubic-bezier(0, 0.5, 0.5, 1.5);\n color: var(--color-surface-variant);\n}\n\n.md3.switch input:checked + span.slider {\n background-color: var(--color-primary);\n border-color: transparent;\n}\n\n.md3.switch input:checked + span.slider::before {\n background-color: var(--color-on-primary);\n height: 24px;\n width: 24px;\n left: 20px;\n margin: 2px;\n}\n\n.md3.switch input:not(:disabled):hover + span.slider::before {\n background-color: var(--color-on-surface-variant);\n}\n\n.md3.switch input:not(:disabled):checked:hover + span.slider::before {\n background-color: var(--color-primary-container);\n}\n\n.md3.switch input:not(:disabled):active + span.slider::before {\n height: 28px;\n width: 28px;\n margin: 0px;\n}\n\n.md3.switch input:not(:disabled):checked:active + span.slider::before {\n background-color: var(--color-primary-container);\n}\n\n.md3.switch input:checked + span.slider span.icon {\n left: 26px;\n opacity: 1;\n color: var(--color-on-primary-container);\n}\n\n.md3.switch input:focus-visible + span.slider {\n outline: 2px solid var(--color-primary);\n}\n","import { Component, Host, Prop, h } from '@stencil/core';\n\n@Component({\n tag: 'grw-switch',\n styleUrl: 'grw-switch.scss',\n shadow: true,\n})\nexport class GrwSwitch {\n @Prop() action: Function;\n\n @Prop() fontFamily = 'Roboto';\n\n render() {\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\n }}\n >\n <label class=\"md3 switch\">\n <input onChange={() => this.action()} type=\"checkbox\" id=\"darkmode\" name=\"darkmode\" />\n <span class=\"slider\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n done\n </span>\n </span>\n </label>\n </Host>\n );\n }\n}\n","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import { getDocument } from 'ssr-window';\nimport { createElement, elementOffset, nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.shadowRoot.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(`.${swiper.params.scrollbar.dragClass}`);\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n disableDraggable();\n }\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import { elementTransitionEnd, now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd({\n currentPos\n }) {\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n.swiper {\n z-index: 0;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-touristic-content-detail {\n overflow: hidden;\n}\n\n.touristic-content-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .touristic-content-category-container {\n display: flex;\n align-items: center;\n padding: 0px 24px;\n margin: 8px 0px;\n .touristic-content-category-name {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n }\n img {\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n background-color: var(--color-primary-app);\n }\n }\n .name {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .image,\n .default-poi-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-poi-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .description-teaser,\n .description-container,\n .useful-information-container,\n .contact-container {\n padding: 0px 24px 0px 24px;\n }\n .description-container,\n .useful-information-container,\n .contact-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-title,\n .useful-information-title,\n .contact-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n margin-bottom: 16px;\n }\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.cities-container {\n display: flex;\n align-items: center;\n padding: 24px 24px 0px 24px;\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n\n.downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.email-container,\n.website-container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.legend-container {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n\n.touristic-content-category-img {\n border-radius: 100%;\n padding: 2px;\n max-height: 20px;\n max-width: 20px;\n}\n","import { Build, Component, Host, Prop, State, getAssetPath, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport Swiper, { FreeMode, Keyboard, Mousewheel, Navigation, Pagination } from 'swiper';\n\n@Component({\n tag: 'grw-touristic-content-detail',\n styleUrl: 'grw-touristic-content-detail.scss',\n shadow: true,\n})\nexport class GrwTouristicContentDetail {\n swiperImages?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n presentationRef?: HTMLDivElement;\n\n @State() displayFullscreen = false;\n @State() offline = false;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n @Prop() isLargeView = false;\n\n descriptionRef?: HTMLDivElement;\n touristicContentDetailContainerRef?: HTMLElement;\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.offline = state.currentTouristicContent.offline;\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (state.currentTouristicContent.attachments && state.currentTouristicContent.attachments[0] && state.currentTouristicContent.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n }\n } else {\n (document as any).exitFullscreen();\n }\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n const touristicContentCategory =\n state.touristicContentCategories &&\n state.currentTouristicContent &&\n state.touristicContentCategories.find(touristicContentCategory => touristicContentCategory.id === state.currentTouristicContent.category);\n const cities = state.currentTouristicContent && state.currentTouristicContent.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\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 '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '204px'\n : '164px',\n }}\n >\n {state.currentTouristicContent && (\n <div part=\"touristic-content-detail-container\" class=\"touristic-content-detail-container\" ref={el => (this.touristicContentDetailContainerRef = el)}>\n <div part=\"images-container\" class=\"images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTouristicContent.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n state.currentTouristicContent.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"close-fullscreen-button\" class=\"close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n close\n </span>\n </div>\n )}\n <div part=\"legend-container\" class=\"legend-container\">\n {legend}\n </div>\n <img\n part=\"image\"\n class=\"image\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n />\n </div>\n );\n })\n ) : (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <img\n part=\"default-poi-img\"\n class=\"default-poi-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n </div>\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n <div part=\"touristic-content-category-container\" class=\"touristic-content-category-container\">\n <img\n part=\"touristic-content-category-img\"\n class=\"touristic-content-category-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={touristicContentCategory.pictogram}\n />\n <div part=\"touristic-content-category-name\" class=\"touristic-content-category-name\">\n {touristicContentCategory.label}\n </div>\n </div>\n <div part=\"name\" class=\"name\">\n {state.currentTouristicContent.name}\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].download}\n </div>\n <div part=\"links-container\" class=\"links-container\">\n <a part=\"link-container\" class=\"link-container\" href={`${state.currentTouristicContent.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n download\n </span>\n <span part=\"label\" class=\"\">\n PDF\n </span>\n </a>\n </div>\n </div>\n {state.currentTouristicContent.description_teaser && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={state.currentTouristicContent.description_teaser}></div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {state.currentTouristicContent.practical_info && (\n <div part=\"description-container\" class=\"description-container\" ref={el => (this.descriptionRef = el)}>\n <div part=\"description-title\" class=\"description-title\">\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={state.currentTouristicContent.description}></div>\n </div>\n )}\n {cities && cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].city} : \n </div>\n <div part=\"cities\" class=\"cities\" innerHTML={cities.join(', ')}></div>\n </div>\n )}\n {state.currentTouristicContent.practical_info && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"useful-information-container\" class=\"useful-information-container\">\n <div part=\"useful-information-title\" class=\"useful-information-title\">\n {translate[state.language].usefulInformation} : \n </div>\n <div part=\"useful-information\" innerHTML={state.currentTouristicContent.practical_info}></div>\n </div>\n </div>\n )}\n {(state.currentTouristicContent.contact || state.currentTouristicContent.email || state.currentTouristicContent.website) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"contact-container\" class=\"contact-container\">\n <div part=\"contact-title\" class=\"contact-title\">\n {translate[state.language].contact} : \n </div>\n {state.currentTouristicContent.contact && <div part=\"contact\" class=\"contact\" innerHTML={state.currentTouristicContent.contact}></div>}\n {state.currentTouristicContent.email && (\n <div part=\"email-container\" class=\"email-container\">\n <div part=\"email-title\" class=\"email-title\">\n {translate[state.language].email} : \n </div>\n <div part=\"email\" class=\"email\" innerHTML={state.currentTouristicContent.email}></div>\n </div>\n )}\n {state.currentTouristicContent.website && (\n <div part=\"website-container\" class=\"website-container\">\n <div part=\"website-title\" class=\"website-title\">\n {translate[state.language].website} : \n </div>\n <div part=\"website\" class=\"website\" innerHTML={state.currentTouristicContent.website}></div>\n </div>\n )}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","export function getTouristicContent(api, language, touristicContentId, init) {\n return fetch(\n `${api}touristiccontent/${touristicContentId}/?language=${language}&published=true&fields=id,name,attachments,description,description_teaser,category,geometry,cities,pdf,practical_info,contact,email,website,districts`,\n init,\n );\n}\n\nexport function getTouristicContentsNearTrek(api, language, trekId, init) {\n return fetch(\n `${api}touristiccontent/?language=${language}&near_trek=${trekId}&published=true&fields=id,name,attachments,description,description_teaser,category,geometry,cities,pdf,practical_info,contact,email,website,districts&page_size=999`,\n init,\n );\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicContent } from 'services/touristic-contents.service';\nimport state from 'store/store';\nimport { TouristicContent } from 'types/types';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-touristic-content-provider',\n shadow: true,\n})\nexport class GrwTouristicContentProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() touristicContentId: number;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicContent();\n }\n\n async handleTouristicContent() {\n const touristicContentInStore: TouristicContent = await getDataInStore('touristicContents', this.touristicContentId);\n if (touristicContentInStore && touristicContentInStore.offline) {\n this.handleOfflineTouristicContent(touristicContentInStore);\n } else {\n this.handleOnlineTouristicContent();\n }\n }\n\n async handleOfflineTouristicContent(touristicContent: TouristicContent) {\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.touristicContentCategories) {\n state.touristicContentCategories = await getAllDataInStore('touristicContentCategories');\n }\n setFilesFromStore(touristicContent, imagesRegExp);\n state.currentTouristicContent = touristicContent;\n }\n\n handleOnlineTouristicContent() {\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.touristicContentCategories\n ? fetch(\n `${state.api}touristiccontent_category/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,label,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n try {\n Promise.all([...requests, getTouristicContent(state.api, state.language, this.touristicContentId, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, touristicContentCategory, touristicContent]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n state.currentTouristicContent = touristicContent;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-touristic-content-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-touristic-contents-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.touristic-contents-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { TouristicContents } from 'types/types';\n\n@Component({\n tag: 'grw-touristic-contents-list',\n styleUrl: 'grw-touristic-contents-list.scss',\n shadow: true,\n})\nexport class GrwTouristicContentsList {\n @Element() element: HTMLElement;\n @State() touristicContentsToDisplay: TouristicContents = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n\n @Prop() isLargeView = false;\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTouristicContents) {\n this.touristicContentsToDisplay = [...state.currentTouristicContents.slice(0, this.step)];\n }\n onChange('currentTouristicContents', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTouristicContents) {\n this.touristicContentsToDisplay = [...state.currentTouristicContents.slice(0, this.step)];\n }\n });\n onChange('touristicContentsWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.touristicContentsWithinBounds) {\n this.touristicContentsToDisplay = [...state.touristicContentsWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.touristicContentsToDisplay.length < state.touristicContentsWithinBounds.length) {\n this.touristicContentsToDisplay = state.touristicContentsWithinBounds.slice(\n 0,\n this.touristicContentsToDisplay.length + this.step >= state.touristicContentsWithinBounds.length\n ? state.touristicContentsWithinBounds.length\n : this.touristicContentsToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.touristicContentsWithinBounds && (\n <div part=\"current-touristic-contents-within-bounds-length\" class=\"current-touristic-contents-within-bounds-length\">{`${state.touristicContentsWithinBounds.length} ${\n state.touristicContentsWithinBounds.length > 1 ? translate[state.language].home.touristicContents : translate[state.language].home.touristicContent\n }`}</div>\n )}\n <div part=\"touristic-contents-list-container\" class=\"touristic-contents-list-container\">\n {this.touristicContentsToDisplay.map(touristicContent => (\n <grw-touristic-content-card\n exportparts=\"touristic-content-card,touristic-content-img-container,swiper-touristic-content,swiper-wrapper,swiper-slide,touristic-content-img,default-touristic-content-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-content-sub-container,touristic-content-category-container,touristic-content-category-img,touristic-content-category-name,touristic-content-name,touristic-content-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n key={`touristic-content-${touristicContent.id}`}\n touristicContent={touristicContent}\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-touristic-content-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-touristic-contents-provider',\n shadow: true,\n})\nexport class GrwTouristicContentsProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\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\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicContents();\n }\n\n handleTouristicContents() {\n let touristicContentsRequest = `${state.api}touristiccontent/?language=${state.language}&published=true`;\n this.inBbox && (touristicContentsRequest += `&in_bbox=${this.inBbox}`);\n this.cities && (touristicContentsRequest += `&cities=${this.cities}`);\n this.districts && (touristicContentsRequest += `&districts=${this.districts}`);\n this.structures && (touristicContentsRequest += `&structures=${this.structures}`);\n this.themes && (touristicContentsRequest += `&themes=${this.themes}`);\n this.portals && (touristicContentsRequest += `&portals=${this.portals}`);\n\n touristicContentsRequest += `&fields=id,name,attachments,category,geometry,cities,districts&page_size=999`;\n\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(!state.districts ? fetch(`${state.api}district/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null')),\n requests.push(\n !state.touristicContentCategories\n ? fetch(\n `${state.api}touristiccontent_category/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,label,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n try {\n Promise.all([...requests, fetch(touristicContentsRequest, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, districts, touristicContentCategory, touristicContents]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (districts) {\n state.districts = districts.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n state.touristicContents = touristicContents.results;\n state.currentTouristicContents = touristicContents.results;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n\n.swiper {\n z-index: 0;\n}\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-touristic-event-detail {\n overflow: hidden;\n}\n\n.touristic-event-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .touristic-event-category-container {\n display: flex;\n align-items: center;\n padding: 0px 24px;\n margin: 8px 0px;\n .touristic-event-category-name {\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n overflow: hidden;\n }\n img {\n font-size: 24px;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n background-color: var(--color-primary-app);\n }\n }\n .name {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .touristic-event-date-container {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 28px;\n font-weight: 400;\n padding: 0px 24px;\n margin: 8px 0px;\n }\n .image,\n .default-poi-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-poi-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .description-teaser,\n .description-container,\n .useful-information-container,\n .contact-container {\n padding: 0px 24px 0px 24px;\n }\n .description-container,\n .useful-information-container,\n .contact-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-title,\n .useful-information-title,\n .contact-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n margin-bottom: 16px;\n }\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.cities-container {\n display: flex;\n align-items: center;\n padding: 24px 24px 0px 24px;\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n\n.downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.email-container,\n.website-container {\n display: flex;\n flex-wrap: wrap;\n}\n\n.legend-container {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n","import { Build, Component, Host, Prop, State, getAssetPath, h } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state from 'store/store';\nimport Swiper, { FreeMode, Keyboard, Mousewheel, Navigation, Pagination } from 'swiper';\n\n@Component({\n tag: 'grw-touristic-event-detail',\n styleUrl: 'grw-touristic-event-detail.scss',\n shadow: true,\n})\nexport class GrwTouristicEventDetail {\n swiperImages?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n presentationRef?: HTMLDivElement;\n\n @State() displayFullscreen = false;\n @State() offline = false;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n @Prop() isLargeView = false;\n\n descriptionRef?: HTMLDivElement;\n touristicEventDetailContainerRef?: HTMLElement;\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.offline = state.currentTouristicEvent.offline;\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (state.currentTouristicEvent.attachments && state.currentTouristicEvent.attachments[0] && state.currentTouristicEvent.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n } else {\n (document as any).exitFullscreen();\n }\n }\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n const touristicEventType =\n state.touristicEventTypes &&\n state.currentTouristicEvent &&\n state.touristicEventTypes.find(touristicEventCategory => touristicEventCategory.id === state.currentTouristicEvent.type);\n const cities = state.currentTouristicEvent && state.currentTouristicEvent.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\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 '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '204px'\n : '164px',\n }}\n >\n {state.currentTouristicEvent && (\n <div part=\"touristic-event-detail-container\" class=\"touristic-event-detail-container\" ref={el => (this.touristicEventDetailContainerRef = el)}>\n <div part=\"images-container\" class=\"images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTouristicEvent.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n state.currentTouristicEvent.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"close-fullscreen-button\" class=\"close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"icon\" translate={false} class=\"material-symbols material-symbols-outlined icon\">\n close\n </span>\n </div>\n )}\n <div part=\"legend-container\" class=\"legend-container\">\n {legend}\n </div>\n <img\n part=\"image\"\n class=\"image\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n />\n </div>\n );\n })\n ) : (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <img\n part=\"default-poi-img\"\n class=\"default-poi-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n </div>\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div style={{ display: this.offline ? 'none' : 'flex' }} part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n <div part=\"touristic-event-category-container\" class=\"touristic-event-category-container\">\n {touristicEventType && touristicEventType.pictogram && (\n <img\n part=\"touristic-event-category-img\"\n class=\"touristic-event-category-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={touristicEventType.pictogram}\n />\n )}\n {touristicEventType && touristicEventType.type && (\n <div part=\"touristic-event-category-name\" class=\"touristic-event-category-name\">\n {touristicEventType.type}\n </div>\n )}\n </div>\n <div part=\"name\" class=\"name\">\n {state.currentTouristicEvent.name}\n </div>\n {(state.currentTouristicEvent.begin_date || state.currentTouristicEvent.end_date) && (\n <div part=\"touristic-event-date-container\" class=\"touristic-event-date-container\">\n {state.currentTouristicEvent.begin_date === state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].date} : {state.currentTouristicEvent.begin_date}\n </div>\n )}\n {state.currentTouristicEvent.begin_date && state.currentTouristicEvent.begin_date !== state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].startDate} : {state.currentTouristicEvent.begin_date}\n </div>\n )}\n {state.currentTouristicEvent.end_date && state.currentTouristicEvent.begin_date !== state.currentTouristicEvent.end_date && (\n <div part=\"touristic-event-date\" class=\"touristic-event-date\">\n {translate[state.language].endDate} : {state.currentTouristicEvent.end_date}\n </div>\n )}\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].download}\n </div>\n <div part=\"links-container\" class=\"links-container\">\n <a part=\"link\" class=\"link\" href={`${state.currentTouristicEvent.pdf}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"material-symbols material-symbols-outlined icon\" translate={false}>\n download\n </span>\n <span part=\"label\" class=\"label\">\n PDF\n </span>\n </a>\n </div>\n </div>\n {state.currentTouristicEvent.description_teaser && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={state.currentTouristicEvent.description_teaser}></div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {state.currentTouristicEvent.practical_info && (\n <div part=\"description-container\" class=\"description-container\" ref={el => (this.descriptionRef = el)}>\n <div part=\"description-title\" class=\"description-title\">\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={state.currentTouristicEvent.description}></div>\n </div>\n )}\n {cities && cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].city} : \n </div>\n <div part=\"cities\" class=\"cities\" innerHTML={cities.join(', ')}></div>\n </div>\n )}\n {state.currentTouristicEvent.practical_info && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"useful-information-container\" class=\"useful-information-container\">\n <div part=\"useful-information-title\" class=\"useful-information-title\">\n {translate[state.language].usefulInformation} : \n </div>\n <div part=\"useful-information\" class=\"useful-information\" innerHTML={state.currentTouristicEvent.practical_info}></div>\n </div>\n </div>\n )}\n {(state.currentTouristicEvent.contact || state.currentTouristicEvent.email || state.currentTouristicEvent.website) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"contact-container\" class=\"contact-container\">\n <div part=\"contact-title\" class=\"contact-title\">\n {translate[state.language].contact} : \n </div>\n {state.currentTouristicEvent.contact && <div part=\"contact\" class=\"contact\" innerHTML={state.currentTouristicEvent.contact}></div>}\n {state.currentTouristicEvent.email && (\n <div part=\"email-container\" class=\"email-container\">\n <div part=\"email-title\" class=\"email-title\">\n {translate[state.language].email} : \n </div>\n <div part=\"email\" class=\"email\" innerHTML={state.currentTouristicEvent.email}></div>\n </div>\n )}\n {state.currentTouristicEvent.website && (\n <div part=\"website-container\" class=\"website-container\">\n <div part=\"website-title\" class=\"website-title\">\n {translate[state.language].website} : \n </div>\n <div part=\"website\" class=\"website\" innerHTML={state.currentTouristicEvent.website}></div>\n </div>\n )}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","export function getTouristicEvent(api, language, touristicEventId, init) {\n fetch(\n `${api}touristicevent/${touristicEventId}/?language=${language}&fields=id,name,attachments,description,description_teaser,type,geometry,cities,pdf,practical_info,contact,email,website,begin_date,end_date&published=true`,\n init,\n );\n}\n\nexport function getTouristicEventsNearTrek(api, language, trekId, init) {\n return fetch(`${api}touristicevent/?language=${language}&near_trek=${trekId}&published=true&fields=id,name,attachments,type,geometry&page_size=999`, init);\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { TouristicEvent } from 'components';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicEvent } from 'services/touristic-events.service';\nimport state from 'store/store';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-touristic-event-provider',\n shadow: true,\n})\nexport class GrwTouristicEventProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() touristicEventId: string;\n @Prop() portals: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicEvent();\n }\n\n async handleTouristicEvent() {\n const touristicEventInStore: TouristicEvent = await getDataInStore('touristicEvents', this.touristicEventId);\n if (touristicEventInStore && touristicEventInStore.offline) {\n this.handleOfflineTouristicEvent(touristicEventInStore);\n } else {\n this.handleOnlineTouristicEvent();\n }\n }\n\n async handleOfflineTouristicEvent(touristicEvent: TouristicEvent) {\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.touristicEventTypes) {\n state.touristicEventTypes = await getAllDataInStore('touristicEventTypes');\n }\n setFilesFromStore(touristicEvent, imagesRegExp);\n state.currentTouristicEvent = touristicEvent;\n }\n\n handleOnlineTouristicEvent() {\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.touristicEventTypes\n ? fetch(\n `${state.api}touristicevent_type/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,type,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n\n try {\n Promise.all([...requests, getTouristicEvent(state.api, state.language, this.touristicEventId, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, touristicEventTypes, touristicEvent]) => {\n state.networkError = false;\n if (cities) {\n state.cities = cities.results;\n }\n if (touristicEventTypes) {\n state.touristicEventTypes = touristicEventTypes.results;\n }\n state.currentTouristicEvent = touristicEvent;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-touristic-event-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-touristic-events-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.touristic-events-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { TouristicEvents } from 'types/types';\n\n@Component({\n tag: 'grw-touristic-events-list',\n styleUrl: 'grw-touristic-events-list.scss',\n shadow: true,\n})\nexport class GrwTouristicContentsList {\n @Element() element: HTMLElement;\n @State() touristicEventsToDisplay: TouristicEvents = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n\n @Prop() isLargeView = false;\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTouristicEvents) {\n this.touristicEventsToDisplay = [...state.currentTouristicEvents.slice(0, this.step)];\n }\n onChange('currentTouristicEvents', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTouristicContents) {\n this.touristicEventsToDisplay = [...state.currentTouristicEvents.slice(0, this.step)];\n }\n });\n onChange('touristicEventsWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.touristicEventsWithinBounds) {\n this.touristicEventsToDisplay = [...state.touristicEventsWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.touristicEventsToDisplay.length < state.touristicEventsWithinBounds.length) {\n this.touristicEventsToDisplay = state.touristicEventsWithinBounds.slice(\n 0,\n this.touristicEventsToDisplay.length + this.step >= state.touristicEventsWithinBounds.length\n ? state.touristicEventsWithinBounds.length\n : this.touristicEventsToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.touristicEventsWithinBounds && (\n <div part=\"current-touristic-events-within-bounds-length\" class=\"current-touristic-events-within-bounds-length\">{`${state.touristicEventsWithinBounds.length} ${\n state.touristicEventsWithinBounds.length > 1 ? translate[state.language].home.touristicEvents : translate[state.language].home.touristicEvent\n }`}</div>\n )}\n <div part=\"touristic-events-list-container\" class=\"touristic-events-list-container\">\n {this.touristicEventsToDisplay.map(touristicEvent => (\n <grw-touristic-event-card\n exportparts=\"touristic-event-card,touristic-event-img-container,swiper-touristic-event,swiper-wrapper,swiper-slide,touristic-event-img,default-touristic-event-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-event-sub-container,touristic-event-sub-container,touristic-event-type-img,touristic-event-type-name,touristic-event-name,touristic-event-date-container,touristic-event-date,touristic-event-more-detail-container,more-details-button\"\n key={`touristic-event-${touristicEvent.id}`}\n touristicEvent={touristicEvent}\n is-large-view={this.isLargeView}\n fontFamily={this.fontFamily}\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-touristic-event-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport state from 'store/store';\n\n@Component({\n tag: 'grw-touristic-events-provider',\n shadow: true,\n})\nexport class GrwTouristicEventsProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\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\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n this.handleTouristicEvents();\n }\n\n handleTouristicEvents() {\n let touristicEventsRequest = `${state.api}touristicevent/?language=${state.language}&published=true`;\n this.inBbox && (touristicEventsRequest += `&in_bbox=${this.inBbox}`);\n this.cities && (touristicEventsRequest += `&cities=${this.cities}`);\n this.districts && (touristicEventsRequest += `&districts=${this.districts}`);\n this.structures && (touristicEventsRequest += `&structures=${this.structures}`);\n this.themes && (touristicEventsRequest += `&themes=${this.themes}`);\n this.portals && (touristicEventsRequest += `&portals=${this.portals}`);\n\n touristicEventsRequest += `&fields=id,name,attachments,category,geometry,cities,districts,type,begin_date,end_date&page_size=999`;\n\n const requests = [];\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(!state.districts ? fetch(`${state.api}district/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null')),\n requests.push(\n !state.touristicEventTypes\n ? fetch(\n `${state.api}touristicevent_type/?language=${state.language}${\n this.portals ? '&portals='.concat(this.portals) : ''\n }&published=true&fields=id,type,pictogram&page_size=999`,\n this.init,\n )\n : new Response('null'),\n );\n\n try {\n Promise.all([...requests, fetch(touristicEventsRequest, this.init)])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(([cities, districts, touristicEventTypes, touristicEvents]) => {\n state.networkError = false;\n\n if (cities) {\n state.cities = cities.results;\n }\n if (districts) {\n state.districts = districts.results;\n }\n if (touristicEventTypes) {\n state.touristicEventTypes = touristicEventTypes.results;\n }\n state.touristicEvents = touristicEvents.results;\n state.currentTouristicEvents = touristicEvents.results;\n });\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n render() {\n return <Host></Host>;\n }\n}\n","@use '~swiper/swiper.scss';\n@use '~swiper/modules/navigation/navigation.scss';\n@use '~swiper/modules/pagination/pagination.scss';\n@use '~swiper/modules/scrollbar/scrollbar.scss';\n\n.swiper {\n z-index: 0;\n}\n\n.material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n --swiper-navigation-size: 24px;\n --swiper-navigation-color: var(--color-on-primary-container);\n --swiper-pagination-color: var(--color-primary-container);\n --swiper-pagination-bullet-size: 12px;\n .swiper-button-prev,\n .swiper-button-next {\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n}\n\ngrw-trek-detail {\n overflow: hidden;\n}\n\n.trek-options {\n display: flex;\n position: relative;\n width: 100%;\n min-height: 32px;\n padding: 8px 0px;\n background-color: var(--color-background);\n overflow-x: auto;\n font-family: var(--font-family);\n &::-webkit-scrollbar {\n display: none;\n }\n .trek-option {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-left: 16px;\n font-size: 22px;\n line-height: 28px;\n font-weight: 500;\n white-space: nowrap;\n text-decoration: none;\n color: var(--color-on-surface);\n transition-property: color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.3s;\n &:hover {\n color: var(--color-primary-app);\n }\n @media (hover: none) {\n &:not(.selected-trek-option):hover {\n color: inherit;\n }\n }\n }\n .trek-option:last-of-type {\n margin-right: 16px;\n }\n .selected-trek-option {\n color: var(--color-primary-app);\n }\n .trek-indicator-selected-trek-option {\n position: absolute;\n bottom: 8px;\n height: 2px;\n background-image: linear-gradient(var(--color-primary-app), var(--color-primary-app));\n background-repeat: no-repeat;\n transition: transform 0.5s ease, background-size 0.5s ease 0.5s;\n margin-left: 16px;\n background-position: center;\n }\n}\n.trek-detail-container {\n font-family: var(--font-family);\n color: var(--color-on-surface);\n display: flex;\n flex-direction: column;\n height: 100%;\n max-height: 100%;\n overflow-y: auto;\n .trek-name {\n color: var(--color-primary-app);\n font-size: 32px;\n line-height: 28px;\n font-weight: 600;\n padding: 0px 24px;\n margin: 16px 0px;\n }\n .trek-img {\n cursor: pointer;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .default-trek-img {\n background-color: var(--color-primary-container);\n object-fit: contain;\n }\n .sub-container {\n padding: 24px 24px 0px 24px;\n .icons-labels-container {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n .icon-label {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n .icon {\n font-size: 24px;\n width: 24px;\n height: auto;\n color: var(--color-primary-app);\n margin-right: 8px;\n }\n .network {\n &:not(:last-child) {\n margin-right: 16px;\n }\n }\n }\n .practice {\n .icon {\n background-color: var(--color-primary-app);\n }\n }\n .network {\n display: flex;\n align-items: center;\n }\n }\n }\n .row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n }\n .downloads-container {\n padding: 0px 24px 0px 24px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n .download-title {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n .links-container {\n display: flex;\n flex-wrap: wrap;\n a {\n margin-top: 8px;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n text-decoration: none;\n font-family: var(--font-family);\n &:nth-child(2) {\n margin: 8px 12px 0px 12px;\n }\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n }\n .themes-container {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-wrap: wrap;\n padding: 0px 24px 0px 24px;\n .theme {\n background-color: var(--color-secondary-container);\n color: var(--color-on-secondary-container);\n border-radius: var(--border-radius, 40px);\n padding: 8px 16px;\n margin: 0px 8px 8px 0px;\n box-shadow: var(--elevation-0);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n position: relative;\n }\n }\n .ambiance,\n .description-teaser,\n .description-container,\n .altimetric-profile-container,\n .access-container,\n .public-transport-container,\n .advice-container,\n .advised-parking-container,\n .sensitive-areas-container,\n .source-container,\n .accessibilities-container,\n .parent-trek-container,\n .weather-container,\n .weblinks-container {\n padding: 0px 24px 0px 24px;\n }\n .ambiance,\n .description-teaser,\n .description-container,\n .altimetric-profile-container,\n .access-container,\n .public-transport-container,\n .advice-container,\n .advised-parking-container,\n .sensitive-areas-container,\n .information-desks-container,\n .pois-container,\n .source-container,\n .accessibilities-container,\n .weather-container,\n .parent-trek-container,\n .step-container,\n .touristic-content-container,\n .touristic-event-container,\n .weblinks-container {\n font-size: 16px;\n line-height: 24px;\n font-weight: 400;\n a {\n color: var(--color-primary-app);\n }\n }\n .description-teaser {\n font-weight: 600;\n font-size: 22px;\n margin-bottom: 8px;\n }\n .description-title,\n .altimetric-profile-title,\n .access-title,\n .public-transport-title,\n .advice-title,\n .advised-parking-title,\n .sensitive-areas-title,\n .information-desks-title,\n .pois-title,\n .source-title,\n .accessibilities-title,\n .step-title,\n .parent-trek-title,\n .touristic-content-title,\n .touristic-event-title,\n .weblinks-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-weight: bold;\n }\n\n .access {\n margin-bottom: 16px;\n }\n\n .advised-parking-title {\n font-size: 16px;\n }\n\n .description-title,\n .altimetric-profile-title,\n .access-title,\n .public-transport-title,\n .advice-title,\n .advised-parking-title,\n .sensitive-areas-title,\n .information-desks-title,\n .pois-title,\n .source-title,\n .accessibilities-title,\n .parent-trek-title,\n .touristic-content-title,\n .touristic-event-title,\n .weblinks-title {\n margin-bottom: 16px;\n }\n\n .step-title {\n margin-bottom: 12px;\n }\n\n .information-desks-title,\n .pois-title,\n .step-title,\n .touristic-content-title,\n .touristic-event-title {\n padding: 0px 24px 0px 24px;\n }\n\n .parent-trek-title {\n cursor: pointer;\n user-select: none;\n font-weight: 500;\n height: 32px;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n box-shadow: var(--elevation-0);\n border: none;\n -webkit-tap-highlight-color: transparent;\n line-height: 20px;\n color: var(--color-primary);\n background-color: transparent;\n div {\n margin-right: 4px;\n }\n }\n\n .accessibility-emergency-number-content {\n a {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: row;\n border-radius: var(--border-radius, 40px);\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n text-decoration: none;\n font-weight: 600;\n width: fit-content;\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n box-sizing: border-box;\n text-align: start;\n vertical-align: middle;\n position: relative;\n font-family: var(--font-family);\n &:hover {\n box-shadow: var(--elevation-2);\n }\n }\n }\n}\n\n.description-container {\n .description {\n ol {\n position: relative;\n counter-reset: referencePoint;\n &:before {\n content: '';\n position: absolute;\n width: 4px;\n top: 0px;\n bottom: 0px;\n left: 14px;\n background-color: var(--color-primary-app);\n }\n li {\n position: relative;\n list-style-type: none;\n counter-increment: referencePoint;\n p {\n margin: 0;\n }\n &:not(:first-child) {\n margin-top: 12px;\n }\n }\n li:before {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n content: counter(referencePoint);\n width: 24px;\n height: 24px;\n background: #f04141;\n border-radius: 12px;\n font-weight: bold;\n font-size: 0.8em;\n color: white;\n margin-left: -36px;\n top: calc(50% - 12px);\n }\n }\n }\n}\n\n.current-advice-container,\n.gear-container {\n display: flex;\n padding: 12px;\n border: 2px solid var(--color-outline);\n border-radius: var(--border-radius, 12px);\n font-size: 16px;\n .material-symbols {\n font-size: 24px;\n width: 26px;\n margin-right: 8px;\n }\n margin-bottom: 12px;\n}\n\n.label-container {\n padding: 12px;\n border: 2px solid var(--color-outline);\n border-radius: var(--border-radius, 12px);\n margin-bottom: 12px;\n .label-sub-container {\n display: flex;\n align-items: center;\n img {\n width: 26px;\n margin-right: 16px;\n background-color: var(--color-on-surface);\n }\n .label-name {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 600;\n padding: 12px 0px;\n }\n }\n .label-advice {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 24px;\n font-weight: 500;\n }\n}\n\n.advice-container {\n div:last-child {\n margin-bottom: 0px;\n }\n}\n\n.source-container {\n .source-sub-container {\n display: flex;\n align-items: center;\n img {\n width: 26px;\n margin-right: 16px;\n }\n .source-name {\n color: var(--color-on-surface);\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n padding: 12px 0px;\n }\n }\n}\n.weblinks-container {\n .weblink-container {\n display: flex;\n align-items: center;\n width: fit-content;\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n padding: 12px 0px;\n img {\n width: 26px;\n margin-right: 16px;\n }\n }\n}\n\n.departure-container,\n.arrival-container,\n.cities-container {\n display: flex;\n align-items: center;\n padding: 0px 24px 24px 24px;\n .departure-title,\n .arrival-title,\n .cities-title {\n color: var(--color-on-surface);\n font-weight: bold;\n white-space: nowrap;\n margin-right: 8px;\n }\n}\n.accessibilities-container {\n div:nth-child(2) {\n div:first-child {\n padding: 0px 0px 12px 0px;\n }\n }\n .accessibilities-content-container {\n padding: 12px 0px 0px 0px;\n display: flex;\n .accessibility-content-container {\n display: flex;\n align-items: center;\n margin: 0px 8px 8px 0px;\n img {\n margin-right: 16px;\n width: 26px;\n }\n }\n }\n .accessibility-level-title,\n .accessibility-slope-title,\n .accessibility-width-title,\n .accessibility-signage-title,\n .accessibility-covering-title,\n .accessibility-exposure-title,\n .accessibility-advice-title,\n .accessibility-emergency-number-title {\n color: var(--color-on-surface);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n padding: 12px 0px;\n }\n}\n\n.weather-container {\n iframe {\n width: 100%;\n }\n}\n\n.swiper-information-desks,\n.swiper-pois,\n.swiper-step,\n.swiper-touristic-content,\n.swiper-touristic-event {\n padding-right: 32px;\n padding-left: 32px;\n padding-bottom: 20px;\n}\n\n.swiper-step {\n padding-bottom: 4px;\n .swiper-wrapper {\n .swiper-slide {\n counter-increment: stepPoint;\n padding-top: 36px;\n }\n .swiper-slide:first-child:before {\n border-top-left-radius: var(--border-radius, 8px);\n border-bottom-left-radius: var(--border-radius, 8px);\n }\n .swiper-slide:before {\n content: '';\n position: absolute;\n top: 6px;\n height: 12px;\n width: calc(100% + 20px);\n background-color: var(--color-secondary-container);\n }\n .swiper-slide:last-child:before {\n border-top-right-radius: 8px;\n border-bottom-right-radius: 8px;\n width: 100%;\n }\n .swiper-slide:after {\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n content: counter(stepPoint);\n width: 24px;\n height: 24px;\n background: var(--color-primary-app);\n border-radius: var(--border-radius, 12px);\n font-weight: bold;\n font-size: 0.8em;\n color: white;\n margin-left: calc(50% - 12px);\n top: 0px;\n }\n }\n}\n\n.divider {\n margin: 16px;\n border-top: 1px solid var(--color-outline);\n}\n\n.detail-bottom-space {\n min-height: var(--detail-bottom-space-height);\n height: var(--detail-bottom-space-height);\n width: 100%;\n background-color: var(--color-background);\n}\n\n.trek-images-container {\n display: flex;\n max-width: 100%;\n max-height: 400px;\n}\n\n.descent .icon {\n transform: rotateX(180deg);\n}\n\n.swiper-horizontal > .swiper-scrollbar,\n.swiper-scrollbar.swiper-scrollbar-horizontal {\n --swiper-scrollbar-sides-offset: 32px;\n}\n\n.swiper-scrollbar-drag {\n background-color: var(--color-primary-app);\n}\n\n.sensitive-areas-description {\n font-size: 16px;\n}\n\n.step-container {\n .swiper-wrapper {\n padding-bottom: 16px;\n }\n}\n\n.trek-image-legend {\n position: absolute;\n top: 16px;\n font-size: 12px;\n color: #ffffff;\n width: 100%;\n text-align: center;\n}\n\n.trek-close-fullscreen-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n z-index: 40;\n top: 16px;\n right: 16px;\n color: var(--swiper-navigation-color, var(--swiper-theme-color));\n background-color: var(--color-primary-container);\n padding: 4px;\n width: 32px;\n height: 32px;\n border-radius: var(--border-radius, 32px);\n box-shadow: var(--elevation-1);\n cursor: pointer;\n}\n\n.practice {\n .icon {\n border-radius: 100%;\n padding: 2px;\n max-height: 20px;\n max-width: 20px;\n }\n}\n\n.offline-button {\n cursor: pointer;\n font-size: 14px;\n border: none;\n background-color: var(--color-primary-container);\n color: var(--color-on-primary-container);\n border-radius: var(--border-radius, 8px);\n padding: 8px 16px;\n box-shadow: var(--elevation-1);\n height: 32px;\n gap: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n &:hover {\n box-shadow: var(--elevation-2);\n }\n .icon {\n font-size: 16px;\n }\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, Build, Listen, getAssetPath } from '@stencil/core';\nimport Swiper, { Navigation, Pagination, Keyboard, FreeMode, Mousewheel, Scrollbar } from 'swiper';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { Accessibilities, AccessibilityLevel, Difficulty, Labels, Practice, Route, Sources, Themes, Trek, Option, Options, Treks } from 'types/types';\nimport { formatDuration, formatLength, formatAscent, formatDescent, imagesRegExp } from 'utils/utils';\nimport { getAllDataInStore, getDataInStore, writeOrUpdateDataInStore, writeOrUpdateFilesInStore, writeOrUpdateTilesInStore } from 'services/grw-db.service';\nimport { tileLayerOffline } from 'leaflet.offline';\nimport L from 'leaflet';\nimport { getDistricts, getTrek, getTreksList } from 'services/treks.service';\nimport { getTouristicContentsNearTrek } from 'services/touristic-contents.service';\nimport { getTouristicEventsNearTrek } from 'services/touristic-events.service';\n\nconst threshold = 1;\nconst presentation: Option = {\n visible: true,\n indicator: false,\n ref: 'presentationOptionRef',\n};\nconst steps: Option = {\n visible: false,\n indicator: false,\n ref: 'stepsOptionRef',\n};\nconst description: Option = {\n visible: false,\n indicator: false,\n ref: 'descriptionOptionRef',\n};\nconst pois: Option = {\n visible: false,\n indicator: false,\n ref: 'poisOptionRef',\n};\nconst recommendations: Option = {\n visible: false,\n indicator: false,\n ref: 'recommendationsOptionRef',\n};\nconst sensitiveArea: Option = {\n visible: false,\n indicator: false,\n ref: 'sensitiveAreaOptionRef',\n};\nconst informationPlaces: Option = {\n visible: false,\n indicator: false,\n ref: 'informationPlacesOptionRef',\n};\nconst accessibility: Option = {\n visible: false,\n indicator: false,\n ref: 'accessibilityOptionRef',\n};\nconst touristicContents: Option = {\n visible: false,\n indicator: false,\n ref: 'touristicContentsOptionRef',\n};\nconst touristicEvents: Option = {\n visible: false,\n indicator: false,\n ref: 'touristicEventsOptionRef',\n};\nconst options: Options = {\n presentation,\n steps,\n description,\n pois,\n recommendations,\n sensitiveArea,\n informationPlaces,\n accessibility,\n touristicContents,\n touristicEvents,\n};\n\n@Component({\n tag: 'grw-trek-detail',\n styleUrl: 'grw-trek-detail.scss',\n shadow: true,\n})\nexport class GrwTrekDetail {\n swiperImages?: Swiper;\n swiperStep?: Swiper;\n swiperPois?: Swiper;\n swiperInformationDesks?: Swiper;\n swiperTouristicContents?: Swiper;\n swiperTouristicEvents?: Swiper;\n swiperImagesRef?: HTMLDivElement;\n prevElImagesRef?: HTMLDivElement;\n nextElImagesRef?: HTMLDivElement;\n paginationElImagesRef?: HTMLDivElement;\n swiperStepRef?: HTMLDivElement;\n swiperPoisRef?: HTMLDivElement;\n swiperInformationDesksRef?: HTMLDivElement;\n swiperTouristicContentsRef?: HTMLDivElement;\n swiperTouristicEventsRef?: HTMLDivElement;\n trekDetailContainerRef?: HTMLElement;\n presentationRef?: HTMLDivElement;\n descriptionRef?: HTMLDivElement;\n parkingRef?: HTMLDivElement;\n recommendationRef?: HTMLDivElement;\n sensitiveAreaRef?: HTMLDivElement;\n informationPlacesRef?: HTMLDivElement;\n poiRef?: HTMLDivElement;\n stepsRef?: HTMLDivElement;\n accessibilityRef?: HTMLDivElement;\n touristicContentsRef?: HTMLDivElement;\n touristicEventsRef?: HTMLDivElement;\n presentationOptionRef?: HTMLAnchorElement;\n stepsOptionRef?: HTMLAnchorElement;\n descriptionOptionRef?: HTMLAnchorElement;\n recommendationsOptionRef?: HTMLAnchorElement;\n accessibilityOptionRef?: HTMLAnchorElement;\n OptionRef?: HTMLAnchorElement;\n sensitiveAreaOptionRef?: HTMLAnchorElement;\n informationPlacesOptionRef?: HTMLAnchorElement;\n poisOptionRef?: HTMLAnchorElement;\n touristicContentsOptionRef?: HTMLAnchorElement;\n touristicEventsOptionRef?: HTMLAnchorElement;\n stepSwiperScrollbar?: HTMLDivElement;\n poisSwiperScrollbar?: HTMLDivElement;\n informationDesksContentsSwiperScrollbar?: HTMLDivElement;\n touristicContentsSwiperScrollbar?: HTMLDivElement;\n touristicEventsSwiperScrollbar?: HTMLDivElement;\n\n presentationObserver: IntersectionObserver;\n stepsObserver: IntersectionObserver;\n descriptionObserver: IntersectionObserver;\n recommendationsObserver: IntersectionObserver;\n parkingObserver: IntersectionObserver;\n sensitiveAreaObserver: IntersectionObserver;\n informationPlacesObserver: IntersectionObserver;\n accessibilityObserve: IntersectionObserver;\n poiObserver: IntersectionObserver;\n accessibilityObserver: IntersectionObserver;\n touristicContentObserver: IntersectionObserver;\n touristicEventObserver: IntersectionObserver;\n\n hasStep?: boolean;\n\n defaultOptions: Options;\n @Event() descriptionIsInViewport: EventEmitter<boolean>;\n @Event() parkingIsInViewport: EventEmitter<boolean>;\n @Event() sensitiveAreaIsInViewport: EventEmitter<boolean>;\n @Event() informationPlacesIsInViewport: EventEmitter<boolean>;\n @Event() poiIsInViewport: EventEmitter<boolean>;\n @Event() stepsIsInViewport: EventEmitter<boolean>;\n @Event() touristicContentsIsInViewport: EventEmitter<boolean>;\n @Event() touristicEventsIsInViewport: EventEmitter<boolean>;\n @Event() parentTrekPress: EventEmitter<number>;\n @State() currentTrek: Trek;\n @State() difficulty: Difficulty;\n @State() route: Route;\n @State() practice: Practice;\n @State() themes: Themes;\n @State() labels: Labels;\n @State() sources: Sources;\n @State() accessibilities: Accessibilities;\n @State() accessibilityLevel: AccessibilityLevel;\n @State() displayFullscreen = false;\n @State() cities: string[];\n @State() options: Options;\n @State() offline = false;\n\n @Prop() trek: Trek;\n @Prop() emergencyNumber: number;\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorPrimaryContainer = '#eaddff';\n @Prop() colorOnPrimaryContainer = '#21005e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() colorBackground = '#fef7ff';\n\n @Prop() weather = false;\n @Prop() isLargeView = false;\n\n @Prop() defaultBackgroundLayerUrl;\n @Prop() defaultBackgroundLayerAttribution;\n\n @Prop() enableOffline = false;\n @Prop() globalTilesMinZoomOffline = 0;\n @Prop() globalTilesMaxZoomOffline = 11;\n @Prop() trekTilesMinZoomOffline = 12;\n @Prop() trekTilesMaxZoomOffline = 16;\n\n @Event() trekDownloadConfirm: EventEmitter<number>;\n @Event() trekDownloadedSuccessConfirm: EventEmitter<number>;\n\n @Event() trekDeleteConfirm: EventEmitter<number>;\n @Event() trekDeleteSuccessConfirm: EventEmitter<number>;\n\n indicatorSelectedTrekOption = { translateX: null, width: null, backgroundSize: null, ref: null };\n\n componentDidLoad() {\n this.swiperImages = new Swiper(this.swiperImagesRef, {\n modules: [Navigation, Pagination, Keyboard, FreeMode, Mousewheel],\n navigation: {\n prevEl: this.prevElImagesRef,\n nextEl: this.nextElImagesRef,\n },\n pagination: { el: this.paginationElImagesRef },\n allowTouchMove: false,\n keyboard: false,\n loop: true,\n });\n this.swiperImagesRef.onfullscreenchange = () => {\n this.displayFullscreen = !this.displayFullscreen;\n this.displayFullscreen && !this.offline ? this.swiperImages.keyboard.enable() : this.swiperImages.keyboard.disable();\n };\n this.swiperStep = new Swiper(this.swiperStepRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n initialSlide: this.getCurrentStepIndex(),\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.stepSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperPois = new Swiper(this.swiperPoisRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.poisSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperInformationDesks = new Swiper(this.swiperInformationDesksRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.informationDesksContentsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperTouristicContents = new Swiper(this.swiperTouristicContentsRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.touristicContentsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n this.swiperTouristicEvents = new Swiper(this.swiperTouristicEventsRef, {\n modules: [FreeMode, Mousewheel, Scrollbar],\n slidesPerView: 1.5,\n spaceBetween: 20,\n grabCursor: true,\n freeMode: true,\n mousewheel: { forceToAxis: true },\n scrollbar: {\n draggable: true,\n hide: false,\n el: this.touristicEventsSwiperScrollbar,\n },\n breakpointsBase: 'container',\n breakpoints: {\n '540': {\n slidesPerView: 2.5,\n },\n },\n loop: false,\n });\n if (this.presentationRef) {\n this.presentationObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, presentation: { ...this.defaultOptions.presentation, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.presentationObserver.observe(this.presentationRef);\n }\n if (this.stepsRef) {\n this.stepsObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.stepsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, steps: { ...this.defaultOptions.steps, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.stepsObserver.observe(this.stepsRef);\n }\n if (this.descriptionRef) {\n this.descriptionObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.descriptionIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, description: { ...this.defaultOptions.description, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.descriptionObserver.observe(this.descriptionRef);\n }\n if (this.recommendationRef) {\n this.recommendationsObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, recommendations: { ...this.defaultOptions.recommendations, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.recommendationsObserver.observe(this.recommendationRef);\n }\n if (this.parkingRef) {\n this.parkingObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.parkingIsInViewport.emit(isIntersecting);\n },\n { threshold },\n );\n this.parkingObserver.observe(this.parkingRef);\n }\n\n if (this.sensitiveAreaRef) {\n this.sensitiveAreaObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.sensitiveAreaIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, sensitiveArea: { ...this.defaultOptions.sensitiveArea, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.sensitiveAreaObserver.observe(this.sensitiveAreaRef);\n }\n\n if (this.informationPlacesRef) {\n this.informationPlacesObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.informationPlacesIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, informationPlaces: { ...this.defaultOptions.informationPlaces, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.informationPlacesObserver.observe(this.informationPlacesRef);\n }\n\n if (this.accessibilityRef) {\n this.accessibilityObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.options = { ...this.options, accessibility: { ...this.defaultOptions.accessibility, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.accessibilityObserver.observe(this.accessibilityRef);\n }\n\n if (this.poiRef) {\n this.poiObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.poiIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, pois: { ...this.defaultOptions.pois, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.poiObserver.observe(this.poiRef);\n }\n\n if (this.touristicContentsRef) {\n this.touristicContentObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.touristicContentsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, touristicContents: { ...this.defaultOptions.touristicContents, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.touristicContentObserver.observe(this.touristicContentsRef);\n }\n if (this.touristicEventsRef) {\n this.touristicEventObserver = new IntersectionObserver(\n entries => {\n const isIntersecting = entries[0].isIntersecting;\n this.touristicEventsIsInViewport.emit(isIntersecting);\n this.options = { ...this.options, touristicEvents: { ...this.defaultOptions.touristicEvents, indicator: isIntersecting } };\n this.handleIndicatorSelectedTrekOption();\n },\n { threshold },\n );\n this.touristicEventObserver.observe(this.touristicContentsRef);\n }\n }\n\n async connectedCallback() {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.offline = this.currentTrek.offline;\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n this.hasStep = this.currentTrek.children.length > 0;\n }\n onChange('currentTrek', async () => {\n this.currentTrek = this.trek ? this.trek : state.currentTrek;\n if (this.currentTrek) {\n this.offline = this.currentTrek.offline;\n this.defaultOptions = this.handleOptions();\n this.options = { ...this.defaultOptions, presentation: { ...this.defaultOptions.presentation, indicator: true } };\n this.difficulty = state.difficulties.find(difficulty => difficulty.id === this.currentTrek.difficulty);\n this.route = state.routes.find(route => route.id === this.currentTrek.route);\n this.practice = state.practices.find(practice => practice.id === this.currentTrek.practice);\n this.themes = state.themes.filter(theme => this.currentTrek.themes.includes(theme.id));\n this.labels = state.labels.filter(label => this.currentTrek.labels.includes(label.id));\n this.sources = state.sources.filter(source => this.currentTrek.source.includes(source.id));\n this.accessibilities = state.accessibilities.filter(accessibility => this.currentTrek.accessibilities.includes(accessibility.id));\n if (state.accessibilitiesLevel) {\n this.accessibilityLevel = state.accessibilitiesLevel.find(accessibilityLevel => this.currentTrek.accessibility_level === accessibilityLevel.id);\n }\n this.cities = this.currentTrek.cities.map(currentCity => state.cities.find(city => city.id === currentCity)?.name);\n this.hasStep = this.currentTrek.children.length > 0;\n }\n });\n }\n\n disconnectedCallback() {\n this.presentationObserver && this.presentationObserver.disconnect();\n this.stepsObserver && this.stepsObserver.disconnect();\n this.descriptionObserver && this.descriptionObserver.disconnect();\n this.recommendationsObserver && this.recommendationsObserver.disconnect();\n this.parkingObserver && this.parkingObserver.disconnect();\n this.sensitiveAreaObserver && this.sensitiveAreaObserver.disconnect();\n this.informationPlacesObserver && this.informationPlacesObserver.disconnect();\n this.accessibilityObserver && this.accessibilityObserver.disconnect();\n this.poiObserver && this.poiObserver.disconnect();\n this.accessibilityObserver && this.accessibilityObserver.disconnect();\n this.touristicContentObserver && this.touristicContentObserver.disconnect();\n this.touristicEventObserver && this.touristicEventObserver.disconnect();\n }\n\n handleOptions() {\n return {\n ...options,\n presentation: { ...presentation },\n steps: { ...steps, visible: Boolean(state.parentTrek) },\n description: { ...description, visible: Boolean(this.currentTrek.description) },\n pois: { ...pois, visible: Boolean(state.currentPois && state.currentPois.length > 0) },\n recommendations: { ...recommendations, visible: Boolean(this.currentTrek.advice || (this.labels && this.labels.length > 0)) },\n sensitiveArea: { ...sensitiveArea, visible: Boolean(state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0) },\n informationPlaces: {\n ...informationPlaces,\n visible: Boolean(\n state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0,\n ),\n },\n accessibility: {\n ...accessibility,\n visible: Boolean(\n this.currentTrek.disabled_infrastructure ||\n (this.accessibilities && this.accessibilities.length > 0) ||\n this.currentTrek.accessibility_level ||\n this.currentTrek.accessibility_slope ||\n this.currentTrek.accessibility_width ||\n this.currentTrek.accessibility_signage ||\n this.currentTrek.accessibility_covering ||\n this.currentTrek.accessibility_exposure ||\n this.currentTrek.accessibility_advice ||\n this.emergencyNumber,\n ),\n },\n touristicContents: { ...touristicContents, visible: Boolean(state.trekTouristicContents && state.trekTouristicContents.length > 0) },\n touristicEvents: { ...touristicEvents, visible: Boolean(state.trekTouristicEvents && state.trekTouristicEvents.length > 0) },\n };\n }\n\n handleFullscreen(close: boolean = false) {\n if (!close) {\n if (this.currentTrek.attachments && this.currentTrek.attachments[0] && this.currentTrek.attachments[0].url) {\n this.swiperImagesRef.requestFullscreen();\n }\n } else {\n (document as any).exitFullscreen();\n }\n }\n\n handleIndicatorSelectedTrekOption() {\n let currentOption: Option;\n let previousVisibleOptions = 0;\n let previousWidthOptions = 0;\n let elementWidth = 0;\n\n const options: Option[] = Object.values(this.options);\n let index = 0;\n while (!currentOption && index < options.length) {\n if (options[index].indicator) {\n currentOption = options[index];\n } else {\n if (options[index].visible) {\n previousVisibleOptions += 1;\n previousWidthOptions += this[options[index].ref].clientWidth;\n }\n }\n index++;\n }\n if (currentOption && this[currentOption.ref]) {\n elementWidth = this[currentOption.ref].clientWidth;\n this.indicatorSelectedTrekOption = {\n translateX: `${previousWidthOptions + 16 * previousVisibleOptions - elementWidth / 2}px`,\n width: `${elementWidth * 2}px`,\n backgroundSize: `${elementWidth}px 100%`,\n ref: currentOption.ref,\n };\n }\n }\n\n handleScrollTo(element: HTMLDivElement) {\n this.trekDetailContainerRef.scrollTo({ top: element.offsetTop - 64 });\n }\n\n getCurrentStepIndex(): number {\n return state.currentTrekSteps ? state.currentTrekSteps.findIndex(step => step.id === this.currentTrek.id) : 0;\n }\n\n async downloadGlobalTiles(url, attribution) {\n const offlineLayer = tileLayerOffline(url, { attribution });\n\n const treksDepartureCoordinates = [];\n\n if (state.treks) {\n for (const trek of state.treks) {\n treksDepartureCoordinates.push(trek.departure_geom);\n }\n }\n\n const bounds = L.latLngBounds(treksDepartureCoordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n\n await writeOrUpdateTilesInStore(offlineLayer, bounds, this.globalTilesMinZoomOffline, this.globalTilesMaxZoomOffline);\n }\n\n async downloadTrekTiles(url, attribution) {\n const offlineLayer = tileLayerOffline(url, { attribution });\n\n const bounds = L.latLngBounds(this.currentTrek.geometry.coordinates.map(coordinate => [coordinate[1], coordinate[0]]));\n\n await writeOrUpdateTilesInStore(offlineLayer, bounds, this.trekTilesMinZoomOffline, this.trekTilesMaxZoomOffline);\n }\n\n async downloadTrek() {\n // download treks list data\n const controller = new AbortController();\n const signal = controller.signal;\n const init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: signal };\n const offlineTreks = (await getAllDataInStore('treks')).filter(trek => trek.offline === true);\n let treks;\n if (!state.treks) {\n const treksList = await getTreksList(\n state.api,\n state.language,\n state.inBboxFromProviders,\n state.citiesFromProviders,\n state.districts,\n state.structuresFromProviders,\n state.themesFromProviders,\n state.portalsFromProviders,\n state.routesFromProviders,\n state.practicesFromProviders,\n init,\n );\n state.treks = (await treksList.json()).results;\n }\n treks = state.treks;\n treks = treks.filter(trek => offlineTreks.findIndex(offlineTrek => offlineTrek.id === trek.id) === -1);\n\n if (!state.districts) {\n const districtsList = await getDistricts(state.api, state.language, init);\n state.districts = (await districtsList.json()).results;\n }\n\n await writeOrUpdateDataInStore('treks', treks);\n await writeOrUpdateDataInStore('districts', state.districts);\n\n // download global tiles\n // await this.downloadGlobalTiles(this.defaultBackgroundLayerUrl, this.defaultBackgroundLayerAttribution);\n\n // download trek tiles\n // await this.downloadTrekTiles(this.defaultBackgroundLayerUrl, this.defaultBackgroundLayerAttribution);\n\n // download global medias\n await writeOrUpdateFilesInStore(state.difficulties, imagesRegExp);\n await writeOrUpdateFilesInStore(state.routes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.practices, imagesRegExp);\n await writeOrUpdateFilesInStore(state.themes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.labels, imagesRegExp);\n await writeOrUpdateFilesInStore(state.districts, imagesRegExp);\n await writeOrUpdateFilesInStore(state.sources, imagesRegExp);\n await writeOrUpdateFilesInStore(state.accessibilities, imagesRegExp);\n await writeOrUpdateFilesInStore(state.poiTypes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.currentInformationDesks, imagesRegExp);\n await writeOrUpdateFilesInStore(state.touristicContentCategories, imagesRegExp);\n await writeOrUpdateFilesInStore(state.touristicEventTypes, imagesRegExp);\n await writeOrUpdateFilesInStore(state.networks, imagesRegExp);\n\n // // download trek images\n await writeOrUpdateFilesInStore(this.currentTrek, imagesRegExp, true);\n\n // // download trek data\n await writeOrUpdateDataInStore('difficulties', state.difficulties);\n await writeOrUpdateDataInStore('routes', state.routes);\n await writeOrUpdateDataInStore(\n 'practices',\n state.practices.map(practice => ({ ...practice, selected: false })),\n );\n await writeOrUpdateDataInStore('themes', state.themes);\n await writeOrUpdateDataInStore('cities', state.cities);\n await writeOrUpdateDataInStore('accessibilities', state.accessibilities);\n await writeOrUpdateDataInStore('ratings', state.ratings);\n await writeOrUpdateDataInStore('ratingsScale', state.ratingsScale);\n await writeOrUpdateDataInStore('sensitiveAreas', state.currentSensitiveAreas);\n await writeOrUpdateDataInStore('labels', state.labels);\n await writeOrUpdateDataInStore('sources', state.sources);\n await writeOrUpdateDataInStore('accessibilitiesLevel', state.accessibilitiesLevel);\n await writeOrUpdateDataInStore('touristicContentCategories', state.touristicContentCategories);\n await writeOrUpdateDataInStore('touristicEvents', state.trekTouristicEvents);\n await writeOrUpdateDataInStore('touristicEventTypes', state.touristicEventTypes);\n await writeOrUpdateDataInStore('networks', state.networks);\n await writeOrUpdateDataInStore('pois', state.currentPois);\n await writeOrUpdateDataInStore('poiTypes', state.poiTypes);\n await writeOrUpdateDataInStore('informationDesks', state.currentInformationDesks);\n\n await writeOrUpdateDataInStore('treks', [{ ...this.currentTrek, offline: true }]);\n\n await writeOrUpdateFilesInStore(state.currentPois, imagesRegExp, true);\n await writeOrUpdateFilesInStore(state.currentInformationDesks, imagesRegExp, true);\n\n // download items data\n await writeOrUpdateFilesInStore(state.trekTouristicContents, imagesRegExp, true);\n state.trekTouristicContents.forEach(trekTouristicContent => {\n trekTouristicContent.offline = true;\n });\n await writeOrUpdateDataInStore('touristicContents', state.trekTouristicContents);\n\n await writeOrUpdateFilesInStore(state.trekTouristicEvents, imagesRegExp, true);\n state.trekTouristicEvents.forEach(trekTouristicEvent => {\n trekTouristicEvent.offline = true;\n });\n await writeOrUpdateDataInStore('touristicEvents', state.trekTouristicEvents);\n\n // download itinerancy\n if (this.currentTrek.children && this.currentTrek.children.length > 0) {\n // fetch and store children treks\n const steps: number[] = [];\n steps.push(...this.currentTrek.children);\n const stepRequests = [];\n const stepsTouristicContentsRequests = [];\n const stepsTouristicEventsRequests = [];\n\n steps.forEach(stepId => {\n stepRequests.push(getTrek(state.api, state.language, stepId, init));\n stepsTouristicContentsRequests.push(getTouristicContentsNearTrek(state.api, state.language, stepId, init));\n stepsTouristicEventsRequests.push(getTouristicEventsNearTrek(state.api, state.language, stepId, init));\n });\n\n const trekSteps: Treks = await Promise.all([...stepRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n const stepsTouristicContentsResponses = await Promise.all([...stepsTouristicContentsRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n const stepsTouristicEventsResponses = await Promise.all([...stepsTouristicEventsRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n\n for (let index = 0; index < trekSteps.length; index++) {\n trekSteps[index].offline = true;\n await writeOrUpdateDataInStore('treks', [trekSteps[index]]);\n await writeOrUpdateFilesInStore(trekSteps[index], imagesRegExp, true);\n }\n\n for (let index = 0; index < stepsTouristicContentsResponses.length; index++) {\n const stepsTouristicContentsResponse = stepsTouristicContentsResponses[index];\n for (let index = 0; index < stepsTouristicContentsResponse.results.length; index++) {\n stepsTouristicContentsResponse.results[index].offline = true;\n await writeOrUpdateDataInStore('touristicContents', [stepsTouristicContentsResponse.results[index]]);\n await writeOrUpdateFilesInStore(stepsTouristicContentsResponse.results[index], imagesRegExp, true);\n }\n }\n\n for (let index = 0; index < stepsTouristicEventsResponses.length; index++) {\n const stepsTouristicEventsResponse = stepsTouristicEventsResponses[index];\n for (let index = 0; index < stepsTouristicEventsResponse.results.length; index++) {\n stepsTouristicEventsResponse[index].offline = true;\n await writeOrUpdateDataInStore('touristicEvents', [stepsTouristicEventsResponse[index]]);\n await writeOrUpdateFilesInStore(stepsTouristicEventsResponse[index], imagesRegExp, true);\n }\n }\n }\n\n state.treks.find(trek => trek.id === this.currentTrek.id).offline = true;\n if (!state.currentTreks) {\n state.currentTreks = state.treks;\n }\n state.currentTreks.find(trek => trek.id === this.currentTrek.id).offline = true;\n this.swiperImages.slideTo(0);\n this.offline = true;\n this.trekDownloadedSuccessConfirm.emit();\n }\n\n async deleteTrek() {\n const treksInStore: Treks = [];\n const trekInStore = await getDataInStore('treks', this.currentTrek.id);\n this.deleteOfflineTrekProperties(trekInStore);\n treksInStore.push(trekInStore);\n if (this.currentTrek.children.length > 0) {\n for (let index = 0; index < this.currentTrek.children.length; index++) {\n const trekInStore = await getDataInStore('treks', this.currentTrek.children[index]);\n this.deleteOfflineTrekProperties(trekInStore);\n treksInStore.push(trekInStore);\n }\n }\n await writeOrUpdateDataInStore('treks', treksInStore);\n\n if (state.treks) {\n delete state.treks.find(trek => trek.id === this.currentTrek.id).offline;\n\n if (!state.currentTreks) {\n state.currentTreks = state.treks;\n }\n delete state.currentTreks.find(trek => trek.id === this.currentTrek.id).offline;\n }\n\n if (state.parentTrek) {\n delete state.parentTrek.offline;\n }\n\n if (state.currentTrekSteps) {\n state.currentTrekSteps.forEach(currentTrekStep => {\n delete currentTrekStep.offline;\n });\n }\n\n this.offline = false;\n this.trekDeleteSuccessConfirm.emit();\n }\n\n displayTrekDownloadModal() {\n this.trekDownloadConfirm.emit();\n }\n\n displayTrekDeleteModal() {\n this.trekDeleteConfirm.emit();\n }\n\n @Listen('trekDownloadPress', { target: 'window' })\n onTrekDownloadPress() {\n this.downloadTrek();\n }\n\n @Listen('trekDeletePress', { target: 'window' })\n onTrekDeletePress() {\n this.deleteTrek();\n }\n\n deleteOfflineTrekProperties(trekInStore) {\n delete trekInStore.descent;\n delete trekInStore.geometry;\n delete trekInStore.gpx;\n delete trekInStore.kml;\n delete trekInStore.pdf;\n delete trekInStore.parking_location;\n delete trekInStore.arrival;\n delete trekInStore.ambiance;\n delete trekInStore.access;\n delete trekInStore.public_transport;\n delete trekInStore.advice;\n delete trekInStore.advised_parking;\n delete trekInStore.gear;\n delete trekInStore.source;\n delete trekInStore.points_reference;\n delete trekInStore.disabled_infrastructure;\n delete trekInStore.accessibility_level;\n delete trekInStore.accessibility_slope;\n delete trekInStore.accessibility_width;\n delete trekInStore.accessibility_signage;\n delete trekInStore.accessibility_covering;\n delete trekInStore.accessibility_exposure;\n delete trekInStore.accessibility_advice;\n delete trekInStore.ratings;\n delete trekInStore.ratings_description;\n delete trekInStore.children;\n delete trekInStore.networks;\n delete trekInStore.web_links;\n delete trekInStore.update_datetime;\n delete trekInStore.offline;\n }\n\n render() {\n const defaultImageSrc = getAssetPath(`${Build.isDev ? '/' : ''}assets/default-image.svg`);\n return (\n <Host\n style={{\n '--font-family': this.fontFamily,\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 '--detail-bottom-space-height': this.isLargeView\n ? state.languages && state.languages.length > 1\n ? '44px'\n : '12px'\n : state.languages && state.languages.length > 1\n ? '244px'\n : '204px',\n }}\n >\n {this.currentTrek && (\n <div part=\"trek-options\" class=\"trek-options\">\n <a\n part=\"trek-option\"\n class={`presentation trek-option${this.indicatorSelectedTrekOption.ref === 'presentationOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.presentationOptionRef = el)}\n onClick={() => this.handleScrollTo(this.presentationRef)}\n >\n {translate[state.language].options.presentation}\n </a>\n {this.options.steps.visible && (\n <a\n part=\"trek-option\"\n class={`steps trek-option${this.options.steps.indicator ? ' selected-trek-option' : ''}`}\n ref={el => (this.stepsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.stepsRef)}\n >\n {translate[state.language].options.steps}\n </a>\n )}\n {this.options.description.visible && (\n <a\n part=\"trek-option\"\n class={`description trek-option${this.indicatorSelectedTrekOption.ref === 'descriptionOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.descriptionOptionRef = el)}\n onClick={() => this.handleScrollTo(this.descriptionRef)}\n >\n {translate[state.language].options.description}\n </a>\n )}\n {this.options.pois.visible && (\n <a\n part=\"trek-option\"\n class={`pois trek-option${this.indicatorSelectedTrekOption.ref === 'poisOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.poisOptionRef = el)}\n onClick={() => this.handleScrollTo(this.poiRef)}\n >\n {translate[state.language].options.pois}\n </a>\n )}\n {this.options.recommendations.visible && (\n <a\n part=\"trek-option\"\n class={`recommendations trek-option${this.indicatorSelectedTrekOption.ref === 'recommendationsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.recommendationsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.recommendationRef)}\n >\n {translate[state.language].options.recommendations}\n </a>\n )}\n {this.options.sensitiveArea.visible && (\n <a\n part=\"trek-option\"\n class={`sensitive-areas trek-option${this.indicatorSelectedTrekOption.ref === 'sensitiveAreaOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.sensitiveAreaOptionRef = el)}\n onClick={() => this.handleScrollTo(this.sensitiveAreaRef)}\n >\n {translate[state.language].options.environmentalSensitiveAreas}\n </a>\n )}\n {this.options.informationPlaces.visible && (\n <a\n part=\"trek-option\"\n class={`information-places trek-option${this.indicatorSelectedTrekOption.ref === 'informationPlacesOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.informationPlacesOptionRef = el)}\n onClick={() => this.handleScrollTo(this.informationPlacesRef)}\n >\n {translate[state.language].options.informationPlaces}\n </a>\n )}\n {this.options.accessibility.visible && (\n <a\n part=\"trek-option\"\n class={`accessibility trek-option${this.indicatorSelectedTrekOption.ref === 'accessibilityOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.accessibilityOptionRef = el)}\n onClick={() => this.handleScrollTo(this.accessibilityRef)}\n >\n {translate[state.language].options.accessibility}\n </a>\n )}\n {this.options.touristicContents.visible && (\n <a\n part=\"trek-option\"\n class={`touristic-content trek-option${this.indicatorSelectedTrekOption.ref === 'touristicContentsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.touristicContentsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.touristicContentsRef)}\n >\n {translate[state.language].options.touristicContents}\n </a>\n )}\n {this.options.touristicEvents.visible && (\n <a\n part=\"trek-option\"\n class={`touristic-event trek-option${this.indicatorSelectedTrekOption.ref === 'touristicEventsOptionRef' ? ' selected-trek-option' : ''}`}\n ref={el => (this.touristicEventsOptionRef = el)}\n onClick={() => this.handleScrollTo(this.touristicEventsRef)}\n >\n {translate[state.language].options.touristicEvents}\n </a>\n )}\n {this.presentationOptionRef && (\n <span\n part=\"trek-indicator-selected-trek-option\"\n class=\"trek-indicator-selected-trek-option\"\n style={{\n transform: `translateX(${this.indicatorSelectedTrekOption.translateX})`,\n width: this.indicatorSelectedTrekOption.width,\n backgroundSize: this.indicatorSelectedTrekOption.backgroundSize,\n }}\n ></span>\n )}\n </div>\n )}\n {this.currentTrek && (\n <div part=\"trek-detail-container\" class=\"trek-detail-container\" ref={el => (this.trekDetailContainerRef = el)}>\n <div part=\"trek-images\" class=\"trek-images-container\" ref={el => (this.presentationRef = el)}>\n <div part=\"swiper-images\" class=\"swiper swiper-images\" ref={el => (this.swiperImagesRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {this.currentTrek.attachments.filter(attachment => attachment.type === 'image').length > 0 ? (\n this.currentTrek.attachments\n .filter(attachment => attachment.type === 'image')\n .map(attachment => {\n const legend = [attachment.legend, attachment.author].filter(Boolean).join(' - ');\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n {this.displayFullscreen && (\n <div part=\"trek-close-fullscreen-button\" class=\"trek-close-fullscreen-button\" onClick={() => this.handleFullscreen(true)}>\n {/* @ts-ignore */}\n <span part=\"trek-close-fullcreen-icon\" class=\"trek-close-fullcreen-icon material-symbols material-symbols-outlined\" translate={false}>\n close\n </span>\n </div>\n )}\n <div part=\"trek-image-legend\" class=\"trek-image-legend\">\n {legend}\n </div>\n <img\n part=\"trek-img\"\n class=\"trek-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={attachment.url}\n loading=\"lazy\"\n onClick={() => this.handleFullscreen()}\n /* @ts-ignore */\n onerror={event => {\n event.target.onerror = null;\n event.target.className = 'trek-img default-trek-img';\n event.target.src = defaultImageSrc;\n }}\n />\n </div>\n );\n })\n ) : (\n <img\n part=\"trek-img\"\n class=\"trek-img default-trek-img\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={defaultImageSrc}\n loading=\"lazy\"\n />\n )}\n </div>\n <div style={{ display: this.offline ? 'none' : 'flex' }}>\n <div part=\"swiper-pagination\" class=\"swiper-pagination\" ref={el => (this.paginationElImagesRef = el)}></div>\n <div part=\"swiper-button-prev\" class=\"swiper-button-prev\" ref={el => (this.prevElImagesRef = el)}></div>\n <div part=\"swiper-button-next\" class=\"swiper-button-next\" ref={el => (this.nextElImagesRef = el)}></div>\n </div>\n </div>\n </div>\n <div part=\"trek-name\" class=\"trek-name\">\n {this.currentTrek.name}\n </div>\n {this.themes.length > 0 && (\n <div part=\"themes-container\" class=\"themes-container\">\n {this.themes.map(theme => (\n <div part=\"theme\" class=\"theme\">\n {theme.label}\n </div>\n ))}\n </div>\n )}\n <div part=\"sub-container\" class=\"sub-container\">\n <div part=\"icons-labels-container\" class=\"icons-labels-container\">\n {this.difficulty && (\n <div part=\"icon-label\" class=\"icon-label difficulty\">\n {this.difficulty.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.difficulty.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.difficulty.label}\n </span>\n </div>\n )}\n <div part=\"icon-label\" class=\"icon-label duration\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n timelapse\n </span>\n <span part=\"label\" class=\"label\">\n {formatDuration(this.currentTrek?.duration)}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label route\">\n {this.route?.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.route.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.route?.route}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label length\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n open_in_full\n </span>\n <span part=\"label\" class=\"label\">\n {formatLength(this.currentTrek.length_2d)}\n </span>\n </div>\n {this.currentTrek.ascent && (\n <div part=\"icon-label\" class=\"icon-label ascent\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n moving\n </span>\n <span part=\"label\" class=\"label\">\n {formatAscent(this.currentTrek.ascent)}\n </span>\n </div>\n )}\n {this.currentTrek.descent && (\n <div part=\"icon-label\" class=\"icon-label descent\">\n {/* @ts-ignore */}\n <span part=\"icon\" class=\"icon material-symbols material-symbols-outlined\" translate={false}>\n moving\n </span>\n <span part=\"label\" class=\"label\">\n {formatDescent(this.currentTrek.descent)}\n </span>\n </div>\n )}\n <div part=\"icon-label\" class=\"icon-label practice\">\n {this.practice?.pictogram && (\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={this.practice.pictogram}\n />\n )}\n <span part=\"label\" class=\"label\">\n {this.practice?.name}\n </span>\n </div>\n <div part=\"icon-label\" class=\"icon-label networks\">\n {this.currentTrek.networks.map(networkId => {\n const currentNetwork = state.networks.find(network => network.id === networkId);\n return (\n <div part=\"network\" class=\"network\">\n <img\n part=\"icon\"\n class=\"icon\"\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={currentNetwork.pictogram}\n />\n <span part=\"label\" class=\"label\">\n {currentNetwork.label}\n </span>\n </div>\n );\n })}\n </div>\n {this.currentTrek.ratings.map(trekRating => (\n <div part=\"row\" class=\"row\">\n {`${state.ratingsScale.find(ratingScale => ratingScale.id === state.ratings.find(rating => rating.id === trekRating).scale).name} : ${\n state.ratings.find(rating => rating.id === trekRating).name\n }`}\n </div>\n ))}\n {this.currentTrek.ratings_description && this.currentTrek.ratings_description !== '' && (\n <div part=\"row\" class=\"row\" innerHTML={this.currentTrek.ratings_description}></div>\n )}\n </div>\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"downloads-container\" class=\"downloads-container\">\n <div part=\"download-title\" class=\"download-title\">\n {translate[state.language].downloads}\n </div>\n {this.enableOffline && !this.offline && (\n <button part=\"offline-button\" class=\"offline-button\" onClick={() => this.displayTrekDownloadModal()}>\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download_for_offline\n </span>\n <span part=\"label\" class=\"label\">\n RENDRE DISPONIBLE HORS LIGNE\n </span>\n </button>\n )}\n {this.enableOffline && this.offline && (\n <button part=\"offline-button\" class=\"offline-button\" onClick={() => this.displayTrekDeleteModal()}>\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n delete\n </span>\n <span part=\"label\" class=\"label\">\n SUPPRIMER DU HORS LIGNE\n </span>\n </button>\n )}\n <div part=\"links-container\" class=\"links-container\">\n <a href={`${this.currentTrek.gpx}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n GPX\n </span>\n </a>\n <a href={`${this.currentTrek.kml}`} target=\"_blank\" rel=\"noopener noreferrer\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n KML\n </span>\n </a>\n <a\n href={`${this.currentTrek.pdf}${state.portalsFromProviders && state.portalsFromProviders.length === 1 ? '?portal=' + state.portalsFromProviders[0] : ''}`}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n download\n </span>\n <span part=\"label\" class=\"label\">\n PDF\n </span>\n </a>\n </div>\n </div>\n <div part=\"divider\" class=\"divider\"></div>\n {this.currentTrek.description_teaser && <div part=\"description-teaser\" class=\"description-teaser\" innerHTML={this.currentTrek.description_teaser}></div>}\n {this.currentTrek.ambiance && <div part=\"ambiance\" class=\"ambiance\" innerHTML={this.currentTrek.ambiance}></div>}\n {state.parentTrekId && state.parentTrek && this.currentTrek.id !== state.parentTrekId && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"parent-trek-container\" class=\"parent-trek-container\">\n <button part=\"parent-trek-title\" class=\"parent-trek-title\" onClick={() => this.parentTrekPress.emit(state.parentTrekId)}>\n <div><</div>\n {state.parentTrek.name}\n </button>\n </div>\n </div>\n )}\n {state.currentTrekSteps && (\n <div part=\"step-container\" class=\"step-container\">\n <div part=\"step-title\" class=\"step-title\" ref={el => (this.stepsRef = el)}>{`${state.currentTrekSteps.length} ${translate[state.language].steps}`}</div>\n <div part=\"swiper-step\" class=\"swiper swiper-step\" ref={el => (this.swiperStepRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentTrekSteps &&\n state.currentTrekSteps.map(trek => {\n return (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-trek-card\n exportparts=\"trek-card,trek-img-container,trek-img,trek-sub-container,trek-departure,trek-name,trek-themes-container,trek-theme,trek-icons-labels-container,trek-icon-label,trek-icon,trek-label\"\n key={`trek-${trek.id}`}\n trek={trek}\n is-large-view={false}\n is-step={true}\n fontFamily={this.fontFamily}\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-trek-card>\n </div>\n );\n })}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.stepSwiperScrollbar = el)}></div>\n </div>\n </div>\n )}\n <div part=\"divider\" class=\"divider\"></div>\n {this.currentTrek.description && (\n <div part=\"description-container\" class=\"description-container\">\n <div part=\"description-title\" class=\"description-title\" ref={el => (this.descriptionRef = el)}>\n {translate[state.language].description}\n </div>\n <div part=\"description\" class=\"description\" innerHTML={this.currentTrek.description}></div>\n </div>\n )}\n {this.currentTrek.departure && (\n <div part=\"departure-container\" class=\"departure-container\">\n <div part=\"departure-title\" class=\"departure-title\">\n {translate[state.language].departure} : \n </div>\n <div part=\"departure\" innerHTML={this.currentTrek.departure}></div>\n </div>\n )}\n {this.currentTrek.arrival && (\n <div part=\"arrival-container\" class=\"arrival-container\">\n <div part=\"arrival-title\" class=\"arrival-title\">\n {translate[state.language].arrival} : \n </div>\n <div part=\"arrival\" innerHTML={this.currentTrek.arrival}></div>\n </div>\n )}\n {this.currentTrek.cities && this.currentTrek.cities.length > 0 && (\n <div part=\"cities-container\" class=\"cities-container\">\n <div part=\"cities-title\" class=\"cities-title\">\n {translate[state.language].crossedCities} : \n </div>\n <div part=\"cities\" innerHTML={this.cities.join(', ')}></div>\n </div>\n )}\n {state.currentPois && state.currentPois.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"pois-container\" class=\"pois-container\">\n <div part=\"pois-title\" class=\"pois-title\" ref={el => (this.poiRef = el)}>\n {translate[state.language].pois(state.currentPois.length)}\n </div>\n <div part=\"swiper-pois\" class=\"swiper swiper-pois\" ref={el => (this.swiperPoisRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentPois.map(poi => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-poi\n exportparts=\"poi-type-img-container,poi-type,swiper-poi,swiper-wrapper,swiper-slide,poi-img,default-poi-img,swiper-pagination,swiper-button-prev,swiper-button-next,poi-sub-container,poi-name,poi-description,handle-poi-description\"\n poi={poi}\n ></grw-poi>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.poisSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {this.weather && this.currentTrek.departure_city && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"weather-container\" class=\"weather-container\">\n <iframe height=\"150\" frameborder=\"0\" src={`https://meteofrance.com/widget/prevision/${this.currentTrek.departure_city}0#${this.colorPrimaryApp}`}></iframe>\n </div>\n </div>\n )}\n {this.currentTrek.access && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"access-container\" class=\"access-container\">\n <div part=\"access-title\" class=\"access-title\">\n {translate[state.language].roadAccessAndParking}\n </div>\n <div part=\"access\" class=\"access\" innerHTML={this.currentTrek.access}></div>\n {this.currentTrek.advised_parking && (\n <div>\n <div part=\"advised-parking-title\" class=\"advised-parking-title\" ref={el => (this.parkingRef = el)}>\n {translate[state.language].recommendedParking}\n </div>\n <div part=\"advised-parking\" class=\"advised-parking\" innerHTML={this.currentTrek.advised_parking}></div>\n </div>\n )}\n </div>\n </div>\n )}\n {this.currentTrek.public_transport && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"public-transport-container\" class=\"public-transport-container\">\n <div part=\"public-transport-title\" class=\"public-transport-title\">\n {translate[state.language].transport}\n </div>\n <div part=\"public-transport\" class=\"public-transport\" innerHTML={this.currentTrek.public_transport}></div>\n </div>\n </div>\n )}\n {(this.currentTrek.advice || this.currentTrek.gear || this.labels.length > 0) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"advice-container\" class=\"advice-container\">\n <div part=\"advice-title\" class=\"advice-title\" ref={el => (this.recommendationRef = el)}>\n {translate[state.language].recommendations}\n </div>\n {this.currentTrek.advice && (\n <div part=\"current-advice-container\" class=\"current-advice-container\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n warning\n </span>\n <div part=\"advice\" class=\"advice\" innerHTML={this.currentTrek.advice}></div>\n </div>\n )}\n {this.currentTrek.gear && (\n <div part=\"gear-container\" class=\"gear-container\">\n {/* @ts-ignore */}\n <span translate={false} part=\"icon\" class=\"material-symbols material-symbols-outlined icon\">\n backpack\n </span>\n <div part=\"gear\" class=\"gear\" innerHTML={this.currentTrek.gear}></div>\n </div>\n )}\n {this.labels.map(label => (\n <div part=\"label-container\" class=\"label-container\">\n <div part=\"label-sub-container\" class=\"label-sub-container\">\n {label.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={label.pictogram}\n />\n )}\n <div part=\"label-name\" class=\"label-name\" innerHTML={label.name}></div>\n </div>\n <div part=\"label-advice\" class=\"label-advice\" innerHTML={label.advice}></div>\n </div>\n ))}\n </div>\n </div>\n )}\n {state.currentSensitiveAreas && state.currentSensitiveAreas.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"sensitive-areas-container\" class=\"sensitive-areas-container\">\n <div part=\"ensitive-areas-title\" class=\"sensitive-areas-title\" ref={el => (this.sensitiveAreaRef = el)}>\n {translate[state.language].environmentalSensitiveAreas}\n </div>\n <div part=\"sensitive-areas-description\" class=\"sensitive-areas-description\">\n {translate[state.language].sensitiveAreasDescription}\n </div>\n {state.currentSensitiveAreas.map(sensitiveArea => (\n <grw-sensitive-area-detail\n exportparts=\"sensitive-area-title-container,sensitive-area-color-container,sensitive-area-title,sensitive-area-description,sensitive-area-practice-container,sensitive-area-practice-title,sensitive-area-practices,sensitive-area-practice,sensitive-area-period-container,sensitive-area-period-title,sensitive-area-periods,sensitive-area-period,sensitive-area-contact-container,sensitive-area-contact-title,sensitive-area-contact-value\"\n sensitiveArea={sensitiveArea}\n ></grw-sensitive-area-detail>\n ))}\n </div>\n </div>\n )}\n {state.currentInformationDesks &&\n state.currentInformationDesks.filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id)).length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"information-desks-container\" class=\"information-desks-container\">\n <div part=\"information-desks-title\" class=\"information-desks-title\" ref={el => (this.informationPlacesRef = el)}>\n {translate[state.language].informationPlaces}\n </div>\n <div part=\"swiper-information-desks\" class=\"swiper swiper-information-desks\" ref={el => (this.swiperInformationDesksRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.currentInformationDesks\n .filter(currentInformationDesks => this.currentTrek.information_desks.includes(currentInformationDesks.id))\n .map(informationDesk => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-information-desk\n exportparts=\"information-desk-img-container,information-desk-img,information-desk-sub-container,information-desk-name,center-on-map-button,icon,label,information-desk-informations,phone-container,mail-container,link-container,information-desk-description-container,information-desk-description,handle-information-desk-description\"\n informationDesk={informationDesk}\n ></grw-information-desk>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.informationDesksContentsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {(this.currentTrek.disabled_infrastructure ||\n (this.accessibilities && this.accessibilities.length > 0) ||\n this.currentTrek.accessibility_level ||\n this.currentTrek.accessibility_slope ||\n this.currentTrek.accessibility_width ||\n this.currentTrek.accessibility_signage ||\n this.currentTrek.accessibility_covering ||\n this.currentTrek.accessibility_exposure ||\n this.currentTrek.accessibility_advice ||\n this.emergencyNumber) && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"accessibilities-container\" class=\"accessibilities-container\">\n <div part=\"accessibilities-title\" class=\"accessibilities-title\" ref={el => (this.accessibilityRef = el)}>\n {translate[state.language].accessibility}\n </div>\n {this.currentTrek.disabled_infrastructure && <div part=\"disabled-infrastructure\" innerHTML={this.currentTrek.disabled_infrastructure}></div>}\n {this.accessibilities && this.accessibilities.length > 0 && (\n <div part=\"accessibilities-content-container\" class=\"accessibilities-content-container\">\n {this.accessibilities.map(accessibility => (\n <div part=\"accessibility-content-container\" class=\"accessibility-content-container\">\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={accessibility.pictogram}\n ></img>\n <div part=\"accessibility-name\" innerHTML={accessibility.name}></div>\n </div>\n ))}\n </div>\n )}\n {this.emergencyNumber && (\n <div part=\"accessibility-emergency-number-container\" class=\"accessibility-emergency-number-container\">\n <div part=\"accessibility-emergency-number-title\" class=\"accessibility-emergency-number-title\">\n {translate[state.language].emergencyNumber}\n </div>\n <div part=\"accessibility-emergency-number-content\" class=\"accessibility-emergency-number-content\">\n {\n <a href={`tel:${this.emergencyNumber.toString()}`}>\n <span\n part=\"icon\"\n class=\"material-symbols material-symbols-outlined icon\"\n /* @ts-ignore */\n translate={false}\n >\n call\n </span>\n <span part=\"emergency-number\" class=\"emergency-number\">\n {this.emergencyNumber.toString()}\n </span>\n </a>\n }\n </div>\n </div>\n )}\n {this.currentTrek.accessibility_level && (\n <div part=\"accessibility-level-container\" class=\"accessibility-level-container\">\n <div part=\"accessibility-level-title\" class=\"accessibility-level-title\">\n {translate[state.language].accessibilityLevel}\n </div>\n <div part=\"accessibility-level-name\" innerHTML={this.accessibilityLevel.name}></div>\n </div>\n )}\n {this.currentTrek.accessibility_slope && (\n <div part=\"accessibility-slope-container\" class=\"accessibility-slope-container\">\n <div part=\"accessibility-slope-title\" class=\"accessibility-slope-title\">\n {translate[state.language].accessibilitySlope}\n </div>\n <div part=\"accessibility-slope\" innerHTML={this.currentTrek.accessibility_slope}></div>\n </div>\n )}\n {this.currentTrek.accessibility_width && (\n <div part=\"accessibility-width-container\" class=\"accessibility-width-container\">\n <div part=\"accessibility-width-title\" class=\"accessibility-width-title\">\n {translate[state.language].accessibilityWidth}\n </div>\n <div part=\"accessibility-width\" innerHTML={this.currentTrek.accessibility_width}></div>\n </div>\n )}\n {this.currentTrek.accessibility_signage && (\n <div part=\"accessibility-signage-container\" class=\"accessibility-signage-container\">\n <div part=\"accessibility-signage-title\" class=\"accessibility-signage-title\">\n {translate[state.language].accessibilitySignage}\n </div>\n <div part=\"accessibility-signage\" innerHTML={this.currentTrek.accessibility_signage}></div>\n </div>\n )}\n {this.currentTrek.accessibility_covering && (\n <div part=\"accessibility-covering-container\" class=\"accessibility-covering-container\">\n <div part=\"accessibility-covering-title\" class=\"accessibility-covering-title\">\n {translate[state.language].accessibilityCovering}\n </div>\n <div part=\"accessibility-covering\" innerHTML={this.currentTrek.accessibility_covering}></div>\n </div>\n )}\n {this.currentTrek.accessibility_exposure && (\n <div part=\"accessibility-exposure-container\" class=\"accessibility-exposure-container\">\n <div part=\"accessibility-exposure-title\" class=\"accessibility-exposure-title\">\n {translate[state.language].accessibilityExposure}\n </div>\n <div part=\"accessibility-exposure\" innerHTML={this.currentTrek.accessibility_exposure}></div>\n </div>\n )}\n {this.currentTrek.accessibility_advice && (\n <div part=\"accessibility-advice-container\" class=\"accessibility-advice-container\">\n <div part=\"accessibility-advice-title\" class=\"accessibility-advice-title\">\n {translate[state.language].accessibilityAdvices}\n </div>\n <div part=\"accessibility-advice\" innerHTML={this.currentTrek.accessibility_advice}></div>\n </div>\n )}\n </div>\n </div>\n )}\n {state.trekTouristicContents && state.trekTouristicContents.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"touristic-content-container\" class=\"touristic-content-container\">\n <div part=\"touristic-content-title\" class=\"touristic-content-title\" ref={el => (this.touristicContentsRef = el)}>\n {translate[state.language].touristicContents(state.trekTouristicContents.length)}\n </div>\n <div part=\"swiper-touristic-content\" class=\"swiper swiper-touristic-content\" ref={el => (this.swiperTouristicContentsRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.trekTouristicContents.map(touristicContent => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-touristic-content-card\n exportparts=\"touristic-content-card,touristic-content-img-container,swiper-touristic-content,swiper-wrapper,swiper-slide,touristic-content-img,default-touristic-content-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-content-sub-container,touristic-content-category-container,touristic-content-category-img,touristic-content-category-name,touristic-content-name,touristic-content-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n touristicContent={touristicContent}\n isInsideHorizontalList={true}\n ></grw-touristic-content-card>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.touristicContentsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {state.trekTouristicEvents && state.trekTouristicEvents.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"touristic-event-container\" class=\"touristic-event-container\">\n <div part=\"touristic-event-title\" class=\"touristic-event-title\" ref={el => (this.touristicEventsRef = el)}>\n {translate[state.language].touristicEvents(state.trekTouristicEvents.length)}\n </div>\n <div part=\"swiper-touristic-event\" class=\"swiper swiper-touristic-event\" ref={el => (this.swiperTouristicEventsRef = el)}>\n <div part=\"swiper-wrapper\" class=\"swiper-wrapper\">\n {state.trekTouristicEvents.map(touristicEvent => (\n <div part=\"swiper-slide\" class=\"swiper-slide\">\n <grw-touristic-event-card\n exportparts=\"touristic-event-card,touristic-event-img-container,swiper-touristic-event,swiper-wrapper,swiper-slide,touristic-event-img,default-touristic-event-img,swiper-pagination,swiper-button-prev,swiper-button-next,touristic-event-sub-container,touristic-event-sub-container,touristic-event-type-img,touristic-event-type-name,touristic-event-name,touristic-event-date-container,touristic-event-date,touristic-event-more-detail-container,more-details-button\"\n fontFamily={this.fontFamily}\n touristicEvent={touristicEvent}\n ></grw-touristic-event-card>\n </div>\n ))}\n </div>\n <div part=\"swiper-scrollbar\" class=\"swiper-scrollbar\" ref={el => (this.touristicEventsSwiperScrollbar = el)}></div>\n </div>\n </div>\n </div>\n )}\n {this.currentTrek.web_links && this.currentTrek.web_links.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"weblinks-container\" class=\"weblinks-container\">\n <div part=\"weblinks-title\" class=\"weblinks-title\">\n {translate[state.language].learnMore}\n </div>\n {this.currentTrek.web_links.map(weblink => (\n <a part=\"weblink-container\" class=\"weblink-container\" href={weblink.url} target=\"_blank\" rel=\"noopener noreferrer\">\n {weblink.category && weblink.category.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={weblink.category.pictogram}\n />\n )}\n {weblink.name}\n </a>\n ))}\n </div>\n </div>\n )}\n {this.currentTrek.source && this.currentTrek.source.length > 0 && (\n <div>\n <div part=\"divider\" class=\"divider\"></div>\n <div part=\"source-container\" class=\"source-container\">\n <div part=\"source-title\" class=\"source-title\">\n {translate[state.language].sources}\n </div>\n {this.sources.map(source => (\n <div part=\"source-sub-container\" class=\"source-sub-container\">\n {source.pictogram && (\n <img\n /* @ts-ignore */\n crossorigin=\"anonymous\"\n src={source.pictogram}\n />\n )}\n <div>\n <div part=\"source-name\" class=\"source-name\" innerHTML={source.name}></div>\n <a part=\"source-advice\" class=\"source-advice\" href={source.website} innerHTML={source.website}></a>\n </div>\n </div>\n ))}\n </div>\n </div>\n )}\n <div part=\"detail-bottom-space\" class=\"detail-bottom-space\"></div>\n </div>\n )}\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore, getDataInStore } from 'services/grw-db.service';\nimport { getTouristicContentsNearTrek } from 'services/touristic-contents.service';\nimport { getTouristicEventsNearTrek } from 'services/touristic-events.service';\nimport { getTrek } from 'services/treks.service';\nimport state from 'store/store';\nimport { Trek } from 'types/types';\nimport { imagesRegExp, setFilesFromStore } from 'utils/utils';\n\n@Component({\n tag: 'grw-trek-provider',\n shadow: true,\n})\nexport class GrwTrekProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\n @Prop() trekId: number;\n\n @Prop() portals: string;\n @Prop() inBbox: string;\n @Prop() cities: string;\n @Prop() districts: string;\n @Prop() structures: string;\n @Prop() themes: string;\n @Prop() routes: string;\n @Prop() practices: string;\n\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n\n state.portalsFromProviders = this.portals;\n state.inBboxFromProviders = this.inBbox;\n state.citiesFromProviders = this.cities;\n state.districtsFromProviders = this.districts;\n state.structuresFromProviders = this.structures;\n state.themesFromProviders = this.themes;\n state.routesFromProviders = this.routes;\n state.practicesFromProviders = this.practices;\n\n this.handleTrek();\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n async handleTrek() {\n const trekInStore: Trek = await getDataInStore('treks', this.trekId);\n if (trekInStore && trekInStore.offline) {\n this.handleOfflineTrek(trekInStore);\n } else {\n this.handleOnlineTrek();\n }\n }\n\n async handleOfflineTrek(trek: Trek) {\n if ((trek && trek.children.length > 0) || state.parentTrekId) {\n const steps: number[] = [];\n if (trek.children.length > 0) {\n state.parentTrekId = trek.id;\n state.parentTrek = trek;\n steps.push(...trek.children);\n } else {\n const parentTrek = await getDataInStore('treks', state.parentTrekId);\n state.parentTrek = parentTrek;\n steps.push(...parentTrek.children);\n }\n const stepRequests = [];\n steps.forEach(stepId => {\n stepRequests.push(getDataInStore('treks', stepId));\n });\n state.currentTrekSteps = await Promise.all([...stepRequests]).then(responses => responses);\n }\n\n if (!state.difficulties) {\n const difficulties = await getAllDataInStore('difficulties');\n setFilesFromStore(difficulties, imagesRegExp);\n state.difficulties = difficulties;\n }\n if (!state.routes) {\n state.routes = await getAllDataInStore('routes');\n }\n if (!state.practices) {\n state.practices = await getAllDataInStore('practices');\n }\n if (!state.themes) {\n state.themes = await getAllDataInStore('themes');\n }\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.accessibilities) {\n state.accessibilities = await getAllDataInStore('accessibilities');\n }\n if (!state.ratings) {\n state.ratings = await getAllDataInStore('ratings');\n }\n if (!state.ratingsScale) {\n state.ratingsScale = await getAllDataInStore('ratingsScale');\n }\n if (!state.currentSensitiveAreas) {\n // filter trek items\n state.currentSensitiveAreas = await getAllDataInStore('sensitiveAreas');\n }\n if (!state.labels) {\n state.labels = await getAllDataInStore('labels');\n }\n if (!state.sources) {\n state.sources = await getAllDataInStore('sources');\n }\n if (!state.accessibilitiesLevel) {\n state.accessibilitiesLevel = await getAllDataInStore('accessibilitiesLevel');\n }\n if (!state.trekTouristicContents) {\n // filter trek items\n const touristicContents = await getAllDataInStore('touristicContents');\n setFilesFromStore(touristicContents, imagesRegExp);\n state.trekTouristicContents = touristicContents;\n }\n if (!state.touristicContentCategories) {\n state.touristicContentCategories = await getAllDataInStore('touristicContentCategories');\n }\n if (!state.trekTouristicEvents) {\n // filter trek items\n state.trekTouristicEvents = await getAllDataInStore('touristicEvents');\n }\n if (!state.touristicEventTypes) {\n state.touristicEventTypes = await getAllDataInStore('touristicEventTypes');\n }\n if (!state.networks) {\n state.networks = await getAllDataInStore('networks');\n }\n if (!state.currentPois) {\n // filter trek items\n const pois = await getAllDataInStore('pois');\n setFilesFromStore(pois, imagesRegExp);\n state.currentPois = pois;\n }\n\n if (!state.poiTypes) {\n state.poiTypes = await getAllDataInStore('poiTypes');\n }\n if (!state.currentInformationDesks) {\n // filter trek items\n state.currentInformationDesks = await getAllDataInStore('informationDesks');\n }\n\n // handle images\n setFilesFromStore(trek, imagesRegExp);\n state.currentTrek = trek;\n }\n\n handleOnlineTrek() {\n const requests = [];\n requests.push(\n !state.difficulties\n ? fetch(`${state.api}trek_difficulty/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.routes\n ? fetch(`${state.api}trek_route/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,route,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.practices\n ? fetch(`${state.api}trek_practice/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.themes\n ? fetch(`${state.api}theme/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(!state.cities ? fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init) : new Response('null'));\n requests.push(\n !state.accessibilities\n ? fetch(`${state.api}trek_accessibility/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init)\n : new Response('null'),\n );\n requests.push(\n !state.ratings\n ? fetch(`${state.api}trek_rating/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,scale`, this.init)\n : new Response('null'),\n );\n requests.push(!state.ratings ? fetch(`${state.api}trek_ratingscale/?language=${state.language}&fields=id,name`, this.init) : new Response('null'));\n\n try {\n Promise.all([\n ...requests,\n fetch(\n `${this.api}sensitivearea/?language=${state.language}&published=true&trek=${this.trekId}&period=ignore&fields=id,geometry,name,description,contact,info_url,period,practices`,\n this.init,\n )\n .then(response => {\n if (response.ok) {\n return response;\n } else {\n throw new Error('Sentive area error');\n }\n })\n .catch(() => {\n return new Response('null');\n }),\n fetch(`${state.api}label/?language=${state.language}&fields=id,name,advice,pictogram`, this.init),\n fetch(`${state.api}source/?language=${state.language}&fields=id,name,website,pictogram`, this.init),\n fetch(`${state.api}trek_accessibility_level/?language=${state.language}&fields=id,name`, this.init).catch(() => new Response('null')),\n fetch(`${state.api}poi/?language=${state.language}&trek=${this.trekId}&published=true&fields=id,name,description,attachments,type,geometry&page_size=999`, this.init),\n fetch(`${state.api}poi_type/?language=${state.language}&fields=id,pictogram`, this.init),\n fetch(\n `${state.api}informationdesk/?language=${state.language}&fields=id,name,description,type,phone,email,website,municipality,postal_code,street,photo_url,latitude,longitude&page_size=999`,\n this.init,\n ),\n getTouristicContentsNearTrek(state.api, state.language, this.trekId, this.init),\n fetch(`${state.api}touristiccontent_category/?language=${state.language}&published=true&fields=id,label,pictogram&page_size=999`, this.init),\n getTouristicEventsNearTrek(state.api, state.language, this.trekId, this.init),\n fetch(`${state.api}touristicevent_type/?language=${state.language}&published=true&fields=id,type,pictogram&page_size=999`, this.init),\n fetch(`${state.api}trek_network/?language=${state.language}&published=true&fields=id,label,pictogram&page_size=999`, this.init),\n getTrek(state.api, state.language, this.trekId, this.init),\n ])\n .then(responses => Promise.all(responses.map(response => response.json())))\n .then(\n async ([\n difficulties,\n routes,\n practices,\n themes,\n cities,\n accessibilities,\n ratings,\n ratingsScale,\n sensitiveAreas,\n labels,\n sources,\n accessibilitiesLevel,\n pois,\n poiTypes,\n informationDesks,\n touristicContent,\n touristicContentCategory,\n touristicEvent,\n touristicEventType,\n networks,\n trek,\n ]) => {\n state.networkError = false;\n if ((trek && trek.children.length > 0) || state.parentTrekId) {\n const steps: number[] = [];\n if (trek.children.length > 0) {\n state.parentTrekId = trek.id;\n state.parentTrek = trek;\n steps.push(...trek.children);\n } else {\n const parentTrek = await fetch(`${state.api}trek/${state.parentTrekId}/?language=${state.language}&published=true&fields=name,children`).then(response =>\n response.json(),\n );\n state.parentTrek = parentTrek;\n steps.push(...parentTrek.children);\n }\n const stepRequests = [];\n steps.forEach(stepId => {\n stepRequests.push(getTrek(state.api, state.language, stepId, this.init));\n });\n state.currentTrekSteps = await Promise.all([...stepRequests]).then(responses => Promise.all(responses.map(response => response.json())));\n }\n\n if (difficulties) {\n state.difficulties = difficulties.results;\n }\n if (routes) {\n state.routes = routes.results;\n }\n if (practices) {\n state.practices = practices.results.map(practice => ({ ...practice, selected: false }));\n }\n if (themes) {\n state.themes = themes.results;\n }\n if (cities) {\n state.cities = cities.results;\n }\n if (accessibilities) {\n state.accessibilities = accessibilities.results;\n }\n if (ratings) {\n state.ratings = ratings.results;\n }\n if (ratingsScale) {\n state.ratingsScale = ratingsScale.results;\n }\n if (sensitiveAreas) {\n state.currentSensitiveAreas = sensitiveAreas.results;\n }\n if (labels) {\n state.labels = labels.results;\n }\n if (sources) {\n state.sources = sources.results;\n }\n if (accessibilitiesLevel) {\n state.accessibilitiesLevel = accessibilitiesLevel.results;\n }\n if (touristicContent) {\n state.trekTouristicContents = touristicContent.results;\n }\n if (touristicContentCategory) {\n state.touristicContentCategories = touristicContentCategory.results;\n }\n if (touristicEvent) {\n state.trekTouristicEvents = touristicEvent.results;\n }\n if (touristicEventType) {\n state.touristicEventTypes = touristicEventType.results;\n }\n if (networks) {\n state.networks = networks.results;\n }\n if (pois) {\n state.currentPois = pois.results;\n }\n if (poiTypes) {\n state.poiTypes = poiTypes.results;\n }\n if (informationDesks) {\n state.currentInformationDesks = informationDesks.results;\n }\n if (trek) {\n state.currentTrek = trek;\n }\n },\n );\n } catch (error) {\n if (!(error.code === DOMException.ABORT_ERR)) {\n state.networkError = true;\n }\n }\n }\n\n render() {\n return <Host></Host>;\n }\n}\n",".material-symbols {\n font-family: 'Material Symbols Outlined';\n}\n\n.material-symbols-outlined {\n font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 48;\n}\n\n:host {\n width: 100%;\n height: 100%;\n overflow-y: auto;\n}\n\ngrw-trek-card {\n width: 100% !important;\n display: flex;\n justify-content: center;\n margin: 0px 8px 8px 8px;\n}\n\n.list-bottom-space {\n height: 104px;\n}\n\n.list-large-view-bottom-space {\n height: 52px;\n}\n\n.current-treks-within-bounds-length {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 16px;\n color: var(--color-on-surface-variant);\n font-size: 22px;\n line-height: 28px;\n font-weight: 400;\n font-family: var(--font-family);\n}\n\n.treks-list-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-around;\n}\n","import { Component, Host, h, Element, State, Prop } from '@stencil/core';\nimport { translate } from 'i18n/i18n';\nimport state, { onChange } from 'store/store';\nimport { Treks } from 'types/types';\n\n@Component({\n tag: 'grw-treks-list',\n styleUrl: 'grw-treks-list.scss',\n shadow: true,\n})\nexport class GrwTreksList {\n @Element() element: HTMLElement;\n @State() treksToDisplay: Treks = [];\n\n @Prop() fontFamily = 'Roboto';\n @Prop() colorPrimaryApp = '#6b0030';\n @Prop() colorOnSurface = '#49454e';\n @Prop() colorSecondaryContainer = '#e8def8';\n @Prop() colorOnSecondaryContainer = '#1d192b';\n @Prop() colorSurfaceContainerLow = '#f7f2fa';\n @Prop() displayOnlyOfflineTreks = false;\n @Prop() isLargeView = false;\n\n step = 10;\n shouldAddInfiniteScrollEvent = true;\n\n handleInfiniteScrollBind: (event: any) => void = this.handleInfiniteScroll.bind(this);\n\n connectedCallback() {\n this.handleInfiniteScrollEvent(true);\n if (state.currentTreks) {\n this.treksToDisplay = [...state.currentTreks.slice(0, this.step)];\n }\n onChange('currentTreks', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.currentTreks) {\n this.treksToDisplay = [...state.currentTreks.slice(0, this.step)];\n }\n });\n onChange('treksWithinBounds', () => {\n this.handleInfiniteScrollEvent(true);\n this.element.scroll({ top: 0 });\n if (state.treksWithinBounds) {\n this.treksToDisplay = [...state.treksWithinBounds.slice(0, this.step)];\n }\n });\n }\n\n handleInfiniteScroll(event: any) {\n if (event.composedPath()[0].scrollTop + event.composedPath()[0].scrollHeight / 2 >= event.composedPath()[0].scrollHeight) {\n if (this.treksToDisplay.length < state.treksWithinBounds.length) {\n this.treksToDisplay = state.treksWithinBounds.slice(\n 0,\n this.treksToDisplay.length + this.step >= state.treksWithinBounds.length ? state.treksWithinBounds.length : this.treksToDisplay.length + this.step,\n );\n } else {\n this.handleInfiniteScrollEvent(false);\n }\n }\n }\n\n handleInfiniteScrollEvent(shouldAddInfiniteScrollEvent: boolean) {\n if (shouldAddInfiniteScrollEvent) {\n if (this.shouldAddInfiniteScrollEvent) {\n this.element.addEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n } else {\n this.element.removeEventListener('scroll', this.handleInfiniteScrollBind);\n this.shouldAddInfiniteScrollEvent = !shouldAddInfiniteScrollEvent;\n }\n }\n\n disconnectedCallback() {\n this.handleInfiniteScrollEvent(false);\n }\n\n render() {\n return (\n <Host style={{ '--font-family': this.fontFamily, '--color-primary-app': this.colorPrimaryApp }}>\n {state.treksWithinBounds && (\n <div part=\"current-treks-within-bounds-length\" 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 <div part=\"treks-list-container\" class=\"treks-list-container\">\n {this.treksToDisplay.map(trek => (\n <grw-trek-card\n exportparts=\"trek-card,trek-img-container,trek-img,trek-sub-container,trek-departure,trek-name,trek-themes-container,trek-theme,trek-icons-labels-container,trek-icon-label,trek-icon,trek-label\"\n key={`trek-${trek.id}`}\n trek={trek}\n is-large-view={this.isLargeView}\n fontFamily={this.fontFamily}\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-trek-card>\n ))}\n </div>\n <div part=\"list-bottom-space\" class={!this.isLargeView ? 'list-bottom-space' : 'list-large-view-bottom-space'}></div>\n </Host>\n );\n }\n}\n","import { Build, Component, h, Host, Prop } from '@stencil/core';\nimport { getAllDataInStore } from 'services/grw-db.service';\nimport { getDistricts, getTreksList, trekIsAvailableOffline } from 'services/treks.service';\nimport state from 'store/store';\nimport { Treks } from 'types/types';\nimport { durations, elevations, lengths } from 'utils/utils';\n\n@Component({\n tag: 'grw-treks-provider',\n shadow: true,\n})\nexport class GrwTreksProvider {\n @Prop() languages = 'fr';\n @Prop() api: string;\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\n controller = new AbortController();\n signal = this.controller.signal;\n init: RequestInit = { cache: Build.isDev ? 'force-cache' : 'default', signal: this.signal };\n\n connectedCallback() {\n if (!state.api) {\n state.api = this.api;\n state.languages = this.languages.split(',');\n state.language = state.languages[0];\n }\n\n state.portalsFromProviders = this.portals;\n state.inBboxFromProviders = this.inBbox;\n state.citiesFromProviders = this.cities;\n state.districtsFromProviders = this.districts;\n state.structuresFromProviders = this.structures;\n state.themesFromProviders = this.themes;\n state.routesFromProviders = this.routes;\n state.practicesFromProviders = this.practices;\n\n this.handleTreks();\n }\n\n disconnectedCallback() {\n this.controller.abort();\n state.networkError = false;\n }\n\n async handleTreks() {\n this.handleOnlineTreks();\n }\n\n async handleOfflineTreks(treks: Treks) {\n if (!state.difficulties) {\n state.difficulties = await getAllDataInStore('difficulties');\n }\n if (!state.routes) {\n state.routes = await getAllDataInStore('routes');\n }\n if (!state.practices) {\n state.practices = await getAllDataInStore('practices');\n }\n if (!state.themes) {\n state.themes = await getAllDataInStore('themes');\n }\n if (!state.cities) {\n state.cities = await getAllDataInStore('cities');\n }\n if (!state.accessibilities) {\n state.accessibilities = await getAllDataInStore('accessibilities');\n }\n if (!state.labels) {\n state.labels = await getAllDataInStore('labels');\n }\n if (!state.districts) {\n state.districts = await getAllDataInStore('districts');\n }\n if (!state.durations) {\n state.durations = durations;\n }\n if (!state.lengths) {\n state.lengths = lengths;\n }\n if (!state.elevations) {\n state.elevations = elevations;\n }\n this.sortTreks(treks);\n state.treks = treks;\n state.currentTreks = treks;\n }\n\n sortTreks(treks) {\n treks.sort((a, b) => {\n return a.name.localeCompare(b.name, undefined, {\n numeric: true,\n sensitivity: 'base',\n });\n });\n }\n\n handleOnlineTreks() {\n Promise.all([\n fetch(`${state.api}trek_difficulty/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init),\n fetch(`${state.api}trek_route/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,route,pictogram`, this.init),\n fetch(`${state.api}trek_practice/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram`, this.init),\n fetch(`${state.api}theme/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,label,pictogram`, this.init),\n fetch(`${state.api}city/?language=${state.language}&fields=id,name&published=true&page_size=999`, this.init),\n fetch(\n `${state.api}trek_accessibility/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,pictogram&published=true&page_size=999`,\n this.init,\n ),\n fetch(\n `${state.api}label/?language=${state.language}${this.portals ? '&portals='.concat(this.portals) : ''}&fields=id,name,advice,pictogram,filter&published=true&page_size=999`,\n this.init,\n ),\n getDistricts(state.api, state.language, this.init),\n getTreksList(this.api, state.language, this.inBbox, this.cities, this.districts, this.structures, this.themes, this.portals, this.routes, this.practices, this.init),\n ])\n .then(responses => {\n responses.forEach(response => {\n if (response.status !== 200) {\n throw new Error('network error');\n }\n });\n return Promise.all(responses.map(response => response.json()));\n })\n .then(async ([difficulties, routes, practices, themes, cities, accessibility, labels, districts, treks]) => {\n state.networkError = false;\n state.difficulties = difficulties.results;\n state.routes = routes.results;\n state.practices = practices.results.map(practice => ({ ...practice, selected: false }));\n state.themes = themes.results;\n state.cities = cities.results;\n state.accessibilities = accessibility.results;\n state.labels = labels.results;\n state.districts = districts.results;\n state.durations = durations;\n state.lengths = lengths;\n state.elevations = elevations;\n const treksWithOfflineValue = [];\n for (let index = 0; index < treks.results.length; index++) {\n const offline = await trekIsAvailableOffline(treks.results[index].id);\n treksWithOfflineValue.push({ ...treks.results[index], offline });\n }\n state.treks = treksWithOfflineValue;\n state.currentTreks = treksWithOfflineValue;\n })\n .catch(async () => {\n const treksInStore: Treks = await getAllDataInStore('treks');\n if (treksInStore && treksInStore.length > 0) {\n this.handleOfflineTreks(treksInStore);\n } else {\n state.networkError = true;\n }\n });\n }\n\n render() {\n return <Host></Host>;\n }\n}\n"],"version":3}
|