@oiz/stzh-components 3.0.0-beta5 → 3.0.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-82cc9313.js → app-globals-1d1f8f2e.js} +2 -2
- package/dist/cjs/{app-globals-82cc9313.js.map → app-globals-1d1f8f2e.js.map} +1 -1
- package/dist/cjs/index-92254d32.js +16 -8
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stzh-actions.cjs.entry.js +8 -2
- package/dist/cjs/stzh-actions.cjs.entry.js.map +1 -1
- 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-breadcrumb_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-breadcrumb_2.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-card_3.cjs.entry.js +2 -0
- package/dist/cjs/stzh-card_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-carousel.cjs.entry.js +1 -2
- package/dist/cjs/stzh-carousel.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-chart.cjs.entry.js +1 -1
- package/dist/cjs/stzh-chart.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-checkboxgroup.cjs.entry.js +9 -10
- package/dist/cjs/stzh-checkboxgroup.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-components.cjs.js +2 -2
- package/dist/cjs/stzh-content.cjs.entry.js +1 -1
- package/dist/cjs/stzh-content.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-cspace.cjs.entry.js +1 -1
- package/dist/cjs/stzh-cspace.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-cta.cjs.entry.js +1 -1
- package/dist/cjs/stzh-cta.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-datalist_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-datalist_2.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-datepicker_3.cjs.entry.js +8 -10
- package/dist/cjs/stzh-datepicker_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-details.cjs.entry.js +162 -0
- package/dist/cjs/stzh-details.cjs.entry.js.map +1 -0
- package/dist/cjs/stzh-eventdata.cjs.entry.js +26 -0
- package/dist/cjs/stzh-eventdata.cjs.entry.js.map +1 -0
- package/dist/cjs/stzh-eventinfo.cjs.entry.js +43 -4
- package/dist/cjs/stzh-eventinfo.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-footer.cjs.entry.js +1 -1
- package/dist/cjs/stzh-footer.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-gallery.cjs.entry.js +1 -1
- package/dist/cjs/stzh-gallery.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-header.cjs.entry.js +0 -1
- package/dist/cjs/stzh-header.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-imagecomparison.cjs.entry.js +1 -1
- package/dist/cjs/stzh-imagecomparison.cjs.entry.js.map +1 -1
- package/dist/cjs/{stzh-details_2.cjs.entry.js → stzh-message.cjs.entry.js} +1 -155
- package/dist/cjs/stzh-message.cjs.entry.js.map +1 -0
- package/dist/cjs/stzh-monthyearpicker.cjs.entry.js +18 -2
- package/dist/cjs/stzh-monthyearpicker.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-pagebottom.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-pagetitle.cjs.entry.js +2 -1
- package/dist/cjs/stzh-pagetitle.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-popover_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-popover_2.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-readspeaker.cjs.entry.js +1 -1
- package/dist/cjs/stzh-readspeaker.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-search.cjs.entry.js +1 -1
- package/dist/cjs/stzh-search.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js +1 -1
- package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-textandimage.cjs.entry.js +3 -2
- package/dist/cjs/stzh-textandimage.cjs.entry.js.map +1 -1
- package/dist/collection/assets/i18n/de.json +3 -1
- package/dist/collection/assets/i18n/en.json +3 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/stzh-accordion/stzh-accordion.css +3 -3
- package/dist/collection/components/stzh-accordion-item/stzh-accordion-item.css +3 -3
- package/dist/collection/components/stzh-actions/stzh-actions.css +27 -7
- package/dist/collection/components/stzh-actions/stzh-actions.js +8 -1
- package/dist/collection/components/stzh-actions/stzh-actions.js.map +1 -1
- package/dist/collection/components/stzh-actions/stzh-actions.stories.js +2 -2
- package/dist/collection/components/stzh-actionset/stzh-actionset.css +3 -3
- package/dist/collection/components/stzh-amount/stzh-amount.css +3 -3
- package/dist/collection/components/stzh-anchornav/stzh-anchornav.css +3 -3
- package/dist/collection/components/stzh-appointments/stzh-appointments.css +3 -3
- package/dist/collection/components/stzh-archivelist/stzh-archivelist.css +3 -3
- package/dist/collection/components/stzh-audio/stzh-audio.css +3 -3
- package/dist/collection/components/stzh-badge/stzh-badge.css +3 -3
- package/dist/collection/components/stzh-banner/stzh-banner.css +3 -3
- package/dist/collection/components/stzh-breadcrumb/stzh-breadcrumb.css +8 -3
- package/dist/collection/components/stzh-button/stzh-button.css +3 -3
- package/dist/collection/components/stzh-buttongroup/stzh-buttongroup.css +3 -3
- package/dist/collection/components/stzh-calendar/stzh-calendar.css +3 -3
- package/dist/collection/components/stzh-card/stzh-card.css +3 -3
- package/dist/collection/components/stzh-card-navigation/stzh-card-navigation.css +3 -3
- package/dist/collection/components/stzh-card-navigation/stzh-card-navigation.stories.js +1 -1
- package/dist/collection/components/stzh-card-searchresult/stzh-card-searchresult.css +3 -3
- package/dist/collection/components/stzh-card-superteaser/stzh-card-superteaser.css +3 -3
- package/dist/collection/components/stzh-cardlist/stzh-cardlist.css +3 -3
- package/dist/collection/components/stzh-carousel/stzh-carousel.css +8 -3
- package/dist/collection/components/stzh-carousel/stzh-carousel.js +0 -1
- package/dist/collection/components/stzh-carousel/stzh-carousel.js.map +1 -1
- package/dist/collection/components/stzh-cell/stzh-cell.css +3 -3
- package/dist/collection/components/stzh-chart/stzh-chart.css +6 -3
- package/dist/collection/components/stzh-checkbox/stzh-checkbox.css +3 -3
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.css +3 -3
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js +9 -12
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.js.map +1 -1
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.stories.js +9 -0
- package/dist/collection/components/stzh-chip/stzh-chip.css +3 -3
- package/dist/collection/components/stzh-chipgroup/stzh-chipgroup.css +3 -3
- package/dist/collection/components/stzh-chipselect/stzh-chipselect.css +3 -3
- package/dist/collection/components/stzh-chipselect/stzh-chipselect.js +2 -0
- package/dist/collection/components/stzh-chipselect/stzh-chipselect.js.map +1 -1
- package/dist/collection/components/stzh-chipselect/stzh-chipselect.stories.js +2 -2
- package/dist/collection/components/stzh-clamp/stzh-clamp.css +3 -3
- package/dist/collection/components/stzh-contact/stzh-contact.css +3 -3
- package/dist/collection/components/stzh-container/stzh-container.css +3 -3
- package/dist/collection/components/stzh-content/stzh-content.css +7 -5
- package/dist/collection/components/stzh-cspace/stzh-cspace.css +9 -9
- package/dist/collection/components/stzh-cta/stzh-cta.css +8 -3
- package/dist/collection/components/stzh-datalist/stzh-datalist.css +3 -3
- package/dist/collection/components/stzh-datalist-item/stzh-datalist-item.css +9 -69
- package/dist/collection/components/stzh-datamessagelist/stzh-datamessagelist.css +3 -3
- package/dist/collection/components/stzh-datamessagelist-item/stzh-datamessagelist-item.css +3 -3
- package/dist/collection/components/stzh-datatable/stzh-datatable.css +3 -3
- package/dist/collection/components/stzh-datepicker/stzh-datepicker.css +3 -3
- package/dist/collection/components/stzh-daterange/stzh-daterange.css +3 -3
- package/dist/collection/components/stzh-details/stzh-details.css +3 -3
- package/dist/collection/components/stzh-dialog/stzh-dialog.css +3 -3
- package/dist/collection/components/stzh-disturber/stzh-disturber.css +3 -3
- package/dist/collection/components/stzh-dropdown/stzh-dropdown.css +3 -3
- package/dist/collection/components/stzh-editor/stzh-editor.css +3 -3
- package/dist/collection/components/stzh-eventdata/stzh-eventdata.css +210 -0
- package/dist/collection/components/stzh-eventdata/stzh-eventdata.e2e.js +18 -0
- package/dist/collection/components/stzh-eventdata/stzh-eventdata.e2e.js.map +1 -0
- package/dist/collection/components/stzh-eventdata/stzh-eventdata.js +52 -0
- package/dist/collection/components/stzh-eventdata/stzh-eventdata.js.map +1 -0
- package/dist/collection/components/stzh-eventdata/stzh-eventdata.stories.js +44 -0
- package/dist/collection/components/stzh-eventinfo/stzh-eventinfo.css +157 -12
- package/dist/collection/components/stzh-eventinfo/stzh-eventinfo.js +122 -4
- package/dist/collection/components/stzh-eventinfo/stzh-eventinfo.js.map +1 -1
- package/dist/collection/components/stzh-eventinfo/stzh-eventinfo.localization.js.map +1 -1
- package/dist/collection/components/stzh-eventinfo/stzh-eventinfo.stories.js +14 -1
- package/dist/collection/components/stzh-fieldset/stzh-fieldset.css +3 -3
- package/dist/collection/components/stzh-figure/stzh-figure.css +3 -3
- package/dist/collection/components/stzh-flyingfocus/stzh-flyingfocus.css +3 -3
- package/dist/collection/components/stzh-footer/stzh-footer.css +7 -4
- package/dist/collection/components/stzh-gallery/stzh-gallery.css +9 -3
- package/dist/collection/components/stzh-ghettobox/stzh-ghettobox.css +3 -3
- package/dist/collection/components/stzh-header/stzh-header.css +3 -3
- package/dist/collection/components/stzh-header/stzh-header.js +0 -1
- package/dist/collection/components/stzh-header/stzh-header.js.map +1 -1
- package/dist/collection/components/stzh-heading/stzh-heading.css +3 -3
- package/dist/collection/components/stzh-hr/stzh-hr.css +3 -3
- package/dist/collection/components/stzh-hspace/stzh-hspace.css +3 -3
- package/dist/collection/components/stzh-icon/stzh-icon.css +9 -3
- package/dist/collection/components/stzh-iframe/stzh-iframe.css +3 -3
- package/dist/collection/components/stzh-imagecomparison/stzh-imagecomparison.css +10 -3
- package/dist/collection/components/stzh-input/stzh-input.css +3 -3
- package/dist/collection/components/stzh-invert/stzh-invert.css +3 -3
- package/dist/collection/components/stzh-link/stzh-link.css +3 -3
- package/dist/collection/components/stzh-list/stzh-list.css +3 -3
- package/dist/collection/components/stzh-list-item/stzh-list-item.css +3 -3
- package/dist/collection/components/stzh-loader/stzh-loader.css +3 -3
- package/dist/collection/components/stzh-loadingbar/stzh-loadingbar.css +3 -3
- package/dist/collection/components/stzh-menu/stzh-menu.css +3 -3
- package/dist/collection/components/stzh-menu-item/stzh-menu-item.css +3 -3
- package/dist/collection/components/stzh-message/stzh-message.css +3 -3
- package/dist/collection/components/stzh-microsite-teaserlist/stzh-microsite-teaserlist.css +3 -3
- package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.css +3 -3
- package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.js +36 -4
- package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.js.map +1 -1
- package/dist/collection/components/stzh-olmap/stzh-olmap.css +3 -3
- package/dist/collection/components/stzh-overlay/stzh-overlay.css +3 -3
- package/dist/collection/components/stzh-page-skiplinks/stzh-page-skiplinks.css +3 -3
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.css +3 -3
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.js +0 -1
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.js.map +1 -1
- package/dist/collection/components/stzh-pagecontent/stzh-pagecontent.css +3 -3
- package/dist/collection/components/stzh-pagetitle/stzh-pagetitle.css +3 -3
- package/dist/collection/components/stzh-pagetitle/stzh-pagetitle.js +2 -1
- package/dist/collection/components/stzh-pagetitle/stzh-pagetitle.js.map +1 -1
- package/dist/collection/components/stzh-pagetitle-hero/stzh-pagetitle-hero.css +3 -3
- package/dist/collection/components/stzh-pagination/stzh-pagination.css +3 -3
- package/dist/collection/components/stzh-panorama/stzh-panorama.css +3 -3
- package/dist/collection/components/stzh-popover/stzh-popover.css +3 -3
- package/dist/collection/components/stzh-print/stzh-print.css +3 -3
- package/dist/collection/components/stzh-progressbar/stzh-progressbar.css +3 -3
- package/dist/collection/components/stzh-progressbar-item/stzh-progressbar-item.css +3 -3
- package/dist/collection/components/stzh-radio/stzh-radio.css +3 -3
- package/dist/collection/components/stzh-radiogroup/stzh-radiogroup.css +3 -3
- package/dist/collection/components/stzh-radiogroup/stzh-radiogroup.js +8 -12
- package/dist/collection/components/stzh-radiogroup/stzh-radiogroup.js.map +1 -1
- package/dist/collection/components/stzh-radiogroup/stzh-radiogroup.stories.js +10 -0
- package/dist/collection/components/stzh-ratio/stzh-ratio.css +3 -3
- package/dist/collection/components/stzh-readspeaker/stzh-readspeaker.css +8 -3
- package/dist/collection/components/stzh-richtext/stzh-richtext.css +3 -3
- package/dist/collection/components/stzh-row/stzh-row.css +3 -3
- package/dist/collection/components/stzh-saptcha/stzh-saptcha.css +3 -3
- package/dist/collection/components/stzh-scrollup/stzh-scrollup.css +3 -3
- package/dist/collection/components/stzh-search/stzh-search.css +6 -5
- package/dist/collection/components/stzh-section/stzh-section.css +3 -3
- package/dist/collection/components/stzh-share/stzh-share.css +3 -3
- package/dist/collection/components/stzh-show/stzh-show.css +3 -3
- package/dist/collection/components/stzh-sitemap/stzh-sitemap.css +3 -3
- package/dist/collection/components/stzh-skin-portal-mitwirken/stzh-skin-portal-mitwirken.css +18 -3
- package/dist/collection/components/stzh-skin-storybook-preview/stzh-skin-storybook-preview.css +3 -3
- package/dist/collection/components/stzh-skiplink/stzh-skiplink.css +3 -3
- package/dist/collection/components/stzh-sortable/stzh-sortable.css +3 -3
- package/dist/collection/components/stzh-space/stzh-space.css +3 -3
- package/dist/collection/components/stzh-status/stzh-status.css +3 -3
- package/dist/collection/components/stzh-sticky/stzh-sticky.css +3 -3
- package/dist/collection/components/stzh-sticky-actions/stzh-sticky-actions.css +3 -3
- package/dist/collection/components/stzh-table/stzh-table.css +3 -3
- package/dist/collection/components/stzh-tag/stzh-tag.css +3 -3
- package/dist/collection/components/stzh-text/stzh-text.css +4 -4
- package/dist/collection/components/stzh-textandimage/stzh-textandimage.css +9 -3
- package/dist/collection/components/stzh-textandimage/stzh-textandimage.js +2 -1
- package/dist/collection/components/stzh-textandimage/stzh-textandimage.js.map +1 -1
- package/dist/collection/components/stzh-textandimage/stzh-textandimage.stories.js +2 -0
- package/dist/collection/components/stzh-timeline/stzh-timeline.css +3 -3
- package/dist/collection/components/stzh-timeline-item/stzh-timeline-item.css +3 -3
- package/dist/collection/components/stzh-timepicker/stzh-timepicker.css +3 -3
- package/dist/collection/components/stzh-toast/stzh-toast.css +3 -3
- package/dist/collection/components/stzh-toastbar/stzh-toastbar.css +3 -3
- package/dist/collection/components/stzh-toggle/stzh-toggle.css +3 -3
- package/dist/collection/components/stzh-tooltip/stzh-tooltip.css +3 -3
- package/dist/collection/components/stzh-twocolumns/stzh-twocolumns.css +3 -3
- package/dist/collection/components/stzh-upload/stzh-upload.css +3 -3
- package/dist/collection/components/stzh-vbz-carousel/stzh-vbz-carousel.css +3 -3
- package/dist/collection/components/stzh-vbz-linechip/stzh-vbz-linechip.css +3 -3
- package/dist/collection/components/stzh-vbz-majorticker/stzh-vbz-majorticker.css +3 -3
- package/dist/collection/components/stzh-vbz-ticker/stzh-vbz-ticker.css +3 -3
- package/dist/collection/components/stzh-visuallyhidden/stzh-visuallyhidden.css +3 -3
- package/dist/collection/components/stzh-vspace/stzh-vspace.css +3 -3
- package/dist/collection/components/stzh-youtube/stzh-youtube.css +3 -3
- package/dist/collection/pages/website/website.e2e.js +1 -1
- package/dist/collection/pages/website/website.e2e.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/stzh-actions.js +8 -2
- package/dist/components/stzh-actions.js.map +1 -1
- package/dist/components/stzh-breadcrumb2.js +1 -1
- package/dist/components/stzh-breadcrumb2.js.map +1 -1
- package/dist/components/stzh-carousel2.js +1 -2
- package/dist/components/stzh-carousel2.js.map +1 -1
- package/dist/components/stzh-chart.js +1 -1
- package/dist/components/stzh-chart.js.map +1 -1
- package/dist/components/stzh-checkboxgroup.js +10 -12
- package/dist/components/stzh-checkboxgroup.js.map +1 -1
- package/dist/components/stzh-chipselect2.js +2 -0
- package/dist/components/stzh-chipselect2.js.map +1 -1
- package/dist/components/stzh-content.js +1 -1
- package/dist/components/stzh-content.js.map +1 -1
- package/dist/components/stzh-cspace.js +1 -1
- package/dist/components/stzh-cspace.js.map +1 -1
- package/dist/components/stzh-cta.js +1 -1
- package/dist/components/stzh-cta.js.map +1 -1
- package/dist/components/stzh-datalist-item2.js +1 -1
- package/dist/components/stzh-datalist-item2.js.map +1 -1
- package/dist/components/stzh-eventdata.d.ts +11 -0
- package/dist/components/stzh-eventdata.js +41 -0
- package/dist/components/stzh-eventdata.js.map +1 -0
- package/dist/components/stzh-eventinfo.js +50 -8
- package/dist/components/stzh-eventinfo.js.map +1 -1
- package/dist/components/stzh-footer.js +1 -1
- package/dist/components/stzh-footer.js.map +1 -1
- package/dist/components/stzh-gallery.js +1 -1
- package/dist/components/stzh-gallery.js.map +1 -1
- package/dist/components/stzh-header.js +0 -1
- package/dist/components/stzh-header.js.map +1 -1
- package/dist/components/stzh-icon2.js +1 -1
- package/dist/components/stzh-icon2.js.map +1 -1
- package/dist/components/stzh-imagecomparison.js +1 -1
- package/dist/components/stzh-imagecomparison.js.map +1 -1
- package/dist/components/stzh-monthyearpicker.js +19 -2
- package/dist/components/stzh-monthyearpicker.js.map +1 -1
- package/dist/components/stzh-pagebottom.js.map +1 -1
- package/dist/components/stzh-pagetitle.js +2 -1
- package/dist/components/stzh-pagetitle.js.map +1 -1
- package/dist/components/stzh-radiogroup2.js +8 -11
- package/dist/components/stzh-radiogroup2.js.map +1 -1
- package/dist/components/stzh-readspeaker.js +1 -1
- package/dist/components/stzh-readspeaker.js.map +1 -1
- package/dist/components/stzh-search.js +1 -1
- package/dist/components/stzh-search.js.map +1 -1
- package/dist/components/stzh-skin-portal-mitwirken.js +1 -1
- package/dist/components/stzh-skin-portal-mitwirken.js.map +1 -1
- package/dist/components/stzh-text2.js +1 -1
- package/dist/components/stzh-text2.js.map +1 -1
- package/dist/components/stzh-textandimage.js +3 -2
- package/dist/components/stzh-textandimage.js.map +1 -1
- package/dist/esm/{app-globals-d7eff0a5.js → app-globals-f9c4987b.js} +2 -2
- package/dist/esm/{app-globals-d7eff0a5.js.map → app-globals-f9c4987b.js.map} +1 -1
- package/dist/esm/index-e3050b18.js +16 -8
- package/dist/esm/loader.js +2 -2
- package/dist/esm/stzh-actions.entry.js +8 -2
- package/dist/esm/stzh-actions.entry.js.map +1 -1
- 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-breadcrumb_2.entry.js +1 -1
- package/dist/esm/stzh-breadcrumb_2.entry.js.map +1 -1
- package/dist/esm/stzh-card_3.entry.js +2 -0
- package/dist/esm/stzh-card_3.entry.js.map +1 -1
- package/dist/esm/stzh-carousel.entry.js +1 -2
- package/dist/esm/stzh-carousel.entry.js.map +1 -1
- package/dist/esm/stzh-chart.entry.js +1 -1
- package/dist/esm/stzh-chart.entry.js.map +1 -1
- package/dist/esm/stzh-checkboxgroup.entry.js +9 -10
- package/dist/esm/stzh-checkboxgroup.entry.js.map +1 -1
- package/dist/esm/stzh-components.js +2 -2
- package/dist/esm/stzh-content.entry.js +1 -1
- package/dist/esm/stzh-content.entry.js.map +1 -1
- package/dist/esm/stzh-cspace.entry.js +1 -1
- package/dist/esm/stzh-cspace.entry.js.map +1 -1
- package/dist/esm/stzh-cta.entry.js +1 -1
- package/dist/esm/stzh-cta.entry.js.map +1 -1
- package/dist/esm/stzh-datalist_2.entry.js +1 -1
- package/dist/esm/stzh-datalist_2.entry.js.map +1 -1
- package/dist/esm/stzh-datepicker_3.entry.js +8 -10
- package/dist/esm/stzh-datepicker_3.entry.js.map +1 -1
- package/dist/esm/stzh-details.entry.js +158 -0
- package/dist/esm/stzh-details.entry.js.map +1 -0
- package/dist/esm/stzh-eventdata.entry.js +22 -0
- package/dist/esm/stzh-eventdata.entry.js.map +1 -0
- package/dist/esm/stzh-eventinfo.entry.js +43 -4
- package/dist/esm/stzh-eventinfo.entry.js.map +1 -1
- package/dist/esm/stzh-footer.entry.js +1 -1
- package/dist/esm/stzh-footer.entry.js.map +1 -1
- package/dist/esm/stzh-gallery.entry.js +1 -1
- package/dist/esm/stzh-gallery.entry.js.map +1 -1
- package/dist/esm/stzh-header.entry.js +0 -1
- package/dist/esm/stzh-header.entry.js.map +1 -1
- package/dist/esm/stzh-imagecomparison.entry.js +1 -1
- package/dist/esm/stzh-imagecomparison.entry.js.map +1 -1
- package/dist/esm/{stzh-details_2.entry.js → stzh-message.entry.js} +2 -155
- package/dist/esm/stzh-message.entry.js.map +1 -0
- package/dist/esm/stzh-monthyearpicker.entry.js +18 -2
- package/dist/esm/stzh-monthyearpicker.entry.js.map +1 -1
- package/dist/esm/stzh-pagebottom.entry.js.map +1 -1
- package/dist/esm/stzh-pagetitle.entry.js +2 -1
- package/dist/esm/stzh-pagetitle.entry.js.map +1 -1
- package/dist/esm/stzh-popover_2.entry.js +1 -1
- package/dist/esm/stzh-popover_2.entry.js.map +1 -1
- package/dist/esm/stzh-readspeaker.entry.js +1 -1
- package/dist/esm/stzh-readspeaker.entry.js.map +1 -1
- package/dist/esm/stzh-search.entry.js +1 -1
- package/dist/esm/stzh-search.entry.js.map +1 -1
- package/dist/esm/stzh-skin-portal-mitwirken.entry.js +1 -1
- package/dist/esm/stzh-skin-portal-mitwirken.entry.js.map +1 -1
- package/dist/esm/stzh-textandimage.entry.js +3 -2
- package/dist/esm/stzh-textandimage.entry.js.map +1 -1
- package/dist/stzh-components/assets/i18n/de.json +3 -1
- package/dist/stzh-components/assets/i18n/en.json +3 -1
- package/dist/stzh-components/p-14177ccb.entry.js +2 -0
- package/dist/stzh-components/p-14177ccb.entry.js.map +1 -0
- package/dist/stzh-components/p-161ae3d1.entry.js +2 -0
- package/dist/stzh-components/p-161ae3d1.entry.js.map +1 -0
- package/dist/stzh-components/{p-93721591.entry.js → p-1a19bc6e.entry.js} +2 -2
- package/dist/stzh-components/p-1a19bc6e.entry.js.map +1 -0
- package/dist/stzh-components/p-1a3dcde3.entry.js +2 -0
- package/dist/stzh-components/p-1a3dcde3.entry.js.map +1 -0
- package/dist/stzh-components/p-2096f3c6.entry.js +2 -0
- package/dist/stzh-components/p-2096f3c6.entry.js.map +1 -0
- package/dist/stzh-components/p-27d5ad01.entry.js +2 -0
- package/dist/stzh-components/p-27d5ad01.entry.js.map +1 -0
- package/dist/stzh-components/p-3f0d3919.entry.js +2 -0
- package/dist/stzh-components/p-3f0d3919.entry.js.map +1 -0
- package/dist/stzh-components/p-429d2a9b.entry.js +2 -0
- package/dist/stzh-components/p-429d2a9b.entry.js.map +1 -0
- package/dist/stzh-components/{p-e5cfdb8a.entry.js → p-5b1bc446.entry.js} +2 -2
- package/dist/stzh-components/{p-e5cfdb8a.entry.js.map → p-5b1bc446.entry.js.map} +1 -1
- package/dist/stzh-components/{p-0aabd857.entry.js → p-663f31a2.entry.js} +2 -2
- package/dist/stzh-components/p-663f31a2.entry.js.map +1 -0
- package/dist/stzh-components/{p-1be90089.entry.js → p-6f87ad6e.entry.js} +2 -2
- package/dist/stzh-components/{p-1be90089.entry.js.map → p-6f87ad6e.entry.js.map} +1 -1
- package/dist/stzh-components/p-7aac960b.entry.js +2 -0
- package/dist/stzh-components/p-7aac960b.entry.js.map +1 -0
- package/dist/stzh-components/p-8f19c3ec.entry.js +2 -0
- package/dist/stzh-components/p-8f19c3ec.entry.js.map +1 -0
- package/dist/stzh-components/p-91b360c9.entry.js +2 -0
- package/dist/stzh-components/{p-d028e43d.entry.js.map → p-91b360c9.entry.js.map} +1 -1
- package/dist/stzh-components/p-91d7c08d.entry.js +2 -0
- package/dist/stzh-components/p-91d7c08d.entry.js.map +1 -0
- package/dist/stzh-components/{p-f2ec1ede.entry.js → p-929c5234.entry.js} +2 -2
- package/dist/stzh-components/{p-f2ec1ede.entry.js.map → p-929c5234.entry.js.map} +1 -1
- package/dist/stzh-components/p-94947ab0.entry.js.map +1 -1
- package/dist/stzh-components/p-97df1d9f.entry.js +2 -0
- package/dist/stzh-components/p-97df1d9f.entry.js.map +1 -0
- package/dist/stzh-components/{p-9f9d53a0.entry.js → p-9b19785c.entry.js} +2 -2
- package/dist/stzh-components/p-9b19785c.entry.js.map +1 -0
- package/dist/stzh-components/{p-1a50b64a.entry.js → p-ab2aee99.entry.js} +2 -2
- package/dist/stzh-components/{p-1a50b64a.entry.js.map → p-ab2aee99.entry.js.map} +1 -1
- package/dist/stzh-components/p-af7562ba.entry.js +2 -0
- package/dist/stzh-components/p-af7562ba.entry.js.map +1 -0
- package/dist/stzh-components/{p-0bf70420.entry.js → p-af87b81a.entry.js} +2 -2
- package/dist/stzh-components/p-af87b81a.entry.js.map +1 -0
- package/dist/stzh-components/p-c9eecee7.entry.js +2 -0
- package/dist/stzh-components/p-c9eecee7.entry.js.map +1 -0
- package/dist/stzh-components/{p-3fa1c5a4.entry.js → p-ee82f53c.entry.js} +2 -2
- package/dist/stzh-components/{p-3fa1c5a4.entry.js.map → p-ee82f53c.entry.js.map} +1 -1
- package/dist/stzh-components/p-ef849bb1.entry.js +2 -0
- package/dist/stzh-components/p-ef849bb1.entry.js.map +1 -0
- package/dist/stzh-components/p-f06b2737.js +2 -0
- package/dist/stzh-components/{p-05e8c18d.js.map → p-f06b2737.js.map} +1 -1
- package/dist/stzh-components/{p-55cdd473.entry.js → p-f692c5d0.entry.js} +2 -2
- package/dist/stzh-components/p-f692c5d0.entry.js.map +1 -0
- package/dist/stzh-components/p-f7979f2a.entry.js +2 -0
- package/dist/stzh-components/p-f7979f2a.entry.js.map +1 -0
- package/dist/stzh-components/p-fdd6e755.entry.js +2 -0
- package/dist/stzh-components/p-fdd6e755.entry.js.map +1 -0
- package/dist/stzh-components/stzh-components.css +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-actions/stzh-actions.d.ts +1 -0
- package/dist/types/components/stzh-checkboxgroup/stzh-checkboxgroup.d.ts +1 -1
- package/dist/types/components/stzh-eventdata/stzh-eventdata.d.ts +10 -0
- package/dist/types/components/stzh-eventinfo/stzh-eventinfo.d.ts +15 -1
- package/dist/types/components/stzh-eventinfo/stzh-eventinfo.localization.d.ts +2 -0
- package/dist/types/components/stzh-monthyearpicker/stzh-monthyearpicker.d.ts +3 -2
- package/dist/types/components/stzh-pagebottom/stzh-pagebottom.d.ts +0 -1
- package/dist/types/components/stzh-radiogroup/stzh-radiogroup.d.ts +1 -1
- package/dist/types/components.d.ts +61 -0
- package/dist/vscode-data.json +41 -0
- package/package.json +1 -1
- package/dist/cjs/stzh-details_2.cjs.entry.js.map +0 -1
- package/dist/esm/stzh-details_2.entry.js.map +0 -1
- package/dist/stzh-components/p-05e8c18d.js +0 -2
- package/dist/stzh-components/p-0aabd857.entry.js.map +0 -1
- package/dist/stzh-components/p-0bf70420.entry.js.map +0 -1
- package/dist/stzh-components/p-3c2d9cff.entry.js +0 -2
- package/dist/stzh-components/p-3c2d9cff.entry.js.map +0 -1
- package/dist/stzh-components/p-3cd1696a.entry.js +0 -2
- package/dist/stzh-components/p-3cd1696a.entry.js.map +0 -1
- package/dist/stzh-components/p-400f2932.entry.js +0 -2
- package/dist/stzh-components/p-400f2932.entry.js.map +0 -1
- package/dist/stzh-components/p-55cdd473.entry.js.map +0 -1
- package/dist/stzh-components/p-5f5d14cb.entry.js +0 -2
- package/dist/stzh-components/p-5f5d14cb.entry.js.map +0 -1
- package/dist/stzh-components/p-836c4cdf.entry.js +0 -2
- package/dist/stzh-components/p-836c4cdf.entry.js.map +0 -1
- package/dist/stzh-components/p-93721591.entry.js.map +0 -1
- package/dist/stzh-components/p-9f9d53a0.entry.js.map +0 -1
- package/dist/stzh-components/p-accbac61.entry.js +0 -2
- package/dist/stzh-components/p-accbac61.entry.js.map +0 -1
- package/dist/stzh-components/p-bd2a2c30.entry.js +0 -2
- package/dist/stzh-components/p-bd2a2c30.entry.js.map +0 -1
- package/dist/stzh-components/p-beec9a0a.entry.js +0 -2
- package/dist/stzh-components/p-beec9a0a.entry.js.map +0 -1
- package/dist/stzh-components/p-c774915c.entry.js +0 -2
- package/dist/stzh-components/p-c774915c.entry.js.map +0 -1
- package/dist/stzh-components/p-d028e43d.entry.js +0 -2
- package/dist/stzh-components/p-d56d5fe9.entry.js +0 -2
- package/dist/stzh-components/p-d56d5fe9.entry.js.map +0 -1
- package/dist/stzh-components/p-ddfb8df0.entry.js +0 -2
- package/dist/stzh-components/p-ddfb8df0.entry.js.map +0 -1
- package/dist/stzh-components/p-e10aa7bd.entry.js +0 -2
- package/dist/stzh-components/p-e10aa7bd.entry.js.map +0 -1
- package/dist/stzh-components/p-f50e0102.entry.js +0 -2
- package/dist/stzh-components/p-f50e0102.entry.js.map +0 -1
- package/dist/stzh-components/p-f86e53a0.entry.js +0 -2
- package/dist/stzh-components/p-f86e53a0.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["stzhCardCss","StzhCard","this","_subtitles","nodeChange","entries","changeInSlot","forEach","entry","target","closest","hasAttribute","forceUpdate","element","headerClick","event","collapsible","filterTags","composedPathTags","composedPath","map","_a","tagName","toLowerCase","found","some","r","includes","collapsed","stzhCollapse","emit","component","subtitleClick","subtitleInteractive","stzhSubtitleClick","originalEvent","starToggleClick","stzhStarClick","starred","actionClick","action","stzhHeaderActionClick","arrowUpClick","sortable","findSortableChildElement","moveItem","arrowDownClick","updateElementInsideSortable","currentSortable","removeEventListener","init","chips","querySelectorAll","texts","chip","setPropsIfNull","size","text","handleMutation","handleSelectionChange","checked","detail","handleCardClick","stzhClick","href","subtitleWatcher","newValue","JSON","parse","err","headerActionsWatcher","_headerActions","footerActionsWatcher","_footerActions","sortableContainer","container","parentElement","componentWillLoad","subtitle","headerActions","footerActions","localization","window","stzhComponents","utils","fetchTranslations","componentDidLoad","addEventListener","componentDidRender","requestAnimationFrame","objectId","analyticsId","headingTextElement","innerText","_b","imageLinkElement","setAttribute","_c","titleLinkElement","connectedCallback","observer","MutationObserver","observe","childList","subtree","disconnectedCallback","disconnect","render","imageUsed","hasSlot","headingUsed","footerUsed","contentUsed","Heading","headingLevel","Subtitle","sortableChildElement","isFirstItemInSortable","Array","from","children","indexOf","isLastItemInSortable","length","sortableEnabled","sortableDisabled","disabled","sortableActionsEnabled","hideMovementActions","hasHeading","heading","hasHeader","starrable","hasFooter","selectable","headerActionsWithBadge","filter","badge","badgeEmpty","classes","variant","h","Host","role","class","ref","el","tabindex","onClick","name","icon","iconOnly","slot","actionRemove","actionAdd","label","actionsPopoverLabel","placement","headerActionsBadge","badgePosition","badgeType","headerActionsBadgeType","_d","e","Fragment","actionMoveUp","actionMoveDown","actions","fullwidth","type","value","select","onStzhChange","stzhCardlistCss","StzhCardlist","collapseClick","cards","card","allCollapsed","stzhCollapseAll","updateCollapsedState","sortableGhostClone","dragElement","querySelector","originalElement","clonedElement","cloneNode","collapseListener","showToggleLink","layout","description","expandAll","collapseAll","dataIdAttribute","sortableDataIdAttribute","ghostClone","stzhChipselectCss","chipselectCounter","StzhChipselect","_data","_value","handleReset","async","defaultValue","handleChipClick","data","index","multiple","activeFocusOptionIndex","waitForNextRender","stzhChange","handleKeydown","newActiveIndex","activeOptionIndex","key","preventDefault","resetListener","contains","valueWatcher","ex","dataWatcher","errorWatcher","_error","Promise","resolve","renderPromiseResolve","id","error","descriptionUsed","descriptionLongUsed","descriptionLong","errorUsed","invalid","required","labelHidden","htmlFor","hideOptional","$globals","requiredFieldMarker","optionalFieldMarker","requiredFieldText","optionalFieldText","a11yDescribedby","onKeyDown","counter","inverted","active","a11yTabindex","StzhInputDescription","classPrefix","descriptionLongTitle","moreInfoButtonLabel"],"sources":["src/components/stzh-card/stzh-card.scss?tag=stzh-card&encapsulation=scoped","src/components/stzh-card/stzh-card.tsx","src/components/stzh-cardlist/stzh-cardlist.scss?tag=stzh-cardlist&encapsulation=scoped","src/components/stzh-cardlist/stzh-cardlist.tsx","src/components/stzh-chipselect/stzh-chipselect.scss?tag=stzh-chipselect&encapsulation=scoped","src/components/stzh-chipselect/stzh-chipselect.tsx"],"sourcesContent":["/**\n * @prop --content-min-height: Min height of content\n */\n\n:host {\n // --box-shadow: none;\n --border-radius: 0px;\n\n --content-min-height: 120px;\n\n --dnd-visibility: hidden;\n --dnd-opacity: 0;\n\n display: flex;\n flex-direction: column;\n position: relative;\n border-radius: var(--border-radius);\n\n @media print {\n page-break-inside: avoid;\n break-inside: avoid;\n }\n\n &[collapsed]:not([collapsed=\"false\"]) {\n --content-min-height: none;\n }\n\n &[checked]:not([checked=\"false\"]) {\n outline: 3px solid $colorPrimary;\n }\n\n &.is-ghost::after,\n .is-ghost &::after {\n border-radius: var(--border-radius);\n }\n\n &[href]:hover,\n &[href]:focus-within,\n &.is-selected,\n &.is-chosen,\n .is-selected &,\n .is-chosen & {\n // --box-shadow: #{$boxShadowOverlay};\n }\n\n &.is-ghost,\n .is-ghost & {\n // --box-shadow: none;\n\n overflow: hidden;\n }\n\n &.is-drag,\n &.is-chosen,\n &.is-ghost,\n &.is-selected,\n .is-drag &,\n .is-chosen &,\n .is-ghost &,\n .is-selected &,\n &[is-sortable]:hover {\n --dnd-visibility: visible;\n --dnd-opacity: 1;\n }\n\n ::slotted([slot=\"image\"]) {\n width: 100%;\n max-width: 100%;\n }\n\n ::slotted(img[slot=\"image\"]) {\n display: block;\n }\n\n ::slotted(table) {\n border: 0;\n border-spacing: 0;\n\n th {\n @include font;\n }\n\n td, th {\n padding: 0;\n }\n\n td {\n color: $colorBlack;\n padding-left: space('xsmall');\n }\n }\n}\n\n.stzh-card {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n\tbackground-color: $colorWhite;\n\tborder-radius: var(--border-radius);\n\t// box-shadow: var(--box-shadow);\n\t// transition: box-shadow $baseTransitionAnimationSpeed;\n\n // .vshow-medium {\n // @include mq($to: medium) {\n // @include visuallyhidden;\n // }\n // }\n\n // .show-medium {\n // @include mq($to: medium) {\n // display: none;\n // }\n // }\n\n // .hide-medium {\n // @include mq($from: medium) {\n // display: none;\n // }\n // }\n\n &__content-wrapper {\n position: relative;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n min-height: var(--content-min-height);\n }\n\n\t&__dnd {\n --size: #{iconSize('xsmall')};\n\t\tposition: absolute;\n // INFO: we don't use space() values here, because we want this element to align with the heading\n left: 3px;\n top: 23px;\n\t\tdisplay: flex;\n\t\tvisibility: var(--dnd-visibility);\n\t\topacity: var(--dnd-opacity);\n\t\ttransition: all $baseTransitionAnimationSpeed;\n display: none;\n\n @include mq($from: medium) {\n display: block;\n }\n\n @include mq($from: large) {\n // INFO: we don't use space() values here, because we want this element to align with the heading\n left: 4px;\n top: 27px;\n }\n\t}\n\n &__header-top {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n }\n\n &__header-meta {\n &:not(:empty) {\n display: inline-flex;\n margin-top: space('xsmall');\n gap: space('xsmall');\n }\n }\n\n\t&__header-left,\n\t&__header-right {\n\t\tdisplay: flex;\n\t}\n\n\t&__header-right {\n @include spaceCurve('padding-left', 'tiny');\n\t}\n\n\t&__left {\n\t\talign-self: center;\n\t}\n\n\t&__title-area {\n\t\t@include wordWrap;\n\t\toverflow: hidden;\n\t}\n\n\t&__title,\n\t&__subtitle {\n\t\tmargin: 0;\n\t}\n\n &__title-link {\n color: inherit;\n text-decoration-line: none;\n }\n\n &__title {\n @include font('title');\n @include fontSize('milli');\n }\n\n &__image-link {\n display: block;\n }\n\n\t&__subtitle {\n @include fontSize('milli');\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex-wrap: wrap;\n\t\ttext-decoration-line: none;\n // INFO: we don't use space() values here, since we try to mimic the width of a whitespace here\n\t\tmargin-left: -0.5625em;\n\t}\n\n\t&__subtitle-text {\n\t\tposition: relative;\n\t\tdisplay: inline-flex;\n // INFO: we don't use space() values here, since we try to mimic the width of a whitespace here\n\t\tpadding-left: 0.5625em;\n\n\t\t&::after {\n\t\t\tcontent: ',';\n\t\t\tposition: absolute;\n\t\t\tleft: 0;\n\t\t}\n\t}\n\n\t&__content {\n @include fontSize('milli');\n flex-grow: 1;\n\t}\n\n // &__footer-meta {\n // @include fontSize('micro');\n // display: flex;\n // flex-wrap: wrap;\n // gap: space('xsmall');\n // color: $colorGrey80;\n // }\n\n // &__footer-meta-separator {\n // width: 1px;\n // background-color: currentColor;\n // flex-shrink: 0;\n // }\n\n &__card-actions {\n\t\tdisplay: inline-flex;\n white-space: nowrap;\n\t}\n\n\t&__card-action {\n @include mq($to: medium) {\n --icon-text-margin: 0px;\n --badge-icon-text-margin: 0px;\n }\n\n &[variant=\"tertiary\"] {\n --color: #{$baseColor};\n }\n\n &.is-button {\n --icon-size: #{iconSize('small')};\n }\n\n &.is-placeholder {\n width: space('xxlarge');\n height: space('xxlarge');\n }\n\n &.is-star {\n }\n\t}\n\n &__card-action-popover {\n --width: auto;\n }\n\n /* Service */\n\n &--service &__subtitle {\n @include fontCurve('p1');\n }\n\n &--service &__subtitle {\n @include fontCurve('p1');\n }\n\n &--service &__title {\n @include fontCurve('h3', 'heading');\n }\n\n /* Has content */\n\n &--has-content &__content {\n @include spaceCurve('padding-bottom', 'large');\n padding-top: space('xlarge');\n padding-left: space('medium');\n padding-right: space('medium');\n\n @include mq($from: medium) {\n @include spaceCurve('padding-bottom', 'medium');\n }\n }\n\n &--has-content#{&}--service &__content {\n @include spaceCurve('padding', 'regular');\n }\n\n /* Has header */\n\n &--has-header &__header {\n padding-top: space('xlarge');\n padding-left: space('medium');\n padding-right: space('medium');\n\t}\n\n &--has-header#{&}--has-content &__content {\n padding-top: space('xsmall');\n }\n\n &--has-header#{&}--service &__header {\n\t\t@include spaceCurve('padding-top', 'regular');\n\t\t@include spaceCurve('padding-left', 'regular');\n\t\t@include spaceCurve('padding-right', 'regular');\n }\n\n &--has-header#{&}--has-content#{&}--service &__content {\n @include spaceCurve('padding-top', 'regular');\n }\n\n /* Has footer */\n\n &--has-footer &__footer {\n @include spaceCurve('padding-bottom', 'medium');\n padding-left: space('medium');\n padding-right: space('medium');\n }\n\n &--has-footer#{&}--has-content &__content {\n padding-bottom: space('medium');\n }\n\n &--has-footer#{&}--service &__footer {\n\t\t@include spaceCurve('padding-bottom', 'regular');\n\t\t@include spaceCurve('padding-left', 'regular');\n\t\t@include spaceCurve('padding-right', 'regular');\n }\n\n &--has-footer#{&}--has-content#{&}--service &__content {\n @include spaceCurve('padding-bottom', 'regular');\n }\n\n /* Has tag */\n\n &--has-tag#{&}--has-header &__header {\n padding-top: space('xxxlarge');\n }\n\n /* Has Link */\n\n &--has-link &__title-link,\n &--has-link &__content {\n transition: color $baseTransitionAnimationSpeed;\n }\n\n &--has-link &__title-link {\n color: $colorPrimary;\n text-decoration-line: none;\n border-radius: $buttonBorderRadius;\n cursor: pointer;\n\n &::before,\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n // &::before {\n // transition: all $baseTransitionAnimationSpeed;\n // }\n\n &::after {\n z-index: 1;\n }\n }\n\n &--has-link &__card-actions,\n &--has-link &__header-meta,\n &--has-link &__footer-actionset,\n &--has-link &__footer-select-button {\n position: relative;\n z-index: 2;\n }\n\n &--has-link:has(#{&}__image-link:hover) &__title-link,\n &--has-link:has(#{&}__image-link:hover) &__content,\n &--has-link:has(#{&}__title-link:hover) &__title-link,\n &--has-link:has(#{&}__title-link:hover) &__content {\n color: $colorSecondary60;\n\n // &::before,\n // &::before {\n // background-color: $colorPrimary20;\n // }\n }\n\n // &__footer-arrow {\n // color: $colorPrimary;\n // }\n\n // &--has-link:hover &__footer-arrow {\n // color: $colorSecondary60;\n // }\n\n /* Interactive Subtitle */\n\n &--has-subtitle-interactive &__subtitle {\n cursor: pointer;\n font-family: inherit;\n padding: 0;\n appearance: none;\n background: none;\n border: none;\n transition: color $baseTransitionAnimationSpeed;\n color: $colorPrimary;\n\n &:hover,\n &:focus {\n color: $colorPrimaryHover;\n }\n }\n\n /* Is collapsible */\n\n &--is-collapsible &__header {\n cursor: pointer;\n }\n\n /* Collapsed (Header) */\n\n &--is-collapsed,\n &--has-collapsed-header &__header {\n // .vhide-when-collapsed {\n // @include visuallyhidden;\n // }\n\n .hide-when-collapsed {\n display: none;\n }\n\n // .show-when-collapsed {\n // display: block;\n // }\n }\n\n &--is-collapsed &__header {\n // border-bottom: none;\n padding-bottom: space('xlarge');\n }\n\n &--is-collapsed#{&}--service &__header {\n // border-bottom: none;\n @include spaceCurve('padding-bottom', 'regular');\n }\n\n &--is-collapsed &__card-action,\n &--has-collapsed-header &__card-action {\n --icon-text-margin: 0px;\n --badge-icon-text-margin: 0px;\n }\n\n /* Starred */\n\n &--is-starred &__card-action.is-star {\n color: $colorPrimary;\n\n &:hover,\n &:focus {\n color: $colorPrimaryHover;\n }\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Watch,\n Event,\n EventEmitter,\n Fragment,\n forceUpdate\n} from \"@stencil/core\";\n\nimport {\n StzhCardHeaderAction,\n StzhActionsetItem,\n StzhCardCollapseEvent,\n StzhCardSubtitleClickEvent,\n StzhCardStarClickEvent,\n StzhCardClickEvent,\n StzhCardHeaderActionClickEvent,\n StzhButtonChangeEvent,\n // StzhLocaleAdapter\n} from \"../../index\";\n\nimport { hasSlot, setPropsIfNull } from \"../../utils/utils\";\n// import { media } from '../../utils/media-utils';\n\nimport { StzhCardLocalizedText } from './stzh-card.localization';\n\n/**\n * @slot heading - Slot for heading\n * @slot image - Slot for optional image element\n * @slot content - Slot for content for any elements\n * @slot meta - Slot for meta elements (status or chip)\n * @slot footer - Slot to replace footer content (`footerActions` and `selectable` button are not shown anymore)\n */\n@Component({\n tag: \"stzh-card\",\n styleUrl: \"stzh-card.scss\",\n scoped: true\n})\nexport class StzhCard {\n /** Translation strings */\n @Prop() localization: StzhCardLocalizedText;\n\n /** Variant */\n @Prop({ reflect: true }) variant: \"default\" | \"service\" = \"default\";\n\n /** Whether card is collapsed or not */\n @Prop({ reflect: true, mutable: true }) collapsed: boolean = false;\n\n /** Whether card was starred */\n @Prop({ reflect: true, mutable: true }) starred: boolean = false;\n\n /**\n * Whether card star is displayed (with tooltip and menu-item in mobile popover).\n * The tooltip / menu-item text can be adjusted in the translations file (`actionAdd` & `actionRemove`).\n */\n @Prop({ reflect: true }) starrable: boolean = false;\n\n /** Whether card is selectable */\n @Prop({ reflect: true }) selectable: boolean = false;\n\n /** Whether card is checked (if card is selectable) */\n @Prop({ reflect: true }) checked: boolean = false;\n\n /** The name of the input element (if card is selectable) */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** Href of card */\n @Prop({ reflect: true }) href: string;\n\n /** target if the button is used as link (if href used) */\n @Prop() target: string;\n\n /** The value of the input element (if card is selectable) */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Whether the element is disabled or not (if card is selectable) */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Heading (or use heading slot instead) */\n @Prop() heading: string = \"\";\n\n /** Heading level */\n @Prop({ reflect: true }) headingLevel: \"1\" | \"2\" | \"3\" | \"4\" = \"3\";\n\n /** Subtitle */\n @Prop() subtitle: string | string[] = \"\";\n private _subtitles = [];\n\n /** Author name */\n // @Prop() author: string;\n\n /** Date to display */\n // @Prop() date: Date | string;\n\n /**\n * Date adapter, for custom parsing/formatting.\n * Must be object with a `parse` function which accepts a `string` and returns a `Date`,\n * and a `format` function which accepts a `Date` and returns a `string`.\n */\n // @Prop() dateAdapter: StzhLocaleAdapter;\n\n /** Tag name */\n // @Prop() tag: string;\n\n /** Card header actions */\n @Prop() headerActions: string | StzhCardHeaderAction[] = [];\n private _headerActions: StzhCardHeaderAction[];\n\n /**\n * Set a badge text if header action badge exists (see headerActionsBadgeType for more info).\n */\n @Prop() headerActionsBadge: string;\n\n /**\n * If a header action with a badge exists inside `headerActions`, the more actions popover will automatically have a empty badge.\n * By default, it takes the badge type from the first one. With this property you can overwrite it.\n */\n @Prop() headerActionsBadgeType: \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\n /**\n * Card footer actions.\n * The [`stzh-actionset`](?path=/story/components-actionset) component is used internally.\n * You can listen to clicks with the `stzhActionClick` event.\n */\n @Prop() footerActions: string | StzhActionsetItem[] = [];\n private _footerActions: StzhActionsetItem[];\n\n /** Whether subtitle should be rendered as button and event `stzhSubtitleClick` executed on click */\n @Prop() subtitleInteractive: boolean = false;\n\n /**\n * Whether sorting should be disabled.\n * Has no effect if card is not inside a `cardlist` element, which has `sortableEnabled` property set to true.\n */\n @Prop({ reflect: true }) sortableDisabled: boolean = false;\n\n /** Whether card is collapsible */\n @Prop({ reflect: true }) collapsible: boolean = false;\n\n /**\n * Whether movement menu items should be shown.\n * Has no effect if card is not inside a `cardlist` element, which has `sortableEnabled` property set to true.\n */\n @Prop() hideMovementActions: boolean = false;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the link elements.\n * Default value will be taken from `heading` prop/slot.\n */\n @Prop() analyticsId: string;\n\n @Element() element: HTMLStzhCardElement;\n\n /** Click event (if href is used) */\n @Event() stzhClick: EventEmitter<StzhCardClickEvent>;\n\n /** Collapse event */\n @Event() stzhCollapse: EventEmitter<StzhCardCollapseEvent>;\n\n /** Subtitle click event */\n @Event() stzhSubtitleClick: EventEmitter<StzhCardSubtitleClickEvent>;\n\n /** Star click event */\n @Event() stzhStarClick: EventEmitter<StzhCardStarClickEvent>;\n\n /** Header action click event */\n @Event() stzhHeaderActionClick: EventEmitter<StzhCardHeaderActionClickEvent>;\n\n @Watch(\"subtitle\")\n subtitleWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n if (newValue === \"\") {\n this._subtitles = [];\n } else {\n try {\n this._subtitles = JSON.parse(newValue);\n } catch(err) {\n this._subtitles = [newValue];\n }\n }\n } else {\n this._subtitles = newValue;\n }\n }\n\n @Watch(\"headerActions\")\n headerActionsWatcher(newValue: StzhCardHeaderAction[] | string) {\n if (typeof newValue === \"string\") {\n this._headerActions = JSON.parse(newValue);\n } else {\n this._headerActions = newValue;\n }\n }\n\n @Watch(\"footerActions\")\n footerActionsWatcher(newValue: StzhActionsetItem[] | string) {\n if (typeof newValue === \"string\") {\n this._footerActions = JSON.parse(newValue);\n } else {\n this._footerActions = newValue;\n }\n }\n\n // @Watch(\"collapsed\")\n // collapsedWatcher() {\n // this.handleResize();\n // }\n\n private observer: MutationObserver;\n\n private nodeChange = (entries) => {\n let changeInSlot = false;\n\n entries.forEach((entry) => {\n if (entry.target.closest('[slot]') || entry.target.hasAttribute('slot')) {\n changeInSlot = true;\n }\n });\n\n if (changeInSlot) {\n forceUpdate(this.element);\n }\n };\n\n // private mainElement: HTMLElement;\n // private headerElement: HTMLElement;\n // private headerLeftElement: HTMLElement;\n // private headerRightElement: HTMLElement;\n private imageLinkElement: HTMLAnchorElement;\n private titleLinkElement: HTMLAnchorElement;\n private headingTextElement: HTMLDivElement;\n private sortable: HTMLStzhSortableElement;\n\n // private debounceResize: number;\n // private resizeObserver: ResizeObserver;\n\n // private update = () => {\n // if (!this.mainElement) {\n // return;\n // }\n\n // this.mainElement.classList.remove(\"stzh-card--has-collapsed-header\");\n\n // if (media('medium').matches) {\n // const headerWidth = this.headerElement.clientWidth;\n // const leftWidth = this.headerLeftElement.clientWidth;\n // const rightWidth = this.headerRightElement.clientWidth;\n\n // if (headerWidth - leftWidth <= rightWidth) {\n // this.mainElement.classList.add(\"stzh-card--has-collapsed-header\");\n // }\n // }\n // }\n\n private headerClick = (event: MouseEvent) => {\n if (!this.collapsible) {\n return;\n }\n\n const filterTags = [\"stzh-popover\", \"stzh-tooltip\", \"button\", \"a\", \"input\", \"select\", \"textarea\", \"iframe\", \"details\", \"label\", \"area\"];\n const composedPathTags = event.composedPath().map(element => (element as HTMLElement).tagName?.toLowerCase());\n const found = composedPathTags.some(r => filterTags.includes(r))\n\n if (!found) {\n this.collapsed = !this.collapsed;\n\n this.stzhCollapse.emit({\n component: \"stzh-card\",\n collapsed: this.collapsed\n });\n }\n }\n\n private subtitleClick = (event: MouseEvent) => {\n if (this.subtitleInteractive) {\n this.stzhSubtitleClick.emit({\n component: \"stzh-card\",\n originalEvent: event\n });\n }\n }\n\n private starToggleClick = (event: MouseEvent) => {\n this.stzhStarClick.emit({\n component: \"stzh-card\",\n starred: this.starred,\n originalEvent: event\n });\n }\n\n private actionClick = (event: MouseEvent, action: StzhCardHeaderAction) => {\n this.stzhHeaderActionClick.emit({\n component: \"stzh-card\",\n action,\n originalEvent: event\n });\n }\n\n private arrowUpClick = () => {\n const sortable = this.element.closest(\"stzh-sortable\");\n\n if (sortable) {\n const element = this.findSortableChildElement();\n sortable.moveItem(element, \"up\");\n }\n }\n\n private arrowDownClick = () => {\n const sortable = this.element.closest(\"stzh-sortable\");\n\n if (sortable) {\n const element = this.findSortableChildElement();\n sortable.moveItem(element, \"down\");\n }\n }\n\n private updateElementInsideSortable = () => {\n const currentSortable = this.element.closest(\"stzh-sortable\");\n\n // check if element is still inside sortable\n if (!currentSortable) {\n this.sortable.removeEventListener(\"stzhUpdate\", this.updateElementInsideSortable);\n this.sortable.removeEventListener(\"stzhDisable\", this.updateElementInsideSortable)\n return;\n }\n\n if (this.element) {\n forceUpdate(this.element);\n }\n }\n\n private init = () => {\n const chips = this.element.querySelectorAll(\n 'stzh-chip[slot=\"meta\"], [slot=\"meta\"] stzh-chip'\n );\n\n const texts = this.element.querySelectorAll(\n 'stzh-text[slot=\"content\"], [slot=\"meta\"] stzh-text'\n );\n\n chips.forEach((chip) => {\n setPropsIfNull(chip, {\n size: \"small\"\n } as HTMLStzhChipElement)\n });\n\n texts.forEach((text) => {\n setPropsIfNull(text, {\n size: \"inherit\"\n } as HTMLStzhTextElement)\n });\n }\n\n // private handleResize = () => {\n // if (this.debounceResize) {\n // window.cancelAnimationFrame(this.debounceResize);\n // }\n\n // this.debounceResize = requestAnimationFrame(this.update);\n // }\n\n private handleMutation = (entries) => {\n this.init();\n this.nodeChange(entries);\n }\n\n private handleSelectionChange = (event: CustomEvent<StzhButtonChangeEvent>) => {\n this.checked = event.detail.checked;\n }\n\n private handleCardClick = (originalEvent: MouseEvent) => {\n this.stzhClick.emit({\n component: \"stzh-card\",\n originalEvent,\n href: this.href\n });\n }\n\n private findSortableChildElement(): HTMLElement | undefined {\n const sortable = this.element.closest(\"stzh-sortable\");\n\n if (sortable) {\n let element: HTMLElement = this.element;\n let sortableContainer = null;\n\n if (typeof sortable.container === \"function\") {\n sortableContainer = sortable.container();\n } else {\n sortableContainer = sortable.container;\n }\n\n while (element.parentElement && element.parentElement !== sortableContainer) {\n element = element.parentElement;\n }\n\n return element;\n }\n }\n\n async componentWillLoad() {\n this.subtitleWatcher(this.subtitle);\n this.headerActionsWatcher(this.headerActions);\n this.footerActionsWatcher(this.footerActions);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"card\");\n }\n\n // if (!this.dateAdapter) {\n // this.dateAdapter = window.stzhComponents.utils.createFormatParseAdapter(\n // this.localization.$formats,\n // this.localization.$globals\n // );\n // }\n }\n\n componentDidLoad() {\n this.sortable = this.element.closest(\"stzh-sortable\");\n\n if (this.sortable) {\n this.sortable.addEventListener(\"stzhUpdate\", this.updateElementInsideSortable);\n this.sortable.addEventListener(\"stzhDisable\", this.updateElementInsideSortable)\n }\n }\n\n componentDidRender() {\n requestAnimationFrame(() => {\n const objectId = this.analyticsId || this.headingTextElement?.innerText;\n\n if (objectId) {\n this.imageLinkElement?.setAttribute(\"s-object-id\", objectId);\n this.titleLinkElement?.setAttribute(\"s-object-id\", objectId);\n }\n });\n }\n\n connectedCallback() {\n this.init();\n\n this.observer = new MutationObserver(this.handleMutation);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true\n });\n\n // this.resizeObserver = new ResizeObserver(this.handleResize);\n // this.resizeObserver.observe(this.element);\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n\n // if (this.resizeObserver) {\n // this.resizeObserver.disconnect();\n // }\n }\n\n render() {\n const imageUsed: boolean = hasSlot(this.element, \"image\");\n const headingUsed: boolean = hasSlot(this.element, \"heading\");\n const footerUsed: boolean = hasSlot(this.element, \"footer\");\n const contentUsed: boolean = hasSlot(this.element, \"content\");\n\n const Heading = `h${this.headingLevel}`;\n const Subtitle = `${this.subtitleInteractive ? 'button' : 'span'}`;\n\n const sortableChildElement = this.findSortableChildElement();\n\n const isFirstItemInSortable = sortableChildElement?.parentElement\n && Array.from(sortableChildElement?.parentElement?.children)\n .indexOf(sortableChildElement) === 0;\n\n const isLastItemInSortable = sortableChildElement?.parentElement\n && Array.from(sortableChildElement?.parentElement?.children)\n .indexOf(sortableChildElement) === sortableChildElement?.parentElement?.children.length - 1;\n\n const sortableEnabled = !this.sortableDisabled && this.sortable && !this.sortable.disabled;\n const sortableActionsEnabled = sortableEnabled && !this.hideMovementActions;\n\n // const nonCollapsingTextHeaderActions = this._headerActions.filter(action => !action.onlyCollapseText);\n\n // const headerActions = [\n // ...this._headerActions\n // ];\n\n const hasHeading = !!this.heading || headingUsed;\n\n const hasHeader = hasHeading\n || this._subtitles.length > 0\n || this._headerActions.length > 0\n // || nonCollapsingTextHeaderActions.length > 0\n || this.starrable\n || sortableActionsEnabled;\n\n const hasFooter = footerUsed\n || this._footerActions.length > 0\n || this.selectable\n // || !!this.author\n // || !!this.date;\n\n const headerActionsWithBadge = this._headerActions.filter(action => !!action.badge || action.badgeEmpty);\n\n const classes = {\n \"stzh-card\": true,\n \"stzh-card--has-link\": !!this.href,\n \"stzh-card--has-image\": imageUsed,\n \"stzh-card--has-content\": contentUsed,\n \"stzh-card--has-subtitle\": !!this.subtitle,\n \"stzh-card--has-subtitle-interactive\": !!this.subtitle && this.subtitleInteractive,\n \"stzh-card--has-header\": hasHeader,\n \"stzh-card--has-footer\": hasFooter,\n // \"stzh-card--has-tag\": !!this.tag,\n \"stzh-card--is-collapsible\": this.collapsible,\n \"stzh-card--is-collapsed\": this.collapsed,\n \"stzh-card--is-starred\": this.starred,\n \"stzh-card--is-checked\": this.checked,\n \"stzh-card--is-sortable\": sortableEnabled,\n [`stzh-card--${this.variant}`]: !!this.variant\n };\n\n return (\n <Host role=\"listitem\" aria-label={this.heading} is-sortable={sortableEnabled}>\n <article\n // ref={(el) => (this.mainElement = el as HTMLElement)}\n class={classes}\n >\n <a\n ref={(el) => (this.imageLinkElement = el as HTMLAnchorElement)}\n aria-hidden=\"true\"\n tabindex=\"-1\"\n class=\"stzh-card__image-link\"\n href={this.href}\n target={this.target}\n onClick={this.href ? this.handleCardClick : null}\n >\n <slot name=\"image\"></slot>\n </a>\n <div class=\"stzh-card__content-wrapper\">\n <stzh-icon class=\"stzh-card__dnd\" name=\"drag\"></stzh-icon>\n {/* {this.tag && <div class=\"stzh-card__tag\">{this.tag}</div>} */}\n\n <header\n // ref={(el) => (this.headerElement = el as HTMLElement)}\n class=\"stzh-card__header\"\n onClick={this.headerClick}\n >\n <div class=\"stzh-card__header-top\">\n <div\n // ref={(el) => (this.headerLeftElement = el as HTMLElement)}\n class=\"stzh-card__header-left\"\n >\n <div class=\"stzh-card__title-area\">\n {hasHeading &&\n <Heading class=\"stzh-card__title\">\n <a\n ref={(el) => (this.titleLinkElement = el as HTMLAnchorElement)}\n class=\"stzh-card__title-link\"\n href={this.href}\n target={this.target}\n onClick={this.href ? this.handleCardClick : null}\n >\n <div ref={(el) => (this.headingTextElement = el as HTMLDivElement)}>\n {this.heading ? this.heading : <slot name=\"heading\"></slot>}\n </div>\n </a>\n </Heading>\n }\n {this._subtitles.length > 0 &&\n <Subtitle class=\"stzh-card__subtitle\" onClick={this.subtitleClick}>\n {this._subtitles.map(subtitle => (\n <span class=\"stzh-card__subtitle-text\">{subtitle}</span>\n ))}\n </Subtitle>\n }\n </div>\n </div>\n <div\n // ref={(el) => (this.headerRightElement = el as HTMLElement)}\n class=\"stzh-card__header-right\"\n >\n <div class=\"stzh-card__card-actions\">\n {/* {this._headerActions.map(action => (\n <stzh-button\n class={{\n \"stzh-card__card-action\": true,\n \"is-button\": true,\n \"show-medium\": !action.onlyCollapseText,\n \"hide-when-collapsed\": !action.onlyCollapseText,\n \"hide-text-when-collapsed\": action.onlyCollapseText\n }}\n icon={action.icon}\n badge={action.badge}\n badgeEmpty={action.badgeEmpty}\n badgeType={action.badgeType}\n variant=\"tertiary\"\n size=\"tiny\"\n badgePosition=\"icon\"\n onClick={(e: MouseEvent) => { this.actionClick(e, action) }}\n >\n <span\n class={{\n \"vshow-medium\": action.onlyCollapseText,\n \"vhide-when-collapsed\": action.onlyCollapseText\n }}\n >\n {action.label}\n </span>\n </stzh-button>\n ))} */}\n\n {this.starrable &&\n <stzh-tooltip>\n <stzh-button\n class=\"stzh-card__card-action is-star\"\n icon={this.starred ? \"star-filled\" : \"star\"}\n variant=\"tertiary\"\n size=\"tiny\"\n iconOnly={true}\n onClick={this.starToggleClick}\n ></stzh-button>\n <div slot=\"content\">\n {this.starred ? this.localization.actionRemove : this.localization.actionAdd}\n </div>\n </stzh-tooltip>\n }\n\n {/* <stzh-actionset actions={headerActions} variant=\"overflow\"></stzh-actionset> */}\n {/* {(nonCollapsingTextHeaderActions.length > 0 || this.starrable || sortableActionsEnabled) && */}\n {(this._headerActions.length > 0 || this.starrable || sortableActionsEnabled) &&\n <stzh-popover\n label={this.localization.actionsPopoverLabel}\n placement=\"bottom-end\"\n class={{\n \"stzh-card__card-action-popover\": true,\n // \"hide-medium show-when-collapsed\": !this.starrable && !sortableActionsEnabled\n }}\n >\n <stzh-button\n class=\"stzh-card__card-action is-further\"\n variant=\"tertiary\"\n size=\"tiny\"\n icon=\"more-vertical\"\n iconOnly={true}\n badge={this.headerActionsBadge}\n badgeEmpty={headerActionsWithBadge.length > 0}\n badgePosition=\"icon\"\n badgeType={this.headerActionsBadgeType || headerActionsWithBadge[0]?.badgeType || \"default\"}\n ></stzh-button>\n <stzh-menu slot=\"content\">\n {/* {nonCollapsingTextHeaderActions.map(action => ( */}\n {this._headerActions.map(action => (\n <stzh-menu-item\n // class=\"hide-medium show-when-collapsed\"\n icon={action.icon}\n badge={action.badge}\n badgeEmpty={action.badgeEmpty}\n badgeType={action.badgeType}\n onClick={(e: MouseEvent) => { this.actionClick(e, action) }}\n >\n {action.label}\n </stzh-menu-item>\n ))}\n\n {sortableActionsEnabled &&\n <Fragment>\n {!isFirstItemInSortable &&\n <stzh-menu-item icon=\"arrow-up\" onClick={this.arrowUpClick}>\n {this.localization.actionMoveUp}\n </stzh-menu-item>\n }\n {!isLastItemInSortable &&\n <stzh-menu-item icon=\"arrow-down\" onClick={this.arrowDownClick}>\n {this.localization.actionMoveDown}\n </stzh-menu-item>\n }\n </Fragment>\n }\n\n {this.starrable &&\n <stzh-menu-item icon={this.starred ? \"star-filled\" : \"star\"} onClick={this.starToggleClick}>\n {this.starred ? this.localization.actionRemove : this.localization.actionAdd}\n </stzh-menu-item>\n }\n </stzh-menu>\n </stzh-popover>\n }\n </div>\n </div>\n </div>\n\n <div class=\"stzh-card__header-meta\">\n <slot name=\"meta\"></slot>\n </div>\n </header>\n\n <div class=\"stzh-card__content hide-when-collapsed\">\n <slot name=\"content\"></slot>\n </div>\n\n <div class=\"stzh-card__footer hide-when-collapsed\">\n {/* {(this.author || this.date) &&\n <div class=\"stzh-card__footer-meta\">\n {this.author &&\n <div class=\"stzh-card__footer-author\">{this.author}</div>\n }\n {this.author && this.date &&\n <div class=\"stzh-card__footer-meta-separator\"></div>\n }\n {this.date &&\n <div class=\"stzh-card__footer-date\">\n {this.dateAdapter.format(new Date(this.date), \"dateInput\")}\n </div>\n }\n </div>\n } */}\n\n <slot name=\"footer\">\n {this._footerActions.length > 0 &&\n <stzh-actionset\n class=\"stzh-card__footer-actionset\"\n actions={this._footerActions}\n ></stzh-actionset>\n }\n\n {this.selectable &&\n <stzh-button\n class=\"stzh-card__footer-select-button\"\n fullwidth\n type=\"radio\"\n variant=\"secondary\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n disabled={this.disabled}\n label={this.localization.select}\n onStzhChange={this.handleSelectionChange}\n ></stzh-button>\n }\n </slot>\n </div>\n </div>\n </article>\n </Host>\n );\n }\n}\n",".stzh-cardlist {\n &__cards {\n display: grid;\n gap: $gridGutter;\n\n @include mq($from: small) {\n gap: $gridGutterSmall;\n }\n\n @include mq($from: medium) {\n gap: $gridGutterMedium;\n }\n\n @include mq($from: large) {\n gap: $gridGutterLarge;\n }\n\n @include mq($from: ultra) {\n gap: $gridGutterUltra;\n }\n }\n\n &__header {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n flex-direction: column;\n align-items: flex-start;\n\n @include mq($from: medium) { // was smallheader before\n flex-direction: row;\n }\n }\n\n &__description {\n @include fontCurve('p1');\n --stzh-icon-color: #{$colorPrimary70};\n\n &:not(:empty) {\n margin-bottom: space('xsmall');\n\n @include mq($from: medium) { // was smallheader before\n margin-bottom: 0;\n }\n }\n }\n\n &__switch {\n --color: inherit;\n align-self: end;\n }\n\n /* Has content inside header */\n\n &:has(#{&}__description:not(:empty)) &__header,\n &--has-toggle-link &__header {\n @include spaceCurve('margin-bottom', 'regular');\n }\n\n /* Subpages layout variant */\n\n &--layout-subpages &__cards:has(stzh-card-navigation:not([has-lead])) {\n @include spaceCurve('row-gap', 'tiny');\n\n @include mq($from: small) {\n padding-left: calc(((100% - (#{$gridGutterSmall} * 3)) / 4) + #{$gridGutterSmall});\n }\n\n @include mq($from: medium) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n padding-left: 0;\n }\n }\n\n &--layout-subpages &__cards:has(stzh-card-navigation[has-lead]) {\n @include spaceCurve('row-gap', 'regular');\n\n @include mq($from: small) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n @include mq($from: large) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n\n /* Teasers layout variant */\n\n &--layout-teasers &__cards {\n @include spaceCurve('row-gap', 'medium');\n\n @include mq($from: small) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n @include mq($from: medium) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n @include mq($from: large) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n\n /* Searchresults layout variant */\n\n &--layout-searchresults &__cards {\n gap: space('xlarge');\n }\n\n /* Fullwidth layout variant (e.g. for MeinKonto dashboard) */\n\n &--layout-fullwidth &__cards {\n @include spaceCurve('gap', 'regular');\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Listen,\n State,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n\nimport { StzhCardlistCollapseAllEvent } from \"../../index\";\nimport { StzhCardlistLocalizedText } from './stzh-cardlist.localization';\n\n/**\n * @slot - Slot for `stzh-card` elements\n * @slot description - Slot for description\n */\n@Component({\n tag: \"stzh-cardlist\",\n styleUrl: \"stzh-cardlist.scss\",\n scoped: true\n})\nexport class StzhCardlist {\n /** Translation strings */\n @Prop() localization: StzhCardlistLocalizedText;\n\n @Prop({ reflect: true }) layout: \"fullwidth\" | \"searchresults\" | \"subpages\" | \"teasers\" = \"fullwidth\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Whether collapse/expand toggle link */\n @Prop({ reflect: true }) showToggleLink: boolean = false;\n\n /** Whether sorting should be enabled */\n @Prop() sortableEnabled: boolean = false;\n\n /** HTML attribute that is used by the `toArray()` of sortable method */\n @Prop() sortableDataIdAttribute: string = \"data-id\";\n\n @Element() element: HTMLStzhCardlistElement;\n\n /** Collapse all event */\n @Event() stzhCollapseAll: EventEmitter<StzhCardlistCollapseAllEvent>;\n\n @Listen(\"stzhCollapse\")\n collapseListener() {\n this.updateCollapsedState();\n }\n\n @State() allCollapsed: boolean = false;\n\n private collapseClick = () => {\n const cards = Array.from(this.element.querySelectorAll(\"stzh-card\"));\n cards.forEach(card => {\n if (card.collapsible) {\n card.collapsed = !this.allCollapsed\n }\n });\n\n this.allCollapsed = !this.allCollapsed;\n\n this.stzhCollapseAll.emit({\n component: \"stzh-cardlist\",\n allCollapsed: this.allCollapsed\n });\n }\n\n private updateCollapsedState = () => {\n const cards = Array.from(this.element.querySelectorAll(\"stzh-card\"));\n this.allCollapsed = !cards.some(card => !card.collapsed);\n }\n\n private sortableGhostClone: Function = (dragElement: HTMLElement) => {\n // const [clonedElement, clonedStzhElement, originalStzhElement] = cloneWrappedStzhElement(dragElement);\n\n // if (\n // clonedStzhElement\n // && originalStzhElement\n // && clonedStzhElement.tagName.toLowerCase() === \"stzh-card\"\n // ) {\n // const clonedStzhElementCard: HTMLStzhCardElement = clonedStzhElement as HTMLStzhCardElement;\n // const originalStzhElementCard: HTMLStzhCardElement = originalStzhElement as HTMLStzhCardElement;\n\n // // copy every property that is not reflected to its attribute\n // clonedStzhElementCard.heading = originalStzhElementCard.heading;\n // clonedStzhElementCard.subtitle = originalStzhElementCard.subtitle;\n // clonedStzhElementCard.headerActions = originalStzhElementCard.headerActions;\n // clonedStzhElementCard.footerActions = originalStzhElementCard.footerActions;\n // clonedStzhElementCard.hideMovementActions = originalStzhElementCard.hideMovementActions;\n // }\n\n // return clonedElement;\n\n const card = dragElement.tagName.toLowerCase() === \"stzh-card\"\n ? dragElement : dragElement.querySelector(\"stzh-card\");\n\n if (card) {\n const originalElement = dragElement as HTMLStzhCardElement;\n const clonedElement = dragElement.cloneNode(true) as HTMLStzhCardElement;\n\n // copy every property that is not reflected to its attribute\n clonedElement.heading = originalElement.heading;\n clonedElement.subtitle = originalElement.subtitle;\n clonedElement.headerActions = originalElement.headerActions;\n clonedElement.footerActions = originalElement.footerActions;\n clonedElement.hideMovementActions = originalElement.hideMovementActions;\n\n return clonedElement;\n }\n }\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"cardlist\");\n }\n }\n\n componentDidLoad() {\n this.updateCollapsedState();\n }\n\n render() {\n const classes = {\n \"stzh-cardlist\": true,\n \"stzh-cardlist--has-toggle-link\": this.showToggleLink,\n [`stzh-cardlist--layout-${this.layout}`]: !!this.layout\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"stzh-cardlist__header\">\n <div class=\"stzh-cardlist__description\">\n {this.description ? this.description : <slot name=\"description\"></slot>}\n </div>\n {this.showToggleLink &&\n <stzh-link\n class=\"stzh-cardlist__switch\"\n icon={this.allCollapsed ? \"list-expanded\" : \"list-shrinked\"}\n label={this.allCollapsed ? this.localization.expandAll : this.localization.collapseAll}\n onClick={this.collapseClick}\n ></stzh-link>\n }\n </div>\n\n <stzh-sortable\n disabled={!this.sortableEnabled}\n dataIdAttribute={this.sortableDataIdAttribute}\n ghostClone={this.sortableGhostClone}\n >\n <div class=\"stzh-cardlist__cards\" role=\"list\">\n <slot></slot>\n </div>\n </stzh-sortable>\n </div>\n </Host>\n );\n }\n}\n",":host {\n &[disabled]:not([disabled=\"false\"]) {\n --description-color: #{$formDisabledColor};\n }\n}\n\n.stzh-chipselect {\n\t@include input-description;\n\n &__label {\n @include font('heavy');\n @include fontSize('micro');\n @include truncate;\n color: $headingColor;\n display: block;\n margin-bottom: space('xsmall');\n\n &:empty {\n display: none;\n }\n }\n\n &__marker {\n @include fontSize('nano');\n margin-left: calc(-0.25em + #{space('xsmall')});\n }\n\n &__chips {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n border-radius: $buttonBorderRadius;\n column-gap: space('medium');\n\n @include mq($from: medium) {\n row-gap: space('medium');\n }\n\n // @include mq($to: medium) {\n // display: none;\n // }\n }\n\n &__chip {\n &.is-focused,\n &.is-focused[active]:not([active=false]) {\n --background-color: #{$colorSecondary40};\n\n @include highContrast() {\n --background-color: Highlight;\n }\n }\n\n &.is-focused[active]:not([active=false]) {\n --background-color: #{$colorPrimary90};\n\n @include highContrast() {\n --background-color: Canvas;\n }\n }\n }\n\n // &__dropdown {\n // @include mq($from: medium) {\n // display: none;\n // }\n // }\n\n // &__description-wrapper {\n // @include mq($to: medium) {\n // display: none;\n // }\n // }\n\n &--has-error &__error,\n &--has-description &__description {\n margin-top: space('xsmall');\n }\n\n /* Hidden label */\n\n &--has-label-hidden &__label {\n @include visuallyhidden;\n }\n\n /* Disabled */\n\n &--is-disabled &__chips,\n &--is-disabled &__label {\n cursor: not-allowed;\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Watch,\n Event,\n EventEmitter,\n State,\n Fragment,\n Listen,\n} from \"@stencil/core\";\n\nimport {\n StzhChipselectItem,\n StzhChipselectChangeEvent,\n // StzhDropdownChangeEvent\n} from \"../../index\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\n// import { hasSlot } from \"../../utils/utils\";\nimport { StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nlet chipselectCounter = 0;\n\n/**\n * @slot - Slot for `stzh-checkbox` elements\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot description-long-title - Slot for long description title (in popover) / instead of descriptionLongTitle or description property\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-chipselect\",\n styleUrl: \"stzh-chipselect.scss\",\n scoped: true\n})\nexport class StzhChipselect {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** The list of chips */\n @Prop() data: string | StzhChipselectItem[] = [];\n private _data: StzhChipselectItem[] = [];\n // private _dataDropdown: any[] = [];\n\n /** The name of the input element */\n @Prop({ reflect: true }) name: string;\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Whether label is hidden. */\n @Prop() labelHidden: boolean = false;\n\n /** Multiple */\n @Prop({ mutable: true }) multiple: boolean = false;\n\n /** Value */\n @Prop({ mutable: true }) value: string | string[] = \"\";\n private _value: string[] = [];\n\n /** Default value (used by reset) */\n @Prop({ mutable: true }) defaultValue: string | string[] = \"\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** Long description title appearing in a popover (use description-long-title slot as or description property alternative) */\n @Prop() descriptionLongTitle: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Whether all chips are disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Hide `(optional)` label (or use `required` inside form ot hide it) */\n @Prop({ reflect: true }) hideOptional: boolean = false;\n\n /** Id for element which describes the input (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n @State() activeFocusOptionIndex: number = 0;\n\n @Element() element: HTMLStzhChipselectElement;\n\n /** Change event */\n @Event() stzhChange: EventEmitter<StzhChipselectChangeEvent>;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Watch(\"value\")\n valueWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n try {\n this._value = JSON.parse(newValue);\n } catch(ex) {\n this._value = newValue ? [newValue] : [];\n }\n } else {\n this._value = newValue ? newValue : [];\n }\n }\n\n @Watch(\"data\")\n dataWatcher(newValue: StzhChipselectItem[] | string) {\n if (typeof newValue === \"string\") {\n this._data = JSON.parse(newValue);\n } else {\n this._data = newValue;\n }\n\n // this._dataDropdown = this._data.map((data) => {\n // return {\n // text: data.counter\n // ? `${data.label} (${data.counter})`\n // : data.label,\n // value: data.value\n // }\n // });\n }\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n }\n\n private id: string;\n private renderPromiseResolve: (value?: unknown) => void;\n\n private waitForNextRender() {\n return new Promise(resolve => this.renderPromiseResolve = resolve);\n }\n\n private handleReset = async () => {\n this.value = this.defaultValue;\n\n // this.stzhChange.emit({\n // component: \"stzh-chipselect\",\n // value: this.value\n // });\n }\n\n private handleChipClick = async (data: StzhChipselectItem, index: number) => {\n if (this.multiple) {\n if (data.value === \"\" && this._value.length > 0 && !(this._value.length === 1 && this._value[0] === \"\")) {\n this.value = [];\n } else if (data.value !== \"\") {\n this.value = this._value.includes(data.value)\n ? this._value.filter(value => value !== data.value)\n : [...this._value, data.value];\n }\n } else {\n this.value = [data.value]\n }\n\n this.activeFocusOptionIndex = index;\n\n await this.waitForNextRender();\n\n this.stzhChange.emit({\n component: \"stzh-chipselect\",\n value: this.multiple ? this._value[0] : this._value\n })\n }\n\n // private handleDropdownChange = async (event: CustomEvent<StzhDropdownChangeEvent>) => {\n // this.value = Array.isArray(event.detail.value) ? event.detail.value[0] : event.detail.value;\n\n // this.activeFocusOptionIndex = this._data.findIndex(data => {\n // return data.value === this.value;\n // });\n\n // await this.waitForNextRender();\n\n // this.stzhChange.emit({\n // component: \"stzh-chipselect\",\n // value: this.value\n // })\n // }\n\n private handleKeydown = (event: KeyboardEvent) => {\n let newActiveIndex: number = null;\n const activeOptionIndex = this.activeFocusOptionIndex;\n\n if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n\n if (activeOptionIndex > 0) {\n newActiveIndex = activeOptionIndex - 1;\n }\n } else if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n event.preventDefault();\n\n if (activeOptionIndex < this._data.length - 1) {\n newActiveIndex = activeOptionIndex + 1;\n }\n } else if (event.key === \" \" || event.key === \"Enter\") {\n event.preventDefault();\n this.value = this._data[activeOptionIndex].value;\n\n this.stzhChange.emit({\n component: \"stzh-chipselect\",\n value: this.value\n });\n }\n\n if (newActiveIndex !== null) {\n this.activeFocusOptionIndex = newActiveIndex;\n }\n }\n\n componentDidRender() {\n if (this.renderPromiseResolve) {\n this.renderPromiseResolve();\n }\n }\n\n async componentWillLoad() {\n this.id = `stzh-chipselect-${chipselectCounter++}`;\n\n this.dataWatcher(this.data);\n this.errorWatcher(this.error);\n this.valueWatcher(this.value);\n\n this.defaultValue = this.defaultValue || this.value;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"chipselect\");\n }\n }\n\n render() {\n const descriptionUsed = !!this.description;\n const descriptionLongUsed = !!this.descriptionLong;\n const errorUsed = !!this.error;\n\n const classes = {\n \"stzh-chipselect\": true,\n \"stzh-chipselect--has-description\": descriptionUsed,\n \"stzh-chipselect--has-description-long\": descriptionLongUsed,\n \"stzh-chipselect--has-error\": errorUsed,\n \"stzh-chipselect--is-invalid\": this.invalid || errorUsed,\n \"stzh-chipselect--is-disabled\": this.disabled,\n \"stzh-chipselect--is-required\": this.required,\n \"stzh-chipselect--has-label-hidden\": this.labelHidden,\n };\n\n return (\n <Host is-invalid={this.invalid || errorUsed}>\n <div class={classes}>\n {this.multiple\n ?\n <Fragment>\n {this._value.map((value) =>\n <input type=\"hidden\" name={this.name} value={value} />\n )}\n </Fragment>\n :\n <input\n type=\"hidden\"\n name={this.name}\n value={this.value}\n />\n }\n\n <label class=\"stzh-chipselect__label\" htmlFor={this.id}>\n {this.label ? this.label : <slot></slot>}\n {!this.hideOptional &&\n <span class=\"stzh-chipselect__marker\">\n <span class=\"stzh-chipselect__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker\n }\n </span>\n <span class=\"stzh-chipselect__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText\n }\n </span>\n </span>\n }\n </label>\n\n {this._data.length > 0 &&\n <Fragment>\n <div\n id={this.id}\n class=\"stzh-chipselect__chips\"\n role=\"listbox\"\n tabindex=\"0\"\n aria-multiselectable={this.multiple ? \"true\" : \"false\"}\n aria-activedescendant={`${this.id}-option-${this.activeFocusOptionIndex}`}\n aria-describedby={`${this.id}-description ${this.a11yDescribedby}`}\n onKeyDown={this.handleKeydown}\n >\n {this._data.map((data, index) => (\n <stzh-chip\n role=\"option\"\n class={{\n \"stzh-chipselect__chip\": true,\n \"is-focused\": this.activeFocusOptionIndex === index\n }}\n label={data.label}\n counter={data.counter}\n icon={data.icon}\n type={data.type}\n inverted={data.inverted}\n variant={data.variant}\n size={data.size || \"small\"}\n disabled={this.disabled || data.disabled}\n active={\n this._value.includes(data.value)\n || (!data.value && this.multiple && (this._value.length === 0 || (this._value.length === 1 && this._value[0] === \"\")))\n }\n aria-selected={\n this._value.includes(data.value)\n || (!data.value && this.multiple && (this._value.length === 0 || (this._value.length === 1 && this._value[0] === \"\")))\n ? \"true\" : \"false\"\n }\n id={`${this.id}-option-${index}`}\n a11yTabindex=\"-1\"\n onClick={() => this.handleChipClick(data, index)}\n ></stzh-chip>\n ))}\n </div>\n\n <StzhInputDescription\n classPrefix=\"stzh-chipselect\"\n id={`${this.id}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongTitle={this.descriptionLongTitle}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n\n {/* <stzh-dropdown\n class=\"stzh-chipselect__dropdown\"\n multiple={this.multiple}\n disabled={this.disabled}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n required={this.required}\n invalid={this.invalid}\n items={[this.value]}\n label={this.label}\n labelHidden={this.labelHidden}\n options={this._dataDropdown}\n hideOptional={this.hideOptional}\n onStzhChange={this.handleDropdownChange}\n ></stzh-dropdown> */}\n </Fragment>\n }\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["stzhCardCss","StzhCard","this","_subtitles","nodeChange","entries","changeInSlot","forEach","entry","target","closest","hasAttribute","forceUpdate","element","headerClick","event","collapsible","filterTags","composedPathTags","composedPath","map","_a","tagName","toLowerCase","found","some","r","includes","collapsed","stzhCollapse","emit","component","subtitleClick","subtitleInteractive","stzhSubtitleClick","originalEvent","starToggleClick","stzhStarClick","starred","actionClick","action","stzhHeaderActionClick","arrowUpClick","sortable","findSortableChildElement","moveItem","arrowDownClick","updateElementInsideSortable","currentSortable","removeEventListener","init","chips","querySelectorAll","texts","chip","setPropsIfNull","size","text","handleMutation","handleSelectionChange","checked","detail","handleCardClick","stzhClick","href","subtitleWatcher","newValue","JSON","parse","err","headerActionsWatcher","_headerActions","footerActionsWatcher","_footerActions","sortableContainer","container","parentElement","componentWillLoad","subtitle","headerActions","footerActions","localization","window","stzhComponents","utils","fetchTranslations","componentDidLoad","addEventListener","componentDidRender","requestAnimationFrame","objectId","analyticsId","headingTextElement","innerText","_b","imageLinkElement","setAttribute","_c","titleLinkElement","connectedCallback","observer","MutationObserver","observe","childList","subtree","disconnectedCallback","disconnect","render","imageUsed","hasSlot","headingUsed","footerUsed","contentUsed","Heading","headingLevel","Subtitle","sortableChildElement","isFirstItemInSortable","Array","from","children","indexOf","isLastItemInSortable","length","sortableEnabled","sortableDisabled","disabled","sortableActionsEnabled","hideMovementActions","hasHeading","heading","hasHeader","starrable","hasFooter","selectable","headerActionsWithBadge","filter","badge","badgeEmpty","classes","variant","h","Host","role","class","ref","el","tabindex","onClick","name","icon","iconOnly","slot","actionRemove","actionAdd","label","actionsPopoverLabel","placement","headerActionsBadge","badgePosition","badgeType","headerActionsBadgeType","_d","e","Fragment","actionMoveUp","actionMoveDown","actions","fullwidth","type","value","select","onStzhChange","stzhCardlistCss","StzhCardlist","collapseClick","cards","card","allCollapsed","stzhCollapseAll","updateCollapsedState","sortableGhostClone","dragElement","querySelector","originalElement","clonedElement","cloneNode","collapseListener","showToggleLink","layout","description","expandAll","collapseAll","dataIdAttribute","sortableDataIdAttribute","ghostClone","stzhChipselectCss","chipselectCounter","StzhChipselect","_data","_value","handleReset","async","defaultValue","handleChipClick","data","index","multiple","activeFocusOptionIndex","waitForNextRender","stzhChange","handleKeydown","newActiveIndex","activeOptionIndex","key","preventDefault","resetListener","contains","valueWatcher","ex","dataWatcher","errorWatcher","_error","Promise","resolve","renderPromiseResolve","id","error","descriptionUsed","descriptionLongUsed","descriptionLong","errorUsed","invalid","required","labelHidden","htmlFor","hideOptional","$globals","requiredFieldMarker","optionalFieldMarker","requiredFieldText","optionalFieldText","a11yDescribedby","onKeyDown","counter","inverted","active","a11yTabindex","StzhInputDescription","classPrefix","descriptionLongTitle","moreInfoButtonLabel"],"sources":["src/components/stzh-card/stzh-card.scss?tag=stzh-card&encapsulation=scoped","src/components/stzh-card/stzh-card.tsx","src/components/stzh-cardlist/stzh-cardlist.scss?tag=stzh-cardlist&encapsulation=scoped","src/components/stzh-cardlist/stzh-cardlist.tsx","src/components/stzh-chipselect/stzh-chipselect.scss?tag=stzh-chipselect&encapsulation=scoped","src/components/stzh-chipselect/stzh-chipselect.tsx"],"sourcesContent":["/**\n * @prop --content-min-height: Min height of content\n */\n\n:host {\n // --box-shadow: none;\n --border-radius: 0px;\n\n --content-min-height: 120px;\n\n --dnd-visibility: hidden;\n --dnd-opacity: 0;\n\n display: flex;\n flex-direction: column;\n position: relative;\n border-radius: var(--border-radius);\n\n @media print {\n page-break-inside: avoid;\n break-inside: avoid;\n }\n\n &[collapsed]:not([collapsed=\"false\"]) {\n --content-min-height: none;\n }\n\n &[checked]:not([checked=\"false\"]) {\n outline: 3px solid $colorPrimary;\n }\n\n &.is-ghost::after,\n .is-ghost &::after {\n border-radius: var(--border-radius);\n }\n\n &[href]:hover,\n &[href]:focus-within,\n &.is-selected,\n &.is-chosen,\n .is-selected &,\n .is-chosen & {\n // --box-shadow: #{$boxShadowOverlay};\n }\n\n &.is-ghost,\n .is-ghost & {\n // --box-shadow: none;\n\n overflow: hidden;\n }\n\n &.is-drag,\n &.is-chosen,\n &.is-ghost,\n &.is-selected,\n .is-drag &,\n .is-chosen &,\n .is-ghost &,\n .is-selected &,\n &[is-sortable]:hover {\n --dnd-visibility: visible;\n --dnd-opacity: 1;\n }\n\n ::slotted([slot=\"image\"]) {\n width: 100%;\n max-width: 100%;\n }\n\n ::slotted(img[slot=\"image\"]) {\n display: block;\n }\n\n ::slotted(table) {\n border: 0;\n border-spacing: 0;\n\n th {\n @include font;\n }\n\n td, th {\n padding: 0;\n }\n\n td {\n color: $colorBlack;\n padding-left: space('xsmall');\n }\n }\n}\n\n.stzh-card {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n\tbackground-color: $colorWhite;\n\tborder-radius: var(--border-radius);\n\t// box-shadow: var(--box-shadow);\n\t// transition: box-shadow $baseTransitionAnimationSpeed;\n\n // .vshow-medium {\n // @include mq($to: medium) {\n // @include visuallyhidden;\n // }\n // }\n\n // .show-medium {\n // @include mq($to: medium) {\n // display: none;\n // }\n // }\n\n // .hide-medium {\n // @include mq($from: medium) {\n // display: none;\n // }\n // }\n\n &__content-wrapper {\n position: relative;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n min-height: var(--content-min-height);\n }\n\n\t&__dnd {\n --size: #{iconSize('xsmall')};\n\t\tposition: absolute;\n // INFO: we don't use space() values here, because we want this element to align with the heading\n left: 3px;\n top: 23px;\n\t\tdisplay: flex;\n\t\tvisibility: var(--dnd-visibility);\n\t\topacity: var(--dnd-opacity);\n\t\ttransition: all $baseTransitionAnimationSpeed;\n display: none;\n\n @include mq($from: medium) {\n display: block;\n }\n\n @include mq($from: large) {\n // INFO: we don't use space() values here, because we want this element to align with the heading\n left: 4px;\n top: 27px;\n }\n\t}\n\n &__header-top {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n\t\talign-items: flex-start;\n }\n\n &__header-meta {\n &:not(:empty) {\n display: inline-flex;\n margin-top: space('xsmall');\n gap: space('xsmall');\n }\n }\n\n\t&__header-left,\n\t&__header-right {\n\t\tdisplay: flex;\n\t}\n\n\t&__header-right {\n @include spaceCurve('padding-left', 'tiny');\n\t}\n\n\t&__left {\n\t\talign-self: center;\n\t}\n\n\t&__title-area {\n\t\t@include wordWrap;\n\t\toverflow: hidden;\n\t}\n\n\t&__title,\n\t&__subtitle {\n\t\tmargin: 0;\n\t}\n\n &__title-link {\n color: inherit;\n text-decoration-line: none;\n }\n\n &__title {\n @include font('title');\n @include fontSize('milli');\n }\n\n &__image-link {\n display: block;\n }\n\n\t&__subtitle {\n @include fontSize('milli');\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex-wrap: wrap;\n\t\ttext-decoration-line: none;\n // INFO: we don't use space() values here, since we try to mimic the width of a whitespace here\n\t\tmargin-left: -0.5625em;\n\t}\n\n\t&__subtitle-text {\n\t\tposition: relative;\n\t\tdisplay: inline-flex;\n // INFO: we don't use space() values here, since we try to mimic the width of a whitespace here\n\t\tpadding-left: 0.5625em;\n\n\t\t&::after {\n\t\t\tcontent: ',';\n\t\t\tposition: absolute;\n\t\t\tleft: 0;\n\t\t}\n\t}\n\n\t&__content {\n @include fontSize('milli');\n flex-grow: 1;\n\t}\n\n // &__footer-meta {\n // @include fontSize('micro');\n // display: flex;\n // flex-wrap: wrap;\n // gap: space('xsmall');\n // color: $colorGrey80;\n // }\n\n // &__footer-meta-separator {\n // width: 1px;\n // background-color: currentColor;\n // flex-shrink: 0;\n // }\n\n &__card-actions {\n\t\tdisplay: inline-flex;\n white-space: nowrap;\n\t}\n\n\t&__card-action {\n @include mq($to: medium) {\n --icon-text-margin: 0px;\n --badge-icon-text-margin: 0px;\n }\n\n &[variant=\"tertiary\"] {\n --color: #{$baseColor};\n }\n\n &.is-button {\n --icon-size: #{iconSize('small')};\n }\n\n &.is-placeholder {\n width: space('xxlarge');\n height: space('xxlarge');\n }\n\n &.is-star {\n }\n\t}\n\n &__card-action-popover {\n --width: auto;\n }\n\n /* Service */\n\n &--service &__subtitle {\n @include fontCurve('p1');\n }\n\n &--service &__subtitle {\n @include fontCurve('p1');\n }\n\n &--service &__title {\n @include fontCurve('h3', 'heading');\n }\n\n /* Has content */\n\n &--has-content &__content {\n @include spaceCurve('padding-bottom', 'large');\n padding-top: space('xlarge');\n padding-left: space('medium');\n padding-right: space('medium');\n\n @include mq($from: medium) {\n @include spaceCurve('padding-bottom', 'medium');\n }\n }\n\n &--has-content#{&}--service &__content {\n @include spaceCurve('padding', 'regular');\n }\n\n /* Has header */\n\n &--has-header &__header {\n padding-top: space('xlarge');\n padding-left: space('medium');\n padding-right: space('medium');\n\t}\n\n &--has-header#{&}--has-content &__content {\n padding-top: space('xsmall');\n }\n\n &--has-header#{&}--service &__header {\n\t\t@include spaceCurve('padding-top', 'regular');\n\t\t@include spaceCurve('padding-left', 'regular');\n\t\t@include spaceCurve('padding-right', 'regular');\n }\n\n &--has-header#{&}--has-content#{&}--service &__content {\n @include spaceCurve('padding-top', 'regular');\n }\n\n /* Has footer */\n\n &--has-footer &__footer {\n @include spaceCurve('padding-bottom', 'medium');\n padding-left: space('medium');\n padding-right: space('medium');\n }\n\n &--has-footer#{&}--has-content &__content {\n padding-bottom: space('medium');\n }\n\n &--has-footer#{&}--service &__footer {\n\t\t@include spaceCurve('padding-bottom', 'regular');\n\t\t@include spaceCurve('padding-left', 'regular');\n\t\t@include spaceCurve('padding-right', 'regular');\n }\n\n &--has-footer#{&}--has-content#{&}--service &__content {\n @include spaceCurve('padding-bottom', 'regular');\n }\n\n /* Has tag */\n\n &--has-tag#{&}--has-header &__header {\n padding-top: space('xxxlarge');\n }\n\n /* Has Link */\n\n &--has-link &__title-link,\n &--has-link &__content {\n transition: color $baseTransitionAnimationSpeed;\n }\n\n &--has-link &__title-link {\n color: $colorPrimary;\n text-decoration-line: none;\n border-radius: $buttonBorderRadius;\n cursor: pointer;\n\n &::before,\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n // &::before {\n // transition: all $baseTransitionAnimationSpeed;\n // }\n\n &::after {\n z-index: 1;\n }\n }\n\n &--has-link &__card-actions,\n &--has-link &__header-meta,\n &--has-link &__footer-actionset,\n &--has-link &__footer-select-button {\n position: relative;\n z-index: 2;\n }\n\n &--has-link:has(#{&}__image-link:hover) &__title-link,\n &--has-link:has(#{&}__image-link:hover) &__content,\n &--has-link:has(#{&}__title-link:hover) &__title-link,\n &--has-link:has(#{&}__title-link:hover) &__content {\n color: $colorSecondary60;\n\n // &::before,\n // &::before {\n // background-color: $colorPrimary20;\n // }\n }\n\n // &__footer-arrow {\n // color: $colorPrimary;\n // }\n\n // &--has-link:hover &__footer-arrow {\n // color: $colorSecondary60;\n // }\n\n /* Interactive Subtitle */\n\n &--has-subtitle-interactive &__subtitle {\n cursor: pointer;\n font-family: inherit;\n padding: 0;\n appearance: none;\n background: none;\n border: none;\n transition: color $baseTransitionAnimationSpeed;\n color: $colorPrimary;\n\n &:hover,\n &:focus {\n color: $colorPrimaryHover;\n }\n }\n\n /* Is collapsible */\n\n &--is-collapsible &__header {\n cursor: pointer;\n }\n\n /* Collapsed (Header) */\n\n &--is-collapsed,\n &--has-collapsed-header &__header {\n // .vhide-when-collapsed {\n // @include visuallyhidden;\n // }\n\n .hide-when-collapsed {\n display: none;\n }\n\n // .show-when-collapsed {\n // display: block;\n // }\n }\n\n &--is-collapsed &__header {\n // border-bottom: none;\n padding-bottom: space('xlarge');\n }\n\n &--is-collapsed#{&}--service &__header {\n // border-bottom: none;\n @include spaceCurve('padding-bottom', 'regular');\n }\n\n &--is-collapsed &__card-action,\n &--has-collapsed-header &__card-action {\n --icon-text-margin: 0px;\n --badge-icon-text-margin: 0px;\n }\n\n /* Starred */\n\n &--is-starred &__card-action.is-star {\n color: $colorPrimary;\n\n &:hover,\n &:focus {\n color: $colorPrimaryHover;\n }\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Watch,\n Event,\n EventEmitter,\n Fragment,\n forceUpdate\n} from \"@stencil/core\";\n\nimport {\n StzhCardHeaderAction,\n StzhActionsetItem,\n StzhCardCollapseEvent,\n StzhCardSubtitleClickEvent,\n StzhCardStarClickEvent,\n StzhCardClickEvent,\n StzhCardHeaderActionClickEvent,\n StzhButtonChangeEvent,\n // StzhLocaleAdapter\n} from \"../../index\";\n\nimport { hasSlot, setPropsIfNull } from \"../../utils/utils\";\n// import { media } from '../../utils/media-utils';\n\nimport { StzhCardLocalizedText } from './stzh-card.localization';\n\n/**\n * @slot heading - Slot for heading\n * @slot image - Slot for optional image element\n * @slot content - Slot for content for any elements\n * @slot meta - Slot for meta elements (status or chip)\n * @slot footer - Slot to replace footer content (`footerActions` and `selectable` button are not shown anymore)\n */\n@Component({\n tag: \"stzh-card\",\n styleUrl: \"stzh-card.scss\",\n scoped: true\n})\nexport class StzhCard {\n /** Translation strings */\n @Prop() localization: StzhCardLocalizedText;\n\n /** Variant */\n @Prop({ reflect: true }) variant: \"default\" | \"service\" = \"default\";\n\n /** Whether card is collapsed or not */\n @Prop({ reflect: true, mutable: true }) collapsed: boolean = false;\n\n /** Whether card was starred */\n @Prop({ reflect: true, mutable: true }) starred: boolean = false;\n\n /**\n * Whether card star is displayed (with tooltip and menu-item in mobile popover).\n * The tooltip / menu-item text can be adjusted in the translations file (`actionAdd` & `actionRemove`).\n */\n @Prop({ reflect: true }) starrable: boolean = false;\n\n /** Whether card is selectable */\n @Prop({ reflect: true }) selectable: boolean = false;\n\n /** Whether card is checked (if card is selectable) */\n @Prop({ reflect: true }) checked: boolean = false;\n\n /** The name of the input element (if card is selectable) */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** Href of card */\n @Prop({ reflect: true }) href: string;\n\n /** target if the button is used as link (if href used) */\n @Prop() target: string;\n\n /** The value of the input element (if card is selectable) */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** Whether the element is disabled or not (if card is selectable) */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Heading (or use heading slot instead) */\n @Prop() heading: string = \"\";\n\n /** Heading level */\n @Prop({ reflect: true }) headingLevel: \"1\" | \"2\" | \"3\" | \"4\" = \"3\";\n\n /** Subtitle */\n @Prop() subtitle: string | string[] = \"\";\n private _subtitles = [];\n\n /** Author name */\n // @Prop() author: string;\n\n /** Date to display */\n // @Prop() date: Date | string;\n\n /**\n * Date adapter, for custom parsing/formatting.\n * Must be object with a `parse` function which accepts a `string` and returns a `Date`,\n * and a `format` function which accepts a `Date` and returns a `string`.\n */\n // @Prop() dateAdapter: StzhLocaleAdapter;\n\n /** Tag name */\n // @Prop() tag: string;\n\n /** Card header actions */\n @Prop() headerActions: string | StzhCardHeaderAction[] = [];\n private _headerActions: StzhCardHeaderAction[];\n\n /**\n * Set a badge text if header action badge exists (see headerActionsBadgeType for more info).\n */\n @Prop() headerActionsBadge: string;\n\n /**\n * If a header action with a badge exists inside `headerActions`, the more actions popover will automatically have a empty badge.\n * By default, it takes the badge type from the first one. With this property you can overwrite it.\n */\n @Prop() headerActionsBadgeType: \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\n /**\n * Card footer actions.\n * The [`stzh-actionset`](?path=/story/components-actionset) component is used internally.\n * You can listen to clicks with the `stzhActionClick` event.\n */\n @Prop() footerActions: string | StzhActionsetItem[] = [];\n private _footerActions: StzhActionsetItem[];\n\n /** Whether subtitle should be rendered as button and event `stzhSubtitleClick` executed on click */\n @Prop() subtitleInteractive: boolean = false;\n\n /**\n * Whether sorting should be disabled.\n * Has no effect if card is not inside a `cardlist` element, which has `sortableEnabled` property set to true.\n */\n @Prop({ reflect: true }) sortableDisabled: boolean = false;\n\n /** Whether card is collapsible */\n @Prop({ reflect: true }) collapsible: boolean = false;\n\n /**\n * Whether movement menu items should be shown.\n * Has no effect if card is not inside a `cardlist` element, which has `sortableEnabled` property set to true.\n */\n @Prop() hideMovementActions: boolean = false;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the link elements.\n * Default value will be taken from `heading` prop/slot.\n */\n @Prop() analyticsId: string;\n\n @Element() element: HTMLStzhCardElement;\n\n /** Click event (if href is used) */\n @Event() stzhClick: EventEmitter<StzhCardClickEvent>;\n\n /** Collapse event */\n @Event() stzhCollapse: EventEmitter<StzhCardCollapseEvent>;\n\n /** Subtitle click event */\n @Event() stzhSubtitleClick: EventEmitter<StzhCardSubtitleClickEvent>;\n\n /** Star click event */\n @Event() stzhStarClick: EventEmitter<StzhCardStarClickEvent>;\n\n /** Header action click event */\n @Event() stzhHeaderActionClick: EventEmitter<StzhCardHeaderActionClickEvent>;\n\n @Watch(\"subtitle\")\n subtitleWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n if (newValue === \"\") {\n this._subtitles = [];\n } else {\n try {\n this._subtitles = JSON.parse(newValue);\n } catch(err) {\n this._subtitles = [newValue];\n }\n }\n } else {\n this._subtitles = newValue;\n }\n }\n\n @Watch(\"headerActions\")\n headerActionsWatcher(newValue: StzhCardHeaderAction[] | string) {\n if (typeof newValue === \"string\") {\n this._headerActions = JSON.parse(newValue);\n } else {\n this._headerActions = newValue;\n }\n }\n\n @Watch(\"footerActions\")\n footerActionsWatcher(newValue: StzhActionsetItem[] | string) {\n if (typeof newValue === \"string\") {\n this._footerActions = JSON.parse(newValue);\n } else {\n this._footerActions = newValue;\n }\n }\n\n // @Watch(\"collapsed\")\n // collapsedWatcher() {\n // this.handleResize();\n // }\n\n private observer: MutationObserver;\n\n private nodeChange = (entries) => {\n let changeInSlot = false;\n\n entries.forEach((entry) => {\n if (entry.target.closest('[slot]') || entry.target.hasAttribute('slot')) {\n changeInSlot = true;\n }\n });\n\n if (changeInSlot) {\n forceUpdate(this.element);\n }\n };\n\n // private mainElement: HTMLElement;\n // private headerElement: HTMLElement;\n // private headerLeftElement: HTMLElement;\n // private headerRightElement: HTMLElement;\n private imageLinkElement: HTMLAnchorElement;\n private titleLinkElement: HTMLAnchorElement;\n private headingTextElement: HTMLDivElement;\n private sortable: HTMLStzhSortableElement;\n\n // private debounceResize: number;\n // private resizeObserver: ResizeObserver;\n\n // private update = () => {\n // if (!this.mainElement) {\n // return;\n // }\n\n // this.mainElement.classList.remove(\"stzh-card--has-collapsed-header\");\n\n // if (media('medium').matches) {\n // const headerWidth = this.headerElement.clientWidth;\n // const leftWidth = this.headerLeftElement.clientWidth;\n // const rightWidth = this.headerRightElement.clientWidth;\n\n // if (headerWidth - leftWidth <= rightWidth) {\n // this.mainElement.classList.add(\"stzh-card--has-collapsed-header\");\n // }\n // }\n // }\n\n private headerClick = (event: MouseEvent) => {\n if (!this.collapsible) {\n return;\n }\n\n const filterTags = [\"stzh-popover\", \"stzh-tooltip\", \"button\", \"a\", \"input\", \"select\", \"textarea\", \"iframe\", \"details\", \"label\", \"area\"];\n const composedPathTags = event.composedPath().map(element => (element as HTMLElement).tagName?.toLowerCase());\n const found = composedPathTags.some(r => filterTags.includes(r))\n\n if (!found) {\n this.collapsed = !this.collapsed;\n\n this.stzhCollapse.emit({\n component: \"stzh-card\",\n collapsed: this.collapsed\n });\n }\n }\n\n private subtitleClick = (event: MouseEvent) => {\n if (this.subtitleInteractive) {\n this.stzhSubtitleClick.emit({\n component: \"stzh-card\",\n originalEvent: event\n });\n }\n }\n\n private starToggleClick = (event: MouseEvent) => {\n this.stzhStarClick.emit({\n component: \"stzh-card\",\n starred: this.starred,\n originalEvent: event\n });\n }\n\n private actionClick = (event: MouseEvent, action: StzhCardHeaderAction) => {\n this.stzhHeaderActionClick.emit({\n component: \"stzh-card\",\n action,\n originalEvent: event\n });\n }\n\n private arrowUpClick = () => {\n const sortable = this.element.closest(\"stzh-sortable\");\n\n if (sortable) {\n const element = this.findSortableChildElement();\n sortable.moveItem(element, \"up\");\n }\n }\n\n private arrowDownClick = () => {\n const sortable = this.element.closest(\"stzh-sortable\");\n\n if (sortable) {\n const element = this.findSortableChildElement();\n sortable.moveItem(element, \"down\");\n }\n }\n\n private updateElementInsideSortable = () => {\n const currentSortable = this.element.closest(\"stzh-sortable\");\n\n // check if element is still inside sortable\n if (!currentSortable) {\n this.sortable.removeEventListener(\"stzhUpdate\", this.updateElementInsideSortable);\n this.sortable.removeEventListener(\"stzhDisable\", this.updateElementInsideSortable)\n return;\n }\n\n if (this.element) {\n forceUpdate(this.element);\n }\n }\n\n private init = () => {\n const chips = this.element.querySelectorAll(\n 'stzh-chip[slot=\"meta\"], [slot=\"meta\"] stzh-chip'\n );\n\n const texts = this.element.querySelectorAll(\n 'stzh-text[slot=\"content\"], [slot=\"meta\"] stzh-text'\n );\n\n chips.forEach((chip) => {\n setPropsIfNull(chip, {\n size: \"small\"\n } as HTMLStzhChipElement)\n });\n\n texts.forEach((text) => {\n setPropsIfNull(text, {\n size: \"inherit\"\n } as HTMLStzhTextElement)\n });\n }\n\n // private handleResize = () => {\n // if (this.debounceResize) {\n // window.cancelAnimationFrame(this.debounceResize);\n // }\n\n // this.debounceResize = requestAnimationFrame(this.update);\n // }\n\n private handleMutation = (entries) => {\n this.init();\n this.nodeChange(entries);\n }\n\n private handleSelectionChange = (event: CustomEvent<StzhButtonChangeEvent>) => {\n this.checked = event.detail.checked;\n }\n\n private handleCardClick = (originalEvent: MouseEvent) => {\n this.stzhClick.emit({\n component: \"stzh-card\",\n originalEvent,\n href: this.href\n });\n }\n\n private findSortableChildElement(): HTMLElement | undefined {\n const sortable = this.element.closest(\"stzh-sortable\");\n\n if (sortable) {\n let element: HTMLElement = this.element;\n let sortableContainer = null;\n\n if (typeof sortable.container === \"function\") {\n sortableContainer = sortable.container();\n } else {\n sortableContainer = sortable.container;\n }\n\n while (element.parentElement && element.parentElement !== sortableContainer) {\n element = element.parentElement;\n }\n\n return element;\n }\n }\n\n async componentWillLoad() {\n this.subtitleWatcher(this.subtitle);\n this.headerActionsWatcher(this.headerActions);\n this.footerActionsWatcher(this.footerActions);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"card\");\n }\n\n // if (!this.dateAdapter) {\n // this.dateAdapter = window.stzhComponents.utils.createFormatParseAdapter(\n // this.localization.$formats,\n // this.localization.$globals\n // );\n // }\n }\n\n componentDidLoad() {\n this.sortable = this.element.closest(\"stzh-sortable\");\n\n if (this.sortable) {\n this.sortable.addEventListener(\"stzhUpdate\", this.updateElementInsideSortable);\n this.sortable.addEventListener(\"stzhDisable\", this.updateElementInsideSortable)\n }\n }\n\n componentDidRender() {\n requestAnimationFrame(() => {\n const objectId = this.analyticsId || this.headingTextElement?.innerText;\n\n if (objectId) {\n this.imageLinkElement?.setAttribute(\"s-object-id\", objectId);\n this.titleLinkElement?.setAttribute(\"s-object-id\", objectId);\n }\n });\n }\n\n connectedCallback() {\n this.init();\n\n this.observer = new MutationObserver(this.handleMutation);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true\n });\n\n // this.resizeObserver = new ResizeObserver(this.handleResize);\n // this.resizeObserver.observe(this.element);\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n\n // if (this.resizeObserver) {\n // this.resizeObserver.disconnect();\n // }\n }\n\n render() {\n const imageUsed: boolean = hasSlot(this.element, \"image\");\n const headingUsed: boolean = hasSlot(this.element, \"heading\");\n const footerUsed: boolean = hasSlot(this.element, \"footer\");\n const contentUsed: boolean = hasSlot(this.element, \"content\");\n\n const Heading = `h${this.headingLevel}`;\n const Subtitle = `${this.subtitleInteractive ? 'button' : 'span'}`;\n\n const sortableChildElement = this.findSortableChildElement();\n\n const isFirstItemInSortable = sortableChildElement?.parentElement\n && Array.from(sortableChildElement?.parentElement?.children)\n .indexOf(sortableChildElement) === 0;\n\n const isLastItemInSortable = sortableChildElement?.parentElement\n && Array.from(sortableChildElement?.parentElement?.children)\n .indexOf(sortableChildElement) === sortableChildElement?.parentElement?.children.length - 1;\n\n const sortableEnabled = !this.sortableDisabled && this.sortable && !this.sortable.disabled;\n const sortableActionsEnabled = sortableEnabled && !this.hideMovementActions;\n\n // const nonCollapsingTextHeaderActions = this._headerActions.filter(action => !action.onlyCollapseText);\n\n // const headerActions = [\n // ...this._headerActions\n // ];\n\n const hasHeading = !!this.heading || headingUsed;\n\n const hasHeader = hasHeading\n || this._subtitles.length > 0\n || this._headerActions.length > 0\n // || nonCollapsingTextHeaderActions.length > 0\n || this.starrable\n || sortableActionsEnabled;\n\n const hasFooter = footerUsed\n || this._footerActions.length > 0\n || this.selectable\n // || !!this.author\n // || !!this.date;\n\n const headerActionsWithBadge = this._headerActions.filter(action => !!action.badge || action.badgeEmpty);\n\n const classes = {\n \"stzh-card\": true,\n \"stzh-card--has-link\": !!this.href,\n \"stzh-card--has-image\": imageUsed,\n \"stzh-card--has-content\": contentUsed,\n \"stzh-card--has-subtitle\": !!this.subtitle,\n \"stzh-card--has-subtitle-interactive\": !!this.subtitle && this.subtitleInteractive,\n \"stzh-card--has-header\": hasHeader,\n \"stzh-card--has-footer\": hasFooter,\n // \"stzh-card--has-tag\": !!this.tag,\n \"stzh-card--is-collapsible\": this.collapsible,\n \"stzh-card--is-collapsed\": this.collapsed,\n \"stzh-card--is-starred\": this.starred,\n \"stzh-card--is-checked\": this.checked,\n \"stzh-card--is-sortable\": sortableEnabled,\n [`stzh-card--${this.variant}`]: !!this.variant\n };\n\n return (\n <Host role=\"listitem\" aria-label={this.heading} is-sortable={sortableEnabled}>\n <article\n // ref={(el) => (this.mainElement = el as HTMLElement)}\n class={classes}\n >\n <a\n ref={(el) => (this.imageLinkElement = el as HTMLAnchorElement)}\n aria-hidden=\"true\"\n tabindex=\"-1\"\n class=\"stzh-card__image-link\"\n href={this.href}\n target={this.target}\n onClick={this.href ? this.handleCardClick : null}\n >\n <slot name=\"image\"></slot>\n </a>\n <div class=\"stzh-card__content-wrapper\">\n <stzh-icon class=\"stzh-card__dnd\" name=\"drag\"></stzh-icon>\n {/* {this.tag && <div class=\"stzh-card__tag\">{this.tag}</div>} */}\n\n <header\n // ref={(el) => (this.headerElement = el as HTMLElement)}\n class=\"stzh-card__header\"\n onClick={this.headerClick}\n >\n <div class=\"stzh-card__header-top\">\n <div\n // ref={(el) => (this.headerLeftElement = el as HTMLElement)}\n class=\"stzh-card__header-left\"\n >\n <div class=\"stzh-card__title-area\">\n {hasHeading &&\n <Heading class=\"stzh-card__title\">\n <a\n ref={(el) => (this.titleLinkElement = el as HTMLAnchorElement)}\n class=\"stzh-card__title-link\"\n href={this.href}\n target={this.target}\n onClick={this.href ? this.handleCardClick : null}\n >\n <div ref={(el) => (this.headingTextElement = el as HTMLDivElement)}>\n {this.heading ? this.heading : <slot name=\"heading\"></slot>}\n </div>\n </a>\n </Heading>\n }\n {this._subtitles.length > 0 &&\n <Subtitle class=\"stzh-card__subtitle\" onClick={this.subtitleClick}>\n {this._subtitles.map(subtitle => (\n <span class=\"stzh-card__subtitle-text\">{subtitle}</span>\n ))}\n </Subtitle>\n }\n </div>\n </div>\n <div\n // ref={(el) => (this.headerRightElement = el as HTMLElement)}\n class=\"stzh-card__header-right\"\n >\n <div class=\"stzh-card__card-actions\">\n {/* {this._headerActions.map(action => (\n <stzh-button\n class={{\n \"stzh-card__card-action\": true,\n \"is-button\": true,\n \"show-medium\": !action.onlyCollapseText,\n \"hide-when-collapsed\": !action.onlyCollapseText,\n \"hide-text-when-collapsed\": action.onlyCollapseText\n }}\n icon={action.icon}\n badge={action.badge}\n badgeEmpty={action.badgeEmpty}\n badgeType={action.badgeType}\n variant=\"tertiary\"\n size=\"tiny\"\n badgePosition=\"icon\"\n onClick={(e: MouseEvent) => { this.actionClick(e, action) }}\n >\n <span\n class={{\n \"vshow-medium\": action.onlyCollapseText,\n \"vhide-when-collapsed\": action.onlyCollapseText\n }}\n >\n {action.label}\n </span>\n </stzh-button>\n ))} */}\n\n {this.starrable &&\n <stzh-tooltip>\n <stzh-button\n class=\"stzh-card__card-action is-star\"\n icon={this.starred ? \"star-filled\" : \"star\"}\n variant=\"tertiary\"\n size=\"tiny\"\n iconOnly={true}\n onClick={this.starToggleClick}\n ></stzh-button>\n <div slot=\"content\">\n {this.starred ? this.localization.actionRemove : this.localization.actionAdd}\n </div>\n </stzh-tooltip>\n }\n\n {/* <stzh-actionset actions={headerActions} variant=\"overflow\"></stzh-actionset> */}\n {/* {(nonCollapsingTextHeaderActions.length > 0 || this.starrable || sortableActionsEnabled) && */}\n {(this._headerActions.length > 0 || this.starrable || sortableActionsEnabled) &&\n <stzh-popover\n label={this.localization.actionsPopoverLabel}\n placement=\"bottom-end\"\n class={{\n \"stzh-card__card-action-popover\": true,\n // \"hide-medium show-when-collapsed\": !this.starrable && !sortableActionsEnabled\n }}\n >\n <stzh-button\n class=\"stzh-card__card-action is-further\"\n variant=\"tertiary\"\n size=\"tiny\"\n icon=\"more-vertical\"\n iconOnly={true}\n badge={this.headerActionsBadge}\n badgeEmpty={headerActionsWithBadge.length > 0}\n badgePosition=\"icon\"\n badgeType={this.headerActionsBadgeType || headerActionsWithBadge[0]?.badgeType || \"default\"}\n ></stzh-button>\n <stzh-menu slot=\"content\">\n {/* {nonCollapsingTextHeaderActions.map(action => ( */}\n {this._headerActions.map(action => (\n <stzh-menu-item\n // class=\"hide-medium show-when-collapsed\"\n icon={action.icon}\n badge={action.badge}\n badgeEmpty={action.badgeEmpty}\n badgeType={action.badgeType}\n onClick={(e: MouseEvent) => { this.actionClick(e, action) }}\n >\n {action.label}\n </stzh-menu-item>\n ))}\n\n {sortableActionsEnabled &&\n <Fragment>\n {!isFirstItemInSortable &&\n <stzh-menu-item icon=\"arrow-up\" onClick={this.arrowUpClick}>\n {this.localization.actionMoveUp}\n </stzh-menu-item>\n }\n {!isLastItemInSortable &&\n <stzh-menu-item icon=\"arrow-down\" onClick={this.arrowDownClick}>\n {this.localization.actionMoveDown}\n </stzh-menu-item>\n }\n </Fragment>\n }\n\n {this.starrable &&\n <stzh-menu-item icon={this.starred ? \"star-filled\" : \"star\"} onClick={this.starToggleClick}>\n {this.starred ? this.localization.actionRemove : this.localization.actionAdd}\n </stzh-menu-item>\n }\n </stzh-menu>\n </stzh-popover>\n }\n </div>\n </div>\n </div>\n\n <div class=\"stzh-card__header-meta\">\n <slot name=\"meta\"></slot>\n </div>\n </header>\n\n <div class=\"stzh-card__content hide-when-collapsed\">\n <slot name=\"content\"></slot>\n </div>\n\n <div class=\"stzh-card__footer hide-when-collapsed\">\n {/* {(this.author || this.date) &&\n <div class=\"stzh-card__footer-meta\">\n {this.author &&\n <div class=\"stzh-card__footer-author\">{this.author}</div>\n }\n {this.author && this.date &&\n <div class=\"stzh-card__footer-meta-separator\"></div>\n }\n {this.date &&\n <div class=\"stzh-card__footer-date\">\n {this.dateAdapter.format(new Date(this.date), \"dateInput\")}\n </div>\n }\n </div>\n } */}\n\n <slot name=\"footer\">\n {this._footerActions.length > 0 &&\n <stzh-actionset\n class=\"stzh-card__footer-actionset\"\n actions={this._footerActions}\n ></stzh-actionset>\n }\n\n {this.selectable &&\n <stzh-button\n class=\"stzh-card__footer-select-button\"\n fullwidth\n type=\"radio\"\n variant=\"secondary\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n disabled={this.disabled}\n label={this.localization.select}\n onStzhChange={this.handleSelectionChange}\n ></stzh-button>\n }\n </slot>\n </div>\n </div>\n </article>\n </Host>\n );\n }\n}\n",".stzh-cardlist {\n &__cards {\n display: grid;\n gap: $gridGutter;\n\n @include mq($from: small) {\n gap: $gridGutterSmall;\n }\n\n @include mq($from: medium) {\n gap: $gridGutterMedium;\n }\n\n @include mq($from: large) {\n gap: $gridGutterLarge;\n }\n\n @include mq($from: ultra) {\n gap: $gridGutterUltra;\n }\n }\n\n &__header {\n\t\tdisplay: flex;\n\t\tjustify-content: space-between;\n flex-direction: column;\n align-items: flex-start;\n\n @include mq($from: medium) { // was smallheader before\n flex-direction: row;\n }\n }\n\n &__description {\n @include fontCurve('p1');\n --stzh-icon-color: #{$colorPrimary70};\n\n &:not(:empty) {\n margin-bottom: space('xsmall');\n\n @include mq($from: medium) { // was smallheader before\n margin-bottom: 0;\n }\n }\n }\n\n &__switch {\n --color: inherit;\n align-self: end;\n }\n\n /* Has content inside header */\n\n &:has(#{&}__description:not(:empty)) &__header,\n &--has-toggle-link &__header {\n @include spaceCurve('margin-bottom', 'regular');\n }\n\n /* Subpages layout variant */\n\n &--layout-subpages &__cards:has(stzh-card-navigation:not([has-lead])) {\n @include spaceCurve('row-gap', 'tiny');\n\n @include mq($from: small) {\n padding-left: calc(((100% - (#{$gridGutterSmall} * 3)) / 4) + #{$gridGutterSmall});\n }\n\n @include mq($from: medium) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n padding-left: 0;\n }\n }\n\n &--layout-subpages &__cards:has(stzh-card-navigation[has-lead]) {\n @include spaceCurve('row-gap', 'regular');\n\n @include mq($from: small) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n @include mq($from: large) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n }\n\n /* Teasers layout variant */\n\n &--layout-teasers &__cards {\n @include spaceCurve('row-gap', 'medium');\n\n @include mq($from: small) {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n\n @include mq($from: medium) {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n\n @include mq($from: large) {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n }\n }\n\n /* Searchresults layout variant */\n\n &--layout-searchresults &__cards {\n gap: space('xlarge');\n }\n\n /* Fullwidth layout variant (e.g. for MeinKonto dashboard) */\n\n &--layout-fullwidth &__cards {\n @include spaceCurve('gap', 'regular');\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Listen,\n State,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n\nimport { StzhCardlistCollapseAllEvent } from \"../../index\";\nimport { StzhCardlistLocalizedText } from './stzh-cardlist.localization';\n\n/**\n * @slot - Slot for `stzh-card` elements\n * @slot description - Slot for description\n */\n@Component({\n tag: \"stzh-cardlist\",\n styleUrl: \"stzh-cardlist.scss\",\n scoped: true\n})\nexport class StzhCardlist {\n /** Translation strings */\n @Prop() localization: StzhCardlistLocalizedText;\n\n @Prop({ reflect: true }) layout: \"fullwidth\" | \"searchresults\" | \"subpages\" | \"teasers\" = \"fullwidth\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Whether collapse/expand toggle link */\n @Prop({ reflect: true }) showToggleLink: boolean = false;\n\n /** Whether sorting should be enabled */\n @Prop() sortableEnabled: boolean = false;\n\n /** HTML attribute that is used by the `toArray()` of sortable method */\n @Prop() sortableDataIdAttribute: string = \"data-id\";\n\n @Element() element: HTMLStzhCardlistElement;\n\n /** Collapse all event */\n @Event() stzhCollapseAll: EventEmitter<StzhCardlistCollapseAllEvent>;\n\n @Listen(\"stzhCollapse\")\n collapseListener() {\n this.updateCollapsedState();\n }\n\n @State() allCollapsed: boolean = false;\n\n private collapseClick = () => {\n const cards = Array.from(this.element.querySelectorAll(\"stzh-card\"));\n cards.forEach(card => {\n if (card.collapsible) {\n card.collapsed = !this.allCollapsed\n }\n });\n\n this.allCollapsed = !this.allCollapsed;\n\n this.stzhCollapseAll.emit({\n component: \"stzh-cardlist\",\n allCollapsed: this.allCollapsed\n });\n }\n\n private updateCollapsedState = () => {\n const cards = Array.from(this.element.querySelectorAll(\"stzh-card\"));\n this.allCollapsed = !cards.some(card => !card.collapsed);\n }\n\n private sortableGhostClone: Function = (dragElement: HTMLElement) => {\n // const [clonedElement, clonedStzhElement, originalStzhElement] = cloneWrappedStzhElement(dragElement);\n\n // if (\n // clonedStzhElement\n // && originalStzhElement\n // && clonedStzhElement.tagName.toLowerCase() === \"stzh-card\"\n // ) {\n // const clonedStzhElementCard: HTMLStzhCardElement = clonedStzhElement as HTMLStzhCardElement;\n // const originalStzhElementCard: HTMLStzhCardElement = originalStzhElement as HTMLStzhCardElement;\n\n // // copy every property that is not reflected to its attribute\n // clonedStzhElementCard.heading = originalStzhElementCard.heading;\n // clonedStzhElementCard.subtitle = originalStzhElementCard.subtitle;\n // clonedStzhElementCard.headerActions = originalStzhElementCard.headerActions;\n // clonedStzhElementCard.footerActions = originalStzhElementCard.footerActions;\n // clonedStzhElementCard.hideMovementActions = originalStzhElementCard.hideMovementActions;\n // }\n\n // return clonedElement;\n\n const card = dragElement.tagName.toLowerCase() === \"stzh-card\"\n ? dragElement : dragElement.querySelector(\"stzh-card\");\n\n if (card) {\n const originalElement = dragElement as HTMLStzhCardElement;\n const clonedElement = dragElement.cloneNode(true) as HTMLStzhCardElement;\n\n // copy every property that is not reflected to its attribute\n clonedElement.heading = originalElement.heading;\n clonedElement.subtitle = originalElement.subtitle;\n clonedElement.headerActions = originalElement.headerActions;\n clonedElement.footerActions = originalElement.footerActions;\n clonedElement.hideMovementActions = originalElement.hideMovementActions;\n\n return clonedElement;\n }\n }\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"cardlist\");\n }\n }\n\n componentDidLoad() {\n this.updateCollapsedState();\n }\n\n render() {\n const classes = {\n \"stzh-cardlist\": true,\n \"stzh-cardlist--has-toggle-link\": this.showToggleLink,\n [`stzh-cardlist--layout-${this.layout}`]: !!this.layout\n };\n\n return (\n <Host>\n <div class={classes}>\n <div class=\"stzh-cardlist__header\">\n <div class=\"stzh-cardlist__description\">\n {this.description ? this.description : <slot name=\"description\"></slot>}\n </div>\n {this.showToggleLink &&\n <stzh-link\n class=\"stzh-cardlist__switch\"\n icon={this.allCollapsed ? \"list-expanded\" : \"list-shrinked\"}\n label={this.allCollapsed ? this.localization.expandAll : this.localization.collapseAll}\n onClick={this.collapseClick}\n ></stzh-link>\n }\n </div>\n\n <stzh-sortable\n disabled={!this.sortableEnabled}\n dataIdAttribute={this.sortableDataIdAttribute}\n ghostClone={this.sortableGhostClone}\n >\n <div class=\"stzh-cardlist__cards\" role=\"list\">\n <slot></slot>\n </div>\n </stzh-sortable>\n </div>\n </Host>\n );\n }\n}\n",":host {\n &[disabled]:not([disabled=\"false\"]) {\n --description-color: #{$formDisabledColor};\n }\n}\n\n.stzh-chipselect {\n\t@include input-description;\n\n &__label {\n @include font('heavy');\n @include fontSize('micro');\n @include truncate;\n color: $headingColor;\n display: block;\n margin-bottom: space('xsmall');\n\n &:empty {\n display: none;\n }\n }\n\n &__marker {\n @include fontSize('nano');\n margin-left: calc(-0.25em + #{space('xsmall')});\n }\n\n &__chips {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n border-radius: $buttonBorderRadius;\n column-gap: space('medium');\n\n @include mq($from: medium) {\n row-gap: space('medium');\n }\n\n // @include mq($to: medium) {\n // display: none;\n // }\n }\n\n &__chip {\n &.is-focused,\n &.is-focused[active]:not([active=false]) {\n --background-color: #{$colorSecondary40};\n\n @include highContrast() {\n --background-color: Highlight;\n }\n }\n\n &.is-focused[active]:not([active=false]) {\n --background-color: #{$colorPrimary90};\n\n @include highContrast() {\n --background-color: Canvas;\n }\n }\n }\n\n // &__dropdown {\n // @include mq($from: medium) {\n // display: none;\n // }\n // }\n\n // &__description-wrapper {\n // @include mq($to: medium) {\n // display: none;\n // }\n // }\n\n &--has-error &__error,\n &--has-description &__description {\n margin-top: space('xsmall');\n }\n\n /* Hidden label */\n\n &--has-label-hidden &__label {\n @include visuallyhidden;\n }\n\n /* Disabled */\n\n &--is-disabled &__chips,\n &--is-disabled &__label {\n cursor: not-allowed;\n }\n}\n","import {\n Component,\n Host,\n h,\n Element,\n Prop,\n Watch,\n Event,\n EventEmitter,\n State,\n Fragment,\n Listen,\n} from \"@stencil/core\";\n\nimport {\n StzhChipselectItem,\n StzhChipselectChangeEvent,\n // StzhDropdownChangeEvent\n} from \"../../index\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\n// import { hasSlot } from \"../../utils/utils\";\nimport { StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nlet chipselectCounter = 0;\n\n/**\n * @slot - Slot for `stzh-checkbox` elements\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot description-long-title - Slot for long description title (in popover) / instead of descriptionLongTitle or description property\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-chipselect\",\n styleUrl: \"stzh-chipselect.scss\",\n scoped: true\n})\nexport class StzhChipselect {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** The list of chips */\n @Prop() data: string | StzhChipselectItem[] = [];\n private _data: StzhChipselectItem[] = [];\n // private _dataDropdown: any[] = [];\n\n /** The name of the input element */\n @Prop({ reflect: true }) name: string;\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Whether label is hidden. */\n @Prop() labelHidden: boolean = false;\n\n /** Multiple */\n @Prop({ mutable: true }) multiple: boolean = false;\n\n /** Value */\n @Prop({ mutable: true }) value: string | string[] = \"\";\n private _value: string[] = [];\n\n /** Default value (used by reset) */\n @Prop({ mutable: true }) defaultValue: string | string[] = \"\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** Long description title appearing in a popover (use description-long-title slot as or description property alternative) */\n @Prop() descriptionLongTitle: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Whether all chips are disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Hide `(optional)` label (or use `required` inside form ot hide it) */\n @Prop({ reflect: true }) hideOptional: boolean = false;\n\n /** Id for element which describes the input (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n @State() activeFocusOptionIndex: number = 0;\n\n @Element() element: HTMLStzhChipselectElement;\n\n /** Change event */\n @Event() stzhChange: EventEmitter<StzhChipselectChangeEvent>;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Watch(\"value\")\n valueWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n try {\n this._value = JSON.parse(newValue);\n } catch(ex) {\n this._value = newValue ? [newValue] : [];\n }\n } else {\n this._value = newValue ? newValue : [];\n }\n }\n\n @Watch(\"data\")\n dataWatcher(newValue: StzhChipselectItem[] | string) {\n if (typeof newValue === \"string\") {\n this._data = JSON.parse(newValue);\n } else {\n this._data = newValue;\n }\n\n // this._dataDropdown = this._data.map((data) => {\n // return {\n // text: data.counter\n // ? `${data.label} (${data.counter})`\n // : data.label,\n // value: data.value\n // }\n // });\n }\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n }\n\n private id: string;\n private renderPromiseResolve: (value?: unknown) => void;\n\n private waitForNextRender() {\n return new Promise(resolve => this.renderPromiseResolve = resolve);\n }\n\n private handleReset = async () => {\n this.value = this.defaultValue;\n\n // this.stzhChange.emit({\n // component: \"stzh-chipselect\",\n // value: this.value\n // });\n }\n\n private handleChipClick = async (data: StzhChipselectItem, index: number) => {\n if (this.multiple) {\n if (data.value === \"\" && this._value.length > 0 && !(this._value.length === 1 && this._value[0] === \"\")) {\n this.value = [];\n } else if (data.value !== \"\") {\n this.value = this._value.includes(data.value)\n ? this._value.filter(value => value !== data.value)\n : [...this._value, data.value];\n }\n } else {\n this.value = [data.value]\n }\n\n this.activeFocusOptionIndex = index;\n\n await this.waitForNextRender();\n\n this.stzhChange.emit({\n component: \"stzh-chipselect\",\n value: this.multiple ? this._value[0] : this._value\n })\n }\n\n // private handleDropdownChange = async (event: CustomEvent<StzhDropdownChangeEvent>) => {\n // this.value = Array.isArray(event.detail.value) ? event.detail.value[0] : event.detail.value;\n\n // this.activeFocusOptionIndex = this._data.findIndex(data => {\n // return data.value === this.value;\n // });\n\n // await this.waitForNextRender();\n\n // this.stzhChange.emit({\n // component: \"stzh-chipselect\",\n // value: this.value\n // })\n // }\n\n private handleKeydown = (event: KeyboardEvent) => {\n let newActiveIndex: number = null;\n const activeOptionIndex = this.activeFocusOptionIndex;\n\n if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {\n event.preventDefault();\n\n if (activeOptionIndex > 0) {\n newActiveIndex = activeOptionIndex - 1;\n }\n } else if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {\n event.preventDefault();\n\n if (activeOptionIndex < this._data.length - 1) {\n newActiveIndex = activeOptionIndex + 1;\n }\n } else if (event.key === \" \" || event.key === \"Enter\") {\n event.preventDefault();\n this.value = this._data[activeOptionIndex].value;\n\n this.stzhChange.emit({\n component: \"stzh-chipselect\",\n value: this.value\n });\n }\n\n if (newActiveIndex !== null) {\n this.activeFocusOptionIndex = newActiveIndex;\n }\n }\n\n componentDidRender() {\n if (this.renderPromiseResolve) {\n this.renderPromiseResolve();\n }\n }\n\n async componentWillLoad() {\n this.id = `stzh-chipselect-${chipselectCounter++}`;\n\n this.dataWatcher(this.data);\n this.errorWatcher(this.error);\n this.valueWatcher(this.value);\n\n this.defaultValue = this.defaultValue || this.value;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"chipselect\");\n }\n }\n\n render() {\n const descriptionUsed = !!this.description;\n const descriptionLongUsed = !!this.descriptionLong;\n const errorUsed = !!this.error;\n\n const classes = {\n \"stzh-chipselect\": true,\n \"stzh-chipselect--has-description\": descriptionUsed,\n \"stzh-chipselect--has-description-long\": descriptionLongUsed,\n \"stzh-chipselect--has-error\": errorUsed,\n \"stzh-chipselect--is-invalid\": this.invalid || errorUsed,\n \"stzh-chipselect--is-disabled\": this.disabled,\n \"stzh-chipselect--is-required\": this.required,\n \"stzh-chipselect--has-label-hidden\": this.labelHidden,\n };\n\n return (\n <Host is-invalid={this.invalid || errorUsed}>\n <div class={classes}>\n {this.multiple\n ?\n <Fragment>\n {this._value.map((value) =>\n <input type=\"hidden\" name={this.name} value={value} />\n )}\n </Fragment>\n :\n <input\n type=\"hidden\"\n name={this.name}\n value={this.value}\n />\n }\n\n <label class=\"stzh-chipselect__label\" htmlFor={this.id}>\n {this.label ? this.label : <slot></slot>}\n {!this.hideOptional &&\n <span class=\"stzh-chipselect__marker\">\n <span class=\"stzh-chipselect__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker\n }\n </span>\n <span class=\"stzh-chipselect__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText\n }\n </span>\n </span>\n }\n </label>\n\n {this._data.length > 0 &&\n <Fragment>\n <div\n id={this.id}\n class=\"stzh-chipselect__chips\"\n role=\"listbox\"\n tabindex=\"0\"\n aria-multiselectable={this.multiple ? \"true\" : \"false\"}\n aria-activedescendant={`${this.id}-option-${this.activeFocusOptionIndex}`}\n aria-describedby={`${this.id}-description ${this.a11yDescribedby}`}\n onKeyDown={this.handleKeydown}\n >\n {this._data.map((data, index) => (\n <stzh-chip\n role=\"option\"\n class={{\n \"stzh-chipselect__chip\": true,\n \"is-focused\": this.activeFocusOptionIndex === index\n }}\n label={data.label}\n counter={data.counter}\n icon={data.icon}\n type={data.type}\n inverted={data.inverted}\n variant={data.variant}\n size={data.size || \"small\"}\n disabled={this.disabled || data.disabled}\n active={\n this._value.includes(data.value)\n || (!this.multiple && !data.value && (this._value.length === 0 || this._value[0] === \"\"))\n || (!data.value && this.multiple && (this._value.length === 0 || (this._value.length === 1 && this._value[0] === \"\")))\n }\n aria-selected={\n this._value.includes(data.value)\n || (!this.multiple && !data.value && (this._value.length === 0 || this._value[0] === \"\"))\n || (!data.value && this.multiple && (this._value.length === 0 || (this._value.length === 1 && this._value[0] === \"\")))\n ? \"true\" : \"false\"\n }\n id={`${this.id}-option-${index}`}\n a11yTabindex=\"-1\"\n onClick={() => this.handleChipClick(data, index)}\n ></stzh-chip>\n ))}\n </div>\n\n <StzhInputDescription\n classPrefix=\"stzh-chipselect\"\n id={`${this.id}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongTitle={this.descriptionLongTitle}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n\n {/* <stzh-dropdown\n class=\"stzh-chipselect__dropdown\"\n multiple={this.multiple}\n disabled={this.disabled}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n required={this.required}\n invalid={this.invalid}\n items={[this.value]}\n label={this.label}\n labelHidden={this.labelHidden}\n options={this._dataDropdown}\n hideOptional={this.hideOptional}\n onStzhChange={this.handleDropdownChange}\n ></stzh-dropdown> */}\n </Fragment>\n }\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as t,c as s,h as e,a as o,g as h}from"./p-c7bfac7a.js";import{h as i}from"./p-7e304ea3.js";import{c}from"./p-9b063923.js";import{S as r}from"./p-fc692303.js";const n=".sc-stzh-checkboxgroup-h{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}[hidden].sc-stzh-checkboxgroup-h{display:none}.sc-stzh-checkboxgroup-h::-moz-selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}.sc-stzh-checkboxgroup-h::selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}.sc-stzh-checkboxgroup-h *.sc-stzh-checkboxgroup,.sc-stzh-checkboxgroup-h *.sc-stzh-checkboxgroup::before,.sc-stzh-checkboxgroup-h *.sc-stzh-checkboxgroup::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)}.sc-stzh-checkboxgroup-h .has-focus.sc-stzh-checkboxgroup{outline:var(--stzh-flyingfocus-color) solid 0.125rem;outline-offset:0.125rem}.sc-stzh-checkboxgroup-h .stzh-fylingfocus-focused.sc-stzh-checkboxgroup{outline-style:none !important}.sc-stzh-checkboxgroup-h .stzh-fylingfocus-focused.sc-stzh-checkboxgroup::-moz-focus-inner{border:0 !important}[disabled].sc-stzh-checkboxgroup-h:not([disabled=false]){--description-color:var(--stzh-color-grey70)}.stzh-checkboxgroup.sc-stzh-checkboxgroup{margin:0;padding:0;border:none}.stzh-checkboxgroup__marker-symbol.sc-stzh-checkboxgroup{font-family:var(--stzh-font-family-medium);font-weight:var(--stzh-font-weight-medium);font-style:var(--stzh-font-style-medium)}.stzh-checkboxgroup__marker-text.sc-stzh-checkboxgroup{border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-checkboxgroup__description-wrapper.sc-stzh-checkboxgroup{display:flex;flex-direction:column-reverse;min-height:var(--description-min-height, var(--stzh-description-min-height, none))}.stzh-checkboxgroup__error.sc-stzh-checkboxgroup,.stzh-checkboxgroup__description.sc-stzh-checkboxgroup{font-size:var(--stzh-font-nano-font-size);line-height:var(--stzh-font-nano-text-line-height)}.stzh-checkboxgroup__error.sc-stzh-checkboxgroup{color:var(--stzh-color-error60)}.stzh-checkboxgroup__error-list.sc-stzh-checkboxgroup{list-style:none;margin:0;padding:0}.stzh-checkboxgroup__description.sc-stzh-checkboxgroup{display:flex;align-items:flex-start;color:var(--stzh-input-description-color, var(--description-color, var(--stzh-color-coolgrey70)));transition:color var(--stzh-base-transition-animation-speed)}.stzh-checkboxgroup__description-long.sc-stzh-checkboxgroup{margin-right:var(--stzh-space-xxsmall);margin-top:0.125rem}@supports (font: -apple-system-body) and (-webkit-appearance: none){.stzh-checkboxgroup__description-long.sc-stzh-checkboxgroup{margin-top:0}}.stzh-checkboxgroup__description-long-popover.sc-stzh-checkboxgroup{--width:auto;--max-width:27.3125rem}.stzh-checkboxgroup__description-long-button.sc-stzh-checkboxgroup{display:flex;justify-content:center;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;padding:0;border:none;background-color:transparent;border-radius:0.5rem;cursor:pointer}.stzh-checkboxgroup.sc-stzh-checkboxgroup stzh-icon.stzh-checkboxgroup__description-long-icon.sc-stzh-checkboxgroup{--size:var(--stzh-icon-size-xsmall)}.stzh-checkboxgroup--has-error.sc-stzh-checkboxgroup .stzh-checkboxgroup__error.sc-stzh-checkboxgroup,.stzh-checkboxgroup--has-description.sc-stzh-checkboxgroup .stzh-checkboxgroup__description.sc-stzh-checkboxgroup{margin-top:var(--stzh-space-xxxsmall)}.stzh-checkboxgroup__fields.sc-stzh-checkboxgroup{display:flex;align-items:flex-start;flex-direction:column;gap:var(--stzh-space-medium)}.stzh-checkboxgroup__legend.sc-stzh-checkboxgroup{font-family:var(--stzh-font-family-heavy);font-weight:var(--stzh-font-weight-heavy);font-style:var(--stzh-font-style-heavy);font-size:var(--stzh-font-micro-font-size);line-height:var(--stzh-font-micro-text-line-height);color:var(--stzh-heading-color);padding:0;margin-bottom:var(--stzh-space-xsmall)}.stzh-checkboxgroup--hide-legend.sc-stzh-checkboxgroup .stzh-checkboxgroup__legend.sc-stzh-checkboxgroup{border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-checkboxgroup--direction-horizontal.sc-stzh-checkboxgroup .stzh-checkboxgroup__fields.sc-stzh-checkboxgroup{flex-wrap:wrap;flex-direction:row;row-gap:var(--stzh-space-medium);-moz-column-gap:var(--stzh-space-xxlarge);column-gap:var(--stzh-space-xxlarge)}";let a=0;const p=class{constructor(e){t(this,e);this.stzhChange=s(this,"stzhChange",7);this._value=[];this._preventUpdateProperties=[];this.handleReset=async()=>{this.value=[...this.defaultValue]};this.init=()=>{this.checkboxes=Array.from(this.element.querySelectorAll("stzh-checkbox"));this.updateCheckboxesProperty("a11y-describedby",`${this.checkboxgroupId}-description`);this.updateCheckboxesProperty("invalid",this.invalid||this.errorUsed);this.watchValue(this.value);this.watchName(this.name);this.watchDisabled(this.disabled);this.watchHideOptional(this.hideOptional)};this.localization=undefined;this.disabled=false;this.name=undefined;this.legend=undefined;this.hideLegend=false;this.invalid=false;this.hideOptional=false;this.value="";this.defaultValue=[];this.direction="vertical";this.description=undefined;this.descriptionLong=undefined;this.descriptionLongTitle=undefined;this.error=undefined;this.checkedCheckbox=null;this.preventUpdateProperties=[]}watchName(t){this.updateCheckboxesProperty("name",t)}watchDisabled(t){this.updateCheckboxesProperty("disabled",t)}watchHideOptional(t){this.updateCheckboxesProperty("hideOptional",t)}watchValue(t){if(typeof t==="string"){this._value=JSON.parse(t)}else{this._value=t}if(JSON.stringify(this._value)!==JSON.stringify(this.value)){this.value=this._value}this.updateCheckedCheckboxByValue(this._value)}errorWatcher(t){if(typeof t==="string"){try{this._error=JSON.parse(t)}catch(s){if(t){this._error=[t]}else{this._error=[]}}}else if(t){this._error=t}else{this._error=[]}}preventUpdatePropertiesWatcher(t){if(typeof t==="string"){this._preventUpdateProperties=JSON.parse(t)}else{this._preventUpdateProperties=t}}resetListener(t){if(t.target.contains(this.element)){requestAnimationFrame((()=>{this.handleReset()}))}}onChange(t){if(t.detail.component==="stzh-checkbox"){if(t.detail.checked){this._value.push(t.detail.value)}else{this._value=this._value.filter((s=>s!==t.detail.value))}t.stopPropagation();this.value=this._value;this.stzhChange.emit({component:"stzh-checkboxgroup",value:this._value})}}get errorUsed(){var t;return i(this.element,"error")||((t=this._error)===null||t===void 0?void 0:t.length)>0}updateCheckboxesProperty(t,s){this.checkboxes.forEach((e=>{if(t==="name"||this._preventUpdateProperties.indexOf(t)===-1){e[c(t)]=s}}))}updateCheckedCheckboxByValue(t){this.checkedCheckbox=this.checkboxes.filter((s=>t.indexOf(s.value)>-1));this.checkboxes.forEach((s=>s.checked=t.indexOf(s.value)>-1))}async componentWillLoad(){this.checkboxgroupId=`stzh-checkboxgroup-${a++}`;this.errorWatcher(this.error);this.preventUpdatePropertiesWatcher(this.preventUpdateProperties);if(!this.localization){this.localization=await window.stzhComponents.utils.fetchTranslations(this.element,"checkboxgroup")}}componentShouldUpdate(t,s,e){return e!=="checkedCheckbox"}componentDidRender(){this.init()}componentDidLoad(){this.defaultValue=this.defaultValue.length>0?this.defaultValue:[...this._value]}connectedCallback(){if(!this.value.length){this.checkboxes=Array.from(this.element.querySelectorAll("stzh-checkbox"));this.value=this.checkboxes.filter((t=>t.checked)).map((t=>t.value))}this.observer=new MutationObserver(this.init);this.observer.observe(this.element,{childList:true,subtree:true})}disconnectedCallback(){if(this.observer){this.observer.disconnect()}}render(){const t=i(this.element,"description")||!!this.description;const s=i(this.element,"description-long")||!!this.descriptionLong;const h={"stzh-checkboxgroup":true,"stzh-checkboxgroup--has-description":t,"stzh-checkboxgroup--has-description-long":s,"stzh-checkboxgroup--has-error":this.errorUsed,"stzh-checkboxgroup--is-disabled":this.disabled,"stzh-checkboxgroup--is-invalid":this.invalid||this.errorUsed,"stzh-checkboxgroup--hide-legend":this.hideLegend,[`stzh-checkboxgroup--direction-${this.direction}`]:!!this.direction};return e(o,{"is-invalid":this.invalid||this.errorUsed},e("fieldset",{class:h},this.legend&&e("legend",{class:"stzh-checkboxgroup__legend"},this.legend),e("div",{class:"stzh-checkboxgroup__fields"},e("slot",null)),e(r,{classPrefix:"stzh-checkboxgroup",id:`${this.checkboxgroupId}-description`,error:this._error,description:this.description,descriptionLong:this.descriptionLong,descriptionLongTitle:this.descriptionLongTitle,descriptionLongUsed:s,moreInfoButtonLabel:this.localization.$globals.moreInfoButtonLabel})))}get element(){return h(this)}static get watchers(){return{name:["watchName"],disabled:["watchDisabled"],hideOptional:["watchHideOptional"],value:["watchValue"],error:["errorWatcher"],preventUpdateProperties:["preventUpdatePropertiesWatcher"]}}};p.style=n;export{p as stzh_checkboxgroup};
|
|
2
|
+
//# sourceMappingURL=p-7aac960b.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["stzhCheckboxgroupCss","checkboxgroupCounter","StzhCheckboxgroup","this","_value","_preventUpdateProperties","handleReset","async","value","defaultValue","init","checkboxes","Array","from","element","querySelectorAll","updateCheckboxesProperty","checkboxgroupId","invalid","errorUsed","watchValue","watchName","name","watchDisabled","disabled","watchHideOptional","hideOptional","newValue","JSON","parse","stringify","updateCheckedCheckboxByValue","errorWatcher","_error","e","preventUpdatePropertiesWatcher","resetListener","event","target","contains","requestAnimationFrame","onChange","detail","component","checked","push","filter","stopPropagation","stzhChange","emit","hasSlot","_a","length","prop","forEach","checkbox","indexOf","camelCase","checkedCheckbox","componentWillLoad","error","preventUpdateProperties","localization","window","stzhComponents","utils","fetchTranslations","componentShouldUpdate","_newValue","_oldValue","componentDidRender","componentDidLoad","connectedCallback","map","observer","MutationObserver","observe","childList","subtree","disconnectedCallback","disconnect","render","descriptionUsed","description","descriptionLongUsed","descriptionLong","classes","hideLegend","direction","h","Host","class","legend","StzhInputDescription","classPrefix","id","descriptionLongTitle","moreInfoButtonLabel","$globals"],"sources":["src/components/stzh-checkboxgroup/stzh-checkboxgroup.scss?tag=stzh-checkboxgroup&encapsulation=scoped","src/components/stzh-checkboxgroup/stzh-checkboxgroup.tsx"],"sourcesContent":[":host {\n &[disabled]:not([disabled=\"false\"]) {\n --description-color: #{$formDisabledColor};\n }\n}\n\n.stzh-checkboxgroup {\n @include input-description;\n margin: 0;\n padding: 0;\n border: none;\n\n &__fields {\n display: flex;\n align-items: flex-start;\n flex-direction: column;\n gap: space('medium');\n }\n\n &__legend {\n @include font('heavy');\n @include fontSize('micro');\n color: $headingColor;\n padding: 0;\n margin-bottom: space('xsmall');\n }\n\n &--hide-legend &__legend {\n @include visuallyhidden;\n }\n\n &--direction-horizontal &__fields {\n flex-wrap: wrap;\n flex-direction: row;\n row-gap: space('medium');\n column-gap: space('xxlarge');\n }\n}\n","import {\n Host,\n Component,\n Prop,\n Element,\n Watch,\n Event,\n h,\n Listen,\n EventEmitter,\n} from \"@stencil/core\";\n\nimport { hasSlot } from \"../../utils/utils\";\n\nimport { StzhCheckboxChangeEvent, StzhCheckboxgroupChangeEvent } from \"../../index\";\nimport { camelCase } from \"../../utils/string-utils\";\nimport { StzhLocaleComponent } from \"../../utils/translation-utils\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nlet checkboxgroupCounter = 0;\n\n/**\n * @slot - Slot for `stzh-checkbox` elements\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot description-long-title - Slot for long description title (in popover) / instead of descriptionLongTitle or description property\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-checkboxgroup\",\n styleUrl: \"stzh-checkboxgroup.scss\",\n scoped: true\n})\nexport class StzhCheckboxgroup {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Whether the element is disabled or not */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** The name of the input checkbox elements */\n @Prop({ reflect: true }) name: string;\n\n /** The legend */\n @Prop() legend: string;\n\n /** Hide legend to show only for screenreaders */\n @Prop({ reflect: true }) hideLegend: boolean = false;\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Hide `(optional)` label (or use `required` inside form ot hide it) */\n @Prop({ reflect: true }) hideOptional: boolean = false;\n\n /** The selected values of the checkboxgroup */\n @Prop({ mutable: true }) value: string[] | string = \"\";\n private _value: string[] = [];\n\n /** Default value (used by reset) */\n @Prop({ mutable: true }) defaultValue: string[] = [];\n\n /** Direction */\n @Prop({ reflect: true }) direction: \"vertical\" | \"horizontal\" = \"vertical\";\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /** Long description title appearing in a popover (use description-long-title slot as or description property alternative) */\n @Prop() descriptionLongTitle: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Current checked checkbox elements (readonly) */\n @Prop() checkedCheckbox: HTMLStzhCheckboxElement[] | null = null;\n\n /** Prevent updating certain properties of radio elements (possible values inside array: disabled, invalid) */\n @Prop() preventUpdateProperties: string[] | string = [];\n private _preventUpdateProperties: string[] = [];\n\n /** Host element */\n @Element() element: HTMLElement;\n\n @Watch(\"name\")\n watchName(newValue: string) {\n this.updateCheckboxesProperty(\"name\", newValue);\n }\n\n @Watch(\"disabled\")\n watchDisabled(newValue: boolean) {\n this.updateCheckboxesProperty(\"disabled\", newValue);\n }\n\n @Watch(\"hideOptional\")\n watchHideOptional(newValue: boolean) {\n this.updateCheckboxesProperty(\"hideOptional\", newValue)\n }\n\n @Watch(\"value\")\n watchValue(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._value = JSON.parse(newValue);\n } else {\n this._value = newValue;\n }\n\n if (JSON.stringify(this._value) !== JSON.stringify(this.value)) {\n this.value = this._value;\n }\n\n this.updateCheckedCheckboxByValue(this._value);\n }\n\n @Watch(\"error\")\n errorWatcher(newValue: string | string[]) {\n if (typeof newValue === \"string\") {\n try {\n this._error = JSON.parse(newValue);\n } catch (e) {\n if (newValue) {\n this._error = [newValue];\n } else {\n this._error = [];\n }\n }\n } else if (newValue) {\n this._error = newValue;\n } else {\n this._error = [];\n }\n }\n\n @Watch(\"preventUpdateProperties\")\n preventUpdatePropertiesWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._preventUpdateProperties = JSON.parse(newValue);\n } else {\n this._preventUpdateProperties = newValue;\n }\n }\n\n /** Change event */\n @Event() stzhChange: EventEmitter<StzhCheckboxgroupChangeEvent>;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Listen(\"stzhChange\", {capture: true})\n onChange(event: CustomEvent<StzhCheckboxChangeEvent>) {\n if (event.detail.component === \"stzh-checkbox\") {\n if (event.detail.checked) {\n this._value.push(event.detail.value);\n } else {\n this._value = this._value.filter(value => value !== event.detail.value);\n }\n // stop propagating checkbox change event otherwise angular control value accessor won't work\n event.stopPropagation();\n this.value = this._value;\n this.stzhChange.emit({\n component: \"stzh-checkboxgroup\",\n value: this._value,\n });\n }\n }\n\n private get errorUsed() {\n return hasSlot(this.element, 'error') || this._error?.length > 0;\n }\n\n /** Checkbox elements */\n private checkboxes: HTMLStzhCheckboxElement[];\n private checkboxgroupId: string;\n private observer: MutationObserver;\n\n private updateCheckboxesProperty(prop: string, value: any) {\n this.checkboxes.forEach((checkbox: HTMLStzhCheckboxElement) => {\n if (prop === \"name\" || (this._preventUpdateProperties.indexOf(prop) === -1)) {\n checkbox[camelCase(prop)] = value;\n }\n });\n }\n\n private updateCheckedCheckboxByValue(value: string[]) {\n this.checkedCheckbox = this.checkboxes.filter(checkbox => value.indexOf(checkbox.value) > -1);\n this.checkboxes.forEach(checkbox => checkbox.checked = value.indexOf(checkbox.value) > -1);\n }\n\n private handleReset = async () => {\n this.value = [...this.defaultValue];\n }\n\n private init = () => {\n // update checkboxes\n this.checkboxes = Array.from(this.element.querySelectorAll(\"stzh-checkbox\"));\n this.updateCheckboxesProperty(\"a11y-describedby\", `${this.checkboxgroupId}-description`);\n this.updateCheckboxesProperty(\"invalid\", this.invalid || this.errorUsed);\n\n this.watchValue(this.value);\n this.watchName(this.name);\n this.watchDisabled(this.disabled);\n this.watchHideOptional(this.hideOptional);\n }\n\n async componentWillLoad() {\n this.checkboxgroupId = `stzh-checkboxgroup-${checkboxgroupCounter++}`;\n this.errorWatcher(this.error);\n this.preventUpdatePropertiesWatcher(this.preventUpdateProperties);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, 'checkboxgroup');\n }\n }\n\n componentShouldUpdate(_newValue, _oldValue, prop: string) {\n return prop !== \"checkedCheckbox\";\n }\n\n componentDidRender() {\n this.init();\n }\n\n componentDidLoad() {\n this.defaultValue = this.defaultValue.length > 0 ? this.defaultValue : [...this._value];\n }\n\n connectedCallback() {\n if (!this.value.length) {\n this.checkboxes = Array.from(this.element.querySelectorAll(\"stzh-checkbox\"));\n\n // try to find checkboxes that might have checked set to true\n this.value = this.checkboxes\n .filter(checkbox => checkbox.checked)\n .map(checkbox => checkbox.value);\n }\n\n this.observer = new MutationObserver(this.init);\n this.observer.observe(this.element, {\n childList: true,\n subtree: true\n });\n }\n\n disconnectedCallback() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n render() {\n const descriptionUsed = hasSlot(this.element, 'description') || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, 'description-long') || !!this.descriptionLong;\n\n const classes = {\n \"stzh-checkboxgroup\": true,\n \"stzh-checkboxgroup--has-description\": descriptionUsed,\n \"stzh-checkboxgroup--has-description-long\": descriptionLongUsed,\n \"stzh-checkboxgroup--has-error\": this.errorUsed,\n \"stzh-checkboxgroup--is-disabled\": this.disabled,\n \"stzh-checkboxgroup--is-invalid\": this.invalid || this.errorUsed,\n \"stzh-checkboxgroup--hide-legend\": this.hideLegend,\n [`stzh-checkboxgroup--direction-${this.direction}`]: !!this.direction\n };\n\n return (\n <Host is-invalid={this.invalid || this.errorUsed}>\n <fieldset class={classes}>\n {this.legend &&\n <legend class=\"stzh-checkboxgroup__legend\">\n {this.legend}\n </legend>\n }\n <div class=\"stzh-checkboxgroup__fields\">\n <slot></slot>\n </div>\n <StzhInputDescription\n classPrefix=\"stzh-checkboxgroup\"\n id={`${this.checkboxgroupId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongTitle={this.descriptionLongTitle}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n </fieldset>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as s,h as t,F as e,a,g as i}from"./p-c7bfac7a.js";import{a as r}from"./p-a771013b.js";import{r as h,h as n}from"./p-7e304ea3.js";import{m as l,a as o,r as c}from"./p-10e2901a.js";import{d}from"./p-dd385618.js";import"./p-9b063923.js";import"./p-7183ba4d.js";const m=':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]{display:none}:host::-moz-selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}: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}stzh-search{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;--filter-background-color:var(--stzh-search-filter-background-color, var(--stzh-color-grey10));--grid-template-areas:"filters-main filters-main filters-main filters-main"\n "results results results results"}stzh-search[hidden]{display:none}stzh-search::-moz-selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}stzh-search::selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}stzh-search *,stzh-search *::before,stzh-search *::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)}stzh-search .has-focus{outline:var(--stzh-flyingfocus-color) solid 0.125rem;outline-offset:0.125rem}stzh-search .stzh-fylingfocus-focused{outline-style:none !important}stzh-search .stzh-fylingfocus-focused::-moz-focus-inner{border:0 !important}@media screen and (min-width: 900px){stzh-search{--grid-template-areas:"filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main"\n "results results results results results results results results"}}@media screen and (min-width: 1260px){stzh-search{--grid-template-areas:"filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main"\n ". . results results results results results results results results . ."}}stzh-search:where([has-aside-filters]:not([hide-aside-filters]:not([hide-aside-filters="false"]))){--grid-template-areas:"filters-main filters-main filters-main filters-main"\n "filters-aside filters-aside filters-aside filters-aside"\n "results results results results"}@media screen and (min-width: 900px){stzh-search:where([has-aside-filters]:not([hide-aside-filters]:not([hide-aside-filters="false"]))){--grid-template-areas:"filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main"\n "filters-aside filters-aside filters-aside filters-aside filters-aside filters-aside filters-aside filters-aside"\n "results results results results results results results results"}}@media screen and (min-width: 1260px){stzh-search:where([has-aside-filters]:not([hide-aside-filters]:not([hide-aside-filters="false"]))){--grid-template-areas:"filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main"\n "filters-aside filters-aside filters-aside filters-aside results results results results results results results results"}}@media screen and (min-width: 1260px){stzh-search:where([variant="teaser"]){--grid-template-areas:"filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main filters-main"\n "results results results results results results results results results results results results"}}.stzh-search{-moz-column-gap:var(--stzh-grid-gutter);column-gap:var(--stzh-grid-gutter);display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));grid-template-areas:var(--grid-template-areas);}@media screen and (min-width: 600px){.stzh-search{-moz-column-gap:var(--stzh-grid-gutter-small);column-gap:var(--stzh-grid-gutter-small)}}@media screen and (min-width: 900px){.stzh-search{-moz-column-gap:var(--stzh-grid-gutter-medium);column-gap:var(--stzh-grid-gutter-medium)}}@media screen and (min-width: 1260px){.stzh-search{-moz-column-gap:var(--stzh-grid-gutter-large);column-gap:var(--stzh-grid-gutter-large)}}@media screen and (min-width: 1600px){.stzh-search{-moz-column-gap:var(--stzh-grid-gutter-ultra);column-gap:var(--stzh-grid-gutter-ultra)}}@media screen and (min-width: 900px){.stzh-search{grid-template-columns:repeat(8, minmax(0, 1fr))}}@media screen and (min-width: 1260px){.stzh-search{grid-template-columns:repeat(12, minmax(0, 1fr))}}.stzh-search__filters-main{grid-area:filters-main}.stzh-search__filters-main:not(:empty){padding:var(--stzh-space-xlarge);background-color:var(--filter-background-color)}@media screen and (min-width: 900px){.stzh-search__filters-main:not(:empty){padding:var(--stzh-space-xxlarge)}}@media screen and (min-width: 1260px){.stzh-search__filters-main:not(:empty){padding:var(--stzh-space-xxxlarge)}}.stzh-search__filters-aside{grid-area:filters-aside}.stzh-search__filters-aside:not(:empty){padding:var(--stzh-space-xlarge);background-color:var(--filter-background-color)}@media screen and (min-width: 900px){.stzh-search__filters-aside:not(:empty){padding:var(--stzh-space-xxlarge)}}@media screen and (min-width: 1260px){.stzh-search__filters-aside:not(:empty){padding:var(--stzh-space-xxxlarge)}}@media screen and (min-width: 1260px){.stzh-search__filters-aside:not(:empty){background-color:transparent;padding:0}}.stzh-search__filters-aside-heading{font-family:var(--stzh-font-family-heavy);font-weight:var(--stzh-font-weight-heavy);font-style:var(--stzh-font-style-heavy);font-size:var(--stzh-font-curve-h4-default-font-size, var(--stzh-font-milli-font-size));line-height:var(--stzh-font-curve-h4-default-text-line-height, var(--stzh-font-milli-text-line-height));letter-spacing:var(--stzh-font-curve-h4-default-text-letter-spacing);padding-bottom:var(--stzh-space-xsmall);color:var(--stzh-color-primary70);display:none}@media screen and (min-width: 600px){.stzh-search__filters-aside-heading{font-size:var(--stzh-font-curve-h4-small-font-size, var(--stzh-font-centi-font-size));line-height:var(--stzh-font-curve-h4-small-text-line-height, var(--stzh-font-centi-text-line-height));letter-spacing:var(--stzh-font-curve-h4-small-text-letter-spacing)}}@media screen and (min-width: 1260px){.stzh-search__filters-aside-heading{font-size:var(--stzh-font-curve-h4-large-font-size, var(--stzh-font-deci-font-size));line-height:var(--stzh-font-curve-h4-large-text-line-height, var(--stzh-font-deci-text-line-height));letter-spacing:var(--stzh-font-curve-h4-large-text-letter-spacing)}}@media screen and (min-width: 1600px){.stzh-search__filters-aside-heading{font-size:var(--stzh-font-curve-h4-ultra-font-size, var(--stzh-font-deca-font-size));line-height:var(--stzh-font-curve-h4-ultra-text-line-height, var(--stzh-font-deca-text-line-height));letter-spacing:var(--stzh-font-curve-h4-ultra-text-letter-spacing, var(--stzh-font-deca-text-letter-spacing))}}@media screen and (min-width: 900px){.stzh-search__filters-aside-heading{padding-bottom:var(--stzh-space-small)}}@media screen and (min-width: 1260px){.stzh-search__filters-aside-heading{padding-bottom:var(--stzh-space-medium)}}@media screen and (min-width: 1260px){.stzh-search__filters-aside-heading{display:block}}@media screen and (min-width: 1260px){.stzh-search stzh-button.stzh-search__filters-aside-details-trigger{display:none}}@media screen and (min-width: 1260px){.stzh-search__filters-aside-inner{position:-webkit-sticky;position:sticky;top:calc(var(--stzh-header-metabar-height, 0px) * var(--stzh-header-is-stuck, 0) + var(--stzh-space-medium));transition:top var(--stzh-base-transition-animation-speed);width:calc(100% + var(--stzh-grid-gutter-large) - var(--stzh-space-xxxxlarge))}}@media screen and (min-width: 1600px){.stzh-search__filters-aside-inner{width:calc(100% + var(--stzh-grid-gutter-ultra) - var(--stzh-space-xxxxlarge))}}.stzh-search__results-wrapper{grid-area:results;display:grid}.stzh-search__results-heading,.stzh-search__results-empty,.stzh-search__results,.stzh-search__action-more{transition-property:opacity;transition-duration:var(--stzh-base-transition-animation-speed)}.stzh-search__results-heading{margin-bottom:var(--stzh-space-medium)}@media screen and (min-width: 600px){.stzh-search__results-heading{margin-bottom:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-search__results-heading{margin-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-search__results-heading{margin-bottom:var(--stzh-space-xxlarge)}}.stzh-search__results-item{display:contents}.stzh-search__actions-wrapper{display:flex;justify-content:center}.stzh-search__actions-wrapper:not(:empty){margin-top:var(--stzh-space-xlarge)}@media screen and (min-width: 900px){.stzh-search__actions-wrapper:not(:empty){margin-top:var(--stzh-space-xxlarge)}}@media screen and (min-width: 1260px){.stzh-search__actions-wrapper:not(:empty){margin-top:var(--stzh-space-xxxlarge)}}.stzh-search__empty-text{margin-bottom:var(--stzh-space-medium)}@media screen and (min-width: 600px){.stzh-search__empty-text{margin-bottom:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-search__empty-text{margin-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-search__empty-text{margin-bottom:var(--stzh-space-xxlarge)}}.stzh-search__loader{margin-top:var(--stzh-space-xlarge)}@media screen and (min-width: 900px){.stzh-search__loader{margin-top:var(--stzh-space-xxlarge)}}@media screen and (min-width: 1260px){.stzh-search__loader{margin-top:var(--stzh-space-xxxlarge)}}.stzh-search--teaser .stzh-search__actions-wrapper{justify-content:flex-start}.stzh-search--teaser .stzh-search__filters-main:not(:empty){padding:0;background-color:transparent}.stzh-search--teaser .stzh-search__filters-aside:not(:empty){padding:0;background-color:transparent}@media screen and (max-width: 1259px){.stzh-search--has-results-shown .stzh-search__results-wrapper{margin-top:var(--stzh-space-xxxxlarge)}}@media screen and (max-width: 1259px) and (min-width: 600px){.stzh-search--has-results-shown .stzh-search__results-wrapper{margin-top:var(--stzh-space-big)}}@media screen and (max-width: 1259px) and (min-width: 900px){.stzh-search--has-results-shown .stzh-search__results-wrapper{margin-top:var(--stzh-space-big)}}@media screen and (max-width: 1259px) and (min-width: 1260px){.stzh-search--has-results-shown .stzh-search__results-wrapper{margin-top:var(--stzh-space-huge)}}@media screen and (min-width: 1260px){.stzh-search--has-results-shown .stzh-search__filters-main,.stzh-search--has-filters-aside .stzh-search__filters-main{margin-bottom:var(--stzh-space-xxlarge)}}@media screen and (min-width: 1260px) and (min-width: 900px){.stzh-search--has-results-shown .stzh-search__filters-main,.stzh-search--has-filters-aside .stzh-search__filters-main{margin-bottom:var(--stzh-space-xxxlarge)}}@media screen and (min-width: 1260px) and (min-width: 1260px){.stzh-search--has-results-shown .stzh-search__filters-main,.stzh-search--has-filters-aside .stzh-search__filters-main{margin-bottom:var(--stzh-space-xxxxlarge)}}@media screen and (max-width: 1259px){.stzh-search--has-results-shown.stzh-search--teaser .stzh-search__results-wrapper{margin-top:var(--stzh-space-xlarge)}}@media screen and (max-width: 1259px) and (min-width: 900px){.stzh-search--has-results-shown.stzh-search--teaser .stzh-search__results-wrapper{margin-top:var(--stzh-space-xxlarge)}}@media screen and (max-width: 1259px) and (min-width: 1260px){.stzh-search--has-results-shown.stzh-search--teaser .stzh-search__results-wrapper{margin-top:var(--stzh-space-xxxlarge)}}@media screen and (min-width: 1260px){.stzh-search--has-results-shown.stzh-search--teaser .stzh-search__filters-main,.stzh-search--has-filters-aside.stzh-search--teaser .stzh-search__filters-main{margin-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px) and (min-width: 900px){.stzh-search--has-results-shown.stzh-search--teaser .stzh-search__filters-main,.stzh-search--has-filters-aside.stzh-search--teaser .stzh-search__filters-main{margin-bottom:var(--stzh-space-xxlarge)}}@media screen and (min-width: 1260px) and (min-width: 1260px){.stzh-search--has-results-shown.stzh-search--teaser .stzh-search__filters-main,.stzh-search--has-filters-aside.stzh-search--teaser .stzh-search__filters-main{margin-bottom:var(--stzh-space-xxxlarge)}}.stzh-search--has-filters-main.stzh-search--has-filters-aside .stzh-search__filters-main:not(:empty){padding-bottom:var(--stzh-space-medium)}@media screen and (min-width: 600px){.stzh-search--has-filters-main.stzh-search--has-filters-aside .stzh-search__filters-main:not(:empty){padding-bottom:var(--stzh-space-large)}}@media screen and (min-width: 900px){.stzh-search--has-filters-main.stzh-search--has-filters-aside .stzh-search__filters-main:not(:empty){padding-bottom:var(--stzh-space-xlarge)}}@media screen and (min-width: 1260px){.stzh-search--has-filters-main.stzh-search--has-filters-aside .stzh-search__filters-main:not(:empty){padding-bottom:var(--stzh-space-xxlarge)}}.stzh-search--has-filters-main.stzh-search--has-filters-aside .stzh-search__filters-aside:not(:empty){padding-top:0px}.stzh-search--has-hidden-main-filters .stzh-search__filters-main{display:none}.stzh-search--has-hidden-aside-filters .stzh-search__filters-aside{display:none}.stzh-search--has-hidden-main-filters .stzh-search__results-wrapper,.stzh-search--has-hidden-main-filters.stzh-search--teaser .stzh-search__results-wrapper{margin-top:0px}.stzh-search--is-loading .stzh-search__results-heading,.stzh-search--is-loading .stzh-search__results-empty,.stzh-search--is-loading .stzh-search__results,.stzh-search--is-loading .stzh-search__action-more{opacity:0.5}';function z(s,t){return`\n <stzh-card-${s.variant==="teaser"?"superteaser":"searchresult"}\n href="{href}"\n dateline="{dateline}"\n tag="{tag}"\n topic="{topic}"\n service="{service}"\n event-location="{eventLocation}"\n download-heading="{downloadHeading}"\n meta='{meta}'\n breadcrumb-items='{breadcrumbItems}'\n download-meta='{downloadMeta}'\n datalist-items='{datalistItems}'\n ${t.imagePosition&&'image-position="{imagePosition}"'}\n ${t.download&&'download="{download}"'}\n style="\n ${t.serviceBackgroundColor?"--service-background-color: {serviceBackgroundColor};":""}\n ${t.serviceColor?"--service-color: {serviceColor};":""}\n "\n >\n <div slot="heading">{heading}</div>\n <div slot="description">{description}</div>\n ${t.image?t.imagePosition==="right"?`<img src="${t.image}" slot="image" />`:`<stzh-ratio ${s.variant==="teaser"?'ratio="2:1"':'ratio="21:9" ratio-small="1:1"'} slot="image"><img src="${t.image}" /></stzh-ratio>`:""}\n </stzh-card-${s.variant==="teaser"?"superteaser":"searchresult"}>\n `}function f(s){return{layout:s.variant==="teaser"?"teasers":"searchresults"}}const p=class{constructor(t){s(this,t);this._showMoreLink=false;this.fetch=async(s=false,t=false)=>{var e;if(this.currentController){this.currentController.abort()}if(!this.hasRequiredParams&&!s){this.loading=false;return}this.loading=true;this.error="";let a=this.api.replace(/\{lang\}/gi,this.localization.$locale);let i=this.limit.toString();this.params.set("offset",s?this.results.length.toString():"0");if(t){const s=new URLSearchParams(location.search).get("search");if(s){const t=new URLSearchParams(s).get("limit");if(t){i=t}}}this.params.set("limit",i);this.currentController=new AbortController;let h={};try{const s=await r(a,{params:this.params,signal:this.currentController.signal});h=s.data}catch(s){this.error=this.localization.error}this.resultsHeading=h.resultsHeading||"";this.totalCount=((e=h.meta)===null||e===void 0?void 0:e.total)||0;if(h.error){this.error=h.message||this.localization.error}if(h.results){if(s){this.results=[...this.results,...h.results.map((s=>{var t;return Object.assign(Object.assign({},s),{html:this.renderResultTemplate(s.html||((t=h.templates)===null||t===void 0?void 0:t.result),s)})}))]}else{this.results=h.results.map((s=>{var t;return Object.assign(Object.assign({},s),{html:this.renderResultTemplate(s.html||((t=h.templates)===null||t===void 0?void 0:t.result),s)})}))}}if(!t&&!this.preventUpdateUrl){const s=new URLSearchParams(location.search);const t=new URLSearchParams(this.params);t.delete("offset");t.set("limit",this.results.length.toString());s.set("search",t.toString());window.history.replaceState(null,"",`${location.pathname}?${s}`)}if(t||!this.firstFetched){this.loading=false}else{window.setTimeout((()=>{this.loading=false}),this.debounceTime)}this.firstFetched=true};this.debouncedFetch=d(this.fetch,this.debounceTime);this.handleMainFilterChange=async()=>{if(this.autofetchMainFilters){await this.updateParams();this.debouncedFetch()}};this.handleAsideFilterChange=async()=>{if(this.autofetchAsideFilters){await this.updateParams();this.debouncedFetch()}};this.handleFormSubmit=async s=>{s.preventDefault();await this.updateParams();this.fetch()};this.handleMoreClick=()=>{this.fetch(true)};this.handleMediaChange=()=>{this.isDetailsOpen=l("large").matches};this.handleFormReset=async()=>{requestAnimationFrame((()=>{requestAnimationFrame((async()=>{await this.updateParams()}))}))};this.localization=undefined;this.variant="default";this.autofetchMainFilters=false;this.autofetchAsideFilters=false;this.hideMainFilters=false;this.hideAsideFilters=false;this.api="";this.debounceTime=500;this.limit=6;this.initialFetch=false;this.preventUpdateUrl=false;this.templateResult=z;this.templateResultWrapperElement=function(){return"stzh-cardlist"};this.templateResultWrapperProps=f;this.resultHeadingLevel="3";this.emptyText=undefined;this.emptyLinkHref=undefined;this.emptyLinkLabel=undefined;this.totalCount=0;this.loading=false;this.error="";this.results=[];this.resultsHeading=undefined;this.hasRequiredParams=false;this.firstFetched=false;this.initiallyFetched=false;this.isDetailsOpen=false}totalCountWatcher(){this._showMoreLink=this.totalCount>this.results.length}preventUpdateUrlWatcher(){this.updateParams()}renderResultTemplate(s,t){let e=s||(typeof this.templateResult==="function"?this.templateResult(this.element,t):this.templateResult);["href","heading","dateline","description","image","imagePosition","tag","topic","service","serviceColor","serviceBackgroundColor","meta","breadcrumbItems","eventLocation","download","downloadHeading","downloadMeta","datalistItems"].forEach((s=>{const a=new RegExp(`{${s}}`,"gi");let i=t[s]||"";if(["meta","breadcrumbItems","downloadMeta","datalistItems"].includes(s)&&i){i=JSON.stringify(i)}e=e.replace(a,i)}));return e}async updateParams(s=false){const t=()=>{const s=new FormData(this.formElement);this.params=new URLSearchParams(s);this.params.set("variant",this.variant)};if(s){const s=new URLSearchParams(location.search);const t=s.get("search");if(t){this.initialFetch=true;const s=new URLSearchParams(t);[...new Set(s.keys())].forEach((t=>{const e=s.getAll(t);const a=Array.from(document.querySelectorAll(`:where(stzh-input,stzh-radiogroup,stzh-chipselect,stzh-amount,stzh-datepicker,stzh-monthyearpicker,stzh-timepicker,stzh-pagination,stzh-toggle)[name="${t}"]`));const i=Array.from(document.querySelectorAll(`:where(stzh-checkboxgroup)[name="${t}"]`));const r=Array.from(document.querySelectorAll(`:where(stzh-dropdown)[name="${t}"]`));a.forEach((s=>{s.value=e[0]}));i.forEach((s=>{s.value=e}));r.forEach((s=>{s.items=e}))}))}}await h();t();let e=true;const a=Array.from(this.element.querySelectorAll(":where(stzh-input)[required]"));const i=Array.from(this.element.querySelectorAll(":where(stzh-dropdown)[required]"));const r=Array.from(this.element.querySelectorAll(":where(stzh-monthyearpicker)[required]"));const n=Array.from(this.element.querySelectorAll(":where(stzh-amount,stzh-radiogroup,stzh-chipselect,stzh-datepicker,stzh-monthyearpicker,stzh-timepicker,stzh-pagination,stzh-toggle)[required]"));const l=Array.from(this.element.querySelectorAll(":where(stzh-checkbox)[required]"));l.forEach((t=>{const a=!t.checked;if(!s){t.invalid=a}if(a){e=false}}));a.forEach((t=>{const a=t.value===""||t.minlength&&t.minlength>t.value.length||t.maxlength&&t.maxlength<t.value.length;if(!s){t.invalid=a}if(a){e=false}}));i.forEach((t=>{const a=t.items.length===0;if(!s){t.invalid=a}if(a){e=false}}));n.forEach((t=>{const a=t.value.toString().length===0;if(!s){t.invalid=a}if(a){e=false}}));r.forEach((t=>{const a=t.value.toString().length===0;if(!s){t.invalidYear=a;t.invalidMonth=a}if(a){e=false}}));this.hasRequiredParams=e}async componentDidLoad(){await this.updateParams(true);if(this.initialFetch){await this.fetch(false,true);this.initiallyFetched=true}else{this.initiallyFetched=true}}async componentWillLoad(){if(!this.localization){this.localization=await window.stzhComponents.utils.fetchTranslations(this.element,"search")}}connectedCallback(){o(this.handleMediaChange);this.handleMediaChange()}disconnectedCallback(){c(this.handleMediaChange)}render(){const s=n(this.element,"filters-main");const i=n(this.element,"filters-aside");const r=(this.hasRequiredParams||this.firstFetched)&&this.firstFetched&&this.initiallyFetched;const h={"stzh-search":true,"stzh-search--has-filters-main":s,"stzh-search--has-filters-aside":i,"stzh-search--has-hidden-main-filters":this.hideMainFilters,"stzh-search--has-hidden-aside-filters":this.hideAsideFilters,"stzh-search--has-results-shown":r,"stzh-search--has-error-shown":!!this.error,"stzh-search--is-loading":this.loading,[`stzh-search--${this.variant}`]:!!this.variant};const l=typeof this.templateResultWrapperElement==="function"?this.templateResultWrapperElement(this.element):this.templateResultWrapperElement;const o=typeof this.templateResultWrapperProps==="function"?this.templateResultWrapperProps(this.element):this.templateResultWrapperProps;return t(a,{"has-aside-filters":i},t("form",{ref:s=>this.formElement=s,novalidate:true,class:h,onSubmit:this.handleFormSubmit,onReset:this.handleFormReset},t("div",{class:"stzh-search__filters-main",onStzhChange:this.handleMainFilterChange},t("slot",{name:"filters-main"})),i&&t(e,null,t("div",{class:"stzh-search__filters-aside",onStzhChange:this.handleAsideFilterChange},t("div",{class:"stzh-search__filters-aside-inner"},t("div",{class:"stzh-search__filters-aside-heading"},this.localization.moreFilter),t("stzh-details",{open:this.isDetailsOpen,class:"stzh-search__filters-aside-details"},t("stzh-button",{class:"stzh-search__filters-aside-details-trigger",variant:"tertiary-plain",size:"small",noPaddingLeft:true,showToggleIcon:true,iconPosition:"right",label:this.localization.moreFilter}),t("div",{slot:"content"},t("slot",{name:"filters-aside"})))))),t("div",{class:"stzh-search__results-wrapper"},r&&t(e,null,this.results.length===0?t(e,null,this.variant!=="teaser"&&this.resultsHeading&&t("stzh-heading",{class:"stzh-search__results-heading",curve:"h3",level:this.resultHeadingLevel,innerHTML:this.resultsHeading}),this.emptyText&&t("stzh-text",{class:"stzh-search__empty-text",innerHTML:this.emptyText}),this.emptyLinkLabel&&this.emptyLinkHref&&t("div",{class:"stzh-search__empty-link-wrapper"},t("stzh-link",{href:this.emptyLinkHref,label:this.emptyLinkLabel}))):t(e,null,this.variant!=="teaser"&&this.resultsHeading&&t("stzh-heading",{class:"stzh-search__results-heading",curve:"h3",level:this.resultHeadingLevel,innerHTML:this.resultsHeading}),t(l,Object.assign({class:"stzh-search__results"},o),this.results.map((s=>t("div",{class:"stzh-search__results-item",innerHTML:s.html||""})))),t("div",{class:"stzh-search__actions-wrapper"},this._showMoreLink&&t("stzh-button",{variant:"secondary",class:"stzh-search__action-more",label:this.localization.showMore,onClick:this.handleMoreClick,a11yDisabled:this.loading})))),this.error&&t("div",{class:"stzh-search__error"},t("stzh-message",{type:"error",label:this.error})),this.loading&&t("stzh-loader",{class:"stzh-search__loader"})),t("slot",null)))}get element(){return i(this)}static get watchers(){return{totalCount:["totalCountWatcher"],results:["totalCountWatcher"],preventUpdateUrl:["preventUpdateUrlWatcher"]}}};p.style=m;export{p as stzh_search};
|
|
2
|
+
//# sourceMappingURL=p-8f19c3ec.entry.js.map
|