@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 +0,0 @@
|
|
|
1
|
-
{"file":"p-3d9ce94f.js","mappings":"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","names":["accent_pat","latin_convert","latin_condensed","getDom","isHtmlString","hash_key","get_hash","escape_html","preventDefault","addEvent","plugin","TomSelectRemoveButton","TomSelectCheckboxOptions","TomSelectInputAutogrow","TomSelectNoBackspaceDelete"],"sources":["src/libraries/tom-select/esm/tom-select.js","src/libraries/tom-select/esm/plugins/remove_button/plugin.js","src/libraries/tom-select/esm/plugins/checkbox_options/plugin.js","src/libraries/tom-select/esm/plugins/input_autogrow/plugin.js","src/libraries/tom-select/esm/plugins/no_backspace_delete/plugin.js","src/components/stzh-dropdown/stzh-dropdown.scss?tag=stzh-dropdown","src/components/stzh-dropdown/stzh-dropdown.tsx"],"sourcesContent":["/**\n* Tom Select v2.2.2\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n*/\n\n/**\n * MicroEvent - to make any js object an event emitter\n *\n * - pure javascript - server compatible, browser compatible\n * - dont rely on the browser doms\n * - super simple - you get it immediatly, no mistery, no magic involved\n *\n * @author Jerome Etienne (https://github.com/jeromeetienne)\n */\n\n/**\n * Execute callback for each event in space separated list of event names\n *\n */\nfunction forEvents(events, callback) {\n events.split(/\\s+/).forEach(event => {\n callback(event);\n });\n}\nclass MicroEvent {\n constructor() {\n this._events = void 0;\n this._events = {};\n }\n on(events, fct) {\n forEvents(events, event => {\n const event_array = this._events[event] || [];\n event_array.push(fct);\n this._events[event] = event_array;\n });\n }\n off(events, fct) {\n var n = arguments.length;\n if (n === 0) {\n this._events = {};\n return;\n }\n forEvents(events, event => {\n if (n === 1) {\n delete this._events[event];\n return;\n }\n const event_array = this._events[event];\n if (event_array === undefined) return;\n event_array.splice(event_array.indexOf(fct), 1);\n this._events[event] = event_array;\n });\n }\n trigger(events, ...args) {\n var self = this;\n forEvents(events, event => {\n const event_array = self._events[event];\n if (event_array === undefined) return;\n event_array.forEach(fct => {\n fct.apply(self, args);\n });\n });\n }\n}\n\n/**\n * microplugin.js\n * Copyright (c) 2013 Brian Reavis & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n */\n\nfunction MicroPlugin(Interface) {\n Interface.plugins = {};\n return class extends Interface {\n constructor(...args) {\n super(...args);\n this.plugins = {\n names: [],\n settings: {},\n requested: {},\n loaded: {}\n };\n }\n /**\n * Registers a plugin.\n *\n * @param {function} fn\n */\n static define(name, fn) {\n Interface.plugins[name] = {\n 'name': name,\n 'fn': fn\n };\n }\n\n /**\n * Initializes the listed plugins (with options).\n * Acceptable formats:\n *\n * List (without options):\n * ['a', 'b', 'c']\n *\n * List (with options):\n * [{'name': 'a', options: {}}, {'name': 'b', options: {}}]\n *\n * Hash (with options):\n * {'a': { ... }, 'b': { ... }, 'c': { ... }}\n *\n * @param {array|object} plugins\n */\n initializePlugins(plugins) {\n var key, name;\n const self = this;\n const queue = [];\n if (Array.isArray(plugins)) {\n plugins.forEach(plugin => {\n if (typeof plugin === 'string') {\n queue.push(plugin);\n } else {\n self.plugins.settings[plugin.name] = plugin.options;\n queue.push(plugin.name);\n }\n });\n } else if (plugins) {\n for (key in plugins) {\n if (plugins.hasOwnProperty(key)) {\n self.plugins.settings[key] = plugins[key];\n queue.push(key);\n }\n }\n }\n while (name = queue.shift()) {\n self.require(name);\n }\n }\n loadPlugin(name) {\n var self = this;\n var plugins = self.plugins;\n var plugin = Interface.plugins[name];\n if (!Interface.plugins.hasOwnProperty(name)) {\n throw new Error('Unable to find \"' + name + '\" plugin');\n }\n plugins.requested[name] = true;\n plugins.loaded[name] = plugin.fn.apply(self, [self.plugins.settings[name] || {}]);\n plugins.names.push(name);\n }\n\n /**\n * Initializes a plugin.\n *\n */\n require(name) {\n var self = this;\n var plugins = self.plugins;\n if (!self.plugins.loaded.hasOwnProperty(name)) {\n if (plugins.requested[name]) {\n throw new Error('Plugin has circular dependency (\"' + name + '\")');\n }\n self.loadPlugin(name);\n }\n return plugins.loaded[name];\n }\n };\n}\n\n/*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) */\n/**\n * Convert array of strings to a regular expression\n *\tex ['ab','a'] => (?:ab|a)\n * \tex ['a','b'] => [ab]\n * @param {string[]} chars\n * @return {string}\n */\nconst arrayToPattern = chars => {\n chars = chars.filter(Boolean);\n\n if (chars.length < 2) {\n return chars[0] || '';\n }\n\n return maxValueLength(chars) == 1 ? '[' + chars.join('') + ']' : '(?:' + chars.join('|') + ')';\n};\n/**\n * @param {string[]} array\n * @return {string}\n */\n\nconst sequencePattern = array => {\n if (!hasDuplicates(array)) {\n return array.join('');\n }\n\n let pattern = '';\n let prev_char_count = 0;\n\n const prev_pattern = () => {\n if (prev_char_count > 1) {\n pattern += '{' + prev_char_count + '}';\n }\n };\n\n array.forEach((char, i) => {\n if (char === array[i - 1]) {\n prev_char_count++;\n return;\n }\n\n prev_pattern();\n pattern += char;\n prev_char_count = 1;\n });\n prev_pattern();\n return pattern;\n};\n/**\n * Convert array of strings to a regular expression\n *\tex ['ab','a'] => (?:ab|a)\n * \tex ['a','b'] => [ab]\n * @param {Set<string>} chars\n * @return {string}\n */\n\nconst setToPattern = chars => {\n let array = toArray(chars);\n return arrayToPattern(array);\n};\n/**\n *\n * https://stackoverflow.com/questions/7376598/in-javascript-how-do-i-check-if-an-array-has-duplicate-values\n * @param {any[]} array\n */\n\nconst hasDuplicates = array => {\n return new Set(array).size !== array.length;\n};\n/**\n * https://stackoverflow.com/questions/63006601/why-does-u-throw-an-invalid-escape-error\n * @param {string} str\n * @return {string}\n */\n\nconst escape_regex = str => {\n return (str + '').replace(/([\\$\\(\\)\\*\\+\\.\\?\\[\\]\\^\\{\\|\\}\\\\])/gu, '\\\\$1');\n};\n/**\n * Return the max length of array values\n * @param {string[]} array\n *\n */\n\nconst maxValueLength = array => {\n return array.reduce((longest, value) => Math.max(longest, unicodeLength(value)), 0);\n};\n/**\n * @param {string} str\n */\n\nconst unicodeLength = str => {\n return toArray(str).length;\n};\n/**\n * @param {any} p\n * @return {any[]}\n */\n\nconst toArray = p => Array.from(p);\n\n/*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) */\n/**\n * Get all possible combinations of substrings that add up to the given string\n * https://stackoverflow.com/questions/30169587/find-all-the-combination-of-substrings-that-add-up-to-the-given-string\n * @param {string} input\n * @return {string[][]}\n */\nconst allSubstrings = input => {\n if (input.length === 1) return [[input]];\n /** @type {string[][]} */\n\n let result = [];\n const start = input.substring(1);\n const suba = allSubstrings(start);\n suba.forEach(function (subresult) {\n let tmp = subresult.slice(0);\n tmp[0] = input.charAt(0) + tmp[0];\n result.push(tmp);\n tmp = subresult.slice(0);\n tmp.unshift(input.charAt(0));\n result.push(tmp);\n });\n return result;\n};\n\n/*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) */\n\n/**\n * @typedef {{[key:string]:string}} TUnicodeMap\n * @typedef {{[key:string]:Set<string>}} TUnicodeSets\n * @typedef {[[number,number]]} TCodePoints\n * @typedef {{folded:string,composed:string,code_point:number}} TCodePointObj\n * @typedef {{start:number,end:number,length:number,substr:string}} TSequencePart\n */\n/** @type {TCodePoints} */\n\nconst code_points = [[0, 65535]];\nconst accent_pat = '[\\u0300-\\u036F\\u{b7}\\u{2be}\\u{2bc}]';\n/** @type {TUnicodeMap} */\n\nlet unicode_map;\n/** @type {RegExp} */\n\nlet multi_char_reg;\nconst max_char_length = 3;\n/** @type {TUnicodeMap} */\n\nconst latin_convert = {};\n/** @type {TUnicodeMap} */\n\nconst latin_condensed = {\n '/': '⁄∕',\n '0': '߀',\n \"a\": \"ⱥɐɑ\",\n \"aa\": \"ꜳ\",\n \"ae\": \"æǽǣ\",\n \"ao\": \"ꜵ\",\n \"au\": \"ꜷ\",\n \"av\": \"ꜹꜻ\",\n \"ay\": \"ꜽ\",\n \"b\": \"ƀɓƃ\",\n \"c\": \"ꜿƈȼↄ\",\n \"d\": \"đɗɖᴅƌꮷԁɦ\",\n \"e\": \"ɛǝᴇɇ\",\n \"f\": \"ꝼƒ\",\n \"g\": \"ǥɠꞡᵹꝿɢ\",\n \"h\": \"ħⱨⱶɥ\",\n \"i\": \"ɨı\",\n \"j\": \"ɉȷ\",\n \"k\": \"ƙⱪꝁꝃꝅꞣ\",\n \"l\": \"łƚɫⱡꝉꝇꞁɭ\",\n \"m\": \"ɱɯϻ\",\n \"n\": \"ꞥƞɲꞑᴎлԉ\",\n \"o\": \"øǿɔɵꝋꝍᴑ\",\n \"oe\": \"œ\",\n \"oi\": \"ƣ\",\n \"oo\": \"ꝏ\",\n \"ou\": \"ȣ\",\n \"p\": \"ƥᵽꝑꝓꝕρ\",\n \"q\": \"ꝗꝙɋ\",\n \"r\": \"ɍɽꝛꞧꞃ\",\n \"s\": \"ßȿꞩꞅʂ\",\n \"t\": \"ŧƭʈⱦꞇ\",\n \"th\": \"þ\",\n \"tz\": \"ꜩ\",\n \"u\": \"ʉ\",\n \"v\": \"ʋꝟʌ\",\n \"vy\": \"ꝡ\",\n \"w\": \"ⱳ\",\n \"y\": \"ƴɏỿ\",\n \"z\": \"ƶȥɀⱬꝣ\",\n \"hv\": \"ƕ\"\n};\n\nfor (let latin in latin_condensed) {\n let unicode = latin_condensed[latin] || '';\n\n for (let i = 0; i < unicode.length; i++) {\n let char = unicode.substring(i, i + 1);\n latin_convert[char] = latin;\n }\n}\n\nconst convert_pat = new RegExp(Object.keys(latin_convert).join('|') + '|' + accent_pat, 'gu');\n/**\n * Initialize the unicode_map from the give code point ranges\n *\n * @param {TCodePoints=} _code_points\n */\n\nconst initialize = _code_points => {\n if (unicode_map !== undefined) return;\n unicode_map = generateMap(_code_points || code_points);\n};\n/**\n * Helper method for normalize a string\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize\n * @param {string} str\n * @param {string} form\n */\n\nconst normalize = (str, form = 'NFKD') => str.normalize(form);\n/**\n * Remove accents without reordering string\n * calling str.normalize('NFKD') on \\u{594}\\u{595}\\u{596} becomes \\u{596}\\u{594}\\u{595}\n * via https://github.com/krisk/Fuse/issues/133#issuecomment-318692703\n * @param {string} str\n * @return {string}\n */\n\nconst asciifold = str => {\n return toArray(str).reduce(\n /**\n * @param {string} result\n * @param {string} char\n */\n (result, char) => {\n return result + _asciifold(char);\n }, '');\n};\n/**\n * @param {string} str\n * @return {string}\n */\n\nconst _asciifold = str => {\n str = normalize(str).toLowerCase().replace(convert_pat, (\n /** @type {string} */\n char) => {\n return latin_convert[char] || '';\n }); //return str;\n\n return normalize(str, 'NFC');\n};\n/**\n * Generate a list of unicode variants from the list of code points\n * @param {TCodePoints} code_points\n * @yield {TCodePointObj}\n */\n\nfunction* generator(code_points) {\n for (const [code_point_min, code_point_max] of code_points) {\n for (let i = code_point_min; i <= code_point_max; i++) {\n let composed = String.fromCharCode(i);\n let folded = asciifold(composed);\n\n if (folded == composed.toLowerCase()) {\n continue;\n } // skip when folded is a string longer than 3 characters long\n // bc the resulting regex patterns will be long\n // eg:\n // folded صلى الله عليه وسلم length 18 code point 65018\n // folded جل جلاله length 8 code point 65019\n\n\n if (folded.length > max_char_length) {\n continue;\n }\n\n if (folded.length == 0) {\n continue;\n }\n\n yield {\n folded: folded,\n composed: composed,\n code_point: i\n };\n }\n }\n}\n/**\n * Generate a unicode map from the list of code points\n * @param {TCodePoints} code_points\n * @return {TUnicodeSets}\n */\n\nconst generateSets = code_points => {\n /** @type {{[key:string]:Set<string>}} */\n const unicode_sets = {};\n /**\n * @param {string} folded\n * @param {string} to_add\n */\n\n const addMatching = (folded, to_add) => {\n /** @type {Set<string>} */\n const folded_set = unicode_sets[folded] || new Set();\n const patt = new RegExp('^' + setToPattern(folded_set) + '$', 'iu');\n\n if (to_add.match(patt)) {\n return;\n }\n\n folded_set.add(escape_regex(to_add));\n unicode_sets[folded] = folded_set;\n };\n\n for (let value of generator(code_points)) {\n addMatching(value.folded, value.folded);\n addMatching(value.folded, value.composed);\n }\n\n return unicode_sets;\n};\n/**\n * Generate a unicode map from the list of code points\n * ae => (?:(?:ae|Æ|Ǽ|Ǣ)|(?:A|Ⓐ|A...)(?:E|ɛ|Ⓔ...))\n *\n * @param {TCodePoints} code_points\n * @return {TUnicodeMap}\n */\n\nconst generateMap = code_points => {\n /** @type {TUnicodeSets} */\n const unicode_sets = generateSets(code_points);\n /** @type {TUnicodeMap} */\n\n const unicode_map = {};\n /** @type {string[]} */\n\n let multi_char = [];\n\n for (let folded in unicode_sets) {\n let set = unicode_sets[folded];\n\n if (set) {\n unicode_map[folded] = setToPattern(set);\n }\n\n if (folded.length > 1) {\n multi_char.push(escape_regex(folded));\n }\n }\n\n multi_char.sort((a, b) => b.length - a.length);\n const multi_char_patt = arrayToPattern(multi_char);\n multi_char_reg = new RegExp('^' + multi_char_patt, 'u');\n return unicode_map;\n};\n/**\n * Map each element of an array from it's folded value to all possible unicode matches\n * @param {string[]} strings\n * @param {number} min_replacement\n * @return {string}\n */\n\nconst mapSequence = (strings, min_replacement = 1) => {\n let chars_replaced = 0;\n strings = strings.map(str => {\n if (unicode_map[str]) {\n chars_replaced += str.length;\n }\n\n return unicode_map[str] || str;\n });\n\n if (chars_replaced >= min_replacement) {\n return sequencePattern(strings);\n }\n\n return '';\n};\n/**\n * Convert a short string and split it into all possible patterns\n * Keep a pattern only if min_replacement is met\n *\n * 'abc'\n * \t\t=> [['abc'],['ab','c'],['a','bc'],['a','b','c']]\n *\t\t=> ['abc-pattern','ab-c-pattern'...]\n *\n *\n * @param {string} str\n * @param {number} min_replacement\n * @return {string}\n */\n\nconst substringsToPattern = (str, min_replacement = 1) => {\n min_replacement = Math.max(min_replacement, str.length - 1);\n return arrayToPattern(allSubstrings(str).map(sub_pat => {\n return mapSequence(sub_pat, min_replacement);\n }));\n};\n/**\n * Convert an array of sequences into a pattern\n * [{start:0,end:3,length:3,substr:'iii'}...] => (?:iii...)\n *\n * @param {Sequence[]} sequences\n * @param {boolean} all\n */\n\nconst sequencesToPattern = (sequences, all = true) => {\n let min_replacement = sequences.length > 1 ? 1 : 0;\n return arrayToPattern(sequences.map(sequence => {\n let seq = [];\n const len = all ? sequence.length() : sequence.length() - 1;\n\n for (let j = 0; j < len; j++) {\n seq.push(substringsToPattern(sequence.substrs[j] || '', min_replacement));\n }\n\n return sequencePattern(seq);\n }));\n};\n/**\n * Return true if the sequence is already in the sequences\n * @param {Sequence} needle_seq\n * @param {Sequence[]} sequences\n */\n\n\nconst inSequences = (needle_seq, sequences) => {\n for (const seq of sequences) {\n if (seq.start != needle_seq.start || seq.end != needle_seq.end) {\n continue;\n }\n\n if (seq.substrs.join('') !== needle_seq.substrs.join('')) {\n continue;\n }\n\n let needle_parts = needle_seq.parts;\n /**\n * @param {TSequencePart} part\n */\n\n const filter = part => {\n for (const needle_part of needle_parts) {\n if (needle_part.start === part.start && needle_part.substr === part.substr) {\n return false;\n }\n\n if (part.length == 1 || needle_part.length == 1) {\n continue;\n } // check for overlapping parts\n // a = ['::=','==']\n // b = ['::','===']\n // a = ['r','sm']\n // b = ['rs','m']\n\n\n if (part.start < needle_part.start && part.end > needle_part.start) {\n return true;\n }\n\n if (needle_part.start < part.start && needle_part.end > part.start) {\n return true;\n }\n }\n\n return false;\n };\n\n let filtered = seq.parts.filter(filter);\n\n if (filtered.length > 0) {\n continue;\n }\n\n return true;\n }\n\n return false;\n};\n\nclass Sequence {\n constructor() {\n /** @type {TSequencePart[]} */\n this.parts = [];\n /** @type {string[]} */\n\n this.substrs = [];\n this.start = 0;\n this.end = 0;\n }\n /**\n * @param {TSequencePart|undefined} part\n */\n\n\n add(part) {\n if (part) {\n this.parts.push(part);\n this.substrs.push(part.substr);\n this.start = Math.min(part.start, this.start);\n this.end = Math.max(part.end, this.end);\n }\n }\n\n last() {\n return this.parts[this.parts.length - 1];\n }\n\n length() {\n return this.parts.length;\n }\n /**\n * @param {number} position\n * @param {TSequencePart} last_piece\n */\n\n\n clone(position, last_piece) {\n let clone = new Sequence();\n let parts = JSON.parse(JSON.stringify(this.parts));\n let last_part = parts.pop();\n\n for (const part of parts) {\n clone.add(part);\n }\n\n let last_substr = last_piece.substr.substring(0, position - last_part.start);\n let clone_last_len = last_substr.length;\n clone.add({\n start: last_part.start,\n end: last_part.start + clone_last_len,\n length: clone_last_len,\n substr: last_substr\n });\n return clone;\n }\n\n}\n/**\n * Expand a regular expression pattern to include unicode variants\n * \teg /a/ becomes /aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐɑAⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ/\n *\n * Issue:\n * ﺊﺋ [ 'ﺊ = \\\\u{fe8a}', 'ﺋ = \\\\u{fe8b}' ]\n *\tbecomes:\tئئ [ 'ي = \\\\u{64a}', 'ٔ = \\\\u{654}', 'ي = \\\\u{64a}', 'ٔ = \\\\u{654}' ]\n *\n *\tİIJ = IIJ = ⅡJ\n *\n * \t1/2/4\n *\n * @param {string} str\n * @return {string|undefined}\n */\n\n\nconst getPattern = str => {\n initialize();\n str = asciifold(str);\n let pattern = '';\n let sequences = [new Sequence()];\n\n for (let i = 0; i < str.length; i++) {\n let substr = str.substring(i);\n let match = substr.match(multi_char_reg);\n const char = str.substring(i, i + 1);\n const match_str = match ? match[0] : null; // loop through sequences\n // add either the char or multi_match\n\n let overlapping = [];\n let added_types = new Set();\n\n for (const sequence of sequences) {\n const last_piece = sequence.last();\n\n if (!last_piece || last_piece.length == 1 || last_piece.end <= i) {\n // if we have a multi match\n if (match_str) {\n const len = match_str.length;\n sequence.add({\n start: i,\n end: i + len,\n length: len,\n substr: match_str\n });\n added_types.add('1');\n } else {\n sequence.add({\n start: i,\n end: i + 1,\n length: 1,\n substr: char\n });\n added_types.add('2');\n }\n } else if (match_str) {\n let clone = sequence.clone(i, last_piece);\n const len = match_str.length;\n clone.add({\n start: i,\n end: i + len,\n length: len,\n substr: match_str\n });\n overlapping.push(clone);\n } else {\n // don't add char\n // adding would create invalid patterns: 234 => [2,34,4]\n added_types.add('3');\n }\n } // if we have overlapping\n\n\n if (overlapping.length > 0) {\n // ['ii','iii'] before ['i','i','iii']\n overlapping = overlapping.sort((a, b) => {\n return a.length() - b.length();\n });\n\n for (let clone of overlapping) {\n // don't add if we already have an equivalent sequence\n if (inSequences(clone, sequences)) {\n continue;\n }\n\n sequences.push(clone);\n }\n\n continue;\n } // if we haven't done anything unique\n // clean up the patterns\n // helps keep patterns smaller\n // if str = 'r₨㎧aarss', pattern will be 446 instead of 655\n\n\n if (i > 0 && added_types.size == 1 && !added_types.has('3')) {\n pattern += sequencesToPattern(sequences, false);\n let new_seq = new Sequence();\n const old_seq = sequences[0];\n\n if (old_seq) {\n new_seq.add(old_seq.last());\n }\n\n sequences = [new_seq];\n }\n }\n\n pattern += sequencesToPattern(sequences, true);\n return pattern;\n};\n\n/*! sifter.js | https://github.com/orchidjs/sifter.js | Apache License (v2) */\n\n/**\n * A property getter resolving dot-notation\n * @param {Object} obj The root object to fetch property on\n * @param {String} name The optionally dotted property name to fetch\n * @return {Object} The resolved property value\n */\nconst getAttr = (obj, name) => {\n if (!obj) return;\n return obj[name];\n};\n/**\n * A property getter resolving dot-notation\n * @param {Object} obj The root object to fetch property on\n * @param {String} name The optionally dotted property name to fetch\n * @return {Object} The resolved property value\n */\n\nconst getAttrNesting = (obj, name) => {\n if (!obj) return;\n var part,\n names = name.split(\".\");\n\n while ((part = names.shift()) && (obj = obj[part]));\n\n return obj;\n};\n/**\n * Calculates how close of a match the\n * given value is against a search token.\n *\n */\n\nconst scoreValue = (value, token, weight) => {\n var score, pos;\n if (!value) return 0;\n value = value + '';\n if (token.regex == null) return 0;\n pos = value.search(token.regex);\n if (pos === -1) return 0;\n score = token.string.length / value.length;\n if (pos === 0) score += 0.5;\n return score * weight;\n};\n/**\n * Cast object property to an array if it exists and has a value\n *\n */\n\nconst propToArray = (obj, key) => {\n var value = obj[key];\n if (typeof value == 'function') return value;\n\n if (value && !Array.isArray(value)) {\n obj[key] = [value];\n }\n};\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\n\nconst iterate$1 = (object, callback) => {\n if (Array.isArray(object)) {\n object.forEach(callback);\n } else {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n callback(object[key], key);\n }\n }\n }\n};\nconst cmp = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a > b ? 1 : a < b ? -1 : 0;\n }\n\n a = asciifold(a + '').toLowerCase();\n b = asciifold(b + '').toLowerCase();\n if (a > b) return 1;\n if (b > a) return -1;\n return 0;\n};\n\n/*! sifter.js | https://github.com/orchidjs/sifter.js | Apache License (v2) */\n\n/**\n * sifter.js\n * Copyright (c) 2013–2020 Brian Reavis & contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n * @author Brian Reavis <brian@thirdroute.com>\n */\n\nclass Sifter {\n // []|{};\n\n /**\n * Textually searches arrays and hashes of objects\n * by property (or multiple properties). Designed\n * specifically for autocomplete.\n *\n */\n constructor(items, settings) {\n this.items = void 0;\n this.settings = void 0;\n this.items = items;\n this.settings = settings || {\n diacritics: true\n };\n }\n\n /**\n * Splits a search string into an array of individual\n * regexps to be used to match results.\n *\n */\n tokenize(query, respect_word_boundaries, weights) {\n if (!query || !query.length) return [];\n const tokens = [];\n const words = query.split(/\\s+/);\n var field_regex;\n\n if (weights) {\n field_regex = new RegExp('^(' + Object.keys(weights).map(escape_regex).join('|') + ')\\:(.*)$');\n }\n\n words.forEach(word => {\n let field_match;\n let field = null;\n let regex = null; // look for \"field:query\" tokens\n\n if (field_regex && (field_match = word.match(field_regex))) {\n field = field_match[1];\n word = field_match[2];\n }\n\n if (word.length > 0) {\n if (this.settings.diacritics) {\n regex = getPattern(word) || null;\n } else {\n regex = escape_regex(word);\n }\n\n if (regex && respect_word_boundaries) regex = \"\\\\b\" + regex;\n }\n\n tokens.push({\n string: word,\n regex: regex ? new RegExp(regex, 'iu') : null,\n field: field\n });\n });\n return tokens;\n }\n\n /**\n * Returns a function to be used to score individual results.\n *\n * Good matches will have a higher score than poor matches.\n * If an item is not a match, 0 will be returned by the function.\n *\n * @returns {T.ScoreFn}\n */\n getScoreFunction(query, options) {\n var search = this.prepareSearch(query, options);\n return this._getScoreFunction(search);\n }\n /**\n * @returns {T.ScoreFn}\n *\n */\n\n\n _getScoreFunction(search) {\n const tokens = search.tokens,\n token_count = tokens.length;\n\n if (!token_count) {\n return function () {\n return 0;\n };\n }\n\n const fields = search.options.fields,\n weights = search.weights,\n field_count = fields.length,\n getAttrFn = search.getAttrFn;\n\n if (!field_count) {\n return function () {\n return 1;\n };\n }\n /**\n * Calculates the score of an object\n * against the search query.\n *\n */\n\n\n const scoreObject = function () {\n if (field_count === 1) {\n return function (token, data) {\n const field = fields[0].field;\n return scoreValue(getAttrFn(data, field), token, weights[field] || 1);\n };\n }\n\n return function (token, data) {\n var sum = 0; // is the token specific to a field?\n\n if (token.field) {\n const value = getAttrFn(data, token.field);\n\n if (!token.regex && value) {\n sum += 1 / field_count;\n } else {\n sum += scoreValue(value, token, 1);\n }\n } else {\n iterate$1(weights, (weight, field) => {\n sum += scoreValue(getAttrFn(data, field), token, weight);\n });\n }\n\n return sum / field_count;\n };\n }();\n\n if (token_count === 1) {\n return function (data) {\n return scoreObject(tokens[0], data);\n };\n }\n\n if (search.options.conjunction === 'and') {\n return function (data) {\n var score,\n sum = 0;\n\n for (let token of tokens) {\n score = scoreObject(token, data);\n if (score <= 0) return 0;\n sum += score;\n }\n\n return sum / token_count;\n };\n } else {\n return function (data) {\n var sum = 0;\n iterate$1(tokens, token => {\n sum += scoreObject(token, data);\n });\n return sum / token_count;\n };\n }\n }\n\n /**\n * Returns a function that can be used to compare two\n * results, for sorting purposes. If no sorting should\n * be performed, `null` will be returned.\n *\n * @return function(a,b)\n */\n getSortFunction(query, options) {\n var search = this.prepareSearch(query, options);\n return this._getSortFunction(search);\n }\n\n _getSortFunction(search) {\n var implicit_score,\n sort_flds = [];\n const self = this,\n options = search.options,\n sort = !search.query && options.sort_empty ? options.sort_empty : options.sort;\n\n if (typeof sort == 'function') {\n return sort.bind(this);\n }\n /**\n * Fetches the specified sort field value\n * from a search result item.\n *\n */\n\n\n const get_field = function get_field(name, result) {\n if (name === '$score') return result.score;\n return search.getAttrFn(self.items[result.id], name);\n }; // parse options\n\n\n if (sort) {\n for (let s of sort) {\n if (search.query || s.field !== '$score') {\n sort_flds.push(s);\n }\n }\n } // the \"$score\" field is implied to be the primary\n // sort field, unless it's manually specified\n\n\n if (search.query) {\n implicit_score = true;\n\n for (let fld of sort_flds) {\n if (fld.field === '$score') {\n implicit_score = false;\n break;\n }\n }\n\n if (implicit_score) {\n sort_flds.unshift({\n field: '$score',\n direction: 'desc'\n });\n } // without a search.query, all items will have the same score\n\n } else {\n sort_flds = sort_flds.filter(fld => fld.field !== '$score');\n } // build function\n\n\n const sort_flds_count = sort_flds.length;\n\n if (!sort_flds_count) {\n return null;\n }\n\n return function (a, b) {\n var result, field;\n\n for (let sort_fld of sort_flds) {\n field = sort_fld.field;\n let multiplier = sort_fld.direction === 'desc' ? -1 : 1;\n result = multiplier * cmp(get_field(field, a), get_field(field, b));\n if (result) return result;\n }\n\n return 0;\n };\n }\n\n /**\n * Parses a search query and returns an object\n * with tokens and fields ready to be populated\n * with results.\n *\n */\n prepareSearch(query, optsUser) {\n const weights = {};\n var options = Object.assign({}, optsUser);\n propToArray(options, 'sort');\n propToArray(options, 'sort_empty'); // convert fields to new format\n\n if (options.fields) {\n propToArray(options, 'fields');\n const fields = [];\n options.fields.forEach(field => {\n if (typeof field == 'string') {\n field = {\n field: field,\n weight: 1\n };\n }\n\n fields.push(field);\n weights[field.field] = 'weight' in field ? field.weight : 1;\n });\n options.fields = fields;\n }\n\n return {\n options: options,\n query: query.toLowerCase().trim(),\n tokens: this.tokenize(query, options.respect_word_boundaries, weights),\n total: 0,\n items: [],\n weights: weights,\n getAttrFn: options.nesting ? getAttrNesting : getAttr\n };\n }\n\n /**\n * Searches through all items and returns a sorted array of matches.\n *\n */\n search(query, options) {\n var self = this,\n score,\n search;\n search = this.prepareSearch(query, options);\n options = search.options;\n query = search.query; // generate result scoring function\n\n const fn_score = options.score || self._getScoreFunction(search); // perform search and sort\n\n\n if (query.length) {\n iterate$1(self.items, (item, id) => {\n score = fn_score(item);\n\n if (options.filter === false || score > 0) {\n search.items.push({\n 'score': score,\n 'id': id\n });\n }\n });\n } else {\n iterate$1(self.items, (_, id) => {\n search.items.push({\n 'score': 1,\n 'id': id\n });\n });\n }\n\n const fn_sort = self._getSortFunction(search);\n\n if (fn_sort) search.items.sort(fn_sort); // apply limits\n\n search.total = search.items.length;\n\n if (typeof options.limit === 'number') {\n search.items = search.items.slice(0, options.limit);\n }\n\n return search;\n }\n\n}\n\n/**\n * Iterates over arrays and hashes.\n *\n * ```\n * iterate(this.items, function(item, id) {\n * // invoked for each item\n * });\n * ```\n *\n */\nconst iterate = (object, callback) => {\n if (Array.isArray(object)) {\n object.forEach(callback);\n } else {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n callback(object[key], key);\n }\n }\n }\n};\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nconst getDom = query => {\n if (query.jquery) {\n return query[0];\n }\n if (query instanceof HTMLElement) {\n return query;\n }\n if (isHtmlString(query)) {\n var tpl = document.createElement('template');\n tpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n return tpl.content.firstChild;\n }\n return document.querySelector(query);\n};\nconst isHtmlString = arg => {\n if (typeof arg === 'string' && arg.indexOf('<') > -1) {\n return true;\n }\n return false;\n};\nconst escapeQuery = query => {\n return query.replace(/['\"\\\\]/g, '\\\\$&');\n};\n\n/**\n * Dispatch an event\n *\n */\nconst triggerEvent = (dom_el, event_name) => {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(event_name, true, false);\n dom_el.dispatchEvent(event);\n};\n\n/**\n * Apply CSS rules to a dom element\n *\n */\nconst applyCSS = (dom_el, css) => {\n Object.assign(dom_el.style, css);\n};\n\n/**\n * Add css classes\n *\n */\nconst addClasses = (elmts, ...classes) => {\n var norm_classes = classesArray(classes);\n elmts = castAsArray(elmts);\n elmts.map(el => {\n norm_classes.map(cls => {\n el.classList.add(cls);\n });\n });\n};\n\n/**\n * Remove css classes\n *\n */\nconst removeClasses = (elmts, ...classes) => {\n var norm_classes = classesArray(classes);\n elmts = castAsArray(elmts);\n elmts.map(el => {\n norm_classes.map(cls => {\n el.classList.remove(cls);\n });\n });\n};\n\n/**\n * Return arguments\n *\n */\nconst classesArray = args => {\n var classes = [];\n iterate(args, _classes => {\n if (typeof _classes === 'string') {\n _classes = _classes.trim().split(/[\\11\\12\\14\\15\\40]/);\n }\n if (Array.isArray(_classes)) {\n classes = classes.concat(_classes);\n }\n });\n return classes.filter(Boolean);\n};\n\n/**\n * Create an array from arg if it's not already an array\n *\n */\nconst castAsArray = arg => {\n if (!Array.isArray(arg)) {\n arg = [arg];\n }\n return arg;\n};\n\n/**\n * Get the closest node to the evt.target matching the selector\n * Stops at wrapper\n *\n */\nconst parentMatch = (target, selector, wrapper) => {\n if (wrapper && !wrapper.contains(target)) {\n return;\n }\n while (target && target.matches) {\n if (target.matches(selector)) {\n return target;\n }\n target = target.parentNode;\n }\n};\n\n/**\n * Get the first or last item from an array\n *\n * > 0 - right (last)\n * <= 0 - left (first)\n *\n */\nconst getTail = (list, direction = 0) => {\n if (direction > 0) {\n return list[list.length - 1];\n }\n return list[0];\n};\n\n/**\n * Return true if an object is empty\n *\n */\nconst isEmptyObject = obj => {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Get the index of an element amongst sibling nodes of the same type\n *\n */\nconst nodeIndex = (el, amongst) => {\n if (!el) return -1;\n amongst = amongst || el.nodeName;\n var i = 0;\n while (el = el.previousElementSibling) {\n if (el.matches(amongst)) {\n i++;\n }\n }\n return i;\n};\n\n/**\n * Set attributes of an element\n *\n */\nconst setAttr = (el, attrs) => {\n iterate(attrs, (val, attr) => {\n if (val == null) {\n el.removeAttribute(attr);\n } else {\n el.setAttribute(attr, '' + val);\n }\n });\n};\n\n/**\n * Replace a node\n */\nconst replaceNode = (existing, replacement) => {\n if (existing.parentNode) existing.parentNode.replaceChild(replacement, existing);\n};\n\n/**\n * highlight v3 | MIT license | Johann Burkard <jb@eaio.com>\n * Highlights arbitrary terms in a node.\n *\n * - Modified by Marshal <beatgates@gmail.com> 2011-6-24 (added regex)\n * - Modified by Brian Reavis <brian@thirdroute.com> 2012-8-27 (cleanup)\n */\nconst highlight = (element, regex) => {\n if (regex === null) return;\n\n // convet string to regex\n if (typeof regex === 'string') {\n if (!regex.length) return;\n regex = new RegExp(regex, 'i');\n }\n\n // Wrap matching part of text node with highlighting <span>, e.g.\n // Soccer -> <span class=\"highlight\">Soc</span>cer for regex = /soc/i\n const highlightText = node => {\n var match = node.data.match(regex);\n if (match && node.data.length > 0) {\n var spannode = document.createElement('span');\n spannode.className = 'highlight';\n var middlebit = node.splitText(match.index);\n middlebit.splitText(match[0].length);\n var middleclone = middlebit.cloneNode(true);\n spannode.appendChild(middleclone);\n replaceNode(middlebit, spannode);\n return 1;\n }\n return 0;\n };\n\n // Recurse element node, looking for child text nodes to highlight, unless element\n // is childless, <script>, <style>, or already highlighted: <span class=\"hightlight\">\n const highlightChildren = node => {\n if (node.nodeType === 1 && node.childNodes && !/(script|style)/i.test(node.tagName) && (node.className !== 'highlight' || node.tagName !== 'SPAN')) {\n Array.from(node.childNodes).forEach(element => {\n highlightRecursive(element);\n });\n }\n };\n const highlightRecursive = node => {\n if (node.nodeType === 3) {\n return highlightText(node);\n }\n highlightChildren(node);\n return 0;\n };\n highlightRecursive(element);\n};\n\n/**\n * removeHighlight fn copied from highlight v5 and\n * edited to remove with(), pass js strict mode, and use without jquery\n */\nconst removeHighlight = el => {\n var elements = el.querySelectorAll(\"span.highlight\");\n Array.prototype.forEach.call(elements, function (el) {\n var parent = el.parentNode;\n parent.replaceChild(el.firstChild, el);\n parent.normalize();\n });\n};\n\nconst KEY_A = 65;\nconst KEY_RETURN = 13;\nconst KEY_ESC = 27;\nconst KEY_LEFT = 37;\nconst KEY_UP = 38;\nconst KEY_RIGHT = 39;\nconst KEY_DOWN = 40;\nconst KEY_BACKSPACE = 8;\nconst KEY_DELETE = 46;\nconst KEY_TAB = 9;\nconst IS_MAC = typeof navigator === 'undefined' ? false : /Mac/.test(navigator.userAgent);\nconst KEY_SHORTCUT = IS_MAC ? 'metaKey' : 'ctrlKey'; // ctrl key or apple key for ma\n\nvar defaults = {\n options: [],\n optgroups: [],\n plugins: [],\n delimiter: ',',\n splitOn: null,\n // regexp or string for splitting up values from a paste command\n persist: true,\n diacritics: true,\n create: null,\n createOnBlur: false,\n createFilter: null,\n highlight: true,\n openOnFocus: true,\n shouldOpen: null,\n maxOptions: 50,\n maxItems: null,\n hideSelected: null,\n duplicates: false,\n addPrecedence: false,\n selectOnTab: false,\n preload: null,\n allowEmptyOption: false,\n //closeAfterSelect: false,\n\n loadThrottle: 300,\n loadingClass: 'loading',\n dataAttr: null,\n //'data-data',\n optgroupField: 'optgroup',\n valueField: 'value',\n labelField: 'text',\n disabledField: 'disabled',\n optgroupLabelField: 'label',\n optgroupValueField: 'value',\n lockOptgroupOrder: false,\n sortField: '$order',\n searchField: ['text'],\n searchConjunction: 'and',\n mode: null,\n openDisplay: 'block',\n wrapperClass: 'ts-wrapper',\n controlClass: 'ts-control',\n dropdownClass: 'ts-dropdown',\n dropdownContentClass: 'ts-dropdown-content',\n itemClass: 'item',\n optionClass: 'option',\n dropdownParent: null,\n controlInput: '<input type=\"text\" autocomplete=\"off\" size=\"1\" />',\n copyClassesToDropdown: false,\n placeholder: null,\n hidePlaceholder: null,\n transformLoadQuery: function (inputValue) {\n return inputValue.trim();\n },\n shouldLoad: function (query) {\n return query.length > 0;\n },\n /*\n load : null, // function(query, callback) { ... }\n score : null, // function(search) { ... }\n onInitialize : null, // function() { ... }\n onChange : null, // function(value) { ... }\n onItemAdd : null, // function(value, $item) { ... }\n onItemRemove : null, // function(value) { ... }\n onClear : null, // function() { ... }\n onOptionAdd : null, // function(value, data) { ... }\n onOptionRemove : null, // function(value) { ... }\n onOptionClear : null, // function() { ... }\n onOptionGroupAdd : null, // function(id, data) { ... }\n onOptionGroupRemove : null, // function(id) { ... }\n onOptionGroupClear : null, // function() { ... }\n onDropdownOpen : null, // function(dropdown) { ... }\n onDropdownClose : null, // function(dropdown) { ... }\n onType : null, // function(str) { ... }\n onDelete : null, // function(values) { ... }\n */\n\n render: {\n /*\n item: null,\n optgroup: null,\n optgroup_header: null,\n option: null,\n option_create: null\n */\n }\n};\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nconst hash_key = value => {\n if (typeof value === 'undefined' || value === null) return null;\n return get_hash(value);\n};\nconst get_hash = value => {\n if (typeof value === 'boolean') return value ? '1' : '0';\n return value + '';\n};\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nconst escape_html = str => {\n return (str + '').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"');\n};\n\n/**\n * Debounce the user provided load function\n *\n */\nconst loadDebounce = (fn, delay) => {\n var timeout;\n return function (value, callback) {\n var self = this;\n if (timeout) {\n self.loading = Math.max(self.loading - 1, 0);\n clearTimeout(timeout);\n }\n timeout = setTimeout(function () {\n timeout = null;\n self.loadedSearches[value] = true;\n fn.call(self, value, callback);\n }, delay);\n };\n};\n\n/**\n * Debounce all fired events types listed in `types`\n * while executing the provided `fn`.\n *\n */\nconst debounce_events = (self, types, fn) => {\n var type;\n var trigger = self.trigger;\n var event_args = {};\n\n // override trigger method\n self.trigger = function () {\n var type = arguments[0];\n if (types.indexOf(type) !== -1) {\n event_args[type] = arguments;\n } else {\n return trigger.apply(self, arguments);\n }\n };\n\n // invoke provided function\n fn.apply(self, []);\n self.trigger = trigger;\n\n // trigger queued events\n for (type of types) {\n if (type in event_args) {\n trigger.apply(self, event_args[type]);\n }\n }\n};\n\n/**\n * Determines the current selection within a text input control.\n * Returns an object containing:\n * - start\n * - length\n *\n */\nconst getSelection = input => {\n return {\n start: input.selectionStart || 0,\n length: (input.selectionEnd || 0) - (input.selectionStart || 0)\n };\n};\n\n/**\n * Prevent default\n *\n */\nconst preventDefault = (evt, stop = false) => {\n if (evt) {\n evt.preventDefault();\n if (stop) {\n evt.stopPropagation();\n }\n }\n};\n\n/**\n * Add event helper\n *\n */\nconst addEvent = (target, type, callback, options) => {\n target.addEventListener(type, callback, options);\n};\n\n/**\n * Return true if the requested key is down\n * Will return false if more than one control character is pressed ( when [ctrl+shift+a] != [ctrl+a] )\n * The current evt may not always set ( eg calling advanceSelection() )\n *\n */\nconst isKeyDown = (key_name, evt) => {\n if (!evt) {\n return false;\n }\n if (!evt[key_name]) {\n return false;\n }\n var count = (evt.altKey ? 1 : 0) + (evt.ctrlKey ? 1 : 0) + (evt.shiftKey ? 1 : 0) + (evt.metaKey ? 1 : 0);\n if (count === 1) {\n return true;\n }\n return false;\n};\n\n/**\n * Get the id of an element\n * If the id attribute is not set, set the attribute with the given id\n *\n */\nconst getId = (el, id) => {\n const existing_id = el.getAttribute('id');\n if (existing_id) {\n return existing_id;\n }\n el.setAttribute('id', id);\n return id;\n};\n\n/**\n * Returns a string with backslashes added before characters that need to be escaped.\n */\nconst addSlashes = str => {\n return str.replace(/[\\\\\"']/g, '\\\\$&');\n};\n\n/**\n *\n */\nconst append = (parent, node) => {\n if (node) parent.append(node);\n};\n\nfunction getSettings(input, settings_user) {\n var settings = Object.assign({}, defaults, settings_user);\n var attr_data = settings.dataAttr;\n var field_label = settings.labelField;\n var field_value = settings.valueField;\n var field_disabled = settings.disabledField;\n var field_optgroup = settings.optgroupField;\n var field_optgroup_label = settings.optgroupLabelField;\n var field_optgroup_value = settings.optgroupValueField;\n var tag_name = input.tagName.toLowerCase();\n var placeholder = input.getAttribute('placeholder') || input.getAttribute('data-placeholder');\n if (!placeholder && !settings.allowEmptyOption) {\n let option = input.querySelector('option[value=\"\"]');\n if (option) {\n placeholder = option.textContent;\n }\n }\n var settings_element = {\n placeholder: placeholder,\n options: [],\n optgroups: [],\n items: [],\n maxItems: null\n };\n\n /**\n * Initialize from a <select> element.\n *\n */\n var init_select = () => {\n var tagName;\n var options = settings_element.options;\n var optionsMap = {};\n var group_count = 1;\n var readData = el => {\n var data = Object.assign({}, el.dataset); // get plain object from DOMStringMap\n var json = attr_data && data[attr_data];\n if (typeof json === 'string' && json.length) {\n data = Object.assign(data, JSON.parse(json));\n }\n return data;\n };\n var addOption = (option, group) => {\n var value = hash_key(option.value);\n if (value == null) return;\n if (!value && !settings.allowEmptyOption) return;\n\n // if the option already exists, it's probably been\n // duplicated in another optgroup. in this case, push\n // the current group to the \"optgroup\" property on the\n // existing option so that it's rendered in both places.\n if (optionsMap.hasOwnProperty(value)) {\n if (group) {\n var arr = optionsMap[value][field_optgroup];\n if (!arr) {\n optionsMap[value][field_optgroup] = group;\n } else if (!Array.isArray(arr)) {\n optionsMap[value][field_optgroup] = [arr, group];\n } else {\n arr.push(group);\n }\n }\n } else {\n var option_data = readData(option);\n option_data[field_label] = option_data[field_label] || option.textContent;\n option_data[field_value] = option_data[field_value] || value;\n option_data[field_disabled] = option_data[field_disabled] || option.disabled;\n option_data[field_optgroup] = option_data[field_optgroup] || group;\n option_data.$option = option;\n optionsMap[value] = option_data;\n options.push(option_data);\n }\n if (option.selected) {\n settings_element.items.push(value);\n }\n };\n var addGroup = optgroup => {\n var id, optgroup_data;\n optgroup_data = readData(optgroup);\n optgroup_data[field_optgroup_label] = optgroup_data[field_optgroup_label] || optgroup.getAttribute('label') || '';\n optgroup_data[field_optgroup_value] = optgroup_data[field_optgroup_value] || group_count++;\n optgroup_data[field_disabled] = optgroup_data[field_disabled] || optgroup.disabled;\n settings_element.optgroups.push(optgroup_data);\n id = optgroup_data[field_optgroup_value];\n iterate(optgroup.children, option => {\n addOption(option, id);\n });\n };\n settings_element.maxItems = input.hasAttribute('multiple') ? null : 1;\n iterate(input.children, child => {\n tagName = child.tagName.toLowerCase();\n if (tagName === 'optgroup') {\n addGroup(child);\n } else if (tagName === 'option') {\n addOption(child);\n }\n });\n };\n\n /**\n * Initialize from a <input type=\"text\"> element.\n *\n */\n var init_textbox = () => {\n const data_raw = input.getAttribute(attr_data);\n if (!data_raw) {\n var value = input.value.trim() || '';\n if (!settings.allowEmptyOption && !value.length) return;\n const values = value.split(settings.delimiter);\n iterate(values, value => {\n const option = {};\n option[field_label] = value;\n option[field_value] = value;\n settings_element.options.push(option);\n });\n settings_element.items = values;\n } else {\n settings_element.options = JSON.parse(data_raw);\n iterate(settings_element.options, opt => {\n settings_element.items.push(opt[field_value]);\n });\n }\n };\n if (tag_name === 'select') {\n init_select();\n } else {\n init_textbox();\n }\n return Object.assign({}, defaults, settings_element, settings_user);\n}\n\nvar instance_i = 0;\nclass TomSelect extends MicroPlugin(MicroEvent) {\n constructor(input_arg, user_settings) {\n super();\n this.control_input = void 0;\n this.wrapper = void 0;\n this.dropdown = void 0;\n this.control = void 0;\n this.dropdown_content = void 0;\n this.focus_node = void 0;\n this.order = 0;\n this.settings = void 0;\n this.input = void 0;\n this.tabIndex = void 0;\n this.is_select_tag = void 0;\n this.rtl = void 0;\n this.inputId = void 0;\n this._destroy = void 0;\n this.sifter = void 0;\n this.isOpen = false;\n this.isDisabled = false;\n this.isRequired = void 0;\n this.isInvalid = false;\n // @deprecated 1.8\n this.isValid = true;\n this.isLocked = false;\n this.isFocused = false;\n this.isInputHidden = false;\n this.isSetup = false;\n this.ignoreFocus = false;\n this.ignoreHover = false;\n this.hasOptions = false;\n this.currentResults = void 0;\n this.lastValue = '';\n this.caretPos = 0;\n this.loading = 0;\n this.loadedSearches = {};\n this.activeOption = null;\n this.activeItems = [];\n this.optgroups = {};\n this.options = {};\n this.userOptions = {};\n this.items = [];\n instance_i++;\n var dir;\n var input = getDom(input_arg);\n if (input.tomselect) {\n throw new Error('Tom Select already initialized on this element');\n }\n input.tomselect = this;\n\n // detect rtl environment\n var computedStyle = window.getComputedStyle && window.getComputedStyle(input, null);\n dir = computedStyle.getPropertyValue('direction');\n\n // setup default state\n const settings = getSettings(input, user_settings);\n this.settings = settings;\n this.input = input;\n this.tabIndex = input.tabIndex || 0;\n this.is_select_tag = input.tagName.toLowerCase() === 'select';\n this.rtl = /rtl/i.test(dir);\n this.inputId = getId(input, 'tomselect-' + instance_i);\n this.isRequired = input.required;\n\n // search system\n this.sifter = new Sifter(this.options, {\n diacritics: settings.diacritics\n });\n\n // option-dependent defaults\n settings.mode = settings.mode || (settings.maxItems === 1 ? 'single' : 'multi');\n if (typeof settings.hideSelected !== 'boolean') {\n settings.hideSelected = settings.mode === 'multi';\n }\n if (typeof settings.hidePlaceholder !== 'boolean') {\n settings.hidePlaceholder = settings.mode !== 'multi';\n }\n\n // set up createFilter callback\n var filter = settings.createFilter;\n if (typeof filter !== 'function') {\n if (typeof filter === 'string') {\n filter = new RegExp(filter);\n }\n if (filter instanceof RegExp) {\n settings.createFilter = input => filter.test(input);\n } else {\n settings.createFilter = value => {\n return this.settings.duplicates || !this.options[value];\n };\n }\n }\n this.initializePlugins(settings.plugins);\n this.setupCallbacks();\n this.setupTemplates();\n\n // Create all elements\n const wrapper = getDom('<div>');\n const control = getDom('<div>');\n const dropdown = this._render('dropdown');\n const dropdown_content = getDom(`<div role=\"listbox\" tabindex=\"-1\">`);\n const classes = this.input.getAttribute('class') || '';\n const inputMode = settings.mode;\n var control_input;\n addClasses(wrapper, settings.wrapperClass, classes, inputMode);\n addClasses(control, settings.controlClass);\n append(wrapper, control);\n addClasses(dropdown, settings.dropdownClass, inputMode);\n if (settings.copyClassesToDropdown) {\n addClasses(dropdown, classes);\n }\n addClasses(dropdown_content, settings.dropdownContentClass);\n append(dropdown, dropdown_content);\n getDom(settings.dropdownParent || wrapper).appendChild(dropdown);\n\n // default controlInput\n if (isHtmlString(settings.controlInput)) {\n control_input = getDom(settings.controlInput);\n\n // set attributes\n var attrs = ['autocorrect', 'autocapitalize', 'autocomplete'];\n iterate$1(attrs, attr => {\n if (input.getAttribute(attr)) {\n setAttr(control_input, {\n [attr]: input.getAttribute(attr)\n });\n }\n });\n control_input.tabIndex = -1;\n control.appendChild(control_input);\n this.focus_node = control_input;\n\n // dom element\n } else if (settings.controlInput) {\n control_input = getDom(settings.controlInput);\n this.focus_node = control_input;\n } else {\n control_input = getDom('<input/>');\n this.focus_node = control;\n }\n this.wrapper = wrapper;\n this.dropdown = dropdown;\n this.dropdown_content = dropdown_content;\n this.control = control;\n this.control_input = control_input;\n this.setup();\n }\n\n /**\n * set up event bindings.\n *\n */\n setup() {\n const self = this;\n const settings = self.settings;\n const control_input = self.control_input;\n const dropdown = self.dropdown;\n const dropdown_content = self.dropdown_content;\n const wrapper = self.wrapper;\n const control = self.control;\n const input = self.input;\n const focus_node = self.focus_node;\n const passive_event = {\n passive: true\n };\n const listboxId = self.inputId + '-ts-dropdown';\n setAttr(dropdown_content, {\n id: listboxId\n });\n setAttr(focus_node, {\n role: 'combobox',\n 'aria-haspopup': 'listbox',\n 'aria-expanded': 'false',\n 'aria-controls': listboxId\n });\n const control_id = getId(focus_node, self.inputId + '-ts-control');\n const query = \"label[for='\" + escapeQuery(self.inputId) + \"']\";\n const label = document.querySelector(query);\n const label_click = self.focus.bind(self);\n const labelled_by = input.getAttribute('aria-labelledby');\n if (label) {\n addEvent(label, 'click', label_click);\n setAttr(label, {\n for: control_id\n });\n\n // const label_id = getId(label,self.inputId+'-ts-label');\n // setAttr(focus_node,{'aria-labelledby':label_id});\n // setAttr(dropdown_content,{'aria-labelledby':label_id});\n }\n\n if (labelled_by) {\n setAttr(focus_node, {\n 'aria-labelledby': labelled_by\n });\n setAttr(dropdown_content, {\n 'aria-labelledby': labelled_by\n });\n }\n wrapper.style.width = input.style.width;\n if (self.plugins.names.length) {\n const classes_plugins = 'plugin-' + self.plugins.names.join(' plugin-');\n addClasses([wrapper, dropdown], classes_plugins);\n }\n if (settings.mode === 'multi') {\n setAttr(dropdown_content, {\n 'aria-multiselectable': 'true'\n });\n if (self.is_select_tag) {\n setAttr(input, {\n multiple: 'multiple'\n });\n }\n }\n if (settings.placeholder) {\n setAttr(control_input, {\n placeholder: settings.placeholder\n });\n }\n\n // if splitOn was not passed in, construct it from the delimiter to allow pasting universally\n if (!settings.splitOn && settings.delimiter) {\n settings.splitOn = new RegExp('\\\\s*' + escape_regex(settings.delimiter) + '+\\\\s*');\n }\n\n // debounce user defined load() if loadThrottle > 0\n // after initializePlugins() so plugins can create/modify user defined loaders\n if (settings.load && settings.loadThrottle) {\n settings.load = loadDebounce(settings.load, settings.loadThrottle);\n }\n self.control_input.type = input.type;\n addEvent(dropdown, 'mousemove', () => {\n self.ignoreHover = false;\n });\n addEvent(dropdown, 'mouseenter', e => {\n var target_match = parentMatch(e.target, '[data-selectable]', dropdown);\n if (target_match) self.onOptionHover(e, target_match);\n }, {\n capture: true\n });\n\n // clicking on an option should select it\n addEvent(dropdown, 'click', evt => {\n const option = parentMatch(evt.target, '[data-selectable]');\n if (option) {\n self.onOptionSelect(evt, option);\n preventDefault(evt, true);\n }\n });\n addEvent(control, 'click', evt => {\n var target_match = parentMatch(evt.target, '[data-ts-item]', control);\n if (target_match && self.onItemSelect(evt, target_match)) {\n preventDefault(evt, true);\n return;\n }\n\n // retain focus (see control_input mousedown)\n if (control_input.value != '') {\n return;\n }\n self.onClick();\n preventDefault(evt, true);\n });\n\n // keydown on focus_node for arrow_down/arrow_up\n addEvent(focus_node, 'keydown', e => self.onKeyDown(e));\n\n // keypress and input/keyup\n addEvent(control_input, 'keypress', e => self.onKeyPress(e));\n addEvent(control_input, 'input', e => self.onInput(e));\n addEvent(focus_node, 'blur', e => self.onBlur(e));\n addEvent(focus_node, 'focus', e => self.onFocus(e));\n addEvent(control_input, 'paste', e => self.onPaste(e));\n const doc_mousedown = evt => {\n // blur if target is outside of this instance\n // dropdown is not always inside wrapper\n const target = evt.composedPath()[0];\n if (!wrapper.contains(target) && !dropdown.contains(target)) {\n if (self.isFocused) {\n self.blur();\n }\n self.inputState();\n return;\n }\n\n // retain focus by preventing native handling. if the\n // event target is the input it should not be modified.\n // otherwise, text selection within the input won't work.\n // Fixes bug #212 which is no covered by tests\n if (target == control_input && self.isOpen) {\n evt.stopPropagation();\n\n // clicking anywhere in the control should not blur the control_input (which would close the dropdown)\n } else {\n preventDefault(evt, true);\n }\n };\n const win_scroll = () => {\n if (self.isOpen) {\n self.positionDropdown();\n }\n };\n addEvent(document, 'mousedown', doc_mousedown);\n addEvent(window, 'scroll', win_scroll, passive_event);\n addEvent(window, 'resize', win_scroll, passive_event);\n this._destroy = () => {\n document.removeEventListener('mousedown', doc_mousedown);\n window.removeEventListener('scroll', win_scroll);\n window.removeEventListener('resize', win_scroll);\n if (label) label.removeEventListener('click', label_click);\n };\n\n // store original html and tab index so that they can be\n // restored when the destroy() method is called.\n this.revertSettings = {\n innerHTML: input.innerHTML,\n tabIndex: input.tabIndex\n };\n input.tabIndex = -1;\n input.insertAdjacentElement('afterend', self.wrapper);\n self.sync(false);\n settings.items = [];\n delete settings.optgroups;\n delete settings.options;\n addEvent(input, 'invalid', () => {\n if (self.isValid) {\n self.isValid = false;\n self.isInvalid = true;\n self.refreshState();\n }\n });\n self.updateOriginalInput();\n self.refreshItems();\n self.close(false);\n self.inputState();\n self.isSetup = true;\n if (input.disabled) {\n self.disable();\n } else {\n self.enable(); //sets tabIndex\n }\n\n self.on('change', this.onChange);\n addClasses(input, 'tomselected', 'ts-hidden-accessible');\n self.trigger('initialize');\n\n // preload options\n if (settings.preload === true) {\n self.preload();\n }\n }\n\n /**\n * Register options and optgroups\n *\n */\n setupOptions(options = [], optgroups = []) {\n // build options table\n this.addOptions(options);\n\n // build optgroup table\n iterate$1(optgroups, optgroup => {\n this.registerOptionGroup(optgroup);\n });\n }\n\n /**\n * Sets up default rendering functions.\n */\n setupTemplates() {\n var self = this;\n var field_label = self.settings.labelField;\n var field_optgroup = self.settings.optgroupLabelField;\n var templates = {\n 'optgroup': data => {\n let optgroup = document.createElement('div');\n optgroup.className = 'optgroup';\n optgroup.appendChild(data.options);\n return optgroup;\n },\n 'optgroup_header': (data, escape) => {\n return '<div class=\"optgroup-header\">' + escape(data[field_optgroup]) + '</div>';\n },\n 'option': (data, escape) => {\n return '<div>' + escape(data[field_label]) + '</div>';\n },\n 'item': (data, escape) => {\n return '<div>' + escape(data[field_label]) + '</div>';\n },\n 'option_create': (data, escape) => {\n return '<div class=\"create\">Add <strong>' + escape(data.input) + '</strong>…</div>';\n },\n 'no_results': () => {\n return '<div class=\"no-results\">No results found</div>';\n },\n 'loading': () => {\n return '<div class=\"spinner\"></div>';\n },\n 'not_loading': () => {},\n 'dropdown': () => {\n return '<div></div>';\n }\n };\n self.settings.render = Object.assign({}, templates, self.settings.render);\n }\n\n /**\n * Maps fired events to callbacks provided\n * in the settings used when creating the control.\n */\n setupCallbacks() {\n var key, fn;\n var callbacks = {\n 'initialize': 'onInitialize',\n 'change': 'onChange',\n 'item_add': 'onItemAdd',\n 'item_remove': 'onItemRemove',\n 'item_select': 'onItemSelect',\n 'clear': 'onClear',\n 'option_add': 'onOptionAdd',\n 'option_remove': 'onOptionRemove',\n 'option_clear': 'onOptionClear',\n 'optgroup_add': 'onOptionGroupAdd',\n 'optgroup_remove': 'onOptionGroupRemove',\n 'optgroup_clear': 'onOptionGroupClear',\n 'dropdown_open': 'onDropdownOpen',\n 'dropdown_close': 'onDropdownClose',\n 'type': 'onType',\n 'load': 'onLoad',\n 'focus': 'onFocus',\n 'blur': 'onBlur'\n };\n for (key in callbacks) {\n fn = this.settings[callbacks[key]];\n if (fn) this.on(key, fn);\n }\n }\n\n /**\n * Sync the Tom Select instance with the original input or select\n *\n */\n sync(get_settings = true) {\n const self = this;\n const settings = get_settings ? getSettings(self.input, {\n delimiter: self.settings.delimiter\n }) : self.settings;\n self.setupOptions(settings.options, settings.optgroups);\n self.setValue(settings.items || [], true); // silent prevents recursion\n\n self.lastQuery = null; // so updated options will be displayed in dropdown\n }\n\n /**\n * Triggered when the main control element\n * has a click event.\n *\n */\n onClick() {\n var self = this;\n if (self.activeItems.length > 0) {\n self.clearActiveItems();\n self.focus();\n return;\n }\n if (self.isFocused && self.isOpen) {\n self.blur();\n } else {\n self.focus();\n }\n }\n\n /**\n * @deprecated v1.7\n *\n */\n onMouseDown() {}\n\n /**\n * Triggered when the value of the control has been changed.\n * This should propagate the event to the original DOM\n * input / select element.\n */\n onChange() {\n triggerEvent(this.input, 'input');\n triggerEvent(this.input, 'change');\n }\n\n /**\n * Triggered on <input> paste.\n *\n */\n onPaste(e) {\n var self = this;\n if (self.isInputHidden || self.isLocked) {\n preventDefault(e);\n return;\n }\n\n // If a regex or string is included, this will split the pasted\n // input and create Items for each separate value\n if (!self.settings.splitOn) {\n return;\n }\n\n // Wait for pasted text to be recognized in value\n setTimeout(() => {\n var pastedText = self.inputValue();\n if (!pastedText.match(self.settings.splitOn)) {\n return;\n }\n var splitInput = pastedText.trim().split(self.settings.splitOn);\n iterate$1(splitInput, piece => {\n const hash = hash_key(piece);\n if (hash) {\n if (this.options[piece]) {\n self.addItem(piece);\n } else {\n self.createItem(piece);\n }\n }\n });\n }, 0);\n }\n\n /**\n * Triggered on <input> keypress.\n *\n */\n onKeyPress(e) {\n var self = this;\n if (self.isLocked) {\n preventDefault(e);\n return;\n }\n var character = String.fromCharCode(e.keyCode || e.which);\n if (self.settings.create && self.settings.mode === 'multi' && character === self.settings.delimiter) {\n self.createItem();\n preventDefault(e);\n return;\n }\n }\n\n /**\n * Triggered on <input> keydown.\n *\n */\n onKeyDown(e) {\n var self = this;\n self.ignoreHover = true;\n if (self.isLocked) {\n if (e.keyCode !== KEY_TAB) {\n preventDefault(e);\n }\n return;\n }\n switch (e.keyCode) {\n // ctrl+A: select all\n case KEY_A:\n if (isKeyDown(KEY_SHORTCUT, e)) {\n if (self.control_input.value == '') {\n preventDefault(e);\n self.selectAll();\n return;\n }\n }\n break;\n\n // esc: close dropdown\n case KEY_ESC:\n if (self.isOpen) {\n preventDefault(e, true);\n self.close();\n }\n self.clearActiveItems();\n return;\n\n // down: open dropdown or move selection down\n case KEY_DOWN:\n if (!self.isOpen && self.hasOptions) {\n self.open();\n } else if (self.activeOption) {\n let next = self.getAdjacent(self.activeOption, 1);\n if (next) self.setActiveOption(next);\n }\n preventDefault(e);\n return;\n\n // up: move selection up\n case KEY_UP:\n if (self.activeOption) {\n let prev = self.getAdjacent(self.activeOption, -1);\n if (prev) self.setActiveOption(prev);\n }\n preventDefault(e);\n return;\n\n // return: select active option\n case KEY_RETURN:\n if (self.canSelect(self.activeOption)) {\n self.onOptionSelect(e, self.activeOption);\n preventDefault(e);\n\n // if the option_create=null, the dropdown might be closed\n } else if (self.settings.create && self.createItem()) {\n preventDefault(e);\n\n // don't submit form when searching for a value\n } else if (document.activeElement == self.control_input && self.isOpen) {\n preventDefault(e);\n }\n return;\n\n // left: modifiy item selection to the left\n case KEY_LEFT:\n self.advanceSelection(-1, e);\n return;\n\n // right: modifiy item selection to the right\n case KEY_RIGHT:\n self.advanceSelection(1, e);\n return;\n\n // tab: select active option and/or create item\n case KEY_TAB:\n if (self.settings.selectOnTab) {\n if (self.canSelect(self.activeOption)) {\n self.onOptionSelect(e, self.activeOption);\n\n // prevent default [tab] behaviour of jump to the next field\n // if select isFull, then the dropdown won't be open and [tab] will work normally\n preventDefault(e);\n }\n if (self.settings.create && self.createItem()) {\n preventDefault(e);\n }\n }\n return;\n\n // delete|backspace: delete items\n case KEY_BACKSPACE:\n case KEY_DELETE:\n self.deleteSelection(e);\n return;\n }\n\n // don't enter text in the control_input when active items are selected\n if (self.isInputHidden && !isKeyDown(KEY_SHORTCUT, e)) {\n preventDefault(e);\n }\n }\n\n /**\n * Triggered on <input> keyup.\n *\n */\n onInput(e) {\n var self = this;\n if (self.isLocked) {\n return;\n }\n var value = this.settings.transformLoadQuery(this.control_input.value);\n if (self.lastValue !== value) {\n self.lastValue = value;\n if (self.settings.shouldLoad.call(self, value)) {\n self.load(value);\n }\n self.refreshOptions();\n self.trigger('type', value);\n }\n }\n\n /**\n * Triggered when the user rolls over\n * an option in the autocomplete dropdown menu.\n *\n */\n onOptionHover(evt, option) {\n if (this.ignoreHover) return;\n this.setActiveOption(option, false);\n }\n\n /**\n * Triggered on <input> focus.\n *\n */\n onFocus(e) {\n var self = this;\n var wasFocused = self.isFocused;\n if (self.isDisabled) {\n self.blur();\n preventDefault(e);\n return;\n }\n if (self.ignoreFocus) return;\n self.isFocused = true;\n if (self.settings.preload === 'focus') self.preload();\n if (!wasFocused) self.trigger('focus');\n if (!self.activeItems.length) {\n self.showInput();\n self.refreshOptions(!!self.settings.openOnFocus);\n }\n self.refreshState();\n }\n\n /**\n * Triggered on <input> blur.\n *\n */\n onBlur(e) {\n if (document.hasFocus() === false) return;\n var self = this;\n if (!self.isFocused) return;\n self.isFocused = false;\n self.ignoreFocus = false;\n var deactivate = () => {\n self.close();\n self.setActiveItem();\n self.setCaret(self.items.length);\n self.trigger('blur');\n };\n if (self.settings.create && self.settings.createOnBlur) {\n self.createItem(null, deactivate);\n } else {\n deactivate();\n }\n }\n\n /**\n * Triggered when the user clicks on an option\n * in the autocomplete dropdown menu.\n *\n */\n onOptionSelect(evt, option) {\n var value,\n self = this;\n\n // should not be possible to trigger a option under a disabled optgroup\n if (option.parentElement && option.parentElement.matches('[data-disabled]')) {\n return;\n }\n if (option.classList.contains('create')) {\n self.createItem(null, () => {\n if (self.settings.closeAfterSelect) {\n self.close();\n }\n });\n } else {\n value = option.dataset.value;\n if (typeof value !== 'undefined') {\n self.lastQuery = null;\n self.addItem(value);\n if (self.settings.closeAfterSelect) {\n self.close();\n }\n if (!self.settings.hideSelected && evt.type && /click/.test(evt.type)) {\n self.setActiveOption(option);\n }\n }\n }\n }\n\n /**\n * Return true if the given option can be selected\n *\n */\n canSelect(option) {\n if (this.isOpen && option && this.dropdown_content.contains(option)) {\n return true;\n }\n return false;\n }\n\n /**\n * Triggered when the user clicks on an item\n * that has been selected.\n *\n */\n onItemSelect(evt, item) {\n var self = this;\n if (!self.isLocked && self.settings.mode === 'multi') {\n preventDefault(evt);\n self.setActiveItem(item, evt);\n return true;\n }\n return false;\n }\n\n /**\n * Determines whether or not to invoke\n * the user-provided option provider / loader\n *\n * Note, there is a subtle difference between\n * this.canLoad() and this.settings.shouldLoad();\n *\n *\t- settings.shouldLoad() is a user-input validator.\n *\tWhen false is returned, the not_loading template\n *\twill be added to the dropdown\n *\n *\t- canLoad() is lower level validator that checks\n * \tthe Tom Select instance. There is no inherent user\n *\tfeedback when canLoad returns false\n *\n */\n canLoad(value) {\n if (!this.settings.load) return false;\n if (this.loadedSearches.hasOwnProperty(value)) return false;\n return true;\n }\n\n /**\n * Invokes the user-provided option provider / loader.\n *\n */\n load(value) {\n const self = this;\n if (!self.canLoad(value)) return;\n addClasses(self.wrapper, self.settings.loadingClass);\n self.loading++;\n const callback = self.loadCallback.bind(self);\n self.settings.load.call(self, value, callback);\n }\n\n /**\n * Invoked by the user-provided option provider\n *\n */\n loadCallback(options, optgroups) {\n const self = this;\n self.loading = Math.max(self.loading - 1, 0);\n self.lastQuery = null;\n self.clearActiveOption(); // when new results load, focus should be on first option\n self.setupOptions(options, optgroups);\n self.refreshOptions(self.isFocused && !self.isInputHidden);\n if (!self.loading) {\n removeClasses(self.wrapper, self.settings.loadingClass);\n }\n self.trigger('load', options, optgroups);\n }\n preload() {\n var classList = this.wrapper.classList;\n if (classList.contains('preloaded')) return;\n classList.add('preloaded');\n this.load('');\n }\n\n /**\n * Sets the input field of the control to the specified value.\n *\n */\n setTextboxValue(value = '') {\n var input = this.control_input;\n var changed = input.value !== value;\n if (changed) {\n input.value = value;\n triggerEvent(input, 'update');\n this.lastValue = value;\n }\n }\n\n /**\n * Returns the value of the control. If multiple items\n * can be selected (e.g. <select multiple>), this returns\n * an array. If only one item can be selected, this\n * returns a string.\n *\n */\n getValue() {\n if (this.settings.mode === 'multi' && this.is_select_tag) {\n return this.items;\n }\n return this.items.join(this.settings.delimiter);\n }\n\n /**\n * Resets the selected items to the given value.\n *\n */\n setValue(value, silent) {\n var events = silent ? [] : ['change'];\n debounce_events(this, events, () => {\n this.clear(silent);\n this.addItems(value, silent);\n });\n }\n\n /**\n * Resets the number of max items to the given value\n *\n */\n setMaxItems(value) {\n if (value === 0) value = null; //reset to unlimited items.\n this.settings.maxItems = value;\n this.refreshState();\n }\n\n /**\n * Sets the selected item.\n *\n */\n setActiveItem(item, e) {\n var self = this;\n var eventName;\n var i, begin, end, swap;\n var last;\n if (self.settings.mode === 'single') return;\n\n // clear the active selection\n if (!item) {\n self.clearActiveItems();\n if (self.isFocused) {\n self.showInput();\n }\n return;\n }\n\n // modify selection\n eventName = e && e.type.toLowerCase();\n if (eventName === 'click' && isKeyDown('shiftKey', e) && self.activeItems.length) {\n last = self.getLastActive();\n begin = Array.prototype.indexOf.call(self.control.children, last);\n end = Array.prototype.indexOf.call(self.control.children, item);\n if (begin > end) {\n swap = begin;\n begin = end;\n end = swap;\n }\n for (i = begin; i <= end; i++) {\n item = self.control.children[i];\n if (self.activeItems.indexOf(item) === -1) {\n self.setActiveItemClass(item);\n }\n }\n preventDefault(e);\n } else if (eventName === 'click' && isKeyDown(KEY_SHORTCUT, e) || eventName === 'keydown' && isKeyDown('shiftKey', e)) {\n if (item.classList.contains('active')) {\n self.removeActiveItem(item);\n } else {\n self.setActiveItemClass(item);\n }\n } else {\n self.clearActiveItems();\n self.setActiveItemClass(item);\n }\n\n // ensure control has focus\n self.hideInput();\n if (!self.isFocused) {\n self.focus();\n }\n }\n\n /**\n * Set the active and last-active classes\n *\n */\n setActiveItemClass(item) {\n const self = this;\n const last_active = self.control.querySelector('.last-active');\n if (last_active) removeClasses(last_active, 'last-active');\n addClasses(item, 'active last-active');\n self.trigger('item_select', item);\n if (self.activeItems.indexOf(item) == -1) {\n self.activeItems.push(item);\n }\n }\n\n /**\n * Remove active item\n *\n */\n removeActiveItem(item) {\n var idx = this.activeItems.indexOf(item);\n this.activeItems.splice(idx, 1);\n removeClasses(item, 'active');\n }\n\n /**\n * Clears all the active items\n *\n */\n clearActiveItems() {\n removeClasses(this.activeItems, 'active');\n this.activeItems = [];\n }\n\n /**\n * Sets the selected item in the dropdown menu\n * of available options.\n *\n */\n setActiveOption(option, scroll = true) {\n if (option === this.activeOption) {\n return;\n }\n this.clearActiveOption();\n if (!option) return;\n this.activeOption = option;\n setAttr(this.focus_node, {\n 'aria-activedescendant': option.getAttribute('id')\n });\n if (this.settings.mode === 'single' || this.settings.hideSelected) {\n setAttr(option, {\n 'aria-selected': 'true'\n });\n }\n addClasses(option, 'active');\n if (scroll) this.scrollToOption(option);\n }\n\n /**\n * Sets the dropdown_content scrollTop to display the option\n *\n */\n scrollToOption(option, behavior) {\n if (!option) return;\n const content = this.dropdown_content;\n const height_menu = content.clientHeight;\n const scrollTop = content.scrollTop || 0;\n const height_item = option.offsetHeight;\n const y = option.getBoundingClientRect().top - content.getBoundingClientRect().top + scrollTop;\n if (y + height_item > height_menu + scrollTop) {\n this.scroll(y - height_menu + height_item, behavior);\n } else if (y < scrollTop) {\n this.scroll(y, behavior);\n }\n }\n\n /**\n * Scroll the dropdown to the given position\n *\n */\n scroll(scrollTop, behavior) {\n const content = this.dropdown_content;\n if (behavior) {\n content.style.scrollBehavior = behavior;\n }\n content.scrollTop = scrollTop;\n content.style.scrollBehavior = '';\n }\n\n /**\n * Clears the active option\n *\n */\n clearActiveOption() {\n if (this.activeOption) {\n removeClasses(this.activeOption, 'active');\n if (this.settings.mode === 'single' || this.settings.hideSelected) {\n setAttr(this.activeOption, {\n 'aria-selected': null\n });\n }\n }\n this.activeOption = null;\n setAttr(this.focus_node, {\n 'aria-activedescendant': null\n });\n }\n\n /**\n * Selects all items (CTRL + A).\n */\n selectAll() {\n const self = this;\n if (self.settings.mode === 'single') return;\n const activeItems = self.controlChildren();\n if (!activeItems.length) return;\n self.hideInput();\n self.close();\n self.activeItems = activeItems;\n iterate$1(activeItems, item => {\n self.setActiveItemClass(item);\n });\n }\n\n /**\n * Determines if the control_input should be in a hidden or visible state\n *\n */\n inputState() {\n var self = this;\n if (!self.control.contains(self.control_input)) return;\n setAttr(self.control_input, {\n placeholder: self.settings.placeholder\n });\n if (self.activeItems.length > 0 || !self.isFocused && self.settings.hidePlaceholder && self.items.length > 0) {\n self.setTextboxValue();\n self.isInputHidden = true;\n } else {\n if (self.settings.hidePlaceholder && self.items.length > 0) {\n setAttr(self.control_input, {\n placeholder: ''\n });\n }\n self.isInputHidden = false;\n }\n self.wrapper.classList.toggle('input-hidden', self.isInputHidden);\n }\n\n /**\n * Hides the input element out of view, while\n * retaining its focus.\n * @deprecated 1.3\n */\n hideInput() {\n this.inputState();\n }\n\n /**\n * Restores input visibility.\n * @deprecated 1.3\n */\n showInput() {\n this.inputState();\n }\n\n /**\n * Get the input value\n */\n inputValue() {\n return this.control_input.value.trim();\n }\n\n /**\n * Gives the control focus.\n */\n focus() {\n var self = this;\n if (self.isDisabled) return;\n self.ignoreFocus = true;\n if (self.control_input.offsetWidth) {\n self.control_input.focus();\n } else {\n self.focus_node.focus();\n }\n setTimeout(() => {\n self.ignoreFocus = false;\n self.onFocus();\n }, 0);\n }\n\n /**\n * Forces the control out of focus.\n *\n */\n blur() {\n this.focus_node.blur();\n this.onBlur();\n }\n\n /**\n * Returns a function that scores an object\n * to show how good of a match it is to the\n * provided query.\n *\n * @return {function}\n */\n getScoreFunction(query) {\n return this.sifter.getScoreFunction(query, this.getSearchOptions());\n }\n\n /**\n * Returns search options for sifter (the system\n * for scoring and sorting results).\n *\n * @see https://github.com/orchidjs/sifter.js\n * @return {object}\n */\n getSearchOptions() {\n var settings = this.settings;\n var sort = settings.sortField;\n if (typeof settings.sortField === 'string') {\n sort = [{\n field: settings.sortField\n }];\n }\n return {\n fields: settings.searchField,\n conjunction: settings.searchConjunction,\n sort: sort,\n nesting: settings.nesting\n };\n }\n\n /**\n * Searches through available options and returns\n * a sorted array of matches.\n *\n */\n search(query) {\n var result, calculateScore;\n var self = this;\n var options = this.getSearchOptions();\n\n // validate user-provided result scoring function\n if (self.settings.score) {\n calculateScore = self.settings.score.call(self, query);\n if (typeof calculateScore !== 'function') {\n throw new Error('Tom Select \"score\" setting must be a function that returns a function');\n }\n }\n\n // perform search\n if (query !== self.lastQuery) {\n self.lastQuery = query;\n result = self.sifter.search(query, Object.assign(options, {\n score: calculateScore\n }));\n self.currentResults = result;\n } else {\n result = Object.assign({}, self.currentResults);\n }\n\n // filter out selected items\n if (self.settings.hideSelected) {\n result.items = result.items.filter(item => {\n let hashed = hash_key(item.id);\n return !(hashed && self.items.indexOf(hashed) !== -1);\n });\n }\n return result;\n }\n\n /**\n * Refreshes the list of available options shown\n * in the autocomplete dropdown menu.\n *\n */\n refreshOptions(triggerDropdown = true) {\n var i, j, k, n, optgroup, optgroups, html, has_create_option, active_group;\n var create;\n const groups = {};\n const groups_order = [];\n var self = this;\n var query = this.settings.transformLoadQuery(this.control_input.value);\n const same_query = query === self.lastQuery || query == '' && self.lastQuery == null;\n var results = self.search(query);\n var active_option = null;\n var show_dropdown = self.settings.shouldOpen || false;\n var dropdown_content = self.dropdown_content;\n if (same_query) {\n active_option = self.activeOption;\n if (active_option) {\n active_group = active_option.closest('[data-group]');\n }\n }\n\n // build markup\n n = results.items.length;\n if (typeof self.settings.maxOptions === 'number') {\n n = Math.min(n, self.settings.maxOptions);\n }\n if (n > 0) {\n show_dropdown = true;\n }\n\n // render and group available options individually\n for (i = 0; i < n; i++) {\n // get option dom element\n let item = results.items[i];\n if (!item) continue;\n let opt_value = item.id;\n let option = self.options[opt_value];\n if (option === undefined) continue;\n let opt_hash = get_hash(opt_value);\n let option_el = self.getOption(opt_hash, true);\n const option_selected = self.items.includes(opt_hash);\n\n // toggle 'selected' class\n if (!self.settings.hideSelected) {\n option_el.classList.toggle('selected', option_selected);\n if (this.settings.mode === 'multi') {\n setAttr(option_el, {\n 'aria-selected': option_selected ? 'true' : 'false'\n });\n }\n }\n optgroup = option[self.settings.optgroupField] || '';\n optgroups = Array.isArray(optgroup) ? optgroup : [optgroup];\n for (j = 0, k = optgroups && optgroups.length; j < k; j++) {\n optgroup = optgroups[j];\n if (!self.optgroups.hasOwnProperty(optgroup)) {\n optgroup = '';\n }\n let group_fragment = groups[optgroup];\n if (group_fragment === undefined) {\n group_fragment = document.createDocumentFragment();\n groups_order.push(optgroup);\n }\n\n // nodes can only have one parent, so if the option is in mutple groups, we need a clone\n if (j > 0) {\n option_el = option_el.cloneNode(true);\n if (this.settings.mode === 'multi' && !self.settings.hideSelected) {\n setAttr(option_el, {\n id: option.$id + '-clone-' + j,\n 'aria-selected': option_selected ? 'true' : 'false'\n });\n } else {\n setAttr(option_el, {\n id: option.$id + '-clone-' + j,\n 'aria-selected': null\n });\n }\n option_el.classList.add('ts-cloned');\n removeClasses(option_el, 'active');\n\n // make sure we keep the activeOption in the same group\n if (self.activeOption && self.activeOption.dataset.value == opt_value) {\n if (active_group && active_group.dataset.group === optgroup.toString()) {\n active_option = option_el;\n }\n }\n }\n group_fragment.appendChild(option_el);\n groups[optgroup] = group_fragment;\n }\n }\n\n // sort optgroups\n if (self.settings.lockOptgroupOrder) {\n groups_order.sort((a, b) => {\n const grp_a = self.optgroups[a];\n const grp_b = self.optgroups[b];\n const a_order = grp_a && grp_a.$order || 0;\n const b_order = grp_b && grp_b.$order || 0;\n return a_order - b_order;\n });\n }\n\n // render optgroup headers & join groups\n html = document.createDocumentFragment();\n iterate$1(groups_order, optgroup => {\n let group_fragment = groups[optgroup];\n if (!group_fragment || !group_fragment.children.length) return;\n let group_heading = self.optgroups[optgroup];\n if (group_heading !== undefined) {\n let group_options = document.createDocumentFragment();\n let header = self.render('optgroup_header', group_heading);\n append(group_options, header);\n append(group_options, group_fragment);\n let group_html = self.render('optgroup', {\n group: group_heading,\n options: group_options\n });\n append(html, group_html);\n } else {\n append(html, group_fragment);\n }\n });\n dropdown_content.innerHTML = '';\n append(dropdown_content, html);\n\n // highlight matching terms inline\n if (self.settings.highlight) {\n removeHighlight(dropdown_content);\n if (results.query.length && results.tokens.length) {\n iterate$1(results.tokens, tok => {\n highlight(dropdown_content, tok.regex);\n });\n }\n }\n\n // helper method for adding templates to dropdown\n var add_template = template => {\n let content = self.render(template, {\n input: query\n });\n if (content) {\n show_dropdown = true;\n dropdown_content.insertBefore(content, dropdown_content.firstChild);\n }\n return content;\n };\n\n // add loading message\n if (self.loading) {\n add_template('loading');\n\n // invalid query\n } else if (!self.settings.shouldLoad.call(self, query)) {\n add_template('not_loading');\n\n // add no_results message\n } else if (results.items.length === 0) {\n add_template('no_results');\n }\n\n // add create option\n has_create_option = self.canCreate(query);\n if (has_create_option) {\n create = add_template('option_create');\n }\n\n // activate\n self.hasOptions = results.items.length > 0 || has_create_option;\n if (show_dropdown) {\n if (results.items.length > 0) {\n if (!active_option && self.settings.mode === 'single' && self.items[0] != undefined) {\n active_option = self.getOption(self.items[0]);\n }\n if (!dropdown_content.contains(active_option)) {\n let active_index = 0;\n if (create && !self.settings.addPrecedence) {\n active_index = 1;\n }\n active_option = self.selectable()[active_index];\n }\n } else if (create) {\n active_option = create;\n }\n if (triggerDropdown && !self.isOpen) {\n self.open();\n self.scrollToOption(active_option, 'auto');\n }\n self.setActiveOption(active_option);\n } else {\n self.clearActiveOption();\n if (triggerDropdown && self.isOpen) {\n self.close(false); // if create_option=null, we want the dropdown to close but not reset the textbox value\n }\n }\n }\n\n /**\n * Return list of selectable options\n *\n */\n selectable() {\n return this.dropdown_content.querySelectorAll('[data-selectable]');\n }\n\n /**\n * Adds an available option. If it already exists,\n * nothing will happen. Note: this does not refresh\n * the options list dropdown (use `refreshOptions`\n * for that).\n *\n * Usage:\n *\n * this.addOption(data)\n *\n */\n addOption(data, user_created = false) {\n const self = this;\n\n // @deprecated 1.7.7\n // use addOptions( array, user_created ) for adding multiple options\n if (Array.isArray(data)) {\n self.addOptions(data, user_created);\n return false;\n }\n const key = hash_key(data[self.settings.valueField]);\n if (key === null || self.options.hasOwnProperty(key)) {\n return false;\n }\n data.$order = data.$order || ++self.order;\n data.$id = self.inputId + '-opt-' + data.$order;\n self.options[key] = data;\n self.lastQuery = null;\n if (user_created) {\n self.userOptions[key] = user_created;\n self.trigger('option_add', key, data);\n }\n return key;\n }\n\n /**\n * Add multiple options\n *\n */\n addOptions(data, user_created = false) {\n iterate$1(data, dat => {\n this.addOption(dat, user_created);\n });\n }\n\n /**\n * @deprecated 1.7.7\n */\n registerOption(data) {\n return this.addOption(data);\n }\n\n /**\n * Registers an option group to the pool of option groups.\n *\n * @return {boolean|string}\n */\n registerOptionGroup(data) {\n var key = hash_key(data[this.settings.optgroupValueField]);\n if (key === null) return false;\n data.$order = data.$order || ++this.order;\n this.optgroups[key] = data;\n return key;\n }\n\n /**\n * Registers a new optgroup for options\n * to be bucketed into.\n *\n */\n addOptionGroup(id, data) {\n var hashed_id;\n data[this.settings.optgroupValueField] = id;\n if (hashed_id = this.registerOptionGroup(data)) {\n this.trigger('optgroup_add', hashed_id, data);\n }\n }\n\n /**\n * Removes an existing option group.\n *\n */\n removeOptionGroup(id) {\n if (this.optgroups.hasOwnProperty(id)) {\n delete this.optgroups[id];\n this.clearCache();\n this.trigger('optgroup_remove', id);\n }\n }\n\n /**\n * Clears all existing option groups.\n */\n clearOptionGroups() {\n this.optgroups = {};\n this.clearCache();\n this.trigger('optgroup_clear');\n }\n\n /**\n * Updates an option available for selection. If\n * it is visible in the selected items or options\n * dropdown, it will be re-rendered automatically.\n *\n */\n updateOption(value, data) {\n const self = this;\n var item_new;\n var index_item;\n const value_old = hash_key(value);\n const value_new = hash_key(data[self.settings.valueField]);\n\n // sanity checks\n if (value_old === null) return;\n const data_old = self.options[value_old];\n if (data_old == undefined) return;\n if (typeof value_new !== 'string') throw new Error('Value must be set in option data');\n const option = self.getOption(value_old);\n const item = self.getItem(value_old);\n data.$order = data.$order || data_old.$order;\n delete self.options[value_old];\n\n // invalidate render cache\n // don't remove existing node yet, we'll remove it after replacing it\n self.uncacheValue(value_new);\n self.options[value_new] = data;\n\n // update the option if it's in the dropdown\n if (option) {\n if (self.dropdown_content.contains(option)) {\n const option_new = self._render('option', data);\n replaceNode(option, option_new);\n if (self.activeOption === option) {\n self.setActiveOption(option_new);\n }\n }\n option.remove();\n }\n\n // update the item if we have one\n if (item) {\n index_item = self.items.indexOf(value_old);\n if (index_item !== -1) {\n self.items.splice(index_item, 1, value_new);\n }\n item_new = self._render('item', data);\n if (item.classList.contains('active')) addClasses(item_new, 'active');\n replaceNode(item, item_new);\n }\n\n // invalidate last query because we might have updated the sortField\n self.lastQuery = null;\n }\n\n /**\n * Removes a single option.\n *\n */\n removeOption(value, silent) {\n const self = this;\n value = get_hash(value);\n self.uncacheValue(value);\n delete self.userOptions[value];\n delete self.options[value];\n self.lastQuery = null;\n self.trigger('option_remove', value);\n self.removeItem(value, silent);\n }\n\n /**\n * Clears all options.\n */\n clearOptions(filter) {\n const boundFilter = (filter || this.clearFilter).bind(this);\n this.loadedSearches = {};\n this.userOptions = {};\n this.clearCache();\n const selected = {};\n iterate$1(this.options, (option, key) => {\n if (boundFilter(option, key)) {\n selected[key] = option;\n }\n });\n this.options = this.sifter.items = selected;\n this.lastQuery = null;\n this.trigger('option_clear');\n }\n\n /**\n * Used by clearOptions() to decide whether or not an option should be removed\n * Return true to keep an option, false to remove\n *\n */\n clearFilter(option, value) {\n if (this.items.indexOf(value) >= 0) {\n return true;\n }\n return false;\n }\n\n /**\n * Returns the dom element of the option\n * matching the given value.\n *\n */\n getOption(value, create = false) {\n const hashed = hash_key(value);\n if (hashed === null) return null;\n const option = this.options[hashed];\n if (option != undefined) {\n if (option.$div) {\n return option.$div;\n }\n if (create) {\n return this._render('option', option);\n }\n }\n return null;\n }\n\n /**\n * Returns the dom element of the next or previous dom element of the same type\n * Note: adjacent options may not be adjacent DOM elements (optgroups)\n *\n */\n getAdjacent(option, direction, type = 'option') {\n var self = this,\n all;\n if (!option) {\n return null;\n }\n if (type == 'item') {\n all = self.controlChildren();\n } else {\n all = self.dropdown_content.querySelectorAll('[data-selectable]');\n }\n for (let i = 0; i < all.length; i++) {\n if (all[i] != option) {\n continue;\n }\n if (direction > 0) {\n return all[i + 1];\n }\n return all[i - 1];\n }\n return null;\n }\n\n /**\n * Returns the dom element of the item\n * matching the given value.\n *\n */\n getItem(item) {\n if (typeof item == 'object') {\n return item;\n }\n var value = hash_key(item);\n return value !== null ? this.control.querySelector(`[data-value=\"${addSlashes(value)}\"]`) : null;\n }\n\n /**\n * \"Selects\" multiple items at once. Adds them to the list\n * at the current caret position.\n *\n */\n addItems(values, silent) {\n var self = this;\n var items = Array.isArray(values) ? values : [values];\n items = items.filter(x => self.items.indexOf(x) === -1);\n const last_item = items[items.length - 1];\n items.forEach(item => {\n self.isPending = item !== last_item;\n self.addItem(item, silent);\n });\n }\n\n /**\n * \"Selects\" an item. Adds it to the list\n * at the current caret position.\n *\n */\n addItem(value, silent) {\n var events = silent ? [] : ['change', 'dropdown_close'];\n debounce_events(this, events, () => {\n var item, wasFull;\n const self = this;\n const inputMode = self.settings.mode;\n const hashed = hash_key(value);\n if (hashed && self.items.indexOf(hashed) !== -1) {\n if (inputMode === 'single') {\n self.close();\n }\n if (inputMode === 'single' || !self.settings.duplicates) {\n return;\n }\n }\n if (hashed === null || !self.options.hasOwnProperty(hashed)) return;\n if (inputMode === 'single') self.clear(silent);\n if (inputMode === 'multi' && self.isFull()) return;\n item = self._render('item', self.options[hashed]);\n if (self.control.contains(item)) {\n // duplicates\n item = item.cloneNode(true);\n }\n wasFull = self.isFull();\n self.items.splice(self.caretPos, 0, hashed);\n self.insertAtCaret(item);\n if (self.isSetup) {\n // update menu / remove the option (if this is not one item being added as part of series)\n if (!self.isPending && self.settings.hideSelected) {\n let option = self.getOption(hashed);\n let next = self.getAdjacent(option, 1);\n if (next) {\n self.setActiveOption(next);\n }\n }\n\n // refreshOptions after setActiveOption(),\n // otherwise setActiveOption() will be called by refreshOptions() with the wrong value\n if (!self.isPending && !self.settings.closeAfterSelect) {\n self.refreshOptions(self.isFocused && inputMode !== 'single');\n }\n\n // hide the menu if the maximum number of items have been selected or no options are left\n if (self.settings.closeAfterSelect != false && self.isFull()) {\n self.close();\n } else if (!self.isPending) {\n self.positionDropdown();\n }\n self.trigger('item_add', hashed, item);\n if (!self.isPending) {\n self.updateOriginalInput({\n silent: silent\n });\n }\n }\n if (!self.isPending || !wasFull && self.isFull()) {\n self.inputState();\n self.refreshState();\n }\n });\n }\n\n /**\n * Removes the selected item matching\n * the provided value.\n *\n */\n removeItem(item = null, silent) {\n const self = this;\n item = self.getItem(item);\n if (!item) return;\n var i, idx;\n const value = item.dataset.value;\n i = nodeIndex(item);\n item.remove();\n if (item.classList.contains('active')) {\n idx = self.activeItems.indexOf(item);\n self.activeItems.splice(idx, 1);\n removeClasses(item, 'active');\n }\n self.items.splice(i, 1);\n self.lastQuery = null;\n if (!self.settings.persist && self.userOptions.hasOwnProperty(value)) {\n self.removeOption(value, silent);\n }\n if (i < self.caretPos) {\n self.setCaret(self.caretPos - 1);\n }\n self.updateOriginalInput({\n silent: silent\n });\n self.refreshState();\n self.positionDropdown();\n self.trigger('item_remove', value, item);\n }\n\n /**\n * Invokes the `create` method provided in the\n * TomSelect options that should provide the data\n * for the new item, given the user input.\n *\n * Once this completes, it will be added\n * to the item list.\n *\n */\n createItem(input = null, callback = () => {}) {\n // triggerDropdown parameter @deprecated 2.1.1\n if (arguments.length === 3) {\n callback = arguments[2];\n }\n if (typeof callback != 'function') {\n callback = () => {};\n }\n var self = this;\n var caret = self.caretPos;\n var output;\n input = input || self.inputValue();\n if (!self.canCreate(input)) {\n callback();\n return false;\n }\n self.lock();\n var created = false;\n var create = data => {\n self.unlock();\n if (!data || typeof data !== 'object') return callback();\n var value = hash_key(data[self.settings.valueField]);\n if (typeof value !== 'string') {\n return callback();\n }\n self.setTextboxValue();\n self.addOption(data, true);\n self.setCaret(caret);\n self.addItem(value);\n callback(data);\n created = true;\n };\n if (typeof self.settings.create === 'function') {\n output = self.settings.create.call(this, input, create);\n } else {\n output = {\n [self.settings.labelField]: input,\n [self.settings.valueField]: input\n };\n }\n if (!created) {\n create(output);\n }\n return true;\n }\n\n /**\n * Re-renders the selected item lists.\n */\n refreshItems() {\n var self = this;\n self.lastQuery = null;\n if (self.isSetup) {\n self.addItems(self.items);\n }\n self.updateOriginalInput();\n self.refreshState();\n }\n\n /**\n * Updates all state-dependent attributes\n * and CSS classes.\n */\n refreshState() {\n const self = this;\n self.refreshValidityState();\n const isFull = self.isFull();\n const isLocked = self.isLocked;\n self.wrapper.classList.toggle('rtl', self.rtl);\n const wrap_classList = self.wrapper.classList;\n wrap_classList.toggle('focus', self.isFocused);\n wrap_classList.toggle('disabled', self.isDisabled);\n wrap_classList.toggle('required', self.isRequired);\n wrap_classList.toggle('invalid', !self.isValid);\n wrap_classList.toggle('locked', isLocked);\n wrap_classList.toggle('full', isFull);\n wrap_classList.toggle('input-active', self.isFocused && !self.isInputHidden);\n wrap_classList.toggle('dropdown-active', self.isOpen);\n wrap_classList.toggle('has-options', isEmptyObject(self.options));\n wrap_classList.toggle('has-items', self.items.length > 0);\n }\n\n /**\n * Update the `required` attribute of both input and control input.\n *\n * The `required` property needs to be activated on the control input\n * for the error to be displayed at the right place. `required` also\n * needs to be temporarily deactivated on the input since the input is\n * hidden and can't show errors.\n */\n refreshValidityState() {\n var self = this;\n if (!self.input.validity) {\n return;\n }\n self.isValid = self.input.validity.valid;\n self.isInvalid = !self.isValid;\n }\n\n /**\n * Determines whether or not more items can be added\n * to the control without exceeding the user-defined maximum.\n *\n * @returns {boolean}\n */\n isFull() {\n return this.settings.maxItems !== null && this.items.length >= this.settings.maxItems;\n }\n\n /**\n * Refreshes the original <select> or <input>\n * element to reflect the current state.\n *\n */\n updateOriginalInput(opts = {}) {\n const self = this;\n var option, label;\n const empty_option = self.input.querySelector('option[value=\"\"]');\n if (self.is_select_tag) {\n const selected = [];\n const has_selected = self.input.querySelectorAll('option:checked').length;\n function AddSelected(option_el, value, label) {\n if (!option_el) {\n option_el = getDom('<option value=\"' + escape_html(value) + '\">' + escape_html(label) + '</option>');\n }\n\n // don't move empty option from top of list\n // fixes bug in firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1725293\n if (option_el != empty_option) {\n self.input.append(option_el);\n }\n selected.push(option_el);\n\n // marking empty option as selected can break validation\n // fixes https://github.com/orchidjs/tom-select/issues/303\n if (option_el != empty_option || has_selected > 0) {\n option_el.selected = true;\n }\n return option_el;\n }\n\n // unselect all selected options\n self.input.querySelectorAll('option:checked').forEach(option_el => {\n option_el.selected = false;\n });\n\n // nothing selected?\n if (self.items.length == 0 && self.settings.mode == 'single') {\n AddSelected(empty_option, \"\", \"\");\n\n // order selected <option> tags for values in self.items\n } else {\n self.items.forEach(value => {\n option = self.options[value];\n label = option[self.settings.labelField] || '';\n if (selected.includes(option.$option)) {\n const reuse_opt = self.input.querySelector(`option[value=\"${addSlashes(value)}\"]:not(:checked)`);\n AddSelected(reuse_opt, value, label);\n } else {\n option.$option = AddSelected(option.$option, value, label);\n }\n });\n }\n } else {\n self.input.value = self.getValue();\n }\n if (self.isSetup) {\n if (!opts.silent) {\n self.trigger('change', self.getValue());\n }\n }\n }\n\n /**\n * Shows the autocomplete dropdown containing\n * the available options.\n */\n open() {\n var self = this;\n if (self.isLocked || self.isOpen || self.settings.mode === 'multi' && self.isFull()) return;\n self.isOpen = true;\n setAttr(self.focus_node, {\n 'aria-expanded': 'true'\n });\n self.refreshState();\n applyCSS(self.dropdown, {\n visibility: 'hidden',\n display: self.settings.openDisplay\n });\n self.positionDropdown();\n applyCSS(self.dropdown, {\n visibility: 'visible',\n display: self.settings.openDisplay\n });\n self.focus();\n self.trigger('dropdown_open', self.dropdown);\n }\n\n /**\n * Closes the autocomplete dropdown menu.\n */\n close(setTextboxValue = true) {\n var self = this;\n var trigger = self.isOpen;\n if (setTextboxValue) {\n // before blur() to prevent form onchange event\n self.setTextboxValue();\n if (self.settings.mode === 'single' && self.items.length) {\n self.hideInput();\n }\n }\n self.isOpen = false;\n setAttr(self.focus_node, {\n 'aria-expanded': 'false'\n });\n applyCSS(self.dropdown, {\n display: 'none'\n });\n if (self.settings.hideSelected) {\n self.clearActiveOption();\n }\n self.refreshState();\n if (trigger) self.trigger('dropdown_close', self.dropdown);\n }\n\n /**\n * Calculates and applies the appropriate\n * position of the dropdown if dropdownParent = 'body'.\n * Otherwise, position is determined by css\n */\n positionDropdown() {\n if (this.settings.dropdownParent !== 'body') {\n return;\n }\n var context = this.control;\n var rect = context.getBoundingClientRect();\n var top = context.offsetHeight + rect.top + window.scrollY;\n var left = rect.left + window.scrollX;\n applyCSS(this.dropdown, {\n width: rect.width + 'px',\n top: top + 'px',\n left: left + 'px'\n });\n }\n\n /**\n * Resets / clears all selected items\n * from the control.\n *\n */\n clear(silent) {\n var self = this;\n if (!self.items.length) return;\n var items = self.controlChildren();\n iterate$1(items, item => {\n self.removeItem(item, true);\n });\n self.showInput();\n if (!silent) self.updateOriginalInput();\n self.trigger('clear');\n }\n\n /**\n * A helper method for inserting an element\n * at the current caret position.\n *\n */\n insertAtCaret(el) {\n const self = this;\n const caret = self.caretPos;\n const target = self.control;\n target.insertBefore(el, target.children[caret] || null);\n self.setCaret(caret + 1);\n }\n\n /**\n * Removes the current selected item(s).\n *\n */\n deleteSelection(e) {\n var direction, selection, caret, tail;\n var self = this;\n direction = e && e.keyCode === KEY_BACKSPACE ? -1 : 1;\n selection = getSelection(self.control_input);\n\n // determine items that will be removed\n const rm_items = [];\n if (self.activeItems.length) {\n tail = getTail(self.activeItems, direction);\n caret = nodeIndex(tail);\n if (direction > 0) {\n caret++;\n }\n iterate$1(self.activeItems, item => rm_items.push(item));\n } else if ((self.isFocused || self.settings.mode === 'single') && self.items.length) {\n const items = self.controlChildren();\n let rm_item;\n if (direction < 0 && selection.start === 0 && selection.length === 0) {\n rm_item = items[self.caretPos - 1];\n } else if (direction > 0 && selection.start === self.inputValue().length) {\n rm_item = items[self.caretPos];\n }\n if (rm_item !== undefined) {\n rm_items.push(rm_item);\n }\n }\n if (!self.shouldDelete(rm_items, e)) {\n return false;\n }\n preventDefault(e, true);\n\n // perform removal\n if (typeof caret !== 'undefined') {\n self.setCaret(caret);\n }\n while (rm_items.length) {\n self.removeItem(rm_items.pop());\n }\n self.showInput();\n self.positionDropdown();\n self.refreshOptions(false);\n return true;\n }\n\n /**\n * Return true if the items should be deleted\n */\n shouldDelete(items, evt) {\n const values = items.map(item => item.dataset.value);\n\n // allow the callback to abort\n if (!values.length || typeof this.settings.onDelete === 'function' && this.settings.onDelete(values, evt) === false) {\n return false;\n }\n return true;\n }\n\n /**\n * Selects the previous / next item (depending on the `direction` argument).\n *\n * > 0 - right\n * < 0 - left\n *\n */\n advanceSelection(direction, e) {\n var last_active,\n adjacent,\n self = this;\n if (self.rtl) direction *= -1;\n if (self.inputValue().length) return;\n\n // add or remove to active items\n if (isKeyDown(KEY_SHORTCUT, e) || isKeyDown('shiftKey', e)) {\n last_active = self.getLastActive(direction);\n if (last_active) {\n if (!last_active.classList.contains('active')) {\n adjacent = last_active;\n } else {\n adjacent = self.getAdjacent(last_active, direction, 'item');\n }\n\n // if no active item, get items adjacent to the control input\n } else if (direction > 0) {\n adjacent = self.control_input.nextElementSibling;\n } else {\n adjacent = self.control_input.previousElementSibling;\n }\n if (adjacent) {\n if (adjacent.classList.contains('active')) {\n self.removeActiveItem(last_active);\n }\n self.setActiveItemClass(adjacent); // mark as last_active !! after removeActiveItem() on last_active\n }\n\n // move caret to the left or right\n } else {\n self.moveCaret(direction);\n }\n }\n moveCaret(direction) {}\n\n /**\n * Get the last active item\n *\n */\n getLastActive(direction) {\n let last_active = this.control.querySelector('.last-active');\n if (last_active) {\n return last_active;\n }\n var result = this.control.querySelectorAll('.active');\n if (result) {\n return getTail(result, direction);\n }\n }\n\n /**\n * Moves the caret to the specified index.\n *\n * The input must be moved by leaving it in place and moving the\n * siblings, due to the fact that focus cannot be restored once lost\n * on mobile webkit devices\n *\n */\n setCaret(new_pos) {\n this.caretPos = this.items.length;\n }\n\n /**\n * Return list of item dom elements\n *\n */\n controlChildren() {\n return Array.from(this.control.querySelectorAll('[data-ts-item]'));\n }\n\n /**\n * Disables user input on the control. Used while\n * items are being asynchronously created.\n */\n lock() {\n this.isLocked = true;\n this.refreshState();\n }\n\n /**\n * Re-enables user input on the control.\n */\n unlock() {\n this.isLocked = false;\n this.refreshState();\n }\n\n /**\n * Disables user input on the control completely.\n * While disabled, it cannot receive focus.\n */\n disable() {\n var self = this;\n self.input.disabled = true;\n self.control_input.disabled = true;\n self.focus_node.tabIndex = -1;\n self.isDisabled = true;\n this.close();\n self.lock();\n }\n\n /**\n * Enables the control so that it can respond\n * to focus and user input.\n */\n enable() {\n var self = this;\n self.input.disabled = false;\n self.control_input.disabled = false;\n self.focus_node.tabIndex = self.tabIndex;\n self.isDisabled = false;\n self.unlock();\n }\n\n /**\n * Completely destroys the control and\n * unbinds all event listeners so that it can\n * be garbage collected.\n */\n destroy() {\n var self = this;\n var revertSettings = self.revertSettings;\n self.trigger('destroy');\n self.off();\n self.wrapper.remove();\n self.dropdown.remove();\n self.input.innerHTML = revertSettings.innerHTML;\n self.input.tabIndex = revertSettings.tabIndex;\n removeClasses(self.input, 'tomselected', 'ts-hidden-accessible');\n self._destroy();\n delete self.input.tomselect;\n }\n\n /**\n * A helper method for rendering \"item\" and\n * \"option\" templates, given the data.\n *\n */\n render(templateName, data) {\n var id, html;\n const self = this;\n if (typeof this.settings.render[templateName] !== 'function') {\n return null;\n }\n\n // render markup\n html = self.settings.render[templateName].call(this, data, escape_html);\n if (!html) {\n return null;\n }\n html = getDom(html);\n\n // add mandatory attributes\n if (templateName === 'option' || templateName === 'option_create') {\n if (data[self.settings.disabledField]) {\n setAttr(html, {\n 'aria-disabled': 'true'\n });\n } else {\n setAttr(html, {\n 'data-selectable': ''\n });\n }\n } else if (templateName === 'optgroup') {\n id = data.group[self.settings.optgroupValueField];\n setAttr(html, {\n 'data-group': id\n });\n if (data.group[self.settings.disabledField]) {\n setAttr(html, {\n 'data-disabled': ''\n });\n }\n }\n if (templateName === 'option' || templateName === 'item') {\n const value = get_hash(data[self.settings.valueField]);\n setAttr(html, {\n 'data-value': value\n });\n\n // make sure we have some classes if a template is overwritten\n if (templateName === 'item') {\n addClasses(html, self.settings.itemClass);\n setAttr(html, {\n 'data-ts-item': ''\n });\n } else {\n addClasses(html, self.settings.optionClass);\n setAttr(html, {\n role: 'option',\n id: data.$id\n });\n\n // update cache\n data.$div = html;\n self.options[value] = data;\n }\n }\n return html;\n }\n\n /**\n * Type guarded rendering\n *\n */\n _render(templateName, data) {\n const html = this.render(templateName, data);\n if (html == null) {\n throw 'HTMLElement expected';\n }\n return html;\n }\n\n /**\n * Clears the render cache for a template. If\n * no template is given, clears all render\n * caches.\n *\n */\n clearCache() {\n iterate$1(this.options, option => {\n if (option.$div) {\n option.$div.remove();\n delete option.$div;\n }\n });\n }\n\n /**\n * Removes a value from item and option caches\n *\n */\n uncacheValue(value) {\n const option_el = this.getOption(value);\n if (option_el) option_el.remove();\n }\n\n /**\n * Determines whether or not to display the\n * create item prompt, given a user input.\n *\n */\n canCreate(input) {\n return this.settings.create && input.length > 0 && this.settings.createFilter.call(this, input);\n }\n\n /**\n * Wraps this.`method` so that `new_fn` can be invoked 'before', 'after', or 'instead' of the original method\n *\n * this.hook('instead','onKeyDown',function( arg1, arg2 ...){\n *\n * });\n */\n hook(when, method, new_fn) {\n var self = this;\n var orig_method = self[method];\n self[method] = function () {\n var result, result_new;\n if (when === 'after') {\n result = orig_method.apply(self, arguments);\n }\n result_new = new_fn.apply(self, arguments);\n if (when === 'instead') {\n return result_new;\n }\n if (when === 'before') {\n result = orig_method.apply(self, arguments);\n }\n return result;\n };\n }\n}\n\nexport { TomSelect as default };\n//# sourceMappingURL=tom-select.js.map\n","/**\n* Tom Select v2.2.2\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n*/\n\n/*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) */\nconst accent_pat = '[\\u0300-\\u036F\\u{b7}\\u{2be}\\u{2bc}]';\n/** @type {TUnicodeMap} */\n\nconst latin_convert = {};\n/** @type {TUnicodeMap} */\n\nconst latin_condensed = {\n '/': '⁄∕',\n '0': '߀',\n \"a\": \"ⱥɐɑ\",\n \"aa\": \"ꜳ\",\n \"ae\": \"æǽǣ\",\n \"ao\": \"ꜵ\",\n \"au\": \"ꜷ\",\n \"av\": \"ꜹꜻ\",\n \"ay\": \"ꜽ\",\n \"b\": \"ƀɓƃ\",\n \"c\": \"ꜿƈȼↄ\",\n \"d\": \"đɗɖᴅƌꮷԁɦ\",\n \"e\": \"ɛǝᴇɇ\",\n \"f\": \"ꝼƒ\",\n \"g\": \"ǥɠꞡᵹꝿɢ\",\n \"h\": \"ħⱨⱶɥ\",\n \"i\": \"ɨı\",\n \"j\": \"ɉȷ\",\n \"k\": \"ƙⱪꝁꝃꝅꞣ\",\n \"l\": \"łƚɫⱡꝉꝇꞁɭ\",\n \"m\": \"ɱɯϻ\",\n \"n\": \"ꞥƞɲꞑᴎлԉ\",\n \"o\": \"øǿɔɵꝋꝍᴑ\",\n \"oe\": \"œ\",\n \"oi\": \"ƣ\",\n \"oo\": \"ꝏ\",\n \"ou\": \"ȣ\",\n \"p\": \"ƥᵽꝑꝓꝕρ\",\n \"q\": \"ꝗꝙɋ\",\n \"r\": \"ɍɽꝛꞧꞃ\",\n \"s\": \"ßȿꞩꞅʂ\",\n \"t\": \"ŧƭʈⱦꞇ\",\n \"th\": \"þ\",\n \"tz\": \"ꜩ\",\n \"u\": \"ʉ\",\n \"v\": \"ʋꝟʌ\",\n \"vy\": \"ꝡ\",\n \"w\": \"ⱳ\",\n \"y\": \"ƴɏỿ\",\n \"z\": \"ƶȥɀⱬꝣ\",\n \"hv\": \"ƕ\"\n};\n\nfor (let latin in latin_condensed) {\n let unicode = latin_condensed[latin] || '';\n\n for (let i = 0; i < unicode.length; i++) {\n let char = unicode.substring(i, i + 1);\n latin_convert[char] = latin;\n }\n}\n\nnew RegExp(Object.keys(latin_convert).join('|') + '|' + accent_pat, 'gu');\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nconst getDom = query => {\n if (query.jquery) {\n return query[0];\n }\n if (query instanceof HTMLElement) {\n return query;\n }\n if (isHtmlString(query)) {\n var tpl = document.createElement('template');\n tpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n return tpl.content.firstChild;\n }\n return document.querySelector(query);\n};\nconst isHtmlString = arg => {\n if (typeof arg === 'string' && arg.indexOf('<') > -1) {\n return true;\n }\n return false;\n};\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\n\n/**\n * Escapes a string for use within HTML.\n *\n */\nconst escape_html = str => {\n return (str + '').replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"');\n};\n\n/**\n * Prevent default\n *\n */\nconst preventDefault = (evt, stop = false) => {\n if (evt) {\n evt.preventDefault();\n if (stop) {\n evt.stopPropagation();\n }\n }\n};\n\n/**\n * Add event helper\n *\n */\nconst addEvent = (target, type, callback, options) => {\n target.addEventListener(type, callback, options);\n};\n\n/**\n * Plugin: \"remove_button\" (Tom Select)\n * Copyright (c) contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n */\nfunction plugin (userOptions) {\n const options = Object.assign({\n label: '×',\n title: 'Remove',\n className: 'remove',\n append: true\n }, userOptions);\n\n //options.className = 'remove-single';\n var self = this;\n\n // override the render method to add remove button to each item\n if (!options.append) {\n return;\n }\n var html = '<a href=\"javascript:void(0)\" class=\"' + options.className + '\" tabindex=\"-1\" title=\"' + escape_html(options.title) + '\">' + options.label + '</a>';\n self.hook('after', 'setupTemplates', () => {\n var orig_render_item = self.settings.render.item;\n self.settings.render.item = (data, escape) => {\n var item = getDom(orig_render_item.call(self, data, escape));\n var close_button = getDom(html);\n item.appendChild(close_button);\n addEvent(close_button, 'mousedown', evt => {\n preventDefault(evt, true);\n });\n addEvent(close_button, 'click', evt => {\n // propagating will trigger the dropdown to show for single mode\n preventDefault(evt, true);\n if (self.isLocked) return;\n if (!self.shouldDelete([item], evt)) return;\n self.removeItem(item);\n self.refreshOptions(false);\n self.inputState();\n });\n return item;\n };\n });\n}\n\nexport { plugin as default };\n//# sourceMappingURL=plugin.js.map\n","/**\n* Tom Select v2.2.2\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n*/\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\nconst hash_key = value => {\n if (typeof value === 'undefined' || value === null) return null;\n return get_hash(value);\n};\nconst get_hash = value => {\n if (typeof value === 'boolean') return value ? '1' : '0';\n return value + '';\n};\n\n/**\n * Prevent default\n *\n */\nconst preventDefault = (evt, stop = false) => {\n if (evt) {\n evt.preventDefault();\n if (stop) {\n evt.stopPropagation();\n }\n }\n};\n\n/*! @orchidjs/unicode-variants | https://github.com/orchidjs/unicode-variants | Apache License (v2) */\nconst accent_pat = '[\\u0300-\\u036F\\u{b7}\\u{2be}\\u{2bc}]';\n/** @type {TUnicodeMap} */\n\nconst latin_convert = {};\n/** @type {TUnicodeMap} */\n\nconst latin_condensed = {\n '/': '⁄∕',\n '0': '߀',\n \"a\": \"ⱥɐɑ\",\n \"aa\": \"ꜳ\",\n \"ae\": \"æǽǣ\",\n \"ao\": \"ꜵ\",\n \"au\": \"ꜷ\",\n \"av\": \"ꜹꜻ\",\n \"ay\": \"ꜽ\",\n \"b\": \"ƀɓƃ\",\n \"c\": \"ꜿƈȼↄ\",\n \"d\": \"đɗɖᴅƌꮷԁɦ\",\n \"e\": \"ɛǝᴇɇ\",\n \"f\": \"ꝼƒ\",\n \"g\": \"ǥɠꞡᵹꝿɢ\",\n \"h\": \"ħⱨⱶɥ\",\n \"i\": \"ɨı\",\n \"j\": \"ɉȷ\",\n \"k\": \"ƙⱪꝁꝃꝅꞣ\",\n \"l\": \"łƚɫⱡꝉꝇꞁɭ\",\n \"m\": \"ɱɯϻ\",\n \"n\": \"ꞥƞɲꞑᴎлԉ\",\n \"o\": \"øǿɔɵꝋꝍᴑ\",\n \"oe\": \"œ\",\n \"oi\": \"ƣ\",\n \"oo\": \"ꝏ\",\n \"ou\": \"ȣ\",\n \"p\": \"ƥᵽꝑꝓꝕρ\",\n \"q\": \"ꝗꝙɋ\",\n \"r\": \"ɍɽꝛꞧꞃ\",\n \"s\": \"ßȿꞩꞅʂ\",\n \"t\": \"ŧƭʈⱦꞇ\",\n \"th\": \"þ\",\n \"tz\": \"ꜩ\",\n \"u\": \"ʉ\",\n \"v\": \"ʋꝟʌ\",\n \"vy\": \"ꝡ\",\n \"w\": \"ⱳ\",\n \"y\": \"ƴɏỿ\",\n \"z\": \"ƶȥɀⱬꝣ\",\n \"hv\": \"ƕ\"\n};\n\nfor (let latin in latin_condensed) {\n let unicode = latin_condensed[latin] || '';\n\n for (let i = 0; i < unicode.length; i++) {\n let char = unicode.substring(i, i + 1);\n latin_convert[char] = latin;\n }\n}\n\nnew RegExp(Object.keys(latin_convert).join('|') + '|' + accent_pat, 'gu');\n\n/**\n * Return a dom element from either a dom query string, jQuery object, a dom element or html string\n * https://stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro/35385518#35385518\n *\n * param query should be {}\n */\nconst getDom = query => {\n if (query.jquery) {\n return query[0];\n }\n if (query instanceof HTMLElement) {\n return query;\n }\n if (isHtmlString(query)) {\n var tpl = document.createElement('template');\n tpl.innerHTML = query.trim(); // Never return a text node of whitespace as the result\n return tpl.content.firstChild;\n }\n return document.querySelector(query);\n};\nconst isHtmlString = arg => {\n if (typeof arg === 'string' && arg.indexOf('<') > -1) {\n return true;\n }\n return false;\n};\n\n/**\n * Plugin: \"restore_on_backspace\" (Tom Select)\n * Copyright (c) contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n */\nfunction plugin () {\n var self = this;\n var orig_onOptionSelect = self.onOptionSelect;\n self.settings.hideSelected = false;\n\n // update the checkbox for an option\n var UpdateCheckbox = function UpdateCheckbox(option) {\n setTimeout(() => {\n var checkbox = option.querySelector('input');\n if (checkbox instanceof HTMLInputElement) {\n if (option.classList.contains('selected')) {\n checkbox.checked = true;\n } else {\n checkbox.checked = false;\n }\n }\n }, 1);\n };\n\n // add checkbox to option template\n self.hook('after', 'setupTemplates', () => {\n var orig_render_option = self.settings.render.option;\n self.settings.render.option = (data, escape_html) => {\n var rendered = getDom(orig_render_option.call(self, data, escape_html));\n var checkbox = document.createElement('input');\n checkbox.addEventListener('click', function (evt) {\n preventDefault(evt);\n });\n checkbox.type = 'checkbox';\n const hashed = hash_key(data[self.settings.valueField]);\n if (hashed && self.items.indexOf(hashed) > -1) {\n checkbox.checked = true;\n }\n rendered.prepend(checkbox);\n return rendered;\n };\n });\n\n // uncheck when item removed\n self.on('item_remove', value => {\n var option = self.getOption(value);\n if (option) {\n // if dropdown hasn't been opened yet, the option won't exist\n option.classList.remove('selected'); // selected class won't be removed yet\n UpdateCheckbox(option);\n }\n });\n\n // check when item added\n self.on('item_add', value => {\n var option = self.getOption(value);\n if (option) {\n // if dropdown hasn't been opened yet, the option won't exist\n UpdateCheckbox(option);\n }\n });\n\n // remove items when selected option is clicked\n self.hook('instead', 'onOptionSelect', (evt, option) => {\n if (option.classList.contains('selected')) {\n option.classList.remove('selected');\n self.removeItem(option.dataset.value);\n self.refreshOptions();\n preventDefault(evt, true);\n return;\n }\n orig_onOptionSelect.call(self, evt, option);\n UpdateCheckbox(option);\n });\n}\n\nexport { plugin as default };\n//# sourceMappingURL=plugin.js.map\n","/**\n* Tom Select v2.2.2\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n*/\n\n/**\n * Converts a scalar to its best string representation\n * for hash keys and HTML attribute values.\n *\n * Transformations:\n * 'str' -> 'str'\n * null -> ''\n * undefined -> ''\n * true -> '1'\n * false -> '0'\n * 0 -> '0'\n * 1 -> '1'\n *\n */\n\n/**\n * Add event helper\n *\n */\nconst addEvent = (target, type, callback, options) => {\n target.addEventListener(type, callback, options);\n};\n\n/**\n * Plugin: \"input_autogrow\" (Tom Select)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n */\nfunction plugin () {\n var self = this;\n self.on('initialize', () => {\n var test_input = document.createElement('span');\n var control = self.control_input;\n test_input.style.cssText = 'position:absolute; top:-99999px; left:-99999px; width:auto; padding:0; white-space:pre; ';\n self.wrapper.appendChild(test_input);\n var transfer_styles = ['letterSpacing', 'fontSize', 'fontFamily', 'fontWeight', 'textTransform'];\n for (const style_name of transfer_styles) {\n // @ts-ignore TS7015 https://stackoverflow.com/a/50506154/697576\n test_input.style[style_name] = control.style[style_name];\n }\n\n /**\n * Set the control width\n *\n */\n var resize = () => {\n test_input.textContent = control.value;\n control.style.width = test_input.clientWidth + 'px';\n };\n resize();\n self.on('update item_add item_remove', resize);\n addEvent(control, 'input', resize);\n addEvent(control, 'keyup', resize);\n addEvent(control, 'blur', resize);\n addEvent(control, 'update', resize);\n });\n}\n\nexport { plugin as default };\n//# sourceMappingURL=plugin.js.map\n","/**\n* Tom Select v2.2.2\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n*/\n\n/**\n * Plugin: \"input_autogrow\" (Tom Select)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this\n * file except in compliance with the License. You may obtain a copy of the License at:\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n *\n */\n\nfunction plugin () {\n var self = this;\n var orig_deleteSelection = self.deleteSelection;\n this.hook('instead', 'deleteSelection', evt => {\n if (self.activeItems.length) {\n return orig_deleteSelection.call(self, evt);\n }\n return false;\n });\n}\n\nexport { plugin as default };\n//# sourceMappingURL=plugin.js.map\n","@mixin dropdown--size-default() {\n --font-size: var(--stzh-font-milli-font-size);\n --line-height: var(--stzh-font-milli-text-line-height);\n --letter-spacing: normal;\n --height: #{$formInputHeight};\n --border-radius: #{$formInputBorderRadius};\n --icon-size: #{iconSize(\"medium\")};\n --icon-angle-size: #{iconSize(\"medium\")};\n --popover-distance: #{space(\"xsmall\")};\n\n --padding-top: #{space(\"xsmall\")};\n --padding-bottom: #{space(\"xsmall\")};\n --padding-left: #{space(\"medium\")};\n --padding-right: #{space(\"medium\")};\n\n --icon-gap: #{space(\"xsmall\")};\n --icon-angle-gap: #{space(\"xsmall\")};\n --remove-gap: #{space(\"xxsmall\")};\n --remove-icon-wrapper-size: 24px;\n\n --multiple-padding-top: calc(#{space(\"xsmall\")} - 1px);\n --multiple-padding-bottom: calc(#{space(\"xsmall\")} - 1px);\n\n &:where([variant=\"plain\"]) {\n --padding-left: 0px;\n --padding-right: 0px;\n }\n\n &:where([variant=\"filter\"]) {\n --font-size: var(--stzh-font-micro-font-size);\n --line-height: var(--stzh-font-micro-text-line-height);\n --letter-spacing: normal;\n --border-radius: 16px;\n --height: 32px;\n --outer-height: 40px;\n --padding-top: 0px;\n --padding-bottom: 0px;\n --padding-left: #{space(\"small\")};\n --padding-right: #{space(\"xsmall\")};\n --icon-size: #{iconSize(\"xsmall\")};\n --icon-angle-size: #{iconSize(\"xsmall\")};\n --remove-gap: #{space(\"small\")};\n --popover-distance: calc(\n #{space(\"xsmall\")} - (var(--outer-height) - var(--height)) / 2\n );\n\n @include mq($from: medium) {\n --outer-height: auto;\n --popover-distance: #{space(\"xsmall\")};\n }\n }\n}\n\n@mixin dropdown--size-large() {\n &:where([variant=\"filter\"]) {\n --height: 40px;\n --border-radius: 20px;\n --padding-top: 0px;\n --padding-bottom: 0px;\n --padding-left: #{space(\"medium\")};\n --padding-right: #{space(\"small\")};\n --remove-gap: #{space(\"medium\")};\n }\n}\n\n@mixin dropdown--size-small() {\n --font-size: var(--stzh-font-micro-font-size);\n --line-height: var(--stzh-font-micro-text-line-height);\n --letter-spacing: normal;\n --height: #{$formInputHeightSmall};\n --icon-size: #{iconSize(\"medium\")};\n --icon-angle-size: #{iconSize(\"medium\")};\n\n --padding-top: #{space(\"xxsmall\")};\n --padding-bottom: #{space(\"xxsmall\")};\n --padding-left: #{space(\"medium\")};\n --padding-right: #{space(\"medium\")};\n\n --icon-gap: #{space(\"xsmall\")};\n --icon-angle-gap: #{space(\"xsmall\")};\n --remove-gap: #{space(\"xxsmall\")};\n --remove-icon-wrapper-size: 21px;\n\n --multiple-padding-top: #{space(\"xxsmall\")};\n --multiple-padding-bottom: #{space(\"xxsmall\")};\n\n &:where([variant=\"plain\"]) {\n --padding-left: 0px;\n --padding-right: 0px;\n }\n\n &:where([variant=\"filter\"]) {\n --padding-top: 0px;\n --padding-bottom: 0px;\n --padding-left: #{space(\"xsmall\")};\n --padding-right: #{space(\"xsmall\")};\n --remove-gap: #{space(\"xsmall\")};\n }\n}\n\n@mixin dropdown--size-tiny() {\n --font-size: var(--stzh-font-milli-font-size);\n --line-height: var(--stzh-font-milli-text-line-height);\n --letter-spacing: normal;\n --height: #{$formInputHeightTiny};\n --icon-size: #{iconSize(\"medium\")};\n --icon-angle-size: #{iconSize(\"medium\")};\n\n --padding-top: #{space(\"xxsmall\")};\n --padding-bottom: #{space(\"xxsmall\")};\n --padding-left: #{space(\"medium\")};\n --padding-right: #{space(\"medium\")};\n\n --icon-gap: #{space(\"xsmall\")};\n --icon-angle-gap: #{space(\"xsmall\")};\n --remove-gap: #{space(\"xxsmall\")};\n --remove-icon-wrapper-size: 21px;\n\n --multiple-padding-top: #{space(\"xxsmall\")};\n --multiple-padding-bottom: #{space(\"xxsmall\")};\n\n &:where([variant=\"plain\"]) {\n --padding-left: 0px;\n --padding-right: 0px;\n }\n\n &:where([variant=\"filter\"]) {\n --padding-top: 0px;\n --padding-bottom: 0px;\n }\n}\n\nstzh-dropdown {\n @include host;\n @include dropdown--size-default;\n\n --color: var(--stzh-dropdown-color, #{$formColor});\n --border-color: var(--stzh-dropdown-border-color, #{$formBorderColor});\n --background-color: #{$formBackgroundColor};\n --label-color: var(--stzh-dropdown-label-color, #{$formLabelColor});\n --placeholder-color: #{$formInputPlaceholderColor};\n --icon-color: #{$colorPrimary70};\n --icon-angle-color: #{$colorPrimary70};\n --label-font-size: var(--stzh-font-micro-font-size);\n --label-line-height: var(--stzh-font-micro-text-line-height);\n --label-letter-spacing: normal;\n\n --hover-color: var(--stzh-dropdown-hover-color, #{$formHoverColor});\n --hover-border-color: var(\n --stzh-dropdown-hover-border-color,\n #{$formHoverBorderColor}\n );\n --hover-background-color: #{$formHoverBackgroundColor};\n --hover-label-color: var(\n --stzh-dropdown-hover-label-color,\n #{$formLabelColor}\n );\n --hover-icon-color: #{$colorPrimary70};\n --hover-icon-angle-color: #{$colorPrimary70};\n\n --focus-color: #{$formFocusColor};\n --focus-border-color: #{$formFocusBorderColor};\n --focus-background-color: #{$formFocusBackgroundColor};\n --focus-label-color: var(\n --stzh-dropdown-focus-label-color,\n #{$formLabelColor}\n );\n --focus-icon-color: #{$colorPrimary70};\n --focus-icon-angle-color: #{$colorPrimary70};\n\n --active-icon-angle-transform: rotate(180deg) translateY(50%);\n\n --popover-width: 100%;\n --popover-min-width: initial;\n --popover-max-width: initial;\n --popover-height: auto;\n --popover-min-height: initial;\n --popover-max-height: calc(4.5 * #{$menuItemHeight});\n --popover-background-color: #{$popoverBackgroundColor};\n --popover-box-shadow: #{$boxShadowPopover};\n --popover-border-radius: #{$popoverBorderRadius};\n --popover-skidding: 0px;\n\n position: relative;\n width: 100%;\n border-radius: var(--border-radius);\n\n &:where([inline]:not([inline=\"false\"])) {\n --popover-width: auto;\n width: auto;\n }\n\n /* Filled */\n\n &:where([is-filled]:not([is-filled=\"false\"])) {\n --icon-color: #{$colorPrimary70};\n --icon-angle-color: #{$colorPrimary70};\n\n --hover-icon-color: #{$colorPrimary70};\n --hover-icon-angle-color: #{$colorPrimary70};\n\n --focus-icon-angle-color: #{$formFocusColor};\n --focus-icon-color: #{$formFocusColor};\n }\n\n &:where([variant=\"plain\"]) {\n --background-color: transparent;\n\n --hover-background-color: transparent;\n --hover-label-color: #{$colorPrimary90};\n --hover-icon-color: #{$colorPrimary90};\n --hover-icon-angle-color: #{$colorPrimary90};\n\n --focus-background-color: transparent;\n --focus-label-color: #{$colorPrimary90};\n --focus-icon-color: #{$colorPrimary90};\n --focus-icon-angle-color: #{$colorPrimary90};\n }\n\n &:where([variant=\"plain\"][is-filled]:not([is-filled=\"false\"])) {\n --icon-color: #{$formColor};\n --icon-angle-color: #{$formColor};\n\n --hover-icon-color: #{$formColor};\n --hover-icon-angle-color: #{$formColor};\n }\n\n &:where([variant=\"filter\"]) {\n --color: var(--stzh-chip-color, #{$colorPrimary70});\n --background-color: var(--stzh-chip-background-color, #{$colorSecondary30});\n --label-color: var(--color);\n --icon-color: var(--color);\n --icon-angle-color: var(--color);\n\n --hover-color: var(--stzh-chip-hover-color, #{$colorPrimary70});\n --hover-background-color: var(\n --stzh-chip-hover-background-color,\n #{$colorSecondary40}\n );\n --hover-label-color: var(--hover-color);\n --hover-icon-color: var(--hover-color);\n --hover-icon-angle-color: var(--hover-color);\n\n --focus-color: var(--hover-color);\n --focus-background-color: var(--hover-background-color);\n --focus-label-color: var(--hover-label-color);\n --focus-icon-color: var(--hover-icon-color);\n --focus-icon-angle-color: var(--hover-icon-angle-color);\n }\n\n &:where([variant=\"filter\"][is-filled]:not([is-filled=\"false\"])) {\n --color: var(--stzh-chip-active-color, #{$colorWhite});\n --background-color: var(\n --stzh-chip-active-background-color,\n #{$colorPrimary70}\n );\n\n --hover-color: var(--stzh-chip-active-hover-color, #{$colorWhite});\n --hover-background-color: var(\n --stzh-chip-active-hover-background-color,\n #{$colorPrimary90}\n );\n }\n\n /* Invalid */\n\n &[is-invalid] {\n --color: #{$colorError60};\n --border-color: #{$colorError60};\n --background-color: #{$colorWhite};\n --label-color: #{$colorError60};\n --placeholder-color: #{$colorError60};\n --icon-color: #{$colorError60};\n --icon-angle-color: #{$colorError60};\n\n --hover-color: #{$colorError60};\n --hover-border-color: #{$colorError60};\n --hover-background-color: #{$colorWhite};\n --hover-label-color: #{$colorError60};\n --hover-icon-color: #{$colorError60};\n --hover-icon-angle-color: #{$colorError60};\n\n --focus-color: #{$colorError60};\n --focus-border-color: #{$colorError60};\n --focus-background-color: #{$colorWhite};\n --focus-label-color: #{$colorError60};\n --focus-icon-color: #{$colorError60};\n --focus-icon-angle-color: #{$colorError60};\n }\n\n /* Disabled */\n\n &[disabled]:not([disabled=\"false\"]) {\n --color: #{$formDisabledColor};\n --border-color: #{$formDisabledBorderColor};\n --background-color: #{$formDisabledBackgroundColor};\n --label-color: #{$formDisabledColor};\n --placeholder-color: #{$formDisabledColor};\n --description-color: #{$formDisabledColor};\n --icon-color: #{$colorGrey70};\n --icon-angle-color: #{$colorGrey70};\n\n --hover-color: #{$colorGrey70};\n --hover-border-color: #{$colorGrey70};\n --hover-background-color: #{$colorGrey10};\n --hover-label-color: #{$colorGrey70};\n --hover-icon-color: #{$colorGrey70};\n --hover-icon-angle-color: #{$colorGrey70};\n\n --focus-color: var(--color);\n --focus-border-color: var(--border-color);\n --focus-background-color: var(--background-color);\n --focus-label-color: var(--label-color);\n --focus-icon-color: var(--icon-color);\n --focus-icon-angle-color: var(--icon-angle-color);\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"plain\"] {\n --background-color: transparent;\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"filter\"] {\n --color: var(--stzh-chip-disabled-color, #{$colorGrey80});\n --background-color: var(\n --stzh-chip-disabled-background-color,\n #{$colorGrey20}\n );\n --label-color: var(--color);\n --placeholder-color: var(--color);\n --icon-color: var(--color);\n --icon-angle-color: var(--color);\n --description-color: #{$formDisabledColor};\n }\n\n /* Internal (Hover / Focus) */\n\n &:is(:has(.stzh-dropdown__label:hover)),\n &:is(:has(.ts-control:hover)) {\n --color: var(--hover-color);\n --border-color: var(--hover-border-color);\n --background-color: var(--hover-background-color);\n --label-color: var(--hover-label-color);\n --icon-color: var(--hover-icon-color);\n --icon-angle-color: var(--hover-icon-angle-color);\n }\n\n &:is(:has(.ts-control:focus-within)) {\n --color: var(--focus-color);\n --border-color: var(--focus-border-color);\n --background-color: var(--focus-background-color);\n --label-color: var(--focus-label-color);\n --icon-color: var(--focus-icon-color);\n --icon-angle-color: var(--focus-icon-angle-color);\n }\n}\n\nstzh-dropdown:where([size=\"large\"]) {\n @include dropdown--size-large;\n}\n\nstzh-dropdown:where([size=\"small\"]) {\n @include dropdown--size-small;\n}\n\nstzh-dropdown:where([size=\"tiny\"]) {\n @include dropdown--size-tiny;\n}\n\n@each $breakpoint, $size in $breakpoints {\n @include mq($from: $breakpoint) {\n stzh-dropdown:where([size-#{$breakpoint}=\"default\"]) {\n @include dropdown--size-default;\n }\n\n stzh-dropdown:where([size-#{$breakpoint}=\"large\"]) {\n @include dropdown--size-large;\n }\n\n stzh-dropdown:where([size-#{$breakpoint}=\"small\"]) {\n @include dropdown--size-small;\n }\n\n stzh-dropdown:where([size-#{$breakpoint}=\"tiny\"]) {\n @include dropdown--size-tiny;\n }\n }\n}\n\n.stzh-dropdown {\n @include input-description;\n\n &__wrapper {\n position: relative;\n }\n\n .ts-hidden-accessible {\n @include visuallyhidden;\n }\n\n .ts-dropdown-content {\n width: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n overflow-scrolling: touch;\n // scroll-behavior: smooth;\n }\n\n .ts-wrapper {\n display: flex;\n align-items: center;\n min-height: var(--outer-height);\n }\n\n .ts-control {\n overflow: hidden;\n position: relative;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n min-height: var(--height);\n border-radius: var(--border-radius);\n background-color: var(--background-color);\n transition-property: border-color, background-color;\n transition-duration: $baseTransitionAnimationSpeed;\n cursor: pointer;\n\n & > * {\n vertical-align: baseline;\n display: inline-block;\n }\n }\n\n .ts-control,\n .ts-control > input,\n &__sizer {\n @include fontSize(\"milli\");\n @include font(\"medium\");\n font-size: var(--font-size);\n line-height: var(--remove-icon-wrapper-size);\n letter-spacing: var(--letter-spacing);\n width: 100%;\n border: 2px solid var(--border-color);\n }\n\n .ts-control > input {\n flex: 1 1 auto;\n display: inline-block;\n padding: 0;\n min-height: 0;\n max-height: none;\n max-width: 100%;\n margin: space(\"xxsmall\") space(\"xxsmall\") space(\"xxsmall\") 0;\n text-indent: 0;\n border: 0 none;\n background: none;\n user-select: auto;\n box-shadow: none;\n cursor: pointer;\n\n @include placeholder {\n color: var(--placeholder-color);\n }\n\n &::-ms-clear {\n display: none;\n }\n\n &:focus {\n outline: none;\n }\n\n &:placeholder-shown {\n text-overflow: ellipsis;\n }\n }\n\n &__vhidden {\n @include visuallyhidden;\n }\n\n &__field-wrapper,\n &__select {\n position: relative;\n }\n\n &__select .ts-control > input,\n &__select.single &__item,\n &__icon-wrapper,\n &__icon-angle-wrapper {\n transition: color $baseTransitionAnimationSpeed;\n }\n\n &__select .ts-control > input,\n &__select.single &__item {\n color: var(--color);\n }\n\n &__sizer {\n height: var(--height);\n display: flex;\n align-items: center;\n margin-top: calc(var(--height) / -1);\n pointer-events: none;\n visibility: hidden;\n }\n\n &__select.has-items ~ &__sizer {\n display: none;\n }\n\n &__select.plugin-input_hide ~ &__sizer {\n visibility: visible;\n }\n\n &__select.input-active .ts-control,\n &__select.input-active .ts-control > input {\n cursor: text;\n }\n\n &__select.input-hidden .ts-control > input,\n &__select.plugin-input_hide .ts-control > input {\n // hide input, while retaining its focus, and maintain layout so users can still click on the space to bring the display back\n // visibility:hidden can prevent the input from receiving focus\n opacity: 0;\n position: absolute;\n left: -10000px;\n }\n\n &__select.single .ts-control,\n &__select.multi .ts-control,\n &__sizer {\n padding-top: var(--padding-top);\n padding-bottom: var(--padding-bottom);\n padding-left: var(--padding-left);\n padding-right: calc(\n var(--icon-angle-size) + var(--icon-angle-gap) + var(--padding-right)\n );\n }\n\n &__icon-wrapper,\n &__icon-angle-wrapper {\n display: flex;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n // transition-property: color, transform;\n // transition-duration: $baseTransitionAnimationSpeed;\n }\n\n &__icon-wrapper {\n left: var(--padding-left);\n color: var(--icon-color);\n }\n\n &__icon-angle-wrapper {\n right: var(--padding-right);\n color: var(--icon-angle-color);\n }\n\n &__icon-wrapper stzh-icon,\n &__icon {\n --size: var(--icon-size);\n }\n\n &__icon-angle-wrapper stzh-icon,\n &__icon-angle {\n --size: var(--icon-angle-size);\n }\n\n &__label {\n @include font(\"heavy\");\n @include truncate;\n font-size: var(--label-font-size);\n line-height: var(--label-line-height);\n letter-spacing: var(--label-letter-spacing);\n color: var(--label-color);\n display: block;\n width: auto;\n max-width: 100%;\n margin-bottom: space(\"xxxsmall\");\n\n &.no-label-truncate {\n @include resetTruncate;\n }\n\n &:empty {\n display: none;\n }\n\n // &::before {\n // content: '';\n // display: none;\n // background: var(--label-background); // --label-background removed\n // position: absolute;\n // width: 100%;\n // z-index: -1;\n // left: 0;\n // top: 50%;\n // // prevent white line not fully overlaping border of input\n // height: 2px;\n // margin-top: -0.5px;\n // }\n }\n\n &__marker {\n @include fontSize(\"nano\");\n margin-left: calc(-0.25em + #{space(\"xsmall\")});\n }\n\n &__option,\n &__create,\n &__no-results,\n &__not-loading {\n @include fontSize(\"micro\");\n padding: space(\"xsmall\") space(\"medium\");\n padding-right: space(\"large\");\n }\n\n &__option,\n &__create {\n display: flex;\n align-items: center;\n justify-content: stretch;\n appearance: none;\n font-family: inherit;\n text-decoration-line: none;\n outline: none;\n border: none;\n color: $colorBlack;\n min-height: $menuItemHeight;\n transition: all $baseTransitionAnimationSpeed;\n cursor: pointer;\n\n &:hover,\n &.active {\n background-color: $colorGrey20;\n }\n\n // hide checkbox visually\n input {\n @include visuallyhidden;\n }\n }\n\n &__option {\n &.selected {\n color: $colorPrimary70;\n\n // announce check when item is selected\n &::before {\n @include visuallyhidden;\n content: \"✓\";\n }\n }\n\n &[aria-disabled=\"true\"] {\n cursor: not-allowed;\n color: #{$colorGrey70};\n background-color: #{$colorGrey10};\n }\n }\n\n &__create {\n display: block;\n }\n\n &__option-title {\n // @include truncate;\n flex-grow: 1;\n }\n\n &__option[data-selectable] .highlight {\n @include font(\"heavy\");\n }\n\n &__option-check {\n display: none;\n }\n\n &__no-results {\n @include wordWrap;\n }\n\n &__optgroup {\n }\n\n &__optgroup-header {\n cursor: default;\n }\n\n &__loader {\n display: flex;\n align-items: center;\n justify-content: center;\n height: $menuItemHeight;\n }\n\n &__dropdown {\n position: absolute;\n // top: 100%;\n // left: 0;\n top: auto;\n left: auto;\n white-space: nowrap;\n margin-top: var(--popover-distance);\n margin-left: var(--popover-skidding);\n transform: none;\n z-index: $zIndexPopover;\n width: var(--popover-width);\n min-width: var(--popover-min-width);\n max-width: var(--popover-max-width);\n height: var(--popover-height);\n min-height: var(--popover-min-height);\n max-height: var(--popover-max-height);\n background-color: var(--popover-background-color);\n box-shadow: var(--popover-box-shadow);\n border-radius: var(--popover-border-radius);\n }\n\n &__remove-icon {\n --size: #{iconSize(\"xxsmall\")};\n }\n\n /* Plugin: Input autogrow */\n\n &__select.plugin-input_autogrow.has-items .ts-control > input {\n min-width: 0;\n }\n\n &__select.plugin-input_autogrow.has-items.focus .ts-control > input {\n flex: none;\n min-width: 4px;\n }\n\n /* Has Items */\n\n &__select.has-items .ts-control > input {\n margin: 0 4px;\n @include placeholder {\n color: transparent;\n }\n }\n\n /* Is Open */\n\n &__select.dropdown-active ~ &__icon-angle-wrapper {\n transform: var(--active-icon-angle-transform);\n }\n\n /* Multiple variant */\n\n &--is-multiple &__option-check {\n display: inline-flex;\n opacity: 0;\n transition: opacity $baseTransitionAnimationSpeed;\n margin-left: space(\"xsmall\");\n }\n\n // &--is-multiple &__option,\n // &--is-multiple &__create {\n // &.selected {\n // color: $colorPrimary70;\n // }\n\n // // &.selected:hover,\n // // &.selected.active {\n // // color: $colorPrimaryHover;\n // // background-color: $colorPrimary20;\n // // }\n // }\n\n &--is-multiple &__option.selected &__option-check {\n opacity: 1;\n }\n\n &--is-multiple &__select.multi.has-items .ts-control {\n padding-top: var(--multiple-padding-top);\n padding-bottom: var(--multiple-padding-bottom);\n }\n\n &--is-multiple &__select.multi &__item {\n @include fontSize(\"micro\");\n position: relative;\n min-height: var(--remove-icon-wrapper-size);\n height: fit-content;\n line-height: var(--remove-icon-wrapper-size);\n display: flex;\n flex-direction: row;\n align-items: center;\n border-radius: 12px;\n padding: 0 space(\"small\");\n appearance: none;\n font-family: inherit;\n color: $colorPrimary70;\n background-color: $colorPrimary10;\n transition: all $baseTransitionAnimationSpeed;\n margin: space(\"xxsmall\") space(\"xxsmall\") space(\"xxsmall\") 0;\n cursor: pointer;\n\n &:hover {\n color: $colorPrimary90;\n background-color: $colorPrimary20;\n }\n\n &.active {\n color: $colorWhite;\n background-color: $colorPrimary70;\n }\n }\n\n /* Plugin: Remove button */\n\n &__select.plugin-remove_button &__item,\n &--is-multiple &__select.plugin-remove_button &__item {\n display: inline-flex;\n align-items: center;\n gap: var(--remove-gap);\n padding-right: 0px;\n }\n\n &__select.plugin-remove_button &__item .remove {\n position: relative;\n right: -1px; // -1px to overlap border\n text-decoration-line: none;\n width: var(--remove-icon-wrapper-size);\n height: var(--remove-icon-wrapper-size);\n border-radius: 24px;\n display: flex;\n justify-content: center;\n align-items: center;\n color: $colorPrimary70;\n flex-shrink: 0;\n transition: all $baseTransitionAnimationSpeed;\n\n &:hover {\n color: $colorPrimary90;\n background-color: $colorPrimary30;\n }\n }\n\n &--is-multiple &__select.plugin-remove_button &__item.active &__remove-icon {\n color: $colorWhite;\n }\n\n /* Popover placement */\n\n &--popover-placement-top &__dropdown,\n &--popover-placement-top-end &__dropdown,\n &--popover-placement-top-center &__dropdown {\n margin-top: 0;\n top: auto;\n bottom: 100%;\n margin-bottom: calc(\n var(--popover-distance) - 19.5px\n ); // distance - label height\n }\n\n &--popover-placement-top#{&}--plain &__dropdown,\n &--popover-placement-top-end#{&}--plain &__dropdown,\n &--popover-placement-top-center#{&}--plain &__dropdown {\n margin-bottom: 0;\n }\n\n &--popover-placement-top-end &__dropdown,\n &--popover-placement-bottom-end &__dropdown {\n left: auto;\n right: 0;\n }\n\n &--popover-placement-top-center &__dropdown,\n &--popover-placement-bottom-center &__dropdown {\n left: 50%;\n transform: translateX(-50%);\n }\n\n /* Has fullwidth popover */\n\n &--popover-fullwidth-horizontal &__dropdown {\n left: 0;\n right: 0;\n transform: none;\n }\n\n /* Hidden label */\n\n &--has-label-hidden &__label {\n @include visuallyhidden;\n }\n\n /* Override for popover placement top and hidden label */\n\n &--has-label-hidden#{&}--popover-placement-top &__dropdown,\n &--has-label-hidden#{&}--popover-placement-top-end &__dropdown,\n &--has-label-hidden#{&}--popover-placement-top-center &__dropdown {\n margin-bottom: calc(\n var(--popover-distance) - 1px\n ); // distance - visuallyhidden height\n }\n\n /* Has icon */\n\n &--has-icon &__select.single .ts-control,\n &--has-icon &__select.multi .ts-control,\n &--has-icon &__sizer {\n padding-left: calc(\n var(--padding-left) + var(--icon-size) + var(--icon-gap)\n );\n }\n\n /* Plain */\n\n &--plain &__select.single .ts-control,\n &--plain &__select.multi .ts-control,\n &--plain &__sizer {\n border: none;\n }\n\n &--plain &__label {\n left: 0;\n max-width: 100%;\n padding: 0;\n\n z-index: 1;\n position: absolute;\n margin: 0;\n // top: calc(var(--height) / 2);\n top: 50%;\n // padding-left (medium) + border-left\n // left: calc(#{space('medium')} + 1px);\n // max-width: calc(100% - #{space('medium')} * 2);\n transform: translateY(-50%);\n transition: all $baseTransitionAnimationSpeed;\n pointer-events: none;\n\n &::before {\n content: none;\n }\n }\n\n &--plain &__dropdown {\n margin-top: 0;\n }\n\n &--plain#{&}--has-icon &__label {\n left: calc(var(--icon-size) + var(--icon-gap));\n }\n\n /* Styles for floating label */\n\n // &--is-filled &__label,\n // &--is-disabled &__label,\n // &--is-invalid &__label,\n // &--has-focus &__label {\n // top: 0;\n // // padding-left (input field medium) - padding-left\n // left: calc(#{space('medium')} - #{space('xxsmall')});\n // height: 20px; // dividable by two (so before element is always positioned correctly)\n // line-height: 20px;\n // padding: 0 space('xxsmall');\n // max-width: calc(100% - (#{space('medium')} - #{space('xxsmall')}) * 2);\n // pointer-events: all;\n\n // &:not(:empty)::before {\n // display: block;\n // }\n // }\n\n &--plain#{&}--has-focus:not(#{&}--has-no-search) &__label,\n &--plain#{&}--is-filled &__label {\n @include visuallyhidden;\n }\n\n &--plain#{&}--is-filled &__label,\n &--plain#{&}--is-disabled &__label,\n &--plain#{&}--is-invalid &__label,\n &--plain#{&}--has-focus &__label {\n // left: 0;\n // padding: 0;\n // max-width: 100%;\n\n // top: 0;\n // height: 20px; // dividable by two (so before element is always positioned correctly)\n // line-height: 20px;\n // pointer-events: all;\n\n // &:not(:empty)::before {\n // display: block;\n // }\n }\n\n /* Has no search */\n\n &--has-no-search .ts-control > input {\n position: absolute;\n width: 0px;\n height: 0px;\n }\n\n &--has-no-search &__select.input-active .ts-control,\n &--has-no-search &__select.input-active .ts-control > input {\n cursor: pointer;\n }\n\n /* Filter */\n\n &--filter &__option,\n &--plain &__option {\n background-color: $colorSecondary10;\n color: $colorPrimary70;\n\n &:hover,\n &.active {\n background-color: $colorSecondary20;\n }\n }\n\n &--filter &__select.single .ts-control,\n &--filter &__select.multi .ts-control,\n &--filter &__sizer {\n border: none;\n }\n\n &--filter &__label {\n @include font;\n left: var(--padding-left);\n max-width: 100%;\n padding: 0;\n\n z-index: 1;\n position: absolute;\n margin: 0;\n // top: calc(var(--outer-height) / 2);\n top: 50%;\n // padding-left (medium) + border-left\n // left: calc(#{space('medium')} + 1px);\n // max-width: calc(100% - #{space('medium')} * 2);\n transform: translateY(-50%);\n transition: all $baseTransitionAnimationSpeed;\n pointer-events: none;\n\n &::before {\n content: none;\n }\n }\n\n &--filter#{&}--has-icon &__label {\n left: calc(var(--padding-left) + var(--icon-size) + var(--icon-gap));\n }\n\n &--filter#{&}--has-focus:not(#{&}--has-no-search) &__label,\n &--filter#{&}--is-filled &__label {\n @include visuallyhidden;\n }\n\n &--filter &__select.plugin-remove_button &__item .remove {\n color: $colorPrimary70;\n background-color: $colorSecondary30;\n width: var(--height);\n height: var(--height);\n border-top-left-radius: 0px;\n border-bottom-left-radius: 0px;\n\n &:hover {\n color: $colorBlack;\n background-color: $colorSecondary40;\n }\n }\n\n &--filter &__remove-icon {\n --size: #{iconSize(\"xsmall\")};\n }\n\n &--filter#{&}--is-filled &__icon-angle-wrapper {\n display: none;\n }\n\n &--filter#{&}--is-filled &__select.single .ts-control,\n &--filter#{&}--is-filled &__select.multi .ts-control,\n &--filter#{&}--is-filled &__sizer {\n padding-right: 0px;\n }\n\n /* Disabled */\n\n &--is-disabled &__select.multi &__item,\n &--is-disabled &__select.plugin-remove_button &__item .remove {\n cursor: not-allowed;\n }\n\n &--is-disabled &__select.multi &__item,\n &--is-disabled &__select.multi &__item:hover {\n color: $colorGrey70;\n background-color: $colorWhite;\n }\n\n &--is-disabled &__select.plugin-remove_button &__item .remove,\n &--is-disabled &__select.plugin-remove_button &__item .remove:hover {\n color: $colorGrey70;\n background-color: transparent;\n }\n\n &--is-disabled &__label,\n &--is-disabled .ts-control,\n &--is-disabled .ts-control > input {\n cursor: not-allowed;\n }\n\n /* No text wrap */\n &--is-inline#{&}--has-no-wrap {\n white-space: nowrap;\n }\n}\n","import { Component, Host, Prop, h, Element, Watch, Method, Event, EventEmitter, Listen } from \"@stencil/core\";\n\nimport { hasSlot } from \"../../utils/utils\";\n\nimport {\n StzhDropdownSize,\n StzhDropdownOption,\n StzhDropdownChangeEvent,\n StzhDropdownItemAddEvent,\n StzhDropdownItemRemoveEvent,\n StzhDropdownOptionAddEvent,\n StzhDropdownOptionRemoveEvent,\n StzhDropdownOpenEvent,\n StzhDropdowCloseEvent,\n StzhDropdownFocusEvent,\n StzhDropdownBlurEvent,\n StzhDropdowInitEvent,\n} from \"../../index\";\n\nimport { StzhDropdownLocalizedText } from \"./stzh-dropdown.localization\";\n\nimport { StzhInputDescription } from \"../stzh-input/stzh-input-description\";\n\nimport TomSelect from \"../../libraries/tom-select/esm/tom-select.js\";\nimport TomSelectRemoveButton from \"../../libraries/tom-select/esm/plugins/remove_button/plugin.js\";\nimport TomSelectCheckboxOptions from \"../../libraries/tom-select/esm/plugins/checkbox_options/plugin.js\";\nimport TomSelectInputAutogrow from \"../../libraries/tom-select/esm/plugins/input_autogrow/plugin.js\";\nimport TomSelectNoBackspaceDelete from \"../../libraries/tom-select/esm/plugins/no_backspace_delete/plugin.js\";\n\nconst TomSelectInputReadonly = function (_plugin_options) {\n const self = this;\n\n self.on(\"initialize\", () => {\n const input = self.control_input as HTMLInputElement;\n if (input) input.readOnly = true;\n });\n};\n\nconst CLASS_FILLED = \"stzh-dropdown--is-filled\";\nconst CLASS_FOCUS = \"stzh-dropdown--has-focus\";\n\nTomSelect.define(\"remove_button\", TomSelectRemoveButton);\nTomSelect.define(\"checkbox_options\", TomSelectCheckboxOptions);\nTomSelect.define(\"input_autogrow\", TomSelectInputAutogrow);\nTomSelect.define(\"no_backspace_delete\", TomSelectNoBackspaceDelete);\nTomSelect.define(\"input_readonly\", TomSelectInputReadonly);\n\nlet dropdownCounter = 0;\n\n/**\n * @slot label - Slot for label content\n * @slot description - Slot for description\n * @slot description-long - Slot for long description (in popover)\n * @slot description-long-title - Slot for long description title (in popover) / instead of descriptionLongTitle or description property\n * @slot icon - Slot for left icon\n * @slot icon-angle - Slot for angle icon\n * @slot error - Slot for error\n */\n@Component({\n tag: \"stzh-dropdown\",\n styleUrl: \"stzh-dropdown.scss\",\n})\nexport class StzhDropdown {\n /** Available options */\n @Prop() options: StzhDropdownOption[] | string;\n private _options: StzhDropdownOption[];\n\n /**\n * Option groups that options will be bucketed into.\n * Make sure each object in the array has a property named whatever `optgroupValueField` is set to.\n */\n @Prop() optgroups: any[] | string;\n private _optgroups: any[];\n\n /**\n * Set selected option values. Always set this in usage with stzh-components-angular (see examples in usage docs).\n * To get the current (user) selected options, use `getItems` method.\n */\n @Prop({ mutable: true }) items: string[] | string;\n private _items: string[];\n\n /**\n * Default items (used by reset)\n */\n @Prop({ mutable: true }) defaultItems: string[];\n\n /**\n * An array of property names to analyze when filtering options.\n * Weights can be given to each field to improve search result:\n * `[{\"field\":\"text\",\"weight\":2},{\"field\":\"text2\",\"weight\":0.5}]`\n */\n @Prop() searchField: string[] | string = [\"text\"];\n private _searchField: string[];\n\n /** Whether multiple items option can be selected */\n @Prop({ reflect: true }) multiple: boolean = false;\n\n /** Show inline (auto width) */\n @Prop({ reflect: true }) inline: boolean = false;\n\n /** Don't wrap words when using inline (auto width) */\n @Prop({ reflect: true }) noWrap: boolean = false;\n\n /** The max number of options to display in the dropdown. Set to `null` for an unlimited number of options. */\n @Prop() maxOptions: number | null = null;\n\n /** When searching for multiple terms (separated by space), this is the operator used. Can be 'and' or 'or' */\n @Prop() searchConjunction: \"and\" | \"or\" = \"and\";\n\n /** Transform applied to input value before e.g. search is executed */\n @Prop() transformLoadQuery: \"trim\" | \"trim-to-single-ws\" | \"join\" | Function = \"trim\";\n\n /** If true, any options with a \"\" value will be treated like a normal option. This defaults to false to accommodate the common <select> practice of having the first empty option to act as a placeholder. */\n @Prop() allowEmptyOption: boolean = false;\n\n /** Show the dropdown immediately when the control receives focus. */\n @Prop() openOnFocus: boolean = true;\n\n /** After a selection is made, the dropdown will remain open if in a multi-selection control or will close in a single-selection control. Setting closeAfterSelect to true will force the dropdown to close after selections are made. Setting closeAfterSelect to false will keep the dropdown open after selections are made. */\n @Prop() closeAfterSelect: boolean | null = null;\n\n /** Invoked when new options should be loaded from the server. Called with the current query string and a callback function to call with the results when they are loaded (or nothing when an error arises). */\n @Prop() load: (query: string, callback: Function) => any[] | null = null;\n\n /** Minimum of characters required to execute the `load` function */\n @Prop() minCharacters: number = 3;\n\n /** The number of milliseconds to wait before requesting options from the server or null. If null, throttling is disabled. Useful when loading options dynamically while the user types a search / filter expression. */\n @Prop() loadThrottle: number = 300;\n\n /** If true, the load function will be called upon control initialization (with an empty search). Alternatively it can be set to 'focus' to call the load function when control receives focus. */\n @Prop() preload: boolean | \"focus\" = false;\n\n /** The name of the property to render as an option / item label (not needed when custom rendering functions are defined). */\n @Prop() labelField: string = \"text\";\n\n /** The name of the property to use as the value when an item is selected. */\n @Prop() valueField: string = \"value\";\n\n /** Only used for Angular control value accessors. Use `items` property to define preselected options. */\n @Prop({ mutable: true }) value: string | string[] = \"\";\n\n /** The name of the property to group items by. */\n @Prop() optgroupField: string = \"optgroup\";\n\n /** The name of the property to render as an option group label (not needed when custom rendering functions are defined). */\n @Prop() optgroupLabelField: string = \"label\";\n\n /** The name of the option group property that serves as its unique identifier. */\n @Prop() optgroupValueField: string = \"value\";\n\n /** If truthy, all optgroups will be displayed in the same order as they were added (by the `$order` property). Otherwise, it will order based on the score of the results in each. */\n @Prop() lockOptgroupOrder: true;\n\n /** Name of hidden select element */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** Initial open state */\n @Prop() open: boolean = false;\n\n /** Current open state (readonly) */\n @Prop({ reflect: true }) isOpen: boolean = false;\n\n /** Variant */\n @Prop({ reflect: true }) variant: \"default\" | \"plain\" | \"filter\" = \"default\";\n\n /** Size variant */\n @Prop({ reflect: true }) size: StzhDropdownSize = \"default\";\n\n /** Size variant (above small breakpoint) */\n @Prop({ reflect: true }) sizeSmall: StzhDropdownSize;\n\n /** Size variant (above medium breakpoint) */\n @Prop({ reflect: true }) sizeMedium: StzhDropdownSize;\n\n /** Size variant (above large breakpoint) */\n @Prop({ reflect: true }) sizeLarge: StzhDropdownSize;\n\n /** Size variant (above ultra breakpoint) */\n @Prop({ reflect: true }) sizeUltra: StzhDropdownSize;\n\n /** Whether the dropdown is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Popover placement */\n @Prop({ reflect: true }) popoverPlacement:\n | \"bottom\"\n | \"bottom-end\"\n | \"bottom-center\"\n | \"top\"\n | \"top-end\"\n | \"top-center\" = \"bottom\";\n\n /** Whether to stretch popover to fullwith of parent */\n @Prop({ reflect: true }) popoverFullwidth: \"horizontal\" | \"\" = \"\";\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Whether label should be truncate or not */\n @Prop() noLabelTruncate: boolean = false;\n\n /** Whether label should be visually hidden. */\n @Prop() labelHidden: boolean = false;\n\n /** Icon (use instead of icon slot) */\n @Prop() icon: string = \"\";\n\n /** Angle icon */\n @Prop() iconAngle: string = \"angle-down\";\n\n /** Prevent option search */\n @Prop() noSearch: boolean = false;\n\n /** Prevent backspace delete */\n @Prop() noBackspaceDelete: boolean = false;\n\n /** Invalid status */\n @Prop({ reflect: true }) invalid: boolean = false;\n\n /** Required status */\n @Prop({ reflect: true }) required: boolean = false;\n\n /** Hide `(optional)` label (or use `required` inside form to hide it) */\n @Prop({ reflect: true }) hideOptional: boolean = false;\n\n /** Description message (use description slot as alternative) */\n @Prop() description: string;\n\n /** Long description message appearing in a popover (use description-long slot as alternative) */\n @Prop() descriptionLong: string;\n\n /**\n * **Do not use this property. It will be deprecated with the next major release.**\n * Long description title appearing in a popover (use description-long-title slot as or description property alternative) */\n @Prop() descriptionLongTitle: string;\n\n /** One or multiple error message (use error slot as alternative) */\n @Prop() error: string | string[];\n private _error: string[];\n\n /** Translation strings */\n @Prop() localization: StzhDropdownLocalizedText;\n\n /** Id for element which describes the input (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n @Watch(\"options\")\n optionsWatcher(newValue: any[] | string) {\n if (typeof newValue === \"string\") {\n this._options = JSON.parse(newValue);\n } else {\n this._options = newValue;\n }\n }\n\n @Watch(\"items\")\n itemsWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._items = JSON.parse(newValue);\n } else {\n this._items = newValue;\n }\n this.value = this._items;\n }\n\n @Watch(\"searchField\")\n searchFieldWatcher(newValue: string[] | string) {\n if (typeof newValue === \"string\") {\n this._searchField = JSON.parse(newValue);\n } else {\n this._searchField = newValue;\n }\n }\n\n @Watch(\"optgroups\")\n optgroupsWatcher(newValue: any[] | string) {\n if (typeof newValue === \"string\") {\n this._optgroups = JSON.parse(newValue);\n } else {\n this._optgroups = newValue;\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 @Element() element: HTMLStzhDropdownElement;\n\n /**\n * Returns the value of the control.\n * If multiple items can be selected,\n * this returns an array, otherwise a string.\n */\n @Method()\n async getValue(): Promise<string | string[]> {\n return this.tomSelect.getValue();\n }\n\n /** Set new value */\n @Method()\n async setValue(newValue: string | string[], silent: boolean = false) {\n this.tomSelect.setValue(newValue, silent);\n }\n\n /** Reset loaded/cached search queries (calls from load property function) */\n @Method()\n async resetLoadedSearches() {\n this.tomSelect.loadedSearches = {};\n }\n\n /** Return loaded/cached search queries (calls from load property function) */\n @Method()\n async getLoadedSearches() {\n return this.tomSelect.loadedSearches;\n }\n\n /** Return current selected items */\n @Method()\n async getItems() {\n return this.tomSelect.items;\n }\n\n /** Load items by calling load property/function */\n @Method()\n async loadItems(query: string) {\n return this.tomSelect.load(query);\n }\n\n /** Show dropdown popover */\n @Method()\n async show() {\n return this.tomSelect.open();\n }\n\n /** Hide dropdown popover */\n @Method()\n async hide() {\n return this.tomSelect.close();\n }\n\n /** Dropdown change event */\n @Event() stzhChange: EventEmitter<StzhDropdownChangeEvent>;\n\n /** Dropdown item added event */\n @Event() stzhItemAdd: EventEmitter<StzhDropdownItemAddEvent>;\n\n /** Dropdown item removed event */\n @Event() stzhItemRemove: EventEmitter<StzhDropdownItemRemoveEvent>;\n\n /** Dropdown option added event */\n @Event() stzhOptionAdd: EventEmitter<StzhDropdownOptionAddEvent>;\n\n /** Dropdown option removed event */\n @Event() stzhOptionRemove: EventEmitter<StzhDropdownOptionRemoveEvent>;\n\n /** Dropdown open event */\n @Event() stzhOpen: EventEmitter<StzhDropdownOpenEvent>;\n\n /** Dropdown close event */\n @Event() stzhClose: EventEmitter<StzhDropdowCloseEvent>;\n\n /** Dropdown focus event */\n @Event() stzhFocus: EventEmitter<StzhDropdownFocusEvent>;\n\n /** Dropdown blur event */\n @Event() stzhBlur: EventEmitter<StzhDropdownBlurEvent>;\n\n /** Dropdown focus event */\n @Event() stzhInit: EventEmitter<StzhDropdowInitEvent>;\n\n private tomSelect: TomSelect;\n private select: HTMLSelectElement;\n private rootElement: HTMLElement;\n private dropdownWrapperElement: HTMLElement;\n private dropdownId: string;\n private focusedByInput: boolean = false;\n\n private updateFilled() {\n if (this._items?.length > 0) {\n this.rootElement.classList.add(CLASS_FILLED);\n this.element.setAttribute(\"is-filled\", \"true\");\n } else {\n this.rootElement.classList.remove(CLASS_FILLED);\n this.element.removeAttribute(\"is-filled\");\n }\n }\n\n private handleReset = () => {\n this.items = [...this.defaultItems];\n };\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.tomSelect.focus();\n }\n\n this.focusedByInput = false;\n };\n\n async componentWillLoad() {\n this.dropdownId = `stzh-dropdown-${dropdownCounter++}`;\n\n this.optionsWatcher(this.options);\n this.optgroupsWatcher(this.optgroups);\n this.itemsWatcher(this.items);\n this.searchFieldWatcher(this.searchField);\n this.errorWatcher(this.error);\n\n this.defaultItems = this.defaultItems || this._items;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"dropdown\");\n }\n }\n\n componentShouldUpdate(_newValue, _oldValue, prop: string) {\n return [\"isOpen\", \"value\"].includes(prop) === false;\n }\n\n async componentWillUpdate() {\n if (this.tomSelect) {\n this.tomSelect.destroy();\n this.tomSelect = null;\n }\n }\n\n async componentDidRender() {\n if (this.tomSelect) {\n return;\n }\n\n const plugins = {};\n\n if (this.noSearch) {\n plugins[\"input_readonly\"] = {};\n } else {\n plugins[\"input_autogrow\"] = {};\n }\n\n if (this.noBackspaceDelete) {\n plugins[\"no_backspace_delete\"] = {};\n }\n\n if (this.multiple) {\n plugins[\"checkbox_options\"] = {};\n }\n\n if (this.multiple || this.variant === \"filter\") {\n plugins[\"remove_button\"] = {\n title: this.localization.removeButtonTitle,\n label: '<stzh-icon name=\"close-big\" class=\"stzh-dropdown__remove-icon\"></stzh-icon>',\n };\n }\n\n const tomSelectOptions: any = {\n dropdownParent: this.dropdownWrapperElement,\n openDisplay: \"flex\",\n plugins,\n maxItems: this.multiple ? null : 1,\n maxOptions: this.maxOptions,\n items: this._items,\n optgroups: this._optgroups,\n searchField: this._searchField,\n searchConjunction: this.searchConjunction,\n allowEmptyOption: this.allowEmptyOption,\n closeAfterSelect: this.closeAfterSelect !== null ? this.closeAfterSelect : !this.multiple,\n labelField: this.labelField,\n valueField: this.valueField,\n optgroupField: this.optgroupField,\n optgroupLabelField: this.optgroupLabelField,\n optgroupValueField: this.optgroupValueField,\n lockOptgroupOrder: this.lockOptgroupOrder,\n load: this.load,\n transformLoadQuery: (inputValue: string) => {\n if (typeof this.transformLoadQuery === \"function\") {\n return this.transformLoadQuery(inputValue);\n } else if (this.transformLoadQuery === \"join\") {\n const lastQueries = Array.from(this.tomSelect.controlChildren()).map(\n (element: HTMLElement) => element.innerText,\n );\n\n return (\n (lastQueries.length > 0 ? lastQueries.join(\" \") + (inputValue ? \" \" : \"\") : \"\") +\n inputValue.replace(/\\s\\s+/g, \" \")\n );\n } else if (this.transformLoadQuery === \"trim-to-single-ws\") {\n return inputValue.replace(/\\s\\s+/g, \" \");\n } else {\n return inputValue.trim();\n }\n },\n shouldLoad: (query: string) => {\n return query.length >= this.minCharacters;\n },\n loadThrottle: this.loadThrottle,\n preload: this.preload,\n openOnFocus: this.openOnFocus,\n loadingClass: \"is-loading\",\n hideSelected: false,\n duplicates: false,\n delimiter: \",\",\n copyClassesToDropdown: false,\n hidePlaceholder: null,\n // if you want the user to be able to add own items enable this option\n // (but checkbox_options plugin throws an error and would need a fix first)\n // create: function(input, callback) {\n // callback({ value: input, text: input });\n // },\n // createOnBlur: false,\n // createFilter: null,\n // persist: false,\n render: {\n option: (data, escape) => {\n return `\n <div class=\"stzh-dropdown__option\">\n <span class=\"stzh-dropdown__option-title\">\n ${escape(data[this.labelField])}\n </span>\n <stzh-icon name=\"checkmark\" class=\"stzh-dropdown__option-check\"></stzh-icon>\n </div>\n `;\n },\n item: (data, escape) => {\n return `\n <div class=\"stzh-dropdown__item\">\n ${escape(data[this.labelField])}\n </div>\n `;\n },\n option_create: (data, escape) => {\n return `\n <div class=\"stzh-dropdown__create\">\n ${this.localization.create.replace(/\\{x\\}/gi, escape(data.input))}…\n </div>\n `;\n },\n no_results: (data, escape) => {\n return `\n <div class=\"stzh-dropdown__no-results\" id=\"${this.dropdownId}-no-results\">\n ${this.localization.noResults.replace(/\\{x\\}/gi, escape(data.input))}\n </div>`;\n },\n not_loading:\n this.load === null\n ? null\n : (_data, escape) => {\n return `\n <div class=\"stzh-dropdown__not-loading\" id=\"${this.dropdownId}-not-loading\">\n ${this.localization.notLoading.replace(/\\{x\\}/gi, escape(this.minCharacters.toString()))}\n </div>\n `;\n },\n optgroup: data => {\n let optgroup = document.createElement(\"div\");\n optgroup.className = \"stzh-dropdown__optgroup\";\n optgroup.appendChild(data.options);\n return optgroup;\n },\n optgroup_header: (data, escape) => {\n return `\n <div class=\"stzh-dropdown__optgroup-header\">\n ${escape(data.label)}\n </div>\n `;\n },\n loading: () => {\n return `\n <div class=\"stzh-dropdown__loader\">\n <stzh-loader></stzh-loader>\n </div>\n `;\n },\n dropdown: () => {\n return `<div class=\"stzh-dropdown__dropdown\"></div>`;\n },\n },\n onChange: value => {\n this._items = this.tomSelect.items;\n this.updateFilled();\n this.value = this.multiple ? this._items : this._items[0];\n this.stzhChange.emit({\n component: \"stzh-dropdown\",\n value,\n });\n },\n onItemAdd: value => {\n this._items = this.tomSelect.items;\n this.stzhItemAdd.emit({\n component: \"stzh-dropdown\",\n value,\n });\n },\n onItemRemove: value => {\n this._items = this.tomSelect.items;\n this.stzhItemRemove.emit({\n component: \"stzh-dropdown\",\n value,\n });\n },\n onOptionAdd: value => {\n this._options = this.tomSelect.options;\n this.updateFilled();\n\n this.stzhOptionAdd.emit({\n component: \"stzh-dropdown\",\n value,\n });\n },\n onOptionRemove: value => {\n this._options = this.tomSelect.options;\n this.updateFilled();\n\n this.stzhOptionRemove.emit({\n component: \"stzh-dropdown\",\n value,\n });\n },\n onDropdownOpen: () => {\n this.isOpen = true;\n this.stzhOpen.emit({\n component: \"stzh-dropdown\",\n });\n },\n onDropdownClose: () => {\n this.isOpen = false;\n this.stzhClose.emit({\n component: \"stzh-dropdown\",\n });\n },\n onFocus: () => {\n this.focusedByInput = true;\n\n if (this.tomSelect.load && this.preload === \"focus\") {\n // to be able to execute load function again, we reset loaded searches\n this.resetLoadedSearches();\n\n // if results have been preloaded before, load them now directly with load function\n if (this.tomSelect.wrapper.classList.contains(\"preloaded\")) {\n // since tomSelect.preload() doesn't call tomSelect.shouldCall() method internally (to check for minCharacters),\n // we will also not call it (this.tomSelect.settings.shouldLoad.call(this.tomSelect, ''))\n this.tomSelect.load(\"\");\n }\n }\n\n this.rootElement.classList.add(CLASS_FOCUS);\n const focusEvent = new FocusEvent(\"focus\", {\n view: window,\n bubbles: false,\n cancelable: false,\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: \"stzh-dropdown\",\n originalEvent: {\n target: this.tomSelect.control,\n },\n });\n },\n onBlur: () => {\n this.rootElement.classList.remove(CLASS_FOCUS);\n const blurEvent = new FocusEvent(\"blur\", {\n view: window,\n bubbles: false,\n cancelable: false,\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: \"stzh-dropdown\",\n });\n },\n onInitialize: () => {\n this.stzhInit.emit({\n component: \"stzh-dropdown\",\n });\n },\n onLoad: () => {\n this._options = this.tomSelect.options;\n },\n };\n\n if (this._options) {\n tomSelectOptions.options = this._options;\n }\n\n if (this._optgroups) {\n tomSelectOptions.optgroups = this._optgroups;\n }\n\n if (this._items) {\n tomSelectOptions.items = this._items;\n }\n\n this.updateFilled();\n this.tomSelect = new TomSelect(this.select, tomSelectOptions);\n\n if (!this.openOnFocus) {\n // we still want to enable opening the dropdown by click\n this.tomSelect.control.addEventListener(\"click\", () => {\n this.tomSelect.open();\n });\n }\n\n if (this.open) {\n this.show();\n }\n }\n\n disconnectedCallback() {\n if (this.tomSelect) {\n this.tomSelect.destroy();\n this.tomSelect = null;\n }\n }\n\n render() {\n const iconUsed = hasSlot(this.element, \"icon\") || !!this.icon;\n const descriptionUsed = hasSlot(this.element, \"description\") || !!this.description;\n const descriptionLongUsed = hasSlot(this.element, \"description-long\") || !!this.descriptionLong;\n const errorUsed = hasSlot(this.element, \"error\") || this._error?.length > 0;\n\n const classes = {\n \"stzh-dropdown\": true,\n \"stzh-dropdown--is-inline\": this.inline,\n \"stzh-dropdown--has-no-wrap\": this.noWrap,\n \"stzh-dropdown--is-multiple\": this.multiple,\n \"stzh-dropdown--is-disabled\": this.disabled,\n \"stzh-dropdown--is-required\": this.required,\n \"stzh-dropdown--is-invalid\": this.invalid || errorUsed,\n [CLASS_FILLED]: this._items && this._items.length > 0,\n \"stzh-dropdown--has-icon\": iconUsed,\n \"stzh-dropdown--has-description\": descriptionUsed,\n \"stzh-dropdown--has-description-long\": descriptionLongUsed,\n \"stzh-dropdown--has-error\": errorUsed,\n \"stzh-dropdown--has-no-search\": this.noSearch,\n \"stzh-dropdown--has-label-hidden\": this.labelHidden,\n [`stzh-dropdown--popover-placement-${this.popoverPlacement}`]: !!this.popoverPlacement,\n [`stzh-dropdown--popover-fullwidth-${this.popoverFullwidth}`]: !!this.popoverFullwidth,\n [`stzh-dropdown--size-${this.size}`]: !!this.size,\n [`stzh-dropdown--${this.variant}`]: !!this.variant,\n };\n\n return (\n <Host is-invalid={this.invalid || errorUsed} tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n <div class={classes} ref={el => (this.rootElement = el as HTMLDivElement)}>\n <div class=\"stzh-dropdown__wrapper\">\n <label\n id={`${this.dropdownId}-label`}\n class={{\n \"stzh-dropdown__label\": true,\n \"no-label-truncate\": this.noLabelTruncate,\n }}\n htmlFor={this.dropdownId}\n >\n {this.label ? this.label : <slot name=\"label\"></slot>}\n {!this.hideOptional && (\n <span class=\"stzh-dropdown__marker\">\n <span class=\"stzh-dropdown__marker-symbol\" aria-hidden=\"true\">\n {this.required\n ? this.localization.$globals.requiredFieldMarker\n : this.localization.$globals.optionalFieldMarker}\n </span>\n <span class=\"stzh-dropdown__marker-text\">\n {this.required\n ? this.localization.$globals.requiredFieldText\n : this.localization.$globals.optionalFieldText}\n </span>\n </span>\n )}\n </label>\n\n <div class=\"stzh-dropdown__field-wrapper\">\n {/* tom-select replaces this select with an combobox.\n Since it doesn't support aria-(describedby/required/invalid),\n we write necessary status information in the aria-labelledby */}\n <select\n id={this.dropdownId}\n class=\"stzh-dropdown__select\"\n ref={el => (this.select = el as HTMLSelectElement)}\n multiple={this.multiple}\n name={this.name}\n disabled={this.disabled}\n aria-labelledby={`${this.dropdownId}-label ${\n this.dropdownId\n }-not-loading ${this.dropdownId}-no-results ${\n this.hideOptional && this.required && `${this.dropdownId}-required`\n } ${this.invalid && `${this.dropdownId}-invalid`} ${\n this.dropdownId\n }-description ${this.a11yDescribedby}`}\n >\n <slot></slot>\n </select>\n\n {this.inline && this.label && <div class=\"stzh-dropdown__sizer\">{this.label}</div>}\n\n <div class=\"stzh-dropdown__icon-angle-wrapper\">\n {this.iconAngle ? (\n <stzh-icon name={this.iconAngle} class=\"stzh-dropdown__icon-angle\"></stzh-icon>\n ) : (\n <slot name=\"icon-angle\"></slot>\n )}\n </div>\n\n <div class=\"stzh-dropdown__icon-wrapper\">\n {this.icon ? (\n <stzh-icon class=\"stzh-dropdown__icon\" name={this.icon}></stzh-icon>\n ) : (\n <slot name=\"icon\"></slot>\n )}\n </div>\n\n {this.hideOptional && this.required && (\n <div id={`${this.dropdownId}-required`} class=\"stzh-dropdown__vhidden\">\n {this.localization.$globals.requiredFieldText}\n </div>\n )}\n\n {this.invalid && (\n <div id={`${this.dropdownId}-invalid`} class=\"stzh-dropdown__vhidden\">\n {this.localization.$globals.invalidFieldText}\n </div>\n )}\n </div>\n </div>\n\n <div\n class=\"stzh-dropdown__dropdown-wrapper\"\n ref={el => (this.dropdownWrapperElement = el as HTMLDivElement)}\n ></div>\n\n {(errorUsed || this.description || this.descriptionLong) && (\n <StzhInputDescription\n classPrefix=\"stzh-dropdown\"\n id={`${this.dropdownId}-description`}\n error={this._error}\n description={this.description}\n descriptionLong={this.descriptionLong}\n descriptionLongTitle={this.descriptionLongTitle}\n descriptionLongUsed={descriptionLongUsed}\n moreInfoButtonLabel={this.localization.$globals.moreInfoButtonLabel}\n />\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|