@oiz/stzh-components 3.8.0-beta2 → 3.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/{app-globals-a393bc30.js → app-globals-0e887dd2.js} +2 -2
- package/dist/cjs/{app-globals-a393bc30.js.map → app-globals-0e887dd2.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stzh-badge_3.cjs.entry.js +1 -1
- package/dist/cjs/stzh-badge_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-checkboxgroup.cjs.entry.js +12 -11
- package/dist/cjs/stzh-checkboxgroup.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-components.cjs.js +2 -2
- package/dist/cjs/stzh-contact.cjs.entry.js +1 -1
- package/dist/cjs/stzh-contact.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-dialog.cjs.entry.js +1 -1
- package/dist/cjs/stzh-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-geo-ref-data.cjs.entry.js +2 -2
- package/dist/cjs/stzh-geo-ref-data.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-upload.cjs.entry.js +3 -1
- package/dist/cjs/stzh-upload.cjs.entry.js.map +1 -1
- package/dist/collection/components/stzh-button/stzh-button.css +13 -4
- package/dist/collection/components/stzh-button/stzh-button.stories.js +12 -21
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js +31 -14
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js.map +1 -1
- package/dist/collection/components/stzh-contact/stzh-contact.css +3 -0
- package/dist/collection/components/stzh-datepicker/stzh-datepicker.stories.js +1 -1
- package/dist/collection/components/stzh-dialog/stzh-dialog.css +2 -1
- package/dist/collection/components/stzh-geo-ref-data/stzh-geo-ref-data.js +2 -2
- package/dist/collection/components/stzh-geo-ref-data/stzh-geo-ref-data.js.map +1 -1
- package/dist/collection/components/stzh-input/stzh-input.stories.js +1 -1
- package/dist/collection/components/stzh-upload/stzh-upload.js +3 -1
- package/dist/collection/components/stzh-upload/stzh-upload.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-4fec83e3.js → p-16940157.js} +2 -2
- package/dist/components/{p-4fec83e3.js.map → p-16940157.js.map} +1 -1
- package/dist/components/{p-2fe2c81f.js → p-1d21ac10.js} +3 -3
- package/dist/components/{p-2fe2c81f.js.map → p-1d21ac10.js.map} +1 -1
- package/dist/components/{p-6e8c91f8.js → p-37367a31.js} +4 -4
- package/dist/components/{p-6e8c91f8.js.map → p-37367a31.js.map} +1 -1
- package/dist/components/{p-74755a90.js → p-408a1562.js} +2 -2
- package/dist/components/{p-74755a90.js.map → p-408a1562.js.map} +1 -1
- package/dist/components/{p-7e9f4f9f.js → p-497e2db0.js} +2 -2
- package/dist/components/{p-7e9f4f9f.js.map → p-497e2db0.js.map} +1 -1
- package/dist/components/p-4d000b5b.js +265 -0
- package/dist/components/p-4d000b5b.js.map +1 -0
- package/dist/components/{p-866cf184.js → p-4e5ccabd.js} +2 -2
- package/dist/components/{p-866cf184.js.map → p-4e5ccabd.js.map} +1 -1
- package/dist/components/{p-bd7d15a6.js → p-541e8c61.js} +2 -2
- package/dist/components/{p-bd7d15a6.js.map → p-541e8c61.js.map} +1 -1
- package/dist/components/{p-d4aabf9c.js → p-60b9f94a.js} +3 -3
- package/dist/components/p-60b9f94a.js.map +1 -0
- package/dist/components/{p-47601c6a.js → p-62e6cd61.js} +3 -3
- package/dist/components/{p-47601c6a.js.map → p-62e6cd61.js.map} +1 -1
- package/dist/components/{p-13c3319c.js → p-6956beb9.js} +2 -2
- package/dist/components/{p-13c3319c.js.map → p-6956beb9.js.map} +1 -1
- package/dist/components/{p-9b0832ca.js → p-70f62e8e.js} +3 -3
- package/dist/components/{p-9b0832ca.js.map → p-70f62e8e.js.map} +1 -1
- package/dist/components/{p-5efa3e34.js → p-96416f66.js} +2 -2
- package/dist/components/{p-5efa3e34.js.map → p-96416f66.js.map} +1 -1
- package/dist/components/{p-435e0ef4.js → p-c73125e2.js} +3 -3
- package/dist/components/{p-435e0ef4.js.map → p-c73125e2.js.map} +1 -1
- package/dist/components/{p-d1623b2e.js → p-dd072a49.js} +2 -2
- package/dist/components/{p-d1623b2e.js.map → p-dd072a49.js.map} +1 -1
- package/dist/components/{p-4039ba55.js → p-e5edc56d.js} +2 -2
- package/dist/components/{p-4039ba55.js.map → p-e5edc56d.js.map} +1 -1
- package/dist/components/{p-e197115b.js → p-fa14b406.js} +2 -2
- package/dist/components/{p-e197115b.js.map → p-fa14b406.js.map} +1 -1
- package/dist/components/stzh-actionset.js +1 -1
- package/dist/components/stzh-amount.js +2 -2
- package/dist/components/stzh-appointments.js +4 -4
- package/dist/components/stzh-archivelist.js +1 -1
- package/dist/components/stzh-banner.js +1 -1
- package/dist/components/stzh-button.js +1 -1
- package/dist/components/stzh-calendar.js +1 -1
- package/dist/components/stzh-card-searchresult.js +3 -3
- package/dist/components/stzh-card-superteaser.js +3 -3
- package/dist/components/stzh-card.js +1 -1
- package/dist/components/stzh-checkboxgroup.js +13 -12
- package/dist/components/stzh-checkboxgroup.js.map +1 -1
- package/dist/components/stzh-contact.js +1 -1
- package/dist/components/stzh-contact.js.map +1 -1
- package/dist/components/stzh-datalist-item.js +1 -1
- package/dist/components/stzh-datalist.js +1 -1
- package/dist/components/stzh-datamessagelist-item.js +1 -1
- package/dist/components/stzh-datatable.js +5 -5
- package/dist/components/stzh-datepicker.js +1 -1
- package/dist/components/stzh-dialog.js +1 -1
- package/dist/components/stzh-disturber.js +1 -1
- package/dist/components/stzh-feedreader.js +2 -2
- package/dist/components/stzh-gallery.js +1 -1
- package/dist/components/stzh-geo-ref-data.js +7 -7
- package/dist/components/stzh-geo-ref-data.js.map +1 -1
- package/dist/components/stzh-ghettobox.js +1 -1
- package/dist/components/stzh-header.js +1 -1
- package/dist/components/stzh-http-error.js +1 -1
- package/dist/components/stzh-iframe.js +1 -1
- package/dist/components/stzh-input.js +1 -1
- package/dist/components/stzh-message.js +1 -1
- package/dist/components/stzh-microsite-teaserlist.js +3 -3
- package/dist/components/stzh-offline-indicator.js +3 -3
- package/dist/components/stzh-pagebottom.js +2 -2
- package/dist/components/stzh-pagination.js +1 -1
- package/dist/components/stzh-panorama.js +1 -1
- package/dist/components/stzh-poilist.js +2 -2
- package/dist/components/stzh-readspeaker.js +1 -1
- package/dist/components/stzh-saptcha.js +2 -2
- package/dist/components/stzh-search.js +2 -2
- package/dist/components/stzh-share.js +1 -1
- package/dist/components/stzh-sitemap.js +3 -3
- package/dist/components/stzh-toast.js +1 -1
- package/dist/components/stzh-toastbar.js +1 -1
- package/dist/components/stzh-upload.js +8 -6
- package/dist/components/stzh-upload.js.map +1 -1
- package/dist/components/stzh-vbz-majorticker.js +2 -2
- package/dist/components/stzh-youtube.js +2 -2
- package/dist/esm/{app-globals-6ab4a484.js → app-globals-1e3146bc.js} +2 -2
- package/dist/esm/{app-globals-6ab4a484.js.map → app-globals-1e3146bc.js.map} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/stzh-badge_3.entry.js +1 -1
- package/dist/esm/stzh-badge_3.entry.js.map +1 -1
- package/dist/esm/stzh-checkboxgroup.entry.js +12 -11
- package/dist/esm/stzh-checkboxgroup.entry.js.map +1 -1
- package/dist/esm/stzh-components.js +2 -2
- package/dist/esm/stzh-contact.entry.js +1 -1
- package/dist/esm/stzh-contact.entry.js.map +1 -1
- package/dist/esm/stzh-dialog.entry.js +1 -1
- package/dist/esm/stzh-dialog.entry.js.map +1 -1
- package/dist/esm/stzh-geo-ref-data.entry.js +2 -2
- package/dist/esm/stzh-geo-ref-data.entry.js.map +1 -1
- package/dist/esm/stzh-upload.entry.js +3 -1
- package/dist/esm/stzh-upload.entry.js.map +1 -1
- package/dist/stzh-components/{p-a47a14ef.entry.js → p-66c866e5.entry.js} +2 -2
- package/dist/stzh-components/p-66c866e5.entry.js.map +1 -0
- package/dist/stzh-components/{p-232d017c.entry.js → p-6a3db3bd.entry.js} +2 -2
- package/dist/stzh-components/p-6a3db3bd.entry.js.map +1 -0
- package/dist/stzh-components/p-75143e35.entry.js +2 -0
- package/dist/stzh-components/p-75143e35.entry.js.map +1 -0
- package/dist/stzh-components/p-84cedd61.entry.js +2 -0
- package/dist/stzh-components/p-84cedd61.entry.js.map +1 -0
- package/dist/stzh-components/p-9f91ca1f.entry.js +2 -0
- package/dist/stzh-components/p-9f91ca1f.entry.js.map +1 -0
- package/dist/stzh-components/{p-c83239a9.entry.js → p-b25e8b20.entry.js} +2 -2
- package/dist/stzh-components/p-b25e8b20.entry.js.map +1 -0
- package/dist/stzh-components/p-d41803d1.js +2 -0
- package/dist/stzh-components/{p-7036f004.js.map → p-d41803d1.js.map} +1 -1
- package/dist/stzh-components/stzh-components.esm.js +1 -1
- package/dist/stzh-components/stzh-components.esm.js.map +1 -1
- package/dist/types/components/stzh-checkboxgroup/stzh-checkboxgroup.d.ts +3 -3
- package/dist/types/components.d.ts +8 -0
- package/dist/vscode-data.json +4 -0
- package/package.json +1 -1
- package/dist/components/p-20c7b76b.js +0 -265
- package/dist/components/p-20c7b76b.js.map +0 -1
- package/dist/components/p-d4aabf9c.js.map +0 -1
- package/dist/stzh-components/p-232d017c.entry.js.map +0 -1
- package/dist/stzh-components/p-7036f004.js +0 -2
- package/dist/stzh-components/p-a47a14ef.entry.js.map +0 -1
- package/dist/stzh-components/p-a71fafbd.entry.js +0 -2
- package/dist/stzh-components/p-a71fafbd.entry.js.map +0 -1
- package/dist/stzh-components/p-aff2ca5f.entry.js +0 -2
- package/dist/stzh-components/p-aff2ca5f.entry.js.map +0 -1
- package/dist/stzh-components/p-c83239a9.entry.js.map +0 -1
- package/dist/stzh-components/p-da2c88a2.entry.js +0 -2
- package/dist/stzh-components/p-da2c88a2.entry.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as e,h as a,F as s,a as i,g as r}from"./p-c7bfac7a.js";import{f as h}from"./p-6cc8241c.js";import{m as n,a as d,r as o}from"./p-10e2901a.js";import"./p-a6d4a8b1.js";const l=':host{font-family:var(--stzh-font-family-medium);font-weight:var(--stzh-font-weight-medium);font-style:var(--stzh-font-style-medium);color:var(--stzh-base-color);box-sizing:border-box;display:block;}:host[hidden],:host[stzh-hidden]{display:none}:host::selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}:host *,:host *::before,:host *::after{box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness);-webkit-text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink);text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink)}:host .has-focus{outline:var(--stzh-flyingfocus-color) solid 0.125rem;outline-offset:0.125rem}:host .stzh-fylingfocus-focused{outline-style:none !important}:host .stzh-fylingfocus-focused::-moz-focus-inner{border:0 !important}:host{--teaser-list-width:30rem;--meta-grid-template-areas:"filters search";--results-grid-template-areas:"map list"}.stzh-geo-ref-data{position:fixed;top:0;right:0;bottom:0;left:0;z-index:899;flex-direction:column;transition:opacity ease 0.2s;background-color:var(--stzh-color-white);display:none;opacity:0;visibility:hidden;pointer-events:none;}.stzh-geo-ref-data--is-open{display:flex;opacity:1;visibility:visible;pointer-events:inherit}.stzh-geo-ref-data__header{display:none}@media screen and (min-width: 1260px){.stzh-geo-ref-data__header{display:inherit}}.stzh-geo-ref-data__content{overflow:hidden;height:100%}.stzh-geo-ref-data--content-padding{padding-left:1.25rem;padding-right:var(--stzh-space-medium)}@media screen and (min-width: 600px){.stzh-geo-ref-data--content-padding{padding-left:2rem}}@media screen and (min-width: 900px){.stzh-geo-ref-data--content-padding{padding-left:2.5rem}}@media screen and (min-width: 1260px){.stzh-geo-ref-data--content-padding{padding-left:2rem}}.stzh-geo-ref-data__heading{display:flex;align-items:center;background-color:var(--stzh-color-secondary20);padding-top:var(--stzh-space-medium);padding-bottom:var(--stzh-space-medium)}@media screen and (min-width: 600px){.stzh-geo-ref-data__heading{padding-top:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__heading{padding-top:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__heading{padding-top:var(--stzh-space-xxlarge)}}@media screen and (min-width: 600px){.stzh-geo-ref-data__heading{padding-bottom:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__heading{padding-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__heading{padding-bottom:var(--stzh-space-xxlarge)}}.stzh-geo-ref-data__meta-wrapper{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--stzh-space-large);padding-top:var(--stzh-space-xsmall);padding-bottom:var(--stzh-space-xsmall)}@media screen and (max-width: 1259px){.stzh-geo-ref-data__meta-wrapper{padding-top:var(--stzh-space-medium);padding-bottom:var(--stzh-space-medium)}}@media screen and (min-width: 600px){.stzh-geo-ref-data__meta-wrapper{padding-top:var(--stzh-space-small)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__meta-wrapper{padding-top:var(--stzh-space-medium)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__meta-wrapper{padding-top:var(--stzh-space-xlarge)}}@media screen and (min-width: 600px){.stzh-geo-ref-data__meta-wrapper{padding-bottom:var(--stzh-space-small)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__meta-wrapper{padding-bottom:var(--stzh-space-medium)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__meta-wrapper{padding-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__meta-wrapper{display:grid;column-gap:var(--stzh-grid-gutter);grid-template-areas:var(--meta-grid-template-areas);grid-template-columns:1fr var(--teaser-list-width)}}@media screen and (min-width: 1260px) and (min-width: 600px){.stzh-geo-ref-data__meta-wrapper{column-gap:var(--stzh-grid-gutter-small)}}@media screen and (min-width: 1260px) and (min-width: 900px){.stzh-geo-ref-data__meta-wrapper{column-gap:var(--stzh-grid-gutter-medium)}}@media screen and (min-width: 1260px) and (min-width: 1260px){.stzh-geo-ref-data__meta-wrapper{column-gap:var(--stzh-grid-gutter-large)}}@media screen and (min-width: 1260px) and (min-width: 1600px){.stzh-geo-ref-data__meta-wrapper{column-gap:var(--stzh-grid-gutter-ultra)}}.stzh-geo-ref-data__filters{grid-area:filters;flex:none;margin-bottom:var(--stzh-space-xxsmall)}@media screen and (min-width: 1260px){.stzh-geo-ref-data__filters-toggle{display:none}}@media screen and (max-width: 899px){.stzh-geo-ref-data__filters-toggle stzh-chip{--icon-gap:0}}.stzh-geo-ref-data__list-search{display:none;padding-top:var(--stzh-space-medium);padding-bottom:var(--stzh-space-medium)}@media screen and (min-width: 600px){.stzh-geo-ref-data__list-search{padding-top:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__list-search{padding-top:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__list-search{padding-top:var(--stzh-space-xxlarge)}}@media screen and (min-width: 600px){.stzh-geo-ref-data__list-search{padding-bottom:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__list-search{padding-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__list-search{padding-bottom:var(--stzh-space-xxlarge)}}.stzh-geo-ref-data__filters-content{display:none}.stzh-geo-ref-data__filters-content--visible{padding:1.25rem}@media screen and (max-width: 1259px){.stzh-geo-ref-data__filters-content--visible{display:flex;gap:var(--stzh-space-xxlarge);position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--stzh-color-white);z-index:10;flex-direction:column;justify-content:space-between}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__filters-content{display:block}}.stzh-geo-ref-data__filters-apply-button{display:block}@media screen and (min-width: 1260px){.stzh-geo-ref-data__filters-apply-button{display:none}}.stzh-geo-ref-data__search{grid-area:search;width:100%}@media screen and (min-width: 1260px){.stzh-geo-ref-data__search{width:var(--teaser-list-width);padding-left:var(--stzh-space-medium);padding-right:var(--stzh-space-xsmall)}}.stzh-geo-ref-data__search input{font-size:var(--stzh-font-milli-font-size);line-height:var(--stzh-font-milli-text-line-height);letter-spacing:var(--stzh-font-curve---text-letter-spacing)}.stzh-geo-ref-data__results-toggle{grid-area:resultstoggle;flex:none;margin-bottom:var(--stzh-space-xxsmall)}@media screen and (min-width: 1260px){.stzh-geo-ref-data__results-toggle{display:none}}.stzh-geo-ref-data__results-wrapper{height:100%}@media screen and (min-width: 1260px){.stzh-geo-ref-data__results-wrapper{display:grid;column-gap:var(--stzh-grid-gutter);grid-template-areas:var(--results-grid-template-areas);grid-template-columns:minmax(0, 1fr) var(--teaser-list-width)}}@media screen and (min-width: 1260px) and (min-width: 600px){.stzh-geo-ref-data__results-wrapper{column-gap:var(--stzh-grid-gutter-small)}}@media screen and (min-width: 1260px) and (min-width: 900px){.stzh-geo-ref-data__results-wrapper{column-gap:var(--stzh-grid-gutter-medium)}}@media screen and (min-width: 1260px) and (min-width: 1260px){.stzh-geo-ref-data__results-wrapper{column-gap:var(--stzh-grid-gutter-large)}}@media screen and (min-width: 1260px) and (min-width: 1600px){.stzh-geo-ref-data__results-wrapper{column-gap:var(--stzh-grid-gutter-ultra)}}@media screen and (max-width: 1259px){.stzh-geo-ref-data__results-wrapper .inactive{visibility:hidden;height:0;position:absolute;overflow:hidden}}.stzh-geo-ref-data__results-map{grid-area:map;position:relative;height:100%}.stzh-geo-ref-data__map-controls{position:absolute;top:var(--stzh-space-small);left:var(--stzh-space-small);background-color:var(--stzh-color-white);padding:var(--stzh-space-xsmall)}.stzh-geo-ref-data__results-list{grid-area:list;padding-left:1.25rem;padding-right:var(--stzh-space-medium);padding-bottom:var(--stzh-space-xxlarge);overflow:auto}.stzh-geo-ref-data__results-list::-webkit-scrollbar{position:absolute;z-index:9999999;width:0.5rem;background-color:transparent}.stzh-geo-ref-data__results-list::-webkit-scrollbar:horizontal{height:0.5rem}.stzh-geo-ref-data__results-list::-webkit-scrollbar-track{background-color:transparent}.stzh-geo-ref-data__results-list::-webkit-scrollbar-thumb{background-color:var(--stzh-color-secondary50)}.stzh-geo-ref-data__results-list::-webkit-scrollbar-thumb:active,.stzh-geo-ref-data__results-list ::-webkit-scrollbar-thumb:hover{background-color:var(--stzh-color-secondary50)}@media screen and (min-width: 600px){.stzh-geo-ref-data__results-list{padding-left:2rem}}@media screen and (min-width: 900px){.stzh-geo-ref-data__results-list{padding-left:2.5rem}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__results-list{width:var(--teaser-list-width);padding-left:0;overflow:auto}}.stzh-geo-ref-data__results-list-heading{margin-bottom:var(--stzh-space-medium)}.stzh-geo-ref-data__teaser-list{display:grid;gap:var(--stzh-space-medium);grid-template-columns:1fr}@media screen and (min-width: 600px){.stzh-geo-ref-data__teaser-list{grid-template-columns:1fr 1fr}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__teaser-list{grid-template-columns:1fr}}.stzh-geo-ref-data__teaser-load-more{display:flex;justify-content:center;margin-top:var(--stzh-space-medium)}@media screen and (min-width: 1260px){.stzh-geo-ref-data:not(.stzh-geo-ref-data--has-filters) .stzh-geo-ref-data__meta-wrapper{display:none}}.stzh-geo-ref-data:not(.stzh-geo-ref-data--has-filters) .stzh-geo-ref-data__filters{display:none}@media screen and (min-width: 1260px){.stzh-geo-ref-data:not(.stzh-geo-ref-data--has-filters) .stzh-geo-ref-data__list-search{display:block}}.stzh-poi-teaser{display:flex;flex-direction:column-reverse;background-color:var(--stzh-color-grey10);position:relative}@media screen and (min-width: 1260px){.stzh-poi-teaser{flex-direction:row;height:11.25rem}}.stzh-poi-teaser:hover{cursor:pointer;background-color:var(--stzh-color-secondary10)}.stzh-poi-teaser-content{padding:var(--stzh-space-medium);hyphens:auto;flex-grow:1}.stzh-poi-teaser-content stzh-heading{margin-bottom:var(--stzh-space-xsmall);hyphens:auto}.stzh-poi-teaser-content stzh-text{--color:var(--stzh-color-grey80)}.stzh-poi-teaser-link{position:absolute;top:0;right:0;bottom:0;left:0}.stzh-poi-teaser__image-wrapper{position:relative}.stzh-poi-teaser__ratio{display:flex;height:100%}.stzh-poi-teaser__image-inner-wrapper{background-color:var(--stzh-color-grey20);position:absolute;inset:0;height:100%}.stzh-poi-teaser__image-inner-wrapper img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.stzh-poi-teaser-list-item{display:flex;gap:var(--stzh-space-small);margin-top:var(--stzh-space-xxsmall)}.stzh-poi-teaser-list-item stzh-icon,.stzh-poi-teaser-list-item stzh-text{--color:var(--stzh-color-grey80)}';const c="stzh-overlay-open";const p=class{constructor(a){t(this,a);this.stzhOverlayCloseClick=e(this,"stzhOverlayCloseClick",7);this._availableTags=[];this.filterResults=[];this.handleFilterToggleClick=()=>{this.isFiltersContentOpen=true};this.handleApplyFilterClick=()=>{this.isFiltersContentOpen=false};this.handleOverlayCloseClick=()=>{document.body.classList.remove(c);this.isOpen=false;const t=new URLSearchParams(window.location.search);Array.from(t.keys()).forEach((e=>{if(e.startsWith("filters[")){t.delete(e)}}));t.delete("extent[0]");t.delete("extent[1]");t.delete("extent[2]");t.delete("extent[3]");t.delete("al");const e=`${window.location.pathname}?${t.toString()}`;history.replaceState(null,"",e);this.appliedFilters=[""]};this.handleResize=async()=>{if(this.metaWrapperElement){if(this.metaWrapperElement.clientHeight){this.mapElement.style.height=`calc(100% - ${this.metaWrapperElement.clientHeight}px)`;this.resultsListElement.style.height=`calc(100% - ${this.metaWrapperElement.clientHeight}px)`}else{this.mapElement.style.height=`100%`;this.resultsListElement.style.height=`100%`}const t=await this.mapElement.getMap();t.updateSize()}};this.mediaChangeHandler=()=>{this.isViewportLarge=n("large").matches;this.isViewportMedium=n("medium").matches};this.handleFilterChange=async t=>{let e=Array.isArray(t.detail.value)?t.detail.value:[t.detail.value];if(e.length===1&&e[0]===this._resetTag.value){this.appliedFilters=[]}else{try{e=e.filter((t=>t!==""))}catch(t){}this.appliedFilters=e}setTimeout((async()=>{await this.handleFilterResults()}))};this.handleExtentVisibilityChange=async t=>{this.showOnlyResultsForCurrentExtent=t.detail.checked;await this.setVisibleMarkers()};this.handleSearchChange=async t=>{if(t.detail.value!==""){if(!this.searchIndex){return}const e=this.searchIndex.search(t.detail.value);const a=e.flatMap((t=>t.result));this.searchResults=new Set(a);this.searchActive=true}else{this.searchActive=false}await this.combineFilterAndSearchResults()};this.toggleViewMode=()=>{if(this.viewmode==="map"){this.viewmode="list"}else{this.viewmode="map"}};this.al="";this.heading="";this.mapDataUrl="";this.poiDataUrl="";this.baseUrlOverride="https://www.stadt-zuerich.ch";this.availableTags=[];this.resetTag=undefined;this.searchIndexFields=["title","poiname","street","zip","description"];this.searchIndexIdField="poiid";this.filterActive=false;this.searchActive=false;this.showOnlyResultsForCurrentExtent=true;this.finalResults=[];this.finalResultsPaginatedList=[];this.finalResultsPaginationOffset=0;this.viewmode="map";this.isViewportLarge=undefined;this.isViewportMedium=undefined;this.isInitialized=undefined;this.isOpen=undefined;this.isLoading=undefined;this.numberOfItemsToLoad=20;this.canLoadMore=undefined;this.appliedFilters=[""];this.isFiltersContentOpen=false}availableTagsWatcher(t){if(!t){this._availableTags=[]}else if(typeof t==="string"){try{this._availableTags=JSON.parse(t)}catch(t){this._availableTags=[]}}else{this._availableTags=t}}resetTagWatcher(t){if(!t){this._resetTag=undefined}else if(typeof t==="string"){try{this._resetTag=JSON.parse(t)}catch(t){this._resetTag=undefined}}else{this._resetTag=t}}applyFiltersFromUrl(){const t=new URLSearchParams(window.location.search);const e=Array.from(t.entries()).filter((([t,e])=>t.startsWith("filters[")&&e==="true")).map((([t])=>t.slice(8,-1)));if(e.length){this.appliedFilters=e;this.updateUrlWithFilters();this.handleFilterChange({detail:{value:e}})}}async loadMapData(){if(!this.mapDataUrl){return[]}try{const t=await fetch(this.mapDataUrl);const e=await t.text();const a=(new DOMParser).parseFromString(e,"text/xml");return Array.from(a.querySelectorAll("featureMember")).map((t=>{var e,a;const s=(e=t.querySelector("pos"))===null||e===void 0?void 0:e.textContent;const i=(a=t.querySelector("poi_id"))===null||a===void 0?void 0:a.textContent;const[r,h]=(s===null||s===void 0?void 0:s.split(" "))||[];return{poiid:i,lat:r,lon:h}}))}catch(t){this.toastbarElement.toast("Es ist ein Fehler beim Beziehen der Kartendaten aufgetreten.",{type:"error"}).catch()}}async loadPoiData(){if(!this.poiDataUrl){return[]}try{const t=await fetch(this.poiDataUrl,{credentials:"include"});const e=await t.json();return e.items}catch(t){this.toastbarElement.toast("Beim Laden der POI-Daten ist ein Fehler aufgetreten.",{type:"error"}).catch()}}combineData(t,e){if(!t.length||!e.length){return[]}let a;let s;if(t.length<e.length){a=t;s=e}else{a=e;s=t}return a.map((t=>{const e=s.find((e=>e.poiid===t.poiid));return Object.assign(Object.assign({},t),e)})).sort(((t,e)=>{try{return t.title.localeCompare(e.title)}catch(t){return 1}}))}enhanceTags(t,e){return t.sort(((t,e)=>{try{t.label.localeCompare(e.label)}catch(t){return 1}})).map((t=>{const a=e.filter((e=>{try{return e.tags.includes(t.value)}catch(t){return false}})).length.toString();return Object.assign(Object.assign({},t),{counter:a,variant:"filter",size:"large"})}))}buildSearchIndex(t){if(!t.length){return}this.searchIndex=new h.Document({tokenize:"forward",matcher:{"[äà]":"a","[öó]":"o","[üûúù]":"u","[éè]":"e"},document:{id:this.searchIndexIdField,index:this.searchIndexFields}});t.forEach((t=>{this.searchIndex.add(t)}))}async mapMovedPannedOrZoomed(){await this.setVisibleMarkers()}async setVisibleMarkers(){if(this.combinedData){const t=await this.mapElement.getVisibleMarkers();if(this.showOnlyResultsForCurrentExtent){this.finalResults=this.combinedData.filter((e=>t.find((t=>t.getId()===e.poiid))))}else{this.finalResults=this.combinedData}this.setEnhancedTags();await this.setPaginatedResults()}}async setPaginatedResults(){this.finalResultsPaginatedList=this.finalResults.slice(0,this.numberOfItemsToLoad);this.canLoadMore=this.finalResults.length>this.numberOfItemsToLoad}async checkDirectOpenViaUrl(){const t=new URLSearchParams(window.location.search);const e=t.get("al");if(e&&e===this.al){await this.initializeAndOpenMap()}}connectedCallback(){this.mediaChangeHandler();d(this.mediaChangeHandler);this.resizeObserver=new ResizeObserver(this.handleResize);this.resizeObserver.observe(this.element);this.availableTagsWatcher(this.availableTags);this.resetTagWatcher(this.resetTag);this.checkDirectOpenViaUrl()}disconnectedCallback(){o(this.mediaChangeHandler);if(this.resizeObserver){this.resizeObserver.disconnect()}}async initializeAndOpenMap(){document.body.classList.add(c);this.isLoading=true;this.isOpen=true;const t=new URLSearchParams(window.location.search);if(!t.has("al")){t.set("al",this.al);const e=`${window.location.pathname}?${t.toString()}`;history.replaceState(null,"",e)}try{this.combinedData=this.combineData(await this.loadMapData(),await this.loadPoiData());this.setEnhancedTags();this.applyFiltersFromUrl();this.buildSearchIndex(this.combinedData);this.finalResults=this.combinedData;await this.setVisibleMarkers();await this.combineFilterAndSearchResults();await this.handleResize();const t=new URLSearchParams(window.location.search);const e=[parseFloat(t.get("extent[0]")),parseFloat(t.get("extent[1]")),parseFloat(t.get("extent[2]")),parseFloat(t.get("extent[3]"))];if(!e.length||isNaN(e[0])||isNaN(e[1])||isNaN(e[2])||isNaN(e[3])){await this.mapElement.updateViewToFitMarkers()}await this.handleResize();this.isInitialized=true}catch(t){this.toastbarElement.toast("Beim Laden der Karte ist ein Fehler aufgetreten.",{type:"error"}).catch()}setTimeout((()=>{this.isLoading=false}),500)}updateUrlWithFilters(){const t=new URLSearchParams(window.location.search);Array.from(t.keys()).forEach((e=>{if(e.startsWith("filters[")){t.delete(e)}}));this.appliedFilters.forEach((e=>{t.set(`filters[${e}]`,"true")}));const e=`${window.location.pathname}?${t.toString()}`;history.replaceState(null,"",e)}setEnhancedTags(){this.enhancedTags=this.enhanceTags(this._availableTags,this.finalResults);const t=Object.assign(Object.assign({},this._resetTag),{counter:this.finalResults.length.toString(),size:"large"});if(this._resetTag){this.enhancedTags.unshift(t)}}async handleFilterResults(){if(this.appliedFilters.length!==0){this.filterResults=this.finalResults.filter((t=>t.tags&&t.tags.some((t=>this.appliedFilters.includes(t)))));this.filterActive=true}else{this.filterActive=false;this.filterResults=this.finalResults}this.updateUrlWithFilters();await this.combineFilterAndSearchResults()}async combineFilterAndSearchResults(){if(this.filterActive&&!this.searchActive){this.finalResults=this.filterResults}else if(!this.filterActive&&this.searchActive){this.finalResults=Array.from(this.searchResults).map((t=>this.combinedData.find((e=>e.poiid===t))))}else if(this.filterActive&&this.searchActive){this.finalResults=this.filterResults.filter((t=>this.searchResults.has(t.poiid)))}else{this.finalResults=this.combinedData}this.finalResultsPaginatedList=this.finalResults.slice(0,this.numberOfItemsToLoad);await this.replaceMapMarkers(this.finalResults)}loadMore(){this.finalResultsPaginationOffset++;const t=this.finalResults.slice(this.finalResultsPaginationOffset*this.numberOfItemsToLoad,this.finalResultsPaginationOffset*this.numberOfItemsToLoad+this.numberOfItemsToLoad);if(!t||!t.length||t.length<this.numberOfItemsToLoad){this.canLoadMore=false}this.finalResultsPaginatedList=this.finalResultsPaginatedList.concat(t)}async replaceMapMarkers(t){await this.mapElement.removeAllIconMarkers();t.filter((t=>!!t.lat&&!!t.lon)).forEach((t=>{this.mapElement.addIconMarker([parseFloat(t.lat),parseFloat(t.lon)],{id:t.poiid,title:t.title,text:t.description,data:t.data,imageUri:`${this.baseUrlOverride}${t.image}`,href:`${this.baseUrlOverride}${t.path}`}).catch()}));if(!this.showOnlyResultsForCurrentExtent){this.mapElement.updateViewToFitMarkers().catch()}}async handlePoiTeaserMouseEnter(t){const e=await this.mapElement.findMarkerById(t.poiid);if(e){await this.mapElement.setIconMarkerActive(e)}}async handlePoiTeaserMouseLeave(t){const e=await this.mapElement.findMarkerById(t.poiid);if(e){await this.mapElement.setIconMarkerInactive(e)}}render(){const t={"stzh-geo-ref-data":true,"stzh-geo-ref-data--is-loading":this.isLoading,"stzh-geo-ref-data--is-open":this.isOpen,"stzh-geo-ref-data--has-filters":this._availableTags.length>0};return a(i,null,a("stzh-toastbar",{ref:t=>this.toastbarElement=t}),a("div",{class:"stzh-geo-ref-data__trigger",onClick:()=>this.initializeAndOpenMap()},a("slot",{name:"trigger"})),a("stzh-overlay",{open:this.isLoading},a("stzh-loader",{label:"Daten werden geladen..."})),a("div",{class:t},a("div",{class:"stzh-geo-ref-data__header-wrapper"},a("stzh-header",{class:"stzh-geo-ref-data__header","hide-metabar":true,sticky:"disabled"},a("slot",{name:"logo",slot:"logo"})),a("div",{class:"stzh-geo-ref-data__heading stzh-geo-ref-data--content-padding"},a("stzh-heading",{class:"stzh-geo-ref-data__heading-heading",curve:"h2"},this.heading),a("stzh-button",{class:"stzh-geo-ref-data__overlay-close",icon:"close",iconOnly:true,size:"small",variant:"tertiary",onClick:this.handleOverlayCloseClick}))),a("div",{class:"stzh-geo-ref-data__content"},a("div",{class:"stzh-geo-ref-data__meta-wrapper stzh-geo-ref-data--content-padding",ref:t=>this.metaWrapperElement=t},a("div",{class:"stzh-geo-ref-data__filters"},this._availableTags.length>0&&a("div",{class:"stzh-geo-ref-data__filters-toggle"},a("stzh-chip",{label:this.isViewportMedium?"Filter":"",variant:"filter",icon:"filtering",onStzhClick:this.handleFilterToggleClick})),a("div",{class:{"stzh-geo-ref-data__filters-content":true,"stzh-geo-ref-data__filters-content--visible":!this.isViewportLarge&&this.isFiltersContentOpen}},a("stzh-chipselect",{"label-hidden":true,label:"Tags",data:this.enhancedTags,onStzhChange:this.handleFilterChange,multiple:true,defaultValue:this.appliedFilters,value:this.appliedFilters}),a("div",{class:"stzh-geo-ref-data__filters-apply-button"},a("stzh-button",{size:"small",fullwidth:true,onStzhClick:this.handleApplyFilterClick},"Anwenden")))),a("div",{class:"stzh-geo-ref-data__search"},a("stzh-input",{name:"stzh-datatable-search",onStzhChange:this.handleSearchChange,hideOptional:true,label:"Suche",type:"search"})),a("div",{class:"stzh-geo-ref-data__results-toggle"},a("stzh-chip",{onStzhClick:this.toggleViewMode,label:this.viewmode==="map"?"Liste":"Karte",icon:this.viewmode==="map"?"bulleted-list":"map",variant:"filter"}))),a("div",{class:"stzh-geo-ref-data__results-wrapper"},a("div",{class:`stzh-geo-ref-data__results-map ${this.viewmode==="map"?"active":"inactive"}`},a("stzh-olmap",{class:"stzh-geo-ref-data__ol-map",centerMarker:false,writeExtentToUrlEnabled:this.isOpen,ref:t=>this.mapElement=t}),a("div",{class:"stzh-geo-ref-data__map-controls"},a("stzh-checkbox",{label:"Treffer an Kartenausschnitt anpassen",checked:this.showOnlyResultsForCurrentExtent,hideOptional:true,onStzhChange:this.handleExtentVisibilityChange}))),a("div",{class:`stzh-geo-ref-data__results-list ${this.viewmode==="list"?"active":"inactive"}`,ref:t=>this.resultsListElement=t},this.finalResults&&a(s,null,a("div",{class:"stzh-geo-ref-data__list-search"},a("stzh-input",{name:"stzh-datatable-search",onStzhChange:this.handleSearchChange,hideOptional:true,label:"Suche",type:"search"})),a("stzh-text",{class:"stzh-geo-ref-data__results-list-heading"},this.finalResults.length," Treffer"),a("div",{class:"stzh-geo-ref-data__teaser-list"},this.finalResultsPaginatedList.map((t=>a("div",{class:"stzh-poi-teaser",onMouseEnter:()=>this.handlePoiTeaserMouseEnter(t),onMouseLeave:()=>this.handlePoiTeaserMouseLeave(t)},a("a",{class:"stzh-poi-teaser-link",href:this.baseUrlOverride+t.path}),a("div",{class:"stzh-poi-teaser-content"},a("stzh-heading",{curve:"lead"},t.poiname),t.description&&a("stzh-text",{size:"micro"},t.description),t.data&&t.data.length>0&&t.data.map((t=>a("div",{class:"stzh-poi-teaser-list-item"},a("stzh-icon",{name:t.icon}),a("stzh-text",{size:"micro"},t.text))))),t.image&&a("div",{class:"stzh-poi-teaser__image-wrapper"},a("stzh-ratio",{ratio:"2:1","ratio-large":"5:4","ratio-ultra":"1:1",portrait:this.isViewportLarge,class:"stzh-poi-teaser__ratio"}),a("div",{class:"stzh-poi-teaser__image-inner-wrapper"},a("img",{src:this.baseUrlOverride+t.image,alt:"Foto von "+t.poiname}))))))),this.canLoadMore&&a("div",{class:"stzh-geo-ref-data__teaser-load-more"},a("stzh-button",{onStzhClick:()=>this.loadMore()},"Weitere laden"))))))))}get element(){return r(this)}static get watchers(){return{availableTags:["availableTagsWatcher"],resetTag:["resetTagWatcher"]}}};p.style=l;export{p as stzh_geo_ref_data};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as e,h as a,F as s,a as i,g as r}from"./p-c7bfac7a.js";import{f as h}from"./p-6cc8241c.js";import{m as n,a as d,r as o}from"./p-10e2901a.js";import"./p-a6d4a8b1.js";const l=':host{font-family:var(--stzh-font-family-medium);font-weight:var(--stzh-font-weight-medium);font-style:var(--stzh-font-style-medium);color:var(--stzh-base-color);box-sizing:border-box;display:block;}:host[hidden],:host[stzh-hidden]{display:none}:host::selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}:host *,:host *::before,:host *::after{box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness);-webkit-text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink);text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink)}:host .has-focus{outline:var(--stzh-flyingfocus-color) solid 0.125rem;outline-offset:0.125rem}:host .stzh-fylingfocus-focused{outline-style:none !important}:host .stzh-fylingfocus-focused::-moz-focus-inner{border:0 !important}:host{--teaser-list-width:30rem;--meta-grid-template-areas:"filters search";--results-grid-template-areas:"map list"}.stzh-geo-ref-data{position:fixed;top:0;right:0;bottom:0;left:0;z-index:899;flex-direction:column;transition:opacity ease 0.2s;background-color:var(--stzh-color-white);display:none;opacity:0;visibility:hidden;pointer-events:none;}.stzh-geo-ref-data--is-open{display:flex;opacity:1;visibility:visible;pointer-events:inherit}.stzh-geo-ref-data__header{display:none}@media screen and (min-width: 1260px){.stzh-geo-ref-data__header{display:inherit}}.stzh-geo-ref-data__content{overflow:hidden;height:100%}.stzh-geo-ref-data--content-padding{padding-left:1.25rem;padding-right:var(--stzh-space-medium)}@media screen and (min-width: 600px){.stzh-geo-ref-data--content-padding{padding-left:2rem}}@media screen and (min-width: 900px){.stzh-geo-ref-data--content-padding{padding-left:2.5rem}}@media screen and (min-width: 1260px){.stzh-geo-ref-data--content-padding{padding-left:2rem}}.stzh-geo-ref-data__heading{display:flex;align-items:center;background-color:var(--stzh-color-secondary20);padding-top:var(--stzh-space-medium);padding-bottom:var(--stzh-space-medium)}@media screen and (min-width: 600px){.stzh-geo-ref-data__heading{padding-top:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__heading{padding-top:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__heading{padding-top:var(--stzh-space-xxlarge)}}@media screen and (min-width: 600px){.stzh-geo-ref-data__heading{padding-bottom:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__heading{padding-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__heading{padding-bottom:var(--stzh-space-xxlarge)}}.stzh-geo-ref-data__meta-wrapper{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--stzh-space-large);padding-top:var(--stzh-space-xsmall);padding-bottom:var(--stzh-space-xsmall)}@media screen and (max-width: 1259px){.stzh-geo-ref-data__meta-wrapper{padding-top:var(--stzh-space-medium);padding-bottom:var(--stzh-space-medium)}}@media screen and (min-width: 600px){.stzh-geo-ref-data__meta-wrapper{padding-top:var(--stzh-space-small)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__meta-wrapper{padding-top:var(--stzh-space-medium)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__meta-wrapper{padding-top:var(--stzh-space-xlarge)}}@media screen and (min-width: 600px){.stzh-geo-ref-data__meta-wrapper{padding-bottom:var(--stzh-space-small)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__meta-wrapper{padding-bottom:var(--stzh-space-medium)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__meta-wrapper{padding-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__meta-wrapper{display:grid;column-gap:var(--stzh-grid-gutter);grid-template-areas:var(--meta-grid-template-areas);grid-template-columns:1fr var(--teaser-list-width)}}@media screen and (min-width: 1260px) and (min-width: 600px){.stzh-geo-ref-data__meta-wrapper{column-gap:var(--stzh-grid-gutter-small)}}@media screen and (min-width: 1260px) and (min-width: 900px){.stzh-geo-ref-data__meta-wrapper{column-gap:var(--stzh-grid-gutter-medium)}}@media screen and (min-width: 1260px) and (min-width: 1260px){.stzh-geo-ref-data__meta-wrapper{column-gap:var(--stzh-grid-gutter-large)}}@media screen and (min-width: 1260px) and (min-width: 1600px){.stzh-geo-ref-data__meta-wrapper{column-gap:var(--stzh-grid-gutter-ultra)}}.stzh-geo-ref-data__filters{grid-area:filters;flex:none;margin-bottom:var(--stzh-space-xxsmall)}@media screen and (min-width: 1260px){.stzh-geo-ref-data__filters-toggle{display:none}}@media screen and (max-width: 899px){.stzh-geo-ref-data__filters-toggle stzh-chip{--icon-gap:0}}.stzh-geo-ref-data__list-search{display:none;padding-top:var(--stzh-space-medium);padding-bottom:var(--stzh-space-medium)}@media screen and (min-width: 600px){.stzh-geo-ref-data__list-search{padding-top:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__list-search{padding-top:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__list-search{padding-top:var(--stzh-space-xxlarge)}}@media screen and (min-width: 600px){.stzh-geo-ref-data__list-search{padding-bottom:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-geo-ref-data__list-search{padding-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__list-search{padding-bottom:var(--stzh-space-xxlarge)}}.stzh-geo-ref-data__filters-content{display:none}.stzh-geo-ref-data__filters-content--visible{padding:1.25rem}@media screen and (max-width: 1259px){.stzh-geo-ref-data__filters-content--visible{display:flex;gap:var(--stzh-space-xxlarge);position:fixed;top:0;right:0;bottom:0;left:0;background-color:var(--stzh-color-white);z-index:10;flex-direction:column;justify-content:space-between}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__filters-content{display:block}}.stzh-geo-ref-data__filters-apply-button{display:block}@media screen and (min-width: 1260px){.stzh-geo-ref-data__filters-apply-button{display:none}}.stzh-geo-ref-data__search{grid-area:search;width:100%}@media screen and (min-width: 1260px){.stzh-geo-ref-data__search{width:var(--teaser-list-width);padding-left:var(--stzh-space-medium);padding-right:var(--stzh-space-xsmall)}}.stzh-geo-ref-data__search input{font-size:var(--stzh-font-milli-font-size);line-height:var(--stzh-font-milli-text-line-height);letter-spacing:var(--stzh-font-curve---text-letter-spacing)}.stzh-geo-ref-data__results-toggle{grid-area:resultstoggle;flex:none;margin-bottom:var(--stzh-space-xxsmall)}@media screen and (min-width: 1260px){.stzh-geo-ref-data__results-toggle{display:none}}.stzh-geo-ref-data__results-wrapper{height:100%}@media screen and (min-width: 1260px){.stzh-geo-ref-data__results-wrapper{display:grid;column-gap:var(--stzh-grid-gutter);grid-template-areas:var(--results-grid-template-areas);grid-template-columns:minmax(0, 1fr) var(--teaser-list-width)}}@media screen and (min-width: 1260px) and (min-width: 600px){.stzh-geo-ref-data__results-wrapper{column-gap:var(--stzh-grid-gutter-small)}}@media screen and (min-width: 1260px) and (min-width: 900px){.stzh-geo-ref-data__results-wrapper{column-gap:var(--stzh-grid-gutter-medium)}}@media screen and (min-width: 1260px) and (min-width: 1260px){.stzh-geo-ref-data__results-wrapper{column-gap:var(--stzh-grid-gutter-large)}}@media screen and (min-width: 1260px) and (min-width: 1600px){.stzh-geo-ref-data__results-wrapper{column-gap:var(--stzh-grid-gutter-ultra)}}@media screen and (max-width: 1259px){.stzh-geo-ref-data__results-wrapper .inactive{visibility:hidden;height:0;position:absolute;overflow:hidden}}.stzh-geo-ref-data__results-map{grid-area:map;position:relative;height:100%}.stzh-geo-ref-data__map-controls{position:absolute;top:var(--stzh-space-small);left:var(--stzh-space-small);background-color:var(--stzh-color-white);padding:var(--stzh-space-xsmall)}.stzh-geo-ref-data__results-list{grid-area:list;padding-left:1.25rem;padding-right:var(--stzh-space-medium);padding-bottom:var(--stzh-space-xxlarge);overflow:auto}.stzh-geo-ref-data__results-list::-webkit-scrollbar{position:absolute;z-index:9999999;width:0.5rem;background-color:transparent}.stzh-geo-ref-data__results-list::-webkit-scrollbar:horizontal{height:0.5rem}.stzh-geo-ref-data__results-list::-webkit-scrollbar-track{background-color:transparent}.stzh-geo-ref-data__results-list::-webkit-scrollbar-thumb{background-color:var(--stzh-color-secondary50)}.stzh-geo-ref-data__results-list::-webkit-scrollbar-thumb:active,.stzh-geo-ref-data__results-list ::-webkit-scrollbar-thumb:hover{background-color:var(--stzh-color-secondary50)}@media screen and (min-width: 600px){.stzh-geo-ref-data__results-list{padding-left:2rem}}@media screen and (min-width: 900px){.stzh-geo-ref-data__results-list{padding-left:2.5rem}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__results-list{width:var(--teaser-list-width);padding-left:0;overflow:auto}}.stzh-geo-ref-data__results-list-heading{margin-bottom:var(--stzh-space-medium)}.stzh-geo-ref-data__teaser-list{display:grid;gap:var(--stzh-space-medium);grid-template-columns:1fr}@media screen and (min-width: 600px){.stzh-geo-ref-data__teaser-list{grid-template-columns:1fr 1fr}}@media screen and (min-width: 1260px){.stzh-geo-ref-data__teaser-list{grid-template-columns:1fr}}.stzh-geo-ref-data__teaser-load-more{display:flex;justify-content:center;margin-top:var(--stzh-space-medium)}@media screen and (min-width: 1260px){.stzh-geo-ref-data:not(.stzh-geo-ref-data--has-filters) .stzh-geo-ref-data__meta-wrapper{display:none}}.stzh-geo-ref-data:not(.stzh-geo-ref-data--has-filters) .stzh-geo-ref-data__filters{display:none}@media screen and (min-width: 1260px){.stzh-geo-ref-data:not(.stzh-geo-ref-data--has-filters) .stzh-geo-ref-data__list-search{display:block}}.stzh-poi-teaser{display:flex;flex-direction:column-reverse;background-color:var(--stzh-color-grey10);position:relative}@media screen and (min-width: 1260px){.stzh-poi-teaser{flex-direction:row;height:11.25rem}}.stzh-poi-teaser:hover{cursor:pointer;background-color:var(--stzh-color-secondary10)}.stzh-poi-teaser-content{padding:var(--stzh-space-medium);hyphens:auto;flex-grow:1}.stzh-poi-teaser-content stzh-heading{margin-bottom:var(--stzh-space-xsmall);hyphens:auto}.stzh-poi-teaser-content stzh-text{--color:var(--stzh-color-grey80)}.stzh-poi-teaser-link{position:absolute;top:0;right:0;bottom:0;left:0}.stzh-poi-teaser__image-wrapper{position:relative}.stzh-poi-teaser__ratio{display:flex;height:100%}.stzh-poi-teaser__image-inner-wrapper{background-color:var(--stzh-color-grey20);position:absolute;inset:0;height:100%}.stzh-poi-teaser__image-inner-wrapper img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.stzh-poi-teaser-list-item{display:flex;gap:var(--stzh-space-small);margin-top:var(--stzh-space-xxsmall)}.stzh-poi-teaser-list-item stzh-icon,.stzh-poi-teaser-list-item stzh-text{--color:var(--stzh-color-grey80)}';const c="stzh-overlay-open";const p=class{constructor(a){t(this,a);this.stzhOverlayCloseClick=e(this,"stzhOverlayCloseClick",7);this._availableTags=[];this.filterResults=[];this.handleFilterToggleClick=()=>{this.isFiltersContentOpen=true};this.handleApplyFilterClick=()=>{this.isFiltersContentOpen=false};this.handleOverlayCloseClick=()=>{document.body.classList.remove(c);this.isOpen=false;const t=new URLSearchParams(window.location.search);Array.from(t.keys()).forEach((e=>{if(e.startsWith("filters[")){t.delete(e)}}));t.delete("extent[0]");t.delete("extent[1]");t.delete("extent[2]");t.delete("extent[3]");t.delete("al");const e=`${window.location.pathname}?${t.toString()}`;history.replaceState(null,"",e);this.appliedFilters=[""]};this.handleResize=async()=>{if(this.metaWrapperElement){if(this.metaWrapperElement.clientHeight){this.mapElement.style.height=`calc(100% - ${this.metaWrapperElement.clientHeight}px)`;this.resultsListElement.style.height=`calc(100% - ${this.metaWrapperElement.clientHeight}px)`}else{this.mapElement.style.height=`100%`;this.resultsListElement.style.height=`100%`}const t=await this.mapElement.getMap();t.updateSize()}};this.mediaChangeHandler=()=>{this.isViewportLarge=n("large").matches;this.isViewportMedium=n("medium").matches};this.handleFilterChange=async t=>{let e=Array.isArray(t.detail.value)?t.detail.value:[t.detail.value];if(e.length===1&&e[0]===this._resetTag.value){this.appliedFilters=[]}else{try{e=e.filter((t=>t!==""))}catch(t){}this.appliedFilters=e}setTimeout((async()=>{await this.handleFilterResults()}))};this.handleExtentVisibilityChange=async t=>{this.showOnlyResultsForCurrentExtent=t.detail.checked;await this.setVisibleMarkers()};this.handleSearchChange=async t=>{if(t.detail.value!==""){if(!this.searchIndex){return}const e=this.searchIndex.search(t.detail.value);const a=e.flatMap((t=>t.result));this.searchResults=new Set(a);this.searchActive=true}else{this.searchActive=false}await this.combineFilterAndSearchResults()};this.toggleViewMode=()=>{if(this.viewmode==="map"){this.viewmode="list"}else{this.viewmode="map"}};this.al="";this.heading="";this.mapDataUrl="";this.poiDataUrl="";this.baseUrlOverride="https://www.stadt-zuerich.ch";this.availableTags=[];this.resetTag=undefined;this.searchIndexFields=["title","poiname","street","zip","description"];this.searchIndexIdField="poiid";this.filterActive=false;this.searchActive=false;this.showOnlyResultsForCurrentExtent=true;this.finalResults=[];this.finalResultsPaginatedList=[];this.finalResultsPaginationOffset=0;this.viewmode="map";this.isViewportLarge=undefined;this.isViewportMedium=undefined;this.isInitialized=undefined;this.isOpen=undefined;this.isLoading=undefined;this.numberOfItemsToLoad=20;this.canLoadMore=undefined;this.appliedFilters=[""];this.isFiltersContentOpen=false}availableTagsWatcher(t){if(!t){this._availableTags=[]}else if(typeof t==="string"){try{this._availableTags=JSON.parse(t)}catch(t){this._availableTags=[]}}else{this._availableTags=t}}resetTagWatcher(t){if(!t){this._resetTag=undefined}else if(typeof t==="string"){try{this._resetTag=JSON.parse(t)}catch(t){this._resetTag=undefined}}else{this._resetTag=t}}applyFiltersFromUrl(){const t=new URLSearchParams(window.location.search);const e=Array.from(t.entries()).filter((([t,e])=>t.startsWith("filters[")&&e==="true")).map((([t])=>t.slice(8,-1)));if(e.length){this.appliedFilters=e;this.updateUrlWithFilters();this.handleFilterChange({detail:{value:e}})}}async loadMapData(){if(!this.mapDataUrl){return[]}try{const t=await fetch(this.mapDataUrl);const e=await t.text();const a=(new DOMParser).parseFromString(e,"text/xml");return Array.from(a.querySelectorAll("featureMember")).map((t=>{var e,a;const s=(e=t.querySelector("pos"))===null||e===void 0?void 0:e.textContent;const i=(a=t.querySelector("poi_id"))===null||a===void 0?void 0:a.textContent;const[r,h]=(s===null||s===void 0?void 0:s.split(" "))||[];return{poiid:i,lat:r,lon:h}}))}catch(t){this.toastbarElement.toast("Es ist ein Fehler beim Beziehen der Kartendaten aufgetreten.",{type:"error"}).catch()}}async loadPoiData(){if(!this.poiDataUrl){return[]}try{const t=await fetch(this.poiDataUrl,{credentials:"include"});const e=await t.json();return e.items}catch(t){this.toastbarElement.toast("Beim Laden der POI-Daten ist ein Fehler aufgetreten.",{type:"error"}).catch()}}combineData(t,e){if(!t.length||!e.length){return[]}let a;let s;if(t.length<e.length){a=t;s=e}else{a=e;s=t}return a.map((t=>{const e=s.find((e=>e.poiid===t.poiid));return Object.assign(Object.assign({},t),e)})).sort(((t,e)=>{try{return t.title.localeCompare(e.title)}catch(t){return 1}}))}enhanceTags(t,e){return t.sort(((t,e)=>{try{t.label.localeCompare(e.label)}catch(t){return 1}})).map((t=>{const a=e.filter((e=>{try{return e.tags.includes(t.value)}catch(t){return false}})).length.toString();return Object.assign(Object.assign({},t),{counter:a,variant:"filter"})}))}buildSearchIndex(t){if(!t.length){return}this.searchIndex=new h.Document({tokenize:"forward",matcher:{"[äà]":"a","[öó]":"o","[üûúù]":"u","[éè]":"e"},document:{id:this.searchIndexIdField,index:this.searchIndexFields}});t.forEach((t=>{this.searchIndex.add(t)}))}async mapMovedPannedOrZoomed(){await this.setVisibleMarkers()}async setVisibleMarkers(){if(this.combinedData){const t=await this.mapElement.getVisibleMarkers();if(this.showOnlyResultsForCurrentExtent){this.finalResults=this.combinedData.filter((e=>t.find((t=>t.getId()===e.poiid))))}else{this.finalResults=this.combinedData}this.setEnhancedTags();await this.setPaginatedResults()}}async setPaginatedResults(){this.finalResultsPaginatedList=this.finalResults.slice(0,this.numberOfItemsToLoad);this.canLoadMore=this.finalResults.length>this.numberOfItemsToLoad}async checkDirectOpenViaUrl(){const t=new URLSearchParams(window.location.search);const e=t.get("al");if(e&&e===this.al){await this.initializeAndOpenMap()}}connectedCallback(){this.mediaChangeHandler();d(this.mediaChangeHandler);this.resizeObserver=new ResizeObserver(this.handleResize);this.resizeObserver.observe(this.element);this.availableTagsWatcher(this.availableTags);this.resetTagWatcher(this.resetTag);this.checkDirectOpenViaUrl()}disconnectedCallback(){o(this.mediaChangeHandler);if(this.resizeObserver){this.resizeObserver.disconnect()}}async initializeAndOpenMap(){document.body.classList.add(c);this.isLoading=true;this.isOpen=true;const t=new URLSearchParams(window.location.search);if(!t.has("al")){t.set("al",this.al);const e=`${window.location.pathname}?${t.toString()}`;history.replaceState(null,"",e)}try{this.combinedData=this.combineData(await this.loadMapData(),await this.loadPoiData());this.setEnhancedTags();this.applyFiltersFromUrl();this.buildSearchIndex(this.combinedData);this.finalResults=this.combinedData;await this.setVisibleMarkers();await this.combineFilterAndSearchResults();await this.handleResize();const t=new URLSearchParams(window.location.search);const e=[parseFloat(t.get("extent[0]")),parseFloat(t.get("extent[1]")),parseFloat(t.get("extent[2]")),parseFloat(t.get("extent[3]"))];if(!e.length||isNaN(e[0])||isNaN(e[1])||isNaN(e[2])||isNaN(e[3])){await this.mapElement.updateViewToFitMarkers()}await this.handleResize();this.isInitialized=true}catch(t){this.toastbarElement.toast("Beim Laden der Karte ist ein Fehler aufgetreten.",{type:"error"}).catch()}setTimeout((()=>{this.isLoading=false}),500)}updateUrlWithFilters(){const t=new URLSearchParams(window.location.search);Array.from(t.keys()).forEach((e=>{if(e.startsWith("filters[")){t.delete(e)}}));this.appliedFilters.forEach((e=>{t.set(`filters[${e}]`,"true")}));const e=`${window.location.pathname}?${t.toString()}`;history.replaceState(null,"",e)}setEnhancedTags(){this.enhancedTags=this.enhanceTags(this._availableTags,this.finalResults);const t=Object.assign(Object.assign({},this._resetTag),{counter:this.finalResults.length.toString()});if(this._resetTag){this.enhancedTags.unshift(t)}}async handleFilterResults(){if(this.appliedFilters.length!==0){this.filterResults=this.finalResults.filter((t=>t.tags&&t.tags.some((t=>this.appliedFilters.includes(t)))));this.filterActive=true}else{this.filterActive=false;this.filterResults=this.finalResults}this.updateUrlWithFilters();await this.combineFilterAndSearchResults()}async combineFilterAndSearchResults(){if(this.filterActive&&!this.searchActive){this.finalResults=this.filterResults}else if(!this.filterActive&&this.searchActive){this.finalResults=Array.from(this.searchResults).map((t=>this.combinedData.find((e=>e.poiid===t))))}else if(this.filterActive&&this.searchActive){this.finalResults=this.filterResults.filter((t=>this.searchResults.has(t.poiid)))}else{this.finalResults=this.combinedData}this.finalResultsPaginatedList=this.finalResults.slice(0,this.numberOfItemsToLoad);await this.replaceMapMarkers(this.finalResults)}loadMore(){this.finalResultsPaginationOffset++;const t=this.finalResults.slice(this.finalResultsPaginationOffset*this.numberOfItemsToLoad,this.finalResultsPaginationOffset*this.numberOfItemsToLoad+this.numberOfItemsToLoad);if(!t||!t.length||t.length<this.numberOfItemsToLoad){this.canLoadMore=false}this.finalResultsPaginatedList=this.finalResultsPaginatedList.concat(t)}async replaceMapMarkers(t){await this.mapElement.removeAllIconMarkers();t.filter((t=>!!t.lat&&!!t.lon)).forEach((t=>{this.mapElement.addIconMarker([parseFloat(t.lat),parseFloat(t.lon)],{id:t.poiid,title:t.title,text:t.description,data:t.data,imageUri:`${this.baseUrlOverride}${t.image}`,href:`${this.baseUrlOverride}${t.path}`}).catch()}));if(!this.showOnlyResultsForCurrentExtent){this.mapElement.updateViewToFitMarkers().catch()}}async handlePoiTeaserMouseEnter(t){const e=await this.mapElement.findMarkerById(t.poiid);if(e){await this.mapElement.setIconMarkerActive(e)}}async handlePoiTeaserMouseLeave(t){const e=await this.mapElement.findMarkerById(t.poiid);if(e){await this.mapElement.setIconMarkerInactive(e)}}render(){const t={"stzh-geo-ref-data":true,"stzh-geo-ref-data--is-loading":this.isLoading,"stzh-geo-ref-data--is-open":this.isOpen,"stzh-geo-ref-data--has-filters":this._availableTags.length>0};return a(i,null,a("stzh-toastbar",{ref:t=>this.toastbarElement=t}),a("div",{class:"stzh-geo-ref-data__trigger",onClick:()=>this.initializeAndOpenMap()},a("slot",{name:"trigger"})),a("stzh-overlay",{open:this.isLoading},a("stzh-loader",{label:"Daten werden geladen..."})),a("div",{class:t},a("div",{class:"stzh-geo-ref-data__header-wrapper"},a("stzh-header",{class:"stzh-geo-ref-data__header","hide-metabar":true,sticky:"disabled"},a("slot",{name:"logo",slot:"logo"})),a("div",{class:"stzh-geo-ref-data__heading stzh-geo-ref-data--content-padding"},a("stzh-heading",{class:"stzh-geo-ref-data__heading-heading",curve:"h2"},this.heading),a("stzh-button",{class:"stzh-geo-ref-data__overlay-close",icon:"close",iconOnly:true,size:"small",variant:"tertiary",onClick:this.handleOverlayCloseClick}))),a("div",{class:"stzh-geo-ref-data__content"},a("div",{class:"stzh-geo-ref-data__meta-wrapper stzh-geo-ref-data--content-padding",ref:t=>this.metaWrapperElement=t},a("div",{class:"stzh-geo-ref-data__filters"},this._availableTags.length>0&&a("div",{class:"stzh-geo-ref-data__filters-toggle"},a("stzh-chip",{label:this.isViewportMedium?"Filter":"",variant:"filter",icon:"filtering",onStzhClick:this.handleFilterToggleClick})),a("div",{class:{"stzh-geo-ref-data__filters-content":true,"stzh-geo-ref-data__filters-content--visible":!this.isViewportLarge&&this.isFiltersContentOpen}},a("stzh-chipselect",{"label-hidden":true,label:"Tags",data:this.enhancedTags,onStzhChange:this.handleFilterChange,multiple:true,defaultValue:this.appliedFilters,value:this.appliedFilters}),a("div",{class:"stzh-geo-ref-data__filters-apply-button"},a("stzh-button",{size:"small",fullwidth:true,onStzhClick:this.handleApplyFilterClick},"Anwenden")))),a("div",{class:"stzh-geo-ref-data__search"},a("stzh-input",{name:"stzh-datatable-search",onStzhChange:this.handleSearchChange,hideOptional:true,label:"Suche",type:"search"})),a("div",{class:"stzh-geo-ref-data__results-toggle"},a("stzh-chip",{onStzhClick:this.toggleViewMode,label:this.viewmode==="map"?"Liste":"Karte",icon:this.viewmode==="map"?"bulleted-list":"map",variant:"filter"}))),a("div",{class:"stzh-geo-ref-data__results-wrapper"},a("div",{class:`stzh-geo-ref-data__results-map ${this.viewmode==="map"?"active":"inactive"}`},a("stzh-olmap",{class:"stzh-geo-ref-data__ol-map",centerMarker:false,writeExtentToUrlEnabled:this.isOpen,ref:t=>this.mapElement=t}),a("div",{class:"stzh-geo-ref-data__map-controls"},a("stzh-checkbox",{label:"Treffer an Kartenausschnitt anpassen",checked:this.showOnlyResultsForCurrentExtent,hideOptional:true,onStzhChange:this.handleExtentVisibilityChange}))),a("div",{class:`stzh-geo-ref-data__results-list ${this.viewmode==="list"?"active":"inactive"}`,ref:t=>this.resultsListElement=t},this.finalResults&&a(s,null,a("div",{class:"stzh-geo-ref-data__list-search"},a("stzh-input",{name:"stzh-datatable-search",onStzhChange:this.handleSearchChange,hideOptional:true,label:"Suche",type:"search"})),a("stzh-text",{class:"stzh-geo-ref-data__results-list-heading"},this.finalResults.length," Treffer"),a("div",{class:"stzh-geo-ref-data__teaser-list"},this.finalResultsPaginatedList.map((t=>a("div",{class:"stzh-poi-teaser",onMouseEnter:()=>this.handlePoiTeaserMouseEnter(t),onMouseLeave:()=>this.handlePoiTeaserMouseLeave(t)},a("a",{class:"stzh-poi-teaser-link",href:this.baseUrlOverride+t.path}),a("div",{class:"stzh-poi-teaser-content"},a("stzh-heading",{curve:"lead"},t.poiname),t.description&&a("stzh-text",{size:"micro"},t.description),t.data&&t.data.length>0&&t.data.map((t=>a("div",{class:"stzh-poi-teaser-list-item"},a("stzh-icon",{name:t.icon}),a("stzh-text",{size:"micro"},t.text))))),t.image&&a("div",{class:"stzh-poi-teaser__image-wrapper"},a("stzh-ratio",{ratio:"2:1","ratio-large":"5:4","ratio-ultra":"1:1",portrait:this.isViewportLarge,class:"stzh-poi-teaser__ratio"}),a("div",{class:"stzh-poi-teaser__image-inner-wrapper"},a("img",{src:this.baseUrlOverride+t.image,alt:"Foto von "+t.poiname}))))))),this.canLoadMore&&a("div",{class:"stzh-geo-ref-data__teaser-load-more"},a("stzh-button",{onStzhClick:()=>this.loadMore()},"Weitere laden"))))))))}get element(){return r(this)}static get watchers(){return{availableTags:["availableTagsWatcher"],resetTag:["resetTagWatcher"]}}};p.style=l;export{p as stzh_geo_ref_data};
|
|
2
|
+
//# sourceMappingURL=p-b25e8b20.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["stzhGeoRefDataCss","CLASS_BODY_OPEN","GeoRefData","this","_availableTags","filterResults","handleFilterToggleClick","isFiltersContentOpen","handleApplyFilterClick","handleOverlayCloseClick","document","body","classList","remove","isOpen","urlParams","URLSearchParams","window","location","search","Array","from","keys","forEach","key","startsWith","delete","newUrl","pathname","toString","history","replaceState","appliedFilters","handleResize","async","metaWrapperElement","clientHeight","mapElement","style","height","resultsListElement","map","getMap","updateSize","mediaChangeHandler","isViewportLarge","media","matches","isViewportMedium","handleFilterChange","e","filtersArray","isArray","detail","value","length","_resetTag","filter","filterValue","noEmptyFilter","setTimeout","handleFilterResults","handleExtentVisibilityChange","showOnlyResultsForCurrentExtent","checked","setVisibleMarkers","handleSearchChange","searchIndex","searchResults","flatSearchResults","flatMap","field","result","Set","searchActive","combineFilterAndSearchResults","toggleViewMode","viewmode","availableTagsWatcher","newValue","JSON","parse","resetTagWatcher","undefined","applyFiltersFromUrl","filters","entries","slice","updateUrlWithFilters","loadMapData","mapDataUrl","response","fetch","rawMapData","text","parsedData","DOMParser","parseFromString","querySelectorAll","item","pos","_a","querySelector","textContent","poiid","_b","lat","lon","split","error","toastbarElement","toast","type","catch","loadPoiData","poiDataUrl","credentials","poiData","json","items","combineData","firstArray","secondArray","smallerArray","largerArray","matchingItem","find","largerArrayItem","Object","assign","sort","a","b","title","localeCompare","noTitleException","enhanceTags","availableTags","combinedData","label","noLabelException","tag","counter","tags","includes","noTagsException","variant","buildSearchIndex","data","Document","tokenize","matcher","id","searchIndexIdField","index","searchIndexFields","add","mapMovedPannedOrZoomed","visibleMarkers","getVisibleMarkers","finalResults","visibleMarker","getId","setEnhancedTags","setPaginatedResults","finalResultsPaginatedList","numberOfItemsToLoad","canLoadMore","checkDirectOpenViaUrl","idFromUrl","get","al","initializeAndOpenMap","connectedCallback","addMediaChangeListener","resizeObserver","ResizeObserver","observe","element","resetTag","disconnectedCallback","removeMediaChangeListener","disconnect","isLoading","has","set","extent","parseFloat","isNaN","updateViewToFitMarkers","isInitialized","mapException","enhancedTags","enhancedResetTag","unshift","some","filterActive","replaceMapMarkers","loadMore","finalResultsPaginationOffset","sliced","concat","removeAllIconMarkers","addIconMarker","description","imageUri","baseUrlOverride","image","href","path","handlePoiTeaserMouseEnter","marker","findMarkerById","setIconMarkerActive","handlePoiTeaserMouseLeave","setIconMarkerInactive","render","classes","h","Host","ref","el","class","onClick","name","open","sticky","slot","curve","heading","icon","iconOnly","size","onStzhClick","onStzhChange","multiple","defaultValue","fullwidth","hideOptional","centerMarker","writeExtentToUrlEnabled","Fragment","onMouseEnter","onMouseLeave","poiname","ratio","portrait","src","alt"],"sources":["src/components/stzh-geo-ref-data/stzh-geo-ref-data.scss?tag=stzh-geo-ref-data&encapsulation=shadow","src/components/stzh-geo-ref-data/stzh-geo-ref-data.tsx"],"sourcesContent":[":host {\n --teaser-list-width: 480px;\n --meta-grid-template-areas: \"filters search\";\n --results-grid-template-areas: \"map list\";\n}\n\n.stzh-geo-ref-data {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 899;\n flex-direction: column;\n transition: opacity ease 0.2s;\n background-color: var(--stzh-color-white);\n\n // initially hidden\n display: none;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n\n &--is-open {\n display: flex;\n opacity: 1;\n visibility: visible;\n pointer-events: inherit;\n }\n\n &__header {\n display: none;\n\n @include mq($from: large) {\n display: inherit;\n }\n }\n\n &__content {\n overflow: hidden;\n height: 100%;\n }\n\n &--content-padding {\n padding-left: $containerMargin;\n padding-right: var(--stzh-space-medium);\n\n @include mq($from: small) {\n padding-left: $containerMarginSmall;\n }\n\n @include mq($from: medium) {\n padding-left: $containerMarginMedium;\n }\n\n @include mq($from: large) {\n padding-left: $containerMarginSmall;\n }\n }\n\n &__heading {\n display: flex;\n align-items: center;\n background-color: var(--stzh-color-secondary20);\n @include spaceCurve('padding-top', 'regular');\n @include spaceCurve('padding-bottom', 'regular');\n }\n\n /** Everything meta wrapper like search, filters etc. */\n\n &__meta-wrapper {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: space(large);\n\n @include mq($to: large) {\n padding-top: space('medium');\n padding-bottom: space('medium');\n }\n\n @include spaceCurve('padding-top', 'small');\n @include spaceCurve('padding-bottom', 'small');\n\n @include mq($from: large) {\n display: grid;\n @include gridGutter;\n grid-template-areas: var(--meta-grid-template-areas);\n grid-template-columns: 1fr var(--teaser-list-width);\n }\n }\n\n &__filters {\n grid-area: filters;\n flex: none;\n margin-bottom: space(xxsmall);\n }\n\n &__filters-toggle {\n @include mq($from: large) {\n display: none;\n }\n }\n\n &__filters-toggle stzh-chip {\n @include mq($to: medium) {\n --icon-gap: 0;\n }\n }\n\n &__list-search {\n display: none;\n @include spaceCurve('padding-top', 'regular');\n @include spaceCurve('padding-bottom', 'regular');\n }\n\n &__filters-content {\n display: none;\n\n &--visible {\n padding: $containerMargin;\n\n @include mq($to: medium) {\n //padding: $containerMarginSmall;\n }\n\n @include mq($to: large) {\n display: flex;\n gap: space('xxlarge');\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: var(--stzh-color-white);\n //padding: $containerMarginMedium;\n z-index: 10;\n flex-direction: column;\n justify-content: space-between;\n }\n }\n\n @include mq($from: large) {\n display: block;\n }\n }\n\n &__filters-apply-button {\n display: block;\n\n @include mq($from: large) {\n display: none;\n }\n }\n\n &__search {\n grid-area: search;\n width: 100%;\n\n @include mq($from: large) {\n width: var(--teaser-list-width);\n padding-left: var(--stzh-space-medium);\n padding-right: var(--stzh-space-xsmall);\n }\n }\n\n &__search input {\n @include fontSize('milli');\n }\n\n &__results-toggle {\n grid-area: resultstoggle;\n flex: none;\n margin-bottom: space(xxsmall);\n\n @include mq($from: large) {\n display: none;\n }\n }\n\n /** Everything with results */\n\n &__results-wrapper {\n height: 100%;\n\n @include mq($from: large) {\n display: grid;\n @include gridGutter;\n grid-template-areas: var(--results-grid-template-areas);\n grid-template-columns: minmax(0, 1fr) var(--teaser-list-width);\n }\n }\n\n &__results-wrapper .inactive {\n @include mq($to: large) {\n visibility: hidden;\n height: 0;\n position: absolute;\n overflow: hidden;\n }\n }\n\n &__results-map {\n grid-area: map;\n position: relative;\n height: 100%;\n }\n\n &__map-controls {\n position: absolute;\n top: space(small);\n left: space(small);\n background-color: var(--stzh-color-white);\n padding: space(xsmall);\n }\n\n &__results-list {\n grid-area: list;\n padding-left: $containerMargin;\n padding-right: var(--stzh-space-medium);\n padding-bottom: space(\"xxlarge\");\n overflow: auto;\n @include scrollbars;\n\n @include mq($from: small) {\n padding-left: $containerMarginSmall;\n }\n\n @include mq($from: medium) {\n padding-left: $containerMarginMedium;\n }\n\n @include mq($from: large) {\n width: var(--teaser-list-width);\n padding-left: 0;\n overflow: auto;\n }\n }\n\n &__results-list-heading {\n margin-bottom: var(--stzh-space-medium);\n }\n\n &__ol-map {\n }\n\n &__teaser-list {\n display: grid;\n gap: var(--stzh-space-medium);\n grid-template-columns: 1fr;\n\n @include mq($from: small) {\n grid-template-columns: 1fr 1fr;\n }\n\n @include mq($from: large) {\n grid-template-columns: 1fr;\n }\n }\n\n &__teaser-load-more {\n display: flex;\n justify-content: center;\n margin-top: space(medium);\n }\n\n /** no filters */\n\n &:not(&--has-filters) &__meta-wrapper {\n @include mq($from: large) {\n display: none;\n }\n }\n\n &:not(&--has-filters) &__filters {\n display: none;\n }\n\n &:not(&--has-filters) &__list-search {\n @include mq($from: large) {\n display: block;\n }\n }\n}\n\n.stzh-poi-teaser {\n display: flex;\n flex-direction: column-reverse;\n background-color: var(--stzh-color-grey10);\n position: relative;\n\n @include mq($from: large) {\n flex-direction: row;\n height: 180px;\n }\n\n &:hover {\n cursor: pointer;\n background-color: var(--stzh-color-secondary10);\n }\n\n &-content {\n padding: var(--stzh-space-medium);\n hyphens: auto;\n flex-grow: 1;\n\n stzh-heading {\n margin-bottom: space(xsmall);\n hyphens: auto;\n }\n\n stzh-text {\n --color: var(--stzh-color-grey80);\n }\n }\n\n &-link {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n\n &__image-wrapper {\n position: relative;\n }\n\n &__ratio {\n display: flex;\n height: 100%;\n }\n\n &__image-inner-wrapper {\n background-color: var(--stzh-color-grey20);\n position: absolute;\n inset: 0;\n height: 100%;\n }\n\n &__image-inner-wrapper img {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n &-list-item {\n display: flex;\n gap: space(small);\n margin-top: space(xxsmall);\n\n stzh-icon, stzh-text {\n --color: var(--stzh-color-grey80);\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, Fragment, h, Host, Listen, Prop, State, Watch } from \"@stencil/core\";\nimport {\n StzhAvailableTag,\n StzhChipselectChangeEvent,\n StzhChipselectItem,\n StzhCombinedGeoRefData,\n StzhGeoRefDataOverlayCloseClickEvent,\n StzhMapGeoRefData,\n StzhPoiGeoRefData\n} from \"../../index\";\nimport { Document } from \"flexsearch/dist/flexsearch.bundle.min.js\";\nimport { addMediaChangeListener, media, removeMediaChangeListener } from \"../../utils/media-utils\";\n\nconst CLASS_BODY_OPEN = \"stzh-overlay-open\";\n\n/**\n * @slot logo - Slot for brand logo\n */\n@Component({\n tag: \"stzh-geo-ref-data\",\n styleUrl: \"stzh-geo-ref-data.scss\",\n shadow: true\n})\nexport class GeoRefData {\n /** ID for this instance, can be used to open via URL query param \"al=<id>\" - name \"al\" for historical reasons */\n @Prop({ reflect: true }) al: string = \"\";\n\n /** Heading for the overlay. */\n @Prop({ reflect: true }) heading: string = \"\";\n\n /** The URL for fetching the card data */\n @Prop({ reflect: true }) mapDataUrl: string = \"\";\n\n /** The URL used for fetching the POI data. */\n @Prop({ reflect: true }) poiDataUrl: string = \"\";\n\n /** Base URL used for all external requests (map, card). */\n @Prop() baseUrlOverride: string = \"https://www.stadt-zuerich.ch\";\n\n /** To make sure all tags are mapped to their identificator, only these will be available. */\n @Prop() availableTags: StzhAvailableTag[] | string = [];\n private _availableTags: StzhAvailableTag[] = [];\n\n /** Reset tag (the first one). */\n @Prop() resetTag: StzhChipselectItem | string;\n private _resetTag: StzhChipselectItem;\n\n /** Fields for building the search index. */\n @Prop()\n searchIndexFields: string[] = [\n \"title\",\n \"poiname\",\n \"street\",\n \"zip\",\n \"description\"\n ];\n\n /** Fields for building the search index. */\n @Prop() searchIndexIdField: string = \"poiid\";\n\n @Watch(\"availableTags\")\n availableTagsWatcher(newValue: StzhAvailableTag[] | string) {\n if (!newValue) {\n this._availableTags = [];\n } else if (typeof newValue === \"string\") {\n try {\n this._availableTags = JSON.parse(newValue);\n } catch (e) {\n this._availableTags = [];\n }\n } else {\n this._availableTags = newValue;\n }\n }\n\n @Watch(\"resetTag\")\n resetTagWatcher(newValue: StzhChipselectItem | string) {\n if (!newValue) {\n this._resetTag = undefined;\n } else if (typeof newValue === \"string\") {\n try {\n this._resetTag = JSON.parse(newValue);\n } catch (e) {\n this._resetTag = undefined;\n }\n } else {\n this._resetTag = newValue;\n }\n }\n\n @State() filterActive: boolean = false;\n @State() searchActive: boolean = false;\n @State() showOnlyResultsForCurrentExtent: boolean = true;\n @State() finalResults: StzhCombinedGeoRefData[] = [];\n @State() finalResultsPaginatedList: StzhCombinedGeoRefData[] = [];\n @State() finalResultsPaginationOffset = 0;\n\n @State() viewmode: \"map\" | \"list\" = \"map\";\n @State() isViewportLarge: boolean;\n @State() isViewportMedium: boolean;\n @State() isInitialized: boolean;\n @State() isOpen: boolean;\n @State() isLoading: boolean;\n @State() numberOfItemsToLoad: number = 20;\n @State() canLoadMore: boolean;\n @State() appliedFilters: string[] = [\"\"];\n @State() isFiltersContentOpen: boolean = false;\n\n /** Overlay close click event */\n @Event()\n stzhOverlayCloseClick: EventEmitter<StzhGeoRefDataOverlayCloseClickEvent>;\n\n private combinedData: StzhCombinedGeoRefData[];\n private enhancedTags: StzhChipselectItem[];\n private searchIndex: Document;\n\n private filterResults: StzhCombinedGeoRefData[] = [];\n private searchResults: Set<string>;\n\n @Element() element: HTMLStzhGeoRefDataElement;\n private mapElement: HTMLStzhOlmapElement;\n private toastbarElement: HTMLStzhToastbarElement;\n private metaWrapperElement: HTMLDivElement;\n private resultsListElement: HTMLDivElement;\n private resizeObserver: ResizeObserver;\n\n private applyFiltersFromUrl() {\n const urlParams = new URLSearchParams(window.location.search);\n\n // Find all filter parameters from the URL\n const filters = Array.from(urlParams.entries())\n .filter(([key, value]) => key.startsWith(\"filters[\") && value === \"true\")\n .map(([key]) => key.slice(8, -1)); // Extract the filter key (removing 'filters[' and ']')\n\n // Apply filters if they exist\n if (filters.length) {\n this.appliedFilters = filters;\n // Update the UI to show selected filters\n this.updateUrlWithFilters(); // Keep the URL sync logic here\n this.handleFilterChange({\n detail: { value: filters }\n } as CustomEvent<StzhChipselectChangeEvent>);\n }\n }\n\n private handleFilterToggleClick = () => {\n this.isFiltersContentOpen = true;\n };\n\n private handleApplyFilterClick = () => {\n this.isFiltersContentOpen = false;\n };\n\n private handleOverlayCloseClick = () => {\n // Remove the class from the body\n document.body.classList.remove(CLASS_BODY_OPEN);\n this.isOpen = false;\n\n // Get the current URL's query parameters\n const urlParams = new URLSearchParams(window.location.search);\n\n // Remove all filters (query parameters that start with \"filters[\")\n Array.from(urlParams.keys()).forEach(key => {\n if (key.startsWith(\"filters[\")) {\n urlParams.delete(key);\n }\n });\n\n // Remove all extent parameters (keys like \"extent[0]\", \"extent[1]\", etc.)\n urlParams.delete(\"extent[0]\");\n urlParams.delete(\"extent[1]\");\n urlParams.delete(\"extent[2]\");\n urlParams.delete(\"extent[3]\");\n\n // Remove the al parameter\n urlParams.delete(\"al\");\n\n // Update the URL without reloading the page\n const newUrl = `${window.location.pathname}?${urlParams.toString()}`;\n history.replaceState(null, \"\", newUrl);\n\n // Clear filters.\n this.appliedFilters = [\"\"];\n };\n\n private handleResize = async () => {\n if (this.metaWrapperElement) {\n if (this.metaWrapperElement.clientHeight) {\n this.mapElement.style.height = `calc(100% - ${this.metaWrapperElement.clientHeight}px)`;\n this.resultsListElement.style.height = `calc(100% - ${this.metaWrapperElement.clientHeight}px)`;\n } else {\n this.mapElement.style.height = `100%`;\n this.resultsListElement.style.height = `100%`;\n }\n const map = await this.mapElement.getMap();\n map.updateSize();\n }\n };\n\n private mediaChangeHandler = () => {\n this.isViewportLarge = media(\"large\").matches;\n this.isViewportMedium = media(\"medium\").matches;\n };\n\n private async loadMapData(): Promise<StzhMapGeoRefData[]> {\n if (!this.mapDataUrl) {\n return [];\n }\n try {\n const response = await fetch(this.mapDataUrl);\n const rawMapData = await response.text();\n const parsedData = new DOMParser().parseFromString(rawMapData, \"text/xml\");\n return Array.from(parsedData.querySelectorAll(\"featureMember\")).map(item => {\n const pos = item.querySelector(\"pos\")?.textContent;\n const poiid = item.querySelector(\"poi_id\")?.textContent;\n const [lat, lon] = pos?.split(\" \") || [];\n\n return { poiid, lat, lon } as StzhMapGeoRefData;\n });\n } catch (error) {\n this.toastbarElement\n .toast(\"Es ist ein Fehler beim Beziehen der Kartendaten aufgetreten.\", {\n type: \"error\"\n })\n .catch();\n }\n }\n\n private async loadPoiData() {\n if (!this.poiDataUrl) {\n return [];\n }\n try {\n const response = await fetch(this.poiDataUrl, { credentials: \"include\" });\n const poiData = await response.json();\n return poiData.items;\n } catch (error) {\n this.toastbarElement\n .toast(\"Beim Laden der POI-Daten ist ein Fehler aufgetreten.\", {\n type: \"error\"\n })\n .catch();\n }\n }\n\n private combineData(\n firstArray: StzhMapGeoRefData[] | StzhPoiGeoRefData[],\n secondArray: StzhMapGeoRefData[] | StzhPoiGeoRefData[]\n ): StzhCombinedGeoRefData[] {\n if (!firstArray.length || !secondArray.length) {\n return [];\n }\n // determine which array is smaller for performance\n let smallerArray: any[];\n let largerArray: any[];\n\n if (firstArray.length < secondArray.length) {\n smallerArray = firstArray;\n largerArray = secondArray;\n } else {\n smallerArray = secondArray;\n largerArray = firstArray;\n }\n // combine arrays based on poiid\n return smallerArray\n .map(item => {\n const matchingItem = largerArray.find(largerArrayItem => largerArrayItem.poiid === item.poiid);\n return { ...item, ...matchingItem };\n })\n .sort((a, b) => {\n try {\n return a.title.localeCompare(b.title); // Sorts alphabetically by the 'name' property\n } catch (noTitleException) {\n return 1;\n }\n });\n }\n\n private enhanceTags(availableTags: StzhAvailableTag[], combinedData: StzhCombinedGeoRefData[]): StzhChipselectItem[] {\n return availableTags\n .sort((a, b) => {\n try {\n a.label.localeCompare(b.label);\n } catch (noLabelException) {\n return 1;\n }\n })\n .map(tag => {\n const counter = combinedData\n .filter(item => {\n try {\n return item.tags.includes(tag.value);\n } catch (noTagsException) {\n return false;\n }\n })\n .length.toString();\n return { ...tag, counter, variant: \"filter\" };\n });\n }\n\n private buildSearchIndex(data: StzhCombinedGeoRefData[]) {\n if (!data.length) {\n return;\n }\n this.searchIndex = new Document({\n tokenize: \"forward\",\n matcher: {\n \"[äà]\": \"a\",\n \"[öó]\": \"o\",\n \"[üûúù]\": \"u\",\n \"[éè]\": \"e\"\n },\n document: {\n id: this.searchIndexIdField,\n index: this.searchIndexFields\n }\n });\n data.forEach(item => {\n this.searchIndex.add(item);\n });\n }\n\n @Listen(\"stzhPostRender\")\n @Listen(\"stzhMovePanZoom\")\n async mapMovedPannedOrZoomed() {\n await this.setVisibleMarkers();\n }\n\n private async setVisibleMarkers() {\n if (this.combinedData) {\n const visibleMarkers = await this.mapElement.getVisibleMarkers();\n if (this.showOnlyResultsForCurrentExtent) {\n this.finalResults = this.combinedData.filter(item =>\n visibleMarkers.find(visibleMarker => visibleMarker.getId() === item.poiid)\n );\n } else {\n this.finalResults = this.combinedData;\n }\n this.setEnhancedTags();\n await this.setPaginatedResults();\n }\n }\n\n private async setPaginatedResults() {\n this.finalResultsPaginatedList = this.finalResults.slice(0, this.numberOfItemsToLoad);\n this.canLoadMore = this.finalResults.length > this.numberOfItemsToLoad;\n }\n\n private async checkDirectOpenViaUrl() {\n const urlParams = new URLSearchParams(window.location.search);\n const idFromUrl = urlParams.get(\"al\");\n\n if (idFromUrl && idFromUrl === this.al) {\n await this.initializeAndOpenMap();\n }\n }\n\n connectedCallback() {\n this.mediaChangeHandler();\n addMediaChangeListener(this.mediaChangeHandler);\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.element);\n this.availableTagsWatcher(this.availableTags);\n this.resetTagWatcher(this.resetTag);\n this.checkDirectOpenViaUrl();\n }\n\n disconnectedCallback() {\n removeMediaChangeListener(this.mediaChangeHandler);\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n\n private async initializeAndOpenMap() {\n document.body.classList.add(CLASS_BODY_OPEN);\n this.isLoading = true;\n this.isOpen = true;\n\n // Write the \"al\" prop of the component to the current URL as query param if it is not already there\n const urlParams = new URLSearchParams(window.location.search);\n if (!urlParams.has(\"al\")) {\n urlParams.set(\"al\", this.al);\n const newUrl = `${window.location.pathname}?${urlParams.toString()}`;\n history.replaceState(null, \"\", newUrl);\n }\n\n try {\n this.combinedData = this.combineData(await this.loadMapData(), await this.loadPoiData());\n this.setEnhancedTags();\n this.applyFiltersFromUrl();\n this.buildSearchIndex(this.combinedData);\n this.finalResults = this.combinedData;\n await this.setVisibleMarkers();\n await this.combineFilterAndSearchResults();\n await this.handleResize();\n\n const urlParams = new URLSearchParams(window.location.search);\n const extent = [\n parseFloat(urlParams.get(\"extent[0]\")),\n parseFloat(urlParams.get(\"extent[1]\")),\n parseFloat(urlParams.get(\"extent[2]\")),\n parseFloat(urlParams.get(\"extent[3]\"))\n ];\n\n if (!extent.length || isNaN(extent[0]) || isNaN(extent[1]) || isNaN(extent[2]) || isNaN(extent[3])) {\n await this.mapElement.updateViewToFitMarkers();\n }\n\n await this.handleResize();\n this.isInitialized = true;\n } catch (mapException) {\n this.toastbarElement\n .toast(\"Beim Laden der Karte ist ein Fehler aufgetreten.\", {\n type: \"error\"\n })\n .catch();\n }\n\n setTimeout(() => {\n this.isLoading = false;\n }, 500);\n }\n\n private updateUrlWithFilters() {\n const urlParams = new URLSearchParams(window.location.search);\n\n // Remove existing filters from URL\n Array.from(urlParams.keys()).forEach(key => {\n if (key.startsWith(\"filters[\")) {\n urlParams.delete(key);\n }\n });\n\n // Add the selected filters from `appliedFilters` to the URL\n this.appliedFilters.forEach(filter => {\n urlParams.set(`filters[${filter}]`, \"true\");\n });\n\n // Update the URL without reloading the page\n const newUrl = `${window.location.pathname}?${urlParams.toString()}`;\n history.replaceState(null, \"\", newUrl);\n }\n\n private setEnhancedTags() {\n this.enhancedTags = this.enhanceTags(this._availableTags, this.finalResults);\n const enhancedResetTag = {\n ...this._resetTag,\n counter: this.finalResults.length.toString()\n };\n if (this._resetTag) {\n this.enhancedTags.unshift(enhancedResetTag);\n }\n }\n\n private handleFilterChange = async (e: CustomEvent<StzhChipselectChangeEvent>) => {\n let filtersArray = Array.isArray(e.detail.value) ? e.detail.value : [e.detail.value];\n if (filtersArray.length === 1 && filtersArray[0] === this._resetTag.value) {\n this.appliedFilters = [];\n } else {\n try {\n filtersArray = filtersArray.filter(filterValue => filterValue !== \"\");\n } catch (noEmptyFilter) {\n // nothing to do here\n }\n this.appliedFilters = filtersArray;\n }\n setTimeout(async () => {\n await this.handleFilterResults();\n });\n };\n\n private async handleFilterResults() {\n // Update the component state based on the selected filters\n if (this.appliedFilters.length !== 0) {\n this.filterResults = this.finalResults.filter(\n item => item.tags && item.tags.some(tag => this.appliedFilters.includes(tag))\n );\n this.filterActive = true;\n } else {\n this.filterActive = false;\n this.filterResults = this.finalResults;\n }\n\n // Update the URL with the applied filters\n this.updateUrlWithFilters();\n\n // Combine the results from filters and search\n await this.combineFilterAndSearchResults();\n }\n\n private handleExtentVisibilityChange = async e => {\n this.showOnlyResultsForCurrentExtent = e.detail.checked;\n await this.setVisibleMarkers();\n };\n\n private handleSearchChange = async (e: CustomEvent) => {\n if (e.detail.value !== \"\") {\n if (!this.searchIndex) {\n return;\n }\n const searchResults = this.searchIndex.search(e.detail.value);\n const flatSearchResults = searchResults.flatMap(field => field.result);\n this.searchResults = new Set(flatSearchResults);\n this.searchActive = true;\n } else {\n this.searchActive = false;\n }\n await this.combineFilterAndSearchResults();\n };\n\n private async combineFilterAndSearchResults() {\n if (this.filterActive && !this.searchActive) {\n this.finalResults = this.filterResults;\n } else if (!this.filterActive && this.searchActive) {\n this.finalResults = Array.from(this.searchResults).map(id => this.combinedData.find(item => item.poiid === id));\n } else if (this.filterActive && this.searchActive) {\n this.finalResults = this.filterResults.filter(item => this.searchResults.has(item.poiid));\n } else {\n this.finalResults = this.combinedData;\n }\n\n this.finalResultsPaginatedList = this.finalResults.slice(0, this.numberOfItemsToLoad);\n\n await this.replaceMapMarkers(this.finalResults);\n }\n\n private loadMore() {\n this.finalResultsPaginationOffset++;\n const sliced = this.finalResults.slice(\n this.finalResultsPaginationOffset * this.numberOfItemsToLoad,\n this.finalResultsPaginationOffset * this.numberOfItemsToLoad + this.numberOfItemsToLoad\n );\n if (!sliced || !sliced.length || sliced.length < this.numberOfItemsToLoad) {\n this.canLoadMore = false;\n }\n this.finalResultsPaginatedList = this.finalResultsPaginatedList.concat(sliced);\n }\n\n private async replaceMapMarkers(items: StzhCombinedGeoRefData[]) {\n await this.mapElement.removeAllIconMarkers();\n items\n .filter(item => !!item.lat && !!item.lon)\n .forEach(item => {\n this.mapElement\n .addIconMarker([\n parseFloat(item.lat),\n parseFloat(item.lon)\n ], {\n id: item.poiid,\n title: item.title,\n text: item.description,\n data: item.data,\n imageUri: `${this.baseUrlOverride}${item.image}`,\n href: `${this.baseUrlOverride}${item.path}`\n })\n .catch();\n });\n if (!this.showOnlyResultsForCurrentExtent) {\n this.mapElement.updateViewToFitMarkers().catch();\n }\n }\n\n private toggleViewMode = () => {\n if (this.viewmode === \"map\") {\n this.viewmode = \"list\";\n } else {\n this.viewmode = \"map\";\n }\n };\n\n private async handlePoiTeaserMouseEnter(item: StzhCombinedGeoRefData) {\n const marker = await this.mapElement.findMarkerById(item.poiid);\n if (marker) {\n await this.mapElement.setIconMarkerActive(marker);\n }\n }\n\n private async handlePoiTeaserMouseLeave(item: StzhCombinedGeoRefData) {\n const marker = await this.mapElement.findMarkerById(item.poiid);\n if (marker) {\n await this.mapElement.setIconMarkerInactive(marker);\n }\n }\n\n render() {\n const classes = {\n \"stzh-geo-ref-data\": true,\n \"stzh-geo-ref-data--is-loading\": this.isLoading,\n \"stzh-geo-ref-data--is-open\": this.isOpen,\n \"stzh-geo-ref-data--has-filters\": this._availableTags.length > 0\n };\n return (\n <Host>\n <stzh-toastbar ref={el => (this.toastbarElement = el as HTMLStzhToastbarElement)} />\n <div class=\"stzh-geo-ref-data__trigger\" onClick={() => this.initializeAndOpenMap()}>\n <slot name=\"trigger\"></slot>\n </div>\n <stzh-overlay open={this.isLoading}>\n <stzh-loader label=\"Daten werden geladen...\"></stzh-loader>\n </stzh-overlay>\n <div class={classes}>\n <div class=\"stzh-geo-ref-data__header-wrapper\">\n <stzh-header class=\"stzh-geo-ref-data__header\" hide-metabar={true} sticky=\"disabled\">\n <slot name=\"logo\" slot=\"logo\"></slot>\n </stzh-header>\n <div class=\"stzh-geo-ref-data__heading stzh-geo-ref-data--content-padding\">\n <stzh-heading class=\"stzh-geo-ref-data__heading-heading\" curve=\"h2\">\n {this.heading}\n </stzh-heading>\n <stzh-button\n class=\"stzh-geo-ref-data__overlay-close\"\n icon=\"close\"\n iconOnly={true}\n size=\"small\"\n variant=\"tertiary\"\n onClick={this.handleOverlayCloseClick}\n ></stzh-button>\n </div>\n </div>\n\n <div class=\"stzh-geo-ref-data__content\">\n <div\n class=\"stzh-geo-ref-data__meta-wrapper stzh-geo-ref-data--content-padding\"\n ref={el => (this.metaWrapperElement = el as HTMLDivElement)}\n >\n <div class=\"stzh-geo-ref-data__filters\">\n {this._availableTags.length > 0 && (\n <div class=\"stzh-geo-ref-data__filters-toggle\">\n <stzh-chip\n label={this.isViewportMedium ? \"Filter\" : \"\"}\n variant=\"filter\"\n icon=\"filtering\"\n onStzhClick={this.handleFilterToggleClick}\n ></stzh-chip>\n </div>\n )}\n <div\n class={{\n \"stzh-geo-ref-data__filters-content\": true,\n \"stzh-geo-ref-data__filters-content--visible\": !this.isViewportLarge && this.isFiltersContentOpen\n }}\n >\n <stzh-chipselect\n label-hidden={true}\n label=\"Tags\"\n data={this.enhancedTags}\n onStzhChange={this.handleFilterChange}\n multiple={true}\n defaultValue={this.appliedFilters}\n value={this.appliedFilters}\n ></stzh-chipselect>\n <div class=\"stzh-geo-ref-data__filters-apply-button\">\n <stzh-button size=\"small\" fullwidth={true} onStzhClick={this.handleApplyFilterClick}>\n Anwenden\n </stzh-button>\n </div>\n </div>\n </div>\n <div class=\"stzh-geo-ref-data__search\">\n <stzh-input\n name=\"stzh-datatable-search\"\n onStzhChange={this.handleSearchChange}\n hideOptional={true}\n label=\"Suche\"\n type=\"search\"\n ></stzh-input>\n </div>\n <div class=\"stzh-geo-ref-data__results-toggle\">\n <stzh-chip\n onStzhClick={this.toggleViewMode}\n label={this.viewmode === \"map\" ? \"Liste\" : \"Karte\"}\n icon={this.viewmode === \"map\" ? \"bulleted-list\" : \"map\"}\n variant=\"filter\"\n ></stzh-chip>\n </div>\n </div>\n <div class=\"stzh-geo-ref-data__results-wrapper\">\n <div class={`stzh-geo-ref-data__results-map ${this.viewmode === \"map\" ? \"active\" : \"inactive\"}`}>\n <stzh-olmap\n class=\"stzh-geo-ref-data__ol-map\"\n centerMarker={false}\n writeExtentToUrlEnabled={this.isOpen}\n ref={el => (this.mapElement = el as HTMLStzhOlmapElement)}\n ></stzh-olmap>\n <div class=\"stzh-geo-ref-data__map-controls\">\n <stzh-checkbox\n label=\"Treffer an Kartenausschnitt anpassen\"\n checked={this.showOnlyResultsForCurrentExtent}\n hideOptional={true}\n onStzhChange={this.handleExtentVisibilityChange}\n ></stzh-checkbox>\n </div>\n </div>\n <div\n class={`stzh-geo-ref-data__results-list ${this.viewmode === \"list\" ? \"active\" : \"inactive\"}`}\n ref={el => (this.resultsListElement = el as HTMLDivElement)}\n >\n {this.finalResults && (\n <Fragment>\n <div class=\"stzh-geo-ref-data__list-search\">\n <stzh-input\n name=\"stzh-datatable-search\"\n onStzhChange={this.handleSearchChange}\n hideOptional={true}\n label=\"Suche\"\n type=\"search\"\n ></stzh-input>\n </div>\n <stzh-text class=\"stzh-geo-ref-data__results-list-heading\">\n {this.finalResults.length} Treffer\n </stzh-text>\n <div class=\"stzh-geo-ref-data__teaser-list\">\n {this.finalResultsPaginatedList.map(item => (\n <div\n class=\"stzh-poi-teaser\"\n onMouseEnter={() => this.handlePoiTeaserMouseEnter(item)}\n onMouseLeave={() => this.handlePoiTeaserMouseLeave(item)}\n >\n <a class=\"stzh-poi-teaser-link\" href={this.baseUrlOverride + item.path}></a>\n <div class=\"stzh-poi-teaser-content\">\n <stzh-heading curve=\"lead\">{item.poiname}</stzh-heading>\n {item.description && <stzh-text size=\"micro\">{item.description}</stzh-text>}\n {item.data &&\n item.data.length > 0 &&\n item.data.map(item => (\n <div class=\"stzh-poi-teaser-list-item\">\n <stzh-icon name={item.icon}></stzh-icon>\n <stzh-text size=\"micro\">{item.text}</stzh-text>\n </div>\n ))}\n </div>\n {item.image && (\n <div class=\"stzh-poi-teaser__image-wrapper\">\n <stzh-ratio\n ratio={\"2:1\"}\n ratio-large={\"5:4\"}\n ratio-ultra={\"1:1\"}\n portrait={this.isViewportLarge}\n class=\"stzh-poi-teaser__ratio\"\n ></stzh-ratio>\n <div class=\"stzh-poi-teaser__image-inner-wrapper\">\n <img src={this.baseUrlOverride + item.image} alt={\"Foto von \" + item.poiname} />\n </div>\n </div>\n )}\n </div>\n ))}\n </div>\n {this.canLoadMore && (\n <div class=\"stzh-geo-ref-data__teaser-load-more\">\n <stzh-button onStzhClick={() => this.loadMore()}>Weitere laden</stzh-button>\n </div>\n )}\n </Fragment>\n )}\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const t="@oiz/stzh-components";const n="3.8.0";const o=t.substring(t.indexOf("/")+1);const e=t=>{const n=document.querySelector("[autofocus]");if(window.stzhComponents.fixAutofocus&&!document.location.hash&&n&&t.detail.namespace===o&&n.tagName.toLowerCase().indexOf("stzh-")===0&&"focus"in n){n.focus()}else if(window.stzhComponents.fixHashfocus&&document.location.hash){const t=document.querySelector(document.location.hash);if(t){t.scrollIntoView()}}};function s(){window.addEventListener("appload",e)}function i(){const t={threshold:1};const n=t=>{t.forEach((t=>{let n=0;if(t.intersectionRatio<1){n=window.innerWidth-document.documentElement.clientWidth}document.documentElement.style.setProperty("--stzh-scrollbar-width",n+"px");document.documentElement.style.setProperty("--stzh-scrollbar-active",n>0?"1":"0")}))};const o=new IntersectionObserver(n,t);o.observe(document.body)}function a(t,n="datetime"){if(!window.stzhComponents.translations){console.log("Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`");return}const{$formats:o,$globals:e}=window.stzhComponents.translations;const s=f(o,e);return s.format(t,n)}function r(t,n="datetime"){if(!window.stzhComponents.translations){console.log("Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`");return}const{$formats:o,$globals:e}=window.stzhComponents.translations;const s=f(o,e);return s.parse(t,n)}function c(t,n,o="datetime"){if(!window.stzhComponents.translations){console.log("Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`");return}const{$formats:e,$globals:s}=window.stzhComponents.translations;const i=f(e,s);return i.formatSpan(t,n,o)}function l(t,n="datetime"){if(!window.stzhComponents.translations){console.log("Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`");return}const{$formats:o,$globals:e}=window.stzhComponents.translations;const s=f(o,e);return s.parseSpan(t,n)}function f(t,n){const o=function(t,o){if(!o||!(o instanceof Date)||isNaN(o.getTime())){return""}let e=o.getDate().toString(10);let s=e;let i=(o.getMonth()+1).toString(10);let a=i;let r=o.getFullYear().toString(10);let c=o.getHours().toString(10);let l=c;let f=o.getMinutes().toString(10);let u=n.monthNames[o.getMonth()];let d=n.monthNamesShort[o.getMonth()];let w=n.dayNames[o.getDay()];let m=n.dayNamesShort[o.getDay()];if(o.getMonth()<9){a=`0${a}`}if(o.getDate()<10){s=`0${s}`}if(o.getHours()<10){l=`0${l}`}if(o.getMinutes()<10){f=`0${f}`}return t.replace(/\{j\}/g,e).replace(/\{d\}/g,s).replace(/\{D\}/g,m).replace(/\{l\}/g,w).replace(/\{n\}/g,i).replace(/\{m\}/g,a).replace(/\{F\}/g,u).replace(/\{M\}/g,d).replace(/\{Y\}/g,r).replace(/\{H\}/g,l).replace(/\{G\}/g,c).replace(/\{i\}/g,f)};const e=function(t,n){if(!n){return}const o=new RegExp(t);const e=n.match(o);if(e){const{groups:t}=e;const n=parseInt(t.Y||"",10);const o=parseInt(t.n||t.m||"",10);const s=parseInt(t.j||t.d||"",10);const i=parseInt(t.G||t.H||"",10);const a=parseInt(t.i||"",10);if(!isNaN(n)&&(n<1e3||n>9999)){return}if(!isNaN(o)&&(o<1||o>12)){return}if(!isNaN(s)&&(s<1||s>31)){return}if(!isNaN(i)&&(i<0||i>23)){return}if(!isNaN(a)&&(a<0||a>59)){return}const r=new Date(!isNaN(n)?n:null,!isNaN(o)?o-1:null,!isNaN(s)?s:null,!isNaN(i)?i:null,!isNaN(a)?a:null);if(r.getMonth()+1!==o){return}return r}};const s={format:function(n,e="datetime"){const s={...t[e],...window.stzhComponents?.formats[e]||{}};if(typeof s.format==="string"){return o(s.format,n)}else{return s.format(n)}},parse:function(n,o="datetime"){const s={...t[o],...window.stzhComponents?.formats[o]||{}};if(typeof s.parse==="string"){return e(s.parse,n)}else{return s.parse(n)}},formatSpan:function(t,o,e="datetime"){let s=t;let i=o;if(t instanceof Date&&!isNaN(t.getTime())){s=this.format(t,e)}if(o instanceof Date&&!isNaN(o.getTime())){i=this.format(o,e)}let a=n.dateRange;if(e.startsWith("time")){a=n.timeRange}return s+(i&&(!(i instanceof Date)||i instanceof Date&&!isNaN(t.getTime()))?a+i:"")},parseSpan:function(t,o){let e=n.dateRange;if(o.startsWith("time")){e=n.timeRange}const s=t.split(e);const i=this.parse(s[0],o);const a=this.parse(s[1],o);return[i,a,e]}};return s}function u(t){const n=t.closest("[lang]");const o=n&&n.lang.split("-")[0];if(window.stzhComponents.supportedLocales.indexOf(o)===-1||!o){return window.stzhComponents.defaultLocale}else{return o}}async function d(t,n){const o=u(t);const e=JSON.parse(sessionStorage.getItem(`stzhComponents.v${window.stzhComponents.version}.i18n.${o}`));if(window.stzhComponents.cacheTranslations&&e&&Object.keys(e).length>0){return{...e[n]||{},$globals:e.$globals,$locale:e.$code,$formats:e.$formats,$formatsIso:e.$formatsIso,$formatsLegacy:e.$formatsLegacy}}try{const t=await fetch(`${window.stzhComponents.pathTranslations}/${o}.json`);if(t.ok){const e=await t.json();sessionStorage.setItem(`stzhComponents.v${window.stzhComponents.version}.i18n.${o}`,JSON.stringify(e));return{...e[n]||{},$globals:e.$globals,$locale:e.$code,$formats:e.$formats,$formatsIso:e.$formatsIso,$formatsLegacy:e.$formatsLegacy}}}catch(t){console.error(`Error loading locale: ${o}`,t)}}const w=Object.freeze({__proto__:null,format:a,parse:r,formatSpan:c,parseSpan:l,createFormatParseAdapter:f,getLocale:u,fetchTranslations:d});function m(){window.stzhComponents=Object.assign(Object.assign({defaultLocale:"de",pathMedia:"/",pathTranslations:"/",cacheTranslations:true,formats:{},translations:null,fixAutofocus:true,fixHashfocus:true},window.stzhComponents||{}),{version:n,supportedLocales:["de","en"],utils:w});if(window.stzhComponents.translations===null){window.stzhComponents.translationsLoading=d(document.documentElement).then((t=>{window.stzhComponents.translations=t})).catch((t=>{console.error("Translations couldn't load:",t)}))}s();i()}const g=m;export{g};
|
|
2
|
+
//# sourceMappingURL=p-d41803d1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["packageName","packageNameScoped","substring","indexOf","debouncedFocus","event","autofocus","document","querySelector","window","stzhComponents","fixAutofocus","location","hash","detail","namespace","tagName","toLowerCase","focus","fixHashfocus","hashElement","scrollIntoView","applyAutofocus","addEventListener","observeScrollbarWidth","config","threshold","handleIntersect","entries","forEach","entry","scrollbarWidth","intersectionRatio","innerWidth","documentElement","clientWidth","style","setProperty","bodyScrollObserver","IntersectionObserver","observe","body","format","date","type","translations","console","log","$formats","$globals","adapter","createFormatParseAdapter","parse","string","formatSpan","date2","parseSpan","formats","globals","globalFormatter","Date","isNaN","getTime","j","getDate","toString","d","n","getMonth","m","yC","getFullYear","gC","getHours","hC","i","getMinutes","fC","monthNames","mC","monthNamesShort","l","dayNames","getDay","D","dayNamesShort","replace","globalParser","input","regex","RegExp","match","groups","year","parseInt","Y","month","day","hours","G","H","minutes","globalAdapter","dateFormats","formattedDate","formattedDate2","this","range","dateRange","startsWith","timeRange","dates","split","getLocale","element","closestElement","closest","locale","lang","supportedLocales","defaultLocale","async","fetchTranslations","host","component","existingTranslations","JSON","sessionStorage","getItem","version","cacheTranslations","Object","keys","length","$locale","$code","$formatsIso","$formatsLegacy","result","fetch","pathTranslations","ok","data","json","setItem","stringify","exception","error","assign","pathMedia","utils","translationsLoading","then","catch","reason","globalScripts","appGlobalScript"],"sources":["src/global/js/helpers/autofocus.js","src/global/js/helpers/scrollbar-width.js","src/global/js/helpers/utils.js","src/global/js/script.js","@stencil/core/internal/app-globals"],"sourcesContent":["import { name as packageNameScoped } from '../../../../package.json';\n\nconst packageName = packageNameScoped.substring(packageNameScoped.indexOf('/')+1);\n// let focused = false;\n\n// function debounce(func, timeout = 500){\n// let timer;\n// return (...args) => {\n// clearTimeout(timer);\n// timer = setTimeout(() => { func.apply(this, args); }, timeout);\n// };\n// }\n\nconst debouncedFocus = (event) => {\n // if (focused) {\n // return false;\n // }\n\n const autofocus = document.querySelector('[autofocus]');\n\n if (window.stzhComponents.fixAutofocus\n && !document.location.hash\n && autofocus\n && event.detail.namespace === packageName\n && autofocus.tagName.toLowerCase().indexOf('stzh-') === 0\n && 'focus' in autofocus\n ) {\n autofocus.focus();\n // focused = true;\n } else if (window.stzhComponents.fixHashfocus && document.location.hash) {\n const hashElement = document.querySelector(document.location.hash);\n\n if (hashElement) {\n hashElement.scrollIntoView();\n // focused = true;\n }\n }\n}\n\n/**\n * Execute setFocus method if it exists\n * on stzh-element with autofocus on pageload\n * when (child components are loaded)\n */\nexport function applyAutofocus() {\n window.addEventListener('appload', debouncedFocus);\n}\n","export function observeScrollbarWidth() {\n const config = {\n threshold: 1.0\n };\n\n const handleIntersect = (entries) => {\n entries.forEach(entry => {\n let scrollbarWidth = 0;\n\n if (entry.intersectionRatio < 1) {\n // scrollbarWidth = window.innerWidth - document.body.clientWidth;\n scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n }\n\n document.documentElement.style.setProperty('--stzh-scrollbar-width', scrollbarWidth + 'px');\n document.documentElement.style.setProperty('--stzh-scrollbar-active', scrollbarWidth > 0 ? '1' : '0');\n });\n };\n\n const bodyScrollObserver = new IntersectionObserver(handleIntersect, config);\n bodyScrollObserver.observe(document.body);\n}\n","export function format(date, type = 'datetime') {\n if (!window.stzhComponents.translations) {\n console.log('Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`');\n return;\n }\n\n const { $formats, $globals } = window.stzhComponents.translations;\n const adapter = createFormatParseAdapter($formats, $globals);\n return adapter.format(date, type);\n}\n\nexport function parse(string, type = 'datetime') {\n if (!window.stzhComponents.translations) {\n console.log('Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`');\n return;\n }\n\n const { $formats, $globals } = window.stzhComponents.translations;\n const adapter = createFormatParseAdapter($formats, $globals);\n return adapter.parse(string, type);\n}\n\nexport function formatSpan(date, date2, type = 'datetime') {\n if (!window.stzhComponents.translations) {\n console.log('Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`');\n return;\n }\n\n const { $formats, $globals } = window.stzhComponents.translations;\n const adapter = createFormatParseAdapter($formats, $globals);\n return adapter.formatSpan(date, date2, type);\n}\n\nexport function parseSpan(string, type = 'datetime') {\n if (!window.stzhComponents.translations) {\n console.log('Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`');\n return;\n }\n\n const { $formats, $globals } = window.stzhComponents.translations;\n const adapter = createFormatParseAdapter($formats, $globals);\n return adapter.parseSpan(string, type);\n}\n\nexport function createFormatParseAdapter(formats, globals) {\n // format letters from https://www.php.net/manual/de/datetime.format.php\n const globalFormatter = function (format, date) {\n if (!date || !(date instanceof Date) || isNaN(date.getTime())) {\n return '';\n }\n\n let j = date.getDate().toString(10);\n let d = j;\n let n = (date.getMonth() + 1).toString(10);\n let m = n;\n let yC = date.getFullYear().toString(10);\n let gC = date.getHours().toString(10);\n let hC = gC;\n let i = date.getMinutes().toString(10);\n\n // full textual representation of a month\n let fC = globals.monthNames[date.getMonth()];\n // short textual representation of a month\n let mC = globals.monthNamesShort[date.getMonth()];\n // full textual representation of the day\n let l = globals.dayNames[date.getDay()];\n // short textual representation of the day\n let D = globals.dayNamesShort[date.getDay()];\n\n // months *are* zero-indexed, pad if less than 9!\n if (date.getMonth() < 9) {\n m = `0${m}`;\n }\n\n if (date.getDate() < 10) {\n d = `0${d}`;\n }\n\n if (date.getHours() < 10) {\n hC = `0${hC}`;\n }\n\n if (date.getMinutes() < 10) {\n i = `0${i}`;\n }\n\n return format\n .replace(/\\{j\\}/g, j)\n .replace(/\\{d\\}/g, d)\n .replace(/\\{D\\}/g, D)\n .replace(/\\{l\\}/g, l)\n .replace(/\\{n\\}/g, n)\n .replace(/\\{m\\}/g, m)\n .replace(/\\{F\\}/g, fC)\n .replace(/\\{M\\}/g, mC)\n .replace(/\\{Y\\}/g, yC)\n .replace(/\\{H\\}/g, hC)\n .replace(/\\{G\\}/g, gC)\n .replace(/\\{i\\}/g, i);\n };\n\n const globalParser = function (parse, input) {\n if (!input) {\n return;\n }\n\n const regex = new RegExp(parse);\n const match = input.match(regex);\n\n if (match) {\n const { groups } = match;\n\n const year = parseInt(groups.Y || '', 10);\n const month = parseInt(groups.n || groups.m || '', 10);\n const day = parseInt(groups.j || groups.d || '', 10);\n const hours = parseInt(groups.G || groups.H || '', 10);\n const minutes = parseInt(groups.i || '', 10);\n\n if (!isNaN(year) && (year < 1000 || year > 9999)) {\n return;\n }\n\n if (!isNaN(month) && (month < 1 || month > 12)) {\n return;\n }\n\n // we check day later again (if month changed, it was out of range)\n if (!isNaN(day) && (day < 1 || day > 31)) {\n return;\n }\n\n if (!isNaN(hours) && (hours < 0 || hours > 23)) {\n return;\n }\n\n if (!isNaN(minutes) && (minutes < 0 || minutes > 59)) {\n return;\n }\n\n const date = new Date(\n !isNaN(year) ? year : null,\n !isNaN(month) ? month - 1 : null,\n !isNaN(day) ? day : null,\n !isNaN(hours) ? hours : null,\n !isNaN(minutes) ? minutes : null\n );\n\n // if day was out of possible range (1 - 28/29/30/31)\n // we find out by check if month has changed\n if (date.getMonth() + 1 !== month) {\n return;\n }\n\n return date;\n }\n };\n\n const globalAdapter = {\n format: function (date, type = 'datetime') {\n const dateFormats = {\n ...formats[type],\n ...(window.stzhComponents?.formats[type] || {})\n };\n\n if (typeof dateFormats.format === 'string') {\n return globalFormatter(dateFormats.format, date);\n } else {\n return dateFormats.format(date);\n }\n },\n parse: function (input, type = 'datetime') {\n const dateFormats = {\n ...formats[type],\n ...(window.stzhComponents?.formats[type] || {})\n };\n\n if (typeof dateFormats.parse === 'string') {\n return globalParser(dateFormats.parse, input);\n } else {\n return dateFormats.parse(input);\n }\n },\n formatSpan: function (date, date2, type = 'datetime') {\n let formattedDate = date;\n let formattedDate2 = date2;\n\n if (date instanceof Date && !isNaN(date.getTime())) {\n formattedDate = this.format(date, type);\n }\n\n if (date2 instanceof Date && !isNaN(date2.getTime())) {\n formattedDate2 = this.format(date2, type);\n }\n\n let range = globals.dateRange;\n\n if (type.startsWith('time')) {\n range = globals.timeRange;\n }\n\n return (\n formattedDate +\n (formattedDate2 &&\n (!(formattedDate2 instanceof Date) || (formattedDate2 instanceof Date && !isNaN(date.getTime())))\n ? range + formattedDate2\n : '')\n );\n },\n parseSpan: function (string, type) {\n let range = globals.dateRange;\n\n if (type.startsWith('time')) {\n range = globals.timeRange;\n }\n\n const dates = string.split(range);\n const date = this.parse(dates[0], type);\n const date2 = this.parse(dates[1], type);\n\n return [date, date2, range];\n }\n };\n\n return globalAdapter;\n}\n\nexport function getLocale(element) {\n const closestElement = element.closest('[lang]');\n const locale = closestElement && closestElement.lang.split('-')[0];\n\n if (window.stzhComponents.supportedLocales.indexOf(locale) === -1 || !locale) {\n return window.stzhComponents.defaultLocale;\n } else {\n return locale;\n }\n}\n\nexport async function fetchTranslations(host, component) {\n const locale = getLocale(host);\n const existingTranslations = JSON.parse(\n sessionStorage.getItem(`stzhComponents.v${window.stzhComponents.version}.i18n.${locale}`)\n );\n\n if (window.stzhComponents.cacheTranslations && existingTranslations && Object.keys(existingTranslations).length > 0) {\n return {\n ...(existingTranslations[component] || {}),\n $globals: existingTranslations.$globals,\n $locale: existingTranslations.$code,\n $formats: existingTranslations.$formats,\n $formatsIso: existingTranslations.$formatsIso,\n $formatsLegacy: existingTranslations.$formatsLegacy\n };\n }\n\n try {\n const result = await fetch(`${window.stzhComponents.pathTranslations}/${locale}.json`);\n\n if (result.ok) {\n const data = await result.json();\n sessionStorage.setItem(`stzhComponents.v${window.stzhComponents.version}.i18n.${locale}`, JSON.stringify(data));\n return {\n ...(data[component] || {}),\n $globals: data.$globals,\n $locale: data.$code,\n $formats: data.$formats,\n $formatsIso: data.$formatsIso,\n $formatsLegacy: data.$formatsLegacy\n };\n }\n } catch (exception) {\n console.error(`Error loading locale: ${locale}`, exception);\n }\n}\n","import { version } from '../../../package.json';\nimport { applyAutofocus } from './helpers/autofocus';\nimport { observeScrollbarWidth } from './helpers/scrollbar-width';\nimport * as utils from './helpers/utils';\n\nexport default function () {\n window.stzhComponents = {\n defaultLocale: 'de',\n pathMedia: '/',\n pathTranslations: '/',\n cacheTranslations: true,\n formats: {},\n translations: null,\n fixAutofocus: true,\n fixHashfocus: true,\n ...window.stzhComponents || {},\n version,\n supportedLocales: ['de', 'en'],\n utils\n };\n\n if (window.stzhComponents.translations === null) {\n window.stzhComponents.translationsLoading = utils.fetchTranslations(document.documentElement).then((translations) => {\n window.stzhComponents.translations = translations;\n }).catch((reason) => {\n console.error(\"Translations couldn't load:\", reason)\n });\n }\n\n applyAutofocus();\n observeScrollbarWidth();\n}\n","import appGlobalScript from '/builds/OE-5041/desi/desi-code/stzh-components/src/global/js/script.js';\nexport const globalScripts = appGlobalScript;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["packageName","packageNameScoped","substring","indexOf","debouncedFocus","event","autofocus","document","querySelector","window","stzhComponents","fixAutofocus","location","hash","detail","namespace","tagName","toLowerCase","focus","fixHashfocus","hashElement","scrollIntoView","applyAutofocus","addEventListener","observeScrollbarWidth","config","threshold","handleIntersect","entries","forEach","entry","scrollbarWidth","intersectionRatio","innerWidth","documentElement","clientWidth","style","setProperty","bodyScrollObserver","IntersectionObserver","observe","body","format","date","type","translations","console","log","$formats","$globals","adapter","createFormatParseAdapter","parse","string","formatSpan","date2","parseSpan","formats","globals","globalFormatter","Date","isNaN","getTime","j","getDate","toString","d","n","getMonth","m","yC","getFullYear","gC","getHours","hC","i","getMinutes","fC","monthNames","mC","monthNamesShort","l","dayNames","getDay","D","dayNamesShort","replace","globalParser","input","regex","RegExp","match","groups","year","parseInt","Y","month","day","hours","G","H","minutes","globalAdapter","dateFormats","formattedDate","formattedDate2","this","range","dateRange","startsWith","timeRange","dates","split","getLocale","element","closestElement","closest","locale","lang","supportedLocales","defaultLocale","async","fetchTranslations","host","component","existingTranslations","JSON","sessionStorage","getItem","version","cacheTranslations","Object","keys","length","$locale","$code","$formatsIso","$formatsLegacy","result","fetch","pathTranslations","ok","data","json","setItem","stringify","exception","error","assign","pathMedia","utils","translationsLoading","then","catch","reason","globalScripts","appGlobalScript"],"sources":["src/global/js/helpers/autofocus.js","src/global/js/helpers/scrollbar-width.js","src/global/js/helpers/utils.js","src/global/js/script.js","@stencil/core/internal/app-globals"],"sourcesContent":["import { name as packageNameScoped } from '../../../../package.json';\n\nconst packageName = packageNameScoped.substring(packageNameScoped.indexOf('/')+1);\n// let focused = false;\n\n// function debounce(func, timeout = 500){\n// let timer;\n// return (...args) => {\n// clearTimeout(timer);\n// timer = setTimeout(() => { func.apply(this, args); }, timeout);\n// };\n// }\n\nconst debouncedFocus = (event) => {\n // if (focused) {\n // return false;\n // }\n\n const autofocus = document.querySelector('[autofocus]');\n\n if (window.stzhComponents.fixAutofocus\n && !document.location.hash\n && autofocus\n && event.detail.namespace === packageName\n && autofocus.tagName.toLowerCase().indexOf('stzh-') === 0\n && 'focus' in autofocus\n ) {\n autofocus.focus();\n // focused = true;\n } else if (window.stzhComponents.fixHashfocus && document.location.hash) {\n const hashElement = document.querySelector(document.location.hash);\n\n if (hashElement) {\n hashElement.scrollIntoView();\n // focused = true;\n }\n }\n}\n\n/**\n * Execute setFocus method if it exists\n * on stzh-element with autofocus on pageload\n * when (child components are loaded)\n */\nexport function applyAutofocus() {\n window.addEventListener('appload', debouncedFocus);\n}\n","export function observeScrollbarWidth() {\n const config = {\n threshold: 1.0\n };\n\n const handleIntersect = (entries) => {\n entries.forEach(entry => {\n let scrollbarWidth = 0;\n\n if (entry.intersectionRatio < 1) {\n // scrollbarWidth = window.innerWidth - document.body.clientWidth;\n scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n }\n\n document.documentElement.style.setProperty('--stzh-scrollbar-width', scrollbarWidth + 'px');\n document.documentElement.style.setProperty('--stzh-scrollbar-active', scrollbarWidth > 0 ? '1' : '0');\n });\n };\n\n const bodyScrollObserver = new IntersectionObserver(handleIntersect, config);\n bodyScrollObserver.observe(document.body);\n}\n","export function format(date, type = 'datetime') {\n if (!window.stzhComponents.translations) {\n console.log('Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`');\n return;\n }\n\n const { $formats, $globals } = window.stzhComponents.translations;\n const adapter = createFormatParseAdapter($formats, $globals);\n return adapter.format(date, type);\n}\n\nexport function parse(string, type = 'datetime') {\n if (!window.stzhComponents.translations) {\n console.log('Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`');\n return;\n }\n\n const { $formats, $globals } = window.stzhComponents.translations;\n const adapter = createFormatParseAdapter($formats, $globals);\n return adapter.parse(string, type);\n}\n\nexport function formatSpan(date, date2, type = 'datetime') {\n if (!window.stzhComponents.translations) {\n console.log('Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`');\n return;\n }\n\n const { $formats, $globals } = window.stzhComponents.translations;\n const adapter = createFormatParseAdapter($formats, $globals);\n return adapter.formatSpan(date, date2, type);\n}\n\nexport function parseSpan(string, type = 'datetime') {\n if (!window.stzhComponents.translations) {\n console.log('Translations not loaded yet, check for Promise `window.stzhComponents.translationsLoading`');\n return;\n }\n\n const { $formats, $globals } = window.stzhComponents.translations;\n const adapter = createFormatParseAdapter($formats, $globals);\n return adapter.parseSpan(string, type);\n}\n\nexport function createFormatParseAdapter(formats, globals) {\n // format letters from https://www.php.net/manual/de/datetime.format.php\n const globalFormatter = function (format, date) {\n if (!date || !(date instanceof Date) || isNaN(date.getTime())) {\n return '';\n }\n\n let j = date.getDate().toString(10);\n let d = j;\n let n = (date.getMonth() + 1).toString(10);\n let m = n;\n let yC = date.getFullYear().toString(10);\n let gC = date.getHours().toString(10);\n let hC = gC;\n let i = date.getMinutes().toString(10);\n\n // full textual representation of a month\n let fC = globals.monthNames[date.getMonth()];\n // short textual representation of a month\n let mC = globals.monthNamesShort[date.getMonth()];\n // full textual representation of the day\n let l = globals.dayNames[date.getDay()];\n // short textual representation of the day\n let D = globals.dayNamesShort[date.getDay()];\n\n // months *are* zero-indexed, pad if less than 9!\n if (date.getMonth() < 9) {\n m = `0${m}`;\n }\n\n if (date.getDate() < 10) {\n d = `0${d}`;\n }\n\n if (date.getHours() < 10) {\n hC = `0${hC}`;\n }\n\n if (date.getMinutes() < 10) {\n i = `0${i}`;\n }\n\n return format\n .replace(/\\{j\\}/g, j)\n .replace(/\\{d\\}/g, d)\n .replace(/\\{D\\}/g, D)\n .replace(/\\{l\\}/g, l)\n .replace(/\\{n\\}/g, n)\n .replace(/\\{m\\}/g, m)\n .replace(/\\{F\\}/g, fC)\n .replace(/\\{M\\}/g, mC)\n .replace(/\\{Y\\}/g, yC)\n .replace(/\\{H\\}/g, hC)\n .replace(/\\{G\\}/g, gC)\n .replace(/\\{i\\}/g, i);\n };\n\n const globalParser = function (parse, input) {\n if (!input) {\n return;\n }\n\n const regex = new RegExp(parse);\n const match = input.match(regex);\n\n if (match) {\n const { groups } = match;\n\n const year = parseInt(groups.Y || '', 10);\n const month = parseInt(groups.n || groups.m || '', 10);\n const day = parseInt(groups.j || groups.d || '', 10);\n const hours = parseInt(groups.G || groups.H || '', 10);\n const minutes = parseInt(groups.i || '', 10);\n\n if (!isNaN(year) && (year < 1000 || year > 9999)) {\n return;\n }\n\n if (!isNaN(month) && (month < 1 || month > 12)) {\n return;\n }\n\n // we check day later again (if month changed, it was out of range)\n if (!isNaN(day) && (day < 1 || day > 31)) {\n return;\n }\n\n if (!isNaN(hours) && (hours < 0 || hours > 23)) {\n return;\n }\n\n if (!isNaN(minutes) && (minutes < 0 || minutes > 59)) {\n return;\n }\n\n const date = new Date(\n !isNaN(year) ? year : null,\n !isNaN(month) ? month - 1 : null,\n !isNaN(day) ? day : null,\n !isNaN(hours) ? hours : null,\n !isNaN(minutes) ? minutes : null\n );\n\n // if day was out of possible range (1 - 28/29/30/31)\n // we find out by check if month has changed\n if (date.getMonth() + 1 !== month) {\n return;\n }\n\n return date;\n }\n };\n\n const globalAdapter = {\n format: function (date, type = 'datetime') {\n const dateFormats = {\n ...formats[type],\n ...(window.stzhComponents?.formats[type] || {})\n };\n\n if (typeof dateFormats.format === 'string') {\n return globalFormatter(dateFormats.format, date);\n } else {\n return dateFormats.format(date);\n }\n },\n parse: function (input, type = 'datetime') {\n const dateFormats = {\n ...formats[type],\n ...(window.stzhComponents?.formats[type] || {})\n };\n\n if (typeof dateFormats.parse === 'string') {\n return globalParser(dateFormats.parse, input);\n } else {\n return dateFormats.parse(input);\n }\n },\n formatSpan: function (date, date2, type = 'datetime') {\n let formattedDate = date;\n let formattedDate2 = date2;\n\n if (date instanceof Date && !isNaN(date.getTime())) {\n formattedDate = this.format(date, type);\n }\n\n if (date2 instanceof Date && !isNaN(date2.getTime())) {\n formattedDate2 = this.format(date2, type);\n }\n\n let range = globals.dateRange;\n\n if (type.startsWith('time')) {\n range = globals.timeRange;\n }\n\n return (\n formattedDate +\n (formattedDate2 &&\n (!(formattedDate2 instanceof Date) || (formattedDate2 instanceof Date && !isNaN(date.getTime())))\n ? range + formattedDate2\n : '')\n );\n },\n parseSpan: function (string, type) {\n let range = globals.dateRange;\n\n if (type.startsWith('time')) {\n range = globals.timeRange;\n }\n\n const dates = string.split(range);\n const date = this.parse(dates[0], type);\n const date2 = this.parse(dates[1], type);\n\n return [date, date2, range];\n }\n };\n\n return globalAdapter;\n}\n\nexport function getLocale(element) {\n const closestElement = element.closest('[lang]');\n const locale = closestElement && closestElement.lang.split('-')[0];\n\n if (window.stzhComponents.supportedLocales.indexOf(locale) === -1 || !locale) {\n return window.stzhComponents.defaultLocale;\n } else {\n return locale;\n }\n}\n\nexport async function fetchTranslations(host, component) {\n const locale = getLocale(host);\n const existingTranslations = JSON.parse(\n sessionStorage.getItem(`stzhComponents.v${window.stzhComponents.version}.i18n.${locale}`)\n );\n\n if (window.stzhComponents.cacheTranslations && existingTranslations && Object.keys(existingTranslations).length > 0) {\n return {\n ...(existingTranslations[component] || {}),\n $globals: existingTranslations.$globals,\n $locale: existingTranslations.$code,\n $formats: existingTranslations.$formats,\n $formatsIso: existingTranslations.$formatsIso,\n $formatsLegacy: existingTranslations.$formatsLegacy\n };\n }\n\n try {\n const result = await fetch(`${window.stzhComponents.pathTranslations}/${locale}.json`);\n\n if (result.ok) {\n const data = await result.json();\n sessionStorage.setItem(`stzhComponents.v${window.stzhComponents.version}.i18n.${locale}`, JSON.stringify(data));\n return {\n ...(data[component] || {}),\n $globals: data.$globals,\n $locale: data.$code,\n $formats: data.$formats,\n $formatsIso: data.$formatsIso,\n $formatsLegacy: data.$formatsLegacy\n };\n }\n } catch (exception) {\n console.error(`Error loading locale: ${locale}`, exception);\n }\n}\n","import { version } from '../../../package.json';\nimport { applyAutofocus } from './helpers/autofocus';\nimport { observeScrollbarWidth } from './helpers/scrollbar-width';\nimport * as utils from './helpers/utils';\n\nexport default function () {\n window.stzhComponents = {\n defaultLocale: 'de',\n pathMedia: '/',\n pathTranslations: '/',\n cacheTranslations: true,\n formats: {},\n translations: null,\n fixAutofocus: true,\n fixHashfocus: true,\n ...window.stzhComponents || {},\n version,\n supportedLocales: ['de', 'en'],\n utils\n };\n\n if (window.stzhComponents.translations === null) {\n window.stzhComponents.translationsLoading = utils.fetchTranslations(document.documentElement).then((translations) => {\n window.stzhComponents.translations = translations;\n }).catch((reason) => {\n console.error(\"Translations couldn't load:\", reason)\n });\n }\n\n applyAutofocus();\n observeScrollbarWidth();\n}\n","import appGlobalScript from '/builds/OE-5041/desi/desi-code/stzh-components/src/global/js/script.js';\nexport const globalScripts = appGlobalScript;\n"],"mappings":"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"}
|