@oiz/stzh-components 3.0.0-beta1 → 3.0.0-beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{app-globals-d508a3bc.js → app-globals-4968ae1c.js} +2 -2
- package/dist/cjs/{app-globals-d508a3bc.js.map → app-globals-4968ae1c.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stzh-badge_3.cjs.entry.js +1 -1
- package/dist/cjs/stzh-badge_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-components.cjs.js +2 -2
- package/dist/cjs/stzh-cspace.cjs.entry.js +1 -1
- package/dist/cjs/stzh-cspace.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-cta.cjs.entry.js +1 -1
- package/dist/cjs/stzh-cta.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-gallery.cjs.entry.js +13 -10
- package/dist/cjs/stzh-gallery.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-header.cjs.entry.js +1 -1
- package/dist/cjs/stzh-header.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-pagebottom.cjs.entry.js +15 -9
- package/dist/cjs/stzh-pagebottom.cjs.entry.js.map +1 -1
- package/dist/cjs/{stzh-share.cjs.entry.js → stzh-print_2.cjs.entry.js} +53 -11
- package/dist/cjs/stzh-print_2.cjs.entry.js.map +1 -0
- package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js +1 -1
- package/dist/cjs/stzh-skin-portal-mitwirken.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-sticky-actions.cjs.entry.js +15 -9
- package/dist/cjs/stzh-sticky-actions.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-sticky.cjs.entry.js +13 -4
- package/dist/cjs/stzh-sticky.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-tooltip.cjs.entry.js +2 -1
- package/dist/cjs/stzh-tooltip.cjs.entry.js.map +1 -1
- package/dist/collection/assets/i18n/de.json +3 -0
- package/dist/collection/assets/i18n/en.json +3 -0
- package/dist/collection/assets/media/icons/mono/facebook.svg +1 -1
- package/dist/collection/assets/media/icons/mono/linkedin.svg +1 -1
- package/dist/collection/assets/media/icons/mono/mail.svg +1 -1
- package/dist/collection/assets/media/icons/mono/xing.svg +1 -1
- package/dist/collection/assets/meta/icons-preview.html +4 -4
- package/dist/collection/components/stzh-button/stzh-button.css +1 -1
- package/dist/collection/components/stzh-cspace/stzh-cspace.css +11 -0
- package/dist/collection/components/stzh-cta/stzh-cta.css +1 -1
- package/dist/collection/components/stzh-cta/stzh-cta.js +1 -1
- package/dist/collection/components/stzh-cta/stzh-cta.js.map +1 -1
- package/dist/collection/components/stzh-gallery/stzh-gallery.e2e.js +1 -0
- package/dist/collection/components/stzh-gallery/stzh-gallery.e2e.js.map +1 -1
- package/dist/collection/components/stzh-gallery/stzh-gallery.js +32 -9
- package/dist/collection/components/stzh-gallery/stzh-gallery.js.map +1 -1
- package/dist/collection/components/stzh-gallery/stzh-gallery.stories.js +9 -0
- package/dist/collection/components/stzh-header/stzh-header.js +1 -1
- package/dist/collection/components/stzh-header/stzh-header.js.map +1 -1
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.css +54 -13
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.e2e.js +2 -1
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.e2e.js.map +1 -1
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.js +56 -12
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.js.map +1 -1
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.localization.js +2 -0
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.localization.js.map +1 -0
- package/dist/collection/components/stzh-pagebottom/stzh-pagebottom.stories.js +87 -9
- package/dist/collection/components/stzh-scrollup/stzh-scrollup.stories.js +20 -18
- package/dist/collection/components/stzh-share/stzh-share.css +1 -43
- package/dist/collection/components/stzh-share/stzh-share.js +10 -10
- package/dist/collection/components/stzh-share/stzh-share.js.map +1 -1
- package/dist/collection/components/stzh-skin-portal-mitwirken/stzh-skin-portal-mitwirken.css +10 -0
- package/dist/collection/components/stzh-sticky/stzh-sticky.css +1 -1
- package/dist/collection/components/stzh-sticky/stzh-sticky.js +13 -4
- package/dist/collection/components/stzh-sticky/stzh-sticky.js.map +1 -1
- package/dist/collection/components/stzh-sticky-actions/stzh-sticky-actions.js +15 -9
- package/dist/collection/components/stzh-sticky-actions/stzh-sticky-actions.js.map +1 -1
- package/dist/collection/components/stzh-sticky-actions/stzh-sticky-actions.stories.js +20 -18
- package/dist/collection/components/stzh-tooltip/stzh-tooltip.css +3 -0
- package/dist/collection/components/stzh-tooltip/stzh-tooltip.js +19 -0
- package/dist/collection/components/stzh-tooltip/stzh-tooltip.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/stzh-button2.js +1 -1
- package/dist/components/stzh-button2.js.map +1 -1
- package/dist/components/stzh-cspace.js +1 -1
- package/dist/components/stzh-cspace.js.map +1 -1
- package/dist/components/stzh-cta.js +1 -1
- package/dist/components/stzh-cta.js.map +1 -1
- package/dist/components/stzh-gallery.js +16 -11
- package/dist/components/stzh-gallery.js.map +1 -1
- package/dist/components/stzh-header.js +1 -1
- package/dist/components/stzh-header.js.map +1 -1
- package/dist/components/stzh-pagebottom.js +39 -12
- package/dist/components/stzh-pagebottom.js.map +1 -1
- package/dist/components/stzh-print.js +1 -58
- package/dist/components/stzh-print.js.map +1 -1
- package/dist/{esm/stzh-print.entry.js → components/stzh-print2.js} +25 -11
- package/dist/components/stzh-print2.js.map +1 -0
- package/dist/components/stzh-share2.js +23 -11
- package/dist/components/stzh-share2.js.map +1 -1
- package/dist/components/stzh-skin-portal-mitwirken.js +1 -1
- package/dist/components/stzh-skin-portal-mitwirken.js.map +1 -1
- package/dist/components/stzh-sticky-actions.js +15 -9
- package/dist/components/stzh-sticky-actions.js.map +1 -1
- package/dist/components/stzh-sticky2.js +13 -4
- package/dist/components/stzh-sticky2.js.map +1 -1
- package/dist/components/stzh-tooltip2.js +3 -1
- package/dist/components/stzh-tooltip2.js.map +1 -1
- package/dist/esm/{app-globals-984d1c64.js → app-globals-924beb17.js} +2 -2
- package/dist/esm/{app-globals-984d1c64.js.map → app-globals-924beb17.js.map} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/stzh-badge_3.entry.js +1 -1
- package/dist/esm/stzh-badge_3.entry.js.map +1 -1
- package/dist/esm/stzh-components.js +2 -2
- package/dist/esm/stzh-cspace.entry.js +1 -1
- package/dist/esm/stzh-cspace.entry.js.map +1 -1
- package/dist/esm/stzh-cta.entry.js +1 -1
- package/dist/esm/stzh-cta.entry.js.map +1 -1
- package/dist/esm/stzh-gallery.entry.js +13 -10
- package/dist/esm/stzh-gallery.entry.js.map +1 -1
- package/dist/esm/stzh-header.entry.js +1 -1
- package/dist/esm/stzh-header.entry.js.map +1 -1
- package/dist/esm/stzh-pagebottom.entry.js +15 -9
- package/dist/esm/stzh-pagebottom.entry.js.map +1 -1
- package/dist/esm/{stzh-share.entry.js → stzh-print_2.entry.js} +54 -13
- package/dist/esm/stzh-print_2.entry.js.map +1 -0
- package/dist/esm/stzh-skin-portal-mitwirken.entry.js +1 -1
- package/dist/esm/stzh-skin-portal-mitwirken.entry.js.map +1 -1
- package/dist/esm/stzh-sticky-actions.entry.js +15 -9
- package/dist/esm/stzh-sticky-actions.entry.js.map +1 -1
- package/dist/esm/stzh-sticky.entry.js +13 -4
- package/dist/esm/stzh-sticky.entry.js.map +1 -1
- package/dist/esm/stzh-tooltip.entry.js +2 -1
- package/dist/esm/stzh-tooltip.entry.js.map +1 -1
- package/dist/stzh-components/assets/i18n/de.json +3 -0
- package/dist/stzh-components/assets/i18n/en.json +3 -0
- package/dist/stzh-components/assets/media/icons/mono/facebook.svg +1 -1
- package/dist/stzh-components/assets/media/icons/mono/linkedin.svg +1 -1
- package/dist/stzh-components/assets/media/icons/mono/mail.svg +1 -1
- package/dist/stzh-components/assets/media/icons/mono/xing.svg +1 -1
- package/dist/stzh-components/assets/meta/icons-preview.html +4 -4
- package/dist/stzh-components/p-2e713d1e.entry.js +2 -0
- package/dist/stzh-components/p-2e713d1e.entry.js.map +1 -0
- package/dist/stzh-components/p-31a45529.entry.js +2 -0
- package/dist/stzh-components/p-31a45529.entry.js.map +1 -0
- package/dist/stzh-components/p-33b46d08.entry.js +2 -0
- package/dist/stzh-components/{p-a2656f84.entry.js.map → p-33b46d08.entry.js.map} +1 -1
- package/dist/stzh-components/{p-52078c0b.entry.js → p-3641eb0c.entry.js} +2 -2
- package/dist/stzh-components/p-3641eb0c.entry.js.map +1 -0
- package/dist/stzh-components/p-475fc161.entry.js +2 -0
- package/dist/stzh-components/p-475fc161.entry.js.map +1 -0
- package/dist/stzh-components/{p-83978293.entry.js → p-5511087f.entry.js} +2 -2
- package/dist/stzh-components/p-5511087f.entry.js.map +1 -0
- package/dist/stzh-components/p-705d5931.entry.js +2 -0
- package/dist/stzh-components/{p-35b78231.entry.js.map → p-705d5931.entry.js.map} +1 -1
- package/dist/stzh-components/{p-e2485377.js → p-862a98f9.js} +2 -2
- package/dist/stzh-components/{p-879795a9.entry.js → p-bf79dbd0.entry.js} +2 -2
- package/dist/stzh-components/{p-879795a9.entry.js.map → p-bf79dbd0.entry.js.map} +1 -1
- package/dist/stzh-components/p-d2f7c020.entry.js +2 -0
- package/dist/stzh-components/p-d2f7c020.entry.js.map +1 -0
- package/dist/stzh-components/p-fa82219c.entry.js +2 -0
- package/dist/stzh-components/p-fa82219c.entry.js.map +1 -0
- package/dist/stzh-components/{p-fa3c5519.entry.js → p-fb9cc8a7.entry.js} +2 -2
- package/dist/stzh-components/p-fb9cc8a7.entry.js.map +1 -0
- package/dist/stzh-components/stzh-components.css +1 -1
- package/dist/stzh-components/stzh-components.esm.js +1 -1
- package/dist/stzh-components/stzh-components.esm.js.map +1 -1
- package/dist/types/components/stzh-cta/stzh-cta.d.ts +1 -1
- package/dist/types/components/stzh-gallery/stzh-gallery.d.ts +5 -0
- package/dist/types/components/stzh-pagebottom/stzh-pagebottom.d.ts +11 -1
- package/dist/types/components/stzh-pagebottom/stzh-pagebottom.localization.d.ts +4 -0
- package/dist/types/components/stzh-sticky-actions/stzh-sticky-actions.d.ts +2 -2
- package/dist/types/components/stzh-tooltip/stzh-tooltip.d.ts +2 -0
- package/dist/types/components.d.ts +40 -6
- package/dist/vscode-data.json +25 -5
- package/package.json +1 -1
- package/dist/cjs/stzh-print.cjs.entry.js +0 -52
- package/dist/cjs/stzh-print.cjs.entry.js.map +0 -1
- package/dist/cjs/stzh-share.cjs.entry.js.map +0 -1
- package/dist/collection/patterns/print/print.e2e.js +0 -18
- package/dist/collection/patterns/print/print.e2e.js.map +0 -1
- package/dist/esm/stzh-print.entry.js.map +0 -1
- package/dist/esm/stzh-share.entry.js.map +0 -1
- package/dist/stzh-components/p-2676b9db.entry.js +0 -2
- package/dist/stzh-components/p-2676b9db.entry.js.map +0 -1
- package/dist/stzh-components/p-2afe2028.entry.js +0 -2
- package/dist/stzh-components/p-2afe2028.entry.js.map +0 -1
- package/dist/stzh-components/p-35b78231.entry.js +0 -2
- package/dist/stzh-components/p-51be8f59.entry.js +0 -2
- package/dist/stzh-components/p-51be8f59.entry.js.map +0 -1
- package/dist/stzh-components/p-52078c0b.entry.js.map +0 -1
- package/dist/stzh-components/p-83978293.entry.js.map +0 -1
- package/dist/stzh-components/p-89de4375.entry.js +0 -2
- package/dist/stzh-components/p-89de4375.entry.js.map +0 -1
- package/dist/stzh-components/p-a2656f84.entry.js +0 -2
- package/dist/stzh-components/p-c67dcd7a.entry.js +0 -2
- package/dist/stzh-components/p-c67dcd7a.entry.js.map +0 -1
- package/dist/stzh-components/p-e142e3e5.entry.js +0 -2
- package/dist/stzh-components/p-e142e3e5.entry.js.map +0 -1
- package/dist/stzh-components/p-fa3c5519.entry.js.map +0 -1
- /package/dist/stzh-components/{p-e2485377.js.map → p-862a98f9.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stzh-gallery.js","sourceRoot":"","sources":["../../../../src/components/stzh-gallery/stzh-gallery.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Element,\n Listen,\n Prop,\n Watch,\n Fragment,\n Method,\n} from \"@stencil/core\";\n\nimport {\n StzhGalleryItem,\n Layout\n} from \"../../index\";\n\nimport { StzhGalleryLocalizedText } from \"./stzh-gallery.localization\";\n\nimport { } from \"photoswipe\";\n\nimport PhotoSwipeLightbox from \"photoswipe/dist/photoswipe-lightbox.esm.js\";\nimport PhotoSwipe from \"photoswipe/dist/photoswipe.esm.js\";\nimport PhotoSwipeDynamicCaption from 'photoswipe-dynamic-caption-plugin/photoswipe-dynamic-caption-plugin.esm.js';\n\nimport Close from \"./assets/close.svg\";\nimport AngleLeft from \"./assets/angle-left.svg\";\nimport AngleRight from \"./assets/angle-right.svg\";\n\nconst CLASS_LIGHTBOX = \"stzh-gallery__pswp\";\nconst CLASS_BODY_OPEN = \"stzh-gallery-open\";\n\ntype LightboxDataItem = {\n w: number\n h: number\n msrc: string\n src: string\n thumbCropped: boolean\n captionHtml: string\n};\n\n/**\n * @slot - Slot for custom content if `variant=\"custom\"` is used, lightbox will query for stzh-figure (this.itemElement) elements\n */\n@Component({\n tag: \"stzh-gallery\",\n styleUrl: \"stzh-gallery.scss\"\n})\nexport class StzhGallery {\n /** Translation strings */\n @Prop() localization: StzhGalleryLocalizedText;\n\n /** Aspect ratio */\n @Prop({ reflect: true }) ratio: Layout.Ratio = \"16:9\";\n /** Aspect ratio above small breakpoint */\n @Prop({ reflect: true }) ratioSmall: Layout.Ratio | \"inherit\" = \"inherit\";\n /** Aspect ratio above medium breakpoint */\n @Prop({ reflect: true }) ratioMedium: Layout.Ratio | \"inherit\" = \"inherit\";\n /** Aspect ratio above large breakpoint */\n @Prop({ reflect: true }) ratioLarge: Layout.Ratio | \"inherit\" = \"inherit\";\n /** Aspect ratio above ultra breakpoint */\n @Prop({ reflect: true }) ratioUltra: Layout.Ratio | \"inherit\" = \"inherit\";\n\n /** Nr of images shown (only for grid variant) */\n @Prop({ mutable: true }) showItems: number = 6;\n private _initialShowItems: number;\n\n /** Whether indicator should be shown */\n @Prop() carouselWithTrack: boolean = false;\n\n /** Nr of items shown when more link is clicked (only for grid variant) */\n @Prop() stepItems: number = 6;\n\n /**\n * Images in gallery.\n * Array of objects that must at least include `width`, `height` and `src` attribute:\n * `[{\"width\": 2522, \"height\": 1075, \"src\": \"media/images/example.jpg\"}, {\"width\": 2050, \"height\": 1367, \"src\": \"media/images/example2.jpg\"}]`\n *\n * Possible other optional properties are:\n * `alt`: Alternative image description\n * / `srcLightbox`: `src` for img tag inside lightbox (overwrites `src`)\n * / `srcsetLightbox`: `srcset` for img tag inside lightbox\n * / `copyright`: Copyright inside caption\n * / `heading`: Heading inside caption\n * / `headingLightbox`: Alternative heading for lightbox (overwrites `heading`)\n * / `caption`: Caption\n * / `captionLightbox`: Caption for lightbox (overwrites `caption`)\n * / `lightboxHtml`: Alternative html content for lightbox caption\n * / `hideCounter`: Whether to hide counter\n */\n @Prop() images: StzhGalleryItem[] | string = [];\n private _images: StzhGalleryItem[];\n private _imagesShown: StzhGalleryItem[];\n private _imagesLightboxDataSource: LightboxDataItem[];\n private _showMoreLink: boolean = false;\n\n /**\n * Variant:\n * `carousel`: every image is displayed inside a carousel (default mode with more than on picture)\n * / `single`: only one image is shown without carousel functionality (other images only reachable by lightbox)\n * / `grid`: every image is displayed inside a grid\n * / `custom`: nothing is rendered, only lightbox will be initialized, `stzh-figure` (`this.itemElement`) can be slotted in\n */\n @Prop() variant: \"carousel\" | \"single\" | \"grid\" | \"custom\" = \"carousel\";\n\n /** Preview item that will be looked up and mapped to images in lightbox. */\n @Prop() itemElement: string = \"stzh-figure\";\n\n /** Whether carousel is disabled */\n @Prop({ reflect: true }) carouselDisabled: boolean = false;\n\n /**\n * Whether autoplay is enabled.\n * Gets paused, when user has focus inside carousel element or hovers over it.\n * Also when reduced motion media query is active or carousel is set disabled.\n * Gets disabled permanently, when user interacts with carousel manually (clicks prev/next, scrolls or drags)\n */\n @Prop({ mutable: true }) carouselAutoplay: boolean = false;\n\n /** Timeout delay in milliseconds used for autoplay */\n @Prop() carouselAutoplayTimeout: number = 3000;\n\n @Element() element: HTMLStzhGalleryElement;\n\n @Method()\n async openLightbox(index: number = 0) {\n this.lightbox.loadAndOpen(index);\n }\n\n @Listen(\"appload\", { target: \"window\" })\n apploadListener() {\n // resize if any stencil components are rendered when lightbox is open\n if (this.lightbox && this.lightbox.pswp && this.lightbox.pswp.isOpen) {\n this.lightbox.pswp.updateSize(true);\n }\n }\n\n @Watch(\"showItems\")\n showItemsWatcher(newValue: number) {\n this._imagesShown = this._images.slice(0, newValue);\n this._showMoreLink = newValue < this._images.length;\n }\n\n @Watch(\"images\")\n imagesWatcher(newValue: StzhGalleryItem[] | string) {\n if (typeof newValue === \"string\") {\n this._images = JSON.parse(newValue);\n } else {\n this._images = newValue;\n }\n\n this.showItemsWatcher(this._initialShowItems);\n\n this._imagesLightboxDataSource = this._images.map((image, index) => {\n let captionHtml = \"\";\n\n const {\n lightboxHtml,\n heading,\n headingLightbox,\n caption,\n captionLightbox,\n copyright,\n hideCounter\n } = image;\n\n if (lightboxHtml) {\n captionHtml = lightboxHtml;\n } else if (heading || caption || headingLightbox || captionLightbox || copyright || !hideCounter) {\n captionHtml = `\n <div class=\"pswp__caption-wrapper\">\n <div class=\"pswp__heading-wrapper\">\n <div class=\"pswp__caption-counter\">${!hideCounter ? `${index+1}/${this._images.length}` : \"\"}</div>\n <div class=\"pswp__caption-heading\">${headingLightbox || heading || \"\"}</div>\n </div>\n <div class=\"pswp__caption\">\n <span class=\"pswp__caption-text\">${captionLightbox || caption || \"\"}</span>\n <span class=\"pswp__caption-copyright\">${copyright || \"\"}</span>\n </div>\n </div>\n `;\n }\n\n return {\n w: image.width,\n h: image.height,\n msrc: image.src,\n src: image.srcLightbox || image.src,\n srcset: image.srcsetLightbox,\n thumbCropped: true,\n captionHtml\n };\n });\n }\n\n private lightbox: any;\n private carouselElement: HTMLStzhCarouselElement;\n private carouselActionsElement: HTMLElement;\n\n private openCurrentCarouselSlide = () => {\n this.lightbox.loadAndOpen(this.carouselElement.slide);\n }\n \n private handleMoreClick = () => {\n this.showItems = this.stepItems + this.showItems;\n }\n\n initLightbox() {\n if (this._images.length === 0) {\n return;\n }\n\n this.lightbox = new PhotoSwipeLightbox({\n // appendToEl: this.element,\n // gallery: this.element, // not needed if we supply dataSource\n dataSource: this._imagesLightboxDataSource,\n pswpModule: PhotoSwipe,\n arrowPrevSVG: AngleLeft,\n arrowNextSVG: AngleRight,\n closeSVG: Close,\n zoom: false,\n counter: false,\n loop: false,\n bgOpacity: 1,\n mainClass: CLASS_LIGHTBOX,\n closeOnVerticalDrag: false,\n clickToCloseNonZoomable: false,\n\n // https://photoswipe.com/adjusting-zoom-level/\n // initialZoomLevel: 'fit',\n // secondaryZoomLevel: 'fit',\n // maxZoomLevel: 'fit',\n // clickToCloseNonZoomable: true,\n\n // translations\n closeTitle: this.localization.closeTitle,\n zoomTitle: this.localization.zoomTitle,\n arrowPrevTitle: this.localization.arrowPrevTitle,\n arrowNextTitle: this.localization.arrowNextTitle,\n errorMsg: this.localization.errorMsg,\n indexIndicatorSep: \"/\",\n\n paddingFn: (_viewportSize, _itemData, _index) => {\n // const captionHeight = this.lightbox.pswp?.currSlide?.dynamicCaption?.element?.offsetHeight || 0;\n\n let top = 16 + 44 + 8;\n let bottom = 16;\n let side = 0;\n\n // console.log(viewportSize.x, window.innerWidth)\n\n if (window.innerWidth >= 1600) { // ultra\n top = 32 + 56 + 20;\n bottom = 32;\n side = 126 + 56 + 56;\n } else if (window.innerWidth >= 1260) { // large\n top = 32 + 56 + 20;\n bottom = 32;\n side = 64 + 56 + 56;\n } else if (window.innerWidth >= 900) { // medium\n top = 20 + 44 + 20;\n bottom = 20;\n side = 40 + 44 + 20;\n } else if (window.innerWidth >= 600) { // small\n top = 16 + 44 + 20;\n bottom = 16;\n side = 32 + 44 + 20;\n }\n\n // add safe space to prevent flickering\n // bottom = bottom + 20;\n\n // if (captionHeight > 0) {\n // bottom = 20;\n // }\n\n return {\n top,\n bottom,\n left: side,\n right: side,\n };\n },\n });\n\n let firstHidden;\n let lastHidden;\n\n const showHiddenDuringAnimation = (slide) => {\n this.carouselActionsElement?.classList.remove(\"is-hidden-during-animation\");\n slide?.classList.remove(\"is-hidden-during-animation\");\n }\n\n const hideHiddenDuringAnimation = (slide) => {\n this.carouselActionsElement?.classList.add(\"is-hidden-during-animation\");\n slide?.classList.add(\"is-hidden-during-animation\");\n }\n\n const stopPropagation = (event) => {\n event.stopPropagation();\n }\n\n const updateSize = () => {\n this.lightbox.pswp.updateSize(true);\n }\n\n const slides = Array.from(this.element.querySelectorAll(this.itemElement));\n\n this.lightbox.addFilter(\"itemData\", (itemData, index: number) => {\n itemData.element = slides[index];\n return itemData;\n });\n\n this.lightbox.addFilter('thumbEl', (thumbEl, data, _index) => {\n const el = data.element?.querySelector('img') as HTMLImageElement;\n\n if (el) {\n return el;\n }\n\n return thumbEl;\n });\n\n this.lightbox.addFilter('numItems', () => {\n return this._images.length;\n });\n\n this.lightbox.on(\"afterInit\", () => {\n firstHidden = this.lightbox.pswp.currSlide.data.element;\n lastHidden = this.lightbox.pswp.currSlide.data.element;;\n\n hideHiddenDuringAnimation(firstHidden);\n\n if (this._images.length === 1) {\n this.lightbox.pswp.element.classList.add(\"pswp--one-image\");\n }\n });\n\n this.lightbox.on(\"beforeOpen\", () => {\n document.body.classList.add(CLASS_BODY_OPEN)\n });\n\n this.lightbox.on(\"close\", () => {\n document.body.classList.remove(CLASS_BODY_OPEN);\n\n // can be null in \"single\" variant, when not every slide is in carousel or grid\n if (this.lightbox.pswp.currSlide.data.element) {\n lastHidden = this.lightbox.pswp.currSlide.data.element;\n }\n\n if (lastHidden !== firstHidden) {\n showHiddenDuringAnimation(firstHidden);\n hideHiddenDuringAnimation(lastHidden);\n }\n });\n\n this.lightbox.on(\"destroy\", () => {\n showHiddenDuringAnimation(lastHidden);\n });\n \n this.lightbox.on(\"change\", () => {\n // update carousel to same slide the lightshow shows\n this.carouselElement?.slideTo(this.lightbox.pswp.currIndex, \"auto\");\n // enable scroll for caption div\n this.lightbox.pswp.currSlide.dynamicCaption.element.addEventListener('scroll', stopPropagation);\n this.lightbox.pswp.currSlide.dynamicCaption.element.addEventListener('wheel', stopPropagation);\n });\n\n // this.lightbox.addFilter('preventPointerEvent', (preventPointerEvent, originalEvent, pointerType) => {\n // // return true to preventDefault pointermove/pointerdown events\n // // (also applies to touchmove/mousemove)\n // console.log(preventPointerEvent, originalEvent, pointerType);\n // return false;\n // });\n \n this.lightbox.on('bindEvents', () => {\n this.lightbox.pswp.element.addEventListener('stzhClamp', updateSize);\n this.lightbox.pswp.element.addEventListener('stzhExpand', updateSize);\n this.lightbox.pswp.element.addEventListener('stzhOpen', updateSize);\n this.lightbox.pswp.element.addEventListener('stzhOpened', updateSize);\n this.lightbox.pswp.element.addEventListener('stzhClose', updateSize);\n this.lightbox.pswp.element.addEventListener('stzhClosed', updateSize);\n });\n\n new PhotoSwipeDynamicCaption(this.lightbox, {\n type: 'below',\n captionContent: (slide) => { // '.stzh-gallery__caption-content'\n return slide.data.captionHtml;\n },\n mobileLayoutBreakpoint: () => {\n return window.innerWidth < 600;\n },\n // if enabled, the image will always be vertically centered in the remaining space between the caption and the rest of the viewport.\n // If set to false (default value) - the image will lift up only if the caption does not fit below.\n // verticallyCenterImage: false,\n\n // when the caption x position is less than this value, it'll get class pswp__dynamic-caption--on-hor-edge. You may use it to apply different styling, such as horizontal padding.\n // horizontalEdgeThreshold: 20\n\n // a ratio defines the amount of horizontal empty space before the mobile caption switches to an \"overlap\" layout. \n // For example, if it's set to 0.3 - the caption will start overlapping the image when more than 30% of horizontal space is not occupied by an image. If you set it to 0 - the caption will always overlap. If you set it to 1 - the caption will constantly shift the image (unless it's taller than the viewport).\n mobileCaptionOverlapRatio: 1\n });\n\n this.lightbox.init();\n }\n\n // componentShouldUpdate(_newValue, _oldValue, prop: string) {\n // return [\"isOpen\"].includes(prop) === false;\n // }\n\n async componentWillLoad() {\n this._initialShowItems = this.showItems;\n this.imagesWatcher(this.images);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"gallery\");\n }\n }\n\n async componentWillUpdate() {\n if (this.lightbox) {\n this.lightbox.destroy();\n this.lightbox = null;\n }\n }\n\n componentDidRender() {\n if (!this.lightbox) {\n this.initLightbox();\n }\n }\n\n disconnectedCallback() {\n if (this.lightbox) {\n this.lightbox.destroy();\n this.lightbox = null;\n }\n }\n\n private renderFigure(image: StzhGalleryItem, index: number): HTMLStzhFigureElement {\n const total = this._images.length;\n\n return (\n <stzh-figure\n class=\"stzh-gallery__slide\"\n caption={image.caption}\n heading={image.heading}\n counter={!image.hideCounter\n ? `${index+1}/${total}`\n : \"\"}\n >\n <stzh-ratio\n ratio={this.ratio}\n ratioSmall={this.ratioSmall}\n ratioMedium={this.ratioMedium}\n ratioLarge={this.ratioLarge}\n ratioUltra={this.ratioUltra}\n onClick={(event) => {\n event.preventDefault();\n this.openLightbox(index)\n }}\n >\n <img\n loading=\"lazy\"\n src={image.src}\n alt={\n (image.alt || this.localization.defaultAlt || '')\n .replace(/\\{current\\}/, (index + 1).toString())\n .replace(/\\{total\\}/, total.toString())}\n />\n\n {(this.variant === \"single\" || this.variant === \"grid\" || this._images.length === 1) &&\n <stzh-hspace\n class=\"stzh-gallery__actions\"\n justify=\"end\"\n items=\"end\"\n size=\"xsmall\"\n >\n <stzh-button\n variant=\"secondary\"\n size=\"small\"\n icon=\"expand\"\n label={this.localization.openLightbox}\n icon-only\n onClick={() => {\n this.openLightbox(index)\n }}\n ></stzh-button>\n </stzh-hspace>\n }\n </stzh-ratio>\n </stzh-figure>\n );\n }\n\n render() {\n const classes = {\n \"stzh-gallery\": true,\n [`stzh-gallery--${this.variant}`]: !!this.variant,\n };\n\n return (\n <Host>\n <div class={classes}>\n {(this.variant === \"single\" || this._images.length === 1) &&\n <Fragment>\n {this.renderFigure(this._images[0], 0)}\n </Fragment>\n }\n\n {(this.variant === \"grid\" && this._images.length > 0) &&\n <Fragment>\n <div class=\"stzh-gallery__list\">\n {this._imagesShown.map((image, index) => this.renderFigure(image, index))}\n </div>\n\n {this._showMoreLink &&\n <div class=\"stzh-gallery__list-actions\">\n <stzh-button\n label={this.localization.showMore}\n onClick={this.handleMoreClick}\n ></stzh-button>\n </div>\n }\n </Fragment>\n }\n\n {(this.variant === \"carousel\" && this._images.length > 1) &&\n <stzh-carousel\n ref={(el) => (this.carouselElement = el as HTMLStzhCarouselElement)}\n disabled={this.carouselDisabled}\n autoplay={this.carouselAutoplay}\n autoplayTimeout={this.carouselAutoplayTimeout}\n withTrack={this.carouselWithTrack}\n >\n <stzh-ratio\n ref={(el) => (this.carouselActionsElement = el as HTMLElement)}\n slot=\"actions\"\n class=\"stzh-gallery__carousel-actions\"\n ratio={this.ratio}\n ratioSmall={this.ratioSmall}\n ratioMedium={this.ratioMedium}\n ratioLarge={this.ratioLarge}\n ratioUltra={this.ratioUltra}\n >\n <div>\n <stzh-button\n class=\"stzh-carousel-action-previous\"\n data-stzh-carousel-previous\n variant=\"secondary\"\n size=\"small\"\n icon=\"angle-left\"\n label={this.localization.arrowPrevTitle}\n icon-only\n ></stzh-button>\n <stzh-button\n class=\"stzh-carousel-action-next\"\n data-stzh-carousel-next\n variant=\"secondary\"\n size=\"small\"\n icon=\"angle-right\"\n label={this.localization.arrowNextTitle}\n icon-only\n ></stzh-button>\n </div>\n <stzh-hspace justify=\"end\" items=\"end\" size=\"xsmall\">\n <stzh-button\n variant=\"secondary\"\n size=\"small\"\n icon=\"expand\"\n label={this.localization.openLightbox}\n icon-only\n onClick={this.openCurrentCarouselSlide}\n ></stzh-button>\n </stzh-hspace>\n </stzh-ratio>\n\n {this._images.map((image, index) => this.renderFigure(image, index))}\n </stzh-carousel>\n }\n\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"stzh-gallery.js","sourceRoot":"","sources":["../../../../src/components/stzh-gallery/stzh-gallery.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Element,\n Listen,\n Prop,\n Watch,\n Fragment,\n Method,\n} from \"@stencil/core\";\n\nimport {\n StzhGalleryItem,\n Layout\n} from \"../../index\";\n\nimport { StzhGalleryLocalizedText } from \"./stzh-gallery.localization\";\n\nimport { } from \"photoswipe\";\n\nimport PhotoSwipeLightbox from \"photoswipe/dist/photoswipe-lightbox.esm.js\";\nimport PhotoSwipe from \"photoswipe/dist/photoswipe.esm.js\";\nimport PhotoSwipeDynamicCaption from 'photoswipe-dynamic-caption-plugin/photoswipe-dynamic-caption-plugin.esm.js';\n\nimport Close from \"./assets/close.svg\";\nimport AngleLeft from \"./assets/angle-left.svg\";\nimport AngleRight from \"./assets/angle-right.svg\";\n\nconst CLASS_LIGHTBOX = \"stzh-gallery__pswp\";\nconst CLASS_BODY_OPEN = \"stzh-gallery-open\";\n\ntype LightboxDataItem = {\n w: number\n h: number\n msrc: string\n src: string\n thumbCropped: boolean\n captionHtml: string\n};\n\n/**\n * @slot - Slot for custom content if `variant=\"custom\"` is used, lightbox will query for stzh-figure (this.itemElement) elements\n */\n@Component({\n tag: \"stzh-gallery\",\n styleUrl: \"stzh-gallery.scss\"\n})\nexport class StzhGallery {\n /** Translation strings */\n @Prop() localization: StzhGalleryLocalizedText;\n\n /** Aspect ratio */\n @Prop({ reflect: true }) ratio: Layout.Ratio = \"16:9\";\n /** Aspect ratio above small breakpoint */\n @Prop({ reflect: true }) ratioSmall: Layout.Ratio | \"inherit\" = \"inherit\";\n /** Aspect ratio above medium breakpoint */\n @Prop({ reflect: true }) ratioMedium: Layout.Ratio | \"inherit\" = \"inherit\";\n /** Aspect ratio above large breakpoint */\n @Prop({ reflect: true }) ratioLarge: Layout.Ratio | \"inherit\" = \"inherit\";\n /** Aspect ratio above ultra breakpoint */\n @Prop({ reflect: true }) ratioUltra: Layout.Ratio | \"inherit\" = \"inherit\";\n\n /** Nr of images shown (only for grid variant) */\n @Prop({ mutable: true }) showItems: number = 6;\n private _initialShowItems: number;\n\n /** Whether indicator should be shown */\n @Prop() carouselWithTrack: boolean = false;\n\n /** Nr of items shown when more link is clicked (only for grid variant) */\n @Prop() stepItems: number = 6;\n\n /**\n * Images in gallery.\n * Array of objects that must at least include `width`, `height` and `src` attribute:\n * `[{\"width\": 2522, \"height\": 1075, \"src\": \"media/images/example.jpg\"}, {\"width\": 2050, \"height\": 1367, \"src\": \"media/images/example2.jpg\"}]`\n *\n * Possible other optional properties are:\n * `alt`: Alternative image description\n * / `srcLightbox`: `src` for img tag inside lightbox (overwrites `src`)\n * / `srcsetLightbox`: `srcset` for img tag inside lightbox\n * / `copyright`: Copyright inside caption\n * / `heading`: Heading inside caption\n * / `headingLightbox`: Alternative heading for lightbox (overwrites `heading`)\n * / `caption`: Caption\n * / `captionLightbox`: Caption for lightbox (overwrites `caption`)\n * / `lightboxHtml`: Alternative html content for lightbox caption\n * / `hideCounter`: Whether to hide counter\n */\n @Prop() images: StzhGalleryItem[] | string = [];\n private _images: StzhGalleryItem[];\n private _imagesShown: StzhGalleryItem[];\n private _imagesLightboxDataSource: LightboxDataItem[];\n private _showMoreLink: boolean = false;\n\n /**\n * Variant:\n * `carousel`: every image is displayed inside a carousel (default mode with more than on picture)\n * / `single`: only one image is shown without carousel functionality (other images only reachable by lightbox)\n * / `grid`: every image is displayed inside a grid\n * / `custom`: nothing is rendered, only lightbox will be initialized, `stzh-figure` (`this.itemElement`) can be slotted in\n */\n @Prop() variant: \"carousel\" | \"single\" | \"grid\" | \"custom\" = \"carousel\";\n\n /** Preview item that will be looked up and mapped to images in lightbox. */\n @Prop() itemElement: string = \"stzh-figure\";\n\n /** Whether carousel is disabled */\n @Prop({ reflect: true }) carouselDisabled: boolean = false;\n\n /**\n * Whether autoplay is enabled.\n * Gets paused, when user has focus inside carousel element or hovers over it.\n * Also when reduced motion media query is active or carousel is set disabled.\n * Gets disabled permanently, when user interacts with carousel manually (clicks prev/next, scrolls or drags)\n */\n @Prop({ mutable: true }) carouselAutoplay: boolean = false;\n\n /** Timeout delay in milliseconds used for autoplay */\n @Prop() carouselAutoplayTimeout: number = 3000;\n\n /**\n * Exclude first image in lightbox images (but still use as preview image).\n * Only used when `variant=single` is used.\n */\n @Prop() excludeFirstImage: boolean = false;\n\n @Element() element: HTMLStzhGalleryElement;\n\n @Method()\n async openLightbox(index: number = 0) {\n this.lightbox.loadAndOpen(index);\n }\n\n @Listen(\"appload\", { target: \"window\" })\n apploadListener() {\n // resize if any stencil components are rendered when lightbox is open\n if (this.lightbox && this.lightbox.pswp && this.lightbox.pswp.isOpen) {\n this.lightbox.pswp.updateSize(true);\n }\n }\n\n @Watch(\"showItems\")\n showItemsWatcher(newValue: number) {\n this._imagesShown = this._images.slice(0, newValue);\n this._showMoreLink = newValue < this._images.length;\n }\n\n @Watch(\"images\")\n @Watch(\"excludeFirstImage\")\n imagesWatcher(newValue: StzhGalleryItem[] | string) {\n if (typeof newValue === \"string\") {\n this._images = JSON.parse(newValue);\n } else {\n this._images = newValue;\n }\n\n this.showItemsWatcher(this._initialShowItems);\n\n const lightboxImages = this.excludeFirstImage ? this._images.slice(1) : this._images;\n\n this._imagesLightboxDataSource = lightboxImages.map((image, index) => {\n let captionHtml = \"\";\n\n const {\n lightboxHtml,\n heading,\n headingLightbox,\n caption,\n captionLightbox,\n copyright,\n hideCounter\n } = image;\n\n if (lightboxHtml) {\n captionHtml = lightboxHtml;\n } else if (heading || caption || headingLightbox || captionLightbox || copyright || !hideCounter) {\n captionHtml = `\n <div class=\"pswp__caption-wrapper\">\n <div class=\"pswp__heading-wrapper\">\n <div class=\"pswp__caption-counter\">${!hideCounter ? `${index+1}/${lightboxImages.length}` : \"\"}</div>\n <div class=\"pswp__caption-heading\">${headingLightbox || heading || \"\"}</div>\n </div>\n <div class=\"pswp__caption\">\n <span class=\"pswp__caption-text\">${captionLightbox || caption || \"\"}</span>\n <span class=\"pswp__caption-copyright\">${copyright || \"\"}</span>\n </div>\n </div>\n `;\n }\n\n return {\n w: image.width,\n h: image.height,\n msrc: image.src,\n src: image.srcLightbox || image.src,\n srcset: image.srcsetLightbox,\n thumbCropped: true,\n captionHtml\n };\n });\n }\n\n private lightbox: any;\n private carouselElement: HTMLStzhCarouselElement;\n private carouselActionsElement: HTMLElement;\n\n private openCurrentCarouselSlide = () => {\n this.lightbox.loadAndOpen(this.carouselElement.slide);\n }\n\n private handleMoreClick = () => {\n this.showItems = this.stepItems + this.showItems;\n }\n\n initLightbox() {\n if (this._imagesLightboxDataSource.length === 0) {\n return;\n }\n\n this.lightbox = new PhotoSwipeLightbox({\n // appendToEl: this.element,\n // gallery: this.element, // not needed if we supply dataSource\n dataSource: this._imagesLightboxDataSource,\n pswpModule: PhotoSwipe,\n arrowPrevSVG: AngleLeft,\n arrowNextSVG: AngleRight,\n closeSVG: Close,\n zoom: false,\n counter: false,\n loop: false,\n bgOpacity: 1,\n mainClass: CLASS_LIGHTBOX,\n closeOnVerticalDrag: false,\n clickToCloseNonZoomable: false,\n\n // https://photoswipe.com/adjusting-zoom-level/\n // initialZoomLevel: 'fit',\n // secondaryZoomLevel: 'fit',\n // maxZoomLevel: 'fit',\n // clickToCloseNonZoomable: true,\n\n // translations\n closeTitle: this.localization.closeTitle,\n zoomTitle: this.localization.zoomTitle,\n arrowPrevTitle: this.localization.arrowPrevTitle,\n arrowNextTitle: this.localization.arrowNextTitle,\n errorMsg: this.localization.errorMsg,\n indexIndicatorSep: \"/\",\n\n paddingFn: (_viewportSize, _itemData, _index) => {\n // const captionHeight = this.lightbox.pswp?.currSlide?.dynamicCaption?.element?.offsetHeight || 0;\n\n let top = 16 + 44 + 8;\n let bottom = 16;\n let side = 0;\n\n // console.log(viewportSize.x, window.innerWidth)\n\n if (window.innerWidth >= 1600) { // ultra\n top = 32 + 56 + 20;\n bottom = 32;\n side = 126 + 56 + 56;\n } else if (window.innerWidth >= 1260) { // large\n top = 32 + 56 + 20;\n bottom = 32;\n side = 64 + 56 + 56;\n } else if (window.innerWidth >= 900) { // medium\n top = 20 + 44 + 20;\n bottom = 20;\n side = 40 + 44 + 20;\n } else if (window.innerWidth >= 600) { // small\n top = 16 + 44 + 20;\n bottom = 16;\n side = 32 + 44 + 20;\n }\n\n // add safe space to prevent flickering\n // bottom = bottom + 20;\n\n // if (captionHeight > 0) {\n // bottom = 20;\n // }\n\n return {\n top,\n bottom,\n left: side,\n right: side,\n };\n },\n });\n\n let firstHidden;\n let lastHidden;\n\n const showHiddenDuringAnimation = (slide) => {\n this.carouselActionsElement?.classList.remove(\"is-hidden-during-animation\");\n slide?.classList.remove(\"is-hidden-during-animation\");\n }\n\n const hideHiddenDuringAnimation = (slide) => {\n this.carouselActionsElement?.classList.add(\"is-hidden-during-animation\");\n slide?.classList.add(\"is-hidden-during-animation\");\n }\n\n const stopPropagation = (event) => {\n event.stopPropagation();\n }\n\n const updateSize = () => {\n this.lightbox.pswp.updateSize(true);\n }\n\n const slides = Array.from(this.element.querySelectorAll(this.itemElement));\n\n this.lightbox.addFilter(\"itemData\", (itemData, index: number) => {\n itemData.element = slides[index];\n return itemData;\n });\n\n this.lightbox.addFilter('thumbEl', (thumbEl, data, _index) => {\n const el = data.element?.querySelector('img') as HTMLImageElement;\n\n if (el) {\n return el;\n }\n\n return thumbEl;\n });\n\n this.lightbox.addFilter('numItems', () => {\n return this._imagesLightboxDataSource.length;\n });\n\n this.lightbox.on(\"afterInit\", () => {\n firstHidden = this.lightbox.pswp.currSlide.data.element;\n lastHidden = this.lightbox.pswp.currSlide.data.element;;\n\n hideHiddenDuringAnimation(firstHidden);\n\n if (this._imagesLightboxDataSource.length === 1) {\n this.lightbox.pswp.element.classList.add(\"pswp--one-image\");\n }\n });\n\n this.lightbox.on(\"beforeOpen\", () => {\n document.body.classList.add(CLASS_BODY_OPEN)\n });\n\n this.lightbox.on(\"close\", () => {\n document.body.classList.remove(CLASS_BODY_OPEN);\n\n // can be null in \"single\" variant, when not every slide is in carousel or grid\n if (this.lightbox.pswp.currSlide.data.element) {\n lastHidden = this.lightbox.pswp.currSlide.data.element;\n }\n\n if (lastHidden !== firstHidden) {\n showHiddenDuringAnimation(firstHidden);\n hideHiddenDuringAnimation(lastHidden);\n }\n });\n\n this.lightbox.on(\"destroy\", () => {\n showHiddenDuringAnimation(lastHidden);\n });\n\n this.lightbox.on(\"change\", () => {\n // update carousel to same slide the lightshow shows\n this.carouselElement?.slideTo(this.lightbox.pswp.currIndex, \"auto\");\n // enable scroll for caption div\n this.lightbox.pswp.currSlide.dynamicCaption.element.addEventListener('scroll', stopPropagation);\n this.lightbox.pswp.currSlide.dynamicCaption.element.addEventListener('wheel', stopPropagation);\n });\n\n // this.lightbox.addFilter('preventPointerEvent', (preventPointerEvent, originalEvent, pointerType) => {\n // // return true to preventDefault pointermove/pointerdown events\n // // (also applies to touchmove/mousemove)\n // console.log(preventPointerEvent, originalEvent, pointerType);\n // return false;\n // });\n\n this.lightbox.on('bindEvents', () => {\n this.lightbox.pswp.element.addEventListener('stzhClamp', updateSize);\n this.lightbox.pswp.element.addEventListener('stzhExpand', updateSize);\n this.lightbox.pswp.element.addEventListener('stzhOpen', updateSize);\n this.lightbox.pswp.element.addEventListener('stzhOpened', updateSize);\n this.lightbox.pswp.element.addEventListener('stzhClose', updateSize);\n this.lightbox.pswp.element.addEventListener('stzhClosed', updateSize);\n });\n\n new PhotoSwipeDynamicCaption(this.lightbox, {\n type: 'below',\n captionContent: (slide) => { // '.stzh-gallery__caption-content'\n return slide.data.captionHtml;\n },\n mobileLayoutBreakpoint: () => {\n return window.innerWidth < 600;\n },\n // if enabled, the image will always be vertically centered in the remaining space between the caption and the rest of the viewport.\n // If set to false (default value) - the image will lift up only if the caption does not fit below.\n // verticallyCenterImage: false,\n\n // when the caption x position is less than this value, it'll get class pswp__dynamic-caption--on-hor-edge. You may use it to apply different styling, such as horizontal padding.\n // horizontalEdgeThreshold: 20\n\n // a ratio defines the amount of horizontal empty space before the mobile caption switches to an \"overlap\" layout.\n // For example, if it's set to 0.3 - the caption will start overlapping the image when more than 30% of horizontal space is not occupied by an image. If you set it to 0 - the caption will always overlap. If you set it to 1 - the caption will constantly shift the image (unless it's taller than the viewport).\n mobileCaptionOverlapRatio: 1\n });\n\n this.lightbox.init();\n }\n\n // componentShouldUpdate(_newValue, _oldValue, prop: string) {\n // return [\"isOpen\"].includes(prop) === false;\n // }\n\n async componentWillLoad() {\n this._initialShowItems = this.showItems;\n this.imagesWatcher(this.images);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"gallery\");\n }\n }\n\n async componentWillUpdate() {\n if (this.lightbox) {\n this.lightbox.destroy();\n this.lightbox = null;\n }\n }\n\n componentDidRender() {\n if (!this.lightbox) {\n this.initLightbox();\n }\n }\n\n disconnectedCallback() {\n if (this.lightbox) {\n this.lightbox.destroy();\n this.lightbox = null;\n }\n }\n\n private renderFigure(image: StzhGalleryItem, index: number): HTMLStzhFigureElement {\n const total = this._imagesLightboxDataSource.length;\n\n return (\n <stzh-figure\n class=\"stzh-gallery__slide\"\n caption={image.caption}\n heading={image.heading}\n counter={(!image.hideCounter && !(this.variant === \"single\" && this.excludeFirstImage))\n ? `${index+1}/${total}`\n : \"\"}\n >\n <stzh-ratio\n ratio={this.ratio}\n ratioSmall={this.ratioSmall}\n ratioMedium={this.ratioMedium}\n ratioLarge={this.ratioLarge}\n ratioUltra={this.ratioUltra}\n onClick={(event) => {\n event.preventDefault();\n this.openLightbox(index)\n }}\n >\n <img\n loading=\"lazy\"\n src={image.src}\n alt={\n (image.alt || this.localization.defaultAlt || '')\n .replace(/\\{current\\}/, (index + 1).toString())\n .replace(/\\{total\\}/, total.toString())}\n />\n\n {(this.variant === \"single\" || this.variant === \"grid\" || this._images.length === 1) &&\n <stzh-hspace\n class=\"stzh-gallery__actions\"\n justify=\"end\"\n items=\"end\"\n size=\"xsmall\"\n >\n <stzh-button\n variant=\"secondary\"\n size=\"small\"\n icon=\"expand\"\n label={this.localization.openLightbox}\n icon-only\n onClick={() => {\n this.openLightbox(index)\n }}\n ></stzh-button>\n </stzh-hspace>\n }\n </stzh-ratio>\n </stzh-figure>\n );\n }\n\n render() {\n const classes = {\n \"stzh-gallery\": true,\n [`stzh-gallery--${this.variant}`]: !!this.variant,\n };\n\n return (\n <Host>\n <div class={classes}>\n {(this.variant === \"single\" || this._images.length === 1) &&\n <Fragment>\n {this.renderFigure(this._images[0], 0)}\n </Fragment>\n }\n\n {(this.variant === \"grid\" && this._images.length > 0) &&\n <Fragment>\n <div class=\"stzh-gallery__list\">\n {this._imagesShown.map((image, index) => this.renderFigure(image, index))}\n </div>\n\n {this._showMoreLink &&\n <div class=\"stzh-gallery__list-actions\">\n <stzh-button\n label={this.localization.showMore}\n onClick={this.handleMoreClick}\n ></stzh-button>\n </div>\n }\n </Fragment>\n }\n\n {(this.variant === \"carousel\" && this._images.length > 1) &&\n <stzh-carousel\n ref={(el) => (this.carouselElement = el as HTMLStzhCarouselElement)}\n disabled={this.carouselDisabled}\n autoplay={this.carouselAutoplay}\n autoplayTimeout={this.carouselAutoplayTimeout}\n withTrack={this.carouselWithTrack}\n >\n <stzh-ratio\n ref={(el) => (this.carouselActionsElement = el as HTMLElement)}\n slot=\"actions\"\n class=\"stzh-gallery__carousel-actions\"\n ratio={this.ratio}\n ratioSmall={this.ratioSmall}\n ratioMedium={this.ratioMedium}\n ratioLarge={this.ratioLarge}\n ratioUltra={this.ratioUltra}\n >\n <div>\n <stzh-button\n class=\"stzh-carousel-action-previous\"\n data-stzh-carousel-previous\n variant=\"secondary\"\n size=\"small\"\n icon=\"angle-left\"\n label={this.localization.arrowPrevTitle}\n icon-only\n ></stzh-button>\n <stzh-button\n class=\"stzh-carousel-action-next\"\n data-stzh-carousel-next\n variant=\"secondary\"\n size=\"small\"\n icon=\"angle-right\"\n label={this.localization.arrowNextTitle}\n icon-only\n ></stzh-button>\n </div>\n <stzh-hspace justify=\"end\" items=\"end\" size=\"xsmall\">\n <stzh-button\n variant=\"secondary\"\n size=\"small\"\n icon=\"expand\"\n icon-only\n label={this.localization.openLightbox}\n onClick={this.openCurrentCarouselSlide}\n ></stzh-button>\n </stzh-hspace>\n </stzh-ratio>\n\n {this._images.map((image, index) => this.renderFigure(image, index))}\n </stzh-carousel>\n }\n\n <slot></slot>\n </div>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -163,6 +163,15 @@ export const WithoutCarousel = {
|
|
|
163
163
|
}
|
|
164
164
|
};
|
|
165
165
|
|
|
166
|
+
export const WithoutCarouselAndExcludeFirstImage = {
|
|
167
|
+
render: (args) => story(args, TEMPLATE(args)),
|
|
168
|
+
args: {
|
|
169
|
+
images,
|
|
170
|
+
variant: 'single',
|
|
171
|
+
'exclude-first-image': true
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
|
|
166
175
|
export const OneImageNoCounter = {
|
|
167
176
|
render: (args) => story(args, TEMPLATE(args)),
|
|
168
177
|
args: {
|
|
@@ -509,7 +509,7 @@ export class StzhHeader {
|
|
|
509
509
|
? () => this.closeMenuItem()
|
|
510
510
|
: (e) => this.openMenuItem(e, item) }, item.label)
|
|
511
511
|
:
|
|
512
|
-
h("a", { href: item.
|
|
512
|
+
h("a", { href: item.href, class: "stzh-header__menu-item is-level-1" }, item.label), ((_b = item.items) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
|
|
513
513
|
h("ul", { id: item.id, class: "stzh-header__menu-list is-level-2", onFocusout: this.handleMenuListFocusout }, h("li", { class: "stzh-header__menu-list-item is-backlink" }, h("button", { class: "stzh-header__menu-item is-level-2 is-backlink", onClick: () => this.closeMenuItem() }, h("stzh-icon", { name: "angle-left" }), h("span", null, this.menuBackLabel ? this.menuBackLabel : this.localization.menuBackLabel))), h("li", { class: "stzh-header__menu-list-item" }, h("a", { href: item.href, class: "stzh-header__menu-item is-level-2 is-main" }, item.label)), item.items.map((item) => h("li", { class: "stzh-header__menu-list-item" }, h("a", { href: item.href, class: "stzh-header__menu-item is-level-2" }, item.label)))));
|
|
514
514
|
}))), (((_d = this._metanavItems) === null || _d === void 0 ? void 0 : _d.length) > 0 || ((_e = this._languages) === null || _e === void 0 ? void 0 : _e.length) > 0) &&
|
|
515
515
|
h("div", { class: "stzh-header__menu-metanav" }, h("nav", { class: "stzh-header__menu-metanav-nav" }, h("ul", { class: "stzh-header__menu-metanav-list is-level-1" }, this._metanavItems.map((item) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stzh-header.js","sourceRoot":"","sources":["../../../../src/components/stzh-header/stzh-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Listen,\n Host,\n State,\n h,\n writeTask,\n readTask,\n Method,\n Prop,\n Event,\n EventEmitter,\n Watch,\n Fragment,\n} from \"@stencil/core\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { media } from \"../../utils/media-utils\";\nimport {\n StzhDropdownOption,\n StzhHeaderMetanavItemClickEvent,\n StzhHeaderLanguageChangeEvent,\n StzhHeaderSearchChangeEvent,\n StzhHeaderSearchChangedEvent,\n StzhHeaderMenuItem,\n StzhHeaderMetanavItem,\n} from \"../../index\";\n\nimport { tabbable } from 'tabbable';\nimport { createBaseFocusTrapOptions } from \"../../utils/overlay-utils\";\nimport { createFocusTrap, FocusTrap } from 'focus-trap';\n\nimport { StzhHeaderLocalizedText } from './stzh-header.localization';\n\nconst CLASS_BODY_OPEN = \"stzh-header-open\";\n\n// for flyout a11y see also: https://www.w3.org/WAI/tutorials/menus/flyout/\n\n/**\n * @slot logo - Slot for brand logo\n * @slot metanav-before - Slot for custom elements before other metanav elements\n * @slot metanav-after - Slot for custom elements after other metanav elements\n */\n@Component({\n tag: \"stzh-header\",\n styleUrl: \"stzh-header.scss\",\n scoped: true\n})\nexport class StzhHeader {\n /** Translation strings */\n @Prop() localization: StzhHeaderLocalizedText;\n\n /** Portal link (for logo) */\n @Prop() href: string = \"https://www.stadt-zuerich.ch\";\n\n /** Menu element ID */\n @Prop() menuId: string = \"anchorNavMain\";\n\n /** Search element ID */\n @Prop() searchId: string = \"anchorSearch\";\n\n /** Metanav element ID */\n @Prop() metanavId: string = \"anchorNavMeta\";\n\n /** Language element ID */\n @Prop() languageId: string = \"anchorNavLang\";\n\n /**\n * Type of logo (used for setting the correct height).\n * Will enlarge the logo to 100% by default (default logos are using whitespace).\n */\n @Prop({ reflect: true }) logoType: \"default\" | \"vbz\" | \"aoz\" | \"pkzh\" | \"uvz\" = \"default\";\n\n /** Menu navigation items */\n @Prop() menuItems: StzhHeaderMenuItem[] | string = [];\n private _menuItems: StzhHeaderMenuItem[];\n\n /** Overwrite menu back label */\n @Prop() menuBackLabel: string;\n\n /** Meta navigation items */\n @Prop() metanavItems: StzhHeaderMetanavItem[] | string = [];\n private _metanavItems: StzhHeaderMetanavItem[];\n\n /** Current language page path */\n @Prop({ mutable: true }) languageActive: string;\n\n /** Available language (paths) in language switch */\n @Prop() languages: StzhDropdownOption[] | string = [];\n private _languages: StzhDropdownOption[];\n\n /** Prevent url change when language has changed (will only fire `stzhLanguageChange`) */\n @Prop() languagePreventUrlchange: boolean = false;\n\n /** Whether language switch should stay on mobile */\n @Prop() languageStay: boolean = false;\n\n /** Search form action (if given, searchfield will be shown) */\n @Prop() searchAction: string;\n\n /** Search field name */\n @Prop() searchFieldName: string = \"q\";\n\n /** Search input value */\n @Prop() searchValue: string = \"\";\n\n /** Sticky behaviour */\n @Prop() sticky: \"default\" | \"disabled\" = \"default\";\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the logo link element.\n * Default value is \"Header Logo\".\n */\n @Prop() logoAnalyticsId: string;\n\n @State() hideLogo: boolean = false;\n @State() paddingTop: number;\n @State() stickyActive: boolean = false;\n @State() flyoutOpen: boolean = false;\n @State() searchFilled: boolean;\n\n @State() fixed: boolean = false;\n @State() fixedTransition: boolean = false;\n\n @State() currentOpenMenuItem: StzhHeaderMenuItem = null;\n @State() currentOpenMetanavItem: StzhHeaderMetanavItem = null;\n @State() currentOpenLanguage: boolean = false;\n private openSubmenuElement: HTMLElement;\n\n @Element() element: HTMLStzhHeaderElement;\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeydown(event: KeyboardEvent) {\n if (event.key === \"Escape\") {\n this.flyoutOpen = false;\n }\n }\n\n @Watch(\"flyoutOpen\")\n async flyoutOpenWatcher(open: boolean) {\n if (!open) {\n // reset current open menu when flyout was closed\n this.currentOpenMenuItem = null;\n this.currentOpenMetanavItem = null;\n this.currentOpenLanguage = null;\n // reset further flags\n this.flyoutOpenedByMetanavItem = false;\n\n document.body.classList.remove(CLASS_BODY_OPEN);\n this.enableSiblings();\n\n if (this.trap) {\n this.trap.deactivate();\n }\n } else {\n document.body.classList.add(CLASS_BODY_OPEN);\n this.disableSiblings();\n\n if (this.trap) {\n this.trap.activate();\n }\n }\n }\n\n @Watch(\"fixed\")\n @Watch(\"flyoutOpen\")\n async fixedWatcher() {\n this.paddingTop = this.fixed || this.flyoutOpen ? this.headerHeight : 0;\n // we don't want to run transitions on applying fixed class (out transition),\n // so we set them in the next render\n await this.waitForNextRender();\n this.fixedTransition = this.fixed || this.flyoutOpen;\n }\n\n @Watch(\"sticky\")\n stickyWatcher() {\n this.updatePosition();\n }\n\n /** Update position / sticky state of header */\n @Method()\n async updatePosition() {\n if (this.flyoutOpen) {\n return;\n }\n\n if (this.sticky === \"disabled\") {\n document.documentElement.style.setProperty('--stzh-header-is-stuck', '0');\n document.documentElement.style.setProperty('--stzh-header-is-not-stuck', '1');\n this.stickyActive = false;\n return;\n }\n\n if (this.scrollingUp && this.belowStayStickyPoint) {\n if (!this.stickyActive && this.belowStartStickyPoint) {\n this.stickyActive = true;\n document.documentElement.style.setProperty('--stzh-header-is-stuck', '1');\n document.documentElement.style.setProperty('--stzh-header-is-not-stuck', '0');\n }\n } else {\n if (this.stickyActive && this.belowStayStickyPoint) {\n document.documentElement.style.setProperty('--stzh-header-is-stuck', '0');\n document.documentElement.style.setProperty('--stzh-header-is-not-stuck', '1');\n this.stickyActive = false;\n } else {\n document.documentElement.style.setProperty('--stzh-header-is-stuck', '0');\n document.documentElement.style.setProperty('--stzh-header-is-not-stuck', '1');\n this.stickyActive = false;\n }\n }\n }\n\n @Listen(\"scroll\", { target: \"window\" })\n scrollListener() {\n if (this.sticky === \"disabled\") {\n return;\n }\n\n readTask(() => {\n this.currentScrollY = window.scrollY;\n this.scrollingUp = this.lastScrollY && this.lastScrollY > this.currentScrollY;\n this.lastScrollY = this.currentScrollY;\n\n this.belowStayStickyPoint = this.currentScrollY > this.logobarHeight;\n this.belowStartStickyPoint = this.currentScrollY > this.headerHeight;\n\n this.fixed = this.belowStartStickyPoint || (this.scrollingUp && this.belowStayStickyPoint && this.stickyActive);\n\n this.headerOverlap = (this.headerTop - this.currentScrollY) / -1;\n this.hideLogo = this.isMedium && this.headerOverlap > 1;\n });\n\n writeTask(() => {\n this.updatePosition();\n });\n }\n\n /** Metanav item click event */\n @Event() stzhMetanavItemClick: EventEmitter<StzhHeaderMetanavItemClickEvent>;\n\n /** Language change event */\n @Event() stzhLanguageChange: EventEmitter<StzhHeaderLanguageChangeEvent>;\n\n /** Search input change event */\n @Event() stzhSearchChange: EventEmitter<StzhHeaderSearchChangeEvent>;\n\n /** Search input changed event */\n @Event() stzhSearchChanged: EventEmitter<StzhHeaderSearchChangedEvent>;\n\n @Watch(\"searchValue\")\n searchValueWatcher(newValue: string) {\n this.searchFilled = newValue !== \"\";\n }\n\n @Watch(\"menuItems\")\n menuItemsWatcher(newValue: StzhHeaderMenuItem[] | string) {\n if (typeof newValue === \"string\") {\n this._menuItems = JSON.parse(newValue);\n } else {\n this._menuItems = newValue;\n }\n\n this._menuItems = this._menuItems.map((menuItem, index) => ({\n id: `submenu-${index}`,\n ...menuItem\n }))\n }\n\n @Watch(\"metanavItems\")\n metanavItemsWatcher(newValue: StzhHeaderMetanavItem[] | string) {\n if (typeof newValue === \"string\") {\n this._metanavItems = JSON.parse(newValue);\n } else {\n this._metanavItems = newValue;\n }\n\n this._metanavItems = this._metanavItems.map((metanavItem, index) => ({\n id: `metanav-submenu-${index}`,\n ...metanavItem\n }))\n }\n\n @Watch(\"languages\")\n languagesWatcher(newValue: StzhDropdownOption[] | string) {\n if (typeof newValue === \"string\") {\n this._languages = JSON.parse(newValue);\n } else {\n this._languages = newValue;\n }\n }\n\n private renderPromiseResolve: (value?: unknown) => void;\n\n private currentScrollY: number;\n private lastScrollY: number;\n private headerOverlap: number;\n private scrollingUp: boolean;\n private belowStayStickyPoint: boolean;\n private belowStartStickyPoint: boolean;\n\n private headerTop: number;\n private headerHeight: number;\n // private innerHeight: number;\n private mainHeight: number;\n private metabarHeight: number;\n private logobarHeight: number;\n\n private isMedium: boolean;\n\n private debounceResize: number;\n private resizeObserver: ResizeObserver;\n private flyoutResizeObserver: ResizeObserver;\n\n // private innerElement: HTMLDivElement;\n private mainElement: HTMLDivElement;\n private logobarElement: HTMLDivElement;\n private metabarElement: HTMLDivElement;\n private menunavElement: HTMLElement;\n private flyoutElement: HTMLElement;\n\n private searchInput: HTMLInputElement;\n\n private lastOpener: HTMLButtonElement | null = null;\n private flyoutOpenedByMetanavItem: boolean = null;\n\n private trap: FocusTrap;\n private parentElement: HTMLElement;\n\n private getSiblings() {\n if (!this.parentElement) {\n return [];\n }\n\n return Array.from(this.parentElement.children).filter(\n (child) => child !== this.element\n );\n }\n\n private disableSiblings() {\n this.getSiblings().forEach((sibling) => {\n sibling.setAttribute(\"aria-hidden\", \"true\");\n });\n }\n\n private enableSiblings() {\n this.getSiblings().forEach((sibling) => {\n sibling.removeAttribute(\"aria-hidden\");\n });\n }\n\n private waitForNextRender() {\n return new Promise(resolve => this.renderPromiseResolve = resolve);\n }\n\n private resizeMenunavElement() {\n // reset height when metanav is sticky, or on medium or no submenu element is open\n if (media(\"headerMetanavSticky\").matches || media(\"medium\").matches || !this.openSubmenuElement) {\n Object.assign(this.menunavElement.style, {\n height: null\n });\n } else {\n const { height } = this.openSubmenuElement.getBoundingClientRect();\n Object.assign(this.menunavElement.style, {\n height: `${height}px`\n });\n }\n }\n\n private async openMenuItem(event: MouseEvent, menuItem: StzhHeaderMenuItem) {\n this.flyoutOpen = true;\n\n this.lastOpener = event.currentTarget as HTMLButtonElement;\n this.openSubmenuElement = this.element.querySelector(`#${menuItem.id}`) as HTMLElement;\n this.currentOpenMenuItem = menuItem;\n await this.waitForNextRender();\n\n requestAnimationFrame(() => {\n this.menunavElement.scrollTop = 0;\n\n const firstButtonOrLink = this.openSubmenuElement\n && tabbable(this.openSubmenuElement)[0];\n firstButtonOrLink?.focus()\n\n this.resizeMenunavElement();\n });\n }\n\n private async closeMenuItem(focusOpener: boolean = true) {\n this.openSubmenuElement = null;\n this.currentOpenMenuItem = null;\n await this.waitForNextRender();\n\n if (focusOpener) {\n requestAnimationFrame(() => {\n this.lastOpener.focus();\n this.lastOpener = null;\n\n this.resizeMenunavElement();\n });\n }\n }\n\n private async openMetanavItem(event: MouseEvent, metanavItem: StzhHeaderMetanavItem) {\n if (!this.flyoutOpen) {\n this.flyoutOpenedByMetanavItem = true;\n this.flyoutOpen = true;\n }\n\n this.lastOpener = event.currentTarget as HTMLButtonElement;\n this.currentOpenMetanavItem = metanavItem;\n await this.waitForNextRender();\n\n requestAnimationFrame(() => {\n const openMetanavSubmenuElement = this.element.querySelector(`#${metanavItem.id}`);\n const firstButtonOrLink = openMetanavSubmenuElement\n && tabbable(openMetanavSubmenuElement)[0];\n firstButtonOrLink?.focus()\n });\n }\n\n private async closeMetanavItem() {\n this.currentOpenMetanavItem = null;\n\n if (this.flyoutOpenedByMetanavItem) {\n this.flyoutOpen = false;\n }\n\n await this.waitForNextRender();\n\n requestAnimationFrame(() => {\n this.lastOpener.focus();\n this.lastOpener = null;\n });\n }\n\n private async openLanguage(event: MouseEvent) {\n if (!this.flyoutOpen) {\n this.flyoutOpenedByMetanavItem = true;\n this.flyoutOpen = true;\n }\n\n this.lastOpener = event.currentTarget as HTMLButtonElement;\n this.currentOpenLanguage = true;\n await this.waitForNextRender();\n\n requestAnimationFrame(() => {\n const openMetanavSubmenuElement = this.element.querySelector(\"#submenu-languages\");\n const firstButtonOrLink = openMetanavSubmenuElement\n && tabbable(openMetanavSubmenuElement)[0];\n firstButtonOrLink?.focus()\n });\n }\n\n private async closeLanguage() {\n this.currentOpenLanguage = false;\n\n if (this.flyoutOpenedByMetanavItem) {\n this.flyoutOpen = false;\n }\n\n await this.waitForNextRender();\n\n requestAnimationFrame(() => {\n this.lastOpener.focus();\n this.lastOpener = null;\n });\n }\n\n private handleMenuListFocusout = (event: FocusEvent) => {\n const isNextFocusOutOfMenuList = !(event.currentTarget as HTMLElement)\n .contains(event.relatedTarget as HTMLElement);\n\n if (this.isMedium && isNextFocusOutOfMenuList) {\n this.closeMenuItem(false);\n }\n }\n\n private handleBurgerClick = async () => {\n if (this.flyoutOpenedByMetanavItem) {\n this.flyoutOpenedByMetanavItem = false;\n this.closeMetanavItem();\n } else {\n this.flyoutOpen = !this.flyoutOpen;\n }\n\n // focus first menu item\n const element = this.element.querySelector('.stzh-header__menu-item') as HTMLElement;\n\n if (element) {\n window.setTimeout(() => {\n element.focus();\n }, 100);\n }\n\n // await this.waitForNextRender();\n this.updatePosition();\n }\n\n private handleBackdropClick = async () => {\n this.flyoutOpen = false;\n // await this.waitForNextRender();\n this.updatePosition();\n }\n\n private handleMetanavItemClick = (event: MouseEvent, item: StzhHeaderMetanavItem) => {\n this.stzhMetanavItemClick.emit({\n component: \"stzh-header\",\n item,\n originalEvent: event,\n })\n }\n\n private handleSearchInput = (event: InputEvent) => {\n this.searchValue = this.searchInput.value;\n\n this.stzhSearchChange.emit({\n component: \"stzh-header\",\n originalEvent: event,\n value: this.searchValue\n });\n }\n\n private handleSearchChange = (event: InputEvent) => {\n this.searchValue = this.searchInput.value;\n\n this.stzhSearchChanged.emit({\n component: \"stzh-header\",\n originalEvent: event,\n value: this.searchValue\n });\n }\n\n private handleLanguageClick = (event: MouseEvent, dropdownOption: StzhDropdownOption) => {\n if (this.languagePreventUrlchange) {\n event.preventDefault();\n }\n\n this.languageActive = dropdownOption.value;\n\n this.stzhLanguageChange.emit({\n component: \"stzh-header\",\n value: this.languageActive\n });\n }\n\n private handleFlyoutResize = () => {\n this.resizeMenunavElement();\n }\n\n private handleResize = () => {\n if (this.sticky === \"disabled\") {\n return;\n }\n\n if (this.debounceResize) {\n window.cancelAnimationFrame(this.debounceResize);\n }\n\n this.debounceResize = requestAnimationFrame(() => {\n readTask(() => {\n this.isMedium = media(\"medium\").matches;\n\n this.mainHeight = this.mainElement?.offsetHeight || 0;\n this.metabarHeight = this.metabarElement?.offsetHeight || 0;\n this.logobarHeight = this.logobarElement?.offsetHeight || 0;\n\n this.headerTop = this.element.offsetTop;\n this.headerHeight = this.metabarHeight + this.logobarHeight;\n\n // this.headerHeight = this.element.offsetHeight;\n // console.log(this.headerHeight);\n // console.log(this.metabarHeight + this.logobarHeight);\n // console.log(this.metabarHeight, this.logobarHeight);\n });\n\n writeTask(() => {\n document.documentElement.style.setProperty('--stzh-header-height', `${this.headerHeight}px`);\n document.documentElement.style.setProperty('--stzh-header-main-height', `${this.mainHeight}px`);\n document.documentElement.style.setProperty('--stzh-header-metabar-height', `${this.metabarHeight}px`);\n document.documentElement.style.setProperty('--stzh-header-logobar-height', `${this.logobarHeight}px`);\n });\n\n this.scrollListener();\n });\n }\n\n async componentWillLoad() {\n this.menuItemsWatcher(this.menuItems);\n this.metanavItemsWatcher(this.metanavItems);\n this.languagesWatcher(this.languages);\n this.searchValueWatcher(this.searchValue);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"header\");\n }\n }\n\n componentDidRender() {\n if (this.renderPromiseResolve) {\n this.renderPromiseResolve();\n }\n\n if (this.flyoutElement && this.flyoutResizeObserver) {\n this.flyoutResizeObserver.observe(this.flyoutElement);\n }\n }\n\n componentDidLoad() {\n this.trap = createFocusTrap(this.element, {\n ...createBaseFocusTrapOptions(),\n initialFocus: false\n });\n\n this.flyoutResizeObserver = new ResizeObserver(this.handleFlyoutResize);\n if (this.flyoutElement) {\n this.flyoutResizeObserver.observe(this.flyoutElement);\n }\n }\n\n connectedCallback() {\n this.parentElement = this.element.parentElement;\n\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.element);\n }\n\n disconnectedCallback() {\n this.flyoutOpenWatcher(false);\n this.resizeObserver?.disconnect();\n this.flyoutResizeObserver?.disconnect();\n }\n\n render() {\n const metanavBeforeUsed: boolean = hasSlot(this.element, \"metanav-before\");\n const metanavAfterUsed: boolean = hasSlot(this.element, \"metanav-after\");\n\n const classes = {\n \"stzh-header\": true,\n \"stzh-header--is-flyout-open\": this.flyoutOpen,\n \"stzh-header--is-sticky-disabled\": this.sticky === \"disabled\",\n \"stzh-header--is-search-filled\": this.searchFilled,\n \"stzh-header--is-fixed\": this.fixed,\n \"stzh-header--is-fixed-transition\": this.fixedTransition,\n \"stzh-header--is-sticky\": this.stickyActive,\n \"stzh-header--hide-logo\": this.hideLogo,\n \"stzh-header--has-empty-metabar-mobile\": !metanavBeforeUsed && !metanavAfterUsed\n && this._metanavItems.filter(item => item.stay || item.stayAndShowInMobileMenu).length === 0\n && this._menuItems.length === 0\n && (this._languages.length === 0\n || (this._languages.length > 0 && !this.languageStay))\n && !this.searchAction,\n \"stzh-header--has-empty-metabar\": !metanavBeforeUsed && !metanavAfterUsed\n && this._metanavItems.length === 0\n && this._menuItems.length === 0\n && this._languages.length === 0\n && !this.searchAction\n };\n\n const activeLanguage = this.languageActive || window.stzhComponents.utils.getLocale(this.element);\n const activeLanguageOption = this._languages\n ?.find(({ value }) => value === activeLanguage) || this._languages?.[0] || null;\n\n const renderMetanavItemButton = (item: StzhHeaderMetanavItem, additionalClasses?: { [className: string]: boolean }, additionalAttributes?: any) => {\n const Element = item.items?.length > 0 || item.itemButton || !item.href ? \"button\" : \"a\";\n\n return (\n <Element\n {...additionalAttributes}\n href={Element === \"a\" && item.href}\n target={Element === \"a\" && item.target}\n class={{\n \"stzh-header__metanav-item\": true,\n \"is-heavy\": item.important,\n \"is-stay\": item.stay || item.stayAndShowInMobileMenu,\n ...(additionalClasses || {})\n }}\n >\n <span\n class={{\n \"stzh-header__metanav-item-text\": true,\n \"is-vhidden\": item.labelHidden,\n \"has-no-short-label\": !item.labelShort,\n }}\n >\n <span class=\"stzh-header__metanav-item-text-label-long\">{item.label}</span>\n <span class=\"stzh-header__metanav-item-text-label-short\" aria-hidden=\"true\">{item.labelShort}</span>\n </span>\n {item.icon &&\n <span class=\"stzh-header__metanav-icon-wrapper\">\n {item.icon && <stzh-icon class={`stzh-header__metanav-icon ${item.iconOpen ? 'is-close' : ''}`} name={item.icon}></stzh-icon>}\n {item.iconOpen && <stzh-icon class=\"stzh-header__metanav-icon is-open\" name={item.iconOpen}></stzh-icon>}\n {(item.badge || item.badgeEmpty) &&\n <stzh-badge class=\"stzh-header__metanav-icon-badge\" label={item.badge} type={typeof item.badgeType === \"undefined\" ? \"error\" : item.badgeType}></stzh-badge>\n }\n </span>\n }\n </Element>\n );\n }\n\n return (\n <Host>\n <header class={classes}>\n <div class=\"stzh-header__header\" style={{paddingTop: `${this.paddingTop}px`}}>\n <div\n class=\"stzh-header__inner\"\n // ref={(el) => (this.innerElement = el as HTMLDivElement)}\n >\n <div\n class=\"stzh-header__main\"\n ref={(el) => (this.mainElement = el as HTMLDivElement)}\n >\n <div\n class=\"stzh-header__logobar\"\n ref={(el) => (this.logobarElement = el as HTMLDivElement)}\n >\n <div class=\"stzh-header__logobar-logo\">\n <a href={this.href} class=\"stzh-header__logo-link\" s-object-id={this.logoAnalyticsId || \"Header Logo\"}>\n <slot name=\"logo\"></slot>\n </a>\n </div>\n <div class=\"stzh-header__logobar-decoration\"></div>\n </div>\n\n <div\n class=\"stzh-header__metabar\"\n ref={(el) => (this.metabarElement = el as HTMLDivElement)}\n >\n <div class=\"stzh-header__metabar-inner\">\n {this._menuItems.length > 0 &&\n <button\n id={this.menuId}\n class={`stzh-header__burger ${this.flyoutOpen && !this.flyoutOpenedByMetanavItem && \"is-open\"}`}\n onClick={this.handleBurgerClick}\n >\n <stzh-icon\n class=\"stzh-header__burger-icon is-close\"\n name=\"menu\"\n ></stzh-icon>\n <stzh-icon\n class=\"stzh-header__burger-icon is-open\"\n name=\"close\"\n ></stzh-icon>\n <div class=\"stzh-header__burger-text\">\n {this.localization.menuLabel}\n </div>\n </button>\n }\n {this.searchAction &&\n <form\n class=\"stzh-header__metabar-search\"\n action={this.searchAction}\n role=\"search\"\n >\n <label class=\"stzh-header__search\">\n <input\n id={this.searchId}\n ref={(el) => (this.searchInput = el as HTMLInputElement)}\n class=\"stzh-header__search-input\"\n type=\"search\"\n name={this.searchFieldName}\n onChange={this.handleSearchChange}\n onInput={this.handleSearchInput}\n ></input>\n <stzh-icon class=\"stzh-header__search-icon\" name=\"search\"></stzh-icon>\n <div class=\"stzh-header__search-text\">{this.localization.searchLabel}</div>\n </label>\n </form>\n }\n <div class=\"stzh-header__metabar-nav\" id={this.metanavId}>\n <slot name=\"metanav-before\"></slot>\n\n {this._metanavItems.map((item) =>\n (item.items?.length > 0 || item.itemButton)\n ?\n <Fragment>\n {renderMetanavItemButton(item, {\n \"is-popover-mobile\": true\n }, {\n 'aria-expanded': item === this.currentOpenMetanavItem ? \"true\" : \"false\",\n 'aria-controls': item.id,\n onClick: (e: MouseEvent) => {\n if (item === this.currentOpenMetanavItem) {\n this.closeMetanavItem();\n } else {\n this.openMetanavItem(e, item)\n }\n\n this.handleMetanavItemClick(e, item);\n }\n })}\n <stzh-popover\n class={{\n \"stzh-header__metanav-popover\": true,\n }}\n placement=\"bottom-end\"\n distance={20}\n variant={item.variant}\n size={typeof item.size === \"undefined\" ? \"large\" : item.size}\n >\n {renderMetanavItemButton(item, {\n \"is-popover-desktop\": true\n }, {\n onClick: (e: MouseEvent) => {\n this.handleMetanavItemClick(e, item);\n }\n })}\n <div slot=\"content\">\n {item.items?.length > 0 &&\n <stzh-menu>\n {item.items.map((childItem) =>\n <stzh-menu-item\n class={{\n \"stzh-header__metanav-menu-item\": true,\n \"is-heavy\": typeof item.importantSubmenu === \"undefined\" || item.importantSubmenu,\n }}\n size={typeof item.size === \"undefined\" ? \"large\" : item.size}\n variant={item.variant}\n href={childItem.href}\n target={childItem.target}\n icon={childItem.icon}\n counter={childItem.counter}\n badge={childItem.badge}\n badgeType={childItem.badgeType}\n >\n {childItem.label}\n </stzh-menu-item>\n )}\n </stzh-menu>\n }\n </div>\n {item.itemButton &&\n <stzh-button\n slot=\"action\"\n size={item.itemButton.size}\n href={item.itemButton.href}\n target={item.itemButton.target}\n >\n {item.itemButton.label}\n </stzh-button>\n }\n </stzh-popover>\n </Fragment>\n :\n renderMetanavItemButton(item, {}, {\n onClick: (e: MouseEvent) => {\n this.handleMetanavItemClick(e, item);\n }\n })\n )}\n\n {this._languages?.length > 0 &&\n <Fragment>\n <h2 id={this.languageId} class=\"stzh-header__vhidden\">\n {this.localization.languageLabel}\n </h2>\n {this._menuItems.length > 0 && this.languageStay &&\n <button\n class={{\n \"stzh-header__metanav-item\": true,\n \"is-popover-mobile\": true,\n \"is-stay\": this.languageStay\n }}\n aria-expanded={this.currentOpenLanguage ? \"true\" : \"false\"}\n aria-controls=\"submenu-languages\"\n onClick={(e: MouseEvent) => {\n if (this.currentOpenLanguage) {\n this.closeLanguage();\n } else {\n this.openLanguage(e)\n }\n }}\n >\n <span class=\"stzh-header__metanav-item-text\">{activeLanguageOption?.text}</span>\n <stzh-icon class=\"stzh-header__metanav-icon is-close\" name=\"angle-down\"></stzh-icon>\n <stzh-icon class=\"stzh-header__metanav-icon is-open\" name=\"angle-up\"></stzh-icon>\n </button>\n }\n <stzh-popover\n class=\"stzh-header__metanav-popover is-langnav\"\n placement=\"bottom-end\"\n distance={20}\n >\n <button\n class={{\n \"stzh-header__metanav-item\": true,\n \"is-popover-desktop\": this._menuItems.length > 0,\n \"is-stay\": this.languageStay\n }}\n >\n <span class=\"stzh-header__metanav-item-text\">{activeLanguageOption?.text}</span>\n <stzh-icon class=\"stzh-header__metanav-icon is-close\" name=\"angle-down\"></stzh-icon>\n <stzh-icon class=\"stzh-header__metanav-icon is-open\" name=\"angle-up\"></stzh-icon>\n </button>\n <div slot=\"content\">\n <stzh-menu>\n {this._languages.map((language) =>\n <stzh-menu-item\n class=\"stzh-header__metanav-menu-item\"\n active={activeLanguageOption?.value === language.value}\n href={language.value}\n onClick={(event) => this.handleLanguageClick(event, language)}\n >\n {language.text}\n </stzh-menu-item>\n )}\n </stzh-menu>\n </div>\n </stzh-popover>\n </Fragment>\n }\n\n <slot name=\"metanav-after\"></slot>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {this._menuItems.length > 0 &&\n <div\n ref={(el) => (this.flyoutElement = el as HTMLElement)}\n class=\"stzh-header__flyout\"\n >\n <div class=\"stzh-header__flyout-backdrop\" onClick={this.handleBackdropClick}></div>\n <div class=\"stzh-header__flyout-scrollbar\"></div>\n <div class=\"stzh-header__menu\">\n <nav\n class=\"stzh-header__menu-nav\"\n ref={(el) => (this.menunavElement = el as HTMLElement)}\n aria-label={this.localization.navigationLabel}\n >\n <ul class=\"stzh-header__menu-list is-level-1\">\n {this._menuItems.map((item) =>\n <li\n class={{\n 'stzh-header__menu-list-item': true,\n 'is-open': item === this.currentOpenMenuItem\n }}\n >\n {item.items?.length > 0\n ?\n <button\n aria-expanded={item === this.currentOpenMenuItem ? \"true\" : \"false\"}\n aria-controls={item.id}\n class=\"stzh-header__menu-item is-level-1 has-items\"\n onClick={\n item === this.currentOpenMenuItem\n ? () => this.closeMenuItem()\n : (e) => this.openMenuItem(e, item)\n }\n >\n {item.label}\n </button>\n :\n <a href={item.label} class=\"stzh-header__menu-item is-level-1\">\n {item.label}\n </a>\n }\n {item.items?.length > 0 &&\n <ul\n id={item.id}\n class=\"stzh-header__menu-list is-level-2\"\n onFocusout={this.handleMenuListFocusout}\n >\n <li class=\"stzh-header__menu-list-item is-backlink\">\n <button class=\"stzh-header__menu-item is-level-2 is-backlink\" onClick={() => this.closeMenuItem()}>\n <stzh-icon name=\"angle-left\"></stzh-icon>\n <span>{this.menuBackLabel ? this.menuBackLabel : this.localization.menuBackLabel}</span>\n </button>\n </li>\n <li class=\"stzh-header__menu-list-item\">\n <a href={item.href} class=\"stzh-header__menu-item is-level-2 is-main\">\n {item.label}\n </a>\n </li>\n {item.items.map((item) =>\n <li class=\"stzh-header__menu-list-item\">\n <a href={item.href} class=\"stzh-header__menu-item is-level-2\">\n {item.label}\n </a>\n </li>\n )}\n </ul>\n }\n </li>\n )}\n </ul>\n </nav>\n\n {(this._metanavItems?.length > 0 || this._languages?.length > 0) &&\n <div class=\"stzh-header__menu-metanav\">\n <nav class=\"stzh-header__menu-metanav-nav\">\n <ul class=\"stzh-header__menu-metanav-list is-level-1\">\n {this._metanavItems.map((item) =>\n <li\n class={{\n 'stzh-header__menu-metanav-list-item': true,\n 'is-open': item === this.currentOpenMetanavItem\n }}>\n {item.items?.length > 0\n ?\n <button\n aria-expanded={item === this.currentOpenMetanavItem ? \"true\" : \"false\"}\n aria-controls={item.id}\n class={{\n \"stzh-header__menu-metanav-item is-level-1\": true,\n \"is-hidden\": item.stay && !item.stayAndShowInMobileMenu\n }}\n onClick={(e: MouseEvent) => {\n if (item === this.currentOpenMetanavItem) {\n this.closeMetanavItem();\n } else {\n this.openMetanavItem(e, item)\n }\n\n this.handleMetanavItemClick(e, item);\n }}\n >\n <span\n class={{\n \"stzh-header__menu-metanav-item-text\": true,\n \"is-vhidden\": item.labelHidden,\n }}\n >\n {item.label}\n </span>\n {item.icon && <stzh-icon class=\"stzh-header__menu-metanav-item-icon\" name={item.icon}></stzh-icon>}\n </button>\n :\n <a\n href={item.href}\n class={{\n \"stzh-header__menu-metanav-item is-level-1\": true,\n \"is-hidden\": item.stay && !item.stayAndShowInMobileMenu\n }}\n onClick={(e: MouseEvent) => {\n this.handleMetanavItemClick(e, item);\n }}\n >\n <span\n class={{\n \"stzh-header__menu-metanav-item-text\": true,\n \"is-vhidden\": item.labelHidden,\n }}\n >\n {item.label}\n </span>\n {item.icon && <stzh-icon class=\"stzh-header__menu-metanav-item-icon\" name={item.icon}></stzh-icon>}\n </a>\n }\n {item.items?.length > 0 &&\n <ul\n id={item.id}\n class=\"stzh-header__menu-metanav-list is-level-2\"\n >\n <li class=\"stzh-header__menu-metanav-list-item\">\n <div class=\"stzh-header__menu-metanav-item is-level-2 is-title\">\n <span>{item.label}</span>\n <stzh-button\n class=\"stzh-header__menu-metanav-item-icon\"\n variant=\"tertiary\"\n icon=\"close\"\n iconOnly={true}\n label={this.localization.closeMetanavMenuLabel?.replace(/\\{itemLabel\\}/gi, item.label)}\n onClick={() => this.closeMetanavItem()}\n ></stzh-button>\n </div>\n </li>\n {item.items.map((item) =>\n <li class=\"stzh-header__menu-metanav-list-item\">\n <a href={item.href} class=\"stzh-header__menu-metanav-item is-level-2\">\n {item.icon && <stzh-icon class=\"stzh-header__menu-metanav-item-icon\" name={item.icon}></stzh-icon>}\n <span class=\"stzh-header__menu-metanav-item-text\">\n <span>{item.label}</span>\n {item.counter &&\n <span class=\"stzh-header__menu-metanav-item-counter\">({item.counter})</span>\n }\n </span>\n </a>\n </li>\n )}\n\n {item.itemButton &&\n <li class=\"stzh-header__menu-metanav-list-item\">\n <div class=\"stzh-header__menu-metanav-item is-level-2 is-action\">\n <stzh-button\n href={item.itemButton.href}\n target={item.itemButton.target}\n >\n {item.itemButton.label}\n </stzh-button>\n </div>\n </li>\n }\n </ul>\n }\n </li>\n )}\n\n {this._languages?.length > 0 &&\n <li\n class={{\n 'stzh-header__menu-metanav-list-item': true,\n 'is-open': this.currentOpenLanguage\n }}\n >\n <button\n aria-expanded={this.currentOpenLanguage ? \"true\" : \"false\"}\n aria-controls=\"submenu-languages\"\n class=\"stzh-header__menu-metanav-item is-level-1\"\n onClick={(e) => this.openLanguage(e)}\n >\n <span>{activeLanguageOption?.text}</span>\n <stzh-icon class=\"stzh-header__menu-metanav-item-icon\" name=\"angle-down\"></stzh-icon>\n </button>\n <ul\n id=\"submenu-languages\"\n class=\"stzh-header__menu-metanav-list is-level-2\"\n >\n <div class=\"stzh-header__menu-metanav-item is-level-2 is-title\">\n <span>{this.localization.dialogLanguageTitle}</span>\n <stzh-button\n class=\"stzh-header__menu-metanav-item-icon\"\n variant=\"tertiary\"\n icon=\"close\"\n iconOnly={true}\n label={\"Sprach-Dialog schliessen\"}\n onClick={() => this.closeLanguage()}\n ></stzh-button>\n </div>\n {this._languages.map((language) =>\n <li class=\"stzh-header__menu-metanav-list-item\">\n <a\n class=\"stzh-header__menu-metanav-item is-level-2 is-language\"\n href={language.value}\n onClick={(event) => this.handleLanguageClick(event, language)}\n >\n <span>{language.text}</span>\n {activeLanguageOption?.value === language.value &&\n <stzh-icon class=\"stzh-header__menu-metanav-item-icon\" name=\"checkmark\"></stzh-icon>}\n </a>\n </li>\n )}\n </ul>\n </li>\n }\n </ul>\n </nav>\n </div>\n }\n </div>\n </div>\n }\n </header>\n </Host>\n );\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"stzh-header.js","sourceRoot":"","sources":["../../../../src/components/stzh-header/stzh-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Listen,\n Host,\n State,\n h,\n writeTask,\n readTask,\n Method,\n Prop,\n Event,\n EventEmitter,\n Watch,\n Fragment,\n} from \"@stencil/core\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { media } from \"../../utils/media-utils\";\nimport {\n StzhDropdownOption,\n StzhHeaderMetanavItemClickEvent,\n StzhHeaderLanguageChangeEvent,\n StzhHeaderSearchChangeEvent,\n StzhHeaderSearchChangedEvent,\n StzhHeaderMenuItem,\n StzhHeaderMetanavItem,\n} from \"../../index\";\n\nimport { tabbable } from 'tabbable';\nimport { createBaseFocusTrapOptions } from \"../../utils/overlay-utils\";\nimport { createFocusTrap, FocusTrap } from 'focus-trap';\n\nimport { StzhHeaderLocalizedText } from './stzh-header.localization';\n\nconst CLASS_BODY_OPEN = \"stzh-header-open\";\n\n// for flyout a11y see also: https://www.w3.org/WAI/tutorials/menus/flyout/\n\n/**\n * @slot logo - Slot for brand logo\n * @slot metanav-before - Slot for custom elements before other metanav elements\n * @slot metanav-after - Slot for custom elements after other metanav elements\n */\n@Component({\n tag: \"stzh-header\",\n styleUrl: \"stzh-header.scss\",\n scoped: true\n})\nexport class StzhHeader {\n /** Translation strings */\n @Prop() localization: StzhHeaderLocalizedText;\n\n /** Portal link (for logo) */\n @Prop() href: string = \"https://www.stadt-zuerich.ch\";\n\n /** Menu element ID */\n @Prop() menuId: string = \"anchorNavMain\";\n\n /** Search element ID */\n @Prop() searchId: string = \"anchorSearch\";\n\n /** Metanav element ID */\n @Prop() metanavId: string = \"anchorNavMeta\";\n\n /** Language element ID */\n @Prop() languageId: string = \"anchorNavLang\";\n\n /**\n * Type of logo (used for setting the correct height).\n * Will enlarge the logo to 100% by default (default logos are using whitespace).\n */\n @Prop({ reflect: true }) logoType: \"default\" | \"vbz\" | \"aoz\" | \"pkzh\" | \"uvz\" = \"default\";\n\n /** Menu navigation items */\n @Prop() menuItems: StzhHeaderMenuItem[] | string = [];\n private _menuItems: StzhHeaderMenuItem[];\n\n /** Overwrite menu back label */\n @Prop() menuBackLabel: string;\n\n /** Meta navigation items */\n @Prop() metanavItems: StzhHeaderMetanavItem[] | string = [];\n private _metanavItems: StzhHeaderMetanavItem[];\n\n /** Current language page path */\n @Prop({ mutable: true }) languageActive: string;\n\n /** Available language (paths) in language switch */\n @Prop() languages: StzhDropdownOption[] | string = [];\n private _languages: StzhDropdownOption[];\n\n /** Prevent url change when language has changed (will only fire `stzhLanguageChange`) */\n @Prop() languagePreventUrlchange: boolean = false;\n\n /** Whether language switch should stay on mobile */\n @Prop() languageStay: boolean = false;\n\n /** Search form action (if given, searchfield will be shown) */\n @Prop() searchAction: string;\n\n /** Search field name */\n @Prop() searchFieldName: string = \"q\";\n\n /** Search input value */\n @Prop() searchValue: string = \"\";\n\n /** Sticky behaviour */\n @Prop() sticky: \"default\" | \"disabled\" = \"default\";\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the logo link element.\n * Default value is \"Header Logo\".\n */\n @Prop() logoAnalyticsId: string;\n\n @State() hideLogo: boolean = false;\n @State() paddingTop: number;\n @State() stickyActive: boolean = false;\n @State() flyoutOpen: boolean = false;\n @State() searchFilled: boolean;\n\n @State() fixed: boolean = false;\n @State() fixedTransition: boolean = false;\n\n @State() currentOpenMenuItem: StzhHeaderMenuItem = null;\n @State() currentOpenMetanavItem: StzhHeaderMetanavItem = null;\n @State() currentOpenLanguage: boolean = false;\n private openSubmenuElement: HTMLElement;\n\n @Element() element: HTMLStzhHeaderElement;\n\n @Listen(\"keydown\", { target: \"document\" })\n handleKeydown(event: KeyboardEvent) {\n if (event.key === \"Escape\") {\n this.flyoutOpen = false;\n }\n }\n\n @Watch(\"flyoutOpen\")\n async flyoutOpenWatcher(open: boolean) {\n if (!open) {\n // reset current open menu when flyout was closed\n this.currentOpenMenuItem = null;\n this.currentOpenMetanavItem = null;\n this.currentOpenLanguage = null;\n // reset further flags\n this.flyoutOpenedByMetanavItem = false;\n\n document.body.classList.remove(CLASS_BODY_OPEN);\n this.enableSiblings();\n\n if (this.trap) {\n this.trap.deactivate();\n }\n } else {\n document.body.classList.add(CLASS_BODY_OPEN);\n this.disableSiblings();\n\n if (this.trap) {\n this.trap.activate();\n }\n }\n }\n\n @Watch(\"fixed\")\n @Watch(\"flyoutOpen\")\n async fixedWatcher() {\n this.paddingTop = this.fixed || this.flyoutOpen ? this.headerHeight : 0;\n // we don't want to run transitions on applying fixed class (out transition),\n // so we set them in the next render\n await this.waitForNextRender();\n this.fixedTransition = this.fixed || this.flyoutOpen;\n }\n\n @Watch(\"sticky\")\n stickyWatcher() {\n this.updatePosition();\n }\n\n /** Update position / sticky state of header */\n @Method()\n async updatePosition() {\n if (this.flyoutOpen) {\n return;\n }\n\n if (this.sticky === \"disabled\") {\n document.documentElement.style.setProperty('--stzh-header-is-stuck', '0');\n document.documentElement.style.setProperty('--stzh-header-is-not-stuck', '1');\n this.stickyActive = false;\n return;\n }\n\n if (this.scrollingUp && this.belowStayStickyPoint) {\n if (!this.stickyActive && this.belowStartStickyPoint) {\n this.stickyActive = true;\n document.documentElement.style.setProperty('--stzh-header-is-stuck', '1');\n document.documentElement.style.setProperty('--stzh-header-is-not-stuck', '0');\n }\n } else {\n if (this.stickyActive && this.belowStayStickyPoint) {\n document.documentElement.style.setProperty('--stzh-header-is-stuck', '0');\n document.documentElement.style.setProperty('--stzh-header-is-not-stuck', '1');\n this.stickyActive = false;\n } else {\n document.documentElement.style.setProperty('--stzh-header-is-stuck', '0');\n document.documentElement.style.setProperty('--stzh-header-is-not-stuck', '1');\n this.stickyActive = false;\n }\n }\n }\n\n @Listen(\"scroll\", { target: \"window\" })\n scrollListener() {\n if (this.sticky === \"disabled\") {\n return;\n }\n\n readTask(() => {\n this.currentScrollY = window.scrollY;\n this.scrollingUp = this.lastScrollY && this.lastScrollY > this.currentScrollY;\n this.lastScrollY = this.currentScrollY;\n\n this.belowStayStickyPoint = this.currentScrollY > this.logobarHeight;\n this.belowStartStickyPoint = this.currentScrollY > this.headerHeight;\n\n this.fixed = this.belowStartStickyPoint || (this.scrollingUp && this.belowStayStickyPoint && this.stickyActive);\n\n this.headerOverlap = (this.headerTop - this.currentScrollY) / -1;\n this.hideLogo = this.isMedium && this.headerOverlap > 1;\n });\n\n writeTask(() => {\n this.updatePosition();\n });\n }\n\n /** Metanav item click event */\n @Event() stzhMetanavItemClick: EventEmitter<StzhHeaderMetanavItemClickEvent>;\n\n /** Language change event */\n @Event() stzhLanguageChange: EventEmitter<StzhHeaderLanguageChangeEvent>;\n\n /** Search input change event */\n @Event() stzhSearchChange: EventEmitter<StzhHeaderSearchChangeEvent>;\n\n /** Search input changed event */\n @Event() stzhSearchChanged: EventEmitter<StzhHeaderSearchChangedEvent>;\n\n @Watch(\"searchValue\")\n searchValueWatcher(newValue: string) {\n this.searchFilled = newValue !== \"\";\n }\n\n @Watch(\"menuItems\")\n menuItemsWatcher(newValue: StzhHeaderMenuItem[] | string) {\n if (typeof newValue === \"string\") {\n this._menuItems = JSON.parse(newValue);\n } else {\n this._menuItems = newValue;\n }\n\n this._menuItems = this._menuItems.map((menuItem, index) => ({\n id: `submenu-${index}`,\n ...menuItem\n }))\n }\n\n @Watch(\"metanavItems\")\n metanavItemsWatcher(newValue: StzhHeaderMetanavItem[] | string) {\n if (typeof newValue === \"string\") {\n this._metanavItems = JSON.parse(newValue);\n } else {\n this._metanavItems = newValue;\n }\n\n this._metanavItems = this._metanavItems.map((metanavItem, index) => ({\n id: `metanav-submenu-${index}`,\n ...metanavItem\n }))\n }\n\n @Watch(\"languages\")\n languagesWatcher(newValue: StzhDropdownOption[] | string) {\n if (typeof newValue === \"string\") {\n this._languages = JSON.parse(newValue);\n } else {\n this._languages = newValue;\n }\n }\n\n private renderPromiseResolve: (value?: unknown) => void;\n\n private currentScrollY: number;\n private lastScrollY: number;\n private headerOverlap: number;\n private scrollingUp: boolean;\n private belowStayStickyPoint: boolean;\n private belowStartStickyPoint: boolean;\n\n private headerTop: number;\n private headerHeight: number;\n // private innerHeight: number;\n private mainHeight: number;\n private metabarHeight: number;\n private logobarHeight: number;\n\n private isMedium: boolean;\n\n private debounceResize: number;\n private resizeObserver: ResizeObserver;\n private flyoutResizeObserver: ResizeObserver;\n\n // private innerElement: HTMLDivElement;\n private mainElement: HTMLDivElement;\n private logobarElement: HTMLDivElement;\n private metabarElement: HTMLDivElement;\n private menunavElement: HTMLElement;\n private flyoutElement: HTMLElement;\n\n private searchInput: HTMLInputElement;\n\n private lastOpener: HTMLButtonElement | null = null;\n private flyoutOpenedByMetanavItem: boolean = null;\n\n private trap: FocusTrap;\n private parentElement: HTMLElement;\n\n private getSiblings() {\n if (!this.parentElement) {\n return [];\n }\n\n return Array.from(this.parentElement.children).filter(\n (child) => child !== this.element\n );\n }\n\n private disableSiblings() {\n this.getSiblings().forEach((sibling) => {\n sibling.setAttribute(\"aria-hidden\", \"true\");\n });\n }\n\n private enableSiblings() {\n this.getSiblings().forEach((sibling) => {\n sibling.removeAttribute(\"aria-hidden\");\n });\n }\n\n private waitForNextRender() {\n return new Promise(resolve => this.renderPromiseResolve = resolve);\n }\n\n private resizeMenunavElement() {\n // reset height when metanav is sticky, or on medium or no submenu element is open\n if (media(\"headerMetanavSticky\").matches || media(\"medium\").matches || !this.openSubmenuElement) {\n Object.assign(this.menunavElement.style, {\n height: null\n });\n } else {\n const { height } = this.openSubmenuElement.getBoundingClientRect();\n Object.assign(this.menunavElement.style, {\n height: `${height}px`\n });\n }\n }\n\n private async openMenuItem(event: MouseEvent, menuItem: StzhHeaderMenuItem) {\n this.flyoutOpen = true;\n\n this.lastOpener = event.currentTarget as HTMLButtonElement;\n this.openSubmenuElement = this.element.querySelector(`#${menuItem.id}`) as HTMLElement;\n this.currentOpenMenuItem = menuItem;\n await this.waitForNextRender();\n\n requestAnimationFrame(() => {\n this.menunavElement.scrollTop = 0;\n\n const firstButtonOrLink = this.openSubmenuElement\n && tabbable(this.openSubmenuElement)[0];\n firstButtonOrLink?.focus()\n\n this.resizeMenunavElement();\n });\n }\n\n private async closeMenuItem(focusOpener: boolean = true) {\n this.openSubmenuElement = null;\n this.currentOpenMenuItem = null;\n await this.waitForNextRender();\n\n if (focusOpener) {\n requestAnimationFrame(() => {\n this.lastOpener.focus();\n this.lastOpener = null;\n\n this.resizeMenunavElement();\n });\n }\n }\n\n private async openMetanavItem(event: MouseEvent, metanavItem: StzhHeaderMetanavItem) {\n if (!this.flyoutOpen) {\n this.flyoutOpenedByMetanavItem = true;\n this.flyoutOpen = true;\n }\n\n this.lastOpener = event.currentTarget as HTMLButtonElement;\n this.currentOpenMetanavItem = metanavItem;\n await this.waitForNextRender();\n\n requestAnimationFrame(() => {\n const openMetanavSubmenuElement = this.element.querySelector(`#${metanavItem.id}`);\n const firstButtonOrLink = openMetanavSubmenuElement\n && tabbable(openMetanavSubmenuElement)[0];\n firstButtonOrLink?.focus()\n });\n }\n\n private async closeMetanavItem() {\n this.currentOpenMetanavItem = null;\n\n if (this.flyoutOpenedByMetanavItem) {\n this.flyoutOpen = false;\n }\n\n await this.waitForNextRender();\n\n requestAnimationFrame(() => {\n this.lastOpener.focus();\n this.lastOpener = null;\n });\n }\n\n private async openLanguage(event: MouseEvent) {\n if (!this.flyoutOpen) {\n this.flyoutOpenedByMetanavItem = true;\n this.flyoutOpen = true;\n }\n\n this.lastOpener = event.currentTarget as HTMLButtonElement;\n this.currentOpenLanguage = true;\n await this.waitForNextRender();\n\n requestAnimationFrame(() => {\n const openMetanavSubmenuElement = this.element.querySelector(\"#submenu-languages\");\n const firstButtonOrLink = openMetanavSubmenuElement\n && tabbable(openMetanavSubmenuElement)[0];\n firstButtonOrLink?.focus()\n });\n }\n\n private async closeLanguage() {\n this.currentOpenLanguage = false;\n\n if (this.flyoutOpenedByMetanavItem) {\n this.flyoutOpen = false;\n }\n\n await this.waitForNextRender();\n\n requestAnimationFrame(() => {\n this.lastOpener.focus();\n this.lastOpener = null;\n });\n }\n\n private handleMenuListFocusout = (event: FocusEvent) => {\n const isNextFocusOutOfMenuList = !(event.currentTarget as HTMLElement)\n .contains(event.relatedTarget as HTMLElement);\n\n if (this.isMedium && isNextFocusOutOfMenuList) {\n this.closeMenuItem(false);\n }\n }\n\n private handleBurgerClick = async () => {\n if (this.flyoutOpenedByMetanavItem) {\n this.flyoutOpenedByMetanavItem = false;\n this.closeMetanavItem();\n } else {\n this.flyoutOpen = !this.flyoutOpen;\n }\n\n // focus first menu item\n const element = this.element.querySelector('.stzh-header__menu-item') as HTMLElement;\n\n if (element) {\n window.setTimeout(() => {\n element.focus();\n }, 100);\n }\n\n // await this.waitForNextRender();\n this.updatePosition();\n }\n\n private handleBackdropClick = async () => {\n this.flyoutOpen = false;\n // await this.waitForNextRender();\n this.updatePosition();\n }\n\n private handleMetanavItemClick = (event: MouseEvent, item: StzhHeaderMetanavItem) => {\n this.stzhMetanavItemClick.emit({\n component: \"stzh-header\",\n item,\n originalEvent: event,\n })\n }\n\n private handleSearchInput = (event: InputEvent) => {\n this.searchValue = this.searchInput.value;\n\n this.stzhSearchChange.emit({\n component: \"stzh-header\",\n originalEvent: event,\n value: this.searchValue\n });\n }\n\n private handleSearchChange = (event: InputEvent) => {\n this.searchValue = this.searchInput.value;\n\n this.stzhSearchChanged.emit({\n component: \"stzh-header\",\n originalEvent: event,\n value: this.searchValue\n });\n }\n\n private handleLanguageClick = (event: MouseEvent, dropdownOption: StzhDropdownOption) => {\n if (this.languagePreventUrlchange) {\n event.preventDefault();\n }\n\n this.languageActive = dropdownOption.value;\n\n this.stzhLanguageChange.emit({\n component: \"stzh-header\",\n value: this.languageActive\n });\n }\n\n private handleFlyoutResize = () => {\n this.resizeMenunavElement();\n }\n\n private handleResize = () => {\n if (this.sticky === \"disabled\") {\n return;\n }\n\n if (this.debounceResize) {\n window.cancelAnimationFrame(this.debounceResize);\n }\n\n this.debounceResize = requestAnimationFrame(() => {\n readTask(() => {\n this.isMedium = media(\"medium\").matches;\n\n this.mainHeight = this.mainElement?.offsetHeight || 0;\n this.metabarHeight = this.metabarElement?.offsetHeight || 0;\n this.logobarHeight = this.logobarElement?.offsetHeight || 0;\n\n this.headerTop = this.element.offsetTop;\n this.headerHeight = this.metabarHeight + this.logobarHeight;\n\n // this.headerHeight = this.element.offsetHeight;\n // console.log(this.headerHeight);\n // console.log(this.metabarHeight + this.logobarHeight);\n // console.log(this.metabarHeight, this.logobarHeight);\n });\n\n writeTask(() => {\n document.documentElement.style.setProperty('--stzh-header-height', `${this.headerHeight}px`);\n document.documentElement.style.setProperty('--stzh-header-main-height', `${this.mainHeight}px`);\n document.documentElement.style.setProperty('--stzh-header-metabar-height', `${this.metabarHeight}px`);\n document.documentElement.style.setProperty('--stzh-header-logobar-height', `${this.logobarHeight}px`);\n });\n\n this.scrollListener();\n });\n }\n\n async componentWillLoad() {\n this.menuItemsWatcher(this.menuItems);\n this.metanavItemsWatcher(this.metanavItems);\n this.languagesWatcher(this.languages);\n this.searchValueWatcher(this.searchValue);\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"header\");\n }\n }\n\n componentDidRender() {\n if (this.renderPromiseResolve) {\n this.renderPromiseResolve();\n }\n\n if (this.flyoutElement && this.flyoutResizeObserver) {\n this.flyoutResizeObserver.observe(this.flyoutElement);\n }\n }\n\n componentDidLoad() {\n this.trap = createFocusTrap(this.element, {\n ...createBaseFocusTrapOptions(),\n initialFocus: false\n });\n\n this.flyoutResizeObserver = new ResizeObserver(this.handleFlyoutResize);\n if (this.flyoutElement) {\n this.flyoutResizeObserver.observe(this.flyoutElement);\n }\n }\n\n connectedCallback() {\n this.parentElement = this.element.parentElement;\n\n this.resizeObserver = new ResizeObserver(this.handleResize);\n this.resizeObserver.observe(this.element);\n }\n\n disconnectedCallback() {\n this.flyoutOpenWatcher(false);\n this.resizeObserver?.disconnect();\n this.flyoutResizeObserver?.disconnect();\n }\n\n render() {\n const metanavBeforeUsed: boolean = hasSlot(this.element, \"metanav-before\");\n const metanavAfterUsed: boolean = hasSlot(this.element, \"metanav-after\");\n\n const classes = {\n \"stzh-header\": true,\n \"stzh-header--is-flyout-open\": this.flyoutOpen,\n \"stzh-header--is-sticky-disabled\": this.sticky === \"disabled\",\n \"stzh-header--is-search-filled\": this.searchFilled,\n \"stzh-header--is-fixed\": this.fixed,\n \"stzh-header--is-fixed-transition\": this.fixedTransition,\n \"stzh-header--is-sticky\": this.stickyActive,\n \"stzh-header--hide-logo\": this.hideLogo,\n \"stzh-header--has-empty-metabar-mobile\": !metanavBeforeUsed && !metanavAfterUsed\n && this._metanavItems.filter(item => item.stay || item.stayAndShowInMobileMenu).length === 0\n && this._menuItems.length === 0\n && (this._languages.length === 0\n || (this._languages.length > 0 && !this.languageStay))\n && !this.searchAction,\n \"stzh-header--has-empty-metabar\": !metanavBeforeUsed && !metanavAfterUsed\n && this._metanavItems.length === 0\n && this._menuItems.length === 0\n && this._languages.length === 0\n && !this.searchAction\n };\n\n const activeLanguage = this.languageActive || window.stzhComponents.utils.getLocale(this.element);\n const activeLanguageOption = this._languages\n ?.find(({ value }) => value === activeLanguage) || this._languages?.[0] || null;\n\n const renderMetanavItemButton = (item: StzhHeaderMetanavItem, additionalClasses?: { [className: string]: boolean }, additionalAttributes?: any) => {\n const Element = item.items?.length > 0 || item.itemButton || !item.href ? \"button\" : \"a\";\n\n return (\n <Element\n {...additionalAttributes}\n href={Element === \"a\" && item.href}\n target={Element === \"a\" && item.target}\n class={{\n \"stzh-header__metanav-item\": true,\n \"is-heavy\": item.important,\n \"is-stay\": item.stay || item.stayAndShowInMobileMenu,\n ...(additionalClasses || {})\n }}\n >\n <span\n class={{\n \"stzh-header__metanav-item-text\": true,\n \"is-vhidden\": item.labelHidden,\n \"has-no-short-label\": !item.labelShort,\n }}\n >\n <span class=\"stzh-header__metanav-item-text-label-long\">{item.label}</span>\n <span class=\"stzh-header__metanav-item-text-label-short\" aria-hidden=\"true\">{item.labelShort}</span>\n </span>\n {item.icon &&\n <span class=\"stzh-header__metanav-icon-wrapper\">\n {item.icon && <stzh-icon class={`stzh-header__metanav-icon ${item.iconOpen ? 'is-close' : ''}`} name={item.icon}></stzh-icon>}\n {item.iconOpen && <stzh-icon class=\"stzh-header__metanav-icon is-open\" name={item.iconOpen}></stzh-icon>}\n {(item.badge || item.badgeEmpty) &&\n <stzh-badge class=\"stzh-header__metanav-icon-badge\" label={item.badge} type={typeof item.badgeType === \"undefined\" ? \"error\" : item.badgeType}></stzh-badge>\n }\n </span>\n }\n </Element>\n );\n }\n\n return (\n <Host>\n <header class={classes}>\n <div class=\"stzh-header__header\" style={{paddingTop: `${this.paddingTop}px`}}>\n <div\n class=\"stzh-header__inner\"\n // ref={(el) => (this.innerElement = el as HTMLDivElement)}\n >\n <div\n class=\"stzh-header__main\"\n ref={(el) => (this.mainElement = el as HTMLDivElement)}\n >\n <div\n class=\"stzh-header__logobar\"\n ref={(el) => (this.logobarElement = el as HTMLDivElement)}\n >\n <div class=\"stzh-header__logobar-logo\">\n <a href={this.href} class=\"stzh-header__logo-link\" s-object-id={this.logoAnalyticsId || \"Header Logo\"}>\n <slot name=\"logo\"></slot>\n </a>\n </div>\n <div class=\"stzh-header__logobar-decoration\"></div>\n </div>\n\n <div\n class=\"stzh-header__metabar\"\n ref={(el) => (this.metabarElement = el as HTMLDivElement)}\n >\n <div class=\"stzh-header__metabar-inner\">\n {this._menuItems.length > 0 &&\n <button\n id={this.menuId}\n class={`stzh-header__burger ${this.flyoutOpen && !this.flyoutOpenedByMetanavItem && \"is-open\"}`}\n onClick={this.handleBurgerClick}\n >\n <stzh-icon\n class=\"stzh-header__burger-icon is-close\"\n name=\"menu\"\n ></stzh-icon>\n <stzh-icon\n class=\"stzh-header__burger-icon is-open\"\n name=\"close\"\n ></stzh-icon>\n <div class=\"stzh-header__burger-text\">\n {this.localization.menuLabel}\n </div>\n </button>\n }\n {this.searchAction &&\n <form\n class=\"stzh-header__metabar-search\"\n action={this.searchAction}\n role=\"search\"\n >\n <label class=\"stzh-header__search\">\n <input\n id={this.searchId}\n ref={(el) => (this.searchInput = el as HTMLInputElement)}\n class=\"stzh-header__search-input\"\n type=\"search\"\n name={this.searchFieldName}\n onChange={this.handleSearchChange}\n onInput={this.handleSearchInput}\n ></input>\n <stzh-icon class=\"stzh-header__search-icon\" name=\"search\"></stzh-icon>\n <div class=\"stzh-header__search-text\">{this.localization.searchLabel}</div>\n </label>\n </form>\n }\n <div class=\"stzh-header__metabar-nav\" id={this.metanavId}>\n <slot name=\"metanav-before\"></slot>\n\n {this._metanavItems.map((item) =>\n (item.items?.length > 0 || item.itemButton)\n ?\n <Fragment>\n {renderMetanavItemButton(item, {\n \"is-popover-mobile\": true\n }, {\n 'aria-expanded': item === this.currentOpenMetanavItem ? \"true\" : \"false\",\n 'aria-controls': item.id,\n onClick: (e: MouseEvent) => {\n if (item === this.currentOpenMetanavItem) {\n this.closeMetanavItem();\n } else {\n this.openMetanavItem(e, item)\n }\n\n this.handleMetanavItemClick(e, item);\n }\n })}\n <stzh-popover\n class={{\n \"stzh-header__metanav-popover\": true,\n }}\n placement=\"bottom-end\"\n distance={20}\n variant={item.variant}\n size={typeof item.size === \"undefined\" ? \"large\" : item.size}\n >\n {renderMetanavItemButton(item, {\n \"is-popover-desktop\": true\n }, {\n onClick: (e: MouseEvent) => {\n this.handleMetanavItemClick(e, item);\n }\n })}\n <div slot=\"content\">\n {item.items?.length > 0 &&\n <stzh-menu>\n {item.items.map((childItem) =>\n <stzh-menu-item\n class={{\n \"stzh-header__metanav-menu-item\": true,\n \"is-heavy\": typeof item.importantSubmenu === \"undefined\" || item.importantSubmenu,\n }}\n size={typeof item.size === \"undefined\" ? \"large\" : item.size}\n variant={item.variant}\n href={childItem.href}\n target={childItem.target}\n icon={childItem.icon}\n counter={childItem.counter}\n badge={childItem.badge}\n badgeType={childItem.badgeType}\n >\n {childItem.label}\n </stzh-menu-item>\n )}\n </stzh-menu>\n }\n </div>\n {item.itemButton &&\n <stzh-button\n slot=\"action\"\n size={item.itemButton.size}\n href={item.itemButton.href}\n target={item.itemButton.target}\n >\n {item.itemButton.label}\n </stzh-button>\n }\n </stzh-popover>\n </Fragment>\n :\n renderMetanavItemButton(item, {}, {\n onClick: (e: MouseEvent) => {\n this.handleMetanavItemClick(e, item);\n }\n })\n )}\n\n {this._languages?.length > 0 &&\n <Fragment>\n <h2 id={this.languageId} class=\"stzh-header__vhidden\">\n {this.localization.languageLabel}\n </h2>\n {this._menuItems.length > 0 && this.languageStay &&\n <button\n class={{\n \"stzh-header__metanav-item\": true,\n \"is-popover-mobile\": true,\n \"is-stay\": this.languageStay\n }}\n aria-expanded={this.currentOpenLanguage ? \"true\" : \"false\"}\n aria-controls=\"submenu-languages\"\n onClick={(e: MouseEvent) => {\n if (this.currentOpenLanguage) {\n this.closeLanguage();\n } else {\n this.openLanguage(e)\n }\n }}\n >\n <span class=\"stzh-header__metanav-item-text\">{activeLanguageOption?.text}</span>\n <stzh-icon class=\"stzh-header__metanav-icon is-close\" name=\"angle-down\"></stzh-icon>\n <stzh-icon class=\"stzh-header__metanav-icon is-open\" name=\"angle-up\"></stzh-icon>\n </button>\n }\n <stzh-popover\n class=\"stzh-header__metanav-popover is-langnav\"\n placement=\"bottom-end\"\n distance={20}\n >\n <button\n class={{\n \"stzh-header__metanav-item\": true,\n \"is-popover-desktop\": this._menuItems.length > 0,\n \"is-stay\": this.languageStay\n }}\n >\n <span class=\"stzh-header__metanav-item-text\">{activeLanguageOption?.text}</span>\n <stzh-icon class=\"stzh-header__metanav-icon is-close\" name=\"angle-down\"></stzh-icon>\n <stzh-icon class=\"stzh-header__metanav-icon is-open\" name=\"angle-up\"></stzh-icon>\n </button>\n <div slot=\"content\">\n <stzh-menu>\n {this._languages.map((language) =>\n <stzh-menu-item\n class=\"stzh-header__metanav-menu-item\"\n active={activeLanguageOption?.value === language.value}\n href={language.value}\n onClick={(event) => this.handleLanguageClick(event, language)}\n >\n {language.text}\n </stzh-menu-item>\n )}\n </stzh-menu>\n </div>\n </stzh-popover>\n </Fragment>\n }\n\n <slot name=\"metanav-after\"></slot>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {this._menuItems.length > 0 &&\n <div\n ref={(el) => (this.flyoutElement = el as HTMLElement)}\n class=\"stzh-header__flyout\"\n >\n <div class=\"stzh-header__flyout-backdrop\" onClick={this.handleBackdropClick}></div>\n <div class=\"stzh-header__flyout-scrollbar\"></div>\n <div class=\"stzh-header__menu\">\n <nav\n class=\"stzh-header__menu-nav\"\n ref={(el) => (this.menunavElement = el as HTMLElement)}\n aria-label={this.localization.navigationLabel}\n >\n <ul class=\"stzh-header__menu-list is-level-1\">\n {this._menuItems.map((item) =>\n <li\n class={{\n 'stzh-header__menu-list-item': true,\n 'is-open': item === this.currentOpenMenuItem\n }}\n >\n {item.items?.length > 0\n ?\n <button\n aria-expanded={item === this.currentOpenMenuItem ? \"true\" : \"false\"}\n aria-controls={item.id}\n class=\"stzh-header__menu-item is-level-1 has-items\"\n onClick={\n item === this.currentOpenMenuItem\n ? () => this.closeMenuItem()\n : (e) => this.openMenuItem(e, item)\n }\n >\n {item.label}\n </button>\n :\n <a href={item.href} class=\"stzh-header__menu-item is-level-1\">\n {item.label}\n </a>\n }\n {item.items?.length > 0 &&\n <ul\n id={item.id}\n class=\"stzh-header__menu-list is-level-2\"\n onFocusout={this.handleMenuListFocusout}\n >\n <li class=\"stzh-header__menu-list-item is-backlink\">\n <button class=\"stzh-header__menu-item is-level-2 is-backlink\" onClick={() => this.closeMenuItem()}>\n <stzh-icon name=\"angle-left\"></stzh-icon>\n <span>{this.menuBackLabel ? this.menuBackLabel : this.localization.menuBackLabel}</span>\n </button>\n </li>\n <li class=\"stzh-header__menu-list-item\">\n <a href={item.href} class=\"stzh-header__menu-item is-level-2 is-main\">\n {item.label}\n </a>\n </li>\n {item.items.map((item) =>\n <li class=\"stzh-header__menu-list-item\">\n <a href={item.href} class=\"stzh-header__menu-item is-level-2\">\n {item.label}\n </a>\n </li>\n )}\n </ul>\n }\n </li>\n )}\n </ul>\n </nav>\n\n {(this._metanavItems?.length > 0 || this._languages?.length > 0) &&\n <div class=\"stzh-header__menu-metanav\">\n <nav class=\"stzh-header__menu-metanav-nav\">\n <ul class=\"stzh-header__menu-metanav-list is-level-1\">\n {this._metanavItems.map((item) =>\n <li\n class={{\n 'stzh-header__menu-metanav-list-item': true,\n 'is-open': item === this.currentOpenMetanavItem\n }}>\n {item.items?.length > 0\n ?\n <button\n aria-expanded={item === this.currentOpenMetanavItem ? \"true\" : \"false\"}\n aria-controls={item.id}\n class={{\n \"stzh-header__menu-metanav-item is-level-1\": true,\n \"is-hidden\": item.stay && !item.stayAndShowInMobileMenu\n }}\n onClick={(e: MouseEvent) => {\n if (item === this.currentOpenMetanavItem) {\n this.closeMetanavItem();\n } else {\n this.openMetanavItem(e, item)\n }\n\n this.handleMetanavItemClick(e, item);\n }}\n >\n <span\n class={{\n \"stzh-header__menu-metanav-item-text\": true,\n \"is-vhidden\": item.labelHidden,\n }}\n >\n {item.label}\n </span>\n {item.icon && <stzh-icon class=\"stzh-header__menu-metanav-item-icon\" name={item.icon}></stzh-icon>}\n </button>\n :\n <a\n href={item.href}\n class={{\n \"stzh-header__menu-metanav-item is-level-1\": true,\n \"is-hidden\": item.stay && !item.stayAndShowInMobileMenu\n }}\n onClick={(e: MouseEvent) => {\n this.handleMetanavItemClick(e, item);\n }}\n >\n <span\n class={{\n \"stzh-header__menu-metanav-item-text\": true,\n \"is-vhidden\": item.labelHidden,\n }}\n >\n {item.label}\n </span>\n {item.icon && <stzh-icon class=\"stzh-header__menu-metanav-item-icon\" name={item.icon}></stzh-icon>}\n </a>\n }\n {item.items?.length > 0 &&\n <ul\n id={item.id}\n class=\"stzh-header__menu-metanav-list is-level-2\"\n >\n <li class=\"stzh-header__menu-metanav-list-item\">\n <div class=\"stzh-header__menu-metanav-item is-level-2 is-title\">\n <span>{item.label}</span>\n <stzh-button\n class=\"stzh-header__menu-metanav-item-icon\"\n variant=\"tertiary\"\n icon=\"close\"\n iconOnly={true}\n label={this.localization.closeMetanavMenuLabel?.replace(/\\{itemLabel\\}/gi, item.label)}\n onClick={() => this.closeMetanavItem()}\n ></stzh-button>\n </div>\n </li>\n {item.items.map((item) =>\n <li class=\"stzh-header__menu-metanav-list-item\">\n <a href={item.href} class=\"stzh-header__menu-metanav-item is-level-2\">\n {item.icon && <stzh-icon class=\"stzh-header__menu-metanav-item-icon\" name={item.icon}></stzh-icon>}\n <span class=\"stzh-header__menu-metanav-item-text\">\n <span>{item.label}</span>\n {item.counter &&\n <span class=\"stzh-header__menu-metanav-item-counter\">({item.counter})</span>\n }\n </span>\n </a>\n </li>\n )}\n\n {item.itemButton &&\n <li class=\"stzh-header__menu-metanav-list-item\">\n <div class=\"stzh-header__menu-metanav-item is-level-2 is-action\">\n <stzh-button\n href={item.itemButton.href}\n target={item.itemButton.target}\n >\n {item.itemButton.label}\n </stzh-button>\n </div>\n </li>\n }\n </ul>\n }\n </li>\n )}\n\n {this._languages?.length > 0 &&\n <li\n class={{\n 'stzh-header__menu-metanav-list-item': true,\n 'is-open': this.currentOpenLanguage\n }}\n >\n <button\n aria-expanded={this.currentOpenLanguage ? \"true\" : \"false\"}\n aria-controls=\"submenu-languages\"\n class=\"stzh-header__menu-metanav-item is-level-1\"\n onClick={(e) => this.openLanguage(e)}\n >\n <span>{activeLanguageOption?.text}</span>\n <stzh-icon class=\"stzh-header__menu-metanav-item-icon\" name=\"angle-down\"></stzh-icon>\n </button>\n <ul\n id=\"submenu-languages\"\n class=\"stzh-header__menu-metanav-list is-level-2\"\n >\n <div class=\"stzh-header__menu-metanav-item is-level-2 is-title\">\n <span>{this.localization.dialogLanguageTitle}</span>\n <stzh-button\n class=\"stzh-header__menu-metanav-item-icon\"\n variant=\"tertiary\"\n icon=\"close\"\n iconOnly={true}\n label={\"Sprach-Dialog schliessen\"}\n onClick={() => this.closeLanguage()}\n ></stzh-button>\n </div>\n {this._languages.map((language) =>\n <li class=\"stzh-header__menu-metanav-list-item\">\n <a\n class=\"stzh-header__menu-metanav-item is-level-2 is-language\"\n href={language.value}\n onClick={(event) => this.handleLanguageClick(event, language)}\n >\n <span>{language.text}</span>\n {activeLanguageOption?.value === language.value &&\n <stzh-icon class=\"stzh-header__menu-metanav-item-icon\" name=\"checkmark\"></stzh-icon>}\n </a>\n </li>\n )}\n </ul>\n </li>\n }\n </ul>\n </nav>\n </div>\n }\n </div>\n </div>\n }\n </header>\n </Host>\n );\n }\n}\n"]}
|