@oiz/stzh-components 4.6.0 → 4.7.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-237b22c8.js → app-globals-c14f30c8.js} +2 -2
- package/dist/cjs/{app-globals-237b22c8.js.map → app-globals-c14f30c8.js.map} +1 -1
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stzh-accordion_3.cjs.entry.js +2 -2
- package/dist/cjs/stzh-actions_6.cjs.entry.js +1 -1
- package/dist/cjs/stzh-actionset.cjs.entry.js +5 -5
- package/dist/cjs/stzh-amount.cjs.entry.js +1 -1
- package/dist/cjs/stzh-anchornav.cjs.entry.js +1 -1
- package/dist/cjs/stzh-app-nav.cjs.entry.js +1 -1
- package/dist/cjs/stzh-appointments.cjs.entry.js +1 -1
- package/dist/cjs/stzh-audio.cjs.entry.js +3 -3
- package/dist/cjs/stzh-badge_3.cjs.entry.js +1 -1
- package/dist/cjs/stzh-banner.cjs.entry.js +2 -2
- package/dist/cjs/stzh-banner.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-bathstatus-item.cjs.entry.js +1 -1
- package/dist/cjs/stzh-bathstatus-list.cjs.entry.js +1 -1
- package/dist/cjs/stzh-card-superteaser.cjs.entry.js +1 -1
- package/dist/cjs/stzh-cardlist_3.cjs.entry.js +1 -1
- package/dist/cjs/stzh-cardlist_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-chipselect.cjs.entry.js +11 -6
- package/dist/cjs/stzh-chipselect.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-components.cjs.js +2 -2
- package/dist/cjs/stzh-contact-cv.cjs.entry.js +1 -1
- package/dist/cjs/stzh-contact.cjs.entry.js +1 -1
- package/dist/cjs/stzh-disturber.cjs.entry.js +1 -1
- package/dist/cjs/stzh-dropdown.cjs.entry.js +11 -4
- package/dist/cjs/stzh-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-editor.cjs.entry.js +1 -1
- package/dist/cjs/stzh-eventdata.cjs.entry.js +1 -1
- package/dist/cjs/stzh-eventinfo.cjs.entry.js +1 -1
- package/dist/cjs/stzh-feedreader-item.cjs.entry.js +1 -1
- package/dist/cjs/stzh-feedreader.cjs.entry.js +1 -1
- package/dist/cjs/stzh-geo-ref-data.cjs.entry.js +24 -16
- package/dist/cjs/stzh-geo-ref-data.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-ghettobox_3.cjs.entry.js +2 -2
- package/dist/cjs/stzh-ghettobox_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-homepage-search.cjs.entry.js +1 -1
- package/dist/cjs/stzh-homepage-service-highlights.cjs.entry.js +2 -2
- package/dist/cjs/stzh-linklist.cjs.entry.js +1 -1
- package/dist/cjs/stzh-microsite-teaserlist.cjs.entry.js +1 -1
- package/dist/cjs/stzh-page-skiplinks.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pagebottom.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pagecontent.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pagetitle-hero.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pagetitle-home.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pagetitle.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pi-content-navigation.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pi-menu.cjs.entry.js +2 -2
- package/dist/cjs/stzh-pi-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-pi-pagetitle.cjs.entry.js +2 -2
- package/dist/cjs/stzh-pi-pagetitle.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-pi-quote.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pi-teaser-layout-item.cjs.entry.js +1 -1
- package/dist/cjs/stzh-pi-teaser.cjs.entry.js +1 -1
- package/dist/cjs/stzh-poicard.cjs.entry.js +1 -1
- package/dist/cjs/stzh-poilist.cjs.entry.js +1 -1
- package/dist/cjs/stzh-print_2.cjs.entry.js +1 -1
- package/dist/cjs/stzh-search.cjs.entry.js +2 -2
- package/dist/cjs/stzh-sitemap.cjs.entry.js +1 -1
- package/dist/cjs/stzh-socialmediastream-item.cjs.entry.js +1 -1
- package/dist/cjs/stzh-socialmediastream.cjs.entry.js +1 -1
- package/dist/cjs/stzh-textandimage.cjs.entry.js +1 -1
- package/dist/cjs/stzh-twocolumns.cjs.entry.js +1 -1
- package/dist/cjs/stzh-upload.cjs.entry.js +45 -10
- package/dist/cjs/stzh-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-vbz-linechip.cjs.entry.js +46 -4
- package/dist/cjs/stzh-vbz-linechip.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-vbz-ticker.cjs.entry.js +4 -2
- package/dist/cjs/stzh-vbz-ticker.cjs.entry.js.map +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/CMS/PKZH/stzh-pkzh-qr/stzh-pkzh-qr.stories.js +1 -3
- package/dist/collection/components/CMS/VBZ/stzh-vbz-carousel/stzh-vbz-carousel.stories.js +1 -3
- package/dist/collection/components/CMS/VBZ/stzh-vbz-connection-finder/stzh-vbz-connection-finder.stories.js +1 -6
- package/dist/collection/components/CMS/VBZ/stzh-vbz-intro/stzh-vbz-intro.stories.js +1 -3
- package/dist/collection/components/CMS/VBZ/stzh-vbz-linechip/stzh-vbz-linechip.js +48 -3
- package/dist/collection/components/CMS/VBZ/stzh-vbz-linechip/stzh-vbz-linechip.js.map +1 -1
- package/dist/collection/components/CMS/VBZ/stzh-vbz-linechip/stzh-vbz-linechip.stories.js +1 -11
- package/dist/collection/components/CMS/VBZ/stzh-vbz-majorticker/stzh-vbz-majorticker.stories.js +1 -6
- package/dist/collection/components/CMS/VBZ/stzh-vbz-ticker/stzh-vbz-ticker.js +22 -2
- package/dist/collection/components/CMS/VBZ/stzh-vbz-ticker/stzh-vbz-ticker.js.map +1 -1
- package/dist/collection/components/CMS/VBZ/stzh-vbz-ticker/stzh-vbz-ticker.stories.js +2 -6
- package/dist/collection/components/CMS/stzh-archivelist/stzh-archivelist.stories.js +3 -5
- package/dist/collection/components/CMS/stzh-bathstatus-item/stzh-bathstatus-item.js +1 -1
- package/dist/collection/components/CMS/stzh-bathstatus-item/stzh-bathstatus-item.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-bathstatus-list/stzh-bathstatus-list.js +1 -1
- package/dist/collection/components/CMS/stzh-bathstatus-list/stzh-bathstatus-list.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-card-superteaser/stzh-card-superteaser.js +1 -1
- package/dist/collection/components/CMS/stzh-card-superteaser/stzh-card-superteaser.stories.js +3 -5
- package/dist/collection/components/CMS/stzh-contact/stzh-contact.js +1 -1
- package/dist/collection/components/CMS/stzh-contact/stzh-contact.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-contact-cv/stzh-contact-cv.js +1 -1
- package/dist/collection/components/CMS/stzh-contact-cv/stzh-contact-cv.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-disturber/stzh-disturber.js +1 -1
- package/dist/collection/components/CMS/stzh-disturber/stzh-disturber.stories.js +3 -5
- package/dist/collection/components/CMS/stzh-editor/stzh-editor.js +1 -1
- package/dist/collection/components/CMS/stzh-editor/stzh-editor.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-eventdata/stzh-eventdata.js +1 -1
- package/dist/collection/components/CMS/stzh-eventdata/stzh-eventdata.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-eventinfo/stzh-eventinfo.js +1 -1
- package/dist/collection/components/CMS/stzh-eventinfo/stzh-eventinfo.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-feedreader/stzh-feedreader.js +1 -1
- package/dist/collection/components/CMS/stzh-feedreader/stzh-feedreader.stories.js +3 -5
- package/dist/collection/components/CMS/stzh-feedreader-item/stzh-feedreader-item.js +1 -1
- package/dist/collection/components/CMS/stzh-feedreader-item/stzh-feedreader-item.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-geo-ref-data/stzh-geo-ref-data.js +24 -16
- package/dist/collection/components/CMS/stzh-geo-ref-data/stzh-geo-ref-data.js.map +1 -1
- package/dist/collection/components/CMS/stzh-geo-ref-data/stzh-geo-ref-data.stories.js +1 -6
- package/dist/collection/components/CMS/stzh-ghettobox/stzh-ghettobox.css +3 -3
- package/dist/collection/components/CMS/stzh-ghettobox/stzh-ghettobox.js +1 -1
- package/dist/collection/components/CMS/stzh-ghettobox/stzh-ghettobox.stories.js +3 -5
- package/dist/collection/components/CMS/stzh-homepage-search/stzh-homepage-search.js +1 -1
- package/dist/collection/components/CMS/stzh-homepage-search/stzh-homepage-search.stories.js +3 -5
- package/dist/collection/components/CMS/stzh-homepage-service-highlights/stzh-homepage-service-highlights.js +2 -2
- package/dist/collection/components/CMS/stzh-homepage-service-highlights/stzh-homepage-service-highlights.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-linklist/stzh-linklist.js +1 -1
- package/dist/collection/components/CMS/stzh-linklist/stzh-linklist.stories.js +1 -6
- package/dist/collection/components/CMS/stzh-microsite-teaserlist/stzh-microsite-teaserlist.js +1 -1
- package/dist/collection/components/CMS/stzh-microsite-teaserlist/stzh-microsite-teaserlist.stories.js +1 -11
- package/dist/collection/components/CMS/stzh-page-skiplinks/stzh-page-skiplinks.js +1 -1
- package/dist/collection/components/CMS/stzh-page-skiplinks/stzh-page-skiplinks.stories.js +1 -6
- package/dist/collection/components/CMS/stzh-pagebottom/stzh-pagebottom.js +1 -1
- package/dist/collection/components/CMS/stzh-pagebottom/stzh-pagebottom.stories.js +1 -9
- package/dist/collection/components/CMS/stzh-pagecontent/stzh-pagecontent.js +1 -1
- package/dist/collection/components/CMS/stzh-pagecontent/stzh-pagecontent.stories.js +1 -6
- package/dist/collection/components/CMS/stzh-pagetitle/stzh-pagetitle.js +1 -1
- package/dist/collection/components/CMS/stzh-pagetitle/stzh-pagetitle.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-pagetitle-hero/stzh-pagetitle-hero.js +1 -1
- package/dist/collection/components/CMS/stzh-pagetitle-hero/stzh-pagetitle-hero.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-pagetitle-home/stzh-pagetitle-home.js +1 -1
- package/dist/collection/components/CMS/stzh-pagetitle-home/stzh-pagetitle-home.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-pi-content-navigation/stzh-pi-content-navigation.js +1 -1
- package/dist/collection/components/CMS/stzh-pi-content-navigation/stzh-pi-content-navigation.stories.js +3 -5
- package/dist/collection/components/CMS/stzh-pi-menu/stzh-pi-menu.css +0 -1
- package/dist/collection/components/CMS/stzh-pi-menu/stzh-pi-menu.js +1 -1
- package/dist/collection/components/CMS/stzh-pi-menu/stzh-pi-menu.stories.js +3 -5
- package/dist/collection/components/CMS/stzh-pi-pagetitle/stzh-pi-pagetitle.css +3 -0
- package/dist/collection/components/CMS/stzh-pi-pagetitle/stzh-pi-pagetitle.js +1 -1
- package/dist/collection/components/CMS/stzh-pi-pagetitle/stzh-pi-pagetitle.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-pi-quote/stzh-pi-quote.js +1 -1
- package/dist/collection/components/CMS/stzh-pi-quote/stzh-pi-quote.stories.js +1 -4
- package/dist/collection/components/CMS/stzh-pi-teaser/stzh-pi-teaser.js +1 -1
- package/dist/collection/components/CMS/stzh-pi-teaser/stzh-pi-teaser.stories.js +3 -5
- package/dist/collection/components/CMS/stzh-pi-teaser-layout/stzh-pi-teaser-layout.stories.js +3 -6
- package/dist/collection/components/CMS/stzh-pi-teaser-layout-item/stzh-pi-teaser-layout-item.js +1 -1
- package/dist/collection/components/CMS/stzh-pi-teaser-layout-item/stzh-pi-teaser-layout-item.stories.js +3 -5
- package/dist/collection/components/CMS/stzh-poicard/stzh-poicard.js +1 -1
- package/dist/collection/components/CMS/stzh-poicard/stzh-poicard.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-poilist/stzh-poilist.js +1 -1
- package/dist/collection/components/CMS/stzh-poilist/stzh-poilist.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-print/stzh-print.js +1 -1
- package/dist/collection/components/CMS/stzh-print/stzh-print.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-search/stzh-search.js +2 -2
- package/dist/collection/components/CMS/stzh-search/stzh-search.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-sitemap/stzh-sitemap.js +1 -1
- package/dist/collection/components/CMS/stzh-sitemap/stzh-sitemap.stories.js +2 -3
- package/dist/collection/components/CMS/stzh-socialmediastream/stzh-socialmediastream.js +1 -1
- package/dist/collection/components/CMS/stzh-socialmediastream/stzh-socialmediastream.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-socialmediastream-item/stzh-socialmediastream-item.js +1 -1
- package/dist/collection/components/CMS/stzh-socialmediastream-item/stzh-socialmediastream-item.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-textandimage/stzh-textandimage.js +1 -1
- package/dist/collection/components/CMS/stzh-textandimage/stzh-textandimage.stories.js +1 -3
- package/dist/collection/components/CMS/stzh-twocolumns/stzh-twocolumns.js +1 -1
- package/dist/collection/components/CMS/stzh-twocolumns/stzh-twocolumns.stories.js +1 -3
- package/dist/collection/components/stzh-accordion/stzh-accordion.js +1 -1
- package/dist/collection/components/stzh-accordion/stzh-accordion.stories.js +3 -6
- package/dist/collection/components/stzh-accordion-item/stzh-accordion-item.js +1 -1
- package/dist/collection/components/stzh-accordion-item/stzh-accordion-item.stories.js +4 -7
- package/dist/collection/components/stzh-actions/stzh-actions.js +1 -1
- package/dist/collection/components/stzh-actions/stzh-actions.stories.js +3 -5
- package/dist/collection/components/stzh-actionset/stzh-actionset.js +5 -5
- package/dist/collection/components/stzh-actionset/stzh-actionset.stories.js +3 -5
- package/dist/collection/components/stzh-amount/stzh-amount.js +1 -1
- package/dist/collection/components/stzh-amount/stzh-amount.stories.js +3 -4
- package/dist/collection/components/stzh-anchornav/stzh-anchornav.js +1 -1
- package/dist/collection/components/stzh-anchornav/stzh-anchornav.stories.js +3 -4
- package/dist/collection/components/stzh-app-nav/stzh-app-nav.js +1 -1
- package/dist/collection/components/stzh-app-nav/stzh-app-nav.stories.js +3 -5
- package/dist/collection/components/stzh-appointments/stzh-appointments.js +1 -1
- package/dist/collection/components/stzh-appointments/stzh-appointments.stories.js +17 -14
- package/dist/collection/components/stzh-audio/stzh-audio.js +3 -3
- package/dist/collection/components/stzh-audio/stzh-audio.stories.js +3 -5
- package/dist/collection/components/stzh-badge/stzh-badge.js +1 -1
- package/dist/collection/components/stzh-badge/stzh-badge.stories.js +3 -5
- package/dist/collection/components/{CMS/stzh-banner → stzh-banner}/stzh-banner.css +1 -1
- package/dist/collection/components/{CMS/stzh-banner → stzh-banner}/stzh-banner.e2e.js +2 -2
- package/dist/collection/components/stzh-banner/stzh-banner.e2e.js.map +1 -0
- package/dist/collection/components/{CMS/stzh-banner → stzh-banner}/stzh-banner.js +4 -4
- package/dist/collection/components/stzh-banner/stzh-banner.js.map +1 -0
- package/dist/collection/components/stzh-banner/stzh-banner.localization.js.map +1 -0
- package/dist/collection/components/{CMS/stzh-banner → stzh-banner}/stzh-banner.stories.js +6 -8
- package/dist/collection/components/stzh-breadcrumb/stzh-breadcrumb.stories.js +3 -5
- package/dist/collection/components/stzh-button/stzh-button.stories.js +4 -6
- package/dist/collection/components/stzh-buttongroup/stzh-buttongroup.stories.js +4 -3
- package/dist/collection/components/stzh-calendar/stzh-calendar.stories.js +3 -5
- package/dist/collection/components/stzh-card/stzh-card.stories.js +14 -17
- package/dist/collection/components/stzh-card-navigation/stzh-card-navigation.stories.js +3 -5
- package/dist/collection/components/stzh-card-searchresult/stzh-card-searchresult.stories.js +3 -5
- package/dist/collection/components/stzh-cardlist/stzh-cardlist.css +7 -6
- package/dist/collection/components/stzh-cardlist/stzh-cardlist.stories.js +3 -5
- package/dist/collection/components/stzh-carousel/stzh-carousel.stories.js +3 -5
- package/dist/collection/components/stzh-cell/stzh-cell.stories.js +3 -4
- package/dist/collection/components/stzh-chart/stzh-chart.stories.js +1 -3
- package/dist/collection/components/stzh-checkbox/stzh-checkbox.stories.js +7 -10
- package/dist/collection/components/stzh-checkboxgroup/stzh-checkboxgroup.stories.js +5 -9
- package/dist/collection/components/stzh-chip/stzh-chip.stories.js +3 -5
- package/dist/collection/components/stzh-chipgroup/stzh-chipgroup.stories.js +1 -3
- package/dist/collection/components/stzh-chipselect/stzh-chipselect.js +11 -6
- package/dist/collection/components/stzh-chipselect/stzh-chipselect.js.map +1 -1
- package/dist/collection/components/stzh-chipselect/stzh-chipselect.stories.js +4 -6
- package/dist/collection/components/stzh-clamp/stzh-clamp.stories.js +3 -4
- package/dist/collection/components/stzh-company-logo/stzh-company-logo.stories.js +1 -6
- package/dist/collection/components/stzh-container/stzh-container.stories.js +1 -3
- package/dist/collection/components/stzh-content/stzh-content.stories.js +1 -6
- package/dist/collection/components/stzh-cspace/stzh-cspace.stories.js +1 -6
- package/dist/collection/components/stzh-cta/stzh-cta.stories.js +3 -5
- package/dist/collection/components/stzh-datalist/stzh-datalist.stories.js +3 -5
- package/dist/collection/components/stzh-datalist-item/stzh-datalist-item.stories.js +3 -5
- package/dist/collection/components/stzh-datamessagelist/stzh-datamessagelist.stories.js +1 -3
- package/dist/collection/components/stzh-datamessagelist-item/stzh-datamessagelist-item.stories.js +3 -5
- package/dist/collection/components/stzh-datatable/stzh-datatable.stories.js +3 -5
- package/dist/collection/components/stzh-datepicker/stzh-datepicker.stories.js +3 -5
- package/dist/collection/components/stzh-daterange/stzh-daterange.stories.js +1 -6
- package/dist/collection/components/stzh-details/stzh-details.stories.js +3 -5
- package/dist/collection/components/stzh-dialog/stzh-dialog.stories.js +3 -5
- package/dist/collection/components/stzh-dropdown/stzh-dropdown.js +11 -4
- package/dist/collection/components/stzh-dropdown/stzh-dropdown.js.map +1 -1
- package/dist/collection/components/stzh-dropdown/stzh-dropdown.stories.js +4 -6
- package/dist/collection/components/stzh-fieldset/stzh-fieldset.stories.js +6 -11
- package/dist/collection/components/stzh-figure/stzh-figure.stories.js +1 -3
- package/dist/collection/components/stzh-flyingfocus/stzh-flyingfocus.stories.js +1 -3
- package/dist/collection/components/stzh-footer/stzh-footer.stories.js +1 -3
- package/dist/collection/components/stzh-gallery/stzh-gallery.stories.js +1 -3
- package/dist/collection/components/stzh-header/stzh-header.stories.js +3 -5
- package/dist/collection/components/stzh-heading/stzh-heading.stories.js +1 -6
- package/dist/collection/components/stzh-hr/stzh-hr.stories.js +1 -3
- package/dist/collection/components/stzh-hspace/stzh-hspace.stories.js +1 -6
- package/dist/collection/components/stzh-http-error/stzh-http-error.stories.js +1 -6
- package/dist/collection/components/stzh-icon/stzh-icon.stories.js +1 -6
- package/dist/collection/components/stzh-iframe/stzh-iframe.stories.js +3 -5
- package/dist/collection/components/stzh-imagecomparison/stzh-imagecomparison.stories.js +3 -5
- package/dist/collection/components/stzh-input/stzh-input.stories.js +6 -8
- package/dist/collection/components/stzh-invert/stzh-invert.stories.js +1 -3
- package/dist/collection/components/stzh-link/stzh-link.stories.js +3 -4
- package/dist/collection/components/stzh-list/stzh-list.stories.js +1 -3
- package/dist/collection/components/stzh-loader/stzh-loader.stories.js +1 -6
- package/dist/collection/components/stzh-loadingbar/stzh-loadingbar.stories.js +1 -3
- package/dist/collection/components/stzh-menu/stzh-menu.stories.js +1 -6
- package/dist/collection/components/stzh-menu-item/stzh-menu-item.stories.js +3 -5
- package/dist/collection/components/stzh-message/stzh-message.stories.js +3 -5
- package/dist/collection/components/stzh-monthyearpicker/stzh-monthyearpicker.stories.js +3 -4
- package/dist/collection/components/stzh-offline-indicator/stzh-offline-indicator.stories.js +1 -3
- package/dist/collection/components/stzh-olmap/stzh-olmap.stories.js +3 -5
- package/dist/collection/components/stzh-overlay/stzh-overlay.stories.js +3 -5
- package/dist/collection/components/stzh-pagination/stzh-pagination.stories.js +3 -5
- package/dist/collection/components/stzh-panorama/stzh-panorama.stories.js +3 -5
- package/dist/collection/components/stzh-popover/stzh-popover.stories.js +5 -8
- package/dist/collection/components/stzh-quote/stzh-quote.stories.js +1 -4
- package/dist/collection/components/stzh-radio/stzh-radio.stories.js +7 -11
- package/dist/collection/components/stzh-radiogroup/stzh-radiogroup.stories.js +6 -9
- package/dist/collection/components/stzh-rating/stzh-rating.stories.js +16 -23
- package/dist/collection/components/stzh-ratio/stzh-ratio.stories.js +1 -3
- package/dist/collection/components/stzh-readspeaker/stzh-readspeaker.stories.js +1 -3
- package/dist/collection/components/stzh-richtext/stzh-richtext.stories.js +1 -6
- package/dist/collection/components/stzh-row/stzh-row.stories.js +1 -5
- package/dist/collection/components/stzh-saptcha/stzh-saptcha.stories.js +3 -5
- package/dist/collection/components/stzh-scrollup/stzh-scrollup.stories.js +1 -17
- package/dist/collection/components/stzh-section/stzh-section.stories.js +1 -3
- package/dist/collection/components/stzh-share/stzh-share.stories.js +1 -3
- package/dist/collection/components/stzh-show/stzh-show.stories.js +1 -3
- package/dist/collection/components/stzh-skin-portal-mitwirken/stzh-skin-portal-mitwirken.stories.js +1 -6
- package/dist/collection/components/stzh-skin-storybook-preview/stzh-skin-storybook-preview.stories.js +1 -6
- package/dist/collection/components/stzh-skiplink/stzh-skiplink.stories.js +1 -6
- package/dist/collection/components/stzh-sortable/stzh-sortable.stories.js +3 -5
- package/dist/collection/components/stzh-space/stzh-space.stories.js +1 -6
- package/dist/collection/components/stzh-status/stzh-status.stories.js +1 -3
- package/dist/collection/components/stzh-stepper/stzh-stepper.stories.js +4 -7
- package/dist/collection/components/stzh-stepper-item/stzh-stepper-item.stories.js +4 -7
- package/dist/collection/components/stzh-sticky/stzh-sticky.stories.js +3 -5
- package/dist/collection/components/stzh-sticky-actions/stzh-sticky-actions.stories.js +1 -3
- package/dist/collection/components/stzh-table/stzh-table.stories.js +1 -3
- package/dist/collection/components/stzh-tag/stzh-tag.stories.js +3 -5
- package/dist/collection/components/stzh-text/stzh-text.stories.js +5 -7
- package/dist/collection/components/stzh-timeline/stzh-timeline.stories.js +3 -5
- package/dist/collection/components/stzh-timeline-item/stzh-timeline-item.stories.js +3 -5
- package/dist/collection/components/stzh-timepicker/stzh-timepicker.stories.js +3 -5
- package/dist/collection/components/stzh-toast/stzh-toast.stories.js +3 -5
- package/dist/collection/components/stzh-toastbar/stzh-toastbar.stories.js +1 -2
- package/dist/collection/components/stzh-toggle/stzh-toggle.stories.js +3 -5
- package/dist/collection/components/stzh-tooltip/stzh-tooltip.stories.js +3 -5
- package/dist/collection/components/stzh-upload/stzh-upload.js +46 -11
- package/dist/collection/components/stzh-upload/stzh-upload.js.map +1 -1
- package/dist/collection/components/stzh-upload/stzh-upload.stories.js +13 -12
- package/dist/collection/components/stzh-visuallyhidden/stzh-visuallyhidden.stories.js +1 -6
- package/dist/collection/components/stzh-vspace/stzh-vspace.stories.js +1 -6
- package/dist/collection/components/stzh-youtube/stzh-youtube.stories.js +1 -3
- package/dist/collection/index.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-79436c88.js → p-05fe3259.js} +2 -2
- package/dist/components/{p-79436c88.js.map → p-05fe3259.js.map} +1 -1
- package/dist/components/{p-0b630cac.js → p-06e3cf2d.js} +16 -11
- package/dist/components/p-06e3cf2d.js.map +1 -0
- package/dist/components/{p-27bf6b87.js → p-0e787824.js} +4 -4
- package/dist/components/{p-27bf6b87.js.map → p-0e787824.js.map} +1 -1
- package/dist/components/{p-cb0898ca.js → p-139d2041.js} +4 -4
- package/dist/components/{p-cb0898ca.js.map → p-139d2041.js.map} +1 -1
- package/dist/components/{p-a792adae.js → p-17e8405b.js} +3 -3
- package/dist/components/{p-a792adae.js.map → p-17e8405b.js.map} +1 -1
- package/dist/components/{p-db160bc1.js → p-1c6e00e3.js} +4 -4
- package/dist/components/{p-db160bc1.js.map → p-1c6e00e3.js.map} +1 -1
- package/dist/components/{p-95960509.js → p-1e18dc1d.js} +4 -4
- package/dist/components/{p-95960509.js.map → p-1e18dc1d.js.map} +1 -1
- package/dist/components/{p-5c7c4130.js → p-2b549cf6.js} +2 -2
- package/dist/components/{p-5c7c4130.js.map → p-2b549cf6.js.map} +1 -1
- package/dist/components/{p-2d80d228.js → p-31108932.js} +2 -2
- package/dist/components/{p-2d80d228.js.map → p-31108932.js.map} +1 -1
- package/dist/components/{p-2c27e000.js → p-33bb9ae6.js} +9 -9
- package/dist/components/{p-2c27e000.js.map → p-33bb9ae6.js.map} +1 -1
- package/dist/components/{p-78ad1fb5.js → p-349fbfd7.js} +2 -2
- package/dist/components/{p-78ad1fb5.js.map → p-349fbfd7.js.map} +1 -1
- package/dist/components/{p-31a89409.js → p-363adb38.js} +5 -5
- package/dist/components/{p-31a89409.js.map → p-363adb38.js.map} +1 -1
- package/dist/components/p-37c9ec06.js.map +1 -1
- package/dist/components/{p-7969eeb6.js → p-38e34484.js} +2 -2
- package/dist/components/{p-7969eeb6.js.map → p-38e34484.js.map} +1 -1
- package/dist/components/{p-c4637521.js → p-3ee4c2ec.js} +3 -3
- package/dist/components/{p-c4637521.js.map → p-3ee4c2ec.js.map} +1 -1
- package/dist/components/{p-1ec35678.js → p-4bdf2c0e.js} +5 -5
- package/dist/components/{p-1ec35678.js.map → p-4bdf2c0e.js.map} +1 -1
- package/dist/components/{p-2d2bf07d.js → p-5fe404aa.js} +49 -5
- package/dist/components/p-5fe404aa.js.map +1 -0
- package/dist/components/{p-1f315034.js → p-626168f9.js} +4 -4
- package/dist/components/{p-1f315034.js.map → p-626168f9.js.map} +1 -1
- package/dist/components/{p-b8fda153.js → p-6a1a040f.js} +2 -2
- package/dist/components/{p-b8fda153.js.map → p-6a1a040f.js.map} +1 -1
- package/dist/components/{p-bafc325d.js → p-74f1fb8a.js} +3 -3
- package/dist/components/{p-bafc325d.js.map → p-74f1fb8a.js.map} +1 -1
- package/dist/components/{p-ec5e2f2a.js → p-775cca3b.js} +2 -2
- package/dist/components/{p-ec5e2f2a.js.map → p-775cca3b.js.map} +1 -1
- package/dist/components/{p-c9320f27.js → p-804c5a42.js} +4 -4
- package/dist/components/{p-c9320f27.js.map → p-804c5a42.js.map} +1 -1
- package/dist/components/{p-28548919.js → p-8c402b5e.js} +3 -3
- package/dist/components/{p-28548919.js.map → p-8c402b5e.js.map} +1 -1
- package/dist/components/{p-e25baa50.js → p-8e42dbab.js} +3 -3
- package/dist/components/{p-e25baa50.js.map → p-8e42dbab.js.map} +1 -1
- package/dist/components/{p-c8267c9e.js → p-999b8661.js} +4 -4
- package/dist/components/p-999b8661.js.map +1 -0
- package/dist/components/{p-258d7bde.js → p-9a88d047.js} +3 -3
- package/dist/components/{p-258d7bde.js.map → p-9a88d047.js.map} +1 -1
- package/dist/components/{p-51253a86.js → p-a94140df.js} +3 -3
- package/dist/components/{p-51253a86.js.map → p-a94140df.js.map} +1 -1
- package/dist/components/{p-c484e7ca.js → p-af574b36.js} +2 -2
- package/dist/components/{p-c484e7ca.js.map → p-af574b36.js.map} +1 -1
- package/dist/components/{p-a3e94f5e.js → p-b379f4ca.js} +6 -6
- package/dist/components/{p-a3e94f5e.js.map → p-b379f4ca.js.map} +1 -1
- package/dist/components/{p-cac39de3.js → p-b38507d2.js} +2 -2
- package/dist/components/{p-cac39de3.js.map → p-b38507d2.js.map} +1 -1
- package/dist/components/{p-04567f95.js → p-b392fbfe.js} +4 -4
- package/dist/components/{p-04567f95.js.map → p-b392fbfe.js.map} +1 -1
- package/dist/components/{p-cccc2b32.js → p-bb5dd9ca.js} +6 -6
- package/dist/components/{p-cccc2b32.js.map → p-bb5dd9ca.js.map} +1 -1
- package/dist/components/{p-27688347.js → p-bec99b6c.js} +4 -4
- package/dist/components/{p-27688347.js.map → p-bec99b6c.js.map} +1 -1
- package/dist/components/{p-dc031c55.js → p-c16c2ca7.js} +6 -6
- package/dist/components/{p-dc031c55.js.map → p-c16c2ca7.js.map} +1 -1
- package/dist/components/{p-9dccba17.js → p-cac3a53e.js} +3 -3
- package/dist/components/{p-9dccba17.js.map → p-cac3a53e.js.map} +1 -1
- package/dist/components/{p-1462b0ac.js → p-e961f0da.js} +3 -3
- package/dist/components/{p-1462b0ac.js.map → p-e961f0da.js.map} +1 -1
- package/dist/components/{p-3d9ce94f.js → p-f07fda42.js} +12 -5
- package/dist/components/p-f07fda42.js.map +1 -0
- package/dist/components/stzh-accordion-item.js +1 -1
- package/dist/components/stzh-accordion.js +1 -1
- package/dist/components/stzh-actions.js +1 -1
- package/dist/components/stzh-actionset.js +1 -1
- package/dist/components/stzh-amount.js +5 -5
- package/dist/components/stzh-anchornav.js +4 -4
- package/dist/components/stzh-app-nav.js +1 -1
- package/dist/components/stzh-appointments.js +8 -8
- package/dist/components/stzh-archivelist.js +4 -4
- package/dist/components/stzh-audio.js +3 -3
- package/dist/components/stzh-badge.js +1 -1
- package/dist/components/stzh-banner.js +4 -4
- package/dist/components/stzh-banner.js.map +1 -1
- package/dist/components/stzh-bathstatus-item.js +1 -1
- package/dist/components/stzh-bathstatus-list.js +4 -4
- package/dist/components/stzh-button.js +1 -1
- package/dist/components/stzh-calendar.js +1 -1
- package/dist/components/stzh-card-searchresult.js +7 -7
- package/dist/components/stzh-card-superteaser.js +8 -8
- package/dist/components/stzh-card.js +1 -1
- package/dist/components/stzh-cardlist.js +1 -1
- package/dist/components/stzh-chip.js +1 -1
- package/dist/components/stzh-chipselect.js +1 -1
- package/dist/components/stzh-clamp.js +1 -1
- package/dist/components/stzh-contact-cv.js +1 -1
- package/dist/components/stzh-contact.js +5 -5
- package/dist/components/stzh-datalist-item.js +1 -1
- package/dist/components/stzh-datalist.js +1 -1
- package/dist/components/stzh-datamessagelist-item.js +6 -6
- package/dist/components/stzh-datatable.js +9 -9
- package/dist/components/stzh-datepicker.js +1 -1
- package/dist/components/stzh-daterange.js +2 -2
- package/dist/components/stzh-dialog.js +1 -1
- package/dist/components/stzh-disturber.js +3 -3
- package/dist/components/stzh-dropdown.js +1 -1
- package/dist/components/stzh-editor.js +3 -3
- package/dist/components/stzh-eventdata.js +1 -1
- package/dist/components/stzh-eventinfo.js +3 -3
- package/dist/components/stzh-feedreader-item.js +1 -1
- package/dist/components/stzh-feedreader.js +5 -5
- package/dist/components/stzh-footer.js +2 -2
- package/dist/components/stzh-gallery.js +2 -2
- package/dist/components/stzh-geo-ref-data.js +36 -28
- package/dist/components/stzh-geo-ref-data.js.map +1 -1
- package/dist/components/stzh-ghettobox.js +1 -1
- package/dist/components/stzh-header.js +1 -1
- package/dist/components/stzh-homepage-search.js +1 -1
- package/dist/components/stzh-homepage-service-highlights.js +4 -4
- package/dist/components/stzh-http-error.js +2 -2
- package/dist/components/stzh-iframe.js +1 -1
- package/dist/components/stzh-input.js +1 -1
- package/dist/components/stzh-link.js +1 -1
- package/dist/components/stzh-linklist.js +5 -5
- package/dist/components/stzh-menu-item.js +1 -1
- package/dist/components/stzh-message.js +1 -1
- package/dist/components/stzh-microsite-teaserlist.js +11 -11
- package/dist/components/stzh-monthyearpicker.js +1 -1
- package/dist/components/stzh-offline-indicator.js +4 -4
- package/dist/components/stzh-page-skiplinks.js +1 -1
- package/dist/components/stzh-pagebottom.js +5 -5
- package/dist/components/stzh-pagecontent.js +1 -1
- package/dist/components/stzh-pagetitle-hero.js +1 -1
- package/dist/components/stzh-pagetitle-home.js +1 -1
- package/dist/components/stzh-pagetitle.js +1 -1
- package/dist/components/stzh-pagination.js +1 -1
- package/dist/components/stzh-panorama.js +4 -4
- package/dist/components/stzh-pi-content-navigation.js +1 -1
- package/dist/components/stzh-pi-menu.js +2 -2
- package/dist/components/stzh-pi-menu.js.map +1 -1
- package/dist/components/stzh-pi-pagetitle.js +2 -2
- package/dist/components/stzh-pi-pagetitle.js.map +1 -1
- package/dist/components/stzh-pi-quote.js +1 -1
- package/dist/components/stzh-pi-teaser-layout-item.js +1 -1
- package/dist/components/stzh-pi-teaser-layout.js +1 -1
- package/dist/components/stzh-pi-teaser.js +1 -1
- package/dist/components/stzh-pkzh-qr.js +7 -7
- package/dist/components/stzh-poicard.js +1 -1
- package/dist/components/stzh-poilist.js +10 -10
- package/dist/components/stzh-print.js +1 -1
- package/dist/components/stzh-readspeaker.js +2 -2
- package/dist/components/stzh-saptcha.js +3 -3
- package/dist/components/stzh-search.js +10 -10
- package/dist/components/stzh-share.js +1 -1
- package/dist/components/stzh-sitemap.js +5 -5
- package/dist/components/stzh-socialmediastream-item.js +1 -1
- package/dist/components/stzh-socialmediastream.js +2 -2
- package/dist/components/stzh-tag.js +1 -1
- package/dist/components/stzh-textandimage.js +1 -1
- package/dist/components/stzh-timeline-item.js +1 -1
- package/dist/components/stzh-timepicker.js +1 -1
- package/dist/components/stzh-toast.js +1 -1
- package/dist/components/stzh-toastbar.js +1 -1
- package/dist/components/stzh-twocolumns.js +1 -1
- package/dist/components/stzh-upload.js +52 -17
- package/dist/components/stzh-upload.js.map +1 -1
- package/dist/components/stzh-vbz-intro.js +2 -2
- package/dist/components/stzh-vbz-linechip.js +1 -1
- package/dist/components/stzh-vbz-majorticker.js +3 -3
- package/dist/components/stzh-vbz-ticker.js +8 -5
- package/dist/components/stzh-vbz-ticker.js.map +1 -1
- package/dist/components/stzh-youtube.js +3 -3
- package/dist/esm/{app-globals-a962cea2.js → app-globals-a7ad59a2.js} +2 -2
- package/dist/esm/{app-globals-a962cea2.js.map → app-globals-a7ad59a2.js.map} +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/stzh-accordion_3.entry.js +2 -2
- package/dist/esm/stzh-actions_6.entry.js +1 -1
- package/dist/esm/stzh-actionset.entry.js +5 -5
- package/dist/esm/stzh-amount.entry.js +1 -1
- package/dist/esm/stzh-anchornav.entry.js +1 -1
- package/dist/esm/stzh-app-nav.entry.js +1 -1
- package/dist/esm/stzh-appointments.entry.js +1 -1
- package/dist/esm/stzh-audio.entry.js +3 -3
- package/dist/esm/stzh-badge_3.entry.js +1 -1
- package/dist/esm/stzh-banner.entry.js +2 -2
- package/dist/esm/stzh-banner.entry.js.map +1 -1
- package/dist/esm/stzh-bathstatus-item.entry.js +1 -1
- package/dist/esm/stzh-bathstatus-list.entry.js +1 -1
- package/dist/esm/stzh-card-superteaser.entry.js +1 -1
- package/dist/esm/stzh-cardlist_3.entry.js +1 -1
- package/dist/esm/stzh-cardlist_3.entry.js.map +1 -1
- package/dist/esm/stzh-chipselect.entry.js +11 -6
- package/dist/esm/stzh-chipselect.entry.js.map +1 -1
- package/dist/esm/stzh-components.js +2 -2
- package/dist/esm/stzh-contact-cv.entry.js +1 -1
- package/dist/esm/stzh-contact.entry.js +1 -1
- package/dist/esm/stzh-disturber.entry.js +1 -1
- package/dist/esm/stzh-dropdown.entry.js +11 -4
- package/dist/esm/stzh-dropdown.entry.js.map +1 -1
- package/dist/esm/stzh-editor.entry.js +1 -1
- package/dist/esm/stzh-eventdata.entry.js +1 -1
- package/dist/esm/stzh-eventinfo.entry.js +1 -1
- package/dist/esm/stzh-feedreader-item.entry.js +1 -1
- package/dist/esm/stzh-feedreader.entry.js +1 -1
- package/dist/esm/stzh-geo-ref-data.entry.js +24 -16
- package/dist/esm/stzh-geo-ref-data.entry.js.map +1 -1
- package/dist/esm/stzh-ghettobox_3.entry.js +2 -2
- package/dist/esm/stzh-ghettobox_3.entry.js.map +1 -1
- package/dist/esm/stzh-homepage-search.entry.js +1 -1
- package/dist/esm/stzh-homepage-service-highlights.entry.js +2 -2
- package/dist/esm/stzh-linklist.entry.js +1 -1
- package/dist/esm/stzh-microsite-teaserlist.entry.js +1 -1
- package/dist/esm/stzh-page-skiplinks.entry.js +1 -1
- package/dist/esm/stzh-pagebottom.entry.js +1 -1
- package/dist/esm/stzh-pagecontent.entry.js +1 -1
- package/dist/esm/stzh-pagetitle-hero.entry.js +1 -1
- package/dist/esm/stzh-pagetitle-home.entry.js +1 -1
- package/dist/esm/stzh-pagetitle.entry.js +1 -1
- package/dist/esm/stzh-pi-content-navigation.entry.js +1 -1
- package/dist/esm/stzh-pi-menu.entry.js +2 -2
- package/dist/esm/stzh-pi-menu.entry.js.map +1 -1
- package/dist/esm/stzh-pi-pagetitle.entry.js +2 -2
- package/dist/esm/stzh-pi-pagetitle.entry.js.map +1 -1
- package/dist/esm/stzh-pi-quote.entry.js +1 -1
- package/dist/esm/stzh-pi-teaser-layout-item.entry.js +1 -1
- package/dist/esm/stzh-pi-teaser.entry.js +1 -1
- package/dist/esm/stzh-poicard.entry.js +1 -1
- package/dist/esm/stzh-poilist.entry.js +1 -1
- package/dist/esm/stzh-print_2.entry.js +1 -1
- package/dist/esm/stzh-search.entry.js +2 -2
- package/dist/esm/stzh-sitemap.entry.js +1 -1
- package/dist/esm/stzh-socialmediastream-item.entry.js +1 -1
- package/dist/esm/stzh-socialmediastream.entry.js +1 -1
- package/dist/esm/stzh-textandimage.entry.js +1 -1
- package/dist/esm/stzh-twocolumns.entry.js +1 -1
- package/dist/esm/stzh-upload.entry.js +45 -10
- package/dist/esm/stzh-upload.entry.js.map +1 -1
- package/dist/esm/stzh-vbz-linechip.entry.js +46 -4
- package/dist/esm/stzh-vbz-linechip.entry.js.map +1 -1
- package/dist/esm/stzh-vbz-ticker.entry.js +4 -2
- package/dist/esm/stzh-vbz-ticker.entry.js.map +1 -1
- package/dist/stzh-components/index.esm.js.map +1 -1
- package/dist/stzh-components/{p-50a81b5c.entry.js → p-0cf78c66.entry.js} +2 -2
- package/dist/stzh-components/{p-9b858b7e.entry.js → p-1047debc.entry.js} +2 -2
- package/dist/stzh-components/{p-d0e8b48e.entry.js → p-126e6d91.entry.js} +2 -2
- package/dist/stzh-components/{p-3064f4b9.entry.js → p-1724d14c.entry.js} +2 -2
- package/dist/stzh-components/{p-21c8ffbe.entry.js → p-1a926012.entry.js} +2 -2
- package/dist/stzh-components/{p-0585149c.entry.js → p-1b517ef0.entry.js} +2 -2
- package/dist/stzh-components/p-3677f45f.entry.js +2 -0
- package/dist/stzh-components/p-3677f45f.entry.js.map +1 -0
- package/dist/stzh-components/{p-2925f080.entry.js → p-37f3a254.entry.js} +2 -2
- package/dist/stzh-components/{p-6dd89068.entry.js → p-3e6c40f3.entry.js} +2 -2
- package/dist/stzh-components/{p-0585ce30.entry.js → p-40b71f43.entry.js} +2 -2
- package/dist/stzh-components/p-4248810c.entry.js +2 -0
- package/dist/stzh-components/p-4248810c.entry.js.map +1 -0
- package/dist/stzh-components/{p-b4743671.entry.js → p-49d1df6c.entry.js} +2 -2
- package/dist/stzh-components/{p-c58f66b7.entry.js → p-4c34707b.entry.js} +2 -2
- package/dist/stzh-components/{p-9dc09551.entry.js → p-4cc22e58.entry.js} +2 -2
- package/dist/stzh-components/p-53356df0.entry.js +2 -0
- package/dist/stzh-components/p-53356df0.entry.js.map +1 -0
- package/dist/stzh-components/{p-0c40b74a.entry.js → p-57350e0f.entry.js} +2 -2
- package/dist/stzh-components/{p-9868d9ae.entry.js → p-582dce2a.entry.js} +2 -2
- package/dist/stzh-components/{p-6e273ca9.entry.js → p-59f148b6.entry.js} +2 -2
- package/dist/stzh-components/{p-a06207b8.entry.js → p-5c6e3a8d.entry.js} +2 -2
- package/dist/stzh-components/p-64d9db0e.entry.js +2 -0
- package/dist/stzh-components/{p-08a557a9.entry.js.map → p-64d9db0e.entry.js.map} +1 -1
- package/dist/stzh-components/{p-f4a72255.entry.js → p-68eac8f8.entry.js} +2 -2
- package/dist/stzh-components/{p-71a0881e.entry.js → p-6caa57d2.entry.js} +2 -2
- package/dist/stzh-components/{p-51b68c35.entry.js → p-6f9d0b16.entry.js} +2 -2
- package/dist/stzh-components/{p-30190507.entry.js → p-75cb1777.entry.js} +5 -5
- package/dist/stzh-components/p-75cb1777.entry.js.map +1 -0
- package/dist/stzh-components/{p-53fbd93e.entry.js → p-7659680e.entry.js} +2 -2
- package/dist/stzh-components/{p-7c4475b1.entry.js → p-7a89cb17.entry.js} +2 -2
- package/dist/stzh-components/{p-a3227cea.entry.js → p-7cbdff42.entry.js} +2 -2
- package/dist/stzh-components/{p-8b77de57.entry.js → p-7cc03903.entry.js} +2 -2
- package/dist/stzh-components/{p-94c29a35.entry.js → p-7e2ccf70.entry.js} +2 -2
- package/dist/stzh-components/p-7e2ccf70.entry.js.map +1 -0
- package/dist/stzh-components/{p-c820956f.entry.js → p-80ad40e0.entry.js} +2 -2
- package/dist/stzh-components/{p-0d7b090a.entry.js → p-81223fd0.entry.js} +2 -2
- package/dist/stzh-components/{p-0504563f.entry.js → p-81cedb07.entry.js} +2 -2
- package/dist/stzh-components/{p-ff5abecf.entry.js → p-88771be4.entry.js} +2 -2
- package/dist/stzh-components/{p-51e9d435.entry.js → p-920fce3c.entry.js} +2 -2
- package/dist/stzh-components/{p-aca1cbd6.entry.js → p-93ec64d8.entry.js} +2 -2
- package/dist/stzh-components/{p-42ec2ee3.entry.js → p-a34af577.entry.js} +2 -2
- package/dist/stzh-components/p-a34af577.entry.js.map +1 -0
- package/dist/stzh-components/{p-54ba4496.entry.js → p-a406f00b.entry.js} +2 -2
- package/dist/stzh-components/{p-3a5acc86.entry.js → p-b0216e1c.entry.js} +2 -2
- package/dist/stzh-components/{p-e45aaf19.entry.js → p-b1f7a965.entry.js} +2 -2
- package/dist/stzh-components/{p-3a0112f4.entry.js → p-b2577810.entry.js} +2 -2
- package/dist/stzh-components/{p-d68f208f.js → p-b381bb3f.js} +2 -2
- package/dist/stzh-components/p-beb1274a.entry.js +2 -0
- package/dist/stzh-components/{p-24daddfd.entry.js.map → p-beb1274a.entry.js.map} +1 -1
- package/dist/stzh-components/{p-38570073.entry.js → p-beeb3c30.entry.js} +2 -2
- package/dist/stzh-components/{p-0edd3842.entry.js → p-c8319cd5.entry.js} +2 -2
- package/dist/stzh-components/{p-70805ea3.entry.js → p-c8d80b05.entry.js} +2 -2
- package/dist/stzh-components/{p-8de194c8.entry.js → p-ceb4aac5.entry.js} +2 -2
- package/dist/stzh-components/p-ceb4aac5.entry.js.map +1 -0
- package/dist/stzh-components/{p-15f3c6a1.entry.js → p-dbe28f96.entry.js} +2 -2
- package/dist/stzh-components/{p-3f4afd76.entry.js → p-de4b1f2b.entry.js} +2 -2
- package/dist/stzh-components/{p-13881ff2.entry.js → p-de8c2229.entry.js} +2 -2
- package/dist/stzh-components/{p-ee9f0975.entry.js → p-def94196.entry.js} +2 -2
- package/dist/stzh-components/p-def94196.entry.js.map +1 -0
- package/dist/stzh-components/p-e437fcf8.entry.js +2 -0
- package/dist/stzh-components/p-e437fcf8.entry.js.map +1 -0
- package/dist/stzh-components/{p-b1695c60.entry.js → p-e55ed246.entry.js} +2 -2
- package/dist/stzh-components/{p-9c552bd1.entry.js → p-f06def5a.entry.js} +2 -2
- package/dist/stzh-components/{p-380d1021.entry.js → p-f4a3b35e.entry.js} +2 -2
- package/dist/stzh-components/{p-380d1021.entry.js.map → p-f4a3b35e.entry.js.map} +1 -1
- package/dist/stzh-components/p-fe46e220.entry.js +2 -0
- package/dist/stzh-components/p-fe46e220.entry.js.map +1 -0
- 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/CMS/VBZ/stzh-vbz-linechip/stzh-vbz-linechip.d.ts +10 -2
- package/dist/types/components/CMS/VBZ/stzh-vbz-ticker/stzh-vbz-ticker.d.ts +4 -2
- package/dist/types/components/CMS/stzh-geo-ref-data/stzh-geo-ref-data.d.ts +1 -0
- package/dist/types/components/{CMS/stzh-banner → stzh-banner}/stzh-banner.d.ts +2 -2
- package/dist/types/components/{CMS/stzh-banner → stzh-banner}/stzh-banner.localization.d.ts +1 -1
- package/dist/types/components.d.ts +28 -4
- package/dist/types/index.d.ts +22 -1
- package/dist/vscode-data.json +32 -0
- package/package.json +13 -24
- package/dist/collection/components/CMS/stzh-banner/stzh-banner.e2e.js.map +0 -1
- package/dist/collection/components/CMS/stzh-banner/stzh-banner.js.map +0 -1
- package/dist/collection/components/CMS/stzh-banner/stzh-banner.localization.js.map +0 -1
- package/dist/components/p-0b630cac.js.map +0 -1
- package/dist/components/p-2d2bf07d.js.map +0 -1
- package/dist/components/p-3d9ce94f.js.map +0 -1
- package/dist/components/p-c8267c9e.js.map +0 -1
- package/dist/stzh-components/p-08a557a9.entry.js +0 -2
- package/dist/stzh-components/p-24daddfd.entry.js +0 -2
- package/dist/stzh-components/p-30190507.entry.js.map +0 -1
- package/dist/stzh-components/p-357ce1c2.entry.js +0 -2
- package/dist/stzh-components/p-357ce1c2.entry.js.map +0 -1
- package/dist/stzh-components/p-42ec2ee3.entry.js.map +0 -1
- package/dist/stzh-components/p-520572a4.entry.js +0 -2
- package/dist/stzh-components/p-520572a4.entry.js.map +0 -1
- package/dist/stzh-components/p-7157b3d2.entry.js +0 -2
- package/dist/stzh-components/p-7157b3d2.entry.js.map +0 -1
- package/dist/stzh-components/p-7254baa2.entry.js +0 -2
- package/dist/stzh-components/p-7254baa2.entry.js.map +0 -1
- package/dist/stzh-components/p-846c28e5.entry.js +0 -2
- package/dist/stzh-components/p-846c28e5.entry.js.map +0 -1
- package/dist/stzh-components/p-8de194c8.entry.js.map +0 -1
- package/dist/stzh-components/p-94c29a35.entry.js.map +0 -1
- package/dist/stzh-components/p-ee9f0975.entry.js.map +0 -1
- /package/dist/collection/components/{CMS/stzh-banner → stzh-banner}/stzh-banner.localization.js +0 -0
- /package/dist/stzh-components/{p-50a81b5c.entry.js.map → p-0cf78c66.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-9b858b7e.entry.js.map → p-1047debc.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-d0e8b48e.entry.js.map → p-126e6d91.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-3064f4b9.entry.js.map → p-1724d14c.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-21c8ffbe.entry.js.map → p-1a926012.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0585149c.entry.js.map → p-1b517ef0.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-2925f080.entry.js.map → p-37f3a254.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-6dd89068.entry.js.map → p-3e6c40f3.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0585ce30.entry.js.map → p-40b71f43.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-b4743671.entry.js.map → p-49d1df6c.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-c58f66b7.entry.js.map → p-4c34707b.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-9dc09551.entry.js.map → p-4cc22e58.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0c40b74a.entry.js.map → p-57350e0f.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-9868d9ae.entry.js.map → p-582dce2a.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-6e273ca9.entry.js.map → p-59f148b6.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-a06207b8.entry.js.map → p-5c6e3a8d.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-f4a72255.entry.js.map → p-68eac8f8.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-71a0881e.entry.js.map → p-6caa57d2.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-51b68c35.entry.js.map → p-6f9d0b16.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-53fbd93e.entry.js.map → p-7659680e.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-7c4475b1.entry.js.map → p-7a89cb17.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-a3227cea.entry.js.map → p-7cbdff42.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-8b77de57.entry.js.map → p-7cc03903.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-c820956f.entry.js.map → p-80ad40e0.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0d7b090a.entry.js.map → p-81223fd0.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0504563f.entry.js.map → p-81cedb07.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-ff5abecf.entry.js.map → p-88771be4.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-51e9d435.entry.js.map → p-920fce3c.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-aca1cbd6.entry.js.map → p-93ec64d8.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-54ba4496.entry.js.map → p-a406f00b.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-3a5acc86.entry.js.map → p-b0216e1c.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-e45aaf19.entry.js.map → p-b1f7a965.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-3a0112f4.entry.js.map → p-b2577810.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-d68f208f.js.map → p-b381bb3f.js.map} +0 -0
- /package/dist/stzh-components/{p-38570073.entry.js.map → p-beeb3c30.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-0edd3842.entry.js.map → p-c8319cd5.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-70805ea3.entry.js.map → p-c8d80b05.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-15f3c6a1.entry.js.map → p-dbe28f96.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-3f4afd76.entry.js.map → p-de4b1f2b.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-13881ff2.entry.js.map → p-de8c2229.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-b1695c60.entry.js.map → p-e55ed246.entry.js.map} +0 -0
- /package/dist/stzh-components/{p-9c552bd1.entry.js.map → p-f06def5a.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stzh-upload.js","sourceRoot":"","sources":["../../../../src/components/stzh-upload/stzh-upload.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Fragment,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\n\nimport {\n StzhToastType,\n StzhUploadCanceledEvent,\n StzhUploadCanceledMultipleEvent,\n StzhUploadCompleteEvent,\n StzhUploadCompleteMultipleEvent,\n StzhUploadErrorEvent,\n StzhUploadErrorMultipleEvent,\n StzhUploadFile,\n StzhUploadFileAddedEvent,\n StzhUploadFileRemovedEvent,\n StzhUploadFileRemoveEvent,\n StzhUploadFilesAddedEvent,\n StzhUploadFilesItem,\n StzhUploadProcessingEvent,\n StzhUploadProcessingMultipleEvent,\n StzhUploadProgressEvent,\n StzhUploadProgressTotalEvent,\n StzhUploadSendingEvent,\n StzhUploadSendingMultipleEvent,\n StzhUploadSuccessEvent,\n StzhUploadSuccessMultipleEvent,\n} from \"../../index\";\n\nimport { getStzhEnvironment, hasSlot, isStzhElement, StzhEnvironmentEnum } from \"../../utils/utils\";\nimport { StzhUploadLocalizedText } from \"./stzh-upload.localization\";\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nimport \"../../libraries/dropzone/dropzone\";\nimport { StzhPhotographingUrlDetailsDto } from \"./models/stzh-photographing-url-details.dto\";\nimport { StzhPhotographingConfigurationDto } from \"./models/stzh-photographing-configuration.dto\";\nimport QRCode from \"qrcode\";\nimport { StzhPhotographingPdfFileDto } from \"./models/stzh-photographing-pdf-file.dto\";\n\nwindow.Dropzone.autoDiscover = false;\n\nconst ATTR_NAME = \"data-dz-name\";\nconst ATTR_TYPE = \"data-dz-type\";\nconst ATTR_SIZE = \"data-dz-size\";\nconst ATTR_LINK = \"data-dz-link\";\nconst ATTR_EXTENSION = \"data-dz-extension\";\nconst ATTR_META_ID = \"data-dz-meta-id\";\nconst ATTR_ERROR_MESSAGE_ID = \"data-dz-error-message-id\";\nconst ATTR_PROGRESS_TEXT = \"data-dz-progress-text\";\nconst ATTR_REMOVE = \"data-dz-remove\";\nconst ACCEPTED_FILES_DEFAULT = '.jpg,.png,.pdf';\n\nlet uploadCounter = 0;\nlet previewCounter = 0;\n\n// Most properties taken over from:\n// https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js\n\n// Possible events to listen to:\n// https://github.com/dropzone/dropzone/blob/v5.9.3/src/dropzone.js#L17\n\n/**\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-upload\",\n styleUrl: \"stzh-upload.scss\",\n})\nexport class StzhUpload {\n /**\n * Initially pre-existing files (e.g. already uploaded by the user).\n * Array of objects that must at least include `name` and `size` attribute:\n * `[{\"name\":\"file1.txt\", \"size\": 12345}, {\"name\":\"file2.txt\", \"size\": 12345}]`\n */\n @Prop() existingFiles: StzhUploadFilesItem[] | string = [];\n private _existingFiles: StzhUploadFilesItem[] = [];\n\n /** Name of hidden input field */\n @Prop() name: string = \"\";\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Instructions heading */\n @Prop() heading: string = \"\";\n\n /** Instructions description */\n @Prop() description: string = \"\";\n\n /** Button text */\n @Prop() button: string = \"\";\n\n /** Scan Button text */\n @Prop() buttonScan: string = \"\";\n\n /** Scan Button text */\n @Prop({ mutable: true }) photographingEnabled: boolean = false;\n\n /** Disable toasts on upload success and error */\n @Prop() disableToasts: boolean = false;\n\n /**\n * URL the files are processed to.\n *\n * You can also provide a function that will be called with `files` and\n * `dataBlocks` and must return the url as string.\n */\n @Prop() url: string | Function = \"\";\n\n /**\n * Can be changed to `\"put\"` if necessary. You can also provide a function\n * that will be called with `files` and must return the method.\n */\n @Prop() method: \"post\" | \"put\" | Function = \"post\";\n\n /**\n * Will be set on the XHRequest.\n */\n @Prop() withCredentials: boolean = false;\n\n /**\n * Whether the upload is disabled or not.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Whether the upload is marked as invalid.\n */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Whether download functionality should be disabled. */\n @Prop() downloadDisabled: boolean = false;\n\n /** Whether download functionality should only be shown to completed files. */\n @Prop() downloadDisabledWhileProcessing: boolean = false;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /**\n * The file types accepted to be uploaded. For security reasons, there's the default value \".jpg,.png,.pdf\".\n *\n */\n @Prop({ reflect: true, mutable: true }) acceptedFiles: string = '.jpg,.png,.pdf'; // must match ACCEPTED_FILES_DEFAULT (autodocs can't handle variables)\n\n /**\n * If false, files will be added to the queue but the queue will not be\n * processed automatically.\n * This can be useful if you need some additional user input before sending\n * files (or if you want all files sent at once).\n * If you're ready to send the file simply call `element.processQueue()`.\n */\n @Prop() autoProcessQueue: boolean = true;\n\n /**\n * Hide progress (bars and text).\n */\n @Prop() hideProgress: boolean = false;\n\n /**\n * Hide progress (bars) only while idle (will show them as soon as upload starts).\n * Can be used together with `autoProcessQueue`, e.g. if files are uploaded at form submit to prevent showing empty progressbar.\n */\n @Prop() hideProgressWhileIdle: boolean = false;\n\n /**\n * If not `null` defines how many files this dropzone handles. If it exceeds,\n * the event `stzhMaxfilesexceeded` will be called.\n */\n @Prop() maxFiles: number | null = null;\n\n /**\n * The maximum filesize (in MiB) that is allowed to be uploaded per file.\n */\n @Prop() maxFilesize: number = 25;\n\n /**\n * The maximum filesize (in MiB) that is allowed to be uploaded over all files.\n */\n @Prop() maxFilesizeTotal: number = 100;\n\n /**\n * How many file uploads to process in parallel.\n */\n @Prop() parallelUploads: number = 2;\n\n /**\n * Whether to send multiple files in one request. If\n * this it set to true, then the fallback file input element will\n * have the `multiple` attribute as well. This option will\n * also trigger additional events (like `stzhSuccessMultiple`). See the events\n * documentation section for more information.\n */\n @Prop() uploadMultiple: boolean = false;\n\n /**\n * Whether you want files to be uploaded in chunks to your server. This can't be\n * used in combination with `uploadMultiple`.\n *\n * See `chunksUploaded` prop for the callback to finalise an upload.\n */\n @Prop() chunking: boolean = false;\n\n /**\n * If `chunking` is enabled, this defines whether **every** file should be chunked,\n * even if the file size is below chunkSize. This means, that the additional chunk\n * form data will be submitted and the `chunksUploaded` callback will be invoked.\n */\n @Prop() forceChunking: boolean = false;\n\n /**\n * If `chunking` is `true`, then this defines the chunk size in bytes.\n */\n @Prop() chunkSize: number = 2 * 1024 * 1024;\n\n /**\n * If `true`, the individual chunks of a file are being uploaded simultaneously.\n */\n @Prop() parallelChunkUploads: boolean = false;\n\n /**\n * Whether a chunk should be retried if it fails.\n */\n @Prop() retryChunks: boolean = false;\n\n /**\n * If `retryChunks` is true, how many times should it be retried.\n */\n @Prop() retryChunksLimit: number = 3;\n\n /**\n * The base that is used to calculate the **displayed** filesize. You can\n * change this to 1024 if you would rather display kibibytes, mebibytes,\n * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte`\n * not `1 kilobyte`. You can change this to `1024` if you don't care about\n * validity.\n */\n @Prop() filesizeBase: number = 1024;\n\n /**\n * An optional object to send additional headers to the server. Eg:\n * `{ \"My-Awesome-Header\": \"header value\" }`\n *\n * Can also be set as function returning the headers object dynamically.\n * If you want to use an async function, use \"headersAsync\" prop.\n */\n @Prop() headers: object | ((Dropzone: any) => { [key: string]: string }) | null = null;\n\n /**\n * An optional function providing headers asynchronously. If you use that,\n * it will automatically set 'autoProcessQueue' to 'false'.\n * The component will still automatically process the queue, but in a different\n * way (workaround since dropzone not supporting async headers).\n */\n @Prop() headersAsync: (() => Promise<{ [key: string]: string }>) | null = null;\n\n /**\n * Should the default headers be set or not?\n * Accept: application/json <- for requesting json response\n * Cache-Control: no-cache <- Request shouldnt be cached\n * X-Requested-With: XMLHttpRequest <- We sent the request via XMLHttpRequest\n */\n @Prop() defaultHeaders: boolean = true;\n\n /**\n * Whether it is possible to upload files with identical names.\n */\n @Prop() preventDuplicateFileNames: boolean = false;\n\n /**\n * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n * and a `done` function as parameters.\n *\n * If the done function is invoked without arguments, the file is \"accepted\" and will\n * be processed. If you pass an error message, the file is rejected, and the error\n * message will be displayed.\n * This function will not be called if the file is too big or doesn't match the mime types.\n */\n @Prop() accept: Function = function (_file, done) {\n return done();\n };\n\n /**\n * The callback that will be invoked when all chunks have been uploaded for a file.\n * It gets the file for which the chunks have been uploaded as the first parameter,\n * and the `done` function as second. `done()` needs to be invoked when everything\n * needed to finish the upload process is done.\n */\n @Prop() chunksUploaded: Function = function (_file, done) {\n done();\n };\n\n /**\n * This is the element the hidden input field (which is used when clicking on the\n * dropzone to trigger file selection) will be appended to. This might\n * be important in case you use frameworks to switch the content of your page.\n *\n * Can be a selector string, or an element directly. Will be rendered into element by default.\n */\n @Prop() hiddenInputContainer: string | HTMLElement;\n\n /**\n * Prevent clearing hidden input after adding a new file\n * (set true if you use stzh-upload inside a native multipart form with POST method).\n */\n @Prop() preventHiddenInputClear: boolean = false;\n\n /** Translation strings. */\n @Prop() localization: StzhUploadLocalizedText;\n\n @State() environment: StzhEnvironmentEnum | undefined;\n @State() totalFileSize: number = 0;\n @State() duplicateDetected: boolean = false;\n @State() totalTooBig: boolean = false;\n @State() totalTooBigMessageHeading: string = \"\";\n @State() totalTooBigMessageBody: string = \"\";\n @State() totalTooBigMessageBody2: string = \"\";\n @State() totalFilesState: Array<any> = [];\n @State() duplicateFileName: string = \"\";\n @State() duplicateFileSize: string = \"\";\n\n @Element() uploadEl: HTMLStzhUploadElement;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.uploadEl)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Watch(\"name\")\n nameWatcher(newValue: string) {\n const input = this.hiddenInputContainerElement?.querySelector(\"input\");\n\n if (input) {\n input.setAttribute(\"name\", newValue);\n }\n this.dropzone.options.paramName = newValue;\n }\n\n @Watch(\"maxFiles\")\n maxFilesWatcher(newMaxFiles: number | null) {\n this.dropzone.options.maxFiles = newMaxFiles;\n }\n\n @Watch(\"maxFilesize\")\n maxFilesizeWatcher(newMaxFilesize: number) {\n this.dropzone.options.maxFilesize = newMaxFilesize;\n }\n\n @Watch(\"acceptedFiles\")\n acceptedFilesWatcher(newAcceptedFiles: string) {\n if (newAcceptedFiles === undefined || newAcceptedFiles === null || newAcceptedFiles === \"\") {\n this.dropzone.options.acceptedFiles = ACCEPTED_FILES_DEFAULT;\n } else {\n this.dropzone.options.acceptedFiles = newAcceptedFiles;\n }\n }\n\n @Watch(\"existingFiles\")\n existingFilesWatcher(newValue: StzhUploadFilesItem[] | string) {\n if (typeof newValue === \"string\") {\n this._existingFiles = JSON.parse(newValue);\n } else {\n this._existingFiles = newValue;\n }\n }\n\n @Watch(\"disabled\")\n disabledWatcher() {\n if (!this.dropzone) {\n return;\n }\n\n if (this.disabled) {\n this.dropzone.disable();\n } else {\n this.dropzone.enable();\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 /** File added */\n @Event() stzhFileAdded: EventEmitter<StzhUploadFileAddedEvent>;\n\n /** Files added (multiple) */\n @Event() stzhFilesAdded: EventEmitter<StzhUploadFilesAddedEvent>;\n\n /** File remove (before, cancelable) */\n @Event() stzhFileRemove: EventEmitter<StzhUploadFileRemoveEvent>;\n\n /** File removed */\n @Event() stzhFileRemoved: EventEmitter<StzhUploadFileRemovedEvent>;\n\n /** Before sending file (add additional data before request if necessary) */\n @Event() stzhSending: EventEmitter<StzhUploadSendingEvent>;\n\n /** Before sending multiple files (add additional data before request if necessary) */\n @Event() stzhSendingMultiple: EventEmitter<StzhUploadSendingMultipleEvent>;\n\n /** Files starting to get processed */\n @Event() stzhProcessing: EventEmitter<StzhUploadProcessingEvent>;\n\n /** Files starting to get processed (multiple) */\n @Event() stzhProcessingMultiple: EventEmitter<StzhUploadProcessingMultipleEvent>;\n\n /** Upload file progress during upload */\n @Event() stzhProgress: EventEmitter<StzhUploadProgressEvent>;\n\n /** Upload total file progress during upload */\n @Event() stzhProgressTotal: EventEmitter<StzhUploadProgressTotalEvent>;\n\n /** File error */\n @Event() stzhError: EventEmitter<StzhUploadErrorEvent>;\n\n /** Files error (multiple files) */\n @Event() stzhErrorMultiple: EventEmitter<StzhUploadErrorMultipleEvent>;\n\n /** File successfully uploaded */\n @Event() stzhSuccess: EventEmitter<StzhUploadSuccessEvent>;\n\n /** Files successfully uploaded (multiple files) */\n @Event() stzhSuccessMultiple: EventEmitter<StzhUploadSuccessMultipleEvent>;\n\n /** Canceled file upload */\n @Event() stzhCanceled: EventEmitter<StzhUploadCanceledEvent>;\n\n /** Canceled file upload (multiple files) */\n @Event() stzhCanceledMultiple: EventEmitter<StzhUploadCanceledMultipleEvent>;\n\n /** Completed upload (successfully or with error) */\n @Event() stzhComplete: EventEmitter<StzhUploadCompleteEvent>;\n\n /** Completed upload (successfully or with error, multiple files) */\n @Event() stzhCompleteMultiple: EventEmitter<StzhUploadCompleteMultipleEvent>;\n\n /** Sets the focus on the choose file button, when stzh-upload is focused. */\n @Method()\n async setFocus(options?: FocusOptions & { deep?: boolean }) {\n document.querySelector('stzh-flyingfocus')?.activate();\n this.uploadEl.focus(options);\n if (this.chooseFileButtonEl && (options as any)?.deep !== false) {\n this.chooseFileButtonEl.focus(options);\n }\n }\n\n @Method()\n async processQueue() {\n return this.dropzone.processQueue();\n }\n\n @Method()\n async removeFile(file, force = false) {\n return this.dropzone.removeFile(file, force);\n }\n\n @Method()\n async removeAllFiles(cancelIfNecessary = false, force = false) {\n return this.dropzone.removeAllFiles(cancelIfNecessary, force);\n }\n\n private dropzone: any;\n private dropzoneElement: HTMLElement;\n private chooseFileButtonEl: HTMLStzhButtonElement;\n private clickareaElement: HTMLElement;\n private previewsElement: HTMLElement;\n private errorsElement: HTMLElement;\n private hiddenInputContainerElement: HTMLElement;\n private uploadId: string;\n\n /** a11y description for the 2 buttons (choose file and photograph) */\n private get a11yDescribedby(): string {\n return [\n `${this.uploadId}-label`,\n `${this.uploadId}-instruction`,\n `${this.uploadId}-description`\n ].join(' ')\n }\n\n /* Photographing */\n private photographingOverlayElement: HTMLStzhDialogElement;\n private photographingQrcodeElement: HTMLCanvasElement;\n private PHOTOGRAPHING_BASE_URL = \"/appl/mobiscan/rs\";\n private PHOTOGRAPHING_ENDPOINTS = {\n PING: \"/ping\",\n URL: \"/url\",\n IMAGE: \"/image\",\n CONFIG: \"/config\",\n AUTH: \"/auth\",\n };\n @State() isPhotographingAvailable: boolean = false;\n @State() photographingUrlDetails: StzhPhotographingUrlDetailsDto | undefined;\n @State() photographingHost: string;\n @State() photographingConfig: StzhPhotographingConfigurationDto | undefined;\n @State() photographingWebsocket: WebSocket | undefined;\n @State() photographingToken: { access_token: string; expires_in: number } | undefined;\n @State() hiddenInputFiles: File[] = [];\n\n private handleReset = () => {\n this.removeAllFiles(true);\n };\n\n private cleanLabel(input) {\n if (input === \"\" || input === undefined) {\n input = this.localization.photographingLabelDefault;\n }\n let cleanStr: string = input.replaceAll(\"/\", \"-\");\n // @ts-ignore\n return encodeURIComponent(cleanStr.replaceAll(\"%\", \"\"));\n }\n\n private async getToken() {\n if (\n this.photographingToken &&\n this.photographingToken.access_token &&\n Date.now() < this.photographingToken.expires_in\n ) {\n return this.photographingToken;\n } else {\n return await this.requestPhotographingToken();\n }\n }\n\n private async requestPhotographingToken() {\n try {\n const response = await fetch(\n `${this.photographingHost}${this.PHOTOGRAPHING_BASE_URL}${this.PHOTOGRAPHING_ENDPOINTS.AUTH}`,\n );\n if (!response.ok) {\n throw new Error(\"Token retrieval failed\");\n }\n const parsedResponse = await response.json();\n this.photographingToken = {\n access_token: parsedResponse.access_token,\n expires_in: Date.now() + parsedResponse.expires_in * 1000,\n };\n return this.photographingToken;\n } catch (error) {\n console.error(\"Token retrieval failed\", error);\n throw new Error(\"Token retrieval failed\");\n }\n }\n\n private async initializePhotographingWithEnvironment(environment: StzhEnvironmentEnum) {\n this.photographingHost = this.getPhotographingHostForEnvironment(environment);\n await this.setPhotographingConfig();\n // if (this.photographingConfig) {\n if (this.photographingConfig && this.photographingEnabled === true) {\n await this.checkPhotographingAvailability();\n }\n }\n\n private async startPhotographingUserSession() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.URL}`,\n await this.getPhotographingHttpOptionsWithToken(),\n );\n if (!response.ok) {\n // Nothing to do here. Just don't show the photographing button.\n } else {\n const url: StzhPhotographingUrlDetailsDto = await response.json();\n const urlObject = new URL(url.url);\n const params = new URLSearchParams(urlObject.search);\n this.photographingUrlDetails = {\n url: url.url,\n userId: params.get(\"id\"),\n label: this.cleanLabel(this.label),\n };\n try {\n await QRCode.toCanvas(this.photographingQrcodeElement, url.url + \"&label=\" + this.cleanLabel(this.label));\n } catch (error) {\n console.error(\"Error generating QR code:\", error);\n }\n await this.establishPhotographingWebsocketConnection();\n }\n } catch (startPhotographingUserSessionException) {\n console.error(\n `StzhUpload.startPhotographingUserSession() - startPhotographingUserSessionException:`,\n startPhotographingUserSessionException,\n );\n }\n }\n\n private async retrievePhotographingPdf() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.IMAGE}/retrieve-pdf?id=${this.photographingUrlDetails.userId}&label=${this.cleanLabel(this.label)}`,\n await this.getPhotographingHttpOptionsWithToken(),\n );\n if (!response.ok) {\n console.error(`StzhUpload.retrievePhotographingPdf() - HTTP error! status: ${response.status}`);\n } else {\n const parsedResponse: StzhPhotographingPdfFileDto = await response.json();\n const file = await this.fetchFile(parsedResponse.downloadLink);\n this.dropzone.addFile(file);\n await this.closePhotographingOverlay();\n }\n } catch (retrievePhotographingPdfException) {\n console.error(\n `StzhUpload.retrievePhotographingPdf() - retrievePhotographingPdfException:`,\n retrievePhotographingPdfException,\n );\n }\n }\n\n private async fetchFile(url) {\n const response = await fetch(url);\n const blob = await response.blob();\n const fileName = url.split(\"/\").pop();\n const cleanFileName: string = decodeURIComponent(fileName.split(\"?\")[0]);\n if (blob.type === \"application/octet-stream\") {\n return new File([blob], cleanFileName, { type: \"application/pdf\" });\n }\n return new File([blob], cleanFileName, { type: blob.type });\n }\n\n private async establishPhotographingWebsocketConnection() {\n this.photographingWebsocket = new WebSocket(\n `${this.photographingConfig.wsClientUrl}${this.photographingUrlDetails.userId}`,\n [\"chat\", (await this.getToken()).access_token],\n );\n\n this.photographingWebsocket.onopen = () => {\n setInterval(() => {\n this.sendPhotographingWebsocketMessage(\"Ping\");\n }, 20000);\n };\n\n this.photographingWebsocket.onmessage = async event => {\n const message = event.data;\n\n if (message === \"retrievePdf\") {\n await this.retrievePhotographingPdf();\n }\n };\n\n this.photographingWebsocket.onerror = error => {\n console.error(\"WebSocket error: \", error);\n };\n }\n\n private closePhotographingWebsocketConnection = () => {\n this.photographingWebsocket?.close();\n };\n\n private sendPhotographingWebsocketMessage(message: any) {\n this.photographingWebsocket.send(message);\n }\n\n private async getPhotographingHttpOptionsWithToken() {\n const token = await this.getToken();\n return {\n headers: {\n Authorization: `Bearer ${token.access_token}`,\n },\n };\n }\n\n private async checkPhotographingAvailability() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.PING}`,\n await this.getPhotographingHttpOptionsWithToken(),\n );\n if (!response.ok) {\n console.error(`StzhUpload.isAvailable() - HTTP error! status: ${response.status}`);\n this.isPhotographingAvailable = false;\n } else {\n this.isPhotographingAvailable = true;\n }\n } catch (isAvailableException) {\n console.error(`StzhUpload.isAvailable() - isAvailableException:`, isAvailableException);\n this.isPhotographingAvailable = false;\n }\n }\n\n private async setPhotographingConfig() {\n try {\n const response = await fetch(\n `${this.photographingHost}${this.PHOTOGRAPHING_BASE_URL}${this.PHOTOGRAPHING_ENDPOINTS.CONFIG}`,\n );\n if (!response.ok) {\n console.error(`StzhUpload.setPhotographingConfig() - HTTP error! status: ${response.status}`);\n } else {\n this.photographingConfig = await response.json();\n }\n } catch (getConfigException) {\n console.error(`StzhUpload.setPhotographingConfig() - getConfigException:`, getConfigException);\n }\n }\n\n private getPhotographingHostForEnvironment(environment: \"DEV\" | \"UAT\" | \"PROD\" | \"UNKNOWN\") {\n switch (environment) {\n case \"DEV\":\n return \"https://www.test.stadt-zuerich.loc\";\n case \"UAT\":\n return \"https://www.integ.stadt-zuerich.ch\";\n case \"PROD\":\n return \"https://www.stadt-zuerich.ch\";\n case \"UNKNOWN\":\n this.PHOTOGRAPHING_BASE_URL = `/stzh-components/assets/mock${this.PHOTOGRAPHING_BASE_URL}`;\n return `${window.location.origin}`;\n }\n }\n\n private onButtonScanClick = event => {\n event.preventDefault();\n event.stopPropagation();\n this.photographingOverlayElement.show().then();\n if (this.isPhotographingAvailable) {\n this.startPhotographingUserSession()\n .then()\n .catch(photographingUserSessionException => {\n console.error(\"photographingUserSessionException\", photographingUserSessionException);\n });\n }\n };\n\n private closePhotographingOverlay = async () => {\n this.photographingOverlayElement.hide().catch();\n };\n\n private filesize = function (size) {\n let selectedSize = 0;\n let selectedUnit = \"b\";\n\n if (size > 0) {\n let units = [\"tb\", \"gb\", \"mb\", \"kb\", \"b\"];\n\n for (let i = 0; i < units.length; i++) {\n let unit = units[i];\n let cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n if (size >= cutoff) {\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n selectedUnit = unit;\n break;\n }\n }\n\n selectedSize = Math.round(selectedSize * 100) / 100; // Cutting of digits\n }\n\n return `<strong>${selectedSize}</strong> ${this.options.dictFileSizeUnits[selectedUnit]}`;\n };\n\n private filePreviewId = function (file): string {\n return `${this.uploadId}-${file._id}`;\n };\n\n private removeFileFromState(file: StzhUploadFile) {\n this.totalFilesState = this.totalFilesState.filter(f => f._id !== file._id);\n\n // remove from hiddenInputFiles, falls relevant\n if (this.preventHiddenInputClear) {\n this.hiddenInputFiles = this.hiddenInputFiles.filter(trackedFile => trackedFile.name !== file.name);\n // Aktualisiere das hidden file input Feld:\n const hiddenFileInput = this.hiddenInputContainerElement?.querySelector(\"input\");\n if (hiddenFileInput) {\n const dataTransfer = new DataTransfer();\n this.hiddenInputFiles.forEach(trackedFile => {\n dataTransfer.items.add(trackedFile);\n });\n hiddenFileInput.files = dataTransfer.files;\n }\n }\n }\n\n async componentWillLoad() {\n this.uploadId = `stzh-upload-${uploadCounter++}`;\n\n this.existingFilesWatcher(this.existingFiles);\n this.errorWatcher(this.error);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.uploadEl, \"upload\");\n }\n\n this.environment = getStzhEnvironment();\n if (this.photographingEnabled) {\n this.initializePhotographingWithEnvironment(this.environment).catch(\n initializePhotographingWithEnvironmentException => {\n console.error(\n \"initializePhotographingWithEnvironmentException\",\n initializePhotographingWithEnvironmentException,\n );\n },\n );\n }\n }\n\n private toggleToast(message: string, type: StzhToastType) {\n if (!this.disableToasts) {\n document.querySelector(\"stzh-upload\").querySelector(\"stzh-toastbar\").toast(message, {\n type: type,\n });\n }\n }\n\n componentDidRender() {\n if (this.dropzone) {\n return;\n }\n\n const self = this;\n\n function enableDownload(file) {\n let fileHref = file.url || \"\";\n\n if (file.upload) {\n fileHref = URL.createObjectURL(file);\n }\n\n if (fileHref) {\n for (var node of file.previewElement.querySelectorAll(`[${ATTR_LINK}]`)) {\n node.setAttribute(\"href\", fileHref);\n node.setAttribute(\"download\", file.name);\n\n const isStzh = isStzhElement(node);\n const fileId = self.filePreviewId(file);\n\n node.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", `${self.localization.downloadFile} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", `${self.localization.downloadFile} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-describedby\" : \"aria-describedby\", `${fileId}-error-message ${fileId}-meta`);\n }\n }\n }\n\n async function prepareRemovalTransition(id: string): Promise<void> {\n const wrapper: HTMLElement = document.getElementById(id);\n if (wrapper) {\n wrapper.classList.add(\"stzh-upload__fade-out\");\n }\n }\n\n async function removeFileByClick(id: string): Promise<void> {\n const wrapper: HTMLElement = document.getElementById(id);\n if (wrapper) {\n const button: HTMLElement = wrapper.querySelector(\".stzh-button\");\n if (button) {\n button.click();\n }\n }\n }\n\n if (this.headersAsync !== null) {\n this.autoProcessQueue = false;\n }\n\n this.dropzone = new window.Dropzone(this.dropzoneElement, {\n accept: this.accept,\n acceptedFiles: this.acceptedFiles,\n autoProcessQueue: this.autoProcessQueue,\n chunking: this.chunking,\n chunkSize: this.chunkSize,\n chunksUploaded: this.chunksUploaded,\n clickable: [this.clickareaElement],\n createImageThumbnails: false,\n defaultHeaders: this.defaultHeaders,\n defaultLabel: this.localization.photographingLabelDefault,\n dictCancelUpload: this.localization.cancelUpload,\n dictCancelUploadConfirmation: this.localization.cancelUploadConfirmation,\n dictDeleteFile: this.localization.deleteFile,\n dictFileSizeUnits: { tb: \"TiB\", gb: \"GiB\", mb: \"MiB\", kb: \"KiB\", b: \"b\" },\n dictFileTooBig: this.localization.fileTooBig,\n dictInvalidFileType: this.localization.invalidFileType,\n dictMaxFilesExceeded: this.localization.maxFilesExceeded,\n dictRemoveFile: this.localization.removeFile,\n dictRemoveFileConfirmation: null,\n dictResponseError: this.localization.responseError,\n dictUploadCanceled: this.localization.uploadCanceled,\n duplicateFileName: this.duplicateFileName,\n duplicateFileSize: this.duplicateFileSize,\n duplicateFileUploadHeading: this.localization.duplicateFileUploadHeading,\n duplicateFileUploadParagraph: this.localization.duplicateFileUploadParagraph,\n filesize: this.filesize,\n filesizeBase: this.filesizeBase,\n forceChunking: this.forceChunking,\n headers: this.headers,\n hiddenInputContainer: this.hiddenInputContainer ? this.hiddenInputContainer : this.hiddenInputContainerElement,\n maxFiles: this.maxFiles,\n maxFilesize: this.maxFilesize,\n method: this.method,\n parallelChunkUploads: this.parallelChunkUploads,\n parallelUploads: this.parallelUploads,\n preventDuplicateFileNames: this.preventDuplicateFileNames,\n preventHiddenInputClear: this.preventHiddenInputClear,\n previewsContainer: this.previewsElement,\n retryChunks: this.retryChunks,\n retryChunksLimit: this.retryChunksLimit,\n totalFilesState: this.totalFilesState,\n uploadMultiple: this.uploadMultiple,\n url: this.url,\n withCredentials: this.withCredentials,\n // Called when a file is dropped to the dropzone\n // Receives `event`\n drop: e => {\n // Preserve files in hidden input when preventHiddenInputClear is true\n if (this.preventHiddenInputClear) {\n const hiddenFileInput = this.hiddenInputContainerElement?.querySelector(\"input\");\n const dataTransfer = new DataTransfer();\n for (let i = 0; i < hiddenFileInput.files.length; i++) {\n dataTransfer.items.add(hiddenFileInput.files[i]);\n }\n for (const file of e.dataTransfer.files) {\n dataTransfer.items.add(file);\n }\n hiddenFileInput.files = dataTransfer.files;\n }\n return this.uploadEl.classList.remove(\"dz-drag-hover\");\n },\n\n // Called when a file is added to the queue\n // Receives `file`\n // Taken from https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L594\n async addedfile(file) {\n file._id = previewCounter++;\n\n self.totalFilesState.push(...self.totalFilesState, file);\n\n // Preserve files in hidden input when preventHiddenInputClear is true\n if (self.preventHiddenInputClear) {\n const hiddenFileInput = self.hiddenInputContainerElement?.querySelector(\"input\");\n\n if (hiddenFileInput) {\n let fileAlreadyExists = false;\n\n if (file instanceof File) {\n fileAlreadyExists = self.hiddenInputFiles.some(\n existingFile => existingFile.name === file.name && existingFile.size === file.size,\n );\n\n if (!fileAlreadyExists) {\n self.hiddenInputFiles.push(file);\n }\n }\n\n if (self.hiddenInputFiles.length > 0) {\n const dataTransfer = new DataTransfer();\n\n self.hiddenInputFiles.forEach(trackedFile => {\n dataTransfer.items.add(trackedFile);\n });\n\n hiddenFileInput.files = dataTransfer.files;\n }\n }\n }\n\n if (self.preventDuplicateFileNames) {\n if (self.totalFilesState.length > 0) {\n self.duplicateDetected = false; // reset\n self.totalFilesState.forEach(f => {\n if (file.name === f.name && file._id !== f._id) {\n self.duplicateDetected = true;\n self.duplicateFileName = file.name;\n self.duplicateFileSize = (file.size / (1024 * 1024)).toFixed(2) + \" MiB\";\n setTimeout(prepareRemovalTransition, 10, \"_\" + file._id);\n setTimeout(removeFileByClick, 2000, \"_\" + file._id);\n }\n });\n }\n }\n\n if (this.element === this.previewsContainer) {\n this.element.classList.add(\"dz-started\");\n }\n\n const fileSizeInMiB = file.size / (1024 * 1024);\n\n if (self.totalFileSize + fileSizeInMiB > self.maxFilesizeTotal) {\n self.totalTooBig = true;\n self.totalTooBigMessageHeading = self.localization.uploadFailed;\n self.totalTooBigMessageBody = self.localization.fileTooBigTotal.replace(\n \"{{totalFilesize}}\",\n `${(self.totalFileSize + fileSizeInMiB).toFixed(1)}`,\n );\n self.totalTooBigMessageBody2 = self.localization.fileTooBigTotal2.replace(\n \"{{maxFilesizeTotal}}\",\n `${self.maxFilesizeTotal}`,\n );\n\n self.totalFilesState = self.totalFilesState.filter(f => f.name !== file.name);\n return;\n } else {\n self.totalTooBig = false;\n }\n\n self.totalFileSize += fileSizeInMiB;\n\n if (this.previewsContainer && !this.options.disablePreviews) {\n file.previewElement = window.Dropzone.createElement(this.options.previewTemplate.trim());\n file.previewElement.setAttribute(\"id\", \"_\" + file._id);\n file.previewTemplate = file.previewElement; // Backwards compatibility\n this.previewsContainer.appendChild(file.previewElement);\n\n if (!file.size) {\n file.previewElement.classList.add(\"dz-empty\");\n }\n\n for (var node of file.previewElement.querySelectorAll(`[${ATTR_NAME}]`)) {\n node.textContent = file.name;\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_SIZE}]`)) {\n node.innerHTML = self.filesize.call(this, file.size);\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_META_ID}]`)) {\n node.setAttribute(\"id\", `${self.filePreviewId(file)}-meta`);\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_ERROR_MESSAGE_ID}]`)) {\n node.setAttribute(\"id\", `${self.filePreviewId(file)}-error-message`);\n }\n\n if (this.options.addRemoveLinks) {\n file._removeLink = window.Dropzone.createElement(\n `<a class=\"dz-remove\" href=\"javascript:undefined;\" ${ATTR_REMOVE}>\n ${this.options.dictRemoveFile}\n </a>`,\n );\n file.previewElement.appendChild(file._removeLink);\n }\n\n let removeFileEvent = e => {\n e.preventDefault();\n e.stopPropagation();\n if (file.status === window.Dropzone.UPLOADING) {\n return window.Dropzone.confirm(this.options.dictCancelUploadConfirmation, () => this.removeFile(file));\n } else {\n if (this.options.dictRemoveFileConfirmation) {\n return window.Dropzone.confirm(this.options.dictRemoveFileConfirmation, () => this.removeFile(file));\n } else {\n return this.removeFile(file);\n }\n }\n };\n\n for (let removeLink of file.previewElement.querySelectorAll(`[${ATTR_REMOVE}]`)) {\n removeLink.addEventListener(\"click\", removeFileEvent);\n\n const isStzh = isStzhElement(removeLink);\n const fileId = self.filePreviewId(file);\n\n removeLink.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", `${this.options.dictRemoveFile}`);\n removeLink.setAttribute(\n isStzh ? \"a11y-label\" : \"aria-label\",\n `${this.options.dictRemoveFile} ${file.name}`,\n );\n removeLink.setAttribute(\n isStzh ? \"a11y-describedby\" : \"aria-describedby\",\n `${fileId}-error-message ${fileId}-meta`,\n );\n }\n\n if (!self.downloadDisabled && !self.downloadDisabledWhileProcessing) {\n enableDownload(file);\n }\n }\n\n // Support async headers.\n if (self.headersAsync !== null) {\n self.dropzone.options.headers = await self.headersAsync();\n self.dropzone.processQueue();\n }\n },\n\n // When the upload is finished, either with success or an error.\n // Taken from https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L752\n complete(file) {\n for (let node of file.previewElement.querySelectorAll(`[${ATTR_REMOVE}]`)) {\n const hasErrorState = file.status === \"error\";\n const removeOrDeleteLabel = hasErrorState ? this.options.dictRemoveFile : this.options.dictDeleteFile;\n const isStzh = isStzhElement(node);\n const fileId = self.filePreviewId(file);\n\n node.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", `${removeOrDeleteLabel} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-describedby\" : \"aria-describedby\", `${fileId}-error-message ${fileId}-meta`);\n }\n\n // move file uploads with errors to another element, so they are grouped together\n if (file.status === \"error\") {\n self.errorsElement.appendChild(file.previewElement);\n } else if (!self.downloadDisabled && self.downloadDisabledWhileProcessing) {\n enableDownload(file);\n }\n\n if (file._removeLink) {\n file._removeLink.innerHTML = this.options.dictRemoveFile;\n }\n\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-complete\");\n }\n },\n\n // Called whenever a file is removed.\n // Taken fom https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L649\n removedfile(file) {\n if (file.previewElement != null && file.previewElement.parentNode != null) {\n file.previewElement.parentNode.removeChild(file.previewElement);\n }\n\n const fileSizeInMiB = file.size / (1024 * 1024);\n self.totalFileSize -= fileSizeInMiB;\n\n // set focus to upload\n self.chooseFileButtonEl.focus();\n return this._updateMaxFilesReachedClass();\n },\n error(file, message, xhr) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-error\");\n\n if (typeof message !== \"string\" && message.error) {\n message = message.error;\n } else if (xhr) {\n if (xhr.status === 401 || xhr.status === 403) {\n message = self.localization.accessError;\n } else if (xhr.status === 413) {\n message = self.localization.fileTooBigServer;\n } else if (xhr.status === 415) {\n message = self.localization.invalidFileType;\n } else if (xhr.status >= 500) {\n message = self.localization.serverError;\n } else {\n const defaultError = self.localization.responseError.replace(\"{{statusCode}}\", xhr.status);\n\n message = defaultError;\n }\n }\n\n for (let node of file.previewElement.querySelectorAll(\"[data-dz-errormessage]\")) {\n node.textContent = message;\n }\n }\n },\n previewTemplate: `\n <div class=\"stzh-upload__preview\">\n <div class=\"stzh-upload__image\">\n <img data-dz-thumbnail />\n </div>\n\n <div class=\"stzh-upload__details\">\n <div class=\"stzh-upload__info-wrapper\">\n <div class=\"stzh-upload__info-wrapper-processing\">\n <div class=\"stzh-upload__infos\">\n <div class=\"stzh-upload__subtitle\">\n <a class=\"stzh-upload__link\" ${ATTR_NAME} ${ATTR_LINK}></a>\n </div>\n <div class=\"stzh-upload__progress-text\">\n <span ${ATTR_PROGRESS_TEXT}></span>\n </div>\n </div>\n <div class=\"stzh-upload__meta\">\n <span class=\"stzh-upload__extension\" ${ATTR_EXTENSION}></span>\n <span class=\"stzh-upload__separator\"></span>\n <span class=\"stzh-upload__size\" ${ATTR_SIZE}></span>\n </div>\n <div class=\"stzh-upload__progress\">\n <span class=\"stzh-upload__progress-bar\" data-dz-uploadprogress></span>\n </div>\n </div>\n <div class=\"stzh-upload__info-wrapper-complete\">\n <div class=\"stzh-upload__title\">\n <a class=\"stzh-upload__link\" ${ATTR_NAME} ${ATTR_LINK}></a>\n </div>\n <div class=\"stzh-upload__meta\" ${ATTR_META_ID}>\n <span class=\"stzh-upload__extension\" ${ATTR_EXTENSION}></span>\n <span class=\"stzh-upload__separator\"></span>\n <span class=\"stzh-upload__size\" ${ATTR_SIZE}></span>\n </div>\n <div class=\"stzh-upload__error-message\" ${ATTR_ERROR_MESSAGE_ID}>\n <span data-dz-errormessage></span>\n </div>\n </div>\n </div>\n <div class=\"stzh-upload__actions\">\n <!-- <stzh-button variant=\"tertiary\" size=\"small\" icon-only icon=\"download\" class=\"stzh-upload__download\" ${ATTR_LINK}></stzh-button> -->\n <stzh-button variant=\"tertiary\" size=\"small\" icon-only class=\"stzh-upload__delete\" ${ATTR_REMOVE}>\n <stzh-icon slot=\"icon\" class=\"stzh-upload__delete-icon\" name=\"delete\"></stzh-icon>\n <stzh-icon slot=\"icon\" class=\"stzh-upload__delete-icon-error\" name=\"close\"></stzh-icon>\n </stzh-button>\n </div>\n </div>\n </div>\n </div>\n `,\n });\n\n this.nameWatcher(this.name);\n this.disabledWatcher();\n\n this.dropzone.on(\"addedfile\", (file: StzhUploadFile) =>\n this.stzhFileAdded.emit({\n component: \"stzh-upload\",\n file,\n }),\n );\n\n this.dropzone.on(\"addedfiles\", (files: StzhUploadFile[]) =>\n this.stzhFilesAdded.emit({\n component: \"stzh-upload\",\n files,\n }),\n );\n\n this.dropzone.on(\"removefile\", (file: StzhUploadFile) => {\n this.removeFileFromState(file);\n\n return (\n this.stzhFileRemove.emit({\n component: \"stzh-upload\",\n file,\n }).defaultPrevented === false\n );\n });\n\n this.dropzone.on(\"removedfile\", (file: StzhUploadFile, force: boolean) =>\n this.stzhFileRemoved.emit({\n component: \"stzh-upload\",\n file,\n force,\n }),\n );\n\n this.dropzone.on(\"sending\", (file: StzhUploadFile, xhr: XMLHttpRequest, formData: FormData) =>\n this.stzhSending.emit({\n component: \"stzh-upload\",\n file,\n xhr,\n formData,\n }),\n );\n\n this.dropzone.on(\"sendingmultiple\", (files: StzhUploadFile[], xhr: XMLHttpRequest, formData: FormData) =>\n this.stzhSendingMultiple.emit({\n component: \"stzh-upload\",\n files,\n xhr,\n formData,\n }),\n );\n\n this.dropzone.on(\"processing\", (file: StzhUploadFile) =>\n this.stzhProcessing.emit({\n component: \"stzh-upload\",\n file,\n }),\n );\n\n this.dropzone.on(\"processingmultiple\", (files: StzhUploadFile[]) =>\n this.stzhProcessingMultiple.emit({\n component: \"stzh-upload\",\n files,\n }),\n );\n\n this.dropzone.on(\"uploadprogress\", (file: StzhUploadFile, progress: number, bytesSent: number) =>\n this.stzhProgress.emit({\n component: \"stzh-upload\",\n file,\n progress,\n bytesSent,\n }),\n );\n\n this.dropzone.on(\"totaluploadprogress\", (totalUploadProgress: number, totalBytes: number, totalBytesSent: number) =>\n this.stzhProgressTotal.emit({\n component: \"stzh-upload\",\n totalUploadProgress,\n totalBytes,\n totalBytesSent,\n }),\n );\n\n this.dropzone.on(\"error\", (file: StzhUploadFile, message: string, xhr: XMLHttpRequest) => {\n if (xhr && xhr.status >= 400) {\n this.toggleToast(this.localization.uploadErrorToast, \"error\");\n }\n this.stzhError.emit({\n component: \"stzh-upload\",\n file,\n message,\n xhr,\n });\n });\n\n this.dropzone.on(\"errormultiple\", (files: StzhUploadFile[], message: string, xhr: XMLHttpRequest) => {\n if (xhr && xhr.status >= 400) {\n this.toggleToast(this.localization.uploadErrorToast, \"error\");\n }\n this.stzhErrorMultiple.emit({\n component: \"stzh-upload\",\n files,\n message,\n xhr,\n });\n });\n\n this.dropzone.on(\"success\", (file: StzhUploadFile, responseText: string, event: ProgressEvent) => {\n this.toggleToast(this.localization.uploadSuccessToast, \"success\");\n this.stzhSuccess.emit({\n component: \"stzh-upload\",\n file,\n responseText,\n event,\n });\n });\n\n this.dropzone.on(\"successmultiple\", (files: StzhUploadFile[], responseText: string, event: ProgressEvent) => {\n this.toggleToast(this.localization.uploadSuccessToast, \"success\");\n this.stzhSuccessMultiple.emit({\n component: \"stzh-upload\",\n files,\n responseText,\n event,\n });\n });\n\n this.dropzone.on(\"canceled\", (file: StzhUploadFile) =>\n this.stzhCanceled.emit({\n component: \"stzh-upload\",\n file,\n }),\n );\n\n this.dropzone.on(\"canceledmultiple\", (files: StzhUploadFile[]) =>\n this.stzhCanceledMultiple.emit({\n component: \"stzh-upload\",\n files,\n }),\n );\n\n this.dropzone.on(\"complete\", (file: StzhUploadFile) =>\n this.stzhComplete.emit({\n component: \"stzh-upload\",\n file,\n }),\n );\n\n this.dropzone.on(\"completemultiple\", (files: StzhUploadFile[]) =>\n this.stzhCompleteMultiple.emit({\n component: \"stzh-upload\",\n files,\n }),\n );\n\n this.dropzone.on(\"addedfile\", (file: StzhUploadFile) => {\n file.previewElement.querySelectorAll(`[${ATTR_NAME}]`).forEach((name: HTMLElement) => {\n name.setAttribute(\"title\", file.name);\n });\n\n file.previewElement.querySelectorAll(`[${ATTR_TYPE}]`).forEach((type: HTMLElement) => {\n type.innerText = file.type;\n });\n\n file.previewElement.querySelectorAll(`[${ATTR_EXTENSION}]`).forEach((extension: HTMLElement) => {\n extension.innerText = file.name.split(\".\").pop();\n });\n });\n\n this.dropzone.on(\"uploadprogress\", (file: StzhUploadFile, progress: number) => {\n file.previewElement.querySelectorAll(`[${ATTR_PROGRESS_TEXT}]`).forEach((progressText: HTMLElement) => {\n progressText.innerText = `${progress.toString()}%`;\n });\n });\n\n this._existingFiles.forEach(file => {\n this.dropzone.displayExistingFile(file, null, null, null, null);\n });\n }\n\n disconnectedCallback() {\n if (this.dropzone) {\n this.dropzone.destroy();\n this.dropzone = null;\n }\n }\n\n render() {\n const errorUsed = hasSlot(this.uploadEl, \"error\") || this._error?.length > 0;\n const classes = {\n \"stzh-upload\": true,\n \"stzh-upload--is-invalid\": this.invalid || errorUsed,\n \"stzh-upload--is-disabled\": this.disabled,\n \"stzh-upload--has-hidden-progress\": this.hideProgress,\n \"stzh-upload--has-hidden-progress-while-idle\": this.hideProgressWhileIdle,\n \"stzh-upload--has-error\": errorUsed,\n \"stzh-upload--has-instructions\": !!this.description || !!this.localization.description,\n };\n const fileRestrictionsLocalization = this.localization.description;\n const totalFileSizeLimitLocalization = this.localization.descriptionTotalFileSizeLimit;\n\n return (\n <Host\n tabindex={this.disabled ? null : \"-1\"}\n is-invalid={this.invalid || errorUsed}\n aria-invalid={(this.invalid || errorUsed) ? 'true' : 'false'}\n aria-describedby={((this.invalid || errorUsed)) ? this.error : undefined}\n role=\"group\">\n <stzh-toastbar />\n <div class={classes} ref={el => (this.dropzoneElement = el as HTMLDivElement)}>\n <div ref={el => (this.hiddenInputContainerElement = el as HTMLElement)}></div>\n\n <div id={`${this.uploadId}-label`}>{this.label && <div class=\"stzh-upload__label\">{this.label}</div>}</div>\n\n <div class=\"stzh-upload__clickarea\" ref={el => (this.clickareaElement = el as HTMLDivElement)}>\n <div class=\"stzh-upload__heading-wrapper\">\n <div class=\"stzh-upload__heading-inner-wrapper\">\n <div class=\"stzh-upload__heading\">{this.heading ? this.heading : this.localization.heading}</div>\n <div class=\"stzh-upload__buttons-wrapper\">\n <stzh-button\n id={`${this.uploadId}-button`}\n class=\"stzh-upload__button\"\n variant=\"secondary\"\n size=\"small\"\n ref={el => (this.chooseFileButtonEl = el as HTMLStzhButtonElement)}\n label={this.button ? this.button : this.localization.button}\n a11yDescribedby={this.a11yDescribedby}\n a11yControls={`${this.uploadId}-previews`}\n aria-invalid={(this.invalid || errorUsed) ? 'true' : 'false'}\n disabled={this.disabled}\n >\n <stzh-icon slot=\"icon\" name=\"upload\"></stzh-icon>\n </stzh-button>\n {this.isPhotographingAvailable && (\n <stzh-button\n onClick={this.onButtonScanClick}\n class=\"stzh-upload__button-scan\"\n variant=\"secondary\"\n size=\"small\"\n label={this.buttonScan ? this.buttonScan : this.localization.buttonScan}\n a11yDescribedby={this.a11yDescribedby}\n aria-invalid={(this.invalid || errorUsed) ? 'true' : 'false'}\n disabled={this.disabled}\n >\n <stzh-icon slot=\"icon\" name=\"camera\"></stzh-icon>\n </stzh-button>\n )}\n </div>\n <div class=\"stzh-upload__hint-wrapper\">\n <span>{this.localization.buttonIntro}</span>\n </div>\n </div>\n </div>\n <div class=\"stzh-upload__instructions\" id={`${this.uploadId}-instruction`}>\n <p>\n {this.description && (\n <span class=\"stzh-upload__instructions__description\">\n {this.description}\n <br />\n </span>\n )}\n {fileRestrictionsLocalization\n .replace(\"{{fileformats}}\", this.acceptedFiles)\n .replace(\"{{filesize}}\", `${this.maxFilesize}`)}\n <br />\n {totalFileSizeLimitLocalization.replace(\"{{maxFilesizeTotal}}\", `${this.maxFilesizeTotal}`)}\n </p>\n </div>\n </div>\n\n {errorUsed && (\n <div class=\"stzh-upload__description-wrapper\">\n <StzhInputDescription classPrefix=\"stzh-upload\" id={`${this.uploadId}-description`} error={this._error} />\n </div>\n )}\n <div id={`${this.uploadId}-previews`} class=\"stzh-upload__previews-wrapper\">\n <div class=\"stzh-upload__previews-inner-wrapper\">\n <div class=\"stzh-upload__errors\" ref={el => (this.errorsElement = el as HTMLElement)}></div>\n <div\n class=\"stzh-upload__previews dropzone-previews\"\n ref={el => (this.previewsElement = el as HTMLElement)}\n ></div>\n </div>\n </div>\n </div>\n\n {this.duplicateDetected && (\n <div class=\"stzh-upload__previews-message-wrapper\">\n <stzh-message\n type=\"error\"\n label={this.localization.duplicateFileUploadHeading}\n onStzhClose={() => (this.duplicateDetected = false)}\n >\n <stzh-text>\n <p>\n «{this.duplicateFileName}» ({this.duplicateFileSize})\n </p>\n <p>{this.localization.duplicateFileUploadParagraph}</p>\n </stzh-text>\n </stzh-message>\n </div>\n )}\n\n {this.totalTooBig && (\n <div class=\"stzh-upload__previews-message-wrapper\">\n <stzh-message\n type=\"warning\"\n label={this.totalTooBigMessageHeading}\n onStzhClose={() => (this.totalTooBig = false)}\n >\n <stzh-text>\n <p>\n {this.totalTooBigMessageBody} {this.totalTooBigMessageBody2}\n </p>\n </stzh-text>\n </stzh-message>\n </div>\n )}\n\n <stzh-dialog\n ref={el => (this.photographingOverlayElement = el as HTMLStzhDialogElement)}\n onStzhClose={this.closePhotographingWebsocketConnection}\n class={this.isPhotographingAvailable && \"stzh-dialog--fit-content\"}\n heading={this.localization.photographingTitle1}\n >\n <stzh-button\n class=\"stzh-upload-photographing__back-button\"\n icon=\"arrow-left\"\n size=\"small\"\n variant=\"tertiary-plain\"\n no-padding-left=\"true\"\n no-padding-right=\"true\"\n onClick={this.closePhotographingOverlay}\n >\n {this.localization.back}\n </stzh-button>\n {this.isPhotographingAvailable && (\n <Fragment>\n <div class=\"stzh-upload-photographing__info\">\n <div class=\"stzh-upload-photographing__text-qrcode\">\n <div class=\"stzh-upload-photographing-qrlink-container\">\n <stzh-text>{this.localization.photographingText1}</stzh-text>\n </div>\n <div class=\"stzh-upload-photographing-qrcode-container\">\n <canvas\n class=\"stzh-upload-photographing-qrcode\"\n ref={el => (this.photographingQrcodeElement = el as HTMLCanvasElement)}\n ></canvas>\n </div>\n </div>\n </div>\n <div class=\"stzh-upload-photographing__info\">\n <stzh-heading level=\"3\">{this.localization.photographingTitle2}</stzh-heading>\n <stzh-text>{this.localization.photographingText2}</stzh-text>\n </div>\n <div class=\"stzh-upload-photographing__continue\">\n {!!this.photographingUrlDetails && (\n <stzh-link\n class=\"stzh-upload-photographing-link\"\n href={this.photographingUrlDetails.url + \"&label=\" + this.cleanLabel(this.label)}\n target=\"_blank\"\n >\n {this.localization.photographingContinue}\n </stzh-link>\n )}\n </div>\n </Fragment>\n )}\n </stzh-dialog>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"stzh-upload.js","sourceRoot":"","sources":["../../../../src/components/stzh-upload/stzh-upload.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n Fragment,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from \"@stencil/core\";\n\nimport {\n StzhToastType,\n StzhUploadCanceledEvent,\n StzhUploadCanceledMultipleEvent,\n StzhUploadCompleteEvent,\n StzhUploadCompleteMultipleEvent,\n StzhUploadErrorEvent,\n StzhUploadErrorMultipleEvent,\n StzhUploadFile,\n StzhUploadFileAddedEvent,\n StzhUploadFileRemovedEvent,\n StzhUploadFileRemoveEvent,\n StzhUploadFilesAddedEvent,\n StzhUploadFilesItem,\n StzhUploadProcessingEvent,\n StzhUploadProcessingMultipleEvent,\n StzhUploadProgressEvent,\n StzhUploadProgressTotalEvent,\n StzhUploadSendingEvent,\n StzhUploadSendingMultipleEvent,\n StzhUploadSuccessEvent,\n StzhUploadSuccessMultipleEvent,\n} from \"../../index\";\n\nimport { getStzhEnvironment, hasSlot, isStzhElement, StzhEnvironmentEnum } from \"../../utils/utils\";\nimport { StzhUploadLocalizedText } from \"./stzh-upload.localization\";\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nimport \"../../libraries/dropzone/dropzone\";\nimport { StzhPhotographingUrlDetailsDto } from \"./models/stzh-photographing-url-details.dto\";\nimport { StzhPhotographingConfigurationDto } from \"./models/stzh-photographing-configuration.dto\";\nimport QRCode from \"qrcode\";\nimport { StzhPhotographingPdfFileDto } from \"./models/stzh-photographing-pdf-file.dto\";\n\nwindow.Dropzone.autoDiscover = false;\n\nconst ATTR_NAME = \"data-dz-name\";\nconst ATTR_TYPE = \"data-dz-type\";\nconst ATTR_SIZE = \"data-dz-size\";\nconst ATTR_LINK = \"data-dz-link\";\nconst ATTR_EXTENSION = \"data-dz-extension\";\nconst ATTR_META_ID = \"data-dz-meta-id\";\nconst ATTR_ERROR_MESSAGE_ID = \"data-dz-error-message-id\";\nconst ATTR_PROGRESS_TEXT = \"data-dz-progress-text\";\nconst ATTR_REMOVE = \"data-dz-remove\";\nconst ACCEPTED_FILES_DEFAULT = \".jpg,.png,.pdf\";\n\nlet uploadCounter = 0;\nlet previewCounter = 0;\n\n// Most properties taken over from:\n// https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js\n\n// Possible events to listen to:\n// https://github.com/dropzone/dropzone/blob/v5.9.3/src/dropzone.js#L17\n\n/**\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-upload\",\n styleUrl: \"stzh-upload.scss\",\n})\nexport class StzhUpload {\n /**\n * Initially pre-existing files (e.g. already uploaded by the user).\n * Array of objects that must at least include `name` and `size` attribute:\n * `[{\"name\":\"file1.txt\", \"size\": 12345}, {\"name\":\"file2.txt\", \"size\": 12345}]`\n */\n @Prop() existingFiles: StzhUploadFilesItem[] | string = [];\n private _existingFiles: StzhUploadFilesItem[] = [];\n\n /** Name of hidden input field */\n @Prop() name: string = \"\";\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Instructions heading */\n @Prop() heading: string = \"\";\n\n /** Instructions description */\n @Prop() description: string = \"\";\n\n /** Button text */\n @Prop() button: string = \"\";\n\n /** Scan Button text */\n @Prop() buttonScan: string = \"\";\n\n /** Scan Button text */\n @Prop({ mutable: true }) photographingEnabled: boolean = false;\n\n /** Disable toasts on upload success and error */\n @Prop() disableToasts: boolean = false;\n\n /**\n * URL the files are processed to.\n *\n * You can also provide a function that will be called with `files` and\n * `dataBlocks` and must return the url as string.\n */\n @Prop() url: string | Function = \"\";\n\n /**\n * Can be changed to `\"put\"` if necessary. You can also provide a function\n * that will be called with `files` and must return the method.\n */\n @Prop() method: \"post\" | \"put\" | Function = \"post\";\n\n /**\n * Will be set on the XHRequest.\n */\n @Prop() withCredentials: boolean = false;\n\n /**\n * Whether the upload is disabled or not.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Whether the upload is marked as invalid.\n */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Whether download functionality should be disabled. */\n @Prop() downloadDisabled: boolean = false;\n\n /** Whether download functionality should only be shown to completed files. */\n @Prop() downloadDisabledWhileProcessing: boolean = false;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /**\n * The file types accepted to be uploaded. For security reasons, there's the default value \".jpg,.png,.pdf\".\n *\n */\n @Prop({ reflect: true, mutable: true }) acceptedFiles: string = \".jpg,.png,.pdf\"; // must match ACCEPTED_FILES_DEFAULT (autodocs can't handle variables)\n\n /**\n * If false, files will be added to the queue but the queue will not be\n * processed automatically.\n * This can be useful if you need some additional user input before sending\n * files (or if you want all files sent at once).\n * If you're ready to send the file simply call `element.processQueue()`.\n */\n @Prop() autoProcessQueue: boolean = true;\n\n /**\n * Hide progress (bars and text).\n */\n @Prop() hideProgress: boolean = false;\n\n /**\n * Hide progress (bars) only while idle (will show them as soon as upload starts).\n * Can be used together with `autoProcessQueue`, e.g. if files are uploaded at form submit to prevent showing empty progressbar.\n */\n @Prop() hideProgressWhileIdle: boolean = false;\n\n /**\n * If not `null` defines how many files this dropzone handles. If it exceeds,\n * the event `stzhMaxfilesexceeded` will be called.\n */\n @Prop() maxFiles: number | null = null;\n\n /**\n * The maximum filesize (in MiB) that is allowed to be uploaded per file.\n */\n @Prop() maxFilesize: number = 25;\n\n /**\n * The maximum filesize (in MiB) that is allowed to be uploaded over all files.\n */\n @Prop() maxFilesizeTotal: number = 100;\n\n /**\n * How many file uploads to process in parallel.\n */\n @Prop() parallelUploads: number = 2;\n\n /**\n * Whether to send multiple files in one request. If\n * this it set to true, then the fallback file input element will\n * have the `multiple` attribute as well. This option will\n * also trigger additional events (like `stzhSuccessMultiple`). See the events\n * documentation section for more information.\n */\n @Prop() uploadMultiple: boolean = false;\n\n /**\n * Whether you want files to be uploaded in chunks to your server. This can't be\n * used in combination with `uploadMultiple`.\n *\n * See `chunksUploaded` prop for the callback to finalise an upload.\n */\n @Prop() chunking: boolean = false;\n\n /**\n * If `chunking` is enabled, this defines whether **every** file should be chunked,\n * even if the file size is below chunkSize. This means, that the additional chunk\n * form data will be submitted and the `chunksUploaded` callback will be invoked.\n */\n @Prop() forceChunking: boolean = false;\n\n /**\n * If `chunking` is `true`, then this defines the chunk size in bytes.\n */\n @Prop() chunkSize: number = 2 * 1024 * 1024;\n\n /**\n * If `true`, the individual chunks of a file are being uploaded simultaneously.\n */\n @Prop() parallelChunkUploads: boolean = false;\n\n /**\n * Whether a chunk should be retried if it fails.\n */\n @Prop() retryChunks: boolean = false;\n\n /**\n * If `retryChunks` is true, how many times should it be retried.\n */\n @Prop() retryChunksLimit: number = 3;\n\n /**\n * The base that is used to calculate the **displayed** filesize. You can\n * change this to 1024 if you would rather display kibibytes, mebibytes,\n * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte`\n * not `1 kilobyte`. You can change this to `1024` if you don't care about\n * validity.\n */\n @Prop() filesizeBase: number = 1024;\n\n /**\n * An optional object to send additional headers to the server. Eg:\n * `{ \"My-Awesome-Header\": \"header value\" }`\n *\n * Can also be set as function returning the headers object dynamically.\n * If you want to use an async function, use \"headersAsync\" prop.\n */\n @Prop() headers: object | ((Dropzone: any) => { [key: string]: string }) | null = null;\n\n /**\n * An optional function providing headers asynchronously. If you use that,\n * it will automatically set 'autoProcessQueue' to 'false'.\n * The component will still automatically process the queue, but in a different\n * way (workaround since dropzone not supporting async headers).\n */\n @Prop() headersAsync: (() => Promise<{ [key: string]: string }>) | null = null;\n\n /**\n * Should the default headers be set or not?\n * Accept: application/json <- for requesting json response\n * Cache-Control: no-cache <- Request shouldnt be cached\n * X-Requested-With: XMLHttpRequest <- We sent the request via XMLHttpRequest\n */\n @Prop() defaultHeaders: boolean = true;\n\n /**\n * Whether it is possible to upload files with identical names.\n */\n @Prop() preventDuplicateFileNames: boolean = false;\n\n /**\n * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n * and a `done` function as parameters.\n *\n * If the done function is invoked without arguments, the file is \"accepted\" and will\n * be processed. If you pass an error message, the file is rejected, and the error\n * message will be displayed.\n * This function will not be called if the file is too big or doesn't match the mime types.\n */\n @Prop() accept: Function = function (_file, done) {\n return done();\n };\n\n /**\n * The callback that will be invoked when all chunks have been uploaded for a file.\n * It gets the file for which the chunks have been uploaded as the first parameter,\n * and the `done` function as second. `done()` needs to be invoked when everything\n * needed to finish the upload process is done.\n */\n @Prop() chunksUploaded: Function = function (_file, done) {\n done();\n };\n\n /**\n * This is the element the hidden input field (which is used when clicking on the\n * dropzone to trigger file selection) will be appended to. This might\n * be important in case you use frameworks to switch the content of your page.\n *\n * Can be a selector string, or an element directly. Will be rendered into element by default.\n */\n @Prop() hiddenInputContainer: string | HTMLElement;\n\n /**\n * Prevent clearing hidden input after adding a new file\n * (set true if you use stzh-upload inside a native multipart form with POST method).\n */\n @Prop() preventHiddenInputClear: boolean = false;\n\n /** Translation strings. */\n @Prop() localization: StzhUploadLocalizedText;\n\n @State() environment: StzhEnvironmentEnum | undefined;\n @State() totalFileSize: number = 0;\n @State() duplicateDetected: boolean = false;\n @State() totalTooBig: boolean = false;\n @State() totalTooBigMessageHeading: string = \"\";\n @State() totalTooBigMessageBody: string = \"\";\n @State() totalTooBigMessageBody2: string = \"\";\n @State() totalFilesState: Array<any> = [];\n @State() duplicateFileName: string = \"\";\n @State() duplicateFileSize: string = \"\";\n\n @Element() uploadEl: HTMLStzhUploadElement;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.uploadEl)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Watch(\"name\")\n nameWatcher(newValue: string) {\n const input = this.hiddenInputContainerElement?.querySelector(\"input\");\n\n if (input) {\n input.setAttribute(\"name\", newValue);\n }\n this.dropzone.options.paramName = newValue;\n }\n\n @Watch(\"maxFiles\")\n maxFilesWatcher(newMaxFiles: number | null) {\n this.dropzone.options.maxFiles = newMaxFiles;\n }\n\n @Watch(\"maxFilesize\")\n maxFilesizeWatcher(newMaxFilesize: number) {\n this.dropzone.options.maxFilesize = newMaxFilesize;\n }\n\n @Watch(\"acceptedFiles\")\n acceptedFilesWatcher(newAcceptedFiles: string) {\n if (newAcceptedFiles === undefined || newAcceptedFiles === null || newAcceptedFiles === \"\") {\n this.dropzone.options.acceptedFiles = ACCEPTED_FILES_DEFAULT;\n } else {\n this.dropzone.options.acceptedFiles = newAcceptedFiles;\n }\n }\n\n @Watch(\"existingFiles\")\n existingFilesWatcher(newValue: StzhUploadFilesItem[] | string) {\n if (typeof newValue === \"string\") {\n this._existingFiles = JSON.parse(newValue);\n } else {\n this._existingFiles = newValue;\n }\n }\n\n @Watch(\"disabled\")\n disabledWatcher() {\n if (!this.dropzone) {\n return;\n }\n\n if (this.disabled) {\n this.dropzone.disable();\n } else {\n this.dropzone.enable();\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 /** File added */\n @Event() stzhFileAdded: EventEmitter<StzhUploadFileAddedEvent>;\n\n /** Files added (multiple) */\n @Event() stzhFilesAdded: EventEmitter<StzhUploadFilesAddedEvent>;\n\n /** File remove (before, cancelable) */\n @Event() stzhFileRemove: EventEmitter<StzhUploadFileRemoveEvent>;\n\n /** File removed */\n @Event() stzhFileRemoved: EventEmitter<StzhUploadFileRemovedEvent>;\n\n /** Before sending file (add additional data before request if necessary) */\n @Event() stzhSending: EventEmitter<StzhUploadSendingEvent>;\n\n /** Before sending multiple files (add additional data before request if necessary) */\n @Event() stzhSendingMultiple: EventEmitter<StzhUploadSendingMultipleEvent>;\n\n /** Files starting to get processed */\n @Event() stzhProcessing: EventEmitter<StzhUploadProcessingEvent>;\n\n /** Files starting to get processed (multiple) */\n @Event() stzhProcessingMultiple: EventEmitter<StzhUploadProcessingMultipleEvent>;\n\n /** Upload file progress during upload */\n @Event() stzhProgress: EventEmitter<StzhUploadProgressEvent>;\n\n /** Upload total file progress during upload */\n @Event() stzhProgressTotal: EventEmitter<StzhUploadProgressTotalEvent>;\n\n /** File error */\n @Event() stzhError: EventEmitter<StzhUploadErrorEvent>;\n\n /** Files error (multiple files) */\n @Event() stzhErrorMultiple: EventEmitter<StzhUploadErrorMultipleEvent>;\n\n /** File successfully uploaded */\n @Event() stzhSuccess: EventEmitter<StzhUploadSuccessEvent>;\n\n /** Files successfully uploaded (multiple files) */\n @Event() stzhSuccessMultiple: EventEmitter<StzhUploadSuccessMultipleEvent>;\n\n /** Canceled file upload */\n @Event() stzhCanceled: EventEmitter<StzhUploadCanceledEvent>;\n\n /** Canceled file upload (multiple files) */\n @Event() stzhCanceledMultiple: EventEmitter<StzhUploadCanceledMultipleEvent>;\n\n /** Completed upload (successfully or with error) */\n @Event() stzhComplete: EventEmitter<StzhUploadCompleteEvent>;\n\n /** Completed upload (successfully or with error, multiple files) */\n @Event() stzhCompleteMultiple: EventEmitter<StzhUploadCompleteMultipleEvent>;\n\n /** Sets the focus on the choose file button, when stzh-upload is focused. */\n @Method()\n async setFocus(options?: FocusOptions & { deep?: boolean }) {\n document.querySelector(\"stzh-flyingfocus\")?.activate();\n this.uploadEl.focus(options);\n if (this.chooseFileButtonEl && (options as any)?.deep !== false) {\n this.chooseFileButtonEl.focus(options);\n }\n }\n\n @Method()\n async processQueue() {\n return this.dropzone.processQueue();\n }\n\n @Method()\n async removeFile(file, force = false) {\n return this.dropzone.removeFile(file, force);\n }\n\n @Method()\n async removeAllFiles(cancelIfNecessary = false, force = false) {\n return this.dropzone.removeAllFiles(cancelIfNecessary, force);\n }\n\n private dropzone: any;\n private dropzoneElement: HTMLElement;\n private chooseFileButtonEl: HTMLStzhButtonElement;\n private clickareaElement: HTMLElement;\n private previewsElement: HTMLElement;\n private errorsElement: HTMLElement;\n private hiddenInputContainerElement: HTMLElement;\n private uploadId: string;\n\n /** a11y description for the 2 buttons (choose file and photograph) */\n private get a11yDescribedby(): string {\n return [`${this.uploadId}-label`, `${this.uploadId}-instruction`, `${this.uploadId}-description`].join(\" \");\n }\n\n /* Photographing */\n private photographingOverlayElement: HTMLStzhDialogElement;\n private photographingQrcodeElement: HTMLCanvasElement;\n private PHOTOGRAPHING_BASE_URL = \"/appl/mobiscan/rs\";\n private PHOTOGRAPHING_ENDPOINTS = {\n PING: \"/ping\",\n URL: \"/url\",\n IMAGE: \"/image\",\n CONFIG: \"/config\",\n AUTH: \"/auth\",\n };\n @State() isPhotographingAvailable: boolean = false;\n @State() photographingUrlDetails: StzhPhotographingUrlDetailsDto | undefined;\n @State() photographingHost: string;\n @State() photographingConfig: StzhPhotographingConfigurationDto | undefined;\n @State() photographingWebsocket: WebSocket | undefined;\n @State() photographingToken: { access_token: string; expires_in: number } | undefined;\n @State() hiddenInputFiles: File[] = [];\n\n private handleReset = () => {\n this.removeAllFiles(true);\n };\n\n private cleanLabel(input) {\n if (input === \"\" || input === undefined) {\n input = this.localization.photographingLabelDefault;\n }\n let cleanStr: string = input.replaceAll(\"/\", \"-\");\n // @ts-ignore\n return encodeURIComponent(cleanStr.replaceAll(\"%\", \"\"));\n }\n\n private async getToken() {\n if (\n this.photographingToken &&\n this.photographingToken.access_token &&\n Date.now() < this.photographingToken.expires_in\n ) {\n return this.photographingToken;\n } else {\n return await this.requestPhotographingToken();\n }\n }\n\n private async requestPhotographingToken() {\n try {\n const response = await fetch(\n `${this.photographingHost}${this.PHOTOGRAPHING_BASE_URL}${this.PHOTOGRAPHING_ENDPOINTS.AUTH}`,\n );\n if (!response.ok) {\n throw new Error(\"Token retrieval failed\");\n }\n const parsedResponse = await response.json();\n this.photographingToken = {\n access_token: parsedResponse.access_token,\n expires_in: Date.now() + parsedResponse.expires_in * 1000,\n };\n return this.photographingToken;\n } catch (error) {\n console.error(\"Token retrieval failed\", error);\n throw new Error(\"Token retrieval failed\");\n }\n }\n\n private async initializePhotographingWithEnvironment(environment: StzhEnvironmentEnum) {\n this.photographingHost = this.getPhotographingHostForEnvironment(environment);\n await this.setPhotographingConfig();\n // if (this.photographingConfig) {\n if (this.photographingConfig && this.photographingEnabled === true) {\n await this.checkPhotographingAvailability();\n }\n }\n\n private async startPhotographingUserSession() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.URL}`,\n await this.getPhotographingHttpOptionsWithToken(),\n );\n if (!response.ok) {\n // Nothing to do here. Just don't show the photographing button.\n } else {\n const url: StzhPhotographingUrlDetailsDto = await response.json();\n const urlObject = new URL(url.url);\n const params = new URLSearchParams(urlObject.search);\n this.photographingUrlDetails = {\n url: url.url,\n userId: params.get(\"id\"),\n label: this.cleanLabel(this.label),\n };\n try {\n await QRCode.toCanvas(this.photographingQrcodeElement, url.url + \"&label=\" + this.cleanLabel(this.label));\n } catch (error) {\n console.error(\"Error generating QR code:\", error);\n }\n await this.establishPhotographingWebsocketConnection();\n }\n } catch (startPhotographingUserSessionException) {\n console.error(\n `StzhUpload.startPhotographingUserSession() - startPhotographingUserSessionException:`,\n startPhotographingUserSessionException,\n );\n }\n }\n\n private async retrievePhotographingPdf() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.IMAGE}/retrieve-pdf?id=${this.photographingUrlDetails.userId}&label=${this.cleanLabel(this.label)}`,\n await this.getPhotographingHttpOptionsWithToken(),\n );\n if (!response.ok) {\n console.error(`StzhUpload.retrievePhotographingPdf() - HTTP error! status: ${response.status}`);\n } else {\n const parsedResponse: StzhPhotographingPdfFileDto = await response.json();\n const file = await this.fetchFile(parsedResponse.downloadLink);\n this.dropzone.addFile(file);\n await this.closePhotographingOverlay();\n }\n } catch (retrievePhotographingPdfException) {\n console.error(\n `StzhUpload.retrievePhotographingPdf() - retrievePhotographingPdfException:`,\n retrievePhotographingPdfException,\n );\n }\n }\n\n private async fetchFile(url) {\n const response = await fetch(url);\n const blob = await response.blob();\n const fileName = url.split(\"/\").pop();\n const cleanFileName: string = decodeURIComponent(fileName.split(\"?\")[0]);\n if (blob.type === \"application/octet-stream\") {\n return new File([blob], cleanFileName, { type: \"application/pdf\" });\n }\n return new File([blob], cleanFileName, { type: blob.type });\n }\n\n private async establishPhotographingWebsocketConnection() {\n this.photographingWebsocket = new WebSocket(\n `${this.photographingConfig.wsClientUrl}${this.photographingUrlDetails.userId}`,\n [\"chat\", (await this.getToken()).access_token],\n );\n\n this.photographingWebsocket.onopen = () => {\n setInterval(() => {\n this.sendPhotographingWebsocketMessage(\"Ping\");\n }, 20000);\n };\n\n this.photographingWebsocket.onmessage = async event => {\n const message = event.data;\n\n if (message === \"retrievePdf\") {\n await this.retrievePhotographingPdf();\n }\n };\n\n this.photographingWebsocket.onerror = error => {\n console.error(\"WebSocket error: \", error);\n };\n }\n\n private closePhotographingWebsocketConnection = () => {\n this.photographingWebsocket?.close();\n };\n\n private sendPhotographingWebsocketMessage(message: any) {\n this.photographingWebsocket.send(message);\n }\n\n private async getPhotographingHttpOptionsWithToken() {\n const token = await this.getToken();\n return {\n headers: {\n Authorization: `Bearer ${token.access_token}`,\n },\n };\n }\n\n private async checkPhotographingAvailability() {\n try {\n const response = await fetch(\n `${this.photographingConfig.publicEndpoint}${this.PHOTOGRAPHING_ENDPOINTS.PING}`,\n await this.getPhotographingHttpOptionsWithToken(),\n );\n if (!response.ok) {\n console.error(`StzhUpload.isAvailable() - HTTP error! status: ${response.status}`);\n this.isPhotographingAvailable = false;\n } else {\n this.isPhotographingAvailable = true;\n }\n } catch (isAvailableException) {\n console.error(`StzhUpload.isAvailable() - isAvailableException:`, isAvailableException);\n this.isPhotographingAvailable = false;\n }\n }\n\n private async setPhotographingConfig() {\n try {\n const response = await fetch(\n `${this.photographingHost}${this.PHOTOGRAPHING_BASE_URL}${this.PHOTOGRAPHING_ENDPOINTS.CONFIG}`,\n );\n if (!response.ok) {\n console.error(`StzhUpload.setPhotographingConfig() - HTTP error! status: ${response.status}`);\n } else {\n this.photographingConfig = await response.json();\n }\n } catch (getConfigException) {\n console.error(`StzhUpload.setPhotographingConfig() - getConfigException:`, getConfigException);\n }\n }\n\n private getPhotographingHostForEnvironment(environment: \"DEV\" | \"UAT\" | \"PROD\" | \"UNKNOWN\") {\n switch (environment) {\n case \"DEV\":\n return \"https://www.test.stadt-zuerich.loc\";\n case \"UAT\":\n return \"https://www.integ.stadt-zuerich.ch\";\n case \"PROD\":\n return \"https://www.stadt-zuerich.ch\";\n case \"UNKNOWN\":\n this.PHOTOGRAPHING_BASE_URL = `/stzh-components/assets/mock${this.PHOTOGRAPHING_BASE_URL}`;\n return `${window.location.origin}`;\n }\n }\n\n private onButtonScanClick = event => {\n event.preventDefault();\n event.stopPropagation();\n this.photographingOverlayElement.show().then();\n if (this.isPhotographingAvailable) {\n this.startPhotographingUserSession()\n .then()\n .catch(photographingUserSessionException => {\n console.error(\"photographingUserSessionException\", photographingUserSessionException);\n });\n }\n };\n\n private closePhotographingOverlay = async () => {\n this.photographingOverlayElement.hide().catch();\n };\n\n private filesize = function (size) {\n let selectedSize = 0;\n let selectedUnit = \"b\";\n\n if (size > 0) {\n let units = [\"tb\", \"gb\", \"mb\", \"kb\", \"b\"];\n\n for (let i = 0; i < units.length; i++) {\n let unit = units[i];\n let cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n if (size >= cutoff) {\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n selectedUnit = unit;\n break;\n }\n }\n\n selectedSize = Math.round(selectedSize * 100) / 100; // Cutting of digits\n }\n\n return `<strong>${selectedSize}</strong> ${this.options.dictFileSizeUnits[selectedUnit]}`;\n };\n\n private filePreviewId = function (file): string {\n return `${this.uploadId}-${file._id}`;\n };\n\n private removeFileFromState(file: StzhUploadFile) {\n this.totalFilesState = this.totalFilesState.filter(f => f._id !== file._id);\n\n // remove from hiddenInputFiles, falls relevant\n if (this.preventHiddenInputClear) {\n this.hiddenInputFiles = this.hiddenInputFiles.filter(trackedFile => trackedFile.name !== file.name);\n // Aktualisiere das hidden file input Feld:\n const hiddenFileInput = this.hiddenInputContainerElement?.querySelector(\"input\");\n if (hiddenFileInput) {\n const dataTransfer = new DataTransfer();\n this.hiddenInputFiles.forEach(trackedFile => {\n dataTransfer.items.add(trackedFile);\n });\n hiddenFileInput.files = dataTransfer.files;\n }\n }\n }\n\n async componentWillLoad() {\n this.uploadId = `stzh-upload-${uploadCounter++}`;\n\n this.existingFilesWatcher(this.existingFiles);\n this.errorWatcher(this.error);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.uploadEl, \"upload\");\n }\n\n this.environment = getStzhEnvironment();\n if (this.photographingEnabled) {\n this.initializePhotographingWithEnvironment(this.environment).catch(\n initializePhotographingWithEnvironmentException => {\n console.error(\n \"initializePhotographingWithEnvironmentException\",\n initializePhotographingWithEnvironmentException,\n );\n },\n );\n }\n }\n\n private toggleToast(message: string, type: StzhToastType) {\n if (!this.disableToasts) {\n document.querySelector(\"stzh-upload\").querySelector(\"stzh-toastbar\").toast(message, {\n type: type,\n });\n }\n }\n\n componentDidRender() {\n if (this.dropzone) {\n return;\n }\n\n const self = this;\n\n function enableDownload(file) {\n let fileHref = file.url || \"\";\n\n if (file.upload) {\n fileHref = URL.createObjectURL(file);\n }\n\n if (fileHref) {\n for (var node of file.previewElement.querySelectorAll(`[${ATTR_LINK}]`)) {\n node.setAttribute(\"href\", fileHref);\n node.setAttribute(\"download\", file.name);\n\n const isStzh = isStzhElement(node);\n const fileId = self.filePreviewId(file);\n\n node.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", `${self.localization.downloadFile} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", `${self.localization.downloadFile} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-describedby\" : \"aria-describedby\", `${fileId}-error-message ${fileId}-meta`);\n }\n }\n }\n\n async function prepareRemovalTransition(id: string): Promise<void> {\n const wrapper: HTMLElement = document.getElementById(id);\n if (wrapper) {\n wrapper.classList.add(\"stzh-upload__fade-out\");\n }\n }\n\n async function removeFileByClick(id: string): Promise<void> {\n const wrapper: HTMLElement = document.getElementById(id);\n if (wrapper) {\n const button: HTMLElement = wrapper.querySelector(\".stzh-button\");\n if (button) {\n button.click();\n }\n }\n }\n\n if (this.headersAsync !== null) {\n this.autoProcessQueue = false;\n }\n\n this.dropzone = new window.Dropzone(this.dropzoneElement, {\n accept: this.accept,\n acceptedFiles: this.acceptedFiles,\n autoProcessQueue: this.autoProcessQueue,\n chunking: this.chunking,\n chunkSize: this.chunkSize,\n chunksUploaded: this.chunksUploaded,\n clickable: [this.clickareaElement],\n createImageThumbnails: false,\n defaultHeaders: this.defaultHeaders,\n defaultLabel: this.localization.photographingLabelDefault,\n dictCancelUpload: this.localization.cancelUpload,\n dictCancelUploadConfirmation: this.localization.cancelUploadConfirmation,\n dictDeleteFile: this.localization.deleteFile,\n dictFileSizeUnits: { tb: \"TiB\", gb: \"GiB\", mb: \"MiB\", kb: \"KiB\", b: \"b\" },\n dictFileTooBig: this.localization.fileTooBig,\n dictInvalidFileType: this.localization.invalidFileType,\n dictMaxFilesExceeded: this.localization.maxFilesExceeded,\n dictRemoveFile: this.localization.removeFile,\n dictRemoveFileConfirmation: null,\n dictResponseError: this.localization.responseError,\n dictUploadCanceled: this.localization.uploadCanceled,\n duplicateFileName: this.duplicateFileName,\n duplicateFileSize: this.duplicateFileSize,\n duplicateFileUploadHeading: this.localization.duplicateFileUploadHeading,\n duplicateFileUploadParagraph: this.localization.duplicateFileUploadParagraph,\n filesize: this.filesize,\n filesizeBase: this.filesizeBase,\n forceChunking: this.forceChunking,\n headers: this.headers,\n hiddenInputContainer: this.hiddenInputContainer ? this.hiddenInputContainer : this.hiddenInputContainerElement,\n maxFiles: this.maxFiles,\n maxFilesize: this.maxFilesize,\n method: this.method,\n parallelChunkUploads: this.parallelChunkUploads,\n parallelUploads: this.parallelUploads,\n preventDuplicateFileNames: this.preventDuplicateFileNames,\n preventHiddenInputClear: this.preventHiddenInputClear,\n previewsContainer: this.previewsElement,\n retryChunks: this.retryChunks,\n retryChunksLimit: this.retryChunksLimit,\n totalFilesState: this.totalFilesState,\n uploadMultiple: this.uploadMultiple,\n url: this.url,\n withCredentials: this.withCredentials,\n // Called when a file is dropped to the dropzone\n // Receives `event`\n drop: e => {\n // Preserve files in hidden input when preventHiddenInputClear is true\n if (this.preventHiddenInputClear) {\n const hiddenFileInput = this.hiddenInputContainerElement?.querySelector(\"input\");\n const dataTransfer = new DataTransfer();\n for (let i = 0; i < hiddenFileInput.files.length; i++) {\n dataTransfer.items.add(hiddenFileInput.files[i]);\n }\n for (const file of e.dataTransfer.files) {\n dataTransfer.items.add(file);\n }\n hiddenFileInput.files = dataTransfer.files;\n }\n return this.uploadEl.classList.remove(\"dz-drag-hover\");\n },\n\n // Called when a file is added to the queue\n // Receives `file`\n // Taken from https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L594\n async addedfile(file) {\n file._id = previewCounter++;\n self.totalFilesState.push(...self.totalFilesState, file);\n // Preserve files in hidden input when preventHiddenInputClear is true\n if (self.preventHiddenInputClear) {\n const hiddenFileInput = self.hiddenInputContainerElement?.querySelector(\"input\");\n\n if (hiddenFileInput) {\n let fileAlreadyExists = false;\n\n if (file instanceof File) {\n fileAlreadyExists = self.hiddenInputFiles.some(\n existingFile => existingFile.name === file.name && existingFile.size === file.size,\n );\n\n if (!fileAlreadyExists) {\n self.hiddenInputFiles.push(file);\n }\n }\n\n if (self.hiddenInputFiles.length > 0) {\n const dataTransfer = new DataTransfer();\n\n self.hiddenInputFiles.forEach(trackedFile => {\n dataTransfer.items.add(trackedFile);\n });\n\n hiddenFileInput.files = dataTransfer.files;\n }\n }\n }\n\n if (self.preventDuplicateFileNames) {\n if (self.totalFilesState.length > 0) {\n self.duplicateDetected = false; // reset\n self.totalFilesState.forEach(f => {\n if (file.name === f.name && file._id !== f._id) {\n self.duplicateDetected = true;\n self.duplicateFileName = file.name;\n self.duplicateFileSize = (file.size / (1024 * 1024)).toFixed(2) + \" MiB\";\n setTimeout(prepareRemovalTransition, 10, \"_\" + file._id);\n setTimeout(removeFileByClick, 2000, \"_\" + file._id);\n }\n });\n }\n }\n\n if (this.element === this.previewsContainer) {\n this.element.classList.add(\"dz-started\");\n }\n\n const fileSizeInMiB = file.size / (1024 * 1024);\n\n if (self.totalFileSize + fileSizeInMiB > self.maxFilesizeTotal) {\n self.totalTooBig = true;\n self.totalTooBigMessageHeading = self.localization.uploadFailed;\n self.totalTooBigMessageBody = self.localization.fileTooBigTotal.replace(\n \"{{totalFilesize}}\",\n `${(self.totalFileSize + fileSizeInMiB).toFixed(1)}`,\n );\n self.totalTooBigMessageBody2 = self.localization.fileTooBigTotal2.replace(\n \"{{maxFilesizeTotal}}\",\n `${self.maxFilesizeTotal}`,\n );\n\n self.totalFilesState = self.totalFilesState.filter(f => f.name !== file.name);\n return;\n } else {\n self.totalTooBig = false;\n }\n\n self.totalFileSize += fileSizeInMiB;\n\n if (this.previewsContainer && !this.options.disablePreviews) {\n file.previewElement = window.Dropzone.createElement(this.options.previewTemplate.trim());\n file.previewElement.setAttribute(\"id\", \"_\" + file._id);\n file.previewTemplate = file.previewElement; // Backwards compatibility\n this.previewsContainer.appendChild(file.previewElement);\n\n if (!file.size) {\n file.previewElement.classList.add(\"dz-empty\");\n }\n\n for (var node of file.previewElement.querySelectorAll(`[${ATTR_NAME}]`)) {\n node.textContent = file.name;\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_SIZE}]`)) {\n node.innerHTML = self.filesize.call(this, file.size);\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_META_ID}]`)) {\n node.setAttribute(\"id\", `${self.filePreviewId(file)}-meta`);\n }\n\n for (node of file.previewElement.querySelectorAll(`[${ATTR_ERROR_MESSAGE_ID}]`)) {\n node.setAttribute(\"id\", `${self.filePreviewId(file)}-error-message`);\n }\n\n if (this.options.addRemoveLinks) {\n file._removeLink = window.Dropzone.createElement(\n `<a class=\"dz-remove\" href=\"javascript:undefined;\" ${ATTR_REMOVE}>\n ${this.options.dictRemoveFile}\n </a>`,\n );\n file.previewElement.appendChild(file._removeLink);\n }\n\n let removeFileEvent = e => {\n e.preventDefault();\n e.stopPropagation();\n if (file.status === window.Dropzone.UPLOADING) {\n return window.Dropzone.confirm(this.options.dictCancelUploadConfirmation, () => this.removeFile(file));\n } else {\n if (this.options.dictRemoveFileConfirmation) {\n return window.Dropzone.confirm(this.options.dictRemoveFileConfirmation, () => this.removeFile(file));\n } else {\n return this.removeFile(file);\n }\n }\n };\n\n for (let removeLink of file.previewElement.querySelectorAll(`[${ATTR_REMOVE}]`)) {\n removeLink.addEventListener(\"click\", removeFileEvent);\n\n const isStzh = isStzhElement(removeLink);\n const fileId = self.filePreviewId(file);\n\n removeLink.setAttribute(isStzh ? \"analytics-id\" : \"s-object-id\", `${this.options.dictRemoveFile}`);\n removeLink.setAttribute(\n isStzh ? \"a11y-label\" : \"aria-label\",\n `${this.options.dictRemoveFile} ${file.name}`,\n );\n removeLink.setAttribute(\n isStzh ? \"a11y-describedby\" : \"aria-describedby\",\n `${fileId}-error-message ${fileId}-meta`,\n );\n }\n\n if (!self.downloadDisabled && !self.downloadDisabledWhileProcessing) {\n enableDownload(file);\n }\n }\n\n // Support async headers.\n if (self.headersAsync !== null) {\n self.dropzone.options.headers = await self.headersAsync();\n self.dropzone.processQueue();\n }\n },\n\n // When the upload is finished, either with success or an error.\n // Taken from https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L752\n complete(file) {\n for (let node of file.previewElement.querySelectorAll(`[${ATTR_REMOVE}]`)) {\n const hasErrorState = file.status === \"error\";\n const removeOrDeleteLabel = hasErrorState ? this.options.dictRemoveFile : this.options.dictDeleteFile;\n const isStzh = isStzhElement(node);\n const fileId = self.filePreviewId(file);\n\n node.setAttribute(isStzh ? \"a11y-label\" : \"aria-label\", `${removeOrDeleteLabel} ${file.name}`);\n node.setAttribute(isStzh ? \"a11y-describedby\" : \"aria-describedby\", `${fileId}-error-message ${fileId}-meta`);\n }\n\n // move file uploads with errors to another element, so they are grouped together\n if (file.status === \"error\") {\n self.errorsElement.appendChild(file.previewElement);\n } else if (!self.downloadDisabled && self.downloadDisabledWhileProcessing) {\n enableDownload(file);\n }\n\n if (file._removeLink) {\n file._removeLink.innerHTML = this.options.dictRemoveFile;\n }\n\n if (file.previewElement) {\n return file.previewElement.classList.add(\"dz-complete\");\n }\n },\n\n // Called whenever a file is removed.\n // Taken fom https://github.com/dropzone/dropzone/blob/v5.9.3/src/options.js#L649\n removedfile(file) {\n if (file.previewElement != null && file.previewElement.parentNode != null) {\n file.previewElement.parentNode.removeChild(file.previewElement);\n }\n\n const fileSizeInMiB = file.size / (1024 * 1024);\n self.totalFileSize -= fileSizeInMiB;\n\n // set focus to upload\n self.chooseFileButtonEl.focus();\n\n const dz = this as any;\n\n const maxFiles = dz.options.maxFiles;\n if (maxFiles != null) {\n const accepted = dz.getAcceptedFiles();\n\n if (accepted.length < maxFiles) {\n const allExtraFiles = dz.files.filter(\n (f: any) => f._maxFilesExceeded && f.status === window.Dropzone.ERROR,\n );\n\n for (const f of allExtraFiles) {\n if (dz.getAcceptedFiles().length >= maxFiles) {\n break;\n }\n f._maxFilesExceeded = false;\n f.accepted = true;\n f.status = window.Dropzone.QUEUED;\n\n if (f.previewElement) {\n f.previewElement.classList.remove(\"dz-error\");\n\n f.previewElement\n .querySelectorAll(\"[data-dz-errormessage]\")\n .forEach((node: HTMLElement) => (node.textContent = \"\"));\n\n if (f.previewElement.parentNode === self.errorsElement) {\n self.previewsElement.appendChild(f.previewElement);\n }\n }\n if (dz.options.autoProcessQueue) {\n dz.enqueueFile(f);\n dz.processQueue();\n }\n }\n }\n }\n\n return this._updateMaxFilesReachedClass();\n },\n error(file, message, xhr) {\n if (file.previewElement) {\n file.previewElement.classList.add(\"dz-error\");\n\n if (typeof message !== \"string\" && message.error) {\n message = message.error;\n } else if (xhr) {\n if (xhr.status === 401 || xhr.status === 403) {\n message = self.localization.accessError;\n } else if (xhr.status === 413) {\n message = self.localization.fileTooBigServer;\n } else if (xhr.status === 415) {\n message = self.localization.invalidFileType;\n } else if (xhr.status >= 500) {\n message = self.localization.serverError;\n } else {\n const defaultError = self.localization.responseError.replace(\"{{statusCode}}\", xhr.status);\n\n message = defaultError;\n }\n }\n\n for (let node of file.previewElement.querySelectorAll(\"[data-dz-errormessage]\")) {\n node.textContent = message;\n }\n }\n },\n maxfilesexceeded(file) {\n (file as any)._maxFilesExceeded = true;\n\n this.emit(\"error\", file, self.localization.maxFilesExceeded);\n this.emit(\"complete\", file);\n },\n previewTemplate: `\n <div class=\"stzh-upload__preview\">\n <div class=\"stzh-upload__image\">\n <img data-dz-thumbnail />\n </div>\n\n <div class=\"stzh-upload__details\">\n <div class=\"stzh-upload__info-wrapper\">\n <div class=\"stzh-upload__info-wrapper-processing\">\n <div class=\"stzh-upload__infos\">\n <div class=\"stzh-upload__subtitle\">\n <a class=\"stzh-upload__link\" ${ATTR_NAME} ${ATTR_LINK}></a>\n </div>\n <div class=\"stzh-upload__progress-text\">\n <span ${ATTR_PROGRESS_TEXT}></span>\n </div>\n </div>\n <div class=\"stzh-upload__meta\">\n <span class=\"stzh-upload__extension\" ${ATTR_EXTENSION}></span>\n <span class=\"stzh-upload__separator\"></span>\n <span class=\"stzh-upload__size\" ${ATTR_SIZE}></span>\n </div>\n <div class=\"stzh-upload__progress\">\n <span class=\"stzh-upload__progress-bar\" data-dz-uploadprogress></span>\n </div>\n </div>\n <div class=\"stzh-upload__info-wrapper-complete\">\n <div class=\"stzh-upload__title\">\n <a class=\"stzh-upload__link\" ${ATTR_NAME} ${ATTR_LINK}></a>\n </div>\n <div class=\"stzh-upload__meta\" ${ATTR_META_ID}>\n <span class=\"stzh-upload__extension\" ${ATTR_EXTENSION}></span>\n <span class=\"stzh-upload__separator\"></span>\n <span class=\"stzh-upload__size\" ${ATTR_SIZE}></span>\n </div>\n <div class=\"stzh-upload__error-message\" ${ATTR_ERROR_MESSAGE_ID}>\n <span data-dz-errormessage></span>\n </div>\n </div>\n </div>\n <div class=\"stzh-upload__actions\">\n <!-- <stzh-button variant=\"tertiary\" size=\"small\" icon-only icon=\"download\" class=\"stzh-upload__download\" ${ATTR_LINK}></stzh-button> -->\n <stzh-button variant=\"tertiary\" size=\"small\" icon-only class=\"stzh-upload__delete\" ${ATTR_REMOVE}>\n <stzh-icon slot=\"icon\" class=\"stzh-upload__delete-icon\" name=\"delete\"></stzh-icon>\n <stzh-icon slot=\"icon\" class=\"stzh-upload__delete-icon-error\" name=\"close\"></stzh-icon>\n </stzh-button>\n </div>\n </div>\n </div>\n </div>\n `,\n });\n\n this.nameWatcher(this.name);\n this.disabledWatcher();\n\n this.dropzone.on(\"addedfile\", (file: StzhUploadFile) =>\n this.stzhFileAdded.emit({\n component: \"stzh-upload\",\n file,\n }),\n );\n\n this.dropzone.on(\"addedfiles\", (files: StzhUploadFile[]) =>\n this.stzhFilesAdded.emit({\n component: \"stzh-upload\",\n files,\n }),\n );\n\n this.dropzone.on(\"removefile\", (file: StzhUploadFile) => {\n this.removeFileFromState(file);\n\n return (\n this.stzhFileRemove.emit({\n component: \"stzh-upload\",\n file,\n }).defaultPrevented === false\n );\n });\n\n this.dropzone.on(\"removedfile\", (file: StzhUploadFile, force: boolean) =>\n this.stzhFileRemoved.emit({\n component: \"stzh-upload\",\n file,\n force,\n }),\n );\n\n this.dropzone.on(\"sending\", (file: StzhUploadFile, xhr: XMLHttpRequest, formData: FormData) =>\n this.stzhSending.emit({\n component: \"stzh-upload\",\n file,\n xhr,\n formData,\n }),\n );\n\n this.dropzone.on(\"sendingmultiple\", (files: StzhUploadFile[], xhr: XMLHttpRequest, formData: FormData) =>\n this.stzhSendingMultiple.emit({\n component: \"stzh-upload\",\n files,\n xhr,\n formData,\n }),\n );\n\n this.dropzone.on(\"processing\", (file: StzhUploadFile) =>\n this.stzhProcessing.emit({\n component: \"stzh-upload\",\n file,\n }),\n );\n\n this.dropzone.on(\"processingmultiple\", (files: StzhUploadFile[]) =>\n this.stzhProcessingMultiple.emit({\n component: \"stzh-upload\",\n files,\n }),\n );\n\n this.dropzone.on(\"uploadprogress\", (file: StzhUploadFile, progress: number, bytesSent: number) =>\n this.stzhProgress.emit({\n component: \"stzh-upload\",\n file,\n progress,\n bytesSent,\n }),\n );\n\n this.dropzone.on(\"totaluploadprogress\", (totalUploadProgress: number, totalBytes: number, totalBytesSent: number) =>\n this.stzhProgressTotal.emit({\n component: \"stzh-upload\",\n totalUploadProgress,\n totalBytes,\n totalBytesSent,\n }),\n );\n\n this.dropzone.on(\"error\", (file: StzhUploadFile, message: string, xhr: XMLHttpRequest) => {\n if (xhr && xhr.status >= 400) {\n this.toggleToast(this.localization.uploadErrorToast, \"error\");\n }\n this.stzhError.emit({\n component: \"stzh-upload\",\n file,\n message,\n xhr,\n });\n });\n\n this.dropzone.on(\"errormultiple\", (files: StzhUploadFile[], message: string, xhr: XMLHttpRequest) => {\n if (xhr && xhr.status >= 400) {\n this.toggleToast(this.localization.uploadErrorToast, \"error\");\n }\n this.stzhErrorMultiple.emit({\n component: \"stzh-upload\",\n files,\n message,\n xhr,\n });\n });\n\n this.dropzone.on(\"success\", (file: StzhUploadFile, responseText: string, event: ProgressEvent) => {\n this.toggleToast(this.localization.uploadSuccessToast, \"success\");\n this.stzhSuccess.emit({\n component: \"stzh-upload\",\n file,\n responseText,\n event,\n });\n });\n\n this.dropzone.on(\"successmultiple\", (files: StzhUploadFile[], responseText: string, event: ProgressEvent) => {\n this.toggleToast(this.localization.uploadSuccessToast, \"success\");\n this.stzhSuccessMultiple.emit({\n component: \"stzh-upload\",\n files,\n responseText,\n event,\n });\n });\n\n this.dropzone.on(\"canceled\", (file: StzhUploadFile) =>\n this.stzhCanceled.emit({\n component: \"stzh-upload\",\n file,\n }),\n );\n\n this.dropzone.on(\"canceledmultiple\", (files: StzhUploadFile[]) =>\n this.stzhCanceledMultiple.emit({\n component: \"stzh-upload\",\n files,\n }),\n );\n\n this.dropzone.on(\"complete\", (file: StzhUploadFile) =>\n this.stzhComplete.emit({\n component: \"stzh-upload\",\n file,\n }),\n );\n\n this.dropzone.on(\"completemultiple\", (files: StzhUploadFile[]) =>\n this.stzhCompleteMultiple.emit({\n component: \"stzh-upload\",\n files,\n }),\n );\n this.dropzone.on(\"maxfilesexceeded\", (file: StzhUploadFile) => {\n (file as any)._maxFilesExceeded = true;\n\n this.dropzone.emit(\"error\", file, this.localization.maxFilesExceeded);\n this.dropzone.emit(\"complete\", file);\n });\n\n this.dropzone.on(\"addedfile\", (file: StzhUploadFile) => {\n file.previewElement.querySelectorAll(`[${ATTR_NAME}]`).forEach((name: HTMLElement) => {\n name.setAttribute(\"title\", file.name);\n });\n\n file.previewElement.querySelectorAll(`[${ATTR_TYPE}]`).forEach((type: HTMLElement) => {\n type.innerText = file.type;\n });\n\n file.previewElement.querySelectorAll(`[${ATTR_EXTENSION}]`).forEach((extension: HTMLElement) => {\n extension.innerText = file.name.split(\".\").pop();\n });\n });\n\n this.dropzone.on(\"uploadprogress\", (file: StzhUploadFile, progress: number) => {\n file.previewElement.querySelectorAll(`[${ATTR_PROGRESS_TEXT}]`).forEach((progressText: HTMLElement) => {\n progressText.innerText = `${progress.toString()}%`;\n });\n });\n\n this._existingFiles.forEach(file => {\n this.dropzone.displayExistingFile(file, null, null, null, null);\n });\n }\n\n disconnectedCallback() {\n if (this.dropzone) {\n this.dropzone.destroy();\n this.dropzone = null;\n }\n }\n\n render() {\n const errorUsed = hasSlot(this.uploadEl, \"error\") || this._error?.length > 0;\n const classes = {\n \"stzh-upload\": true,\n \"stzh-upload--is-invalid\": this.invalid || errorUsed,\n \"stzh-upload--is-disabled\": this.disabled,\n \"stzh-upload--has-hidden-progress\": this.hideProgress,\n \"stzh-upload--has-hidden-progress-while-idle\": this.hideProgressWhileIdle,\n \"stzh-upload--has-error\": errorUsed,\n \"stzh-upload--has-instructions\": !!this.description || !!this.localization.description,\n };\n const fileRestrictionsLocalization = this.localization.description;\n const totalFileSizeLimitLocalization = this.localization.descriptionTotalFileSizeLimit;\n\n return (\n <Host\n tabindex={this.disabled ? null : \"-1\"}\n is-invalid={this.invalid || errorUsed}\n aria-invalid={this.invalid || errorUsed ? \"true\" : \"false\"}\n aria-describedby={this.invalid || errorUsed ? this.error : undefined}\n role=\"group\"\n >\n <stzh-toastbar />\n <div class={classes} ref={el => (this.dropzoneElement = el as HTMLDivElement)}>\n <div ref={el => (this.hiddenInputContainerElement = el as HTMLElement)}></div>\n\n <div id={`${this.uploadId}-label`}>{this.label && <div class=\"stzh-upload__label\">{this.label}</div>}</div>\n\n <div class=\"stzh-upload__clickarea\" ref={el => (this.clickareaElement = el as HTMLDivElement)}>\n <div class=\"stzh-upload__heading-wrapper\">\n <div class=\"stzh-upload__heading-inner-wrapper\">\n <div class=\"stzh-upload__heading\">{this.heading ? this.heading : this.localization.heading}</div>\n <div class=\"stzh-upload__buttons-wrapper\">\n <stzh-button\n id={`${this.uploadId}-button`}\n class=\"stzh-upload__button\"\n variant=\"secondary\"\n size=\"small\"\n ref={el => (this.chooseFileButtonEl = el as HTMLStzhButtonElement)}\n label={this.button ? this.button : this.localization.button}\n a11yDescribedby={this.a11yDescribedby}\n a11yControls={`${this.uploadId}-previews`}\n aria-invalid={this.invalid || errorUsed ? \"true\" : \"false\"}\n disabled={this.disabled}\n >\n <stzh-icon slot=\"icon\" name=\"upload\"></stzh-icon>\n </stzh-button>\n {this.isPhotographingAvailable && (\n <stzh-button\n onClick={this.onButtonScanClick}\n class=\"stzh-upload__button-scan\"\n variant=\"secondary\"\n size=\"small\"\n label={this.buttonScan ? this.buttonScan : this.localization.buttonScan}\n a11yDescribedby={this.a11yDescribedby}\n aria-invalid={this.invalid || errorUsed ? \"true\" : \"false\"}\n disabled={this.disabled}\n >\n <stzh-icon slot=\"icon\" name=\"camera\"></stzh-icon>\n </stzh-button>\n )}\n </div>\n <div class=\"stzh-upload__hint-wrapper\">\n <span>{this.localization.buttonIntro}</span>\n </div>\n </div>\n </div>\n <div class=\"stzh-upload__instructions\" id={`${this.uploadId}-instruction`}>\n <p>\n {this.description && (\n <span class=\"stzh-upload__instructions__description\">\n {this.description}\n <br />\n </span>\n )}\n {fileRestrictionsLocalization\n .replace(\"{{fileformats}}\", this.acceptedFiles)\n .replace(\"{{filesize}}\", `${this.maxFilesize}`)}\n <br />\n {totalFileSizeLimitLocalization.replace(\"{{maxFilesizeTotal}}\", `${this.maxFilesizeTotal}`)}\n </p>\n </div>\n </div>\n\n {errorUsed && (\n <div class=\"stzh-upload__description-wrapper\">\n <StzhInputDescription classPrefix=\"stzh-upload\" id={`${this.uploadId}-description`} error={this._error} />\n </div>\n )}\n <div id={`${this.uploadId}-previews`} class=\"stzh-upload__previews-wrapper\">\n <div class=\"stzh-upload__previews-inner-wrapper\">\n <div class=\"stzh-upload__errors\" ref={el => (this.errorsElement = el as HTMLElement)}></div>\n <div\n class=\"stzh-upload__previews dropzone-previews\"\n ref={el => (this.previewsElement = el as HTMLElement)}\n ></div>\n </div>\n </div>\n </div>\n\n {this.duplicateDetected && (\n <div class=\"stzh-upload__previews-message-wrapper\">\n <stzh-message\n type=\"error\"\n label={this.localization.duplicateFileUploadHeading}\n onStzhClose={() => (this.duplicateDetected = false)}\n >\n <stzh-text>\n <p>\n «{this.duplicateFileName}» ({this.duplicateFileSize})\n </p>\n <p>{this.localization.duplicateFileUploadParagraph}</p>\n </stzh-text>\n </stzh-message>\n </div>\n )}\n\n {this.totalTooBig && (\n <div class=\"stzh-upload__previews-message-wrapper\">\n <stzh-message\n type=\"warning\"\n label={this.totalTooBigMessageHeading}\n onStzhClose={() => (this.totalTooBig = false)}\n >\n <stzh-text>\n <p>\n {this.totalTooBigMessageBody} {this.totalTooBigMessageBody2}\n </p>\n </stzh-text>\n </stzh-message>\n </div>\n )}\n\n <stzh-dialog\n ref={el => (this.photographingOverlayElement = el as HTMLStzhDialogElement)}\n onStzhClose={this.closePhotographingWebsocketConnection}\n class={this.isPhotographingAvailable && \"stzh-dialog--fit-content\"}\n heading={this.localization.photographingTitle1}\n >\n <stzh-button\n class=\"stzh-upload-photographing__back-button\"\n icon=\"arrow-left\"\n size=\"small\"\n variant=\"tertiary-plain\"\n no-padding-left=\"true\"\n no-padding-right=\"true\"\n onClick={this.closePhotographingOverlay}\n >\n {this.localization.back}\n </stzh-button>\n {this.isPhotographingAvailable && (\n <Fragment>\n <div class=\"stzh-upload-photographing__info\">\n <div class=\"stzh-upload-photographing__text-qrcode\">\n <div class=\"stzh-upload-photographing-qrlink-container\">\n <stzh-text>{this.localization.photographingText1}</stzh-text>\n </div>\n <div class=\"stzh-upload-photographing-qrcode-container\">\n <canvas\n class=\"stzh-upload-photographing-qrcode\"\n ref={el => (this.photographingQrcodeElement = el as HTMLCanvasElement)}\n ></canvas>\n </div>\n </div>\n </div>\n <div class=\"stzh-upload-photographing__info\">\n <stzh-heading level=\"3\">{this.localization.photographingTitle2}</stzh-heading>\n <stzh-text>{this.localization.photographingText2}</stzh-text>\n </div>\n <div class=\"stzh-upload-photographing__continue\">\n {!!this.photographingUrlDetails && (\n <stzh-link\n class=\"stzh-upload-photographing-link\"\n href={this.photographingUrlDetails.url + \"&label=\" + this.cleanLabel(this.label)}\n target=\"_blank\"\n >\n {this.localization.photographingContinue}\n </stzh-link>\n )}\n </div>\n </Fragment>\n )}\n </stzh-dialog>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { createComponentStory } from '../../utils/story-utils';
|
|
2
|
-
import { withActions } from '@storybook/addon-actions/decorator';
|
|
3
2
|
import readme from './readme.md?raw';
|
|
4
3
|
|
|
5
4
|
import { getFigmaLink } from '../../../figma';
|
|
@@ -10,8 +9,7 @@ import {
|
|
|
10
9
|
waitForElement,
|
|
11
10
|
waitForEvent
|
|
12
11
|
} from '../../../.storybook/utils/component-test-utils';
|
|
13
|
-
import { expect } from '
|
|
14
|
-
import { fireEvent } from '@storybook/testing-library';
|
|
12
|
+
import { expect, fireEvent } from 'storybook/test';
|
|
15
13
|
|
|
16
14
|
const COMPONENT_NAME = 'stzh-upload';
|
|
17
15
|
const story = createComponentStory(COMPONENT_NAME);
|
|
@@ -56,8 +54,8 @@ export default {
|
|
|
56
54
|
component: COMPONENT_NAME,
|
|
57
55
|
parameters: {
|
|
58
56
|
layout: 'padded',
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
stzhActions: {
|
|
58
|
+
events: [
|
|
61
59
|
'stzhFileAdded',
|
|
62
60
|
'stzhFilesAdded',
|
|
63
61
|
'stzhFileRemove',
|
|
@@ -88,8 +86,7 @@ export default {
|
|
|
88
86
|
url: getFigmaLink('upload'),
|
|
89
87
|
allowFullscreen: true
|
|
90
88
|
}
|
|
91
|
-
}
|
|
92
|
-
decorators: [withActions]
|
|
89
|
+
}
|
|
93
90
|
};
|
|
94
91
|
|
|
95
92
|
export const Default = {
|
|
@@ -180,9 +177,10 @@ export const Default = {
|
|
|
180
177
|
const uploadButton = stzhUploadEl.querySelector('#stzh-upload-0-button');
|
|
181
178
|
const uploadButtonInner = uploadButton.querySelector('button.stzh-button');
|
|
182
179
|
|
|
183
|
-
expect(
|
|
184
|
-
|
|
185
|
-
|
|
180
|
+
expect(
|
|
181
|
+
document.activeElement?.shadowRoot
|
|
182
|
+
? document.activeElement.shadowRoot.querySelector('button.stzh-button')
|
|
183
|
+
: document.activeElement
|
|
186
184
|
).toBe(uploadButtonInner);
|
|
187
185
|
|
|
188
186
|
expect(uploadButtonInner).toHaveClass('has-focus');
|
|
@@ -251,7 +249,7 @@ export const ExistingFiles = {
|
|
|
251
249
|
const uploadInstructionsEl = stzhUploadEl.querySelector('.stzh-upload__instructions');
|
|
252
250
|
expect(uploadInstructionsEl.textContent).toContain('Allowed file formats: .jpg,.png,.pdf (max. 25 MB per file)');
|
|
253
251
|
expect(uploadInstructionsEl.textContent).toContain('Max. size of all files: 100 MB');
|
|
254
|
-
})
|
|
252
|
+
});
|
|
255
253
|
}
|
|
256
254
|
};
|
|
257
255
|
|
|
@@ -688,7 +686,10 @@ export const WithErrors = {
|
|
|
688
686
|
const uploadButtonBaseId = uploadButtonId.replace(/-button$/, '');
|
|
689
687
|
|
|
690
688
|
const uploadButtonInner = uploadButtonEl.querySelector('button.stzh-button');
|
|
691
|
-
expect(uploadButtonInner).toHaveAttribute(
|
|
689
|
+
expect(uploadButtonInner).toHaveAttribute(
|
|
690
|
+
'aria-describedby',
|
|
691
|
+
`${uploadButtonBaseId}-label ${uploadButtonBaseId}-instruction ${uploadButtonBaseId}-description`
|
|
692
|
+
);
|
|
692
693
|
});
|
|
693
694
|
}
|
|
694
695
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { createComponentStory } from '../../utils/story-utils';
|
|
2
|
-
import { withActions } from '@storybook/addon-actions/decorator';
|
|
3
2
|
import readme from './readme.md?raw';
|
|
4
3
|
|
|
5
4
|
const COMPONENT_NAME = 'stzh-visuallyhidden';
|
|
@@ -29,16 +28,12 @@ export default {
|
|
|
29
28
|
title: 'Components/Visuallyhidden',
|
|
30
29
|
component: COMPONENT_NAME,
|
|
31
30
|
parameters: {
|
|
32
|
-
actions: {
|
|
33
|
-
handles: []
|
|
34
|
-
},
|
|
35
31
|
docs: {
|
|
36
32
|
description: {
|
|
37
33
|
component: readme
|
|
38
34
|
}
|
|
39
35
|
}
|
|
40
|
-
}
|
|
41
|
-
decorators: [withActions]
|
|
36
|
+
}
|
|
42
37
|
};
|
|
43
38
|
|
|
44
39
|
export const Default = {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { createComponentStory } from '../../utils/story-utils';
|
|
2
|
-
import { withActions } from '@storybook/addon-actions/decorator';
|
|
3
2
|
import readme from './readme.md?raw';
|
|
4
3
|
|
|
5
4
|
import { getFigmaLink } from '../../../figma';
|
|
@@ -46,9 +45,6 @@ export default {
|
|
|
46
45
|
title: 'Components/Vspace',
|
|
47
46
|
component: 'stzh-vspace',
|
|
48
47
|
parameters: {
|
|
49
|
-
actions: {
|
|
50
|
-
handles: []
|
|
51
|
-
},
|
|
52
48
|
docs: {
|
|
53
49
|
description: {
|
|
54
50
|
component: readme
|
|
@@ -59,8 +55,7 @@ export default {
|
|
|
59
55
|
url: getFigmaLink('vspace'),
|
|
60
56
|
allowFullscreen: true
|
|
61
57
|
}
|
|
62
|
-
}
|
|
63
|
-
decorators: [withActions]
|
|
58
|
+
}
|
|
64
59
|
};
|
|
65
60
|
|
|
66
61
|
export const Default = {
|