@zanichelli/albe-web-components 20.0.2-RC → 20.0.3
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/CHANGELOG.md +45 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/web-components-library.cjs.js +1 -1
- package/dist/cjs/z-accordion.cjs.entry.js +1 -1
- package/dist/cjs/z-anchor-navigation.cjs.entry.js +1 -1
- package/dist/cjs/z-app-header_12.cjs.entry.js +36 -19
- package/dist/cjs/z-app-header_12.cjs.entry.js.map +1 -1
- package/dist/cjs/z-aria-alert.cjs.entry.js +1 -1
- package/dist/cjs/z-avatar.cjs.entry.js +2 -2
- package/dist/cjs/z-book-card-app.cjs.entry.js +1 -1
- package/dist/cjs/z-book-card.cjs.entry.js +7 -7
- package/dist/cjs/z-book-card.cjs.entry.js.map +1 -1
- package/dist/cjs/z-book-cover.cjs.entry.js +1 -1
- package/dist/cjs/z-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/z-button-sort.cjs.entry.js +1 -1
- package/dist/cjs/z-chip.cjs.entry.js +2 -2
- package/dist/cjs/z-color-picker.cjs.entry.js +1 -1
- package/dist/cjs/z-combobox.cjs.entry.js +3 -3
- package/dist/cjs/z-combobox.cjs.entry.js.map +1 -1
- package/dist/cjs/z-cover-hero.cjs.entry.js +2 -2
- package/dist/cjs/z-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/z-dragdrop-area_2.cjs.entry.js +6 -6
- package/dist/cjs/z-file.cjs.entry.js +1 -1
- package/dist/cjs/z-ghost-loading.cjs.entry.js +1 -1
- package/dist/cjs/z-info-box.cjs.entry.js +1 -1
- package/dist/cjs/z-info-reveal.cjs.entry.js +1 -1
- package/dist/cjs/z-input-range.cjs.entry.js +1 -1
- package/dist/cjs/z-logo.cjs.entry.js +1 -1
- package/dist/cjs/z-menu-section.cjs.entry.js +1 -1
- package/dist/cjs/z-navigation-tabs.cjs.entry.js +2 -2
- package/dist/cjs/z-notification.cjs.entry.js +1 -1
- package/dist/cjs/z-popover.cjs.entry.js +1 -1
- package/dist/cjs/z-range-picker.cjs.entry.js +3 -3
- package/dist/cjs/z-select.cjs.entry.js +5 -1
- package/dist/cjs/z-select.cjs.entry.js.map +1 -1
- package/dist/cjs/z-skip-to-content.cjs.entry.js +1 -1
- package/dist/cjs/z-stepper-item.cjs.entry.js +7 -5
- package/dist/cjs/z-stepper-item.cjs.entry.js.map +1 -1
- package/dist/cjs/z-stepper.cjs.entry.js +2 -2
- package/dist/cjs/z-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/z-table.cjs.entry.js +1 -1
- package/dist/cjs/z-tbody.cjs.entry.js +1 -1
- package/dist/cjs/z-td.cjs.entry.js +1 -1
- package/dist/cjs/z-tfoot.cjs.entry.js +1 -1
- package/dist/cjs/z-th.cjs.entry.js +1 -1
- package/dist/cjs/z-thead.cjs.entry.js +1 -1
- package/dist/cjs/z-toast-notification-list.cjs.entry.js +1 -1
- package/dist/cjs/z-toast-notification.cjs.entry.js +3 -3
- package/dist/cjs/z-toggle-switch.cjs.entry.js +3 -3
- package/dist/cjs/z-tool.cjs.entry.js +2 -2
- package/dist/cjs/z-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/z-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/z-tr.cjs.entry.js +1 -1
- package/dist/cjs/z-tree-list.cjs.entry.js +1 -1
- package/dist/cjs/z-visually-hidden.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/book-card/z-book-card/index.js +6 -6
- package/dist/collection/components/book-card/z-book-card/index.js.map +1 -1
- package/dist/collection/components/book-card/z-book-card/styles.css +30 -6
- package/dist/collection/components/book-card/z-book-card-app/index.js +1 -1
- package/dist/collection/components/date-picker/z-date-picker/index.js +1 -1
- package/dist/collection/components/date-picker/z-range-picker/index.js +3 -3
- package/dist/collection/components/deprecated/table/cells/z-td/index.js +1 -1
- package/dist/collection/components/deprecated/table/cells/z-th/index.js +1 -1
- package/dist/collection/components/deprecated/table/z-table/index.js +1 -1
- package/dist/collection/components/deprecated/table/z-tbody/index.js +1 -1
- package/dist/collection/components/deprecated/table/z-tfoot/index.js +1 -1
- package/dist/collection/components/deprecated/table/z-thead/index.js +1 -1
- package/dist/collection/components/deprecated/table/z-tr/index.js +1 -1
- package/dist/collection/components/file-upload/z-dragdrop-area/index.js +2 -2
- package/dist/collection/components/file-upload/z-file/index.js +1 -1
- package/dist/collection/components/list/z-list/index.js +1 -1
- package/dist/collection/components/list/z-list-element/index.js +1 -1
- package/dist/collection/components/list/z-list-group/index.js +2 -2
- package/dist/collection/components/list/z-tree-list/index.js +1 -1
- package/dist/collection/components/z-accordion/index.js +1 -1
- package/dist/collection/components/z-anchor-navigation/index.js +1 -1
- package/dist/collection/components/z-app-header/index.js +13 -2
- package/dist/collection/components/z-app-header/index.js.map +1 -1
- package/dist/collection/components/z-app-header/styles.css +32 -17
- package/dist/collection/components/z-aria-alert/index.js +1 -1
- package/dist/collection/components/z-avatar/index.js +2 -2
- package/dist/collection/components/z-book-cover/index.js +1 -1
- package/dist/collection/components/z-breadcrumb/index.js +2 -2
- package/dist/collection/components/z-button-sort/index.js +1 -1
- package/dist/collection/components/z-chip/index.js +2 -2
- package/dist/collection/components/z-color-picker/index.js +1 -1
- package/dist/collection/components/z-combobox/index.js +2 -2
- package/dist/collection/components/z-combobox/index.js.map +1 -1
- package/dist/collection/components/z-combobox/styles.css +0 -8
- package/dist/collection/components/z-cover-hero/index.js +2 -2
- package/dist/collection/components/z-divider/index.js +1 -1
- package/dist/collection/components/z-ghost-loading/index.js +1 -1
- package/dist/collection/components/z-icon/index.js +1 -1
- package/dist/collection/components/z-info-box/index.js +1 -1
- package/dist/collection/components/z-info-reveal/index.js +1 -1
- package/dist/collection/components/z-input/index.js +7 -1
- package/dist/collection/components/z-input/index.js.map +1 -1
- package/dist/collection/components/z-input/styles-general.css +3 -1
- package/dist/collection/components/z-input-message/index.js +1 -1
- package/dist/collection/components/z-input-range/index.js +1 -1
- package/dist/collection/components/z-logo/index.js +1 -1
- package/dist/collection/components/z-menu-section/index.js +1 -1
- package/dist/collection/components/z-modal/index.js +4 -4
- package/dist/collection/components/z-navigation-tabs/index.js +2 -2
- package/dist/collection/components/z-notification/index.js +1 -1
- package/dist/collection/components/z-offcanvas/index.js +2 -2
- package/dist/collection/components/z-popover/index.js +1 -1
- package/dist/collection/components/z-searchbar/index.js +3 -3
- package/dist/collection/components/z-select/index.js +5 -1
- package/dist/collection/components/z-select/index.js.map +1 -1
- package/dist/collection/components/z-skip-to-content/index.js +1 -1
- package/dist/collection/components/z-stepper/index.js +1 -1
- package/dist/collection/components/z-stepper/index.js.map +1 -1
- package/dist/collection/components/z-stepper/styles.css +7 -8
- package/dist/collection/components/z-stepper-item/index.js +25 -4
- package/dist/collection/components/z-stepper-item/index.js.map +1 -1
- package/dist/collection/components/z-stepper-item/styles.css +89 -71
- package/dist/collection/components/z-tag/index.js +2 -2
- package/dist/collection/components/z-toast-notification/index.js +3 -3
- package/dist/collection/components/z-toast-notification-list/index.js +1 -1
- package/dist/collection/components/z-toggle-switch/index.js +3 -3
- package/dist/collection/components/z-tool/index.js +2 -2
- package/dist/collection/components/z-toolbar/index.js +1 -1
- package/dist/collection/components/z-tooltip/index.js +1 -1
- package/dist/collection/components/z-visually-hidden/index.js +1 -1
- package/dist/components/index10.js +1 -1
- package/dist/components/index11.js +1 -1
- package/dist/components/index12.js +1 -1
- package/dist/components/index13.js +1 -1
- package/dist/components/index14.js +1 -1
- package/dist/components/index15.js +1 -1
- package/dist/components/index16.js +1 -1
- package/dist/components/index17.js +1 -1
- package/dist/components/index18.js +1 -1
- package/dist/components/index19.js +1 -1
- package/dist/components/index20.js +1 -1
- package/dist/components/index21.js +1 -1
- package/dist/components/index3.js +1 -1
- package/dist/components/index5.js +1 -1
- package/dist/components/index6.js +1 -1
- package/dist/components/index6.js.map +1 -1
- package/dist/components/index7.js +1 -1
- package/dist/components/index8.js +1 -1
- package/dist/components/index9.js +1 -1
- package/dist/components/z-accordion.js +1 -1
- package/dist/components/z-anchor-navigation.js +1 -1
- package/dist/components/z-app-header.js +1 -1
- package/dist/components/z-app-header.js.map +1 -1
- package/dist/components/z-aria-alert.js +1 -1
- package/dist/components/z-avatar.js +1 -1
- package/dist/components/z-book-card-app.js +1 -1
- package/dist/components/z-book-card.js +1 -1
- package/dist/components/z-book-card.js.map +1 -1
- package/dist/components/z-breadcrumb.js +1 -1
- package/dist/components/z-button-sort.js +1 -1
- package/dist/components/z-color-picker.js +1 -1
- package/dist/components/z-combobox.js +1 -1
- package/dist/components/z-combobox.js.map +1 -1
- package/dist/components/z-cover-hero.js +1 -1
- package/dist/components/z-date-picker.js +1 -1
- package/dist/components/z-file.js +1 -1
- package/dist/components/z-info-box.js +1 -1
- package/dist/components/z-input-range.js +1 -1
- package/dist/components/z-logo.js +1 -1
- package/dist/components/z-menu-section.js +1 -1
- package/dist/components/z-navigation-tabs.js +1 -1
- package/dist/components/z-notification.js +1 -1
- package/dist/components/z-range-picker.js +1 -1
- package/dist/components/z-select.js +1 -1
- package/dist/components/z-select.js.map +1 -1
- package/dist/components/z-skip-to-content.js +1 -1
- package/dist/components/z-stepper-item.js +1 -1
- package/dist/components/z-stepper-item.js.map +1 -1
- package/dist/components/z-stepper.js +1 -1
- package/dist/components/z-stepper.js.map +1 -1
- package/dist/components/z-table.js +1 -1
- package/dist/components/z-tbody.js +1 -1
- package/dist/components/z-td.js +1 -1
- package/dist/components/z-tfoot.js +1 -1
- package/dist/components/z-th.js +1 -1
- package/dist/components/z-thead.js +1 -1
- package/dist/components/z-toast-notification-list.js +1 -1
- package/dist/components/z-toast-notification.js +3 -3
- package/dist/components/z-toggle-switch.js +1 -1
- package/dist/components/z-tool.js +1 -1
- package/dist/components/z-toolbar.js +1 -1
- package/dist/components/z-tr.js +1 -1
- package/dist/components/z-tree-list.js +1 -1
- package/dist/components/z-visually-hidden.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/web-components-library.js +1 -1
- package/dist/esm/z-accordion.entry.js +1 -1
- package/dist/esm/z-anchor-navigation.entry.js +1 -1
- package/dist/esm/z-app-header_12.entry.js +36 -19
- package/dist/esm/z-app-header_12.entry.js.map +1 -1
- package/dist/esm/z-aria-alert.entry.js +1 -1
- package/dist/esm/z-avatar.entry.js +2 -2
- package/dist/esm/z-book-card-app.entry.js +1 -1
- package/dist/esm/z-book-card.entry.js +7 -7
- package/dist/esm/z-book-card.entry.js.map +1 -1
- package/dist/esm/z-book-cover.entry.js +1 -1
- package/dist/esm/z-breadcrumb.entry.js +2 -2
- package/dist/esm/z-button-sort.entry.js +1 -1
- package/dist/esm/z-chip.entry.js +2 -2
- package/dist/esm/z-color-picker.entry.js +1 -1
- package/dist/esm/z-combobox.entry.js +3 -3
- package/dist/esm/z-combobox.entry.js.map +1 -1
- package/dist/esm/z-cover-hero.entry.js +2 -2
- package/dist/esm/z-date-picker.entry.js +1 -1
- package/dist/esm/z-dragdrop-area_2.entry.js +6 -6
- package/dist/esm/z-file.entry.js +1 -1
- package/dist/esm/z-ghost-loading.entry.js +1 -1
- package/dist/esm/z-info-box.entry.js +1 -1
- package/dist/esm/z-info-reveal.entry.js +1 -1
- package/dist/esm/z-input-range.entry.js +1 -1
- package/dist/esm/z-logo.entry.js +1 -1
- package/dist/esm/z-menu-section.entry.js +1 -1
- package/dist/esm/z-navigation-tabs.entry.js +2 -2
- package/dist/esm/z-notification.entry.js +1 -1
- package/dist/esm/z-popover.entry.js +1 -1
- package/dist/esm/z-range-picker.entry.js +3 -3
- package/dist/esm/z-select.entry.js +5 -1
- package/dist/esm/z-select.entry.js.map +1 -1
- package/dist/esm/z-skip-to-content.entry.js +1 -1
- package/dist/esm/z-stepper-item.entry.js +7 -5
- package/dist/esm/z-stepper-item.entry.js.map +1 -1
- package/dist/esm/z-stepper.entry.js +2 -2
- package/dist/esm/z-stepper.entry.js.map +1 -1
- package/dist/esm/z-table.entry.js +1 -1
- package/dist/esm/z-tbody.entry.js +1 -1
- package/dist/esm/z-td.entry.js +1 -1
- package/dist/esm/z-tfoot.entry.js +1 -1
- package/dist/esm/z-th.entry.js +1 -1
- package/dist/esm/z-thead.entry.js +1 -1
- package/dist/esm/z-toast-notification-list.entry.js +1 -1
- package/dist/esm/z-toast-notification.entry.js +3 -3
- package/dist/esm/z-toggle-switch.entry.js +3 -3
- package/dist/esm/z-tool.entry.js +2 -2
- package/dist/esm/z-toolbar.entry.js +1 -1
- package/dist/esm/z-tooltip.entry.js +1 -1
- package/dist/esm/z-tr.entry.js +1 -1
- package/dist/esm/z-tree-list.entry.js +1 -1
- package/dist/esm/z-visually-hidden.entry.js +1 -1
- package/dist/types/components/book-card/z-book-card/index.d.ts +0 -1
- package/dist/types/components/z-app-header/index.d.ts +2 -0
- package/dist/types/components/z-input/index.d.ts +1 -0
- package/dist/types/components/z-stepper/index.d.ts +1 -1
- package/dist/types/components/z-stepper-item/index.d.ts +4 -0
- package/dist/types/components.d.ts +9 -0
- package/dist/web-components-library/{p-c983da75.entry.js → p-04b6a9f8.entry.js} +2 -2
- package/dist/web-components-library/{p-08384d53.entry.js → p-09ac8cb2.entry.js} +2 -2
- package/dist/web-components-library/{p-e1d1445c.entry.js → p-10ffee06.entry.js} +2 -2
- package/dist/web-components-library/{p-eea18ea6.entry.js → p-13bc7433.entry.js} +2 -2
- package/dist/web-components-library/{p-fdafba48.entry.js → p-16423e69.entry.js} +2 -2
- package/{www/build/p-633d18e9.entry.js → dist/web-components-library/p-1702efd5.entry.js} +2 -2
- package/dist/web-components-library/p-1702efd5.entry.js.map +1 -0
- package/{www/build/p-886382a7.entry.js → dist/web-components-library/p-1fedbf42.entry.js} +2 -2
- package/{www/build/p-deed5153.entry.js → dist/web-components-library/p-248ff73f.entry.js} +2 -2
- package/{www/build/p-e2cdf19c.entry.js → dist/web-components-library/p-2f8bd98f.entry.js} +2 -2
- package/dist/web-components-library/{p-81c949eb.entry.js → p-320b05fc.entry.js} +2 -2
- package/dist/web-components-library/p-3e78dc0d.entry.js +2 -0
- package/dist/web-components-library/p-3e78dc0d.entry.js.map +1 -0
- package/dist/web-components-library/{p-0fb73edd.entry.js → p-41a3f231.entry.js} +2 -2
- package/{www/build/p-41966ee6.entry.js → dist/web-components-library/p-4362efeb.entry.js} +2 -2
- package/dist/web-components-library/p-484f3064.entry.js +2 -0
- package/dist/web-components-library/p-484f3064.entry.js.map +1 -0
- package/dist/web-components-library/{p-87be3ccc.entry.js → p-4bc9e06a.entry.js} +2 -2
- package/dist/web-components-library/{p-2780f6d9.entry.js → p-4c054dc5.entry.js} +2 -2
- package/dist/web-components-library/{p-d4e212cc.entry.js → p-4d6ea6b1.entry.js} +2 -2
- package/{www/build/p-06a196fb.entry.js → dist/web-components-library/p-57ba851d.entry.js} +2 -2
- package/dist/web-components-library/{p-350ea24f.entry.js → p-5ecdc465.entry.js} +2 -2
- package/dist/web-components-library/{p-95af0156.entry.js → p-6005c944.entry.js} +2 -2
- package/{www/build/p-a4f5e7e9.entry.js → dist/web-components-library/p-61b49075.entry.js} +2 -2
- package/dist/web-components-library/{p-2e4db422.entry.js → p-67a2f55e.entry.js} +2 -2
- package/dist/web-components-library/p-6ce99251.entry.js +2 -0
- package/dist/web-components-library/p-6ce99251.entry.js.map +1 -0
- package/dist/web-components-library/p-885472aa.entry.js +2 -0
- package/{www/build/p-ce98069e.entry.js.map → dist/web-components-library/p-885472aa.entry.js.map} +1 -1
- package/dist/web-components-library/{p-55c3310f.entry.js → p-9dc4d290.entry.js} +2 -2
- package/dist/web-components-library/p-a1f060c0.entry.js +2 -0
- package/dist/web-components-library/{p-e160889a.entry.js.map → p-a1f060c0.entry.js.map} +1 -1
- package/dist/web-components-library/p-a30b5538.entry.js +2 -0
- package/dist/web-components-library/p-a30b5538.entry.js.map +1 -0
- package/dist/web-components-library/{p-3574a17e.entry.js → p-a5e15158.entry.js} +2 -2
- package/dist/web-components-library/{p-42cfc136.entry.js → p-acd3b237.entry.js} +2 -2
- package/dist/web-components-library/p-ae51be93.entry.js +2 -0
- package/dist/web-components-library/{p-2a74e691.entry.js → p-b3d0d75c.entry.js} +2 -2
- package/dist/web-components-library/{p-5ae84959.entry.js → p-b5d18aae.entry.js} +2 -2
- package/dist/web-components-library/{p-2eaf4b9b.entry.js → p-bd1876f7.entry.js} +2 -2
- package/dist/web-components-library/{p-059963b6.entry.js → p-bd663d9d.entry.js} +2 -2
- package/dist/web-components-library/p-c00b8b6d.entry.js +2 -0
- package/dist/web-components-library/p-c00b8b6d.entry.js.map +1 -0
- package/dist/web-components-library/{p-ee5ff565.entry.js → p-ca2d01fd.entry.js} +2 -2
- package/dist/web-components-library/{p-47d4000c.entry.js → p-d4ad8db2.entry.js} +2 -2
- package/{www/build/p-d4eb997c.entry.js → dist/web-components-library/p-d70ab97a.entry.js} +2 -2
- package/dist/web-components-library/{p-668b9254.entry.js → p-d76c3418.entry.js} +2 -2
- package/dist/web-components-library/{p-bdd9c781.entry.js → p-de682f93.entry.js} +2 -2
- package/{www/build/p-6af7c34f.entry.js → dist/web-components-library/p-ea462d53.entry.js} +2 -2
- package/{www/build/p-c15267bc.entry.js → dist/web-components-library/p-eb2deba7.entry.js} +2 -2
- package/dist/web-components-library/{p-baa35a6e.entry.js → p-f074b98b.entry.js} +2 -2
- package/dist/web-components-library/{p-ea96790b.entry.js → p-f95adaa5.entry.js} +3 -3
- package/dist/web-components-library/{p-e972b9c2.entry.js → p-fa11fd2d.entry.js} +2 -2
- package/dist/web-components-library/{p-1b562386.entry.js → p-ffe7860b.entry.js} +2 -2
- package/dist/web-components-library/web-components-library.esm.js +1 -1
- package/package.json +2 -3
- package/www/build/{p-c983da75.entry.js → p-04b6a9f8.entry.js} +2 -2
- package/www/build/{p-08384d53.entry.js → p-09ac8cb2.entry.js} +2 -2
- package/www/build/{p-e1d1445c.entry.js → p-10ffee06.entry.js} +2 -2
- package/www/build/{p-eea18ea6.entry.js → p-13bc7433.entry.js} +2 -2
- package/www/build/{p-fdafba48.entry.js → p-16423e69.entry.js} +2 -2
- package/{dist/web-components-library/p-633d18e9.entry.js → www/build/p-1702efd5.entry.js} +2 -2
- package/www/build/p-1702efd5.entry.js.map +1 -0
- package/{dist/web-components-library/p-886382a7.entry.js → www/build/p-1fedbf42.entry.js} +2 -2
- package/{dist/web-components-library/p-deed5153.entry.js → www/build/p-248ff73f.entry.js} +2 -2
- package/{dist/web-components-library/p-e2cdf19c.entry.js → www/build/p-2f8bd98f.entry.js} +2 -2
- package/www/build/{p-81c949eb.entry.js → p-320b05fc.entry.js} +2 -2
- package/www/build/p-3e78dc0d.entry.js +2 -0
- package/www/build/p-3e78dc0d.entry.js.map +1 -0
- package/www/build/{p-0fb73edd.entry.js → p-41a3f231.entry.js} +2 -2
- package/{dist/web-components-library/p-41966ee6.entry.js → www/build/p-4362efeb.entry.js} +2 -2
- package/www/build/p-484f3064.entry.js +2 -0
- package/www/build/p-484f3064.entry.js.map +1 -0
- package/www/build/{p-87be3ccc.entry.js → p-4bc9e06a.entry.js} +2 -2
- package/www/build/{p-2780f6d9.entry.js → p-4c054dc5.entry.js} +2 -2
- package/www/build/{p-d4e212cc.entry.js → p-4d6ea6b1.entry.js} +2 -2
- package/www/build/{p-9a93e186.js → p-55885a66.js} +1 -1
- package/{dist/web-components-library/p-06a196fb.entry.js → www/build/p-57ba851d.entry.js} +2 -2
- package/www/build/{p-350ea24f.entry.js → p-5ecdc465.entry.js} +2 -2
- package/www/build/{p-95af0156.entry.js → p-6005c944.entry.js} +2 -2
- package/{dist/web-components-library/p-a4f5e7e9.entry.js → www/build/p-61b49075.entry.js} +2 -2
- package/www/build/{p-2e4db422.entry.js → p-67a2f55e.entry.js} +2 -2
- package/www/build/p-6ce99251.entry.js +2 -0
- package/www/build/p-6ce99251.entry.js.map +1 -0
- package/www/build/p-885472aa.entry.js +2 -0
- package/{dist/web-components-library/p-ce98069e.entry.js.map → www/build/p-885472aa.entry.js.map} +1 -1
- package/www/build/{p-55c3310f.entry.js → p-9dc4d290.entry.js} +2 -2
- package/www/build/p-a1f060c0.entry.js +2 -0
- package/www/build/{p-e160889a.entry.js.map → p-a1f060c0.entry.js.map} +1 -1
- package/www/build/p-a30b5538.entry.js +2 -0
- package/www/build/p-a30b5538.entry.js.map +1 -0
- package/www/build/{p-3574a17e.entry.js → p-a5e15158.entry.js} +2 -2
- package/www/build/{p-42cfc136.entry.js → p-acd3b237.entry.js} +2 -2
- package/www/build/p-ae51be93.entry.js +2 -0
- package/www/build/{p-2a74e691.entry.js → p-b3d0d75c.entry.js} +2 -2
- package/www/build/{p-5ae84959.entry.js → p-b5d18aae.entry.js} +2 -2
- package/www/build/{p-2eaf4b9b.entry.js → p-bd1876f7.entry.js} +2 -2
- package/www/build/{p-059963b6.entry.js → p-bd663d9d.entry.js} +2 -2
- package/www/build/p-c00b8b6d.entry.js +2 -0
- package/www/build/p-c00b8b6d.entry.js.map +1 -0
- package/www/build/{p-ee5ff565.entry.js → p-ca2d01fd.entry.js} +2 -2
- package/www/build/{p-47d4000c.entry.js → p-d4ad8db2.entry.js} +2 -2
- package/{dist/web-components-library/p-d4eb997c.entry.js → www/build/p-d70ab97a.entry.js} +2 -2
- package/www/build/{p-668b9254.entry.js → p-d76c3418.entry.js} +2 -2
- package/www/build/{p-bdd9c781.entry.js → p-de682f93.entry.js} +2 -2
- package/{dist/web-components-library/p-6af7c34f.entry.js → www/build/p-ea462d53.entry.js} +2 -2
- package/{dist/web-components-library/p-c15267bc.entry.js → www/build/p-eb2deba7.entry.js} +2 -2
- package/www/build/{p-baa35a6e.entry.js → p-f074b98b.entry.js} +2 -2
- package/www/build/{p-ea96790b.entry.js → p-f95adaa5.entry.js} +3 -3
- package/www/build/{p-e972b9c2.entry.js → p-fa11fd2d.entry.js} +2 -2
- package/www/build/{p-1b562386.entry.js → p-ffe7860b.entry.js} +2 -2
- package/www/build/web-components-library.esm.js +1 -1
- package/www/index.html +1 -1
- package/www/pages/stepper/stepper-1.html +127 -0
- package/www/pages/stepper/stepper-2.html +128 -0
- package/www/pages/stepper/stepper-3.html +153 -0
- package/dist/web-components-library/p-12305e05.entry.js +0 -2
- package/dist/web-components-library/p-12305e05.entry.js.map +0 -1
- package/dist/web-components-library/p-1fad41b2.entry.js +0 -2
- package/dist/web-components-library/p-1fad41b2.entry.js.map +0 -1
- package/dist/web-components-library/p-55693913.entry.js +0 -2
- package/dist/web-components-library/p-55693913.entry.js.map +0 -1
- package/dist/web-components-library/p-633d18e9.entry.js.map +0 -1
- package/dist/web-components-library/p-781d96de.entry.js +0 -2
- package/dist/web-components-library/p-781d96de.entry.js.map +0 -1
- package/dist/web-components-library/p-bc8eec12.entry.js +0 -2
- package/dist/web-components-library/p-ce98069e.entry.js +0 -2
- package/dist/web-components-library/p-e160889a.entry.js +0 -2
- package/dist/web-components-library/p-f7e11eab.entry.js +0 -2
- package/dist/web-components-library/p-f7e11eab.entry.js.map +0 -1
- package/www/build/p-12305e05.entry.js +0 -2
- package/www/build/p-12305e05.entry.js.map +0 -1
- package/www/build/p-1fad41b2.entry.js +0 -2
- package/www/build/p-1fad41b2.entry.js.map +0 -1
- package/www/build/p-55693913.entry.js +0 -2
- package/www/build/p-55693913.entry.js.map +0 -1
- package/www/build/p-633d18e9.entry.js.map +0 -1
- package/www/build/p-781d96de.entry.js +0 -2
- package/www/build/p-781d96de.entry.js.map +0 -1
- package/www/build/p-bc8eec12.entry.js +0 -2
- package/www/build/p-ce98069e.entry.js +0 -2
- package/www/build/p-e160889a.entry.js +0 -2
- package/www/build/p-f7e11eab.entry.js +0 -2
- package/www/build/p-f7e11eab.entry.js.map +0 -1
- /package/dist/web-components-library/{p-c983da75.entry.js.map → p-04b6a9f8.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-08384d53.entry.js.map → p-09ac8cb2.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-e1d1445c.entry.js.map → p-10ffee06.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-eea18ea6.entry.js.map → p-13bc7433.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-fdafba48.entry.js.map → p-16423e69.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-886382a7.entry.js.map → p-1fedbf42.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-deed5153.entry.js.map → p-248ff73f.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-e2cdf19c.entry.js.map → p-2f8bd98f.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-81c949eb.entry.js.map → p-320b05fc.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-0fb73edd.entry.js.map → p-41a3f231.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-41966ee6.entry.js.map → p-4362efeb.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-87be3ccc.entry.js.map → p-4bc9e06a.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-2780f6d9.entry.js.map → p-4c054dc5.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-d4e212cc.entry.js.map → p-4d6ea6b1.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-06a196fb.entry.js.map → p-57ba851d.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-350ea24f.entry.js.map → p-5ecdc465.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-95af0156.entry.js.map → p-6005c944.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-a4f5e7e9.entry.js.map → p-61b49075.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-2e4db422.entry.js.map → p-67a2f55e.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-55c3310f.entry.js.map → p-9dc4d290.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-3574a17e.entry.js.map → p-a5e15158.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-42cfc136.entry.js.map → p-acd3b237.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-bc8eec12.entry.js.map → p-ae51be93.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-2a74e691.entry.js.map → p-b3d0d75c.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-5ae84959.entry.js.map → p-b5d18aae.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-2eaf4b9b.entry.js.map → p-bd1876f7.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-059963b6.entry.js.map → p-bd663d9d.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-ee5ff565.entry.js.map → p-ca2d01fd.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-47d4000c.entry.js.map → p-d4ad8db2.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-d4eb997c.entry.js.map → p-d70ab97a.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-668b9254.entry.js.map → p-d76c3418.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-bdd9c781.entry.js.map → p-de682f93.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-6af7c34f.entry.js.map → p-ea462d53.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-c15267bc.entry.js.map → p-eb2deba7.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-baa35a6e.entry.js.map → p-f074b98b.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-ea96790b.entry.js.map → p-f95adaa5.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-e972b9c2.entry.js.map → p-fa11fd2d.entry.js.map} +0 -0
- /package/dist/web-components-library/{p-1b562386.entry.js.map → p-ffe7860b.entry.js.map} +0 -0
- /package/www/build/{p-c983da75.entry.js.map → p-04b6a9f8.entry.js.map} +0 -0
- /package/www/build/{p-08384d53.entry.js.map → p-09ac8cb2.entry.js.map} +0 -0
- /package/www/build/{p-e1d1445c.entry.js.map → p-10ffee06.entry.js.map} +0 -0
- /package/www/build/{p-eea18ea6.entry.js.map → p-13bc7433.entry.js.map} +0 -0
- /package/www/build/{p-fdafba48.entry.js.map → p-16423e69.entry.js.map} +0 -0
- /package/www/build/{p-886382a7.entry.js.map → p-1fedbf42.entry.js.map} +0 -0
- /package/www/build/{p-deed5153.entry.js.map → p-248ff73f.entry.js.map} +0 -0
- /package/www/build/{p-e2cdf19c.entry.js.map → p-2f8bd98f.entry.js.map} +0 -0
- /package/www/build/{p-81c949eb.entry.js.map → p-320b05fc.entry.js.map} +0 -0
- /package/www/build/{p-0fb73edd.entry.js.map → p-41a3f231.entry.js.map} +0 -0
- /package/www/build/{p-41966ee6.entry.js.map → p-4362efeb.entry.js.map} +0 -0
- /package/www/build/{p-87be3ccc.entry.js.map → p-4bc9e06a.entry.js.map} +0 -0
- /package/www/build/{p-2780f6d9.entry.js.map → p-4c054dc5.entry.js.map} +0 -0
- /package/www/build/{p-d4e212cc.entry.js.map → p-4d6ea6b1.entry.js.map} +0 -0
- /package/www/build/{p-06a196fb.entry.js.map → p-57ba851d.entry.js.map} +0 -0
- /package/www/build/{p-350ea24f.entry.js.map → p-5ecdc465.entry.js.map} +0 -0
- /package/www/build/{p-95af0156.entry.js.map → p-6005c944.entry.js.map} +0 -0
- /package/www/build/{p-a4f5e7e9.entry.js.map → p-61b49075.entry.js.map} +0 -0
- /package/www/build/{p-2e4db422.entry.js.map → p-67a2f55e.entry.js.map} +0 -0
- /package/www/build/{p-55c3310f.entry.js.map → p-9dc4d290.entry.js.map} +0 -0
- /package/www/build/{p-3574a17e.entry.js.map → p-a5e15158.entry.js.map} +0 -0
- /package/www/build/{p-42cfc136.entry.js.map → p-acd3b237.entry.js.map} +0 -0
- /package/www/build/{p-bc8eec12.entry.js.map → p-ae51be93.entry.js.map} +0 -0
- /package/www/build/{p-2a74e691.entry.js.map → p-b3d0d75c.entry.js.map} +0 -0
- /package/www/build/{p-5ae84959.entry.js.map → p-b5d18aae.entry.js.map} +0 -0
- /package/www/build/{p-2eaf4b9b.entry.js.map → p-bd1876f7.entry.js.map} +0 -0
- /package/www/build/{p-059963b6.entry.js.map → p-bd663d9d.entry.js.map} +0 -0
- /package/www/build/{p-ee5ff565.entry.js.map → p-ca2d01fd.entry.js.map} +0 -0
- /package/www/build/{p-47d4000c.entry.js.map → p-d4ad8db2.entry.js.map} +0 -0
- /package/www/build/{p-d4eb997c.entry.js.map → p-d70ab97a.entry.js.map} +0 -0
- /package/www/build/{p-668b9254.entry.js.map → p-d76c3418.entry.js.map} +0 -0
- /package/www/build/{p-bdd9c781.entry.js.map → p-de682f93.entry.js.map} +0 -0
- /package/www/build/{p-6af7c34f.entry.js.map → p-ea462d53.entry.js.map} +0 -0
- /package/www/build/{p-c15267bc.entry.js.map → p-eb2deba7.entry.js.map} +0 -0
- /package/www/build/{p-baa35a6e.entry.js.map → p-f074b98b.entry.js.map} +0 -0
- /package/www/build/{p-ea96790b.entry.js.map → p-f95adaa5.entry.js.map} +0 -0
- /package/www/build/{p-e972b9c2.entry.js.map → p-fa11fd2d.entry.js.map} +0 -0
- /package/www/build/{p-1b562386.entry.js.map → p-ffe7860b.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["stylesCss","typographyCss","ZBookCard","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","variant","BookCardVariant","PORTRAIT","isbnLabel","linkTarget","hasMultipleCovers","emitEbookClick","ebookClick","emit","emitCoverClick","coverClick","emitTitleClick","titleClick","renderCover","CoverTag","ebookUrl","coverAttrs","href","onClick","target","h","Object","assign","class","cover","fallbackCover","multiple","name","slot","renderYear","year","renderAuthors","authors","LANDSCAPE","renderCtaSlot","renderOperaTitle","title","titleHtmlTag","operaTitle","innerHTML","renderVolumeTitle","volumeTitle","renderIsbn","isbn","renderEbook","size","ControlSize","X_SMALL","htmlRole","render","Host","key"],"sources":["src/components/book-card/z-book-card/styles.css?tag=z-book-card&encapsulation=shadow","src/tokens/typography.css?tag=z-book-card&encapsulation=shadow","src/components/css-components/z-link/styles.css?tag=z-book-card&encapsulation=shadow","src/components/book-card/z-book-card/index.tsx"],"sourcesContent":[":host {\n /**\n * @prop --z-book-card-portrait-cover-height: Set custom cover height for portrait variant - Default: `378px`\n * @prop --z-book-card-title-lines: Set title avilable lines - Default: `2`\n * @prop --z-book-card-title-word-break: Set title word-break rule - Default: `initial`\n * @prop --z-book-card-subtitle-lines: Set subtitle available lines - Default: `1`\n * @prop --z-book-card-subtitle-word-break: Set subtitle word-break rule - Default: `break-all`\n * @prop --z-book-card-authors-lines: Set authors available lines - Default: `1`\n * @prop --z-book-card-authors-word-break: Set authors word-break rule - Default: `break-all`\n */\n --z-book-card-portrait-cover-height: 378px;\n --z-book-card-title-lines: 2;\n --z-book-card-title-word-break: initial;\n --z-book-card-subtitle-lines: 1;\n --z-book-card-subtitle-word-break: break-all;\n --z-book-card-authors-lines: 1;\n --z-book-card-authors-word-break: break-all;\n\n display: flex;\n width: 304px;\n box-sizing: border-box;\n flex-direction: column;\n border: solid var(--border-size-medium) var(--color-surface03);\n background-color: var(--color-surface01);\n border-radius: var(--border-radius);\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n}\n\n:host,\n* {\n box-sizing: border-box;\n}\n\n.main-content {\n display: flex;\n height: 100%;\n flex-direction: column;\n padding: var(--space-unit);\n gap: var(--space-unit);\n}\n\n.main-content .cover {\n position: relative;\n display: flex;\n overflow: hidden;\n align-items: flex-end;\n justify-content: center;\n border-radius: var(--border-radius);\n}\n\n.main-content .cover z-book-cover {\n --z-book-cover-height: var(--z-book-card-portrait-cover-height);\n}\n\n.main-content a.cover:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n.main-content .card-info {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-between;\n gap: var(--space-unit);\n}\n\n.main-content .card-info .top {\n display: flex;\n flex-direction: column;\n gap: calc(var(--space-unit) * 2);\n}\n\n.main-content .card-info .top ::slotted([slot=\"tags\"]) {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-unit);\n}\n\n.main-content .card-info .top ::slotted([slot=\"data\"]) {\n display: flex;\n justify-content: space-between;\n}\n\n.main-content .card-info .top .ellipsis {\n display: -webkit-box;\n overflow: hidden;\n height: 1.4rem;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n line-clamp: 1;\n line-height: 1.4rem;\n text-overflow: ellipsis;\n word-break: break-all;\n}\n\n.main-content .card-info .top .ellipsis.opera-title {\n height: auto;\n max-height: calc(1.5rem * var(--z-book-card-title-lines));\n -webkit-line-clamp: var(--z-book-card-title-lines);\n line-clamp: var(--z-book-card-title-lines);\n line-height: 1.5rem;\n word-break: var(--z-book-card-title-word-break);\n}\n\n.main-content .card-info .top .ellipsis.volume-title {\n height: auto;\n max-height: calc(1.4rem * var(--z-book-card-subtitle-lines));\n -webkit-line-clamp: var(--z-book-card-subtitle-lines);\n line-clamp: var(--z-book-card-subtitle-lines);\n line-height: 1.4rem;\n word-break: var(--z-book-card-subtitle-word-break);\n}\n\n.main-content .card-info .top .ellipsis.authors {\n height: auto;\n max-height: calc(1.4rem * var(--z-book-card-authors-lines));\n -webkit-line-clamp: var(--z-book-card-authors-lines);\n line-clamp: var(--z-book-card-authors-lines);\n line-height: 1.4rem;\n word-break: var(--z-book-card-authors-word-break);\n}\n\n.main-content .card-info .top .opera-title * {\n all: unset;\n}\n\n.main-content .cta-wrapper {\n display: flex;\n justify-content: space-between;\n gap: calc(var(--space-unit) / 2);\n}\n\n.main-content .card-info .top .link-chip-wrapper {\n display: flex;\n justify-content: space-between;\n}\n\n.main-content .card-info .ebook {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-unit);\n}\n\n.main-content .card-info .ebook .app-name {\n display: flex;\n align-items: center;\n font-family: var(--font-family-serif);\n gap: calc(var(--space-unit) / 2);\n}\n\n.main-content .card-info .ebook .app-name .ebook-logo {\n width: 1.5rem;\n height: 1.5rem;\n content: url(\"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22 fill=%22none%22 aria-hidden=%22true%22%3E%3Cg clip-path=%22url(%23clip0_11996_224)%22%3E%3Cpath d=%22M14.6644 0.469604H5.00141C2.33305 0.469604 0.169922 2.63274 0.169922 5.3011V14.9641C0.169922 17.6324 2.33305 19.7956 5.00141 19.7956H14.6644C17.3328 19.7956 19.4959 17.6324 19.4959 14.9641V5.3011C19.4959 2.63274 17.3328 0.469604 14.6644 0.469604Z%22 fill=%22%23E2011A%22/%3E%3Cpath d=%22M15.9523 13.3536H12.7313C11.6861 13.3536 10.6683 13.6934 9.83241 14.3199C8.99657 13.6934 7.97873 13.3536 6.93352 13.3536H3.71252V5.30115H6.93352C7.97873 5.30115 8.99657 5.64096 9.83241 6.26745C10.6683 5.64096 11.6861 5.30115 12.7313 5.30115H15.9523V13.3536Z%22 fill=%22white%22/%3E%3Cpath d=%22M15.9523 14.3201H3.71252V14.9643H15.9523V14.3201Z%22 fill=%22black%22/%3E%3Cpath d=%22M8.22229 10.732V8.24543C8.22229 7.97165 8.51057 7.79449 8.75375 7.91689L11.2404 9.16019C11.5109 9.29548 11.5109 9.682 11.2404 9.81728L8.75375 11.0606C8.50896 11.183 8.22229 11.0058 8.22229 10.732Z%22 fill=%22black%22/%3E%3Cpath d=%22M4.35704 7.87826C5.42438 7.87826 6.28963 7.013 6.28963 5.94566C6.28963 4.87831 5.42438 4.01306 4.35704 4.01306C3.28969 4.01306 2.42444 4.87831 2.42444 5.94566C2.42444 7.013 3.28969 7.87826 4.35704 7.87826Z%22 fill=%22black%22/%3E%3Cpath d=%22M5.6454 5.62354H3.0686V6.26773H5.6454V5.62354Z%22 fill=%22white%22/%3E%3Cpath d=%22M4.67917 4.65723H4.03497V7.23402H4.67917V4.65723Z%22 fill=%22white%22/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id=%22clip0_11996_224%22%3E%3Crect width=%2219.326%22 height=%2219.326%22 fill=%22white%22 transform=%22translate(0.169922 0.469604)%22/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\n}\n\n:host([variant=\"landscape\"]) {\n width: 635px;\n min-height: max(332px, 20.75rem);\n padding: 0;\n}\n\n:host([variant=\"landscape\"]) .main-content {\n min-height: max(332px, 20.75rem);\n flex-direction: row;\n padding: calc(var(--space-unit) * 2);\n gap: calc(var(--space-unit) * 2);\n}\n\n:host([variant=\"landscape\"]) .main-content .cover z-book-cover {\n --z-book-cover-height: 300px;\n}\n\n:host([variant=\"landscape\"]) .main-content .card-info,\n:host([variant=\"landscape\"]) .main-content .card-info .top {\n gap: calc(var(--space-unit) / 2);\n}\n\n@media (max-width: 767px) {\n :host([variant=\"portrait\"]) {\n width: 100%;\n max-width: 400px;\n }\n}\n",":root {\n /* font-family */\n --font-family-sans: \"IBM Plex Sans\", sans-serif;\n --font-family-serif: \"IBM Plex Serif\", serif;\n\n /* font-weight */\n --font-lt: 300;\n --font-rg: 400;\n --font-sb: 600;\n --font-bd: 700;\n\n /* font-size type scale */\n --font-size-1: 0.75rem; /* 12px */\n --font-size-2: 0.875rem; /* 14px */\n --font-size-3: 1rem; /* assuming 16px */\n --font-size-4: 1.125rem; /* 18px */\n --font-size-5: 1.25rem; /* 20px */\n --font-size-6: 1.5rem; /* 24px */\n --font-size-7: 1.75rem; /* 28px */\n --font-size-8: 2rem; /* 32px */\n --font-size-9: 2.25rem; /* 36px */\n --font-size-10: 2.625rem; /* 42px */\n --font-size-11: 3rem; /* 48px */\n --font-size-12: 3.375rem; /* 54px */\n --font-size-13: 3.75rem; /* 60px */\n --font-size-14: 4.25rem; /* 68px */\n --font-size-15: 4.75rem; /* 76px */\n --font-size-16: 5.25rem; /* 84px */\n --font-size-17: 5.75rem; /* 92px */\n\n /* cssprops to use with `font` shorthand property */\n --section-title-1: var(--font-sb) var(--font-size-11) / 1.083 var(--font-family-serif);\n --section-title-2: var(--font-sb) var(--font-size-10) / 1.142 var(--font-family-serif);\n --section-title-3: var(--font-sb) var(--font-size-9) / 1.222 var(--font-family-serif);\n --section-title-4: var(--font-sb) var(--font-size-8) / 1.25 var(--font-family-serif);\n --section-title-5: var(--font-sb) var(--font-size-7) / 1.2857 var(--font-family-serif);\n --section-title-6: var(--font-sb) var(--font-size-6) / 1.333 var(--font-family-serif);\n}\n\n/* Typography classes */\n.heading-1,\n.heading-1-sb,\n.heading-1-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n}\n\n.heading-2,\n.heading-2-sb,\n.heading-2-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n}\n\n.heading-3,\n.heading-3-sb,\n.heading-3-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n}\n\n.heading-4,\n.heading-4-sb,\n.heading-4-lt {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n}\n\n.body-1,\n.body-1-sb {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n}\n\n.body-2,\n.body-2-sb {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n line-height: 1.5;\n}\n\n.body-3,\n.body-3-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n}\n\n.body-4,\n.body-4-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n}\n\n.body-5,\n.body-5-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n}\n\n.interactive-1,\n.interactive-1-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n}\n\n.interactive-2,\n.interactive-2-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n}\n\n.interactive-3,\n.interactive-3-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n}\n\n.helper,\n.helper-sb {\n font-size: var(--font-size-1);\n font-style: italic;\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n}\n\n/* section title */\n.section-title-1 {\n font: var(--section-title-1);\n}\n\n.section-title-2 {\n font: var(--section-title-2);\n}\n\n.section-title-3 {\n font: var(--section-title-3);\n}\n\n.section-title-4 {\n font: var(--section-title-4);\n}\n\n.section-title-5 {\n font: var(--section-title-5);\n}\n\n.section-title-6 {\n font: var(--section-title-6);\n}\n\n/* heading-1/2 for desktop and wide viewports */\n@media (min-width: 1152px) {\n .heading-1,\n .heading-1-sb,\n .heading-1-lt {\n font-size: var(--font-size-8);\n font-weight: var(--font-rg);\n line-height: 1.25;\n }\n\n .heading-2,\n .heading-2-sb,\n .heading-2-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n }\n}\n\n/* viewport classes */\n@media (max-width: 767px) {\n .mobile-heading-1,\n .mobile-heading-1-sb,\n .mobile-heading-1-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n }\n\n .mobile-heading-2,\n .mobile-heading-2-sb,\n .mobile-heading-2-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .mobile-heading-3,\n .mobile-heading-3-sb,\n .mobile-heading-3-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .mobile-heading-4,\n .mobile-heading-4-sb,\n .mobile-heading-4-lt {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .mobile-body-1,\n .mobile-body-1-sb {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .mobile-body-2,\n .mobile-body-2-sb {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .mobile-body-3,\n .mobile-body-3-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .mobile-body-4,\n .mobile-body-4-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .mobile-body-5,\n .mobile-body-5-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .mobile-interactive-1,\n .mobile-interactive-1-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .mobile-interactive-2,\n .mobile-interactive-2-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .mobile-interactive-3,\n .mobile-interactive-3-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .mobile-section-title-1 {\n font: var(--section-title-1);\n }\n\n .mobile-section-title-2 {\n font: var(--section-title-2);\n }\n\n .mobile-section-title-3 {\n font: var(--section-title-3);\n }\n\n .mobile-section-title-4 {\n font: var(--section-title-4);\n }\n\n .mobile-section-title-5 {\n font: var(--section-title-5);\n }\n\n .mobile-section-title-6 {\n font: var(--section-title-6);\n }\n\n .mobile-heading-1-lt,\n .mobile-heading-2-lt,\n .mobile-heading-3-lt,\n .mobile-heading-4-lt {\n font-weight: var(--font-lt);\n }\n\n .mobile-heading-1-sb,\n .mobile-heading-2-sb,\n .mobile-heading-3-sb,\n .mobile-heading-4-sb,\n .mobile-body-1-sb,\n .mobile-body-2-sb,\n .mobile-body-3-sb,\n .mobile-body-4-sb,\n .mobile-body-5-sb,\n .mobile-interactive-1-sb,\n .mobile-interactive-2-sb,\n .mobile-interactive-3-sb {\n font-weight: var(--font-sb);\n }\n}\n\n@media (min-width: 768px) and (max-width: 1151px) {\n .tablet-heading-1,\n .tablet-heading-1-sb,\n .tablet-heading-1-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n }\n\n .tablet-heading-2,\n .tablet-heading-2-sb,\n .tablet-heading-2-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .tablet-heading-3,\n .tablet-heading-3-sb,\n .tablet-heading-3-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .tablet-heading-4,\n .tablet-heading-4-sb,\n .tablet-heading-4-lt {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .tablet-body-1,\n .tablet-body-1-sb {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .tablet-body-2,\n .tablet-body-2-sb {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .tablet-body-3,\n .tablet-body-3-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .tablet-body-4,\n .tablet-body-4-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .tablet-body-5,\n .tablet-body-5-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .tablet-interactive-1,\n .tablet-interactive-1-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .tablet-interactive-2,\n .tablet-interactive-2-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .tablet-interactive-3,\n .tablet-interactive-3-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .tablet-section-title-1 {\n font: var(--section-title-1);\n }\n\n .tablet-section-title-2 {\n font: var(--section-title-2);\n }\n\n .tablet-section-title-3 {\n font: var(--section-title-3);\n }\n\n .tablet-section-title-4 {\n font: var(--section-title-4);\n }\n\n .tablet-section-title-5 {\n font: var(--section-title-5);\n }\n\n .tablet-section-title-6 {\n font: var(--section-title-6);\n }\n\n .tablet-heading-1-lt,\n .tablet-heading-2-lt,\n .tablet-heading-3-lt,\n .tablet-heading-4-lt {\n font-weight: var(--font-lt);\n }\n\n .tablet-heading-1-sb,\n .tablet-heading-2-sb,\n .tablet-heading-3-sb,\n .tablet-heading-4-sb,\n .tablet-body-1-sb,\n .tablet-body-2-sb,\n .tablet-body-3-sb,\n .tablet-body-4-sb,\n .tablet-body-5-sb,\n .tablet-interactive-1-sb,\n .tablet-interactive-2-sb,\n .tablet-interactive-3-sb {\n font-weight: var(--font-sb);\n }\n}\n\n@media (min-width: 1152px) and (max-width: 1365px) {\n .desktop-heading-1,\n .desktop-heading-1-sb,\n .desktop-heading-1-lt {\n font-size: var(--font-size-8);\n font-weight: var(--font-rg);\n line-height: 1.25;\n }\n\n .desktop-heading-2,\n .desktop-heading-2-sb,\n .desktop-heading-2-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n }\n\n .desktop-heading-3,\n .desktop-heading-3-sb,\n .desktop-heading-3-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .desktop-heading-4,\n .desktop-heading-4-sb,\n .desktop-heading-4-lt {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .desktop-body-1,\n .desktop-body-1-sb {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .desktop-body-2,\n .desktop-body-2-sb {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .desktop-body-3,\n .desktop-body-3-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .desktop-body-4,\n .desktop-body-4-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .desktop-body-5,\n .desktop-body-5-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .desktop-interactive-1,\n .desktop-interactive-1-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .desktop-interactive-2,\n .desktop-interactive-2-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .desktop-interactive-3,\n .desktop-interactive-3-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .desktop-section-title-1 {\n font: var(--section-title-1);\n }\n\n .desktop-section-title-2 {\n font: var(--section-title-2);\n }\n\n .desktop-section-title-3 {\n font: var(--section-title-3);\n }\n\n .desktop-section-title-4 {\n font: var(--section-title-4);\n }\n\n .desktop-section-title-5 {\n font: var(--section-title-5);\n }\n\n .desktop-section-title-6 {\n font: var(--section-title-6);\n }\n\n .desktop-heading-1-lt,\n .desktop-heading-2-lt,\n .desktop-heading-3-lt,\n .desktop-heading-4-lt {\n font-weight: var(--font-lt);\n }\n\n .desktop-heading-1-sb,\n .desktop-heading-2-sb,\n .desktop-heading-3-sb,\n .desktop-heading-4-sb,\n .desktop-body-1-sb,\n .desktop-body-2-sb,\n .desktop-body-3-sb,\n .desktop-body-4-sb,\n .desktop-body-5-sb,\n .desktop-interactive-1-sb,\n .desktop-interactive-2-sb,\n .desktop-interactive-3-sb {\n font-weight: var(--font-sb);\n }\n}\n\n@media (min-width: 1366px) {\n .wide-heading-1,\n .wide-heading-1-sb,\n .wide-heading-1-lt {\n font-size: var(--font-size-8);\n font-weight: var(--font-rg);\n line-height: 1.25;\n }\n\n .wide-heading-2,\n .wide-heading-2-sb,\n .wide-heading-2-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n }\n\n .wide-heading-3,\n .wide-heading-3-sb,\n .wide-heading-3-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .wide-heading-4,\n .wide-heading-4-sb,\n .wide-heading-4-lt {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .wide-body-1,\n .wide-body-1-sb {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .wide-body-2,\n .wide-body-2-sb {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .wide-body-3,\n .wide-body-3-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .wide-body-4,\n .wide-body-4-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .wide-body-5,\n .wide-body-5-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .wide-interactive-1,\n .wide-interactive-1-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .wide-interactive-2,\n .wide-interactive-2-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .wide-interactive-3,\n .wide-interactive-3-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .wide-section-title-1 {\n font: var(--section-title-1);\n }\n\n .wide-section-title-2 {\n font: var(--section-title-2);\n }\n\n .wide-section-title-3 {\n font: var(--section-title-3);\n }\n\n .wide-section-title-4 {\n font: var(--section-title-4);\n }\n\n .wide-section-title-5 {\n font: var(--section-title-5);\n }\n\n .wide-section-title-6 {\n font: var(--section-title-6);\n }\n\n .wide-heading-1-lt,\n .wide-heading-2-lt,\n .wide-heading-3-lt,\n .wide-heading-4-lt {\n font-weight: var(--font-lt);\n }\n\n .wide-heading-1-sb,\n .wide-heading-2-sb,\n .wide-heading-3-sb,\n .wide-heading-4-sb,\n .wide-body-1-sb,\n .wide-body-2-sb,\n .wide-body-3-sb,\n .wide-body-4-sb,\n .wide-body-5-sb,\n .wide-interactive-1-sb,\n .wide-interactive-2-sb,\n .wide-interactive-3-sb {\n font-weight: var(--font-sb);\n }\n}\n\n/* font-weight variants */\n.heading-1-lt,\n.heading-2-lt,\n.heading-3-lt,\n.heading-4-lt {\n font-weight: var(--font-lt);\n}\n\n.heading-1-sb,\n.heading-2-sb,\n.heading-3-sb,\n.heading-4-sb,\n.body-1-sb,\n.body-2-sb,\n.body-3-sb,\n.body-4-sb,\n.body-5-sb,\n.interactive-1-sb,\n.interactive-2-sb,\n.interactive-3-sb,\n.helper-sb {\n font-weight: var(--font-sb);\n}\n","button.z-link {\n padding: 0;\n border: 0;\n margin: 0;\n background-color: transparent;\n}\n\na.z-link,\nbutton.z-link {\n display: inline-flex;\n cursor: pointer;\n font-family: var(--font-family-sans);\n line-height: inherit;\n text-decoration: none;\n}\n\na.z-link.z-link-icon,\nbutton.z-link.z-link-icon {\n --z-icon-width: 1.125em;\n --z-icon-height: 1.125em;\n\n align-items: center;\n column-gap: 0.5em;\n}\n\na.z-link.z-link-sb,\nbutton.z-link.z-link-sb {\n font-weight: var(--font-sb);\n}\n\na.z-link.z-link-underline,\nbutton.z-link.z-link-underline {\n text-decoration: underline;\n}\n\na.z-link:hover,\nbutton.z-link:hover,\na.z-link:focus-visible,\nbutton.z-link:focus-visible,\na.z-link:active,\nbutton.z-link:active {\n text-decoration: underline;\n}\n\na.z-link:focus-visible,\nbutton.z-link:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\na.z-link.z-link-disabled,\nbutton.z-link.z-link-disabled {\n box-shadow: none;\n color: var(--color-disabled03);\n cursor: default;\n fill: var(--color-disabled03);\n outline: none;\n pointer-events: none;\n text-decoration: none;\n}\n\na.z-link,\nbutton.z-link,\na.z-link.z-link-active,\nbutton.z-link.z-link-active,\na.z-link:hover,\nbutton.z-link:hover,\na.z-link.z-link-active:hover,\nbutton.z-link.z-link-active:hover,\na.z-link:focus-visible,\nbutton.z-link:focus-visible,\na.z-link.z-link-active:focus-visible,\nbutton.z-link.z-link-active:focus-visible,\na.z-link:active,\nbutton.z-link:active,\na.z-link.z-link-active:active,\nbutton.z-link.z-link-active:active,\na.z-link:visited,\nbutton.z-link:visited,\na.z-link.z-link-active:visited,\nbutton.z-link.z-link-active:visited {\n color: var(--color-text-link-default);\n fill: var(--color-text-link-default);\n}\n\na.z-link.z-link-blue,\nbutton.z-link.z-link-blue,\na.z-link.z-link-blue.z-link-active,\nbutton.z-link.z-link-blue.z-link-active {\n color: var(--color-text-link-blue);\n fill: var(--color-text-link-blue);\n}\n\na.z-link.z-link-red,\nbutton.z-link.z-link-red,\na.z-link.z-link-red.z-link-active,\nbutton.z-link.z-link-red.z-link-active {\n color: var(--color-text-link-red);\n fill: var(--color-text-link-red);\n}\n\na.z-link.z-link-inverse,\nbutton.z-link.z-link-inverse,\na.z-link.z-link-inverse.z-link-active,\nbutton.z-link.z-link-inverse.z-link-active {\n color: var(--color-text-link-inverse);\n fill: var(--color-text-link-inverse);\n}\n\na.z-link.z-link-blue:hover,\nbutton.z-link.z-link-blue:hover {\n color: var(--color-text-link-blue-hover);\n fill: var(--color-text-link-blue-hover);\n}\n\na.z-link.z-link-red:hover,\nbutton.z-link.z-link-red:hover {\n color: var(--color-text-link-red-hover);\n fill: var(--color-text-link-red-hover);\n}\n\na.z-link.z-link-inverse:hover,\nbutton.z-link.z-link-inverse:hover {\n color: var(--color-text-link-inverse);\n fill: var(--color-text-link-inverse);\n}\n\na.z-link.z-link-blue:active,\nbutton.z-link.z-link-blue:active,\na.z-link.z-link-blue:focus-visible,\nbutton.z-link.z-link-blue:focus-visible {\n color: var(--color-text-link-blue-active);\n fill: var(--color-text-link-blue-active);\n}\n\na.z-link.z-link-red:active,\nbutton.z-link.z-link-red:active,\na.z-link.z-link-red:focus-visible,\nbutton.z-link.z-link-red:focus-visible {\n color: var(--color-text-link-red-active);\n fill: var(--color-text-link-red-active);\n}\n\na.z-link.z-link-inverse:active,\nbutton.z-link.z-link-inverse:active,\na.z-link.z-link-inverse:focus-visible,\nbutton.z-link.z-link-inverse:focus-visible {\n color: var(--color-text-link-inverse);\n fill: var(--color-text-link-inverse);\n}\n\na.z-link.z-link-blue:visited,\nbutton.z-link.z-link-blue:visited {\n color: var(--color-text-link-blue-visited);\n fill: var(--color-text-link-blue-visited);\n}\n\na.z-link.z-link-red:visited,\nbutton.z-link.z-link-red:visited {\n color: var(--color-text-link-red-visited);\n fill: var(--color-text-link-red-visited);\n}\n\na.z-link.z-link-inverse:visited,\nbutton.z-link.z-link-inverse:visited {\n color: var(--color-text-link-inverse);\n fill: var(--color-text-link-inverse);\n}\n","import {Component, ComponentInterface, Element, Event, EventEmitter, Host, Prop, h} from \"@stencil/core\";\nimport {BookCardVariant, ControlSize} from \"../../../beans\";\n\n/**\n * @slot cta - Top right cta (e.g. bookmark icon)\n * @slot ebook - As default, it shows laZ ebook link\n * @slot tags - Tags section, default empty\n * @slot data - External link and pill, default empty\n * @slot apps - List of card-related apps, default empty\n * @slot coverOverlay - Content to be displayed in the `z-book-cover` component slot\n */\n@Component({\n tag: \"z-book-card\",\n styleUrls: [\"styles.css\", \"../../../tokens/typography.css\", \"../../css-components/z-link/styles.css\"],\n shadow: true,\n})\nexport class ZBookCard implements ComponentInterface {\n @Element() hostElement: HTMLZBookCardElement;\n\n /** Card variant: landscape, portrait */\n @Prop({reflect: true})\n variant: BookCardVariant = BookCardVariant.PORTRAIT;\n\n /** Cover URL */\n @Prop()\n cover: string;\n\n /** Opera title (card title) */\n @Prop()\n operaTitle: string;\n\n /** [optional] Volume title (card subvolume) */\n @Prop()\n volumeTitle?: string;\n\n /** [optional] Authors */\n @Prop()\n authors?: string;\n\n /** [optional] Main ISBN */\n @Prop()\n isbn?: string;\n\n /** [optional] ISBN label */\n @Prop()\n isbnLabel = \"\";\n\n /** [optional] year */\n @Prop()\n year?: string;\n\n /** [optional] Link to the ebook resource. Creates a link also around the cover and title. */\n @Prop()\n ebookUrl?: string;\n\n /** [optional] Value for the `target` attribute of the links created by `ebookUrl` prop. */\n @Prop()\n linkTarget = \"_blank\";\n\n /** [optional] Fallback cover URL. */\n @Prop()\n fallbackCover?: string;\n\n /**\n * Whether to show a stack of covers to represent multiple books.\n * Only takes effect when `variant` is `portrait`: in `landscape` it is silently ignored and no\n * cover stack is rendered, regardless of its value.\n */\n @Prop()\n hasMultipleCovers = false;\n\n /** [optional] Set a specific heading level as html tag for the title. */\n @Prop()\n titleHtmlTag?: string;\n\n /** click on ebook link */\n @Event()\n ebookClick: EventEmitter;\n\n /** click on cover link */\n @Event()\n coverClick: EventEmitter;\n\n /** click on title link */\n @Event()\n titleClick: EventEmitter;\n\n private emitEbookClick(): void {\n this.ebookClick.emit();\n }\n\n private emitCoverClick(): void {\n this.coverClick.emit();\n }\n\n private emitTitleClick(): void {\n this.titleClick.emit();\n }\n\n private renderCover(): HTMLDivElement {\n const CoverTag = this.ebookUrl ? \"a\" : \"div\";\n const coverAttrs = this.ebookUrl\n ? {\n href: this.ebookUrl,\n onClick: () => this.emitCoverClick(),\n target: this.linkTarget,\n }\n : {};\n\n return (\n <CoverTag\n class=\"cover\"\n {...coverAttrs}\n >\n <z-book-cover\n cover={this.cover}\n fallbackCover={this.fallbackCover}\n multiple={this.hasMultipleCovers && this.variant === BookCardVariant.PORTRAIT}\n >\n <slot\n name=\"coverOverlay\"\n slot=\"coverOverlay\"\n ></slot>\n </z-book-cover>\n </CoverTag>\n );\n }\n\n private renderYear(): null | HTMLDivElement {\n if (!this.year) {\n return null;\n }\n\n return (\n <div\n class=\"year ellipsis body-4\"\n aria-description=\"anno\"\n >\n {this.year}\n </div>\n );\n }\n\n private renderAuthors(): null | HTMLDivElement {\n if (!this.authors) {\n return null;\n }\n\n return (\n <div class=\"cta-wrapper\">\n <div\n class=\"authors ellipsis body-4\"\n aria-description=\"autori\"\n >\n {this.authors}\n </div>\n {this.variant === BookCardVariant.LANDSCAPE ? this.renderCtaSlot() : null}\n </div>\n );\n }\n\n private renderOperaTitle(): HTMLDivElement {\n const title = this.titleHtmlTag\n ? `<${this.titleHtmlTag}>${this.operaTitle}</${this.titleHtmlTag}>`\n : this.operaTitle;\n\n const operaTitle = (\n <div\n class=\"opera-title ellipsis body-2-sb\"\n innerHTML={title}\n />\n );\n\n return (\n <div class=\"cta-wrapper\">\n {this.ebookUrl ? (\n <a\n class=\"z-link\"\n href={this.ebookUrl}\n onClick={() => this.emitTitleClick()}\n target={this.linkTarget}\n >\n {operaTitle}\n </a>\n ) : (\n operaTitle\n )}\n {this.variant === BookCardVariant.PORTRAIT ? this.renderCtaSlot() : null}\n </div>\n );\n }\n\n private renderVolumeTitle(): null | HTMLDivElement {\n if (!this.volumeTitle) {\n return null;\n }\n\n return <div class=\"volume-title ellipsis body-4\">{this.volumeTitle}</div>;\n }\n\n private renderIsbn(): null | HTMLDivElement {\n if (!this.isbn) {\n return null;\n }\n\n return (\n <div\n class=\"isbn ellipsis body-4-sb\"\n aria-description={`isbn ${this.isbnLabel}`}\n >\n {this.isbn} {this.isbnLabel ? <span class=\"body-4\">{this.isbnLabel}</span> : null}\n </div>\n );\n }\n\n private renderEbook(): null | HTMLDivElement {\n if (!this.ebookUrl) {\n return null;\n }\n\n return (\n <div class=\"ebook\">\n <div class=\"app-name\">\n <img\n class=\"ebook-logo\"\n aria-hidden=\"true\"\n />\n <div class=\"body-4-sb\">laZ Ebook</div>\n </div>\n <z-button\n size={ControlSize.X_SMALL}\n href={this.ebookUrl}\n target={this.linkTarget}\n onClick={() => this.emitEbookClick()}\n htmlRole=\"link\"\n aria-description={`leggi l'ebook ${this.operaTitle} su laZ Ebook`}\n >\n leggi ebook\n </z-button>\n </div>\n );\n }\n\n private renderCtaSlot(): HTMLSlotElement {\n return <slot name=\"cta\"></slot>;\n }\n\n render(): HTMLZBookCardElement {\n return (\n <Host>\n <div class=\"main-content\">\n {this.renderCover()}\n <div class=\"card-info\">\n <div class=\"top\">\n <div>\n {this.renderYear()}\n {this.renderAuthors()}\n {this.renderOperaTitle()}\n {this.renderVolumeTitle()}\n {this.renderIsbn()}\n </div>\n <slot name=\"tags\"></slot>\n <slot name=\"data\"></slot>\n </div>\n <slot name=\"ebook\">{this.renderEbook()}</slot>\n </div>\n </div>\n <slot name=\"apps\"></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["stylesCss","typographyCss","ZBookCard","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","variant","BookCardVariant","PORTRAIT","isbnLabel","linkTarget","hasMultipleCovers","emitEbookClick","ebookClick","emit","emitCoverClick","coverClick","emitTitleClick","titleClick","renderCover","CoverTag","ebookUrl","coverAttrs","href","onClick","target","h","Object","assign","class","cover","fallbackCover","multiple","name","slot","renderYear","year","renderAuthors","authors","renderOperaTitle","title","titleHtmlTag","operaTitle","innerHTML","renderVolumeTitle","volumeTitle","renderIsbn","isbn","renderEbook","size","ControlSize","X_SMALL","htmlRole","render","Host","key"],"sources":["src/components/book-card/z-book-card/styles.css?tag=z-book-card&encapsulation=shadow","src/tokens/typography.css?tag=z-book-card&encapsulation=shadow","src/components/css-components/z-link/styles.css?tag=z-book-card&encapsulation=shadow","src/components/book-card/z-book-card/index.tsx"],"sourcesContent":[":host {\n /**\n * @prop --z-book-card-portrait-cover-height: Set custom cover height for portrait variant - Default: `378px`\n * @prop --z-book-card-title-lines: Set title avilable lines - Default: `2`\n * @prop --z-book-card-title-word-break: Set title word-break rule - Default: `initial`\n * @prop --z-book-card-subtitle-lines: Set subtitle available lines - Default: `1`\n * @prop --z-book-card-subtitle-word-break: Set subtitle word-break rule - Default: `break-all`\n * @prop --z-book-card-authors-lines: Set authors available lines - Default: `1`\n * @prop --z-book-card-authors-word-break: Set authors word-break rule - Default: `break-all`\n */\n --z-book-card-portrait-cover-height: 378px;\n --z-book-card-title-lines: 2;\n --z-book-card-title-word-break: initial;\n --z-book-card-subtitle-lines: 1;\n --z-book-card-subtitle-word-break: break-all;\n --z-book-card-authors-lines: 1;\n --z-book-card-authors-word-break: break-all;\n\n display: flex;\n width: 304px;\n box-sizing: border-box;\n flex-direction: column;\n border: solid var(--border-size-medium) var(--color-surface03);\n background-color: var(--color-surface01);\n border-radius: var(--border-radius);\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n}\n\n:host,\n* {\n box-sizing: border-box;\n}\n\n.main-content {\n display: flex;\n height: 100%;\n flex-direction: column;\n padding: var(--space-unit);\n gap: var(--space-unit);\n}\n\n.main-content .cover {\n position: relative;\n display: flex;\n overflow: hidden;\n align-items: flex-end;\n justify-content: center;\n border-radius: var(--border-radius);\n}\n\n.main-content .cover z-book-cover {\n --z-book-cover-height: var(--z-book-card-portrait-cover-height);\n}\n\n.main-content a.cover:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n.main-content .card-info {\n display: flex;\n flex: 1;\n flex-direction: column;\n justify-content: space-between;\n gap: var(--space-unit);\n}\n\n.main-content .card-info .top {\n display: flex;\n flex-direction: column;\n gap: calc(var(--space-unit) * 2);\n}\n\n.main-content .card-info .top ::slotted([slot=\"tags\"]) {\n display: flex;\n flex-wrap: wrap;\n gap: var(--space-unit);\n}\n\n.main-content .card-info .top ::slotted([slot=\"data\"]) {\n display: flex;\n justify-content: space-between;\n}\n\n.main-content .card-info .top .ellipsis {\n display: -webkit-box;\n overflow: hidden;\n height: 1.4rem;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n line-clamp: 1;\n line-height: 1.4rem;\n text-overflow: ellipsis;\n word-break: break-all;\n}\n\n.main-content .card-info .top .ellipsis.opera-title {\n height: auto;\n max-height: calc(1.5rem * var(--z-book-card-title-lines));\n -webkit-line-clamp: var(--z-book-card-title-lines);\n line-clamp: var(--z-book-card-title-lines);\n line-height: 1.5rem;\n word-break: var(--z-book-card-title-word-break);\n}\n\n.main-content .card-info .top .ellipsis.volume-title {\n height: auto;\n max-height: calc(1.4rem * var(--z-book-card-subtitle-lines));\n -webkit-line-clamp: var(--z-book-card-subtitle-lines);\n line-clamp: var(--z-book-card-subtitle-lines);\n line-height: 1.4rem;\n word-break: var(--z-book-card-subtitle-word-break);\n}\n\n.main-content .card-info .top .ellipsis.authors {\n height: auto;\n max-height: calc(1.4rem * var(--z-book-card-authors-lines));\n -webkit-line-clamp: var(--z-book-card-authors-lines);\n line-clamp: var(--z-book-card-authors-lines);\n line-height: 1.4rem;\n word-break: var(--z-book-card-authors-word-break);\n}\n\n.main-content .card-info .top .opera-title * {\n all: unset;\n}\n\n.main-content .card-info .top .link-chip-wrapper {\n display: flex;\n justify-content: space-between;\n}\n\n.main-content .card-info .ebook {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-unit);\n}\n\n.main-content .card-info .ebook .app-name {\n display: flex;\n align-items: center;\n font-family: var(--font-family-serif);\n gap: calc(var(--space-unit) / 2);\n}\n\n.main-content .card-info .ebook .app-name .ebook-logo {\n width: 1.5rem;\n height: 1.5rem;\n content: url(\"data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 20 20%22 fill=%22none%22 aria-hidden=%22true%22%3E%3Cg clip-path=%22url(%23clip0_11996_224)%22%3E%3Cpath d=%22M14.6644 0.469604H5.00141C2.33305 0.469604 0.169922 2.63274 0.169922 5.3011V14.9641C0.169922 17.6324 2.33305 19.7956 5.00141 19.7956H14.6644C17.3328 19.7956 19.4959 17.6324 19.4959 14.9641V5.3011C19.4959 2.63274 17.3328 0.469604 14.6644 0.469604Z%22 fill=%22%23E2011A%22/%3E%3Cpath d=%22M15.9523 13.3536H12.7313C11.6861 13.3536 10.6683 13.6934 9.83241 14.3199C8.99657 13.6934 7.97873 13.3536 6.93352 13.3536H3.71252V5.30115H6.93352C7.97873 5.30115 8.99657 5.64096 9.83241 6.26745C10.6683 5.64096 11.6861 5.30115 12.7313 5.30115H15.9523V13.3536Z%22 fill=%22white%22/%3E%3Cpath d=%22M15.9523 14.3201H3.71252V14.9643H15.9523V14.3201Z%22 fill=%22black%22/%3E%3Cpath d=%22M8.22229 10.732V8.24543C8.22229 7.97165 8.51057 7.79449 8.75375 7.91689L11.2404 9.16019C11.5109 9.29548 11.5109 9.682 11.2404 9.81728L8.75375 11.0606C8.50896 11.183 8.22229 11.0058 8.22229 10.732Z%22 fill=%22black%22/%3E%3Cpath d=%22M4.35704 7.87826C5.42438 7.87826 6.28963 7.013 6.28963 5.94566C6.28963 4.87831 5.42438 4.01306 4.35704 4.01306C3.28969 4.01306 2.42444 4.87831 2.42444 5.94566C2.42444 7.013 3.28969 7.87826 4.35704 7.87826Z%22 fill=%22black%22/%3E%3Cpath d=%22M5.6454 5.62354H3.0686V6.26773H5.6454V5.62354Z%22 fill=%22white%22/%3E%3Cpath d=%22M4.67917 4.65723H4.03497V7.23402H4.67917V4.65723Z%22 fill=%22white%22/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id=%22clip0_11996_224%22%3E%3Crect width=%2219.326%22 height=%2219.326%22 fill=%22white%22 transform=%22translate(0.169922 0.469604)%22/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E\");\n}\n\n/* The CTA slot comes after all book metadata in the DOM so screen readers announce\n author, title, volume and ISBN before the action, while the grid keeps the CTA in\n its visual position: top-right for landscape, beside the title for portrait. */\n.main-content .card-info .top > div {\n display: grid;\n column-gap: calc(var(--space-unit) / 2);\n grid-template-columns: 1fr auto;\n}\n\n.main-content .card-info .top > div > * {\n grid-column: 1;\n}\n\n.main-content .card-info .top > div > .cta-slot {\n align-self: start;\n grid-column: 2;\n grid-row: 1;\n}\n\n:host([variant=\"landscape\"]) {\n width: 635px;\n min-height: max(332px, 20.75rem);\n padding: 0;\n}\n\n:host([variant=\"landscape\"]) .main-content {\n min-height: max(332px, 20.75rem);\n flex-direction: row;\n padding: calc(var(--space-unit) * 2);\n gap: calc(var(--space-unit) * 2);\n}\n\n:host([variant=\"landscape\"]) .main-content .cover z-book-cover {\n --z-book-cover-height: 300px;\n}\n\n:host([variant=\"landscape\"]) .main-content .card-info,\n:host([variant=\"landscape\"]) .main-content .card-info .top {\n gap: calc(var(--space-unit) / 2);\n}\n\n/* In portrait the CTA sits beside the title, whose grid row shifts down when the\n optional year and authors rows are rendered before it. */\n:host([variant=\"portrait\"]) .main-content .card-info .top > div > .year ~ .cta-slot,\n:host([variant=\"portrait\"]) .main-content .card-info .top > div > .authors ~ .cta-slot {\n grid-row: 2;\n}\n\n:host([variant=\"portrait\"]) .main-content .card-info .top > div > .year ~ .authors ~ .cta-slot {\n grid-row: 3;\n}\n\n@media (max-width: 767px) {\n :host([variant=\"portrait\"]) {\n width: 100%;\n max-width: 400px;\n }\n}\n",":root {\n /* font-family */\n --font-family-sans: \"IBM Plex Sans\", sans-serif;\n --font-family-serif: \"IBM Plex Serif\", serif;\n\n /* font-weight */\n --font-lt: 300;\n --font-rg: 400;\n --font-sb: 600;\n --font-bd: 700;\n\n /* font-size type scale */\n --font-size-1: 0.75rem; /* 12px */\n --font-size-2: 0.875rem; /* 14px */\n --font-size-3: 1rem; /* assuming 16px */\n --font-size-4: 1.125rem; /* 18px */\n --font-size-5: 1.25rem; /* 20px */\n --font-size-6: 1.5rem; /* 24px */\n --font-size-7: 1.75rem; /* 28px */\n --font-size-8: 2rem; /* 32px */\n --font-size-9: 2.25rem; /* 36px */\n --font-size-10: 2.625rem; /* 42px */\n --font-size-11: 3rem; /* 48px */\n --font-size-12: 3.375rem; /* 54px */\n --font-size-13: 3.75rem; /* 60px */\n --font-size-14: 4.25rem; /* 68px */\n --font-size-15: 4.75rem; /* 76px */\n --font-size-16: 5.25rem; /* 84px */\n --font-size-17: 5.75rem; /* 92px */\n\n /* cssprops to use with `font` shorthand property */\n --section-title-1: var(--font-sb) var(--font-size-11) / 1.083 var(--font-family-serif);\n --section-title-2: var(--font-sb) var(--font-size-10) / 1.142 var(--font-family-serif);\n --section-title-3: var(--font-sb) var(--font-size-9) / 1.222 var(--font-family-serif);\n --section-title-4: var(--font-sb) var(--font-size-8) / 1.25 var(--font-family-serif);\n --section-title-5: var(--font-sb) var(--font-size-7) / 1.2857 var(--font-family-serif);\n --section-title-6: var(--font-sb) var(--font-size-6) / 1.333 var(--font-family-serif);\n}\n\n/* Typography classes */\n.heading-1,\n.heading-1-sb,\n.heading-1-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n}\n\n.heading-2,\n.heading-2-sb,\n.heading-2-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n}\n\n.heading-3,\n.heading-3-sb,\n.heading-3-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n}\n\n.heading-4,\n.heading-4-sb,\n.heading-4-lt {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n}\n\n.body-1,\n.body-1-sb {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n}\n\n.body-2,\n.body-2-sb {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n line-height: 1.5;\n}\n\n.body-3,\n.body-3-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n}\n\n.body-4,\n.body-4-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n}\n\n.body-5,\n.body-5-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n}\n\n.interactive-1,\n.interactive-1-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n}\n\n.interactive-2,\n.interactive-2-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n}\n\n.interactive-3,\n.interactive-3-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n}\n\n.helper,\n.helper-sb {\n font-size: var(--font-size-1);\n font-style: italic;\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n}\n\n/* section title */\n.section-title-1 {\n font: var(--section-title-1);\n}\n\n.section-title-2 {\n font: var(--section-title-2);\n}\n\n.section-title-3 {\n font: var(--section-title-3);\n}\n\n.section-title-4 {\n font: var(--section-title-4);\n}\n\n.section-title-5 {\n font: var(--section-title-5);\n}\n\n.section-title-6 {\n font: var(--section-title-6);\n}\n\n/* heading-1/2 for desktop and wide viewports */\n@media (min-width: 1152px) {\n .heading-1,\n .heading-1-sb,\n .heading-1-lt {\n font-size: var(--font-size-8);\n font-weight: var(--font-rg);\n line-height: 1.25;\n }\n\n .heading-2,\n .heading-2-sb,\n .heading-2-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n }\n}\n\n/* viewport classes */\n@media (max-width: 767px) {\n .mobile-heading-1,\n .mobile-heading-1-sb,\n .mobile-heading-1-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n }\n\n .mobile-heading-2,\n .mobile-heading-2-sb,\n .mobile-heading-2-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .mobile-heading-3,\n .mobile-heading-3-sb,\n .mobile-heading-3-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .mobile-heading-4,\n .mobile-heading-4-sb,\n .mobile-heading-4-lt {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .mobile-body-1,\n .mobile-body-1-sb {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .mobile-body-2,\n .mobile-body-2-sb {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .mobile-body-3,\n .mobile-body-3-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .mobile-body-4,\n .mobile-body-4-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .mobile-body-5,\n .mobile-body-5-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .mobile-interactive-1,\n .mobile-interactive-1-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .mobile-interactive-2,\n .mobile-interactive-2-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .mobile-interactive-3,\n .mobile-interactive-3-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .mobile-section-title-1 {\n font: var(--section-title-1);\n }\n\n .mobile-section-title-2 {\n font: var(--section-title-2);\n }\n\n .mobile-section-title-3 {\n font: var(--section-title-3);\n }\n\n .mobile-section-title-4 {\n font: var(--section-title-4);\n }\n\n .mobile-section-title-5 {\n font: var(--section-title-5);\n }\n\n .mobile-section-title-6 {\n font: var(--section-title-6);\n }\n\n .mobile-heading-1-lt,\n .mobile-heading-2-lt,\n .mobile-heading-3-lt,\n .mobile-heading-4-lt {\n font-weight: var(--font-lt);\n }\n\n .mobile-heading-1-sb,\n .mobile-heading-2-sb,\n .mobile-heading-3-sb,\n .mobile-heading-4-sb,\n .mobile-body-1-sb,\n .mobile-body-2-sb,\n .mobile-body-3-sb,\n .mobile-body-4-sb,\n .mobile-body-5-sb,\n .mobile-interactive-1-sb,\n .mobile-interactive-2-sb,\n .mobile-interactive-3-sb {\n font-weight: var(--font-sb);\n }\n}\n\n@media (min-width: 768px) and (max-width: 1151px) {\n .tablet-heading-1,\n .tablet-heading-1-sb,\n .tablet-heading-1-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n }\n\n .tablet-heading-2,\n .tablet-heading-2-sb,\n .tablet-heading-2-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .tablet-heading-3,\n .tablet-heading-3-sb,\n .tablet-heading-3-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .tablet-heading-4,\n .tablet-heading-4-sb,\n .tablet-heading-4-lt {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .tablet-body-1,\n .tablet-body-1-sb {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .tablet-body-2,\n .tablet-body-2-sb {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .tablet-body-3,\n .tablet-body-3-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .tablet-body-4,\n .tablet-body-4-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .tablet-body-5,\n .tablet-body-5-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .tablet-interactive-1,\n .tablet-interactive-1-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .tablet-interactive-2,\n .tablet-interactive-2-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .tablet-interactive-3,\n .tablet-interactive-3-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .tablet-section-title-1 {\n font: var(--section-title-1);\n }\n\n .tablet-section-title-2 {\n font: var(--section-title-2);\n }\n\n .tablet-section-title-3 {\n font: var(--section-title-3);\n }\n\n .tablet-section-title-4 {\n font: var(--section-title-4);\n }\n\n .tablet-section-title-5 {\n font: var(--section-title-5);\n }\n\n .tablet-section-title-6 {\n font: var(--section-title-6);\n }\n\n .tablet-heading-1-lt,\n .tablet-heading-2-lt,\n .tablet-heading-3-lt,\n .tablet-heading-4-lt {\n font-weight: var(--font-lt);\n }\n\n .tablet-heading-1-sb,\n .tablet-heading-2-sb,\n .tablet-heading-3-sb,\n .tablet-heading-4-sb,\n .tablet-body-1-sb,\n .tablet-body-2-sb,\n .tablet-body-3-sb,\n .tablet-body-4-sb,\n .tablet-body-5-sb,\n .tablet-interactive-1-sb,\n .tablet-interactive-2-sb,\n .tablet-interactive-3-sb {\n font-weight: var(--font-sb);\n }\n}\n\n@media (min-width: 1152px) and (max-width: 1365px) {\n .desktop-heading-1,\n .desktop-heading-1-sb,\n .desktop-heading-1-lt {\n font-size: var(--font-size-8);\n font-weight: var(--font-rg);\n line-height: 1.25;\n }\n\n .desktop-heading-2,\n .desktop-heading-2-sb,\n .desktop-heading-2-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n }\n\n .desktop-heading-3,\n .desktop-heading-3-sb,\n .desktop-heading-3-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .desktop-heading-4,\n .desktop-heading-4-sb,\n .desktop-heading-4-lt {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .desktop-body-1,\n .desktop-body-1-sb {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .desktop-body-2,\n .desktop-body-2-sb {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .desktop-body-3,\n .desktop-body-3-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .desktop-body-4,\n .desktop-body-4-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .desktop-body-5,\n .desktop-body-5-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .desktop-interactive-1,\n .desktop-interactive-1-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .desktop-interactive-2,\n .desktop-interactive-2-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .desktop-interactive-3,\n .desktop-interactive-3-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .desktop-section-title-1 {\n font: var(--section-title-1);\n }\n\n .desktop-section-title-2 {\n font: var(--section-title-2);\n }\n\n .desktop-section-title-3 {\n font: var(--section-title-3);\n }\n\n .desktop-section-title-4 {\n font: var(--section-title-4);\n }\n\n .desktop-section-title-5 {\n font: var(--section-title-5);\n }\n\n .desktop-section-title-6 {\n font: var(--section-title-6);\n }\n\n .desktop-heading-1-lt,\n .desktop-heading-2-lt,\n .desktop-heading-3-lt,\n .desktop-heading-4-lt {\n font-weight: var(--font-lt);\n }\n\n .desktop-heading-1-sb,\n .desktop-heading-2-sb,\n .desktop-heading-3-sb,\n .desktop-heading-4-sb,\n .desktop-body-1-sb,\n .desktop-body-2-sb,\n .desktop-body-3-sb,\n .desktop-body-4-sb,\n .desktop-body-5-sb,\n .desktop-interactive-1-sb,\n .desktop-interactive-2-sb,\n .desktop-interactive-3-sb {\n font-weight: var(--font-sb);\n }\n}\n\n@media (min-width: 1366px) {\n .wide-heading-1,\n .wide-heading-1-sb,\n .wide-heading-1-lt {\n font-size: var(--font-size-8);\n font-weight: var(--font-rg);\n line-height: 1.25;\n }\n\n .wide-heading-2,\n .wide-heading-2-sb,\n .wide-heading-2-lt {\n font-size: var(--font-size-7);\n font-weight: var(--font-rg);\n line-height: 1.28;\n }\n\n .wide-heading-3,\n .wide-heading-3-sb,\n .wide-heading-3-lt {\n font-size: var(--font-size-6);\n font-weight: var(--font-rg);\n line-height: 1.333;\n }\n\n .wide-heading-4,\n .wide-heading-4-sb,\n .wide-heading-4-lt {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .wide-body-1,\n .wide-body-1-sb {\n font-size: var(--font-size-5);\n font-weight: var(--font-rg);\n line-height: 1.4;\n }\n\n .wide-body-2,\n .wide-body-2-sb {\n font-size: var(--font-size-4);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .wide-body-3,\n .wide-body-3-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .wide-body-4,\n .wide-body-4-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .wide-body-5,\n .wide-body-5-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .wide-interactive-1,\n .wide-interactive-1-sb {\n font-size: var(--font-size-3);\n font-weight: var(--font-rg);\n line-height: 1.5;\n }\n\n .wide-interactive-2,\n .wide-interactive-2-sb {\n font-size: var(--font-size-2);\n font-weight: var(--font-rg);\n letter-spacing: 0.16px;\n line-height: 1.4;\n }\n\n .wide-interactive-3,\n .wide-interactive-3-sb {\n font-size: var(--font-size-1);\n font-weight: var(--font-rg);\n letter-spacing: 0.32px;\n line-height: 1.333;\n }\n\n .wide-section-title-1 {\n font: var(--section-title-1);\n }\n\n .wide-section-title-2 {\n font: var(--section-title-2);\n }\n\n .wide-section-title-3 {\n font: var(--section-title-3);\n }\n\n .wide-section-title-4 {\n font: var(--section-title-4);\n }\n\n .wide-section-title-5 {\n font: var(--section-title-5);\n }\n\n .wide-section-title-6 {\n font: var(--section-title-6);\n }\n\n .wide-heading-1-lt,\n .wide-heading-2-lt,\n .wide-heading-3-lt,\n .wide-heading-4-lt {\n font-weight: var(--font-lt);\n }\n\n .wide-heading-1-sb,\n .wide-heading-2-sb,\n .wide-heading-3-sb,\n .wide-heading-4-sb,\n .wide-body-1-sb,\n .wide-body-2-sb,\n .wide-body-3-sb,\n .wide-body-4-sb,\n .wide-body-5-sb,\n .wide-interactive-1-sb,\n .wide-interactive-2-sb,\n .wide-interactive-3-sb {\n font-weight: var(--font-sb);\n }\n}\n\n/* font-weight variants */\n.heading-1-lt,\n.heading-2-lt,\n.heading-3-lt,\n.heading-4-lt {\n font-weight: var(--font-lt);\n}\n\n.heading-1-sb,\n.heading-2-sb,\n.heading-3-sb,\n.heading-4-sb,\n.body-1-sb,\n.body-2-sb,\n.body-3-sb,\n.body-4-sb,\n.body-5-sb,\n.interactive-1-sb,\n.interactive-2-sb,\n.interactive-3-sb,\n.helper-sb {\n font-weight: var(--font-sb);\n}\n","button.z-link {\n padding: 0;\n border: 0;\n margin: 0;\n background-color: transparent;\n}\n\na.z-link,\nbutton.z-link {\n display: inline-flex;\n cursor: pointer;\n font-family: var(--font-family-sans);\n line-height: inherit;\n text-decoration: none;\n}\n\na.z-link.z-link-icon,\nbutton.z-link.z-link-icon {\n --z-icon-width: 1.125em;\n --z-icon-height: 1.125em;\n\n align-items: center;\n column-gap: 0.5em;\n}\n\na.z-link.z-link-sb,\nbutton.z-link.z-link-sb {\n font-weight: var(--font-sb);\n}\n\na.z-link.z-link-underline,\nbutton.z-link.z-link-underline {\n text-decoration: underline;\n}\n\na.z-link:hover,\nbutton.z-link:hover,\na.z-link:focus-visible,\nbutton.z-link:focus-visible,\na.z-link:active,\nbutton.z-link:active {\n text-decoration: underline;\n}\n\na.z-link:focus-visible,\nbutton.z-link:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\na.z-link.z-link-disabled,\nbutton.z-link.z-link-disabled {\n box-shadow: none;\n color: var(--color-disabled03);\n cursor: default;\n fill: var(--color-disabled03);\n outline: none;\n pointer-events: none;\n text-decoration: none;\n}\n\na.z-link,\nbutton.z-link,\na.z-link.z-link-active,\nbutton.z-link.z-link-active,\na.z-link:hover,\nbutton.z-link:hover,\na.z-link.z-link-active:hover,\nbutton.z-link.z-link-active:hover,\na.z-link:focus-visible,\nbutton.z-link:focus-visible,\na.z-link.z-link-active:focus-visible,\nbutton.z-link.z-link-active:focus-visible,\na.z-link:active,\nbutton.z-link:active,\na.z-link.z-link-active:active,\nbutton.z-link.z-link-active:active,\na.z-link:visited,\nbutton.z-link:visited,\na.z-link.z-link-active:visited,\nbutton.z-link.z-link-active:visited {\n color: var(--color-text-link-default);\n fill: var(--color-text-link-default);\n}\n\na.z-link.z-link-blue,\nbutton.z-link.z-link-blue,\na.z-link.z-link-blue.z-link-active,\nbutton.z-link.z-link-blue.z-link-active {\n color: var(--color-text-link-blue);\n fill: var(--color-text-link-blue);\n}\n\na.z-link.z-link-red,\nbutton.z-link.z-link-red,\na.z-link.z-link-red.z-link-active,\nbutton.z-link.z-link-red.z-link-active {\n color: var(--color-text-link-red);\n fill: var(--color-text-link-red);\n}\n\na.z-link.z-link-inverse,\nbutton.z-link.z-link-inverse,\na.z-link.z-link-inverse.z-link-active,\nbutton.z-link.z-link-inverse.z-link-active {\n color: var(--color-text-link-inverse);\n fill: var(--color-text-link-inverse);\n}\n\na.z-link.z-link-blue:hover,\nbutton.z-link.z-link-blue:hover {\n color: var(--color-text-link-blue-hover);\n fill: var(--color-text-link-blue-hover);\n}\n\na.z-link.z-link-red:hover,\nbutton.z-link.z-link-red:hover {\n color: var(--color-text-link-red-hover);\n fill: var(--color-text-link-red-hover);\n}\n\na.z-link.z-link-inverse:hover,\nbutton.z-link.z-link-inverse:hover {\n color: var(--color-text-link-inverse);\n fill: var(--color-text-link-inverse);\n}\n\na.z-link.z-link-blue:active,\nbutton.z-link.z-link-blue:active,\na.z-link.z-link-blue:focus-visible,\nbutton.z-link.z-link-blue:focus-visible {\n color: var(--color-text-link-blue-active);\n fill: var(--color-text-link-blue-active);\n}\n\na.z-link.z-link-red:active,\nbutton.z-link.z-link-red:active,\na.z-link.z-link-red:focus-visible,\nbutton.z-link.z-link-red:focus-visible {\n color: var(--color-text-link-red-active);\n fill: var(--color-text-link-red-active);\n}\n\na.z-link.z-link-inverse:active,\nbutton.z-link.z-link-inverse:active,\na.z-link.z-link-inverse:focus-visible,\nbutton.z-link.z-link-inverse:focus-visible {\n color: var(--color-text-link-inverse);\n fill: var(--color-text-link-inverse);\n}\n\na.z-link.z-link-blue:visited,\nbutton.z-link.z-link-blue:visited {\n color: var(--color-text-link-blue-visited);\n fill: var(--color-text-link-blue-visited);\n}\n\na.z-link.z-link-red:visited,\nbutton.z-link.z-link-red:visited {\n color: var(--color-text-link-red-visited);\n fill: var(--color-text-link-red-visited);\n}\n\na.z-link.z-link-inverse:visited,\nbutton.z-link.z-link-inverse:visited {\n color: var(--color-text-link-inverse);\n fill: var(--color-text-link-inverse);\n}\n","import {Component, ComponentInterface, Element, Event, EventEmitter, Host, Prop, h} from \"@stencil/core\";\nimport {BookCardVariant, ControlSize} from \"../../../beans\";\n\n/**\n * @slot cta - Top right cta (e.g. bookmark icon)\n * @slot ebook - As default, it shows laZ ebook link\n * @slot tags - Tags section, default empty\n * @slot data - External link and pill, default empty\n * @slot apps - List of card-related apps, default empty\n * @slot coverOverlay - Content to be displayed in the `z-book-cover` component slot\n */\n@Component({\n tag: \"z-book-card\",\n styleUrls: [\"styles.css\", \"../../../tokens/typography.css\", \"../../css-components/z-link/styles.css\"],\n shadow: true,\n})\nexport class ZBookCard implements ComponentInterface {\n @Element() hostElement: HTMLZBookCardElement;\n\n /** Card variant: landscape, portrait */\n @Prop({reflect: true})\n variant: BookCardVariant = BookCardVariant.PORTRAIT;\n\n /** Cover URL */\n @Prop()\n cover: string;\n\n /** Opera title (card title) */\n @Prop()\n operaTitle: string;\n\n /** [optional] Volume title (card subvolume) */\n @Prop()\n volumeTitle?: string;\n\n /** [optional] Authors */\n @Prop()\n authors?: string;\n\n /** [optional] Main ISBN */\n @Prop()\n isbn?: string;\n\n /** [optional] ISBN label */\n @Prop()\n isbnLabel = \"\";\n\n /** [optional] year */\n @Prop()\n year?: string;\n\n /** [optional] Link to the ebook resource. Creates a link also around the cover and title. */\n @Prop()\n ebookUrl?: string;\n\n /** [optional] Value for the `target` attribute of the links created by `ebookUrl` prop. */\n @Prop()\n linkTarget = \"_blank\";\n\n /** [optional] Fallback cover URL. */\n @Prop()\n fallbackCover?: string;\n\n /**\n * Whether to show a stack of covers to represent multiple books.\n * Only takes effect when `variant` is `portrait`: in `landscape` it is silently ignored and no\n * cover stack is rendered, regardless of its value.\n */\n @Prop()\n hasMultipleCovers = false;\n\n /** [optional] Set a specific heading level as html tag for the title. */\n @Prop()\n titleHtmlTag?: string;\n\n /** click on ebook link */\n @Event()\n ebookClick: EventEmitter;\n\n /** click on cover link */\n @Event()\n coverClick: EventEmitter;\n\n /** click on title link */\n @Event()\n titleClick: EventEmitter;\n\n private emitEbookClick(): void {\n this.ebookClick.emit();\n }\n\n private emitCoverClick(): void {\n this.coverClick.emit();\n }\n\n private emitTitleClick(): void {\n this.titleClick.emit();\n }\n\n private renderCover(): HTMLDivElement {\n const CoverTag = this.ebookUrl ? \"a\" : \"div\";\n const coverAttrs = this.ebookUrl\n ? {\n href: this.ebookUrl,\n onClick: () => this.emitCoverClick(),\n target: this.linkTarget,\n }\n : {};\n\n return (\n <CoverTag\n class=\"cover\"\n {...coverAttrs}\n >\n <z-book-cover\n cover={this.cover}\n fallbackCover={this.fallbackCover}\n multiple={this.hasMultipleCovers && this.variant === BookCardVariant.PORTRAIT}\n >\n <slot\n name=\"coverOverlay\"\n slot=\"coverOverlay\"\n ></slot>\n </z-book-cover>\n </CoverTag>\n );\n }\n\n private renderYear(): null | HTMLDivElement {\n if (!this.year) {\n return null;\n }\n\n return (\n <div\n class=\"year ellipsis body-4\"\n aria-description=\"anno\"\n >\n {this.year}\n </div>\n );\n }\n\n private renderAuthors(): null | HTMLDivElement {\n if (!this.authors) {\n return null;\n }\n\n return (\n <div\n class=\"authors ellipsis body-4\"\n aria-description=\"autori\"\n >\n {this.authors}\n </div>\n );\n }\n\n private renderOperaTitle(): HTMLDivElement {\n const title = this.titleHtmlTag\n ? `<${this.titleHtmlTag}>${this.operaTitle}</${this.titleHtmlTag}>`\n : this.operaTitle;\n\n const operaTitle = (\n <div\n class=\"opera-title ellipsis body-2-sb\"\n innerHTML={title}\n />\n );\n\n if (this.ebookUrl) {\n return (\n <a\n class=\"z-link\"\n href={this.ebookUrl}\n onClick={() => this.emitTitleClick()}\n target={this.linkTarget}\n >\n {operaTitle}\n </a>\n );\n }\n\n return operaTitle;\n }\n\n private renderVolumeTitle(): null | HTMLDivElement {\n if (!this.volumeTitle) {\n return null;\n }\n\n return <div class=\"volume-title ellipsis body-4\">{this.volumeTitle}</div>;\n }\n\n private renderIsbn(): null | HTMLDivElement {\n if (!this.isbn) {\n return null;\n }\n\n return (\n <div\n class=\"isbn ellipsis body-4-sb\"\n aria-description={`isbn ${this.isbnLabel}`}\n >\n {this.isbn} {this.isbnLabel ? <span class=\"body-4\">{this.isbnLabel}</span> : null}\n </div>\n );\n }\n\n private renderEbook(): null | HTMLDivElement {\n if (!this.ebookUrl) {\n return null;\n }\n\n return (\n <div class=\"ebook\">\n <div class=\"app-name\">\n <img\n class=\"ebook-logo\"\n aria-hidden=\"true\"\n />\n <div class=\"body-4-sb\">laZ Ebook</div>\n </div>\n <z-button\n size={ControlSize.X_SMALL}\n href={this.ebookUrl}\n target={this.linkTarget}\n onClick={() => this.emitEbookClick()}\n htmlRole=\"link\"\n aria-description={`leggi l'ebook ${this.operaTitle} su laZ Ebook`}\n >\n leggi ebook\n </z-button>\n </div>\n );\n }\n\n render(): HTMLZBookCardElement {\n return (\n <Host>\n <div class=\"main-content\">\n {this.renderCover()}\n <div class=\"card-info\">\n <div class=\"top\">\n <div>\n {this.renderYear()}\n {this.renderAuthors()}\n {this.renderOperaTitle()}\n {this.renderVolumeTitle()}\n {this.renderIsbn()}\n <div class=\"cta-slot\">\n <slot name=\"cta\"></slot>\n </div>\n </div>\n <slot name=\"tags\"></slot>\n <slot name=\"data\"></slot>\n </div>\n <slot name=\"ebook\">{this.renderEbook()}</slot>\n </div>\n </div>\n <slot name=\"apps\"></slot>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{proxyCustomElement as e,HTMLElement as t,createEvent as i,h as s,Host as o,transformTag as r}from"@stencil/core/internal/client";import{W as n,X as a,p as l,g as h,P as c,i as p}from"./index2.js";import{g as d,h as u}from"./utils.js";import{d as f}from"./index5.js";import{d as m}from"./index3.js";import{d as v}from"./index8.js";import{d as b}from"./index9.js";import{d as g}from"./index10.js";import{d as z}from"./index16.js";const x=()=>`:host{font-family:var(--font-family-sans);font-weight:var(--font-rg);--line-clamp-popover:0;--line-clamp-mobile:1}*{box-sizing:border-box}button{padding:0;border:none;margin:0;background-color:transparent}nav{display:flex;align-items:center}ol{display:flex;align-items:center;padding:0;margin:0;column-gap:var(--space-unit);list-style:none}li{display:flex;align-items:center;justify-content:flex-start;column-gap:var(--space-unit)}ol li>a,ol li>button{font-size:var(--font-size-2);letter-spacing:0.16px;line-height:1.4}a:focus,button:focus{box-shadow:var(--shadow-focus-primary);outline:none}a{color:var(--color-text-link-blue);white-space:nowrap}a.missing-path{color:var(--color-default-text)}.text-ellipsis{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--line-clamp-mobile);line-clamp:var(--line-clamp-mobile);text-overflow:ellipsis;white-space:initial}nav.semibold>ol>li>a:not(.missing-path),nav.semibold>ol>li>button{font-weight:var(--font-sb);text-decoration:none}nav.underlined a,nav.underlined button{text-decoration:underline}z-icon{--z-icon-width:16px;--z-icon-height:16px;display:block;fill:var(--color-text-link-blue)}z-icon.separator{--z-icon-width:10px;--z-icon-height:10px;fill:var(--gray500)}button.dots{display:inline-block;color:var(--color-text-link-blue);cursor:pointer}.hidden-paths-popover .popover-content{max-width:302px;padding:calc(var(--space-unit) / 2) var(--space-unit);text-align:left}.hidden-paths-popover .popover-content a{font-weight:var(--font-rg);text-decoration:none}.hidden-paths-popover{--z-popover-theme--surface:var(--color-background);--z-popover-padding:0;--background-color-list-element:var(--color-background)}.hidden-paths-popover::before,.full-path-tooltip::before{--arrow-edge-offset:calc(100% - (var(--space-unit) * 2.55))}.full-path-tooltip{--z-popover-theme--surface:var(--color-surface05);--z-popover-theme--text:var(--color-text-inverse);--z-popover-padding:0}.tooltip-content{padding:0 var(--space-unit);font-size:var(--font-size-2)}@media (min-width: 768px){.text-ellipsis{-webkit-line-clamp:var(--line-clamp-popover);line-clamp:var(--line-clamp-popover)}}@media (max-width: 767px){li a{display:flex;align-items:center;column-gap:var(--space-unit)}}`;const w=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.clickOnNode=i(this,"clickOnNode",7);this.pathStyle=n.UNDERLINED;this.homepageVariant=a.ICON;this.maxNodesToShow=5;this.preventFollowUrl=false;this.overflowMenuItemRows=0;this.truncateChar=30;this.hasOverflow=false;this.popoverEllipsisOpen=false;this.collapsedElements=[];this.currentIndex=0;this.truncatePosition=null}handleResize(){this.viewPortWidth=d();if(this.viewPortWidth!==l.MOBILE&&this.wrapElement&&this.wrapElement.scrollWidth>this.wrapElement.clientWidth){this.hasOverflow=true}}handlePropChange(){this.initializeBreadcrumb()}handleResizeUp(e,t){if(e===l.MOBILE||t===l.MOBILE&&e===l.TABLET||t===l.MOBILE&&e===l.DESKTOP||t===l.MOBILE&&e===l.DESKTOP_WIDE||t===l.TABLET&&e===l.DESKTOP||t===l.TABLET&&e===l.DESKTOP_WIDE||t===l.DESKTOP&&e===l.DESKTOP_WIDE){this.initializeBreadcrumb()}}componentWillLoad(){this.viewPortWidth=d();this.initializeBreadcrumb()}componentWillRender(){if(this.viewPortWidth!==l.MOBILE&&this.hasOverflow){this.checkEllipsisOrOverflowMenu();this.hasOverflow=false}}componentDidRender(){if(this.collapsedElementsRef){this.anchorElements=Array.from(this.hostElement.shadowRoot.querySelectorAll("z-list-group a"))}if(this.viewPortWidth!==l.MOBILE){requestAnimationFrame((()=>{if(this.wrapElement.scrollWidth>this.wrapElement.clientWidth){if(!this.hasOverflow){this.hasOverflow=true}}}))}}initializeBreadcrumb(){if(this.viewPortWidth===l.MOBILE){this.pathsList=this.getPathsItemsList().filter((e=>!!e.path))}else{this.pathsList=this.getPathsItemsList()}this.homepageNode=this.pathsList.shift();this.pathListCopy=[...this.pathsList];this.collapsedElements=[];if(this.pathsList.length>this.maxNodesToShow){this.collapsedElements=this.pathsList.splice(0,this.pathsList.length-2)}}checkEllipsisOrOverflowMenu(){for(let e=0;e<this.pathsList.length;e++){if(this.pathsList[e].text.length<=this.truncateChar){continue}if(this.truncatePosition>0){this.collapsedElements.push(...this.pathListCopy.splice(0,this.truncatePosition));this.pathsList.splice(0,this.truncatePosition);this.truncatePosition=0;return}else if(this.truncatePosition===0){this.collapsedElements.push(...this.pathListCopy.splice(0,this.truncatePosition+1));this.pathsList.splice(0,this.truncatePosition+1);this.truncatePosition=null;return}if(e!==this.pathsList.length-1){const t=this.truncateWithEllipsis(this.pathsList[e].text,this.truncateChar);this.currentEllipsisText=this.pathsList[e].text;this.pathsList[e].text=t;this.pathsList[e].hasTooltip=true;this.truncatePosition=e;return}}}truncateWithEllipsis(e,t){if(e.length<=t){return e}return e.substring(0,t-1)+"…"}getPathsItemsList(){return Array.from(this.hostElement.children).map((e=>({text:e.textContent,path:e.href,hasTooltip:false})))}renderHomepageNode(){return s("li",null,s("a",{class:{"homepage-text":this.homepageVariant===a.TEXT},href:this.homepageNode.path,onClick:e=>this.handlePreventFollowUrl(e,this.homepageNode),innerHTML:this.homepageVariant===a.ICON?`<z-icon name="home" />`:this.homepageNode.text||"Home"}),this.pathsList.length>0&&s("z-icon",{class:"separator",name:"chevron-right","aria-hidden":"true"}))}togglePopover(){if(!this.collapsedElementsRef.open){this.collapsedElementsRef.open=true}}handlePreventFollowUrl(e,t){if(this.preventFollowUrl){e.preventDefault();this.clickOnNode.emit(t.path)}}handleOverflowMenuAccessibility(e){const t=this.anchorElements.length;if(e.key===h.TAB){e.preventDefault();return}e.stopPropagation();const i=[h.ARROW_DOWN,h.ARROW_UP];if(i.includes(e.key)){e.preventDefault();if(e.key===h.ARROW_DOWN){this.currentIndex=t===this.currentIndex+1?0:this.currentIndex+1}if(e.key===h.ARROW_UP){this.currentIndex=this.currentIndex<=0?t-1:this.currentIndex-1}this.anchorElements[this.currentIndex].focus()}if(e.key===h.ESC){this.triggerButton.focus()}}renderOverflowMenu(){return s("li",null,s("z-popover",{class:"hidden-paths-popover",ref:e=>this.collapsedElementsRef=e,bindTo:this.triggerButton,position:c.BOTTOM_RIGHT,closable:true,showArrow:true},s("div",{class:"popover-content"},s("z-list",null,s("z-list-group",{size:p.SMALL},this.collapsedElements.map(((e,t,i)=>s("div",null,s("z-list-element",{clickable:true},s("a",{class:"text-ellipsis",href:e.path,onClick:t=>this.handlePreventFollowUrl(t,e),onKeyDown:e=>this.handleOverflowMenuAccessibility(e),innerHTML:e.text})),t<i.length-1&&s("z-divider",{color:"color-surface03"})))))))),s("button",{class:"dots",ref:e=>this.triggerButton=e,"aria-label":"Mostra più breadcrumb","aria-haspopup":"true",onClick:()=>{this.togglePopover()},onKeyDown:e=>{u(e,this.togglePopover.bind(this));setTimeout((()=>{this.anchorElements[0].focus()}),100)},innerHTML:"…"}),this.pathsList.length>0&&s("z-icon",{class:"separator",name:"chevron-right","aria-hidden":"true"}))}renderMobileItems(){const e=this.pathsList[this.pathsList.length-1];if(!e){return}return s("li",null,s("a",{"aria-current":e.path?undefined:"page",href:e.path,onClick:t=>this.handlePreventFollowUrl(t,e)},s("z-icon",{name:"chevron-left"}),s("span",{class:{"missing-path":!e.path,"text-ellipsis":true}},e.text)))}renderItems(){let e;return[this.renderHomepageNode(),this.collapsedElements.length>0&&this.renderOverflowMenu(),...this.pathsList.map(((t,i)=>s("li",null,t.hasTooltip&&s("z-popover",{class:"full-path-tooltip",bindTo:e,open:this.popoverEllipsisOpen,position:c.BOTTOM_RIGHT,closable:false,showArrow:true},s("span",{class:"tooltip-content"},this.currentEllipsisText)),s("a",{class:{"missing-path":!t.path},ref:t=>e=t,"aria-current":t.path?undefined:"page",href:t.path,onClick:e=>this.handlePreventFollowUrl(e,t),onMouseOver:()=>{if(t.hasTooltip){this.popoverEllipsisOpen=true}},onMouseLeave:()=>{if(t.hasTooltip){this.popoverEllipsisOpen=false}},innerHTML:t.text}),i!==this.pathsList.length-1&&s("z-icon",{class:"separator",name:"chevron-right","aria-hidden":"true"}))))]}render(){return s(o,{key:"fb5161f12a17f636f078a65f8824cacf019710c3",style:{"--line-clamp-popover":`${this.overflowMenuItemRows}`}},s("nav",{key:"6c010fb71ec9eb24b88e0dbe43e70697d0bdeb13",ref:e=>this.wrapElement=e,"aria-label":"Breadcrumb",class:{semibold:this.pathStyle===n.SEMIBOLD,underlined:this.pathStyle===n.UNDERLINED}},s("ol",{key:"e31bc9b95a11f9a58f060d2df96be17dc9d3b4d1"},this.viewPortWidth===l.MOBILE?this.renderMobileItems():this.renderItems())))}get hostElement(){return this}static get watchers(){return{maxNodesToShow:[{handlePropChange:0}],viewPortWidth:[{handleResizeUp:0}]}}static get style(){return x()}},[1,"z-breadcrumb",{pathStyle:[513,"path-style"],homepageVariant:[1,"homepage-variant"],maxNodesToShow:[2,"max-nodes-to-show"],preventFollowUrl:[4,"prevent-follow-url"],overflowMenuItemRows:[2,"overflow-menu-item-rows"],truncateChar:[2,"truncate-char"],viewPortWidth:[32],hasOverflow:[32],popoverEllipsisOpen:[32]},[[9,"resize","handleResize"]],{maxNodesToShow:[{handlePropChange:0}],viewPortWidth:[{handleResizeUp:0}]}]);function k(){if(typeof customElements==="undefined"){return}const e=["z-breadcrumb","z-divider","z-icon","z-list","z-list-element","z-list-group","z-popover"];e.forEach((e=>{switch(e){case"z-breadcrumb":if(!customElements.get(r(e))){customElements.define(r(e),w)}break;case"z-divider":if(!customElements.get(r(e))){f()}break;case"z-icon":if(!customElements.get(r(e))){m()}break;case"z-list":if(!customElements.get(r(e))){v()}break;case"z-list-element":if(!customElements.get(r(e))){b()}break;case"z-list-group":if(!customElements.get(r(e))){g()}break;case"z-popover":if(!customElements.get(r(e))){z()}break}}))}const y=w;const E=k;export{y as ZBreadcrumb,E as defineCustomElement};
|
|
1
|
+
import{proxyCustomElement as e,HTMLElement as t,createEvent as i,h as s,Host as o,transformTag as r}from"@stencil/core/internal/client";import{W as n,X as a,p as l,g as h,P as c,i as p}from"./index2.js";import{g as d,h as u}from"./utils.js";import{d as f}from"./index5.js";import{d as m}from"./index3.js";import{d as v}from"./index8.js";import{d as b}from"./index9.js";import{d as g}from"./index10.js";import{d as z}from"./index16.js";const x=()=>`:host{font-family:var(--font-family-sans);font-weight:var(--font-rg);--line-clamp-popover:0;--line-clamp-mobile:1}*{box-sizing:border-box}button{padding:0;border:none;margin:0;background-color:transparent}nav{display:flex;align-items:center}ol{display:flex;align-items:center;padding:0;margin:0;column-gap:var(--space-unit);list-style:none}li{display:flex;align-items:center;justify-content:flex-start;column-gap:var(--space-unit)}ol li>a,ol li>button{font-size:var(--font-size-2);letter-spacing:0.16px;line-height:1.4}a:focus,button:focus{box-shadow:var(--shadow-focus-primary);outline:none}a{color:var(--color-text-link-blue);white-space:nowrap}a.missing-path{color:var(--color-default-text)}.text-ellipsis{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:var(--line-clamp-mobile);line-clamp:var(--line-clamp-mobile);text-overflow:ellipsis;white-space:initial}nav.semibold>ol>li>a:not(.missing-path),nav.semibold>ol>li>button{font-weight:var(--font-sb);text-decoration:none}nav.underlined a,nav.underlined button{text-decoration:underline}z-icon{--z-icon-width:16px;--z-icon-height:16px;display:block;fill:var(--color-text-link-blue)}z-icon.separator{--z-icon-width:10px;--z-icon-height:10px;fill:var(--gray500)}button.dots{display:inline-block;color:var(--color-text-link-blue);cursor:pointer}.hidden-paths-popover .popover-content{max-width:302px;padding:calc(var(--space-unit) / 2) var(--space-unit);text-align:left}.hidden-paths-popover .popover-content a{font-weight:var(--font-rg);text-decoration:none}.hidden-paths-popover{--z-popover-theme--surface:var(--color-background);--z-popover-padding:0;--background-color-list-element:var(--color-background)}.hidden-paths-popover::before,.full-path-tooltip::before{--arrow-edge-offset:calc(100% - (var(--space-unit) * 2.55))}.full-path-tooltip{--z-popover-theme--surface:var(--color-surface05);--z-popover-theme--text:var(--color-text-inverse);--z-popover-padding:0}.tooltip-content{padding:0 var(--space-unit);font-size:var(--font-size-2)}@media (min-width: 768px){.text-ellipsis{-webkit-line-clamp:var(--line-clamp-popover);line-clamp:var(--line-clamp-popover)}}@media (max-width: 767px){li a{display:flex;align-items:center;column-gap:var(--space-unit)}}`;const w=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.clickOnNode=i(this,"clickOnNode",7);this.pathStyle=n.UNDERLINED;this.homepageVariant=a.ICON;this.maxNodesToShow=5;this.preventFollowUrl=false;this.overflowMenuItemRows=0;this.truncateChar=30;this.hasOverflow=false;this.popoverEllipsisOpen=false;this.collapsedElements=[];this.currentIndex=0;this.truncatePosition=null}handleResize(){this.viewPortWidth=d();if(this.viewPortWidth!==l.MOBILE&&this.wrapElement&&this.wrapElement.scrollWidth>this.wrapElement.clientWidth){this.hasOverflow=true}}handlePropChange(){this.initializeBreadcrumb()}handleResizeUp(e,t){if(e===l.MOBILE||t===l.MOBILE&&e===l.TABLET||t===l.MOBILE&&e===l.DESKTOP||t===l.MOBILE&&e===l.DESKTOP_WIDE||t===l.TABLET&&e===l.DESKTOP||t===l.TABLET&&e===l.DESKTOP_WIDE||t===l.DESKTOP&&e===l.DESKTOP_WIDE){this.initializeBreadcrumb()}}componentWillLoad(){this.viewPortWidth=d();this.initializeBreadcrumb()}componentWillRender(){if(this.viewPortWidth!==l.MOBILE&&this.hasOverflow){this.checkEllipsisOrOverflowMenu();this.hasOverflow=false}}componentDidRender(){if(this.collapsedElementsRef){this.anchorElements=Array.from(this.hostElement.shadowRoot.querySelectorAll("z-list-group a"))}if(this.viewPortWidth!==l.MOBILE){requestAnimationFrame((()=>{if(this.wrapElement.scrollWidth>this.wrapElement.clientWidth){if(!this.hasOverflow){this.hasOverflow=true}}}))}}initializeBreadcrumb(){if(this.viewPortWidth===l.MOBILE){this.pathsList=this.getPathsItemsList().filter((e=>!!e.path))}else{this.pathsList=this.getPathsItemsList()}this.homepageNode=this.pathsList.shift();this.pathListCopy=[...this.pathsList];this.collapsedElements=[];if(this.pathsList.length>this.maxNodesToShow){this.collapsedElements=this.pathsList.splice(0,this.pathsList.length-2)}}checkEllipsisOrOverflowMenu(){for(let e=0;e<this.pathsList.length;e++){if(this.pathsList[e].text.length<=this.truncateChar){continue}if(this.truncatePosition>0){this.collapsedElements.push(...this.pathListCopy.splice(0,this.truncatePosition));this.pathsList.splice(0,this.truncatePosition);this.truncatePosition=0;return}else if(this.truncatePosition===0){this.collapsedElements.push(...this.pathListCopy.splice(0,this.truncatePosition+1));this.pathsList.splice(0,this.truncatePosition+1);this.truncatePosition=null;return}if(e!==this.pathsList.length-1){const t=this.truncateWithEllipsis(this.pathsList[e].text,this.truncateChar);this.currentEllipsisText=this.pathsList[e].text;this.pathsList[e].text=t;this.pathsList[e].hasTooltip=true;this.truncatePosition=e;return}}}truncateWithEllipsis(e,t){if(e.length<=t){return e}return e.substring(0,t-1)+"…"}getPathsItemsList(){return Array.from(this.hostElement.children).map((e=>({text:e.textContent,path:e.href,hasTooltip:false})))}renderHomepageNode(){return s("li",null,s("a",{class:{"homepage-text":this.homepageVariant===a.TEXT},href:this.homepageNode.path,onClick:e=>this.handlePreventFollowUrl(e,this.homepageNode),innerHTML:this.homepageVariant===a.ICON?`<z-icon name="home" />`:this.homepageNode.text||"Home"}),this.pathsList.length>0&&s("z-icon",{class:"separator",name:"chevron-right","aria-hidden":"true"}))}togglePopover(){if(!this.collapsedElementsRef.open){this.collapsedElementsRef.open=true}}handlePreventFollowUrl(e,t){if(this.preventFollowUrl){e.preventDefault();this.clickOnNode.emit(t.path)}}handleOverflowMenuAccessibility(e){const t=this.anchorElements.length;if(e.key===h.TAB){e.preventDefault();return}e.stopPropagation();const i=[h.ARROW_DOWN,h.ARROW_UP];if(i.includes(e.key)){e.preventDefault();if(e.key===h.ARROW_DOWN){this.currentIndex=t===this.currentIndex+1?0:this.currentIndex+1}if(e.key===h.ARROW_UP){this.currentIndex=this.currentIndex<=0?t-1:this.currentIndex-1}this.anchorElements[this.currentIndex].focus()}if(e.key===h.ESC){this.triggerButton.focus()}}renderOverflowMenu(){return s("li",null,s("z-popover",{class:"hidden-paths-popover",ref:e=>this.collapsedElementsRef=e,bindTo:this.triggerButton,position:c.BOTTOM_RIGHT,closable:true,showArrow:true},s("div",{class:"popover-content"},s("z-list",null,s("z-list-group",{size:p.SMALL},this.collapsedElements.map(((e,t,i)=>s("div",null,s("z-list-element",{clickable:true},s("a",{class:"text-ellipsis",href:e.path,onClick:t=>this.handlePreventFollowUrl(t,e),onKeyDown:e=>this.handleOverflowMenuAccessibility(e),innerHTML:e.text})),t<i.length-1&&s("z-divider",{color:"color-surface03"})))))))),s("button",{class:"dots",ref:e=>this.triggerButton=e,"aria-label":"Mostra più breadcrumb","aria-haspopup":"true",onClick:()=>{this.togglePopover()},onKeyDown:e=>{u(e,this.togglePopover.bind(this));setTimeout((()=>{this.anchorElements[0].focus()}),100)},innerHTML:"…"}),this.pathsList.length>0&&s("z-icon",{class:"separator",name:"chevron-right","aria-hidden":"true"}))}renderMobileItems(){const e=this.pathsList[this.pathsList.length-1];if(!e){return}return s("li",null,s("a",{"aria-current":e.path?undefined:"page",href:e.path,onClick:t=>this.handlePreventFollowUrl(t,e)},s("z-icon",{name:"chevron-left"}),s("span",{class:{"missing-path":!e.path,"text-ellipsis":true}},e.text)))}renderItems(){let e;return[this.renderHomepageNode(),this.collapsedElements.length>0&&this.renderOverflowMenu(),...this.pathsList.map(((t,i)=>s("li",null,t.hasTooltip&&s("z-popover",{class:"full-path-tooltip",bindTo:e,open:this.popoverEllipsisOpen,position:c.BOTTOM_RIGHT,closable:false,showArrow:true},s("span",{class:"tooltip-content"},this.currentEllipsisText)),s("a",{class:{"missing-path":!t.path},ref:t=>e=t,"aria-current":t.path?undefined:"page",href:t.path,onClick:e=>this.handlePreventFollowUrl(e,t),onMouseOver:()=>{if(t.hasTooltip){this.popoverEllipsisOpen=true}},onMouseLeave:()=>{if(t.hasTooltip){this.popoverEllipsisOpen=false}},innerHTML:t.text}),i!==this.pathsList.length-1&&s("z-icon",{class:"separator",name:"chevron-right","aria-hidden":"true"}))))]}render(){return s(o,{key:"21c4307fce9f47f07e2f981f6aa6a6c55c93bd52",style:{"--line-clamp-popover":`${this.overflowMenuItemRows}`}},s("nav",{key:"8e9e10a75e0659967e06479e62bdbb16585d41b9",ref:e=>this.wrapElement=e,"aria-label":"Breadcrumb",class:{semibold:this.pathStyle===n.SEMIBOLD,underlined:this.pathStyle===n.UNDERLINED}},s("ol",{key:"c34f110b205428e846187ece3fb1bece26b9a808"},this.viewPortWidth===l.MOBILE?this.renderMobileItems():this.renderItems())))}get hostElement(){return this}static get watchers(){return{maxNodesToShow:[{handlePropChange:0}],viewPortWidth:[{handleResizeUp:0}]}}static get style(){return x()}},[1,"z-breadcrumb",{pathStyle:[513,"path-style"],homepageVariant:[1,"homepage-variant"],maxNodesToShow:[2,"max-nodes-to-show"],preventFollowUrl:[4,"prevent-follow-url"],overflowMenuItemRows:[2,"overflow-menu-item-rows"],truncateChar:[2,"truncate-char"],viewPortWidth:[32],hasOverflow:[32],popoverEllipsisOpen:[32]},[[9,"resize","handleResize"]],{maxNodesToShow:[{handlePropChange:0}],viewPortWidth:[{handleResizeUp:0}]}]);function k(){if(typeof customElements==="undefined"){return}const e=["z-breadcrumb","z-divider","z-icon","z-list","z-list-element","z-list-group","z-popover"];e.forEach((e=>{switch(e){case"z-breadcrumb":if(!customElements.get(r(e))){customElements.define(r(e),w)}break;case"z-divider":if(!customElements.get(r(e))){f()}break;case"z-icon":if(!customElements.get(r(e))){m()}break;case"z-list":if(!customElements.get(r(e))){v()}break;case"z-list-element":if(!customElements.get(r(e))){b()}break;case"z-list-group":if(!customElements.get(r(e))){g()}break;case"z-popover":if(!customElements.get(r(e))){z()}break}}))}const y=w;const E=k;export{y as ZBreadcrumb,E as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=z-breadcrumb.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{proxyCustomElement as r,HTMLElement as t,createEvent as o,h as i,transformTag as e}from"@stencil/core/internal/client";import{B as s}from"./breakpoints.js";import{d as a}from"./index3.js";const c=()=>`button{display:flex;max-width:100%;height:36px;align-items:center;padding:0 var(--space-unit);border:var(--border-size-medium) solid var(--color-primary01);background-color:var(--color-surface01);border-radius:var(--border-radius);color:var(--color-primary01);cursor:pointer;fill:var(--color-primary01);font-family:var(--font-family-sans);font-size:14px;font-weight:var(--font-sb);outline:none}button::-moz-focus-inner{border:0}button:hover{border-color:var(--color-hover-primary);color:var(--color-hover-primary);fill:var(--color-hover-primary-icon)}button:focus{border-color:var(--color-primary01);box-shadow:var(--shadow-focus-primary);color:var(--color-primary01);fill:var(--color-primary01)}button:active{border-color:var(--color-pressed-primary);box-shadow:var(--shadow-2);color:var(--color-pressed-primary);fill:var(--color-active-primary-icon)}button.selected{border-color:var(--color-hover-primary);background-color:var(--color-hover-primary);color:var(--color-text-inverse);fill:var(--color-inverse-icon)}button>span.ellipsis{overflow:hidden;padding:0;margin:0;text-overflow:ellipsis;white-space:nowrap}button>span.counter{margin-right:calc(var(--space-unit) * 2);margin-left:calc(var(--space-unit) / 2)}button>span.sort{margin-right:calc(var(--space-unit) / 2);white-space:nowrap}button>span{margin-right:calc(var(--space-unit) / 2)}@media (min-width: 768px){button{max-width:325px}}@media (min-width: 1152px){button{max-width:490px}}`;const n=r(class r extends t{constructor(r){super();if(r!==false){this.__registerHost()}this.__attachShadow();this.buttonSortClick=o(this,"buttonSortClick",7);this.sortlabelasc="A-Z";this.sortlabeldesc="Z-A";this.isselected=false;this.sortasc=true;this.allowTooltip=false}emitButtonSortClick(){if(!this.isselected){this.isselected=true}else{this.sortasc=!this.sortasc}this.buttonSortClick.emit({buttonid:this.buttonid,sortAsc:this.sortasc})}componentDidLoad(){if(this.elementHasEllipsis()&&window.innerWidth>s.TABLET){this.allowTooltip=true}}setButtonTitle(){return this.allowTooltip?`${this.sortasc?this.label:this.desclabel}`:""}elementHasEllipsis(){return this.ellipsis.offsetWidth<this.ellipsis.scrollWidth}render(){return i("button",{key:"
|
|
1
|
+
import{proxyCustomElement as r,HTMLElement as t,createEvent as o,h as i,transformTag as e}from"@stencil/core/internal/client";import{B as s}from"./breakpoints.js";import{d as a}from"./index3.js";const c=()=>`button{display:flex;max-width:100%;height:36px;align-items:center;padding:0 var(--space-unit);border:var(--border-size-medium) solid var(--color-primary01);background-color:var(--color-surface01);border-radius:var(--border-radius);color:var(--color-primary01);cursor:pointer;fill:var(--color-primary01);font-family:var(--font-family-sans);font-size:14px;font-weight:var(--font-sb);outline:none}button::-moz-focus-inner{border:0}button:hover{border-color:var(--color-hover-primary);color:var(--color-hover-primary);fill:var(--color-hover-primary-icon)}button:focus{border-color:var(--color-primary01);box-shadow:var(--shadow-focus-primary);color:var(--color-primary01);fill:var(--color-primary01)}button:active{border-color:var(--color-pressed-primary);box-shadow:var(--shadow-2);color:var(--color-pressed-primary);fill:var(--color-active-primary-icon)}button.selected{border-color:var(--color-hover-primary);background-color:var(--color-hover-primary);color:var(--color-text-inverse);fill:var(--color-inverse-icon)}button>span.ellipsis{overflow:hidden;padding:0;margin:0;text-overflow:ellipsis;white-space:nowrap}button>span.counter{margin-right:calc(var(--space-unit) * 2);margin-left:calc(var(--space-unit) / 2)}button>span.sort{margin-right:calc(var(--space-unit) / 2);white-space:nowrap}button>span{margin-right:calc(var(--space-unit) / 2)}@media (min-width: 768px){button{max-width:325px}}@media (min-width: 1152px){button{max-width:490px}}`;const n=r(class r extends t{constructor(r){super();if(r!==false){this.__registerHost()}this.__attachShadow();this.buttonSortClick=o(this,"buttonSortClick",7);this.sortlabelasc="A-Z";this.sortlabeldesc="Z-A";this.isselected=false;this.sortasc=true;this.allowTooltip=false}emitButtonSortClick(){if(!this.isselected){this.isselected=true}else{this.sortasc=!this.sortasc}this.buttonSortClick.emit({buttonid:this.buttonid,sortAsc:this.sortasc})}componentDidLoad(){if(this.elementHasEllipsis()&&window.innerWidth>s.TABLET){this.allowTooltip=true}}setButtonTitle(){return this.allowTooltip?`${this.sortasc?this.label:this.desclabel}`:""}elementHasEllipsis(){return this.ellipsis.offsetWidth<this.ellipsis.scrollWidth}render(){return i("button",{key:"acc7e3fa2e284b9b5b5d8f20f5d2f149c80b7e05",title:this.setButtonTitle(),id:this.buttonid,class:{selected:this.isselected},onClick:()=>this.emitButtonSortClick()},i("span",{key:"a50ff5723e5817d724206e0495e1b3f45b5f4c3f",ref:r=>this.ellipsis=r,class:"ellipsis"},!this.sortasc&&this.desclabel?this.desclabel:this.label),i("span",{key:"3962fb15112cb94ea958b607cb915f61f4adaa02",class:"counter"},this.counter&&` (${this.counter})`),i("span",{key:"23d06d6e51ce292b26e6e4bd7ee07aeb097f843f",class:"sort"},this.sortasc?this.sortlabelasc:this.sortlabeldesc),i("z-icon",{key:"35d3bd5bd3f84cf6e008b8c01a3d0dc995dc6f44",name:"caret-up-down",width:16,height:16}))}static get style(){return c()}},[1,"z-button-sort",{buttonid:[1],label:[1],desclabel:[1],counter:[2],sortlabelasc:[1],sortlabeldesc:[1],isselected:[1028],sortasc:[1028],allowTooltip:[32]}]);function l(){if(typeof customElements==="undefined"){return}const r=["z-button-sort","z-icon"];r.forEach((r=>{switch(r){case"z-button-sort":if(!customElements.get(e(r))){customElements.define(e(r),n)}break;case"z-icon":if(!customElements.get(e(r))){a()}break}}))}const d=n;const h=l;export{d as ZButtonSort,h as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=z-button-sort.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{proxyCustomElement as t,HTMLElement as e,createEvent as o,h as r,Host as a,transformTag as s}from"@stencil/core/internal/client";import{a2 as i}from"./index2.js";import{a as l}from"./utils.js";const c=()=>`:host{display:grid;width:fit-content;padding:calc(var(--space-unit) * 2);background:var(--color-surface01);gap:var(--space-unit);grid-template-columns:repeat(9, calc(var(--space-unit) * 3));grid-template-rows:repeat(5, calc(var(--space-unit) * 3))}:host,*{box-sizing:border-box}button{--border-color:var(--color-surface05);padding:0;border:none;appearance:none;background:none;border-radius:var(--border-radius);cursor:pointer}button[data-color="#FFFFFF00"]{position:relative}button[data-color="#FFFFFF00"]::after{position:absolute;top:0;right:0;width:100%;height:100%;background:linear-gradient( -45deg, transparent 48%, var(--border-color) 48%, var(--border-color) 52%, transparent 52% );border-radius:var(--border-radius);content:""}button[aria-selected="true"]{box-shadow:0 0 0 1px var(--color-white), 0 0 0 3px var(--color-active-primary)}button:focus-visible{box-shadow:var(--shadow-focus-primary)}button .color-swatch{width:calc(var(--space-unit) * 3);height:calc(var(--space-unit) * 3);border:var(--border-size-small) solid var(--border-color);border-radius:var(--border-radius)}button[data-color="#FFFFFF00"]:disabled{--border-color:var(--color-disabled01-icon);cursor:not-allowed}button[data-color="#FFFFFF00"]:disabled .color-swatch{background-color:var(--color-disabled02)}`;const n={it:{"Select a color":"Seleziona un colore","Color swatch":"Campione di colore"},en:{"Select a color":"Select a color","Color swatch":"Color swatch"}};const d=5;const h=9;const u=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.colorSelected=o(this,"colorSelected",7);this.lng="it";this.disableTransparent=false;this.colorKeysByRow=[];this._colorButtons=[]}get colorButtons(){if(!this._colorButtons.length){this._colorButtons=Array.from(this.host.shadowRoot.querySelectorAll("button"))}return this._colorButtons}sortColorKeysByRow(){const t=Object.keys(i);const e=[];for(let o=0;o<d;o++){for(let r=0;r<h;r++){const a=r*d+o;if(a<t.length){e.push(t[a])}}}return e}moveFocusTo(t){this.colorButtons.forEach(((e,o)=>e.tabIndex=o===t?0:-1));this.colorButtons[t].focus()}validateTransparentSelection(){if(this.disableTransparent&&this.selectedColor==="#FFFFFF00"){this.selectedColor="#333333"}}emitColorSelected(){this.colorSelected.emit(this.selectedColor)}async setFocus(){this.colorButtons.forEach((t=>t.tabIndex=-1));const t=this.colorButtons.find((t=>t.ariaSelected==="true"))||this.colorButtons.find((t=>!t.disabled));if(!t){return}t.tabIndex=0;setTimeout((()=>{t.focus()}),50);this.host.tabIndex=-1}getNextIndexByKey(t,e,o){const r=Math.floor(t/h);const a=t%h;let s=t;switch(e){case"ArrowRight":{const t=a+1;const e=t>=h?(r+1)%d:r;s=e*h+t%h;if(s>=o){s=0}break}case"ArrowLeft":{const t=a-1;const e=t<0?(r-1+d)%d:r;s=e*h+(t+h)%h;if(s>=o){s=o-1}break}case"ArrowDown":{let t=r+1;let e=a;if(t>=d){t=0;e=(a+1)%h}s=t*h+e;if(s>=o){s=0}break}case"ArrowUp":{let t=r-1;let e=a;if(t<0){t=d-1;e=(a-1+h)%h}s=t*h+e;if(s>=o){s=o-1}break}}return s}handleKeyDown(t){var e,o;const r=t.composedPath()[0];if(!r.dataset.color){return}const a=this.colorButtons.indexOf(r);const s=this.colorButtons.length;if(a<0||!["ArrowRight","ArrowLeft","ArrowDown","ArrowUp"].includes(t.key)){return}let i=a;let l=0;do{i=this.getNextIndexByKey(i,t.key,s);l++}while(l<s&&((e=this.colorButtons[i])===null||e===void 0?void 0:e.disabled));if(i!==a&&i>=0&&i<s&&!((o=this.colorButtons[i])===null||o===void 0?void 0:o.disabled)){this.moveFocusTo(i);t.preventDefault();t.stopPropagation()}}handleBlur(t){const e=t.relatedTarget;if(!l(this.host,e)){this.host.tabIndex=0;this.colorButtons.forEach((t=>t.tabIndex=-1))}}componentWillLoad(){this.colorKeysByRow=this.sortColorKeysByRow()}render(){return r(a,{key:"
|
|
1
|
+
import{proxyCustomElement as t,HTMLElement as e,createEvent as o,h as r,Host as a,transformTag as s}from"@stencil/core/internal/client";import{a2 as i}from"./index2.js";import{a as l}from"./utils.js";const c=()=>`:host{display:grid;width:fit-content;padding:calc(var(--space-unit) * 2);background:var(--color-surface01);gap:var(--space-unit);grid-template-columns:repeat(9, calc(var(--space-unit) * 3));grid-template-rows:repeat(5, calc(var(--space-unit) * 3))}:host,*{box-sizing:border-box}button{--border-color:var(--color-surface05);padding:0;border:none;appearance:none;background:none;border-radius:var(--border-radius);cursor:pointer}button[data-color="#FFFFFF00"]{position:relative}button[data-color="#FFFFFF00"]::after{position:absolute;top:0;right:0;width:100%;height:100%;background:linear-gradient( -45deg, transparent 48%, var(--border-color) 48%, var(--border-color) 52%, transparent 52% );border-radius:var(--border-radius);content:""}button[aria-selected="true"]{box-shadow:0 0 0 1px var(--color-white), 0 0 0 3px var(--color-active-primary)}button:focus-visible{box-shadow:var(--shadow-focus-primary)}button .color-swatch{width:calc(var(--space-unit) * 3);height:calc(var(--space-unit) * 3);border:var(--border-size-small) solid var(--border-color);border-radius:var(--border-radius)}button[data-color="#FFFFFF00"]:disabled{--border-color:var(--color-disabled01-icon);cursor:not-allowed}button[data-color="#FFFFFF00"]:disabled .color-swatch{background-color:var(--color-disabled02)}`;const n={it:{"Select a color":"Seleziona un colore","Color swatch":"Campione di colore"},en:{"Select a color":"Select a color","Color swatch":"Color swatch"}};const d=5;const h=9;const u=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.colorSelected=o(this,"colorSelected",7);this.lng="it";this.disableTransparent=false;this.colorKeysByRow=[];this._colorButtons=[]}get colorButtons(){if(!this._colorButtons.length){this._colorButtons=Array.from(this.host.shadowRoot.querySelectorAll("button"))}return this._colorButtons}sortColorKeysByRow(){const t=Object.keys(i);const e=[];for(let o=0;o<d;o++){for(let r=0;r<h;r++){const a=r*d+o;if(a<t.length){e.push(t[a])}}}return e}moveFocusTo(t){this.colorButtons.forEach(((e,o)=>e.tabIndex=o===t?0:-1));this.colorButtons[t].focus()}validateTransparentSelection(){if(this.disableTransparent&&this.selectedColor==="#FFFFFF00"){this.selectedColor="#333333"}}emitColorSelected(){this.colorSelected.emit(this.selectedColor)}async setFocus(){this.colorButtons.forEach((t=>t.tabIndex=-1));const t=this.colorButtons.find((t=>t.ariaSelected==="true"))||this.colorButtons.find((t=>!t.disabled));if(!t){return}t.tabIndex=0;setTimeout((()=>{t.focus()}),50);this.host.tabIndex=-1}getNextIndexByKey(t,e,o){const r=Math.floor(t/h);const a=t%h;let s=t;switch(e){case"ArrowRight":{const t=a+1;const e=t>=h?(r+1)%d:r;s=e*h+t%h;if(s>=o){s=0}break}case"ArrowLeft":{const t=a-1;const e=t<0?(r-1+d)%d:r;s=e*h+(t+h)%h;if(s>=o){s=o-1}break}case"ArrowDown":{let t=r+1;let e=a;if(t>=d){t=0;e=(a+1)%h}s=t*h+e;if(s>=o){s=0}break}case"ArrowUp":{let t=r-1;let e=a;if(t<0){t=d-1;e=(a-1+h)%h}s=t*h+e;if(s>=o){s=o-1}break}}return s}handleKeyDown(t){var e,o;const r=t.composedPath()[0];if(!r.dataset.color){return}const a=this.colorButtons.indexOf(r);const s=this.colorButtons.length;if(a<0||!["ArrowRight","ArrowLeft","ArrowDown","ArrowUp"].includes(t.key)){return}let i=a;let l=0;do{i=this.getNextIndexByKey(i,t.key,s);l++}while(l<s&&((e=this.colorButtons[i])===null||e===void 0?void 0:e.disabled));if(i!==a&&i>=0&&i<s&&!((o=this.colorButtons[i])===null||o===void 0?void 0:o.disabled)){this.moveFocusTo(i);t.preventDefault();t.stopPropagation()}}handleBlur(t){const e=t.relatedTarget;if(!l(this.host,e)){this.host.tabIndex=0;this.colorButtons.forEach((t=>t.tabIndex=-1))}}componentWillLoad(){this.colorKeysByRow=this.sortColorKeysByRow()}render(){return r(a,{key:"aa2fb04330c5c76e4a0d10e4bb519d388af2d2d9",role:"listbox","aria-label":this.htmlAriaLabel||n[this.lng]["Select a color"],tabIndex:0},this.colorKeysByRow.map((t=>{var e;return r("button",{class:"color-swatch","data-color":t,role:"option","aria-selected":((e=this.selectedColor)===null||e===void 0?void 0:e.toUpperCase())===t.toUpperCase()?"true":"false",tabIndex:-1,onClick:()=>this.selectedColor=t,disabled:this.disableTransparent&&t==="#FFFFFF00"},r("div",{class:"color-swatch",role:"img","aria-roledescription":n[this.lng]["Color swatch"],"aria-label":i[t][this.lng],title:i[t][this.lng],style:{backgroundColor:t}}))})))}get host(){return this}static get watchers(){return{disableTransparent:[{validateTransparentSelection:0}],selectedColor:[{validateTransparentSelection:0},{emitColorSelected:0}]}}static get style(){return c()}},[1,"z-color-picker",{selectedColor:[1025,"selected-color"],lng:[1],htmlAriaLabel:[1,"html-aria-label"],disableTransparent:[4,"disable-transparent"],setFocus:[64]},[[0,"focus","setFocus"],[0,"keydown","handleKeyDown"],[0,"blur","handleBlur"]],{disableTransparent:[{validateTransparentSelection:0}],selectedColor:[{validateTransparentSelection:0},{emitColorSelected:0}]}]);function b(){if(typeof customElements==="undefined"){return}const t=["z-color-picker"];t.forEach((t=>{switch(t){case"z-color-picker":if(!customElements.get(s(t))){customElements.define(s(t),u)}break}}))}const p=u;const F=b;export{p as ZColorPicker,F as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=z-color-picker.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{proxyCustomElement as e,HTMLElement as t,createEvent as i,h as s,transformTag as o}from"@stencil/core/internal/client";import{e as a,I as r,i as n,g as l,l as c}from"./index2.js";import{r as h,e as d,b as p}from"./utils.js";import{d as m}from"./index5.js";import{d as u}from"./index3.js";import{d as b}from"./index6.js";import{d as v}from"./index7.js";import{d as f}from"./index9.js";import{d as g}from"./index10.js";const x=()=>`.z-label{display:block;padding-bottom:var(--space-unit);color:var(--color-default-text);font-family:var(--font-family-sans);font-size:var(--font-size-1);font-weight:var(--font-sb);text-align:left;text-transform:uppercase}`;const z=()=>`:host{display:block;min-width:290px;color:var(--color-form-default-text);fill:var(--color-form-default-icon);font-family:var(--font-family-sans)}:host>div.fixed{position:relative}:host>div>.header{position:relative;z-index:10;display:flex;min-height:42px;align-items:center;justify-content:space-between;padding:0 calc(var(--space-unit) * 1.5);border:var(--border-size-small) solid var(--color-form-surface04);margin:0;background-color:var(--color-form-background);border-radius:var(--border-radius-small);cursor:pointer}:host([size="small"])>div>.header{min-height:34px;font-size:var(--font-size-2)}:host([size="x-small"])>div>.header{min-height:30px;font-size:var(--font-size-2)}:host>div>.header:hover{outline:var(--border-size-medium) solid var(--color-form-surface04);outline-offset:-2px}:host>div>div.header:focus:focus-visible{z-index:16;box-shadow:var(--shadow-focus-primary);outline:none}:host>div>.header>span.body-3>span{font-weight:var(--font-sb)}:host>div>.header>z-icon{fill:var(--color-form-default-icon);transform:rotate(360deg);transition:all 200ms linear}:host>div>.header>z-icon.small,:host>div>.header>z-icon.x-small{--z-icon-width:16px;--z-icon-height:16px}:host>div.open>.header{border:var(--border-size-small) solid var(--color-form-active-primary);border-radius:var(--border-radius-small) var(--border-radius-small) 0 0}:host>div.disabled{pointer-events:none}:host>div.disabled .header{border-color:var(--color-form-disabled03);fill:var(--color-form-disabled01-icon)}:host>div.disabled .header>span.body-3{color:var(--color-form-disabled03)}:host>div.disabled .header>z-icon:last-child{fill:var(--color-form-disabled01-icon)}:host>div.open>.header>z-icon{fill:var(--color-form-default-icon);transform:rotate(180deg);transition:all 200ms linear}:host>div>div.open-combo-data{display:none}:host>div.open>div.open-combo-data{position:relative;z-index:12;display:block;padding:var(--space-unit) calc(var(--space-unit) * 2);border:var(--border-size-small) solid var(--color-form-surface03);border-top:0;background-color:var(--color-form-background);border-radius:0;box-shadow:var(--shadow-2)}:host .open .open-combo-data z-input .z-label{color:var(--color-form-default-text)}:host>div.open>div.open-combo-data>div>div{overflow:auto;max-height:235px;padding:0;padding-left:var(--space-unit);margin-left:calc(var(--space-unit) * -1);}:host>div.open>div.open-combo-data>z-input{width:100%;margin-bottom:calc(var(--space-unit) * 2)}:host>div.open>div.open-combo-data>div>div>ul{max-height:235px;padding:0 calc(var(--space-unit) * 0.5);margin:0}:host .open-combo-data z-list-element{--background-color-list-element:var(--color-form-background);--background-hover-color-list-element:var(--color-form-surface03);--background-active-color-list-element:var(--color-form-surface03)}:host .open-combo-data z-list-element[disabled]{pointer-events:none}:host .open-combo-data z-list-element .option-wrap{display:flex;flex-direction:row;align-items:center;cursor:pointer;gap:var(--space-unit)}:host .open-combo-data z-list-element[size="medium"] .option-wrap,:host .open-combo-data z-list-element[size="small"] .option-wrap{--z-icon-width:16px;--z-icon-height:16px;font-size:var(--font-size-2);gap:calc(var(--space-unit) / 2)}:host .open-combo-data z-list-element .option-wrap>z-icon{fill:var(--color-primary01-icon)}:host .open-combo-data z-list-element[disabled] .option-wrap>z-icon{fill:var(--color-disabled01)}:host .open-combo-data z-list-element .option-wrap>z-icon.focused{border-radius:var(--border-radius-small);box-shadow:var(--shadow-focus-primary);outline:none}:host .open-combo-data z-list-element .option-wrap>[role="option"]:focus,:host .open-combo-data z-list-element .option-wrap>[role="option"]:focus-visible{outline:none}::-webkit-scrollbar{width:6px;background:linear-gradient(to right, transparent 0 1px, var(--gray200) 1px 5px, transparent 5px 6px)}::-webkit-scrollbar-thumb{background-color:var(--color-primary01)}::-webkit-scrollbar-thumb:hover{background-color:var(--color-hover-primary)}@supports not selector(::-webkit-scrollbar-track){:host{scrollbar-color:var(--color-primary01) transparent}}:host>div.open>z-input{position:relative;z-index:1;width:238px;margin:0 calc(var(--space-unit) * 2);color:var(--color-form-active-primary)}:host>div.open>div.open-combo-data>div>div.search{overflow:hidden;max-height:none;margin-top:0}:host>div.open>div.open-combo-data>div>div.search>ul{overflow:auto;max-height:180px;padding:var(--space-unit) calc(var(--space-unit) * 2)}:host .open .open-combo-data .search .no-results{display:flex;align-items:center;column-gap:var(--space-unit)}:host>.open>.open-combo-data .search .close-search{display:flex;justify-content:center}:host>div.open>div.open-combo-data>div>div.search .close-search>a{display:inline-block;height:44px;color:var(--color-form-active-primary);cursor:pointer;font-size:14px;font-weight:var(--font-sb);line-height:44px;text-align:center;text-transform:uppercase}:host>div.open>div.open-combo-data>div>div.search .close-search>a:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}:host>div.open>div.open-combo-data>div>div.check-all-wrapper{padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5) calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.5);border-bottom:var(--border-size-small) solid var(--gray800);margin-bottom:var(--space-unit);margin-left:calc(var(--space-unit) * -1);text-align:left}:host([size="small"])>div.open>div.open-combo-data>div>div.check-all-wrapper{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 0.5)}:host([size="x-small"])>div.open>div.open-combo-data>div>div.check-all-wrapper{padding:var(--space-unit) calc(var(--space-unit) * 0.5)}`;const k=e(class e extends t{watchItems(){this.itemsList=typeof this.items==="string"?JSON.parse(this.items):this.items;this.selectedCounter=this.itemsList.filter((e=>e.checked)).length;this.updateRenderItemsList()}watchSearchValue(){this.filterItems(this.searchValue)}emitComboboxChange(){this.comboboxChange.emit({id:this.inputid,items:this.itemsList})}constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.comboboxChange=i(this,"comboboxChange",7);this.inputid=`combo-${h()}`;this.disabled=false;this.hassearch=false;this.noresultslabel="Nessun risultato";this.isopen=false;this.isfixed=false;this.hascheckall=false;this.checkalltext="Seleziona tutti";this.uncheckalltext="Deseleziona tutti";this.maxcheckableitems=0;this.size=a.BIG;this.renderItemsList=[];this.focusedItemId="";this.itemsList=[];this.inputType=r.TEXT;this.toggleComboBox=this.toggleComboBox.bind(this);this.closeFilterItems=this.closeFilterItems.bind(this)}componentWillLoad(){this.watchItems()}componentWillRender(){this.selectedCounter=this.itemsList.filter((e=>e.checked)).length}getControlToListSize(){switch(this.size){case a.X_SMALL:return n.SMALL;case a.SMALL:return n.MEDIUM;default:return n.LARGE}}getOptionId(e){return`${this.inputid}-option-${e.id?d(`${e.id}`):d(`${e.name}`)}`}getCheckAllOptionId(){return`${this.inputid}-check-all`}allOptionsSelected(){return this.selectedCounter===this.itemsList.length}hasReachedMaxSelections(){return!!(this.maxcheckableitems&&this.selectedCounter>=this.maxcheckableitems)}handleHeaderKeyDown(e){if(e.code===l.ENTER&&!this.focusedItemId){this.toggleComboBox()}if(!this.isopen||this.hassearch){return}switch(e.code){case l.SPACE:case l.ENTER:if(this.focusedItemId){e.preventDefault();this.checkOption(this.focusedItemId)}break;case l.ESC:if(this.focusedItemId){this.focusedItemId=""}break;case l.ARROW_DOWN:case l.ARROW_UP:this.handleArrowsNavigation(e);break}}handleInputKeyDown(e){switch(e.code){case l.ENTER:case l.SPACE:if(this.focusedItemId){e.preventDefault();this.checkOption(this.focusedItemId);break}break;case l.ARROW_DOWN:case l.ARROW_UP:this.handleArrowsNavigation(e);break;case l.ESC:if(this.focusedItemId){this.focusedItemId="";break}this.closeFilterItems();break;case l.TAB:this.focusedItemId="";break}}checkOption(e){if(e===this.getCheckAllOptionId()){this.itemsList=this.itemsList.map((e=>Object.assign(Object.assign({},e),{checked:!this.allOptionsSelected()})));this.focusedItemId=this.getCheckAllOptionId()}else{this.itemsList=this.itemsList.map((t=>{if(e===this.getOptionId(t)){t.checked=!t.checked}return t}))}this.updateRenderItemsList();this.emitComboboxChange()}handleArrowsNavigation(e){if(![l.ARROW_DOWN,l.ARROW_UP].includes(e.code)||!this.isopen){return}e.preventDefault();e.stopPropagation();const t=this.focusedItemId?this.element.shadowRoot.querySelector(`#${this.focusedItemId}`):null;const i=Array.from(this.element.shadowRoot.querySelectorAll('[role="option"]'));if(!i.length){return}const s=t?i.indexOf(t):null;const o=0;const a=i.length-1;let r=null;if(e.code===l.ARROW_DOWN){r=s===null?i[o]:i[s+1]||i[a]}else if(e.code===l.ARROW_UP){r=s===null?i[a]:i[s-1]||i[o]}this.focusedItemId=r.id;r.scrollIntoView({block:"nearest",container:"nearest"})}updateRenderItemsList(){if(this.searchValue){this.filterItems(this.searchValue)}else{this.resetRenderItemsList()}}resetRenderItemsList(){const e=[];this.itemsList.forEach((t=>{e.push(Object.assign({},t))}));this.renderItemsList=e}filterItems(e){if(!e){return this.closeFilterItems()}this.resetRenderItemsList();this.renderItemsList=this.renderItemsList.filter((t=>{const i=t.name.toUpperCase().indexOf(e.toUpperCase());const s=i+e.length;const o=t.name.substring(0,i)+"<strong>"+t.name.substring(i,s)+"</strong>"+t.name.substring(s,t.name.length);t.name=o;return i>=0}))}closeFilterItems(){this.searchValue="";this.resetRenderItemsList()}toggleComboBox(){this.isopen=!this.isopen}getHeaderAriaLabel(){if(!this.label||this.selectedCounter<=0){return undefined}const e=this.selectedCounter===1?"elemento selezionato":"elementi selezionati";return`${this.label}: ${this.selectedCounter} ${e}`}getComboboxA11yAttributes(e){const t="combobox";const i=this.isopen?"true":"false";const s=this.isopen?this.focusedItemId:"";const o=`${this.inputid}_list`;if(e){return{role:t,"aria-label":this.htmlAriaLabel,"html-aria-expanded":i,"html-aria-activedescendant":s,"html-aria-controls":o}}return{role:t,"aria-expanded":i,"aria-activedescendant":s,"aria-controls":o}}renderHeader(){const e=!this.hassearch?this.getComboboxA11yAttributes(false):{};return s("div",Object.assign({class:"header",onClick:()=>this.toggleComboBox(),onKeyDown:e=>this.handleHeaderKeyDown(e),role:"button",tabindex:0,"aria-controls":"open-combo-data","aria-expanded":this.isopen?"true":"false","aria-label":this.getHeaderAriaLabel()},e),s("span",{class:"body-3"},this.label,s("span",null,this.selectedCounter>0&&` (${this.selectedCounter})`)),s("z-icon",{name:"caret-down",class:this.size}))}renderContent(){return s("div",{id:"open-combo-data",class:"open-combo-data"},this.hassearch&&this.renderSearchInput(),s("div",{role:"listbox","aria-label":this.label,"aria-multiselectable":"true",id:`${this.inputid}_list`,"aria-owns":`${this.hascheckall?`${this.getCheckAllOptionId()} `:``}${this.itemsList.map((e=>this.getOptionId(e))).join(" ")}`},this.renderItems()))}renderItems(){return s("div",{class:this.searchValue&&"search",tabIndex:-1,role:"presentation"},this.renderList(this.renderItemsList))}renderItem(e,t,i){const o=this.getOptionId(e);const a=!e.checked&&this.hasReachedMaxSelections();return s("z-list-element",{htmlTabindex:-1,dividerType:t!==i-1?c.ELEMENT:c.NONE,size:this.getControlToListSize(),role:"presentation",disabled:!!a},s("span",{class:"option-wrap",role:"presentation",onClick:()=>{this.focusedItemId="";this.checkOption(o)}},s("z-icon",{name:e.checked?"checkbox-checked":"checkbox",class:this.focusedItemId===o?"focused":""}),s("span",{id:o,role:a?"presentation":"option","aria-selected":e.checked?"true":"false","aria-label":a?undefined:p(e.name)},s("span",{"aria-hidden":"true",innerHTML:e.name}))))}renderList(e){if(!e){return}if(!e.length&&this.searchValue){return this.renderNoSearchResults()}if(this.hasgroupitems){return this.renderGroups(e)}return s("ul",{role:"presentation"},this.renderCheckAll(),e.map(((t,i)=>this.renderItem(t,i,e.length))))}renderGroups(e){const t=e.reduce(((t,i,s)=>{var o;const a=i.category||"Altra categoria";const r=this.renderItem(i,s,e.length);t[a]=(o=t[a])!==null&&o!==void 0?o:[];t[a].push(r);return t}),{});const i=Object.entries(t).map((([e,t],i)=>s("z-list-group",{size:this.getControlToListSize(),"divider-type":c.ELEMENT,"aria-labelledby":`${this.inputid}_list_group_${i}`},s("span",{class:"body-3-sb z-list-group-title",slot:"header-title",id:`${this.inputid}_list_group_${i}`,"aria-hidden":"true"},e),t.map((e=>e)))));return s("ul",{role:"presentation"},this.renderCheckAll(),i)}renderNoSearchResults(){return s("div",{class:"no-results"},s("span",null,this.noresultslabel))}renderSearchInput(){return s("z-input",Object.assign({htmlid:`${this.inputid}_search`,label:this.searchlabel,placeholder:this.searchplaceholder,htmltitle:this.searchtitle,type:this.inputType,value:this.searchValue,message:false,size:this.size,"html-aria-autocomplete":"list"},this.getComboboxA11yAttributes(true),{onKeyDown:e=>this.handleInputKeyDown(e),onInputChange:e=>{this.searchValue=e.detail.value;this.focusedItemId=""}}))}renderCheckAll(){if(!this.hascheckall||this.searchValue){return}const e=this.getCheckAllOptionId();const t=this.allOptionsSelected();const i=this.selectedCounter>0&&!t;const o=!t&&(this.hasReachedMaxSelections()||this.maxcheckableitems&&this.maxcheckableitems<this.itemsList.length);return s("z-list-element",{class:"check-all-wrapper",role:"presentation",htmlTabindex:-1,dividerType:c.ELEMENT,dividerColor:"gray800",size:this.getControlToListSize(),disabled:!!o},s("span",{class:"option-wrap",role:"presentation",onClick:()=>this.checkOption(e)},s("z-icon",{name:i?"indeterminated-checkbox":t?"checkbox-checked":"checkbox",class:this.focusedItemId===e?"focused":""}),s("span",{id:e,role:o?"presentation":"option","aria-selected":t?"true":"false"},t?this.uncheckalltext:this.checkalltext)))}render(){return s("div",{key:"683f9ed203e8c3843d0e20daf0acade8a0ff1a49","data-action":`combo-${this.inputid}`,class:{open:this.isopen,fixed:this.isfixed,disabled:this.disabled},id:this.inputid},this.renderHeader(),!this.disabled&&this.renderContent())}get element(){return this}static get watchers(){return{items:[{watchItems:0}],searchValue:[{watchSearchValue:0}]}}static get style(){return x()+z()}},[1,"z-combobox",{inputid:[1],items:[1],label:[1],disabled:[516],hassearch:[4],searchlabel:[1],searchplaceholder:[1],searchtitle:[1],noresultslabel:[1],isopen:[1028],isfixed:[4],hascheckall:[4],checkalltext:[1],uncheckalltext:[1],maxcheckableitems:[2],hasgroupitems:[4],size:[1],htmlAriaLabel:[1,"html-aria-label"],searchValue:[32],selectedCounter:[32],renderItemsList:[32],focusedItemId:[32]},undefined,{items:[{watchItems:0}],searchValue:[{watchSearchValue:0}]}]);function w(){if(typeof customElements==="undefined"){return}const e=["z-combobox","z-divider","z-icon","z-input","z-input-message","z-list-element","z-list-group"];e.forEach((e=>{switch(e){case"z-combobox":if(!customElements.get(o(e))){customElements.define(o(e),k)}break;case"z-divider":if(!customElements.get(o(e))){m()}break;case"z-icon":if(!customElements.get(o(e))){u()}break;case"z-input":if(!customElements.get(o(e))){b()}break;case"z-input-message":if(!customElements.get(o(e))){v()}break;case"z-list-element":if(!customElements.get(o(e))){f()}break;case"z-list-group":if(!customElements.get(o(e))){g()}break}}))}const y=k;const $=w;export{y as ZCombobox,$ as defineCustomElement};
|
|
1
|
+
import{proxyCustomElement as e,HTMLElement as t,createEvent as i,h as s,transformTag as o}from"@stencil/core/internal/client";import{e as a,I as r,i as n,g as l,l as c}from"./index2.js";import{r as h,e as d,b as p}from"./utils.js";import{d as m}from"./index5.js";import{d as u}from"./index3.js";import{d as b}from"./index6.js";import{d as v}from"./index7.js";import{d as f}from"./index9.js";import{d as x}from"./index10.js";const g=()=>`.z-label{display:block;padding-bottom:var(--space-unit);color:var(--color-default-text);font-family:var(--font-family-sans);font-size:var(--font-size-1);font-weight:var(--font-sb);text-align:left;text-transform:uppercase}`;const z=()=>`:host{display:block;min-width:290px;color:var(--color-form-default-text);fill:var(--color-form-default-icon);font-family:var(--font-family-sans)}:host>div.fixed{position:relative}:host>div>.header{position:relative;z-index:10;display:flex;min-height:42px;align-items:center;justify-content:space-between;padding:0 calc(var(--space-unit) * 1.5);border:var(--border-size-small) solid var(--color-form-surface04);margin:0;background-color:var(--color-form-background);border-radius:var(--border-radius-small);cursor:pointer}:host([size="small"])>div>.header{min-height:34px;font-size:var(--font-size-2)}:host([size="x-small"])>div>.header{min-height:30px;font-size:var(--font-size-2)}:host>div>.header:hover{outline:var(--border-size-medium) solid var(--color-form-surface04);outline-offset:-2px}:host>div>div.header:focus:focus-visible{z-index:16;box-shadow:var(--shadow-focus-primary);outline:none}:host>div>.header>span.body-3>span{font-weight:var(--font-sb)}:host>div>.header>z-icon{fill:var(--color-form-default-icon)}:host>div>.header>z-icon.small,:host>div>.header>z-icon.x-small{--z-icon-width:16px;--z-icon-height:16px}:host>div.open>.header{border:var(--border-size-small) solid var(--color-form-active-primary);border-radius:var(--border-radius-small) var(--border-radius-small) 0 0}:host>div.disabled{pointer-events:none}:host>div.disabled .header{border-color:var(--color-form-disabled03);fill:var(--color-form-disabled01-icon)}:host>div.disabled .header>span.body-3{color:var(--color-form-disabled03)}:host>div.disabled .header>z-icon:last-child{fill:var(--color-form-disabled01-icon)}:host>div>div.open-combo-data{display:none}:host>div.open>div.open-combo-data{position:relative;z-index:12;display:block;padding:var(--space-unit) calc(var(--space-unit) * 2);border:var(--border-size-small) solid var(--color-form-surface03);border-top:0;background-color:var(--color-form-background);border-radius:0;box-shadow:var(--shadow-2)}:host .open .open-combo-data z-input .z-label{color:var(--color-form-default-text)}:host>div.open>div.open-combo-data>div>div{overflow:auto;max-height:235px;padding:0;padding-left:var(--space-unit);margin-left:calc(var(--space-unit) * -1);}:host>div.open>div.open-combo-data>z-input{width:100%;margin-bottom:calc(var(--space-unit) * 2)}:host>div.open>div.open-combo-data>div>div>ul{max-height:235px;padding:0 calc(var(--space-unit) * 0.5);margin:0}:host .open-combo-data z-list-element{--background-color-list-element:var(--color-form-background);--background-hover-color-list-element:var(--color-form-surface03);--background-active-color-list-element:var(--color-form-surface03)}:host .open-combo-data z-list-element[disabled]{pointer-events:none}:host .open-combo-data z-list-element .option-wrap{display:flex;flex-direction:row;align-items:center;cursor:pointer;gap:var(--space-unit)}:host .open-combo-data z-list-element[size="medium"] .option-wrap,:host .open-combo-data z-list-element[size="small"] .option-wrap{--z-icon-width:16px;--z-icon-height:16px;font-size:var(--font-size-2);gap:calc(var(--space-unit) / 2)}:host .open-combo-data z-list-element .option-wrap>z-icon{fill:var(--color-primary01-icon)}:host .open-combo-data z-list-element[disabled] .option-wrap>z-icon{fill:var(--color-disabled01)}:host .open-combo-data z-list-element .option-wrap>z-icon.focused{border-radius:var(--border-radius-small);box-shadow:var(--shadow-focus-primary);outline:none}:host .open-combo-data z-list-element .option-wrap>[role="option"]:focus,:host .open-combo-data z-list-element .option-wrap>[role="option"]:focus-visible{outline:none}::-webkit-scrollbar{width:6px;background:linear-gradient(to right, transparent 0 1px, var(--gray200) 1px 5px, transparent 5px 6px)}::-webkit-scrollbar-thumb{background-color:var(--color-primary01)}::-webkit-scrollbar-thumb:hover{background-color:var(--color-hover-primary)}@supports not selector(::-webkit-scrollbar-track){:host{scrollbar-color:var(--color-primary01) transparent}}:host>div.open>z-input{position:relative;z-index:1;width:238px;margin:0 calc(var(--space-unit) * 2);color:var(--color-form-active-primary)}:host>div.open>div.open-combo-data>div>div.search{overflow:hidden;max-height:none;margin-top:0}:host>div.open>div.open-combo-data>div>div.search>ul{overflow:auto;max-height:180px;padding:var(--space-unit) calc(var(--space-unit) * 2)}:host .open .open-combo-data .search .no-results{display:flex;align-items:center;column-gap:var(--space-unit)}:host>.open>.open-combo-data .search .close-search{display:flex;justify-content:center}:host>div.open>div.open-combo-data>div>div.search .close-search>a{display:inline-block;height:44px;color:var(--color-form-active-primary);cursor:pointer;font-size:14px;font-weight:var(--font-sb);line-height:44px;text-align:center;text-transform:uppercase}:host>div.open>div.open-combo-data>div>div.search .close-search>a:focus:focus-visible{box-shadow:var(--shadow-focus-primary);outline:none}:host>div.open>div.open-combo-data>div>div.check-all-wrapper{padding:calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5) calc(var(--space-unit) * 2) calc(var(--space-unit) * 1.5);border-bottom:var(--border-size-small) solid var(--gray800);margin-bottom:var(--space-unit);margin-left:calc(var(--space-unit) * -1);text-align:left}:host([size="small"])>div.open>div.open-combo-data>div>div.check-all-wrapper{padding:calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 0.5)}:host([size="x-small"])>div.open>div.open-combo-data>div>div.check-all-wrapper{padding:var(--space-unit) calc(var(--space-unit) * 0.5)}`;const k=e(class e extends t{watchItems(){this.itemsList=typeof this.items==="string"?JSON.parse(this.items):this.items;this.selectedCounter=this.itemsList.filter((e=>e.checked)).length;this.updateRenderItemsList()}watchSearchValue(){this.filterItems(this.searchValue)}emitComboboxChange(){this.comboboxChange.emit({id:this.inputid,items:this.itemsList})}constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.comboboxChange=i(this,"comboboxChange",7);this.inputid=`combo-${h()}`;this.disabled=false;this.hassearch=false;this.noresultslabel="Nessun risultato";this.isopen=false;this.isfixed=false;this.hascheckall=false;this.checkalltext="Seleziona tutti";this.uncheckalltext="Deseleziona tutti";this.maxcheckableitems=0;this.size=a.BIG;this.renderItemsList=[];this.focusedItemId="";this.itemsList=[];this.inputType=r.TEXT;this.toggleComboBox=this.toggleComboBox.bind(this);this.closeFilterItems=this.closeFilterItems.bind(this)}componentWillLoad(){this.watchItems()}componentWillRender(){this.selectedCounter=this.itemsList.filter((e=>e.checked)).length}getControlToListSize(){switch(this.size){case a.X_SMALL:return n.SMALL;case a.SMALL:return n.MEDIUM;default:return n.LARGE}}getOptionId(e){return`${this.inputid}-option-${e.id?d(`${e.id}`):d(`${e.name}`)}`}getCheckAllOptionId(){return`${this.inputid}-check-all`}allOptionsSelected(){return this.selectedCounter===this.itemsList.length}hasReachedMaxSelections(){return!!(this.maxcheckableitems&&this.selectedCounter>=this.maxcheckableitems)}handleHeaderKeyDown(e){if(e.code===l.ENTER&&!this.focusedItemId){this.toggleComboBox()}if(!this.isopen||this.hassearch){return}switch(e.code){case l.SPACE:case l.ENTER:if(this.focusedItemId){e.preventDefault();this.checkOption(this.focusedItemId)}break;case l.ESC:if(this.focusedItemId){this.focusedItemId=""}break;case l.ARROW_DOWN:case l.ARROW_UP:this.handleArrowsNavigation(e);break}}handleInputKeyDown(e){switch(e.code){case l.ENTER:case l.SPACE:if(this.focusedItemId){e.preventDefault();this.checkOption(this.focusedItemId);break}break;case l.ARROW_DOWN:case l.ARROW_UP:this.handleArrowsNavigation(e);break;case l.ESC:if(this.focusedItemId){this.focusedItemId="";break}this.closeFilterItems();break;case l.TAB:this.focusedItemId="";break}}checkOption(e){if(e===this.getCheckAllOptionId()){this.itemsList=this.itemsList.map((e=>Object.assign(Object.assign({},e),{checked:!this.allOptionsSelected()})));this.focusedItemId=this.getCheckAllOptionId()}else{this.itemsList=this.itemsList.map((t=>{if(e===this.getOptionId(t)){t.checked=!t.checked}return t}))}this.updateRenderItemsList();this.emitComboboxChange()}handleArrowsNavigation(e){if(![l.ARROW_DOWN,l.ARROW_UP].includes(e.code)||!this.isopen){return}e.preventDefault();e.stopPropagation();const t=this.focusedItemId?this.element.shadowRoot.querySelector(`#${this.focusedItemId}`):null;const i=Array.from(this.element.shadowRoot.querySelectorAll('[role="option"]'));if(!i.length){return}const s=t?i.indexOf(t):null;const o=0;const a=i.length-1;let r=null;if(e.code===l.ARROW_DOWN){r=s===null?i[o]:i[s+1]||i[a]}else if(e.code===l.ARROW_UP){r=s===null?i[a]:i[s-1]||i[o]}this.focusedItemId=r.id;r.scrollIntoView({block:"nearest",container:"nearest"})}updateRenderItemsList(){if(this.searchValue){this.filterItems(this.searchValue)}else{this.resetRenderItemsList()}}resetRenderItemsList(){const e=[];this.itemsList.forEach((t=>{e.push(Object.assign({},t))}));this.renderItemsList=e}filterItems(e){if(!e){return this.closeFilterItems()}this.resetRenderItemsList();this.renderItemsList=this.renderItemsList.filter((t=>{const i=t.name.toUpperCase().indexOf(e.toUpperCase());const s=i+e.length;const o=t.name.substring(0,i)+"<strong>"+t.name.substring(i,s)+"</strong>"+t.name.substring(s,t.name.length);t.name=o;return i>=0}))}closeFilterItems(){this.searchValue="";this.resetRenderItemsList()}toggleComboBox(){this.isopen=!this.isopen}getHeaderAriaLabel(){if(!this.label||this.selectedCounter<=0){return undefined}const e=this.selectedCounter===1?"elemento selezionato":"elementi selezionati";return`${this.label}: ${this.selectedCounter} ${e}`}getComboboxA11yAttributes(e){const t="combobox";const i=this.isopen?"true":"false";const s=this.isopen?this.focusedItemId:"";const o=`${this.inputid}_list`;if(e){return{role:t,"aria-label":this.htmlAriaLabel,"html-aria-expanded":i,"html-aria-activedescendant":s,"html-aria-controls":o}}return{role:t,"aria-expanded":i,"aria-activedescendant":s,"aria-controls":o}}renderHeader(){const e=!this.hassearch?this.getComboboxA11yAttributes(false):{};return s("div",Object.assign({class:"header",onClick:()=>this.toggleComboBox(),onKeyDown:e=>this.handleHeaderKeyDown(e),role:"button",tabindex:0,"aria-controls":"open-combo-data","aria-expanded":this.isopen?"true":"false","aria-label":this.getHeaderAriaLabel()},e),s("span",{class:"body-3"},this.label,s("span",null,this.selectedCounter>0&&` (${this.selectedCounter})`)),s("z-icon",{name:this.isopen?"caret-up":"caret-down",class:this.size}))}renderContent(){return s("div",{id:"open-combo-data",class:"open-combo-data"},this.hassearch&&this.renderSearchInput(),s("div",{role:"listbox","aria-label":this.label,"aria-multiselectable":"true",id:`${this.inputid}_list`,"aria-owns":`${this.hascheckall?`${this.getCheckAllOptionId()} `:``}${this.itemsList.map((e=>this.getOptionId(e))).join(" ")}`},this.renderItems()))}renderItems(){return s("div",{class:this.searchValue&&"search",tabIndex:-1,role:"presentation"},this.renderList(this.renderItemsList))}renderItem(e,t,i){const o=this.getOptionId(e);const a=!e.checked&&this.hasReachedMaxSelections();return s("z-list-element",{htmlTabindex:-1,dividerType:t!==i-1?c.ELEMENT:c.NONE,size:this.getControlToListSize(),role:"presentation",disabled:!!a},s("span",{class:"option-wrap",role:"presentation",onClick:()=>{this.focusedItemId="";this.checkOption(o)}},s("z-icon",{name:e.checked?"checkbox-checked":"checkbox",class:this.focusedItemId===o?"focused":""}),s("span",{id:o,role:a?"presentation":"option","aria-selected":e.checked?"true":"false","aria-label":a?undefined:p(e.name)},s("span",{"aria-hidden":"true",innerHTML:e.name}))))}renderList(e){if(!e){return}if(!e.length&&this.searchValue){return this.renderNoSearchResults()}if(this.hasgroupitems){return this.renderGroups(e)}return s("ul",{role:"presentation"},this.renderCheckAll(),e.map(((t,i)=>this.renderItem(t,i,e.length))))}renderGroups(e){const t=e.reduce(((t,i,s)=>{var o;const a=i.category||"Altra categoria";const r=this.renderItem(i,s,e.length);t[a]=(o=t[a])!==null&&o!==void 0?o:[];t[a].push(r);return t}),{});const i=Object.entries(t).map((([e,t],i)=>s("z-list-group",{size:this.getControlToListSize(),"divider-type":c.ELEMENT,"aria-labelledby":`${this.inputid}_list_group_${i}`},s("span",{class:"body-3-sb z-list-group-title",slot:"header-title",id:`${this.inputid}_list_group_${i}`,"aria-hidden":"true"},e),t.map((e=>e)))));return s("ul",{role:"presentation"},this.renderCheckAll(),i)}renderNoSearchResults(){return s("div",{class:"no-results"},s("span",null,this.noresultslabel))}renderSearchInput(){return s("z-input",Object.assign({htmlid:`${this.inputid}_search`,label:this.searchlabel,placeholder:this.searchplaceholder,htmltitle:this.searchtitle,type:this.inputType,value:this.searchValue,message:false,size:this.size,"html-aria-autocomplete":"list"},this.getComboboxA11yAttributes(true),{onKeyDown:e=>this.handleInputKeyDown(e),onInputChange:e=>{this.searchValue=e.detail.value;this.focusedItemId=""}}))}renderCheckAll(){if(!this.hascheckall||this.searchValue){return}const e=this.getCheckAllOptionId();const t=this.allOptionsSelected();const i=this.selectedCounter>0&&!t;const o=!t&&(this.hasReachedMaxSelections()||this.maxcheckableitems&&this.maxcheckableitems<this.itemsList.length);return s("z-list-element",{class:"check-all-wrapper",role:"presentation",htmlTabindex:-1,dividerType:c.ELEMENT,dividerColor:"gray800",size:this.getControlToListSize(),disabled:!!o},s("span",{class:"option-wrap",role:"presentation",onClick:()=>this.checkOption(e)},s("z-icon",{name:i?"indeterminated-checkbox":t?"checkbox-checked":"checkbox",class:this.focusedItemId===e?"focused":""}),s("span",{id:e,role:o?"presentation":"option","aria-selected":t?"true":"false"},t?this.uncheckalltext:this.checkalltext)))}render(){return s("div",{key:"9f1468b03c1cbe2c12aec68ab8c096b56651ebe2","data-action":`combo-${this.inputid}`,class:{open:this.isopen,fixed:this.isfixed,disabled:this.disabled},id:this.inputid},this.renderHeader(),!this.disabled&&this.renderContent())}get element(){return this}static get watchers(){return{items:[{watchItems:0}],searchValue:[{watchSearchValue:0}]}}static get style(){return g()+z()}},[1,"z-combobox",{inputid:[1],items:[1],label:[1],disabled:[516],hassearch:[4],searchlabel:[1],searchplaceholder:[1],searchtitle:[1],noresultslabel:[1],isopen:[1028],isfixed:[4],hascheckall:[4],checkalltext:[1],uncheckalltext:[1],maxcheckableitems:[2],hasgroupitems:[4],size:[1],htmlAriaLabel:[1,"html-aria-label"],searchValue:[32],selectedCounter:[32],renderItemsList:[32],focusedItemId:[32]},undefined,{items:[{watchItems:0}],searchValue:[{watchSearchValue:0}]}]);function w(){if(typeof customElements==="undefined"){return}const e=["z-combobox","z-divider","z-icon","z-input","z-input-message","z-list-element","z-list-group"];e.forEach((e=>{switch(e){case"z-combobox":if(!customElements.get(o(e))){customElements.define(o(e),k)}break;case"z-divider":if(!customElements.get(o(e))){m()}break;case"z-icon":if(!customElements.get(o(e))){u()}break;case"z-input":if(!customElements.get(o(e))){b()}break;case"z-input-message":if(!customElements.get(o(e))){v()}break;case"z-list-element":if(!customElements.get(o(e))){f()}break;case"z-list-group":if(!customElements.get(o(e))){x()}break}}))}const y=k;const $=w;export{y as ZCombobox,$ as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=z-combobox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["stylesCss","ZCombobox","__stencil_proxyCustomElement","HTMLElement","watchItems","this","itemsList","items","JSON","parse","selectedCounter","filter","item","checked","length","updateRenderItemsList","watchSearchValue","filterItems","searchValue","emitComboboxChange","comboboxChange","emit","id","inputid","constructor","registerHost","randomId","disabled","hassearch","noresultslabel","isopen","isfixed","hascheckall","checkalltext","uncheckalltext","maxcheckableitems","size","ControlSize","BIG","renderItemsList","focusedItemId","inputType","InputType","TEXT","toggleComboBox","bind","closeFilterItems","componentWillLoad","componentWillRender","getControlToListSize","X_SMALL","ListSize","SMALL","MEDIUM","LARGE","getOptionId","encodeString","name","getCheckAllOptionId","allOptionsSelected","hasReachedMaxSelections","handleHeaderKeyDown","e","code","KeyboardCode","ENTER","SPACE","preventDefault","checkOption","ESC","ARROW_DOWN","ARROW_UP","handleArrowsNavigation","handleInputKeyDown","TAB","optionId","map","Object","assign","i","includes","stopPropagation","currElem","element","shadowRoot","querySelector","options","Array","from","querySelectorAll","currElemIndex","indexOf","firstElemIndex","lastElemIndex","nextElem","scrollIntoView","block","container","resetRenderItemsList","forEach","push","value","start","toUpperCase","end","newName","substring","getHeaderAriaLabel","label","undefined","suffix","getComboboxA11yAttributes","isZInput","role","ariaExpanded","ariaActivedescendant","ariaControls","htmlAriaLabel","renderHeader","comboboxA11yAttributes","h","class","onClick","onKeyDown","tabindex","renderContent","renderSearchInput","join","renderItems","tabIndex","renderList","renderItem","index","isDisabled","htmlTabindex","dividerType","ListDividerType","ELEMENT","NONE","getPlainText","innerHTML","renderNoSearchResults","hasgroupitems","renderGroups","renderCheckAll","newData","reduce","group","category","zListItem","_a","listGroups","entries","key","slot","htmlid","searchlabel","placeholder","searchplaceholder","htmltitle","searchtitle","type","message","onInputChange","detail","allChecked","isPartiallySelected","dividerColor","render","open","fixed"],"sources":["src/components/css-components/z-label/styles.css?tag=z-combobox&encapsulation=shadow","src/components/z-combobox/styles.css?tag=z-combobox&encapsulation=shadow","src/components/z-combobox/index.tsx"],"sourcesContent":[".z-label {\n display: block;\n padding-bottom: var(--space-unit);\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-size: var(--font-size-1);\n font-weight: var(--font-sb);\n text-align: left;\n text-transform: uppercase;\n}\n",":host {\n display: block;\n min-width: 290px;\n color: var(--color-form-default-text);\n fill: var(--color-form-default-icon);\n font-family: var(--font-family-sans);\n}\n\n:host > div.fixed {\n position: relative;\n}\n\n:host > div > .header {\n position: relative;\n z-index: 10;\n display: flex;\n min-height: 42px;\n align-items: center;\n justify-content: space-between;\n padding: 0 calc(var(--space-unit) * 1.5);\n border: var(--border-size-small) solid var(--color-form-surface04);\n margin: 0;\n background-color: var(--color-form-background);\n border-radius: var(--border-radius-small);\n cursor: pointer;\n}\n\n:host([size=\"small\"]) > div > .header {\n min-height: 34px;\n font-size: var(--font-size-2);\n}\n\n:host([size=\"x-small\"]) > div > .header {\n min-height: 30px;\n font-size: var(--font-size-2);\n}\n\n:host > div > .header:hover {\n outline: var(--border-size-medium) solid var(--color-form-surface04);\n outline-offset: -2px;\n}\n\n:host > div > div.header:focus:focus-visible {\n z-index: 16;\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host > div > .header > span.body-3 > span {\n font-weight: var(--font-sb);\n}\n\n:host > div > .header > z-icon {\n fill: var(--color-form-default-icon);\n transform: rotate(360deg);\n transition: all 200ms linear;\n}\n\n:host > div > .header > z-icon.small,\n:host > div > .header > z-icon.x-small {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n}\n\n:host > div.open > .header {\n border: var(--border-size-small) solid var(--color-form-active-primary);\n border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;\n}\n\n:host > div.disabled {\n pointer-events: none;\n}\n\n:host > div.disabled .header {\n border-color: var(--color-form-disabled03);\n fill: var(--color-form-disabled01-icon);\n}\n\n:host > div.disabled .header > span.body-3 {\n color: var(--color-form-disabled03);\n}\n\n:host > div.disabled .header > z-icon:last-child {\n fill: var(--color-form-disabled01-icon);\n}\n\n:host > div.open > .header > z-icon {\n fill: var(--color-form-default-icon);\n transform: rotate(180deg);\n transition: all 200ms linear;\n}\n\n:host > div > div.open-combo-data {\n display: none;\n}\n\n:host > div.open > div.open-combo-data {\n position: relative;\n z-index: 12;\n display: block;\n padding: var(--space-unit) calc(var(--space-unit) * 2);\n border: var(--border-size-small) solid var(--color-form-surface03);\n border-top: 0;\n background-color: var(--color-form-background);\n border-radius: 0;\n box-shadow: var(--shadow-2);\n}\n\n:host .open .open-combo-data z-input .z-label {\n color: var(--color-form-default-text);\n}\n\n:host > div.open > div.open-combo-data > div > div {\n overflow: auto;\n max-height: 235px;\n padding: 0;\n padding-left: var(--space-unit); /* padding left and negative margin in order to enable focus */\n margin-left: calc(var(--space-unit) * -1); /* padding left and negative margin in order to enable focus */\n}\n\n:host > div.open > div.open-combo-data > z-input {\n width: 100%;\n margin-bottom: calc(var(--space-unit) * 2);\n}\n\n:host > div.open > div.open-combo-data > div > div > ul {\n max-height: 235px;\n padding: 0 calc(var(--space-unit) * 0.5); /* needed for checkbox focus shadow */\n margin: 0;\n}\n\n:host .open-combo-data z-list-element {\n --background-color-list-element: var(--color-form-background);\n --background-hover-color-list-element: var(--color-form-surface03);\n --background-active-color-list-element: var(--color-form-surface03);\n}\n\n:host .open-combo-data z-list-element[disabled] {\n pointer-events: none;\n}\n\n:host .open-combo-data z-list-element .option-wrap {\n display: flex;\n flex-direction: row;\n align-items: center;\n cursor: pointer;\n gap: var(--space-unit);\n}\n\n:host .open-combo-data z-list-element[size=\"medium\"] .option-wrap,\n:host .open-combo-data z-list-element[size=\"small\"] .option-wrap {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n\n font-size: var(--font-size-2);\n gap: calc(var(--space-unit) / 2);\n}\n\n:host .open-combo-data z-list-element .option-wrap > z-icon {\n fill: var(--color-primary01-icon);\n}\n\n:host .open-combo-data z-list-element[disabled] .option-wrap > z-icon {\n fill: var(--color-disabled01);\n}\n\n:host .open-combo-data z-list-element .option-wrap > z-icon.focused {\n border-radius: var(--border-radius-small);\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host .open-combo-data z-list-element .option-wrap > [role=\"option\"]:focus,\n:host .open-combo-data z-list-element .option-wrap > [role=\"option\"]:focus-visible {\n outline: none;\n}\n\n::-webkit-scrollbar {\n width: 6px;\n background: linear-gradient(to right, transparent 0 1px, var(--gray200) 1px 5px, transparent 5px 6px);\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--color-primary01);\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--color-hover-primary);\n}\n\n/* Firefox scrollbar */\n@supports not selector(::-webkit-scrollbar-track) {\n :host {\n scrollbar-color: var(--color-primary01) transparent;\n }\n}\n\n:host > div.open > z-input {\n position: relative;\n z-index: 1;\n width: 238px;\n margin: 0 calc(var(--space-unit) * 2);\n color: var(--color-form-active-primary);\n}\n\n:host > div.open > div.open-combo-data > div > div.search {\n overflow: hidden;\n max-height: none;\n margin-top: 0;\n}\n\n:host > div.open > div.open-combo-data > div > div.search > ul {\n overflow: auto;\n max-height: 180px;\n padding: var(--space-unit) calc(var(--space-unit) * 2);\n}\n\n:host .open .open-combo-data .search .no-results {\n display: flex;\n align-items: center;\n column-gap: var(--space-unit);\n}\n\n:host > .open > .open-combo-data .search .close-search {\n display: flex;\n justify-content: center;\n}\n\n:host > div.open > div.open-combo-data > div > div.search .close-search > a {\n display: inline-block;\n height: 44px;\n color: var(--color-form-active-primary);\n cursor: pointer;\n font-size: 14px;\n font-weight: var(--font-sb);\n line-height: 44px;\n text-align: center;\n text-transform: uppercase;\n}\n\n:host > div.open > div.open-combo-data > div > div.search .close-search > a:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host > div.open > div.open-combo-data > div > div.check-all-wrapper {\n /* padding left and negative margin in order to enable focus */\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5) calc(var(--space-unit) * 2)\n calc(var(--space-unit) * 1.5);\n border-bottom: var(--border-size-small) solid var(--gray800);\n margin-bottom: var(--space-unit);\n margin-left: calc(var(--space-unit) * -1);\n text-align: left;\n}\n\n:host([size=\"small\"]) > div.open > div.open-combo-data > div > div.check-all-wrapper {\n padding: calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 0.5);\n}\n\n:host([size=\"x-small\"]) > div.open > div.open-combo-data > div > div.check-all-wrapper {\n padding: var(--space-unit) calc(var(--space-unit) * 0.5);\n}\n","import {Component, ComponentInterface, Element, Event, EventEmitter, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ComboItem, ControlSize, InputType, KeyboardCode, ListDividerType, ListSize} from \"../../beans\";\nimport {encodeString, getPlainText, randomId} from \"../../utils/utils\";\nimport {ZInput} from \"../z-input\";\n\n@Component({\n tag: \"z-combobox\",\n styleUrls: [\"../css-components/z-label/styles.css\", \"styles.css\"],\n shadow: true,\n})\nexport class ZCombobox implements ComponentInterface {\n @Element() element: HTMLZComboboxElement;\n\n /** input unique id */\n @Prop()\n inputid = `combo-${randomId()}`;\n\n /** list items array */\n @Prop()\n items: ComboItem[] | string;\n\n /** label text */\n @Prop()\n label: string;\n\n /** the combobox is disabled */\n @Prop({reflect: true})\n disabled?: boolean = false;\n\n /** show search input flag (optional) */\n @Prop()\n hassearch?: boolean = false;\n\n /** search input label text (optional) */\n @Prop()\n searchlabel?: string;\n\n /** search input placeholder text (optional) */\n @Prop()\n searchplaceholder?: string;\n\n /** search input title text (optional) */\n @Prop()\n searchtitle?: string;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** toggle combo list opening flag */\n @Prop({mutable: true})\n isopen = false;\n\n /** fixed style flag */\n @Prop()\n isfixed = false;\n\n /** show \"check all\" checkbox (optional) */\n @Prop()\n hascheckall?: boolean = false;\n\n /** check all label (optional) */\n @Prop()\n checkalltext?: string = \"Seleziona tutti\";\n\n /** uncheck all label (optional) */\n @Prop()\n uncheckalltext?: string = \"Deseleziona tutti\";\n\n /** max number of checkable items (0 = unlimited) */\n @Prop()\n maxcheckableitems = 0;\n\n /** group items by category */\n @Prop()\n hasgroupitems?: boolean;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n /** the combobox aria-label */\n @Prop()\n htmlAriaLabel?: string;\n\n @State()\n searchValue: string;\n\n @State()\n selectedCounter: number;\n\n @State()\n renderItemsList: ComboItem[] = []; // used for render only\n\n @State()\n focusedItemId = \"\";\n\n private itemsList: ComboItem[] = [];\n\n private inputType: InputType = InputType.TEXT;\n\n @Watch(\"items\")\n watchItems(): void {\n this.itemsList = typeof this.items === \"string\" ? JSON.parse(this.items) : this.items;\n this.selectedCounter = this.itemsList.filter((item) => item.checked).length;\n this.updateRenderItemsList();\n }\n\n @Watch(\"searchValue\")\n watchSearchValue(): void {\n this.filterItems(this.searchValue);\n }\n\n /** Emitted when value is checked/unchecked. Returns id, items. */\n @Event()\n comboboxChange: EventEmitter;\n\n private emitComboboxChange(): void {\n this.comboboxChange.emit({id: this.inputid, items: this.itemsList});\n }\n\n constructor() {\n this.toggleComboBox = this.toggleComboBox.bind(this);\n this.closeFilterItems = this.closeFilterItems.bind(this);\n }\n\n componentWillLoad(): void {\n this.watchItems();\n }\n\n componentWillRender(): void {\n this.selectedCounter = this.itemsList.filter((item) => item.checked).length;\n }\n\n private getControlToListSize(): ListSize {\n switch (this.size) {\n case ControlSize.X_SMALL:\n return ListSize.SMALL;\n case ControlSize.SMALL:\n return ListSize.MEDIUM;\n default:\n return ListSize.LARGE;\n }\n }\n\n private getOptionId(item: ComboItem): string {\n return `${this.inputid}-option-${item.id ? encodeString(`${item.id}`) : encodeString(`${item.name}`)}`;\n }\n\n private getCheckAllOptionId(): string {\n return `${this.inputid}-check-all`;\n }\n\n private allOptionsSelected(): boolean {\n return this.selectedCounter === this.itemsList.length;\n }\n\n private hasReachedMaxSelections(): boolean {\n return !!(this.maxcheckableitems && this.selectedCounter >= this.maxcheckableitems);\n }\n\n private handleHeaderKeyDown(e: KeyboardEvent): void {\n if (e.code === KeyboardCode.ENTER && !this.focusedItemId) {\n this.toggleComboBox();\n }\n\n if (!this.isopen || this.hassearch) {\n return;\n }\n\n switch (e.code as KeyboardCode) {\n case KeyboardCode.SPACE:\n case KeyboardCode.ENTER:\n if (this.focusedItemId) {\n e.preventDefault();\n this.checkOption(this.focusedItemId);\n }\n break;\n case KeyboardCode.ESC:\n if (this.focusedItemId) {\n this.focusedItemId = \"\";\n }\n break;\n case KeyboardCode.ARROW_DOWN:\n case KeyboardCode.ARROW_UP:\n this.handleArrowsNavigation(e);\n break;\n }\n }\n\n private handleInputKeyDown(e: KeyboardEvent): void {\n switch (e.code as KeyboardCode) {\n case KeyboardCode.ENTER:\n case KeyboardCode.SPACE:\n if (this.focusedItemId) {\n e.preventDefault();\n this.checkOption(this.focusedItemId);\n break;\n }\n break;\n case KeyboardCode.ARROW_DOWN:\n case KeyboardCode.ARROW_UP:\n this.handleArrowsNavigation(e);\n break;\n case KeyboardCode.ESC:\n if (this.focusedItemId) {\n this.focusedItemId = \"\";\n break;\n }\n this.closeFilterItems();\n break;\n case KeyboardCode.TAB:\n this.focusedItemId = \"\";\n break;\n }\n }\n\n private checkOption(optionId: string): void {\n if (optionId === this.getCheckAllOptionId()) {\n this.itemsList = this.itemsList.map((item: ComboItem) => ({\n ...item,\n checked: !this.allOptionsSelected(),\n }));\n\n this.focusedItemId = this.getCheckAllOptionId();\n } else {\n this.itemsList = this.itemsList.map((i: ComboItem) => {\n if (optionId === this.getOptionId(i)) {\n i.checked = !i.checked;\n }\n\n return i;\n });\n }\n\n this.updateRenderItemsList();\n this.emitComboboxChange();\n }\n\n private handleArrowsNavigation(e: KeyboardEvent): void {\n if (![KeyboardCode.ARROW_DOWN, KeyboardCode.ARROW_UP].includes(e.code as KeyboardCode) || !this.isopen) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n const currElem = this.focusedItemId ? this.element.shadowRoot.querySelector(`#${this.focusedItemId}`) : null;\n const options = Array.from(this.element.shadowRoot.querySelectorAll('[role=\"option\"]'));\n\n if (!options.length) {\n return;\n }\n\n const currElemIndex = currElem ? options.indexOf(currElem) : null;\n const firstElemIndex = 0;\n const lastElemIndex = options.length - 1;\n\n let nextElem = null;\n if (e.code === KeyboardCode.ARROW_DOWN) {\n nextElem =\n currElemIndex === null ? options[firstElemIndex] : options[currElemIndex + 1] || options[lastElemIndex];\n } else if (e.code === KeyboardCode.ARROW_UP) {\n nextElem =\n currElemIndex === null ? options[lastElemIndex] : options[currElemIndex - 1] || options[firstElemIndex];\n }\n\n this.focusedItemId = nextElem.id;\n nextElem.scrollIntoView({block: \"nearest\", container: \"nearest\"});\n }\n\n private updateRenderItemsList(): void {\n if (this.searchValue) {\n this.filterItems(this.searchValue);\n } else {\n this.resetRenderItemsList();\n }\n }\n\n private resetRenderItemsList(): void {\n const renderItemsList = [];\n this.itemsList.forEach((item: ComboItem) => {\n renderItemsList.push({...item});\n });\n this.renderItemsList = renderItemsList;\n }\n\n private filterItems(value: string): void {\n if (!value) {\n return this.closeFilterItems();\n }\n\n this.resetRenderItemsList();\n this.renderItemsList = this.renderItemsList.filter((item) => {\n const start = item.name.toUpperCase().indexOf(value.toUpperCase());\n const end = start + value.length;\n const newName =\n item.name.substring(0, start) +\n \"<strong>\" +\n item.name.substring(start, end) +\n \"</strong>\" +\n item.name.substring(end, item.name.length);\n\n item.name = newName;\n\n return start >= 0;\n });\n }\n\n private closeFilterItems(): void {\n this.searchValue = \"\";\n this.resetRenderItemsList();\n }\n\n private toggleComboBox(): void {\n this.isopen = !this.isopen;\n }\n\n private getHeaderAriaLabel(): string | undefined {\n if (!this.label || this.selectedCounter <= 0) {\n return undefined;\n }\n\n const suffix = this.selectedCounter === 1 ? \"elemento selezionato\" : \"elementi selezionati\";\n\n return `${this.label}: ${this.selectedCounter} ${suffix}`;\n }\n\n private getComboboxA11yAttributes(isZInput: boolean): Record<string, string> {\n const role = \"combobox\";\n const ariaExpanded = this.isopen ? \"true\" : \"false\";\n const ariaActivedescendant = this.isopen ? this.focusedItemId : \"\";\n const ariaControls = `${this.inputid}_list`;\n\n if (isZInput) {\n return {\n \"role\": role,\n \"aria-label\": this.htmlAriaLabel,\n \"html-aria-expanded\": ariaExpanded,\n \"html-aria-activedescendant\": ariaActivedescendant,\n \"html-aria-controls\": ariaControls,\n };\n }\n\n return {\n \"role\": role,\n \"aria-expanded\": ariaExpanded,\n \"aria-activedescendant\": ariaActivedescendant,\n \"aria-controls\": ariaControls,\n };\n }\n\n private renderHeader(): HTMLDivElement {\n const comboboxA11yAttributes = !this.hassearch ? this.getComboboxA11yAttributes(false) : {};\n\n return (\n <div\n class=\"header\"\n onClick={() => this.toggleComboBox()}\n onKeyDown={(e: KeyboardEvent) => this.handleHeaderKeyDown(e)}\n role=\"button\"\n tabindex={0}\n aria-controls=\"open-combo-data\"\n aria-expanded={this.isopen ? \"true\" : \"false\"}\n aria-label={this.getHeaderAriaLabel()}\n {...comboboxA11yAttributes}\n >\n <span class=\"body-3\">\n {this.label}\n <span>{this.selectedCounter > 0 && ` (${this.selectedCounter})`}</span>\n </span>\n <z-icon\n name=\"caret-down\"\n class={this.size}\n />\n </div>\n );\n }\n\n private renderContent(): HTMLDivElement {\n return (\n <div\n id=\"open-combo-data\"\n class=\"open-combo-data\"\n >\n {this.hassearch && this.renderSearchInput()}\n <div\n role=\"listbox\"\n aria-label={this.label}\n aria-multiselectable=\"true\"\n id={`${this.inputid}_list`}\n aria-owns={`${this.hascheckall ? `${this.getCheckAllOptionId()} ` : ``}${this.itemsList.map((item) => this.getOptionId(item)).join(\" \")}`}\n >\n {this.renderItems()}\n </div>\n </div>\n );\n }\n\n private renderItems(): HTMLDivElement {\n return (\n <div\n class={this.searchValue && \"search\"}\n tabIndex={-1}\n role=\"presentation\"\n >\n {this.renderList(this.renderItemsList)}\n </div>\n );\n }\n\n private renderItem(item: ComboItem, index: number, length: number): HTMLZListElement {\n const optionId = this.getOptionId(item);\n const isDisabled = !item.checked && this.hasReachedMaxSelections();\n\n return (\n <z-list-element\n htmlTabindex={-1}\n dividerType={index !== length - 1 ? ListDividerType.ELEMENT : ListDividerType.NONE}\n size={this.getControlToListSize()}\n role=\"presentation\"\n disabled={!!isDisabled}\n >\n <span\n class=\"option-wrap\"\n role=\"presentation\"\n onClick={() => {\n this.focusedItemId = \"\";\n this.checkOption(optionId);\n }}\n >\n <z-icon\n name={item.checked ? \"checkbox-checked\" : \"checkbox\"}\n class={this.focusedItemId === optionId ? \"focused\" : \"\"}\n />\n <span\n id={optionId}\n role={isDisabled ? \"presentation\" : \"option\"}\n aria-selected={item.checked ? \"true\" : \"false\"}\n aria-label={isDisabled ? undefined : getPlainText(item.name)}\n >\n <span\n aria-hidden=\"true\"\n innerHTML={item.name}\n />\n </span>\n </span>\n </z-list-element>\n );\n }\n\n private renderList(items: ComboItem[]): HTMLUListElement {\n if (!items) {\n return;\n }\n if (!items.length && this.searchValue) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasgroupitems) {\n return this.renderGroups(items);\n }\n\n return (\n <ul role=\"presentation\">\n {this.renderCheckAll()}\n {items.map((item, i) => {\n return this.renderItem(item, i, items.length);\n })}\n </ul>\n );\n }\n\n private renderGroups(items: ComboItem[]): HTMLUListElement {\n const newData = items.reduce((group, item, index) => {\n const category = item.category || \"Altra categoria\";\n const zListItem = this.renderItem(item, index, items.length);\n\n group[category] = group[category] ?? [];\n group[category].push(zListItem);\n\n return group;\n }, {});\n\n const listGroups = Object.entries(newData as {[key: string]: HTMLZListElementElement[]}).map(\n ([key, value], index) => {\n return (\n <z-list-group\n size={this.getControlToListSize()}\n divider-type={ListDividerType.ELEMENT}\n aria-labelledby={`${this.inputid}_list_group_${index}`}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n id={`${this.inputid}_list_group_${index}`}\n aria-hidden=\"true\"\n >\n {key}\n </span>\n {value.map((item) => item)}\n </z-list-group>\n );\n }\n );\n\n return (\n <ul role=\"presentation\">\n {this.renderCheckAll()}\n {listGroups}\n </ul>\n );\n }\n\n private renderNoSearchResults(): HTMLUListElement {\n return (\n <div class=\"no-results\">\n <span>{this.noresultslabel}</span>\n </div>\n );\n }\n\n private renderSearchInput(): ZInput {\n return (\n <z-input\n htmlid={`${this.inputid}_search`}\n label={this.searchlabel}\n placeholder={this.searchplaceholder}\n htmltitle={this.searchtitle}\n type={this.inputType}\n value={this.searchValue}\n message={false}\n size={this.size}\n html-aria-autocomplete=\"list\"\n {...this.getComboboxA11yAttributes(true)}\n onKeyDown={(e: KeyboardEvent) => this.handleInputKeyDown(e)}\n onInputChange={(e: CustomEvent) => {\n this.searchValue = e.detail.value;\n this.focusedItemId = \"\";\n }}\n />\n );\n }\n\n private renderCheckAll(): HTMLDivElement {\n if (!this.hascheckall || this.searchValue) {\n return;\n }\n\n const optionId = this.getCheckAllOptionId();\n const allChecked = this.allOptionsSelected();\n const isPartiallySelected = this.selectedCounter > 0 && !allChecked;\n const isDisabled =\n !allChecked &&\n (this.hasReachedMaxSelections() || (this.maxcheckableitems && this.maxcheckableitems < this.itemsList.length));\n\n return (\n <z-list-element\n class=\"check-all-wrapper\"\n role=\"presentation\"\n htmlTabindex={-1}\n dividerType={ListDividerType.ELEMENT}\n dividerColor=\"gray800\"\n size={this.getControlToListSize()}\n disabled={!!isDisabled}\n >\n <span\n class=\"option-wrap\"\n role=\"presentation\"\n onClick={() => this.checkOption(optionId)}\n >\n <z-icon\n name={isPartiallySelected ? \"indeterminated-checkbox\" : allChecked ? \"checkbox-checked\" : \"checkbox\"}\n class={this.focusedItemId === optionId ? \"focused\" : \"\"}\n />\n <span\n id={optionId}\n role={isDisabled ? \"presentation\" : \"option\"}\n aria-selected={allChecked ? \"true\" : \"false\"}\n >\n {allChecked ? this.uncheckalltext : this.checkalltext}\n </span>\n </span>\n </z-list-element>\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div\n data-action={`combo-${this.inputid}`}\n class={{open: this.isopen, fixed: this.isfixed, disabled: this.disabled}}\n id={this.inputid}\n >\n {this.renderHeader()}\n {!this.disabled && this.renderContent()}\n </div>\n );\n }\n}\n"],"mappings":"waAAA,MAAMA,EAAY,IAAM,gOCAxB,MAAMA,EAAY,IAAM,6kL,MCUXC,EAASC,EAAA,MAAAD,UAAAE,EA4FpB,UAAAC,GACEC,KAAKC,iBAAmBD,KAAKE,QAAU,SAAWC,KAAKC,MAAMJ,KAAKE,OAASF,KAAKE,MAChFF,KAAKK,gBAAkBL,KAAKC,UAAUK,QAAQC,GAASA,EAAKC,UAASC,OACrET,KAAKU,uB,CAIP,gBAAAC,GACEX,KAAKY,YAAYZ,KAAKa,Y,CAOhB,kBAAAC,GACNd,KAAKe,eAAeC,KAAK,CAACC,GAAIjB,KAAKkB,QAAShB,MAAOF,KAAKC,W,CAG1D,WAAAkB,CAAAC,G,iHA1GApB,KAAAkB,QAAU,SAASG,MAYnBrB,KAAAsB,SAAqB,MAIrBtB,KAAAuB,UAAsB,MAgBtBvB,KAAAwB,eAA0B,mBAI1BxB,KAAAyB,OAAS,MAITzB,KAAA0B,QAAU,MAIV1B,KAAA2B,YAAwB,MAIxB3B,KAAA4B,aAAwB,kBAIxB5B,KAAA6B,eAA0B,oBAI1B7B,KAAA8B,kBAAoB,EAQpB9B,KAAA+B,KAAqBC,EAAYC,IAajCjC,KAAAkC,gBAA+B,GAG/BlC,KAAAmC,cAAgB,GAERnC,KAAAC,UAAyB,GAEzBD,KAAAoC,UAAuBC,EAAUC,KAuBvCtC,KAAKuC,eAAiBvC,KAAKuC,eAAeC,KAAKxC,MAC/CA,KAAKyC,iBAAmBzC,KAAKyC,iBAAiBD,KAAKxC,KACpD,CAED,iBAAA0C,GACE1C,KAAKD,Y,CAGP,mBAAA4C,GACE3C,KAAKK,gBAAkBL,KAAKC,UAAUK,QAAQC,GAASA,EAAKC,UAASC,M,CAG/D,oBAAAmC,GACN,OAAQ5C,KAAK+B,MACX,KAAKC,EAAYa,QACf,OAAOC,EAASC,MAClB,KAAKf,EAAYe,MACf,OAAOD,EAASE,OAClB,QACE,OAAOF,EAASG,M,CAId,WAAAC,CAAY3C,GAClB,MAAO,GAAGP,KAAKkB,kBAAkBX,EAAKU,GAAKkC,EAAa,GAAG5C,EAAKU,MAAQkC,EAAa,GAAG5C,EAAK6C,S,CAGvF,mBAAAC,GACN,MAAO,GAAGrD,KAAKkB,mB,CAGT,kBAAAoC,GACN,OAAOtD,KAAKK,kBAAoBL,KAAKC,UAAUQ,M,CAGzC,uBAAA8C,GACN,SAAUvD,KAAK8B,mBAAqB9B,KAAKK,iBAAmBL,KAAK8B,kB,CAG3D,mBAAA0B,CAAoBC,GAC1B,GAAIA,EAAEC,OAASC,EAAaC,QAAU5D,KAAKmC,cAAe,CACxDnC,KAAKuC,gB,CAGP,IAAKvC,KAAKyB,QAAUzB,KAAKuB,UAAW,CAClC,M,CAGF,OAAQkC,EAAEC,MACR,KAAKC,EAAaE,MAClB,KAAKF,EAAaC,MAChB,GAAI5D,KAAKmC,cAAe,CACtBsB,EAAEK,iBACF9D,KAAK+D,YAAY/D,KAAKmC,c,CAExB,MACF,KAAKwB,EAAaK,IAChB,GAAIhE,KAAKmC,cAAe,CACtBnC,KAAKmC,cAAgB,E,CAEvB,MACF,KAAKwB,EAAaM,WAClB,KAAKN,EAAaO,SAChBlE,KAAKmE,uBAAuBV,GAC5B,M,CAIE,kBAAAW,CAAmBX,GACzB,OAAQA,EAAEC,MACR,KAAKC,EAAaC,MAClB,KAAKD,EAAaE,MAChB,GAAI7D,KAAKmC,cAAe,CACtBsB,EAAEK,iBACF9D,KAAK+D,YAAY/D,KAAKmC,eACtB,K,CAEF,MACF,KAAKwB,EAAaM,WAClB,KAAKN,EAAaO,SAChBlE,KAAKmE,uBAAuBV,GAC5B,MACF,KAAKE,EAAaK,IAChB,GAAIhE,KAAKmC,cAAe,CACtBnC,KAAKmC,cAAgB,GACrB,K,CAEFnC,KAAKyC,mBACL,MACF,KAAKkB,EAAaU,IAChBrE,KAAKmC,cAAgB,GACrB,M,CAIE,WAAA4B,CAAYO,GAClB,GAAIA,IAAatE,KAAKqD,sBAAuB,CAC3CrD,KAAKC,UAAYD,KAAKC,UAAUsE,KAAKhE,GAAoBiE,OAAAC,OAAAD,OAAAC,OAAA,GACpDlE,GAAI,CACPC,SAAUR,KAAKsD,yBAGjBtD,KAAKmC,cAAgBnC,KAAKqD,qB,KACrB,CACLrD,KAAKC,UAAYD,KAAKC,UAAUsE,KAAKG,IACnC,GAAIJ,IAAatE,KAAKkD,YAAYwB,GAAI,CACpCA,EAAElE,SAAWkE,EAAElE,O,CAGjB,OAAOkE,CAAC,G,CAIZ1E,KAAKU,wBACLV,KAAKc,oB,CAGC,sBAAAqD,CAAuBV,GAC7B,IAAK,CAACE,EAAaM,WAAYN,EAAaO,UAAUS,SAASlB,EAAEC,QAA0B1D,KAAKyB,OAAQ,CACtG,M,CAGFgC,EAAEK,iBACFL,EAAEmB,kBAEF,MAAMC,EAAW7E,KAAKmC,cAAgBnC,KAAK8E,QAAQC,WAAWC,cAAc,IAAIhF,KAAKmC,iBAAmB,KACxG,MAAM8C,EAAUC,MAAMC,KAAKnF,KAAK8E,QAAQC,WAAWK,iBAAiB,oBAEpE,IAAKH,EAAQxE,OAAQ,CACnB,M,CAGF,MAAM4E,EAAgBR,EAAWI,EAAQK,QAAQT,GAAY,KAC7D,MAAMU,EAAiB,EACvB,MAAMC,EAAgBP,EAAQxE,OAAS,EAEvC,IAAIgF,EAAW,KACf,GAAIhC,EAAEC,OAASC,EAAaM,WAAY,CACtCwB,EACEJ,IAAkB,KAAOJ,EAAQM,GAAkBN,EAAQI,EAAgB,IAAMJ,EAAQO,E,MACtF,GAAI/B,EAAEC,OAASC,EAAaO,SAAU,CAC3CuB,EACEJ,IAAkB,KAAOJ,EAAQO,GAAiBP,EAAQI,EAAgB,IAAMJ,EAAQM,E,CAG5FvF,KAAKmC,cAAgBsD,EAASxE,GAC9BwE,EAASC,eAAe,CAACC,MAAO,UAAWC,UAAW,W,CAGhD,qBAAAlF,GACN,GAAIV,KAAKa,YAAa,CACpBb,KAAKY,YAAYZ,KAAKa,Y,KACjB,CACLb,KAAK6F,sB,EAID,oBAAAA,GACN,MAAM3D,EAAkB,GACxBlC,KAAKC,UAAU6F,SAASvF,IACtB2B,EAAgB6D,KAAIvB,OAAAC,OAAA,GAAKlE,GAAM,IAEjCP,KAAKkC,gBAAkBA,C,CAGjB,WAAAtB,CAAYoF,GAClB,IAAKA,EAAO,CACV,OAAOhG,KAAKyC,kB,CAGdzC,KAAK6F,uBACL7F,KAAKkC,gBAAkBlC,KAAKkC,gBAAgB5B,QAAQC,IAClD,MAAM0F,EAAQ1F,EAAK6C,KAAK8C,cAAcZ,QAAQU,EAAME,eACpD,MAAMC,EAAMF,EAAQD,EAAMvF,OAC1B,MAAM2F,EACJ7F,EAAK6C,KAAKiD,UAAU,EAAGJ,GACvB,WACA1F,EAAK6C,KAAKiD,UAAUJ,EAAOE,GAC3B,YACA5F,EAAK6C,KAAKiD,UAAUF,EAAK5F,EAAK6C,KAAK3C,QAErCF,EAAK6C,KAAOgD,EAEZ,OAAOH,GAAS,CAAC,G,CAIb,gBAAAxD,GACNzC,KAAKa,YAAc,GACnBb,KAAK6F,sB,CAGC,cAAAtD,GACNvC,KAAKyB,QAAUzB,KAAKyB,M,CAGd,kBAAA6E,GACN,IAAKtG,KAAKuG,OAASvG,KAAKK,iBAAmB,EAAG,CAC5C,OAAOmG,S,CAGT,MAAMC,EAASzG,KAAKK,kBAAoB,EAAI,uBAAyB,uBAErE,MAAO,GAAGL,KAAKuG,UAAUvG,KAAKK,mBAAmBoG,G,CAG3C,yBAAAC,CAA0BC,GAChC,MAAMC,EAAO,WACb,MAAMC,EAAe7G,KAAKyB,OAAS,OAAS,QAC5C,MAAMqF,EAAuB9G,KAAKyB,OAASzB,KAAKmC,cAAgB,GAChE,MAAM4E,EAAe,GAAG/G,KAAKkB,eAE7B,GAAIyF,EAAU,CACZ,MAAO,CACLC,KAAQA,EACR,aAAc5G,KAAKgH,cACnB,qBAAsBH,EACtB,6BAA8BC,EAC9B,qBAAsBC,E,CAI1B,MAAO,CACLH,KAAQA,EACR,gBAAiBC,EACjB,wBAAyBC,EACzB,gBAAiBC,E,CAIb,YAAAE,GACN,MAAMC,GAA0BlH,KAAKuB,UAAYvB,KAAK0G,0BAA0B,OAAS,GAEzF,OACES,EAAA,MAAA3C,OAAAC,OAAA,CACE2C,MAAM,SACNC,QAAS,IAAMrH,KAAKuC,iBACpB+E,UAAY7D,GAAqBzD,KAAKwD,oBAAoBC,GAC1DmD,KAAK,SACLW,SAAU,EAAC,gBACG,kBAAiB,gBAChBvH,KAAKyB,OAAS,OAAS,QAAO,aACjCzB,KAAKsG,sBACbY,GAEJC,EAAA,QAAMC,MAAM,UACTpH,KAAKuG,MACNY,EAAA,YAAOnH,KAAKK,gBAAkB,GAAK,KAAKL,KAAKK,qBAE/C8G,EAAA,UACE/D,KAAK,aACLgE,MAAOpH,KAAK+B,O,CAMZ,aAAAyF,GACN,OACEL,EAAA,OACElG,GAAG,kBACHmG,MAAM,mBAELpH,KAAKuB,WAAavB,KAAKyH,oBACxBN,EAAA,OACEP,KAAK,UAAS,aACF5G,KAAKuG,MAAK,uBACD,OACrBtF,GAAI,GAAGjB,KAAKkB,eAAc,YACf,GAAGlB,KAAK2B,YAAc,GAAG3B,KAAKqD,yBAA2B,KAAKrD,KAAKC,UAAUsE,KAAKhE,GAASP,KAAKkD,YAAY3C,KAAOmH,KAAK,QAElI1H,KAAK2H,e,CAMN,WAAAA,GACN,OACER,EAAA,OACEC,MAAOpH,KAAKa,aAAe,SAC3B+G,UAAU,EACVhB,KAAK,gBAEJ5G,KAAK6H,WAAW7H,KAAKkC,iB,CAKpB,UAAA4F,CAAWvH,EAAiBwH,EAAetH,GACjD,MAAM6D,EAAWtE,KAAKkD,YAAY3C,GAClC,MAAMyH,GAAczH,EAAKC,SAAWR,KAAKuD,0BAEzC,OACE4D,EAAA,kBACEc,cAAc,EACdC,YAAaH,IAAUtH,EAAS,EAAI0H,EAAgBC,QAAUD,EAAgBE,KAC9EtG,KAAM/B,KAAK4C,uBACXgE,KAAK,eACLtF,WAAY0G,GAEZb,EAAA,QACEC,MAAM,cACNR,KAAK,eACLS,QAAS,KACPrH,KAAKmC,cAAgB,GACrBnC,KAAK+D,YAAYO,EAAS,GAG5B6C,EAAA,UACE/D,KAAM7C,EAAKC,QAAU,mBAAqB,WAC1C4G,MAAOpH,KAAKmC,gBAAkBmC,EAAW,UAAY,KAEvD6C,EAAA,QACElG,GAAIqD,EACJsC,KAAMoB,EAAa,eAAiB,SAAQ,gBAC7BzH,EAAKC,QAAU,OAAS,QAAO,aAClCwH,EAAaxB,UAAY8B,EAAa/H,EAAK6C,OAEvD+D,EAAA,sBACc,OACZoB,UAAWhI,EAAK6C,S,CAQpB,UAAAyE,CAAW3H,GACjB,IAAKA,EAAO,CACV,M,CAEF,IAAKA,EAAMO,QAAUT,KAAKa,YAAa,CACrC,OAAOb,KAAKwI,uB,CAGd,GAAIxI,KAAKyI,cAAe,CACtB,OAAOzI,KAAK0I,aAAaxI,E,CAG3B,OACEiH,EAAA,MAAIP,KAAK,gBACN5G,KAAK2I,iBACLzI,EAAMqE,KAAI,CAAChE,EAAMmE,IACT1E,KAAK8H,WAAWvH,EAAMmE,EAAGxE,EAAMO,U,CAMtC,YAAAiI,CAAaxI,GACnB,MAAM0I,EAAU1I,EAAM2I,QAAO,CAACC,EAAOvI,EAAMwH,K,MACzC,MAAMgB,EAAWxI,EAAKwI,UAAY,kBAClC,MAAMC,EAAYhJ,KAAK8H,WAAWvH,EAAMwH,EAAO7H,EAAMO,QAErDqI,EAAMC,IAAYE,EAAAH,EAAMC,MAAS,MAAAE,SAAA,EAAAA,EAAI,GACrCH,EAAMC,GAAUhD,KAAKiD,GAErB,OAAOF,CAAK,GACX,IAEH,MAAMI,EAAa1E,OAAO2E,QAAQP,GAAuDrE,KACvF,EAAE6E,EAAKpD,GAAQ+B,IAEXZ,EAAA,gBACEpF,KAAM/B,KAAK4C,uBAAsB,eACnBuF,EAAgBC,QAAO,kBACpB,GAAGpI,KAAKkB,sBAAsB6G,KAE/CZ,EAAA,QACEC,MAAM,+BACNiC,KAAK,eACLpI,GAAI,GAAGjB,KAAKkB,sBAAsB6G,IAAO,cAC7B,QAEXqB,GAEFpD,EAAMzB,KAAKhE,GAASA,OAM7B,OACE4G,EAAA,MAAIP,KAAK,gBACN5G,KAAK2I,iBACLO,E,CAKC,qBAAAV,GACN,OACErB,EAAA,OAAKC,MAAM,cACTD,EAAA,YAAOnH,KAAKwB,gB,CAKV,iBAAAiG,GACN,OACEN,EAAA,UAAA3C,OAAAC,OAAA,CACE6E,OAAQ,GAAGtJ,KAAKkB,iBAChBqF,MAAOvG,KAAKuJ,YACZC,YAAaxJ,KAAKyJ,kBAClBC,UAAW1J,KAAK2J,YAChBC,KAAM5J,KAAKoC,UACX4D,MAAOhG,KAAKa,YACZgJ,QAAS,MACT9H,KAAM/B,KAAK+B,KAAI,yBACQ,QACnB/B,KAAK0G,0BAA0B,MAAK,CACxCY,UAAY7D,GAAqBzD,KAAKoE,mBAAmBX,GACzDqG,cAAgBrG,IACdzD,KAAKa,YAAc4C,EAAEsG,OAAO/D,MAC5BhG,KAAKmC,cAAgB,EAAE,I,CAMvB,cAAAwG,GACN,IAAK3I,KAAK2B,aAAe3B,KAAKa,YAAa,CACzC,M,CAGF,MAAMyD,EAAWtE,KAAKqD,sBACtB,MAAM2G,EAAahK,KAAKsD,qBACxB,MAAM2G,EAAsBjK,KAAKK,gBAAkB,IAAM2J,EACzD,MAAMhC,GACHgC,IACAhK,KAAKuD,2BAA8BvD,KAAK8B,mBAAqB9B,KAAK8B,kBAAoB9B,KAAKC,UAAUQ,QAExG,OACE0G,EAAA,kBACEC,MAAM,oBACNR,KAAK,eACLqB,cAAc,EACdC,YAAaC,EAAgBC,QAC7B8B,aAAa,UACbnI,KAAM/B,KAAK4C,uBACXtB,WAAY0G,GAEZb,EAAA,QACEC,MAAM,cACNR,KAAK,eACLS,QAAS,IAAMrH,KAAK+D,YAAYO,IAEhC6C,EAAA,UACE/D,KAAM6G,EAAsB,0BAA4BD,EAAa,mBAAqB,WAC1F5C,MAAOpH,KAAKmC,gBAAkBmC,EAAW,UAAY,KAEvD6C,EAAA,QACElG,GAAIqD,EACJsC,KAAMoB,EAAa,eAAiB,SAAQ,gBAC7BgC,EAAa,OAAS,SAEpCA,EAAahK,KAAK6B,eAAiB7B,KAAK4B,e,CAOnD,MAAAuI,GACE,OACEhD,EAAA,OAAAiC,IAAA,yDACe,SAASpJ,KAAKkB,UAC3BkG,MAAO,CAACgD,KAAMpK,KAAKyB,OAAQ4I,MAAOrK,KAAK0B,QAASJ,SAAUtB,KAAKsB,UAC/DL,GAAIjB,KAAKkB,SAERlB,KAAKiH,gBACJjH,KAAKsB,UAAYtB,KAAKwH,gB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["stylesCss","ZCombobox","__stencil_proxyCustomElement","HTMLElement","watchItems","this","itemsList","items","JSON","parse","selectedCounter","filter","item","checked","length","updateRenderItemsList","watchSearchValue","filterItems","searchValue","emitComboboxChange","comboboxChange","emit","id","inputid","constructor","registerHost","randomId","disabled","hassearch","noresultslabel","isopen","isfixed","hascheckall","checkalltext","uncheckalltext","maxcheckableitems","size","ControlSize","BIG","renderItemsList","focusedItemId","inputType","InputType","TEXT","toggleComboBox","bind","closeFilterItems","componentWillLoad","componentWillRender","getControlToListSize","X_SMALL","ListSize","SMALL","MEDIUM","LARGE","getOptionId","encodeString","name","getCheckAllOptionId","allOptionsSelected","hasReachedMaxSelections","handleHeaderKeyDown","e","code","KeyboardCode","ENTER","SPACE","preventDefault","checkOption","ESC","ARROW_DOWN","ARROW_UP","handleArrowsNavigation","handleInputKeyDown","TAB","optionId","map","Object","assign","i","includes","stopPropagation","currElem","element","shadowRoot","querySelector","options","Array","from","querySelectorAll","currElemIndex","indexOf","firstElemIndex","lastElemIndex","nextElem","scrollIntoView","block","container","resetRenderItemsList","forEach","push","value","start","toUpperCase","end","newName","substring","getHeaderAriaLabel","label","undefined","suffix","getComboboxA11yAttributes","isZInput","role","ariaExpanded","ariaActivedescendant","ariaControls","htmlAriaLabel","renderHeader","comboboxA11yAttributes","h","class","onClick","onKeyDown","tabindex","renderContent","renderSearchInput","join","renderItems","tabIndex","renderList","renderItem","index","isDisabled","htmlTabindex","dividerType","ListDividerType","ELEMENT","NONE","getPlainText","innerHTML","renderNoSearchResults","hasgroupitems","renderGroups","renderCheckAll","newData","reduce","group","category","zListItem","_a","listGroups","entries","key","slot","htmlid","searchlabel","placeholder","searchplaceholder","htmltitle","searchtitle","type","message","onInputChange","detail","allChecked","isPartiallySelected","dividerColor","render","open","fixed"],"sources":["src/components/css-components/z-label/styles.css?tag=z-combobox&encapsulation=shadow","src/components/z-combobox/styles.css?tag=z-combobox&encapsulation=shadow","src/components/z-combobox/index.tsx"],"sourcesContent":[".z-label {\n display: block;\n padding-bottom: var(--space-unit);\n color: var(--color-default-text);\n font-family: var(--font-family-sans);\n font-size: var(--font-size-1);\n font-weight: var(--font-sb);\n text-align: left;\n text-transform: uppercase;\n}\n",":host {\n display: block;\n min-width: 290px;\n color: var(--color-form-default-text);\n fill: var(--color-form-default-icon);\n font-family: var(--font-family-sans);\n}\n\n:host > div.fixed {\n position: relative;\n}\n\n:host > div > .header {\n position: relative;\n z-index: 10;\n display: flex;\n min-height: 42px;\n align-items: center;\n justify-content: space-between;\n padding: 0 calc(var(--space-unit) * 1.5);\n border: var(--border-size-small) solid var(--color-form-surface04);\n margin: 0;\n background-color: var(--color-form-background);\n border-radius: var(--border-radius-small);\n cursor: pointer;\n}\n\n:host([size=\"small\"]) > div > .header {\n min-height: 34px;\n font-size: var(--font-size-2);\n}\n\n:host([size=\"x-small\"]) > div > .header {\n min-height: 30px;\n font-size: var(--font-size-2);\n}\n\n:host > div > .header:hover {\n outline: var(--border-size-medium) solid var(--color-form-surface04);\n outline-offset: -2px;\n}\n\n:host > div > div.header:focus:focus-visible {\n z-index: 16;\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host > div > .header > span.body-3 > span {\n font-weight: var(--font-sb);\n}\n\n:host > div > .header > z-icon {\n fill: var(--color-form-default-icon);\n}\n\n:host > div > .header > z-icon.small,\n:host > div > .header > z-icon.x-small {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n}\n\n:host > div.open > .header {\n border: var(--border-size-small) solid var(--color-form-active-primary);\n border-radius: var(--border-radius-small) var(--border-radius-small) 0 0;\n}\n\n:host > div.disabled {\n pointer-events: none;\n}\n\n:host > div.disabled .header {\n border-color: var(--color-form-disabled03);\n fill: var(--color-form-disabled01-icon);\n}\n\n:host > div.disabled .header > span.body-3 {\n color: var(--color-form-disabled03);\n}\n\n:host > div.disabled .header > z-icon:last-child {\n fill: var(--color-form-disabled01-icon);\n}\n\n:host > div > div.open-combo-data {\n display: none;\n}\n\n:host > div.open > div.open-combo-data {\n position: relative;\n z-index: 12;\n display: block;\n padding: var(--space-unit) calc(var(--space-unit) * 2);\n border: var(--border-size-small) solid var(--color-form-surface03);\n border-top: 0;\n background-color: var(--color-form-background);\n border-radius: 0;\n box-shadow: var(--shadow-2);\n}\n\n:host .open .open-combo-data z-input .z-label {\n color: var(--color-form-default-text);\n}\n\n:host > div.open > div.open-combo-data > div > div {\n overflow: auto;\n max-height: 235px;\n padding: 0;\n padding-left: var(--space-unit); /* padding left and negative margin in order to enable focus */\n margin-left: calc(var(--space-unit) * -1); /* padding left and negative margin in order to enable focus */\n}\n\n:host > div.open > div.open-combo-data > z-input {\n width: 100%;\n margin-bottom: calc(var(--space-unit) * 2);\n}\n\n:host > div.open > div.open-combo-data > div > div > ul {\n max-height: 235px;\n padding: 0 calc(var(--space-unit) * 0.5); /* needed for checkbox focus shadow */\n margin: 0;\n}\n\n:host .open-combo-data z-list-element {\n --background-color-list-element: var(--color-form-background);\n --background-hover-color-list-element: var(--color-form-surface03);\n --background-active-color-list-element: var(--color-form-surface03);\n}\n\n:host .open-combo-data z-list-element[disabled] {\n pointer-events: none;\n}\n\n:host .open-combo-data z-list-element .option-wrap {\n display: flex;\n flex-direction: row;\n align-items: center;\n cursor: pointer;\n gap: var(--space-unit);\n}\n\n:host .open-combo-data z-list-element[size=\"medium\"] .option-wrap,\n:host .open-combo-data z-list-element[size=\"small\"] .option-wrap {\n --z-icon-width: 16px;\n --z-icon-height: 16px;\n\n font-size: var(--font-size-2);\n gap: calc(var(--space-unit) / 2);\n}\n\n:host .open-combo-data z-list-element .option-wrap > z-icon {\n fill: var(--color-primary01-icon);\n}\n\n:host .open-combo-data z-list-element[disabled] .option-wrap > z-icon {\n fill: var(--color-disabled01);\n}\n\n:host .open-combo-data z-list-element .option-wrap > z-icon.focused {\n border-radius: var(--border-radius-small);\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host .open-combo-data z-list-element .option-wrap > [role=\"option\"]:focus,\n:host .open-combo-data z-list-element .option-wrap > [role=\"option\"]:focus-visible {\n outline: none;\n}\n\n::-webkit-scrollbar {\n width: 6px;\n background: linear-gradient(to right, transparent 0 1px, var(--gray200) 1px 5px, transparent 5px 6px);\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--color-primary01);\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--color-hover-primary);\n}\n\n/* Firefox scrollbar */\n@supports not selector(::-webkit-scrollbar-track) {\n :host {\n scrollbar-color: var(--color-primary01) transparent;\n }\n}\n\n:host > div.open > z-input {\n position: relative;\n z-index: 1;\n width: 238px;\n margin: 0 calc(var(--space-unit) * 2);\n color: var(--color-form-active-primary);\n}\n\n:host > div.open > div.open-combo-data > div > div.search {\n overflow: hidden;\n max-height: none;\n margin-top: 0;\n}\n\n:host > div.open > div.open-combo-data > div > div.search > ul {\n overflow: auto;\n max-height: 180px;\n padding: var(--space-unit) calc(var(--space-unit) * 2);\n}\n\n:host .open .open-combo-data .search .no-results {\n display: flex;\n align-items: center;\n column-gap: var(--space-unit);\n}\n\n:host > .open > .open-combo-data .search .close-search {\n display: flex;\n justify-content: center;\n}\n\n:host > div.open > div.open-combo-data > div > div.search .close-search > a {\n display: inline-block;\n height: 44px;\n color: var(--color-form-active-primary);\n cursor: pointer;\n font-size: 14px;\n font-weight: var(--font-sb);\n line-height: 44px;\n text-align: center;\n text-transform: uppercase;\n}\n\n:host > div.open > div.open-combo-data > div > div.search .close-search > a:focus:focus-visible {\n box-shadow: var(--shadow-focus-primary);\n outline: none;\n}\n\n:host > div.open > div.open-combo-data > div > div.check-all-wrapper {\n /* padding left and negative margin in order to enable focus */\n padding: calc(var(--space-unit) * 2) calc(var(--space-unit) * 0.5) calc(var(--space-unit) * 2)\n calc(var(--space-unit) * 1.5);\n border-bottom: var(--border-size-small) solid var(--gray800);\n margin-bottom: var(--space-unit);\n margin-left: calc(var(--space-unit) * -1);\n text-align: left;\n}\n\n:host([size=\"small\"]) > div.open > div.open-combo-data > div > div.check-all-wrapper {\n padding: calc(var(--space-unit) * 1.5) calc(var(--space-unit) * 0.5);\n}\n\n:host([size=\"x-small\"]) > div.open > div.open-combo-data > div > div.check-all-wrapper {\n padding: var(--space-unit) calc(var(--space-unit) * 0.5);\n}\n","import {Component, ComponentInterface, Element, Event, EventEmitter, Prop, State, Watch, h} from \"@stencil/core\";\nimport {ComboItem, ControlSize, InputType, KeyboardCode, ListDividerType, ListSize} from \"../../beans\";\nimport {encodeString, getPlainText, randomId} from \"../../utils/utils\";\nimport {ZInput} from \"../z-input\";\n\n@Component({\n tag: \"z-combobox\",\n styleUrls: [\"../css-components/z-label/styles.css\", \"styles.css\"],\n shadow: true,\n})\nexport class ZCombobox implements ComponentInterface {\n @Element() element: HTMLZComboboxElement;\n\n /** input unique id */\n @Prop()\n inputid = `combo-${randomId()}`;\n\n /** list items array */\n @Prop()\n items: ComboItem[] | string;\n\n /** label text */\n @Prop()\n label: string;\n\n /** the combobox is disabled */\n @Prop({reflect: true})\n disabled?: boolean = false;\n\n /** show search input flag (optional) */\n @Prop()\n hassearch?: boolean = false;\n\n /** search input label text (optional) */\n @Prop()\n searchlabel?: string;\n\n /** search input placeholder text (optional) */\n @Prop()\n searchplaceholder?: string;\n\n /** search input title text (optional) */\n @Prop()\n searchtitle?: string;\n\n /** no result text message */\n @Prop()\n noresultslabel?: string = \"Nessun risultato\";\n\n /** toggle combo list opening flag */\n @Prop({mutable: true})\n isopen = false;\n\n /** fixed style flag */\n @Prop()\n isfixed = false;\n\n /** show \"check all\" checkbox (optional) */\n @Prop()\n hascheckall?: boolean = false;\n\n /** check all label (optional) */\n @Prop()\n checkalltext?: string = \"Seleziona tutti\";\n\n /** uncheck all label (optional) */\n @Prop()\n uncheckalltext?: string = \"Deseleziona tutti\";\n\n /** max number of checkable items (0 = unlimited) */\n @Prop()\n maxcheckableitems = 0;\n\n /** group items by category */\n @Prop()\n hasgroupitems?: boolean;\n\n /** Available sizes: `big`, `small` and `x-small`. Defaults to `big`. */\n @Prop()\n size?: ControlSize = ControlSize.BIG;\n\n /** the combobox aria-label */\n @Prop()\n htmlAriaLabel?: string;\n\n @State()\n searchValue: string;\n\n @State()\n selectedCounter: number;\n\n @State()\n renderItemsList: ComboItem[] = []; // used for render only\n\n @State()\n focusedItemId = \"\";\n\n private itemsList: ComboItem[] = [];\n\n private inputType: InputType = InputType.TEXT;\n\n @Watch(\"items\")\n watchItems(): void {\n this.itemsList = typeof this.items === \"string\" ? JSON.parse(this.items) : this.items;\n this.selectedCounter = this.itemsList.filter((item) => item.checked).length;\n this.updateRenderItemsList();\n }\n\n @Watch(\"searchValue\")\n watchSearchValue(): void {\n this.filterItems(this.searchValue);\n }\n\n /** Emitted when value is checked/unchecked. Returns id, items. */\n @Event()\n comboboxChange: EventEmitter;\n\n private emitComboboxChange(): void {\n this.comboboxChange.emit({id: this.inputid, items: this.itemsList});\n }\n\n constructor() {\n this.toggleComboBox = this.toggleComboBox.bind(this);\n this.closeFilterItems = this.closeFilterItems.bind(this);\n }\n\n componentWillLoad(): void {\n this.watchItems();\n }\n\n componentWillRender(): void {\n this.selectedCounter = this.itemsList.filter((item) => item.checked).length;\n }\n\n private getControlToListSize(): ListSize {\n switch (this.size) {\n case ControlSize.X_SMALL:\n return ListSize.SMALL;\n case ControlSize.SMALL:\n return ListSize.MEDIUM;\n default:\n return ListSize.LARGE;\n }\n }\n\n private getOptionId(item: ComboItem): string {\n return `${this.inputid}-option-${item.id ? encodeString(`${item.id}`) : encodeString(`${item.name}`)}`;\n }\n\n private getCheckAllOptionId(): string {\n return `${this.inputid}-check-all`;\n }\n\n private allOptionsSelected(): boolean {\n return this.selectedCounter === this.itemsList.length;\n }\n\n private hasReachedMaxSelections(): boolean {\n return !!(this.maxcheckableitems && this.selectedCounter >= this.maxcheckableitems);\n }\n\n private handleHeaderKeyDown(e: KeyboardEvent): void {\n if (e.code === KeyboardCode.ENTER && !this.focusedItemId) {\n this.toggleComboBox();\n }\n\n if (!this.isopen || this.hassearch) {\n return;\n }\n\n switch (e.code as KeyboardCode) {\n case KeyboardCode.SPACE:\n case KeyboardCode.ENTER:\n if (this.focusedItemId) {\n e.preventDefault();\n this.checkOption(this.focusedItemId);\n }\n break;\n case KeyboardCode.ESC:\n if (this.focusedItemId) {\n this.focusedItemId = \"\";\n }\n break;\n case KeyboardCode.ARROW_DOWN:\n case KeyboardCode.ARROW_UP:\n this.handleArrowsNavigation(e);\n break;\n }\n }\n\n private handleInputKeyDown(e: KeyboardEvent): void {\n switch (e.code as KeyboardCode) {\n case KeyboardCode.ENTER:\n case KeyboardCode.SPACE:\n if (this.focusedItemId) {\n e.preventDefault();\n this.checkOption(this.focusedItemId);\n break;\n }\n break;\n case KeyboardCode.ARROW_DOWN:\n case KeyboardCode.ARROW_UP:\n this.handleArrowsNavigation(e);\n break;\n case KeyboardCode.ESC:\n if (this.focusedItemId) {\n this.focusedItemId = \"\";\n break;\n }\n this.closeFilterItems();\n break;\n case KeyboardCode.TAB:\n this.focusedItemId = \"\";\n break;\n }\n }\n\n private checkOption(optionId: string): void {\n if (optionId === this.getCheckAllOptionId()) {\n this.itemsList = this.itemsList.map((item: ComboItem) => ({\n ...item,\n checked: !this.allOptionsSelected(),\n }));\n\n this.focusedItemId = this.getCheckAllOptionId();\n } else {\n this.itemsList = this.itemsList.map((i: ComboItem) => {\n if (optionId === this.getOptionId(i)) {\n i.checked = !i.checked;\n }\n\n return i;\n });\n }\n\n this.updateRenderItemsList();\n this.emitComboboxChange();\n }\n\n private handleArrowsNavigation(e: KeyboardEvent): void {\n if (![KeyboardCode.ARROW_DOWN, KeyboardCode.ARROW_UP].includes(e.code as KeyboardCode) || !this.isopen) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n const currElem = this.focusedItemId ? this.element.shadowRoot.querySelector(`#${this.focusedItemId}`) : null;\n const options = Array.from(this.element.shadowRoot.querySelectorAll('[role=\"option\"]'));\n\n if (!options.length) {\n return;\n }\n\n const currElemIndex = currElem ? options.indexOf(currElem) : null;\n const firstElemIndex = 0;\n const lastElemIndex = options.length - 1;\n\n let nextElem = null;\n if (e.code === KeyboardCode.ARROW_DOWN) {\n nextElem =\n currElemIndex === null ? options[firstElemIndex] : options[currElemIndex + 1] || options[lastElemIndex];\n } else if (e.code === KeyboardCode.ARROW_UP) {\n nextElem =\n currElemIndex === null ? options[lastElemIndex] : options[currElemIndex - 1] || options[firstElemIndex];\n }\n\n this.focusedItemId = nextElem.id;\n nextElem.scrollIntoView({block: \"nearest\", container: \"nearest\"});\n }\n\n private updateRenderItemsList(): void {\n if (this.searchValue) {\n this.filterItems(this.searchValue);\n } else {\n this.resetRenderItemsList();\n }\n }\n\n private resetRenderItemsList(): void {\n const renderItemsList = [];\n this.itemsList.forEach((item: ComboItem) => {\n renderItemsList.push({...item});\n });\n this.renderItemsList = renderItemsList;\n }\n\n private filterItems(value: string): void {\n if (!value) {\n return this.closeFilterItems();\n }\n\n this.resetRenderItemsList();\n this.renderItemsList = this.renderItemsList.filter((item) => {\n const start = item.name.toUpperCase().indexOf(value.toUpperCase());\n const end = start + value.length;\n const newName =\n item.name.substring(0, start) +\n \"<strong>\" +\n item.name.substring(start, end) +\n \"</strong>\" +\n item.name.substring(end, item.name.length);\n\n item.name = newName;\n\n return start >= 0;\n });\n }\n\n private closeFilterItems(): void {\n this.searchValue = \"\";\n this.resetRenderItemsList();\n }\n\n private toggleComboBox(): void {\n this.isopen = !this.isopen;\n }\n\n private getHeaderAriaLabel(): string | undefined {\n if (!this.label || this.selectedCounter <= 0) {\n return undefined;\n }\n\n const suffix = this.selectedCounter === 1 ? \"elemento selezionato\" : \"elementi selezionati\";\n\n return `${this.label}: ${this.selectedCounter} ${suffix}`;\n }\n\n private getComboboxA11yAttributes(isZInput: boolean): Record<string, string> {\n const role = \"combobox\";\n const ariaExpanded = this.isopen ? \"true\" : \"false\";\n const ariaActivedescendant = this.isopen ? this.focusedItemId : \"\";\n const ariaControls = `${this.inputid}_list`;\n\n if (isZInput) {\n return {\n \"role\": role,\n \"aria-label\": this.htmlAriaLabel,\n \"html-aria-expanded\": ariaExpanded,\n \"html-aria-activedescendant\": ariaActivedescendant,\n \"html-aria-controls\": ariaControls,\n };\n }\n\n return {\n \"role\": role,\n \"aria-expanded\": ariaExpanded,\n \"aria-activedescendant\": ariaActivedescendant,\n \"aria-controls\": ariaControls,\n };\n }\n\n private renderHeader(): HTMLDivElement {\n const comboboxA11yAttributes = !this.hassearch ? this.getComboboxA11yAttributes(false) : {};\n\n return (\n <div\n class=\"header\"\n onClick={() => this.toggleComboBox()}\n onKeyDown={(e: KeyboardEvent) => this.handleHeaderKeyDown(e)}\n role=\"button\"\n tabindex={0}\n aria-controls=\"open-combo-data\"\n aria-expanded={this.isopen ? \"true\" : \"false\"}\n aria-label={this.getHeaderAriaLabel()}\n {...comboboxA11yAttributes}\n >\n <span class=\"body-3\">\n {this.label}\n <span>{this.selectedCounter > 0 && ` (${this.selectedCounter})`}</span>\n </span>\n <z-icon\n name={this.isopen ? \"caret-up\" : \"caret-down\"}\n class={this.size}\n />\n </div>\n );\n }\n\n private renderContent(): HTMLDivElement {\n return (\n <div\n id=\"open-combo-data\"\n class=\"open-combo-data\"\n >\n {this.hassearch && this.renderSearchInput()}\n <div\n role=\"listbox\"\n aria-label={this.label}\n aria-multiselectable=\"true\"\n id={`${this.inputid}_list`}\n aria-owns={`${this.hascheckall ? `${this.getCheckAllOptionId()} ` : ``}${this.itemsList.map((item) => this.getOptionId(item)).join(\" \")}`}\n >\n {this.renderItems()}\n </div>\n </div>\n );\n }\n\n private renderItems(): HTMLDivElement {\n return (\n <div\n class={this.searchValue && \"search\"}\n tabIndex={-1}\n role=\"presentation\"\n >\n {this.renderList(this.renderItemsList)}\n </div>\n );\n }\n\n private renderItem(item: ComboItem, index: number, length: number): HTMLZListElement {\n const optionId = this.getOptionId(item);\n const isDisabled = !item.checked && this.hasReachedMaxSelections();\n\n return (\n <z-list-element\n htmlTabindex={-1}\n dividerType={index !== length - 1 ? ListDividerType.ELEMENT : ListDividerType.NONE}\n size={this.getControlToListSize()}\n role=\"presentation\"\n disabled={!!isDisabled}\n >\n <span\n class=\"option-wrap\"\n role=\"presentation\"\n onClick={() => {\n this.focusedItemId = \"\";\n this.checkOption(optionId);\n }}\n >\n <z-icon\n name={item.checked ? \"checkbox-checked\" : \"checkbox\"}\n class={this.focusedItemId === optionId ? \"focused\" : \"\"}\n />\n <span\n id={optionId}\n role={isDisabled ? \"presentation\" : \"option\"}\n aria-selected={item.checked ? \"true\" : \"false\"}\n aria-label={isDisabled ? undefined : getPlainText(item.name)}\n >\n <span\n aria-hidden=\"true\"\n innerHTML={item.name}\n />\n </span>\n </span>\n </z-list-element>\n );\n }\n\n private renderList(items: ComboItem[]): HTMLUListElement {\n if (!items) {\n return;\n }\n if (!items.length && this.searchValue) {\n return this.renderNoSearchResults();\n }\n\n if (this.hasgroupitems) {\n return this.renderGroups(items);\n }\n\n return (\n <ul role=\"presentation\">\n {this.renderCheckAll()}\n {items.map((item, i) => {\n return this.renderItem(item, i, items.length);\n })}\n </ul>\n );\n }\n\n private renderGroups(items: ComboItem[]): HTMLUListElement {\n const newData = items.reduce((group, item, index) => {\n const category = item.category || \"Altra categoria\";\n const zListItem = this.renderItem(item, index, items.length);\n\n group[category] = group[category] ?? [];\n group[category].push(zListItem);\n\n return group;\n }, {});\n\n const listGroups = Object.entries(newData as {[key: string]: HTMLZListElementElement[]}).map(\n ([key, value], index) => {\n return (\n <z-list-group\n size={this.getControlToListSize()}\n divider-type={ListDividerType.ELEMENT}\n aria-labelledby={`${this.inputid}_list_group_${index}`}\n >\n <span\n class=\"body-3-sb z-list-group-title\"\n slot=\"header-title\"\n id={`${this.inputid}_list_group_${index}`}\n aria-hidden=\"true\"\n >\n {key}\n </span>\n {value.map((item) => item)}\n </z-list-group>\n );\n }\n );\n\n return (\n <ul role=\"presentation\">\n {this.renderCheckAll()}\n {listGroups}\n </ul>\n );\n }\n\n private renderNoSearchResults(): HTMLUListElement {\n return (\n <div class=\"no-results\">\n <span>{this.noresultslabel}</span>\n </div>\n );\n }\n\n private renderSearchInput(): ZInput {\n return (\n <z-input\n htmlid={`${this.inputid}_search`}\n label={this.searchlabel}\n placeholder={this.searchplaceholder}\n htmltitle={this.searchtitle}\n type={this.inputType}\n value={this.searchValue}\n message={false}\n size={this.size}\n html-aria-autocomplete=\"list\"\n {...this.getComboboxA11yAttributes(true)}\n onKeyDown={(e: KeyboardEvent) => this.handleInputKeyDown(e)}\n onInputChange={(e: CustomEvent) => {\n this.searchValue = e.detail.value;\n this.focusedItemId = \"\";\n }}\n />\n );\n }\n\n private renderCheckAll(): HTMLDivElement {\n if (!this.hascheckall || this.searchValue) {\n return;\n }\n\n const optionId = this.getCheckAllOptionId();\n const allChecked = this.allOptionsSelected();\n const isPartiallySelected = this.selectedCounter > 0 && !allChecked;\n const isDisabled =\n !allChecked &&\n (this.hasReachedMaxSelections() || (this.maxcheckableitems && this.maxcheckableitems < this.itemsList.length));\n\n return (\n <z-list-element\n class=\"check-all-wrapper\"\n role=\"presentation\"\n htmlTabindex={-1}\n dividerType={ListDividerType.ELEMENT}\n dividerColor=\"gray800\"\n size={this.getControlToListSize()}\n disabled={!!isDisabled}\n >\n <span\n class=\"option-wrap\"\n role=\"presentation\"\n onClick={() => this.checkOption(optionId)}\n >\n <z-icon\n name={isPartiallySelected ? \"indeterminated-checkbox\" : allChecked ? \"checkbox-checked\" : \"checkbox\"}\n class={this.focusedItemId === optionId ? \"focused\" : \"\"}\n />\n <span\n id={optionId}\n role={isDisabled ? \"presentation\" : \"option\"}\n aria-selected={allChecked ? \"true\" : \"false\"}\n >\n {allChecked ? this.uncheckalltext : this.checkalltext}\n </span>\n </span>\n </z-list-element>\n );\n }\n\n render(): HTMLDivElement {\n return (\n <div\n data-action={`combo-${this.inputid}`}\n class={{open: this.isopen, fixed: this.isfixed, disabled: this.disabled}}\n id={this.inputid}\n >\n {this.renderHeader()}\n {!this.disabled && this.renderContent()}\n </div>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{proxyCustomElement as e,HTMLElement as t,h as o,Host as r,transformTag as a}from"@stencil/core/internal/client";import{Q as i,R as n}from"./index2.js";const s=()=>`:host{--cover-hero-overlay:linear-gradient(270deg, #0000 0%, #000000e6 100%);--cover-hero-text-color:var(--color-text-inverse);display:block;overflow:hidden}:host,*{box-sizing:border-box}:host .main-container{position:relative;width:100%;align-items:baseline}:host .content-container{color:var(--cover-hero-text-color);fill:var(--cover-hero-text-color)}:host .main-container .cover-container{position:relative;width:100%;padding-top:calc(100% / (var(--cover-hero-aspect-ratio, var(--image-aspect-ratio, 16/9))));background-color:var(--gray600)}::slotted([slot="cover"]){position:absolute;display:block;width:100%;height:100%;inset:0;object-fit:cover;object-position:top center}::slotted(z-info-reveal){position:absolute;z-index:1;right:var(--grid-margin);bottom:var(--grid-margin)}:host([variant="overlay"]:not([preserve-aspect-ratio=""],[preserve-aspect-ratio="true"])) .main-container{height:100%}:host([variant="overlay"]:not([preserve-aspect-ratio=""],[preserve-aspect-ratio="true"])) .main-container .cover-container{position:absolute;z-index:-1;height:100%;padding:0}:host([variant="overlay"]) .main-container .cover-container::after{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--cover-hero-overlay);content:""}:host([variant="overlay"]:is([preserve-aspect-ratio=""],[preserve-aspect-ratio="true"])) .main-container .content-container{position:absolute;inset:0}:host([variant="overlay"]) .main-container .content-container{height:100%;padding:var(--grid-margin)}:host([variant="stacked"]){--cover-hero-text-color:var(--color-default-text)}:host([variant="stacked"]) .content-container ::slotted(*){padding:var(--grid-margin) 0}`;const c=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.variant=i.OVERLAY;this.contentPosition=n.TOP;this.preserveAspectRatio=true}onImgLoad({target:e}){if(e instanceof Image&&e.closest("[slot=cover]")){const t=e.naturalWidth/e.naturalHeight;this.host.style.setProperty("--image-aspect-ratio",t.toString())}}renderContent(){return o("div",{class:"content-container"},o("slot",{name:"content"}))}render(){return o(r,{key:"
|
|
1
|
+
import{proxyCustomElement as e,HTMLElement as t,h as o,Host as r,transformTag as a}from"@stencil/core/internal/client";import{Q as i,R as n}from"./index2.js";const s=()=>`:host{--cover-hero-overlay:linear-gradient(270deg, #0000 0%, #000000e6 100%);--cover-hero-text-color:var(--color-text-inverse);display:block;overflow:hidden}:host,*{box-sizing:border-box}:host .main-container{position:relative;width:100%;align-items:baseline}:host .content-container{color:var(--cover-hero-text-color);fill:var(--cover-hero-text-color)}:host .main-container .cover-container{position:relative;width:100%;padding-top:calc(100% / (var(--cover-hero-aspect-ratio, var(--image-aspect-ratio, 16/9))));background-color:var(--gray600)}::slotted([slot="cover"]){position:absolute;display:block;width:100%;height:100%;inset:0;object-fit:cover;object-position:top center}::slotted(z-info-reveal){position:absolute;z-index:1;right:var(--grid-margin);bottom:var(--grid-margin)}:host([variant="overlay"]:not([preserve-aspect-ratio=""],[preserve-aspect-ratio="true"])) .main-container{height:100%}:host([variant="overlay"]:not([preserve-aspect-ratio=""],[preserve-aspect-ratio="true"])) .main-container .cover-container{position:absolute;z-index:-1;height:100%;padding:0}:host([variant="overlay"]) .main-container .cover-container::after{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--cover-hero-overlay);content:""}:host([variant="overlay"]:is([preserve-aspect-ratio=""],[preserve-aspect-ratio="true"])) .main-container .content-container{position:absolute;inset:0}:host([variant="overlay"]) .main-container .content-container{height:100%;padding:var(--grid-margin)}:host([variant="stacked"]){--cover-hero-text-color:var(--color-default-text)}:host([variant="stacked"]) .content-container ::slotted(*){padding:var(--grid-margin) 0}`;const c=e(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.variant=i.OVERLAY;this.contentPosition=n.TOP;this.preserveAspectRatio=true}onImgLoad({target:e}){if(e instanceof Image&&e.closest("[slot=cover]")){const t=e.naturalWidth/e.naturalHeight;this.host.style.setProperty("--image-aspect-ratio",t.toString())}}renderContent(){return o("div",{class:"content-container"},o("slot",{name:"content"}))}render(){return o(r,{key:"5d8f0ff86c4f61801555706767835826779e2d0b"},this.variant===i.STACKED&&this.contentPosition===n.TOP&&this.renderContent(),o("div",{key:"00a33a61d3ddfc4302a31880a3ebfba515d12949",class:"main-container"},o("div",{key:"d29ac7e60460e9ce8f1f5db797c63eb5dbe11ab1",class:"cover-container"},o("slot",{key:"82750e41966c1aa21c5bc775e570806981f56fa9",name:"cover"})),o("slot",{key:"39b1a8e46a32cbb7dcbbc23ce8a404994515ddf3",name:"info-reveal"}),this.variant===i.OVERLAY&&this.renderContent()),this.variant===i.STACKED&&this.contentPosition===n.BOTTOM&&this.renderContent())}get host(){return this}static get style(){return s()}},[257,"z-cover-hero",{variant:[513],contentPosition:[513,"content-position"],preserveAspectRatio:[516,"preserve-aspect-ratio"]},[[2,"load","onImgLoad"]]]);function v(){if(typeof customElements==="undefined"){return}const e=["z-cover-hero"];e.forEach((e=>{switch(e){case"z-cover-hero":if(!customElements.get(a(e))){customElements.define(a(e),c)}break}}))}const l=c;const d=v;export{l as ZCoverHero,d as defineCustomElement};
|
|
2
2
|
//# sourceMappingURL=z-cover-hero.js.map
|