@itcenteratunihelsinki/huds-lib 0.8.69 → 0.8.71

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.
Files changed (57) hide show
  1. package/components/hy-dropdown.js +147 -46
  2. package/components/hy-dropdown.js.map +1 -1
  3. package/components/hy-footer-info.js +1 -1
  4. package/components/hy-footer-info.js.map +1 -1
  5. package/components/hy-footer-link-item2.js +2 -2
  6. package/components/hy-footer-link-item2.js.map +1 -1
  7. package/dist/cjs/huds-lib.cjs.js +1 -1
  8. package/dist/cjs/hy-breadcrumbs_15.cjs.entry.js +3 -3
  9. package/dist/cjs/hy-breadcrumbs_15.cjs.entry.js.map +1 -1
  10. package/dist/cjs/hy-dropdown.cjs.entry.js +226 -0
  11. package/dist/cjs/hy-dropdown.cjs.entry.js.map +1 -0
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/collection/collection-manifest.json +5 -9
  14. package/dist/collection/components/footer/hy-footer-info/hy-footer-info.css +2 -2
  15. package/dist/collection/components/footer/hy-footer-link-item/hy-footer-link-item.css +8 -1
  16. package/dist/collection/components/footer/hy-footer-link-item/hy-footer-link-item.js +1 -1
  17. package/dist/collection/components/footer/hy-footer-link-item/hy-footer-link-item.js.map +1 -1
  18. package/dist/collection/components/hy-dropdown/hy-dropdown.css +48 -33
  19. package/dist/collection/components/hy-dropdown/hy-dropdown.js +232 -35
  20. package/dist/collection/components/hy-dropdown/hy-dropdown.js.map +1 -1
  21. package/dist/esm/huds-lib.js +1 -1
  22. package/dist/esm/hy-breadcrumbs_15.entry.js +3 -3
  23. package/dist/esm/hy-breadcrumbs_15.entry.js.map +1 -1
  24. package/dist/esm/hy-dropdown.entry.js +222 -0
  25. package/dist/esm/hy-dropdown.entry.js.map +1 -0
  26. package/dist/esm/loader.js +1 -1
  27. package/dist/huds-lib/huds-lib.esm.js +1 -1
  28. package/dist/huds-lib/huds-lib.esm.js.map +1 -1
  29. package/dist/huds-lib/hy-breadcrumbs_15.entry.js +1 -1
  30. package/dist/huds-lib/hy-breadcrumbs_15.entry.js.map +1 -1
  31. package/dist/huds-lib/hy-dropdown.entry.js +2 -0
  32. package/dist/huds-lib/hy-dropdown.entry.js.map +1 -0
  33. package/dist/types/components/hy-dropdown/hy-dropdown.d.ts +17 -3
  34. package/dist/types/components.d.ts +10 -36
  35. package/package.json +2 -2
  36. package/components/hy-dropdown-panel-item.d.ts +0 -11
  37. package/components/hy-dropdown-panel-item.js +0 -8
  38. package/components/hy-dropdown-panel-item.js.map +0 -1
  39. package/components/hy-dropdown-panel.d.ts +0 -11
  40. package/components/hy-dropdown-panel.js +0 -8
  41. package/components/hy-dropdown-panel.js.map +0 -1
  42. package/components/hy-dropdown.panel.item.js +0 -43
  43. package/components/hy-dropdown.panel.item.js.map +0 -1
  44. package/components/hy-dropdown.panel.js +0 -31
  45. package/components/hy-dropdown.panel.js.map +0 -1
  46. package/dist/cjs/hy-dropdown_3.cjs.entry.js +0 -141
  47. package/dist/cjs/hy-dropdown_3.cjs.entry.js.map +0 -1
  48. package/dist/collection/components/hy-dropdown/hy-dropdown.panel.item.js +0 -87
  49. package/dist/collection/components/hy-dropdown/hy-dropdown.panel.item.js.map +0 -1
  50. package/dist/collection/components/hy-dropdown/hy-dropdown.panel.js +0 -32
  51. package/dist/collection/components/hy-dropdown/hy-dropdown.panel.js.map +0 -1
  52. package/dist/esm/hy-dropdown_3.entry.js +0 -135
  53. package/dist/esm/hy-dropdown_3.entry.js.map +0 -1
  54. package/dist/huds-lib/hy-dropdown_3.entry.js +0 -2
  55. package/dist/huds-lib/hy-dropdown_3.entry.js.map +0 -1
  56. package/dist/types/components/hy-dropdown/hy-dropdown.panel.d.ts +0 -4
  57. package/dist/types/components/hy-dropdown/hy-dropdown.panel.item.d.ts +0 -7
@@ -1 +1 @@
1
- {"file":"hy-breadcrumbs.hy-footer.hy-footer-action.hy-footer-base.hy-footer-info.hy-footer-link-item.hy-heading.hy-ingress.hy-main-content-wrapper.hy-menu-language.hy-menu-language-item.hy-search-field.hy-site-header.hy-site-logo.hy-site-search.entry.cjs.js","mappings":"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","names":["BreadcrumbVariants","jsonParserWorker","h","Host","FooterLinkItemColor","SiteLogoSize","ColorVariant","FooterVariant","ResizeObserver","FooterLinkVariants","HeadingSectionVariants","HeadingVarians","CtaLinkButtonVariants","MenuType","Fragment"],"sources":["./src/components/hy-breadcrumbs/hy-breadcrumbs.scss?tag=hy-breadcrumbs","./src/components/hy-breadcrumbs/hy-breadcrumbs.tsx","./src/components/footer/hy-footer/hy-footer.scss?tag=hy-footer","./src/components/footer/hy-footer/hy-footer.tsx","./src/components/footer/hy-footer-action/hy-footer-action.scss?tag=hy-footer-action","./src/components/footer/hy-footer-action/hy-footer-action.tsx","./src/components/footer/hy-footer-base/hy-footer-base.scss?tag=hy-footer-base","./src/components/footer/hy-footer-base/hy-footer-base.tsx","./src/components/footer/hy-footer-info/hy-footer-info.scss?tag=hy-footer-info","./src/components/footer/hy-footer-info/hy-footer-info.tsx","./src/components/footer/hy-footer-link-item/hy-footer-link-item.scss?tag=hy-footer-link-item","./src/components/footer/hy-footer-link-item/hy-footer-link-item.tsx","./src/components/hy-heading/heading.scss?tag=hy-heading&mode=default","./src/components/hy-heading/heading-fw.scss?tag=hy-heading&mode=wide","./src/components/hy-heading/heading.tsx","./src/components/hy-ingress/ingress.scss?tag=hy-ingress","./src/components/hy-ingress/ingress.tsx","./src/components/hy-main-content-wrapper/hy-main-content-wrapper.scss?tag=hy-main-content-wrapper","./src/components/hy-main-content-wrapper/hy-main-content-wrapper.tsx","./src/components/hy-navigation/menu-language/menu-language.scss?tag=hy-menu-language&encapsulation=shadow","./src/components/hy-navigation/menu-language/menu-language.tsx","./src/components/hy-navigation/menu-language-item/menu-language-item.scss?tag=hy-menu-language-item&encapsulation=shadow","./src/components/hy-navigation/menu-language-item/menu-language-item.tsx","./src/components/hy-search-field/hy-search-field.scss?tag=hy-search-field","./src/components/hy-search-field/hy-search-field.tsx","./src/components/hy-site-header/site-header.scss?tag=hy-site-header","./src/components/hy-site-header/site-header.tsx","./src/components/hy-site-header/site-logo/site-logo.scss?tag=hy-site-logo","./src/components/hy-site-header/site-logo/site-logo.tsx","./src/components/hy-site-header/site-search/site-search.scss?tag=hy-site-search&encapsulation=shadow","./src/components/hy-site-header/site-search/site-search.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.hy-breadcrumbs {\n display: inline-block;\n position: relative;\n width: auto;\n\n &.is-condensed {\n width: 100%;\n }\n\n ol {\n margin: 0;\n padding: 0;\n }\n\n .breadcrumb-container {\n display: flex;\n font-family: var(--main-font-family);\n flex-wrap: wrap;\n list-style-type: none;\n margin: 0;\n padding: 20px 0 16px;\n\n @include breakpoint($narrow) {\n padding: 24px 0 16px;\n }\n\n @include breakpoint($extrawide) {\n padding: 32px 0 16px;\n }\n }\n\n .breadcrumb-item {\n @include font-size(15px, 20px);\n align-items: center;\n display: flex;\n font-weight: 600;\n font-family: var(--main-font-family);\n margin-bottom: 0.75rem;\n letter-spacing: -0.5px;\n\n @include breakpoint($narrow) {\n margin-bottom: 1rem;\n }\n\n .breadcrumb-item__link {\n color: var(--brand-main-light);\n text-decoration: none;\n }\n\n .breadcrumb-item__icon {\n margin: 0 21px;\n }\n\n &:hover {\n .breadcrumb-item__link {\n color: var(--brand-main-active);\n }\n }\n }\n\n .breadcrumb-item--current a {\n @include font-size(15px, 20px);\n\n color: var(--grayscale-dark);\n display: block;\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.5px;\n text-decoration: none;\n }\n}\n","export interface Breadcrumb {\n url: string;\n text: string;\n}\n\nimport {Component, Element, h, Prop, State} from \"@stencil/core\";\nimport {BreadcrumbVariants} from \"../../utils/utils\";\nimport {jsonParserWorker} from \"../../global/globalScript\";\n\n@Component({\n tag: \"hy-breadcrumbs\",\n styleUrl: \"hy-breadcrumbs.scss\",\n shadow: false,\n})\nexport class HyBreadcrumbs {\n private _dataItems: Breadcrumb[];\n @Prop() dataItems: Breadcrumb[] | string;\n @Prop() variant: BreadcrumbVariants = BreadcrumbVariants.default as any;\n @Prop() headerstyle: string = \"with-sidebar\";\n\n @State() menuOpen: boolean = false;\n @Element() el: HTMLElement;\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest(\".hy-main\");\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains(\"with-sidebar\")) {\n this.headerstyle = \"without-sidebar\";\n }\n }\n }\n\n render() {\n const breadcrumbsClass = [\"hy-breadcrumbs\", this.variant, this.headerstyle].join(\" \");\n return (\n <nav aria-label=\"Breadcrumb\" role=\"navigation\" aria-labelledby=\"system-breadcrumb\" class={breadcrumbsClass}>\n <ol class=\"breadcrumb-container\">\n {this._dataItems.map((item) => {\n if (item.url.length > 0) {\n return (\n <li class=\"breadcrumb-item\">\n <a class=\"breadcrumb-item__link\" href={item.url}>\n {item.text}\n </a>\n <hy-icon class=\"breadcrumb-item__icon\" icon=\"hy-icon-caret-right\" size={12}></hy-icon>\n </li>\n );\n } else {\n return (\n <li class=\"breadcrumb-item breadcrumb-item--current\">\n <a href={item.url} aria-current=\"page\">\n {item.text}\n </a>\n </li>\n );\n }\n })}\n </ol>\n </nav>\n );\n }\n}\n",".hy-footer {\n display: block;\n}\n","import {Component, h} from \"@stencil/core\";\n\n@Component({\n tag: \"hy-footer\",\n styleUrl: \"hy-footer.scss\",\n shadow: false,\n})\nexport class HyFooter {\n render() {\n const classAttributes = [\"hy-footer\"];\n return (\n <footer class={classAttributes.join(\" \")}>\n <slot></slot>\n </footer>\n );\n }\n}\n",".hy-footer-action {\n align-items: center;\n border-top: 1px solid var(--grayscale-medium-dark);\n display: flex;\n flex-direction: row;\n padding: 8px 16px 16px 16px;\n place-content: center space-between;\n width: 100%;\n\n @include breakpoint($narrow) {\n margin: 0 auto;\n max-width: $fullhd;\n padding: 16px 24px 16px 24px;\n }\n\n @include breakpoint($wide) {\n padding: 16px 32px 24px 32px;\n }\n\n &__updated-text {\n @include font-size(14px, 24px);\n\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n }\n\n &__scroll-up {\n align-items: center;\n display: flex;\n\n .hy-footer-action__up-button {\n background-color: var(--brand-main-light);\n border: 0;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05);\n padding: 8px;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n label {\n @include font-size(16px, 24px);\n\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: 0;\n margin-right: 8px;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n svg {\n fill: var(--grayscale-white);\n }\n\n &:hover {\n label {\n text-decoration: underline;\n }\n .hy-footer-action__up-button {\n background-color: var(--brand-main);\n }\n }\n }\n}\n","import {Component, Host, Prop, Listen, h} from \"@stencil/core\";\n\nlet scrollTimeout = null;\n\n@Component({\n tag: \"hy-footer-action\",\n styleUrl: \"hy-footer-action.scss\",\n shadow: false,\n})\nexport class HyFooterAction {\n /**\n * String of text for updated text to be displayed.\n */\n @Prop() updatedText: string;\n /**\n * Up button label.\n */\n @Prop() upButtonLabel: string;\n\n disconnectedCallback() {\n clearTimeout(scrollTimeout);\n }\n\n @Listen(\"scrollTop\", {capture: true}) scrollTop() {\n const hyLogo = document.querySelector(\".hy-site-header .hy-site-header__branding a\") as HTMLElement;\n window.scrollTo({top: 0, behavior: \"smooth\"});\n scrollTimeout = window.setTimeout(() => {\n hyLogo.focus();\n }, 500);\n }\n\n render() {\n const classAttributes = [\"hy-footer-action\"].join(\" \");\n\n return (\n <Host class={classAttributes}>\n <span class={\"hy-footer-action__updated-text\"}>{this.updatedText}</span>\n {this.upButtonLabel && (\n <span class=\"hy-footer-action__scroll-up\">\n <label id=\"up-label\" htmlFor=\"scroll-up\" onClick={() => this.scrollTop()}>\n {this.upButtonLabel}\n </label>\n <button\n name=\"scroll-up\"\n aria-labelledby=\"up-label\"\n onClick={() => this.scrollTop()}\n class=\"hy-footer-action__up-button\"\n type=\"button\"\n >\n <hy-icon class={\"hy-footer-action__up-icon\"} icon={\"hy-icon-arrow-up\"} size={26} />\n </button>\n </span>\n )}\n </Host>\n );\n }\n}\n",".hy-footer-base--content-container {\n background-color: var(--grayscale-black);\n display: block;\n max-width: 100%;\n}\n\n.hy-footer-base {\n background-color: var(--grayscale-black);\n display: flex;\n flex-direction: column;\n max-height: 100%;\n padding: 32px 16px 0 16px;\n place-content: center space-between;\n position: relative;\n width: 100%;\n\n @include breakpoint($narrow) {\n flex-direction: column;\n margin: 0 auto;\n max-width: $fullhd;\n padding: 32px 24px 0 24px;\n }\n\n @include breakpoint($wide) {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: repeat(2, auto);\n padding: 36px 32px 0 32px;\n }\n\n @include breakpoint($extrawide) {\n padding: 40px 32px 0 32px;\n }\n\n &__left {\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n margin-top: 24px;\n order: 2;\n\n @include breakpoint($narrow) {\n align-items: center;\n width: 100%;\n }\n\n @include breakpoint($wide) {\n order: unset;\n align-items: flex-start;\n }\n }\n\n &__logo {\n @include font-size(18px, 16px);\n\n font-family: var(--main-font-family);\n font-weight: bold;\n letter-spacing: -0.9px;\n\n .hy-site-logo__label {\n max-width: max-content;\n min-width: max-content;\n }\n }\n\n &__content {\n @include font-size(16px, 24px);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-style: normal;\n font-weight: 600;\n letter-spacing: -0.1px;\n margin: 22px 0;\n white-space: pre-line;\n\n @include breakpoint($narrow) {\n margin: 22px 0;\n }\n\n @include breakpoint($wide) {\n margin: 32px 0;\n }\n\n @include breakpoint($extrawide) {\n margin: 44px 0;\n }\n\n address {\n font-style: normal;\n }\n\n a {\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n }\n }\n\n &__some {\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-bottom: 0;\n z-index: 2;\n\n @include breakpoint($medium) {\n margin-bottom: 64px;\n }\n\n @include breakpoint($wide) {\n align-items: flex-start;\n flex-direction: column;\n margin-bottom: 0;\n }\n\n @include breakpoint($extrawide) {\n align-items: center;\n flex-direction: row;\n }\n\n &__label {\n @include font-size(16px, 24px);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.1px;\n margin-bottom: 8px;\n margin-right: 24px;\n\n @include breakpoint($wide) {\n margin-bottom: 8px;\n }\n }\n\n &__items {\n align-items: center;\n display: flex;\n flex-direction: row;\n }\n\n &__item {\n margin-right: 24px;\n\n :last-child() {\n margin-right: 0;\n }\n\n &:hover {\n color: var(--grayscale-medium) !important;\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n\n svg {\n fill: var(--grayscale-white);\n }\n }\n\n &__right {\n display: flex;\n flex-direction: column;\n grid-column: 2 / -1;\n justify-content: center;\n max-height: 100%;\n order: 1;\n width: 100%;\n\n hy-footer-link-item {\n float: none;\n width: 100%;\n }\n\n @include breakpoint($narrow) {\n margin-bottom: 32px;\n }\n\n @include breakpoint($medium) {\n display: block;\n justify-content: flex-start;\n\n hy-footer-link-item {\n clear: right;\n float: left;\n height: max-content;\n width: 50%;\n margin-bottom: 1.5rem;\n }\n }\n\n @include breakpoint($wide) {\n order: unset;\n }\n }\n\n &__bottom {\n border-top: 1px solid var(--grayscale-white);\n display: flex;\n flex-direction: column;\n grid-column: 1 / -1;\n justify-content: center;\n margin: 2.5rem 0 1rem;\n order: 3;\n padding-top: 2.5rem;\n width: 100%;\n\n @include breakpoint($medium) {\n flex-direction: row;\n justify-content: space-between;\n padding-top: 1rem;\n }\n\n &__links {\n align-items: flex-start;\n display: flex;\n flex-wrap: wrap;\n gap: 1.25rem;\n justify-content: center;\n padding: 0 1rem 1rem;\n\n @include breakpoint($medium) {\n padding: 0;\n gap: 2rem;\n }\n }\n\n &__link {\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-size: 14px;\n font-weight: 600;\n letter-spacing: -0.1;\n line-height: 19.07px;\n text-align: right;\n text-decoration: underline;\n text-decoration-thickness: auto;\n\n &:hover,\n &:focus-within {\n text-decoration-thickness: 2px;\n }\n }\n }\n\n &__copy {\n @include font-size(16px, 24px);\n\n align-self: center;\n color: var(--grayscale-white);\n display: block;\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.1px;\n text-align: center;\n\n @include breakpoint($medium) {\n align-self: flex-end;\n margin-left: 0.5rem;\n }\n }\n}\n","export interface FooterBaseLinks {\n label: string;\n url: string;\n isActive?: boolean;\n mainlink?: boolean;\n items: Array<FooterBaseLinks>;\n}\n\nexport interface FooterPostSectionLinks {\n label: string;\n url: string;\n external: boolean;\n}\n\nexport interface FooterBaseSome {\n label: string;\n url: string;\n type: string;\n}\n\nimport {Component, ComponentInterface, Host, Prop, h} from \"@stencil/core\";\nimport {FooterLinkItemColor, SiteLogoSize, ColorVariant, FooterVariant} from \"../../../utils/utils\";\nimport {jsonParserWorker} from \"../../../global/globalScript\";\n\n@Component({\n tag: \"hy-footer-base\",\n styleUrl: \"hy-footer-base.scss\",\n shadow: false,\n})\nexport class HyFooterBase implements ComponentInterface {\n /**\n * Link item color\n */\n @Prop() color: FooterLinkItemColor = FooterLinkItemColor.white;\n /**\n * Logo url\n */\n @Prop() logoUrl?: string;\n /**\n * Logo label\n */\n @Prop() logoLabel?: string;\n /**\n * Logo size\n */\n @Prop() size: SiteLogoSize = SiteLogoSize.big;\n /**\n * Label for some links\n */\n @Prop() someLabel?: string;\n /**\n * Copyright text\n */\n @Prop() copyrightText: string;\n\n private _dataFooterBaseLinks: FooterBaseLinks[];\n private _dataFooterBaseSome: FooterBaseSome[];\n private _dataFooterPostSectionLinks: FooterPostSectionLinks[];\n /**\n * Footer links to be displayed\n */\n @Prop() dataFooterBaseLinks: FooterBaseLinks[] | string;\n /**\n * Footer post section links\n */\n @Prop() dataFooterPostSectionLinks: FooterPostSectionLinks[] | string;\n /**\n * Footer some links\n */\n @Prop() dataFooterBaseSome: FooterBaseSome[] | string;\n\n async componentWillLoad() {\n this._dataFooterBaseLinks = await jsonParserWorker(this.dataFooterBaseLinks);\n this._dataFooterBaseSome = await jsonParserWorker(this.dataFooterBaseSome);\n this._dataFooterPostSectionLinks = await jsonParserWorker(this.dataFooterPostSectionLinks);\n }\n\n render() {\n const logoColor = ColorVariant.white;\n const classAttributes = [\"hy-footer-base--content-container\"].join(\" \");\n const links = this._dataFooterBaseLinks as Array<FooterBaseLinks>;\n const postSectionLinks = this._dataFooterPostSectionLinks as Array<FooterPostSectionLinks>;\n const some = this._dataFooterBaseSome as Array<FooterBaseSome>;\n\n return (\n <Host class={classAttributes}>\n <div class=\"hy-footer-base\">\n <div class=\"hy-footer-base__left\">\n <div class=\"hy-footer-base__logo\">\n <hy-site-logo type={FooterVariant.footer} color={logoColor} url={this.logoUrl} label={this.logoLabel} />\n </div>\n <div class=\"hy-footer-base__content\">\n <slot name=\"content\"></slot>\n </div>\n <div class=\"hy-footer-base__some\">\n <div class=\"hy-footer-base__some__items\">\n {some &&\n some.map((s) => {\n return (\n <a\n aria-label={s.label}\n href={s.url}\n class={`hy-footer-base__some__item`}\n title={s.label}\n target=\"_blank\"\n >\n <hy-icon icon={`hy-icon-some-${s.type}`} size={36} />\n </a>\n );\n })}\n </div>\n </div>\n </div>\n <div class=\"hy-footer-base__right\">\n {links &&\n links.map((link) => {\n return (\n <hy-footer-link-item\n label={link.label}\n url={link.url}\n color={FooterLinkItemColor.white}\n mainLink={link.mainlink}\n items={link.items ?? null}\n ></hy-footer-link-item>\n );\n })}\n </div>\n {postSectionLinks && (\n <div class=\"hy-footer-base__bottom\">\n <div class=\"hy-footer-base__bottom__links\">\n {postSectionLinks &&\n postSectionLinks.map((item) => (\n <a class=\"hy-footer-base__bottom__link\" href={item.url} target={item.external ? \"_blank\" : \"_self\"}>\n {item.label}\n </a>\n ))}\n </div>\n {this.copyrightText && <span class=\"hy-footer-base__copy\">{this.copyrightText}</span>}\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-footer-info {\n display: flex;\n flex-direction: column;\n max-height: auto;\n padding: 0 16px 40px 16px;\n place-content: center space-between;\n\n @include breakpoint($narrow) {\n flex-direction: column;\n margin: 0 auto;\n max-width: $fullhd;\n padding: 0 24px 32px 24px;\n }\n\n @include breakpoint($wide) {\n flex-direction: row;\n padding: 0 32px 36px 32px;\n }\n\n @include breakpoint($extrawide) {\n padding: 0 32px 40px 32px;\n }\n\n &__content {\n margin-bottom: 24px;\n width: 100%;\n\n @include breakpoint($narrow) {\n margin-bottom: 32px;\n width: 100%;\n }\n\n @include breakpoint($wide) {\n width: 31.11%;\n }\n\n .hy-heading {\n padding-top: 0 !important;\n }\n }\n\n &__ingress {\n @include font-size(15px, 20px);\n @include font-weight($regular);\n letter-spacing: -0.09px;\n\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n padding-bottom: 24px;\n\n @include breakpoint($wide) {\n @include font-size(16px, 22px);\n letter-spacing: -0.1px;\n padding-bottom: 16px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px); // Paragraph Large size\n }\n\n @include breakpoint($extrawide) {\n padding-bottom: 24px;\n }\n\n a {\n @include font-size(14px, 20px); // Paragraph Small size\n color: var(--link-blue);\n font-family: var(--main-font-family);\n font-weight: 600;\n display: inline-flex;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n letter-spacing: -0.1px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px); // Paragraph Large size\n }\n\n &:hover {\n color: var(--brand-main);\n }\n }\n\n a[target=\"_blank\"]:after {\n display: block;\n content: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='rgb(4,121,165)'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n margin-left: 3px;\n transform: rotate(315deg);\n\n &:hover {\n content: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='pink'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n }\n }\n\n a[target=\"_blank\"]:hover {\n &:after {\n content: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='rgb(14,104,139)'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n }\n }\n }\n\n &__links {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n max-height: auto;\n overflow: hidden;\n width: 100%;\n\n @include breakpoint($narrow) {\n align-content: space-between;\n max-height: 555px;\n width: 100%;\n }\n @include breakpoint($wide) {\n max-height: 530px;\n width: 65.56%;\n }\n @include breakpoint($overwide) {\n max-height: 460px;\n }\n\n &.is-group:not(.luomus) {\n @include breakpoint($narrow) {\n flex-direction: row;\n max-height: none;\n }\n }\n }\n\n .hy-accordion__content--inner-wrapper {\n width: 100%;\n }\n}\n\n.hy-footer-info.luomus {\n background-color: var(--grayscale-black);\n color: var(--grayscale-white);\n padding-top: 40px;\n\n .hy-footer-info__logo {\n @include font-size(18px, 16px);\n font-family: var(--main-font-family);\n font-weight: bold;\n letter-spacing: -0.9px;\n\n .hy-site-logo__label {\n max-width: 100%;\n }\n }\n\n .hy-footer-info__branding {\n padding: 22px 0 62px;\n a {\n img {\n height: 32px;\n width: 148px;\n }\n }\n }\n\n .luomus-footer-content {\n color: var(--grayscale-white);\n margin: 8px 0;\n\n &__link {\n @include font-size(18px, 24px);\n @include font-weight($bold);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-style: normal;\n letter-spacing: -0.36px;\n text-decoration: none;\n }\n\n &__description {\n @include font-size(16px, 22px);\n @include font-weight($regular);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-style: normal;\n letter-spacing: -0.1px;\n padding-bottom: 32px;\n }\n }\n}\n","export interface FooterInfoLinks {\n label: string;\n url: string;\n isExternal: string;\n isActive?: boolean;\n mainlink?: boolean;\n items: Array<FooterInfoLinks>;\n}\n\nexport interface LuomusFooterContent {\n heading: string;\n url: string;\n content?: string;\n}\n\nimport {Component, ComponentInterface, Element, h, Host, Prop, State} from \"@stencil/core\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport {\n ColorVariant,\n CtaLinkButtonVariants,\n FooterLinkItemColor,\n FooterLinkVariants,\n FooterVariant,\n HeadingSectionVariants,\n HeadingVarians,\n} from \"../../../utils/utils\";\nimport {jsonParserWorker} from \"../../../global/globalScript\";\n\n@Component({\n tag: \"hy-footer-info\",\n styleUrl: \"hy-footer-info.scss\",\n shadow: false,\n})\nexport class HyFooterInfo implements ComponentInterface {\n @Element() el: HTMLElement;\n /**\n * Content area title.\n */\n @Prop() textTitle: string;\n /**\n * Content area text.\n */\n @Prop() textDescription: string;\n /**\n * Content area link button text.\n */\n @Prop() linkText: string;\n /**\n * Content area link button url.\n */\n @Prop() linkUrl: string;\n @Prop() linkIsExternal: boolean = false;\n @Prop() linkScLabel?: string;\n\n /**\n * Logo url\n */\n @Prop() logoUrl?: string;\n /**\n * Logo label\n */\n @Prop() logoLabel?: string;\n\n /**\n * Luomus group Logo url for footer\n */\n @Prop() groupLogoUrl?: string;\n\n @Prop() isGroup: boolean;\n @Prop() isLuomusGroup: boolean = false;\n @State() isMobile: boolean;\n\n private ro: ResizeObserver;\n private _dataFooterInfoLinks: FooterInfoLinks[];\n private _dataLuomusFooterContent: LuomusFooterContent[];\n /**\n * Data for links to be displayed.\n */\n @Prop() dataFooterInfoLinks: FooterInfoLinks[] | string;\n\n @Prop() luomusFooterContent: LuomusFooterContent[] | string;\n\n async componentWillLoad() {\n this._dataFooterInfoLinks = await jsonParserWorker(this.dataFooterInfoLinks);\n this._dataLuomusFooterContent = await jsonParserWorker(this.luomusFooterContent);\n }\n\n componentDidLoad() {\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.checkForMobile(entry.contentRect.width);\n }\n });\n this.ro.observe(document.body);\n }\n\n disconnectedCallback() {\n this.ro.disconnect();\n }\n\n checkForMobile(size: number) {\n this.isMobile = size <= 479 ? true : false;\n }\n\n render() {\n const links = this._dataFooterInfoLinks as Array<FooterInfoLinks>;\n const luomusFooterContentItems = this._dataLuomusFooterContent as Array<LuomusFooterContent>;\n\n const variant = this.isGroup ? FooterLinkVariants.group : FooterLinkVariants.campus;\n const section = this.isGroup ? HeadingSectionVariants.groupFooterInfo : HeadingSectionVariants.defaultFooterInfo;\n\n const footerLinkItemClass = this.isGroup ? \"group\" : \"campus\";\n\n const scLabel = this.linkScLabel && this.linkScLabel.length > 0 ? this.linkScLabel : this.linkText;\n const logoColor = ColorVariant.white;\n const linksColor = this.isLuomusGroup ? FooterLinkItemColor.white : FooterLinkItemColor.black;\n\n return (\n <Host\n class={{\n \"hy-footer-info\": true,\n luomus: this.isLuomusGroup,\n }}\n >\n <div\n class={{\n \"hy-footer-info__content\": true,\n \"is-group\": this.isGroup,\n }}\n >\n {!this.isLuomusGroup && (\n <hy-heading heading={HeadingVarians.h2} section={section}>\n {this.textTitle}\n </hy-heading>\n )}\n {this.isLuomusGroup && (\n <div class=\"hy-footer-info__logo\">\n <hy-site-logo\n type={FooterVariant.footer}\n isGroup={this.isGroup}\n color={logoColor}\n url={this.logoUrl}\n label={this.logoLabel}\n />\n </div>\n )}\n {this.isLuomusGroup && (\n <div class={\"hy-footer-info__branding\"}>\n <a href={this.groupLogoUrl}>\n <img src={this.groupLogoUrl} alt={\"Luomus logo\"} />\n </a>\n </div>\n )}\n {!this.isLuomusGroup && (\n <div\n class={{\n \"hy-footer-info__ingress\": true,\n \"is-group\": this.isGroup,\n }}\n innerHTML={this.textDescription}\n ></div>\n )}\n {!this.isLuomusGroup && this.linkUrl && (\n <hy-cta-button\n link-content={this.linkText}\n sc-label={scLabel}\n is-external={this.linkIsExternal}\n url={this.linkUrl}\n variant={CtaLinkButtonVariants.onWhiteBkgd}\n />\n )}\n {this.isLuomusGroup &&\n luomusFooterContentItems &&\n luomusFooterContentItems.map((item) => {\n return (\n <div class=\"luomus-footer-content\">\n <a href={item.url} class=\"luomus-footer-content__link\">\n {item.heading}\n </a>\n {item.content && <div class=\"luomus-footer-content__description\" innerHTML={item.content}></div>}\n </div>\n );\n })}\n </div>\n {this.isMobile && this.isGroup === false ? (\n <div\n class={{\n \"hy-footer-info__links\": true,\n \"is-group\": this.isGroup,\n luomus: this.isLuomusGroup,\n }}\n >\n <hy-accordion-container accordionid={\"test\"}>\n {links &&\n links.map((link) => {\n return (\n <hy-accordion-item accordiontitle={link.label}>\n <hy-footer-link-item\n class={footerLinkItemClass}\n variant={variant}\n color={linksColor}\n label={link.label}\n url={link.url}\n main-link={link.mainlink}\n items={link.items}\n isMobile={this.isMobile}\n ></hy-footer-link-item>\n </hy-accordion-item>\n );\n })}\n </hy-accordion-container>\n </div>\n ) : (\n <div\n class={{\n \"hy-footer-info__links\": true,\n \"is-group\": this.isGroup,\n luomus: this.isLuomusGroup,\n }}\n >\n {links &&\n links.map((link) => {\n const external_link = link.isExternal === \"external\";\n return (\n <hy-footer-link-item\n is-luomus-group={this.isLuomusGroup}\n class={footerLinkItemClass}\n variant={variant}\n color={linksColor}\n label={link.label}\n url={link.url}\n is-external={external_link}\n main-link={link.mainlink}\n items={link.items}\n isMobile={this.isMobile}\n ></hy-footer-link-item>\n );\n })}\n </div>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\nhy-footer-link-item:not([main-link]) {\n width: 100%;\n\n @include breakpoint($medium) {\n width: 50%;\n }\n}\n\nhy-footer-link-item[main-link] {\n hyphens: auto;\n min-width: 200px;\n width: 100%;\n\n @include breakpoint($narrow) {\n width: 50%;\n }\n}\n\nhy-footer-link-item.group[main-link]:not([is-luomus-group]) {\n flex-basis: 100%;\n margin-top: 1rem;\n\n @include breakpoint($narrow) {\n flex-basis: 50%;\n margin: 0;\n }\n}\n\n.hy-footer-link-item--container {\n display: flex;\n flex-direction: column;\n\n @include breakpoint($medium) {\n margin-bottom: 1rem;\n }\n\n .hy-footer-link-item:last-child {\n margin-bottom: 16px;\n }\n}\n\n//.hy-footer-link-item__main .hy-heading__container>h3.hy-heading .hy-footer-link-item__link {\n.hy-footer-link-item {\n display: flex;\n font-family: var(--main-font-family);\n margin-left: 0;\n margin-right: 0;\n position: relative;\n text-decoration: none;\n\n @include breakpoint($narrow) {\n margin-left: 0;\n margin-right: 24px;\n //padding: 15px 20px 15px 0;\n }\n\n @include breakpoint($wide) {\n margin-left: 32px;\n margin-right: 0;\n //padding: 15px 20px 15px 0;\n }\n\n @include breakpoint($xlarge) {\n margin-left: 48px;\n }\n\n &__main {\n border: 0;\n padding: 0;\n margin-right: -32px;\n width: fit-content;\n\n .hy-heading__container > h3.hy-heading {\n @include font-size(16px, 16px);\n letter-spacing: -0.45px;\n padding: 1.5rem 0 1px 0 !important;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n letter-spacing: -0.44px;\n }\n\n .hy-footer-link-item__link {\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n text-decoration: none;\n margin-bottom: 8px;\n\n @include breakpoint($medium) {\n margin-bottom: 12px;\n }\n }\n }\n }\n\n &__color-black {\n @include font-size(14px, 18px);\n @include font-weight($regular);\n border-bottom: 1px solid var(--grayscale-black);\n color: var(--grayscale-black);\n letter-spacing: -0.5px;\n padding: 16px 20px 14px 0;\n\n .hy-footer-link-item__icon svg {\n fill: var(--brand-main-nearly-black);\n height: 12px;\n margin-right: 2px;\n width: 12px;\n }\n\n .hy-heading__container > h3.hy-heading {\n &a.hy-footer-link-item__link:hover {\n color: var(--brand-main) !important;\n text-decoration: underline;\n\n svg {\n fill: var(--brand-main);\n }\n }\n }\n }\n\n &__color-white {\n @include font-size(15px, 18px);\n @include font-weight($semibold);\n border-bottom: 1px solid var(--grayscale-white);\n color: var(--grayscale-white);\n letter-spacing: -0.5px;\n padding: 15px 20px 15px 0;\n\n &:hover,\n &:focus-within {\n text-decoration: underline;\n }\n\n .hy-footer-link-item__icon svg {\n fill: var(--grayscale-white);\n }\n\n .hy-heading__container > h3.hy-heading {\n .hy-footer-link-item__link:hover {\n color: var(--grayscale-medium) !important;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n }\n\n &__icon {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n }\n}\n","import {Component, h, Prop} from \"@stencil/core\";\nimport {FooterLinkItemColor, FooterLinkVariants, HeadingVarians} from \"../../../utils/utils\";\n\n@Component({\n tag: \"hy-footer-link-item\",\n styleUrl: \"hy-footer-link-item.scss\",\n shadow: false,\n})\nexport class HyFooterLinkItem {\n @Prop() label: string;\n @Prop() url: string;\n @Prop() isExternal: boolean = false;\n @Prop() mainLink: boolean = false;\n @Prop() items: Array<any>;\n @Prop() color: FooterLinkItemColor = FooterLinkItemColor.black;\n @Prop() isMobile: boolean;\n @Prop() variant: FooterLinkVariants = FooterLinkVariants.base;\n @Prop() isLuomusGroup: boolean = false;\n\n render() {\n const containerClassAttributes = [\n \"hy-footer-link-item--container\",\n `hy-footer-link-item__${this.variant}`,\n this.items && \"hy-footer-link-item__has-children\",\n ].join(\" \");\n const classAttributes = [\n \"hy-footer-link-item\",\n this.mainLink && \"hy-footer-link-item__main\",\n `hy-footer-link-item__color-${this.color}`,\n ].join(\" \");\n const headingClassAttributes = [\n \"hy-footer-link-item\",\n \"hy-footer-link-item__heading\",\n this.mainLink && \"hy-footer-link-item__main\",\n `hy-footer-link-item__heading__color-${this.color}`,\n ].join(\" \");\n const linkClassAttributes = [\n \"hy-footer-link-item\",\n `hy-footer-link-item__color-${this.color}`,\n this.isLuomusGroup ? `luomus` : \"\",\n ].join(\" \");\n\n if (this.items) {\n if (this.isMobile && this.variant !== FooterLinkVariants.group) {\n return (\n <div class={containerClassAttributes}>\n {this.items.map((item) => {\n const target = item.isExternal === \"external\" ? \"_blank\" : \"_self\";\n return (\n <a class={linkClassAttributes} href={item.url} target={target} style={{color: this.color}}>\n {item.label}\n <hy-icon class={\"hy-footer-link-item__icon\"} icon={\"hy-icon-arrow-right\"} size={16} />\n </a>\n );\n })}\n </div>\n );\n } else {\n return (\n <div class={containerClassAttributes}>\n <hy-heading class={headingClassAttributes} heading={HeadingVarians.h3}>\n {this.url.length > 0 && (\n <a class={\"hy-footer-link-item__link\"} href={this.url} style={{color: this.color}}>\n {this.label}\n </a>\n )}\n {this.url.length == 0 && <div class={\"hy-footer-link-item__link\"}>{this.label}</div>}\n </hy-heading>\n {this.items.map((item) => {\n const target = item.isExternal === \"external\" ? \"_blank\" : \"_self\";\n return (\n <a class={linkClassAttributes} href={item.url} target={target} style={{color: this.color}}>\n {item.label}\n <hy-icon class={\"hy-footer-link-item__icon\"} icon={\"hy-icon-arrow-right\"} size={16} />\n </a>\n );\n })}\n </div>\n );\n }\n } else {\n const target = this.isExternal ? \"_blank\" : \"_self\";\n return (\n <a class={classAttributes} href={this.url} style={{color: this.color}} target={target}>\n {this.label}\n <hy-icon class={\"hy-footer-link-item__icon\"} icon={\"hy-icon-arrow-right\"} size={16} />\n </a>\n );\n }\n }\n}\n",":host {\n display: block;\n}\n\n.hy-heading__container {\n display: flex;\n flex-direction: column-reverse;\n width: 100%;\n\n @include breakpoint($narrow) {\n flex-direction: row;\n }\n\n &__subsection {\n padding: 2.5rem 0 1.375rem;\n\n @include breakpoint($narrow) {\n padding: 4rem 0 2.375rem;\n }\n }\n\n // H1 content page title\n h1.hy-heading__default {\n margin-bottom: 12px;\n\n @include breakpoint($xlarge) {\n margin-bottom: 16px;\n }\n\n // No sidebar, large desktops\n &__large {\n @include breakpoint($extrawide) {\n margin-bottom: 16px;\n }\n }\n }\n\n h1.hy-heading__search {\n margin-bottom: 0;\n padding: 16px 0 0;\n\n @include breakpoint($narrow) {\n padding: 28px 0 0;\n }\n @include breakpoint($wide) {\n padding: 32px 0 0;\n }\n\n &__large {\n @include breakpoint($extrawide) {\n padding: 40px 0 0;\n }\n }\n }\n\n h2,\n h3,\n h4,\n h5,\n h6 {\n padding: 1.5rem 0 1rem;\n\n @include breakpoint($narrow) {\n padding: 2rem 0 1rem;\n }\n }\n\n &.hy-heading__introduction {\n padding-top: 0;\n }\n\n .hy-heading__courses {\n padding-top: 0;\n }\n}\n\n.hy-heading {\n display: flex;\n flex-grow: 1;\n flex-shrink: 0;\n max-width: 100%;\n width: auto;\n}\n\n/*\n Headers (ex. h2, h3) used in Content pages (no caps and line).\n*/\n.hy-heading__subsection--divider,\n.hy-heading__contentsection--divider {\n flex-shrink: 2;\n overflow: hidden;\n width: 100%;\n\n &:after {\n background-color: transparent;\n border-bottom: 6px solid var(--grayscale-dark);\n content: \" \";\n display: flex;\n height: 2px;\n width: 100%;\n margin-left: 0;\n margin-bottom: 0.5rem;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n\n @include breakpoint($narrow) {\n margin-left: 2rem;\n border-bottom: 1px solid var(--grayscale-dark);\n margin-bottom: 1rem;\n }\n }\n}\n\n// H2 used in landing pages and in Introduction paragraph: caps, bigger font.\n// These styles are applied if there is a Sidebar on the page in Desktop sizes\nh2.hy-heading__introduction,\nh2.hy-heading__landingsection {\n @include font-size(28px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n}\n\nh1.hy-heading__hero {\n @include font-size(32px, 38px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.8px;\n margin-bottom: 0;\n\n @include breakpoint(1024px) {\n @include font-size(46px, 54px);\n letter-spacing: -1.15px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n}\n\n// Applied when there is a sidebar\n.hy-heading__container__common {\n h2.hy-heading__introduction,\n h2.hy-heading__landingsection {\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n\n h2.hy-heading__introduction {\n padding: 0 0 12px;\n @include breakpoint($narrow) {\n padding: 0 0 1rem;\n }\n }\n\n h2.hy-heading__landingsection,\n h2.hy-heading__contentsection {\n padding-bottom: 24px;\n\n @include breakpoint($narrow) {\n padding-bottom: 28px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 32px;\n }\n\n @include breakpoint($extrawide) {\n padding-bottom: 32px;\n }\n\n @include breakpoint($xlarge) {\n padding-bottom: 40px;\n }\n }\n\n // Footer info box header style for group pages.\n h2.hy-heading__group_footer_info {\n @include font-size(24px, 28px);\n @include font-weight($bold);\n letter-spacing: -0.6px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n letter-spacing: -0.8px;\n }\n @include breakpoint($xlarge) {\n @include font-size(26px, 30px);\n }\n }\n\n // Footer info box header style for main site pages.\n h2.hy-heading__footer_info {\n @include font-size(28px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n @include breakpoint($xlarge) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n}\n\n// Applied when there is NO sidebar\n.hy-heading__container__large {\n h2.hy-heading__introduction,\n h2.hy-heading__landingsection {\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n\n h2.hy-heading__introduction {\n //@todo check here\n @include breakpoint($extrawide) {\n // h2 font large\n padding: 0 0 1rem;\n }\n @include breakpoint($xlarge) {\n // h2 font x-large\n padding: 0 0 20px;\n }\n }\n\n h2.hy-heading__landingsection,\n h2.hy-heading__contentsection {\n padding-bottom: 24px;\n\n @include breakpoint($narrow) {\n padding-bottom: 28px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 32px;\n }\n\n @include breakpoint($extrawide) {\n padding-bottom: 40px;\n }\n }\n\n // Hero h1 landing minor. no sidebar\n h1.hy-heading__landing_minor {\n @include breakpoint($extrawide) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n }\n\n // Hero h1 heading frontpage. no sidebar\n h1.hy-heading__frontpage,\n h1.hy-heading__landing_major {\n @include breakpoint($extrawide) {\n @include font-size(56px, 64px);\n letter-spacing: -1.4px;\n }\n }\n\n // Footer info box header style for group pages.\n h2.hy-heading__group_footer_info {\n @include font-size(24px, 28px);\n @include font-weight($bold);\n letter-spacing: -0.6px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n letter-spacing: -0.8px;\n }\n @include breakpoint($extrawide) {\n @include font-size(26px, 30px);\n }\n }\n\n // Footer info box header style for main site pages.\n h2.hy-heading__footer_info {\n @include font-size(28px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n @include breakpoint($extrawide) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n}\n\n// h3 on landing pages use the same fonts as h2 on content pages; no line; no caps\nh3.hy-heading__landingsection {\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(32px, 32px);\n letter-spacing: -1px;\n }\n\n @include breakpoint($extrawide) {\n // > 1200px\n @include font-size(40px, 48px);\n letter-spacing: -1.2px;\n }\n\n @include breakpoint($xlarge) {\n // > 1400px\n @include font-size(40px, 48px);\n letter-spacing: -1.2px;\n }\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n color: var(--brand-main-nearly-black);\n font-family: var(--main-font-family);\n font-weight: 700;\n padding: 0;\n margin: 0;\n width: 100%;\n\n &.negative {\n color: var(--grayscale-white);\n }\n}\n\nh1 {\n @include font-size(32px, 38px);\n letter-spacing: -0.8px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(46px, 54px);\n letter-spacing: -1.15px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n\n // without Sidebar\n .hy-heading__container__large & {\n @include breakpoint($extrawide) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n }\n}\n\n// default h2 used in content pages\nh2 {\n @include font-size(26px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.52px;\n\n @include breakpoint($narrow) {\n @include font-size(30px, 36px);\n letter-spacing: -0.6px;\n }\n\n // with Sidebar\n .hy-heading__container__common & {\n @include breakpoint($xlarge) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n\n // without Sidebar\n .hy-heading__container__large & {\n @include breakpoint($extrawide) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n}\n\n// default h3 used in content pages\nh3 {\n @include font-size(22px, 28px);\n letter-spacing: -0.7px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n }\n}\n\nh4 {\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(22px, 28px);\n letter-spacing: -0.69px;\n }\n}\n\nh5 {\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n }\n}\n\nh6 {\n @include font-size(14px, 16px);\n letter-spacing: -0.44px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n }\n}\n","@import \"./heading.scss\";\n//overrides for full width views\n// JUST A DEMO, FIX AND EXPAND!\nh1 {\n font-size: $font-size-xxxx-large;\n font-weight: bold;\n text-transform: uppercase;\n line-height: 1.2;\n}\n","import {Component, Element, h, Host, Prop, State} from \"@stencil/core\";\nimport {HeadingSectionVariants, HeadingVarians} from \"../../utils/utils\";\n\n@Component({\n tag: \"hy-heading\",\n styleUrls: {default: \"heading.scss\", wide: \"heading-fw.scss\"},\n scoped: false,\n shadow: false,\n})\nexport class Heading {\n /**\n * @type {*}\n */\n @Prop() heading: HeadingVarians = HeadingVarians.default as any;\n @Prop() isSearch: boolean = false;\n /**\n * @type {*}\n */\n @Prop() section: HeadingSectionVariants = HeadingSectionVariants.default as any;\n @Prop() negative: boolean = false;\n @Prop() headerstyle: string = \"common\";\n @Prop({reflect: true}) hyphenatedText?: string;\n @Element() el: HTMLElement;\n @State() hasChildren: boolean = true;\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest(\".hy-main\");\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains(\"with-sidebar\")) {\n this.headerstyle = \"large\";\n }\n }\n if (this.el.parentElement.classList.contains(\"hy-hero__title-container\")) {\n this.hasChildren = false;\n }\n }\n\n render() {\n const headingInVariants = this.heading in HeadingVarians;\n const classAttributes = [\n \"hy-heading\",\n this.negative ? \"negative\" : \"\",\n this.isSearch ? \"hy-heading__search\" : \"\",\n this.isSearch ? `hy-heading__search__${this.headerstyle}` : \"\",\n `hy-heading__${this.section}`,\n `hy-heading__${this.headerstyle}`,\n `hy-heading__${this.section}__${this.headerstyle}`,\n ];\n\n const sectionClassAttributes = [`hy-heading__${this.section}--divider`].join(\" \");\n\n const containerSectionClass = [\n \"hy-heading__container\",\n `hy-heading__container__${this.section}`,\n `hy-heading__container__${this.headerstyle}`,\n ].join(\" \");\n\n return (\n <Host>\n {headingInVariants ? (\n [\n <div class={containerSectionClass}>\n {this.hyphenatedText && !this.hasChildren ? (\n <this.heading class={classAttributes.join(\" \")} innerHTML={this.hyphenatedText}></this.heading>\n ) : (\n <this.heading class={classAttributes.join(\" \")}>\n <slot />\n </this.heading>\n )}\n\n <span class={sectionClassAttributes}></span>\n </div>,\n ]\n ) : (\n <div class={containerSectionClass}>\n {this.hyphenatedText && !this.hasChildren ? (\n <HeadingVarians.default class={classAttributes.join(\" \")}>\n <span innerHTML={this.hyphenatedText}></span>\n </HeadingVarians.default>\n ) : (\n <HeadingVarians.default class={classAttributes.join(\" \")}>\n <span>\n <slot />\n </span>\n </HeadingVarians.default>\n )}\n\n <span class={sectionClassAttributes}></span>\n </div>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\np.hy-ingress {\n @include font-size(16px, 24px);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n margin: 0 0 2rem;\n\n @include breakpoint($narrow) {\n @include font-size(18px, 28px);\n }\n\n @include breakpoint($wide) {\n margin: 0 0 2.25rem;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(18px, 32px);\n margin: 0 0 3rem;\n }\n\n // No sidebar, large desktop styles\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(18px, 32px);\n margin: 0 0 3rem;\n }\n }\n}\n","import {Component, Element, h, Host, Prop} from \"@stencil/core\";\n\n@Component({\n tag: \"hy-ingress\",\n styleUrl: \"ingress.scss\",\n shadow: false,\n})\nexport class Ingress {\n @Element() el: HTMLElement;\n @Prop() headerstyle: string = \"common\";\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest(\".hy-main\");\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains(\"with-sidebar\")) {\n this.headerstyle = \"large\";\n }\n }\n }\n\n render() {\n const classAttributes = [\"hy-ingress\", `hy-ingress__${this.headerstyle}`].join(\" \");\n return (\n <Host>\n <p class={classAttributes}>\n <slot></slot>\n </p>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.with-sidebar {\n .hy-main-content-wrapper {\n // Layout Mobile 320-479px\n margin: 0 auto;\n max-width: 100%;\n padding: 0 1rem;\n position: relative;\n\n // Layout Tablet 480-959px\n // Side navigation disappears to hamburger when width < 1200.\n @include breakpoint($narrow) {\n // the rule is applied to screens >=480px: width 100% - side margins (32px)\n padding: 0 2rem;\n }\n\n // Large desktop Layout >1600px\n @include breakpoint($xlarge) {\n max-width: 1216px;\n padding: 0;\n }\n }\n}\n\n.without-sidebar {\n .hy-main-content-wrapper {\n // Layout Mobile 320-479px\n margin: 0 auto;\n max-width: 100%;\n padding: 0 1rem;\n position: relative;\n\n // Layout Tablet 480-959px\n @include breakpoint($narrow) {\n padding: 0 2rem;\n }\n\n // Large desktop Layout >1200px\n @include breakpoint($extrawide) {\n max-width: 1216px;\n padding: 0;\n }\n }\n}\n","import {Component, h, Host} from \"@stencil/core\";\n\n@Component({\n tag: \"hy-main-content-wrapper\",\n styleUrl: \"hy-main-content-wrapper.scss\",\n shadow: false,\n})\nexport class HyMainContentWrapper {\n render() {\n const classAttributes = [\"hy-main-content-wrapper\"].join(\" \");\n\n return (\n <Host>\n <div class={classAttributes}>\n <slot />\n </div>\n </Host>\n );\n }\n}\n",".menu-language {\n position: relative;\n align-items: center;\n display: flex;\n height: 100%;\n}\n\n.menu-language__toggle {\n @include font-size(16px, 16px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n align-items: center;\n background-color: transparent;\n border: 0;\n display: inline-grid;\n font-family: var(--main-font-family);\n gap: 4px;\n grid-template-columns: repeat(2, auto);\n letter-spacing: -0.7px;\n margin: 0;\n padding: 14px 10px;\n text-transform: uppercase;\n height: 100%;\n\n @include breakpoint($extrawide) {\n @include font-size(12px, 24px);\n @include font-weight($regular);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.5px;\n grid-template-columns: repeat(3, auto);\n padding: 0;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 24px);\n }\n\n &:hover {\n color: var(--brand-main);\n cursor: pointer;\n\n svg {\n fill: var(--brand-main);\n }\n }\n\n &:focus {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n\n hy-icon {\n &:first-of-type {\n display: none !important;\n\n @include breakpoint($extrawide) {\n display: inline-flex !important;\n }\n }\n }\n\n &[aria-expanded=\"true\"] {\n position: relative;\n\n &:after {\n content: \"\";\n position: absolute;\n height: 4px;\n right: 0;\n bottom: -1px;\n left: 0;\n background-color: var(--grayscale-black);\n }\n\n span + hy-icon {\n transform: rotate(180deg);\n }\n }\n\n .is-group & {\n color: var(--grayscale-white);\n\n &:hover {\n color: var(--grayscale-medium);\n cursor: pointer;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n}\n\n.menu-language__dropdown {\n background-color: var(--grayscale-white);\n border-radius: 0 0 5px 5px;\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2);\n display: flex;\n flex-flow: column;\n justify-items: center;\n right: -15px;\n margin: 0;\n padding: 8px;\n position: absolute;\n text-transform: uppercase;\n visibility: visible;\n width: max-content;\n z-index: 100;\n min-width: 160px;\n\n &[aria-hidden=\"true\"] {\n display: none;\n }\n\n @include breakpoint($extrawide) {\n left: -15px;\n right: 0;\n }\n}\n\n.menu-language__links {\n margin: 0;\n padding: 0;\n list-style: none;\n display: grid;\n gap: 4px;\n}\n","import {ComponentLabels} from \"../../hy-site-header/site-header\";\n\nexport interface MenuLanguage {\n langCode: string;\n url: string;\n abbr: string;\n label: string;\n isActive?: boolean;\n isDisabled?: boolean;\n}\n\nimport {Component, h, Prop, Element, Listen, State, Event, EventEmitter} from \"@stencil/core\";\nimport {jsonParserWorker} from \"../../../global/globalScript\";\n\n@Component({\n tag: \"hy-menu-language\",\n styleUrl: \"menu-language.scss\",\n shadow: true,\n})\nexport class MenuLanguage {\n @Element() el: HTMLElement;\n @Prop() dataMenuLanguage: MenuLanguage[] | string;\n @Prop() isGroup: boolean = false;\n @Prop() labels?: ComponentLabels[] | string;\n @State() isMenuOpen: boolean = false;\n\n @Event() menuLanguageToggled: EventEmitter;\n\n private _dataMenuLanguage: MenuLanguage[];\n private _labels: ComponentLabels[];\n\n // Close the language menu if user clicks anywhere outside the Menu language component.\n @Listen(\"click\", {target: \"window\"})\n handleOutsideMenuClick(event) {\n this.isMenuOpen = false;\n event.stopPropagation();\n }\n\n // CLose the language menu if user opens the desktop menu panel.\n @Listen(\"menuDesktopToggled\", {target: \"document\"})\n desktopMenuToggled() {\n this.isMenuOpen = false;\n }\n\n // CLose the language menu if user opens the search panel\n @Listen(\"searchPanelToggled\", {target: \"document\"})\n searchPanelToggled() {\n this.isMenuOpen = false;\n }\n\n // Close the language menu if user opens University main menu\n @Listen(\"universityMainMenuToggled\", {target: \"document\"})\n universityMainMenuPanelToggled() {\n this.isMenuOpen = false;\n }\n\n @Listen(\"focus\")\n handleComponentFocus(event) {\n // Close desktop menu panel if it's open.\n this.menuLanguageToggled.emit();\n\n event.stopPropagation();\n }\n\n @Listen(\"click\")\n handleComponentClick(event) {\n this.isMenuOpen = !this.isMenuOpen;\n\n if (this.isMenuOpen) {\n // Close desktop menu panel if it's open.\n this.menuLanguageToggled.emit();\n\n const languageMenuSelector = event.target as HTMLElement;\n this.adjustPosition(languageMenuSelector, this.el);\n }\n\n event.stopPropagation();\n }\n\n adjustPosition(languageMenuSelector, target) {\n const languagePanel = languageMenuSelector.shadowRoot.querySelectorAll(\n `.menu-language__dropdown`\n )[0] as HTMLElement;\n let headerHeight = \"0\";\n let hyHeader = this.isGroup\n ? (target.closest(\".hy-site-header__content-top\") as HTMLElement)\n : (target.closest(\".hy-site-header\") as HTMLElement);\n\n if (hyHeader) {\n let rectHeader = hyHeader.getBoundingClientRect();\n let rectLangMenu = languageMenuSelector.getBoundingClientRect();\n\n headerHeight = `${languageMenuSelector.offsetHeight + rectHeader.bottom + 8 - rectLangMenu.bottom}px`;\n }\n\n languagePanel.style.top = headerHeight;\n }\n\n async componentWillLoad() {\n this._dataMenuLanguage = await jsonParserWorker(this.dataMenuLanguage);\n this._labels = await jsonParserWorker(this.labels);\n }\n\n render() {\n const black = \"var(--brand-main-nearly-black)\";\n const white = \"var(--grayscale-white)\";\n const svgColor = this.isGroup ? white : black;\n const globeIconSize = this.isGroup ? 16 : 14;\n\n return (\n <div\n class={{\n \"menu-language\": true,\n \"is-open\": this.isMenuOpen,\n \"is-group\": this.isGroup,\n }}\n >\n <button\n class={{\n \"menu-language__toggle\": true,\n }}\n aria-label={this.isMenuOpen ? this._labels[\"close\"] : this._labels[\"open\"]}\n >\n <hy-icon icon={\"hy-icon-globe\"} size={globeIconSize} fill={svgColor} />\n <span>\n {this._dataMenuLanguage.map(({isActive, langCode}) => {\n if (isActive) {\n return langCode;\n }\n })}\n </span>\n <hy-icon icon={\"hy-icon-caret-down\"} size={8} fill={svgColor} />\n </button>\n <div\n class={{\n \"menu-language__dropdown\": true,\n }}\n aria-hidden={`${!this.isMenuOpen}`}\n >\n {this.isMenuOpen &&\n <ul class=\"menu-language__links\">\n {this._dataMenuLanguage.map((item) => {\n return (\n <hy-menu-language-item\n lang-code={item.langCode}\n url={item.url}\n label={item.label}\n abbr={item.abbr}\n is-active={item.isActive}\n is-disabled={item.isDisabled}\n />\n );\n })}\n </ul>\n }\n </div>\n </div>\n );\n }\n}\n",".menu-language__link {\n @include font-size(16px, 24px);\n @include font-weight($semibold);\n color: var(--brand-main-light);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n overflow: hidden;\n text-decoration: none;\n padding: 12px 12px;\n display: block;\n\n &:hover {\n background-color: var(--grayscale-background-box);\n color: var(--brand-main);\n }\n\n &.is-active {\n color: var(--grayscale-black);\n border: 2px solid var(--grayscale-black);\n }\n\n &.is-disabled {\n color: var(--link-disabled);\n\n &:hover {\n background-color: transparent;\n color: var(--link-disabled);\n }\n }\n}\n","import {Component, h, Prop} from \"@stencil/core\";\n\n@Component({\n tag: \"hy-menu-language-item\",\n styleUrl: \"menu-language-item.scss\",\n shadow: true,\n})\nexport class SiteLanguage {\n @Prop() abbr: string;\n @Prop() isActive: boolean = false;\n @Prop() isDisabled: boolean = false;\n @Prop() label: string;\n @Prop() langCode: string;\n @Prop() url: string;\n\n render() {\n return (\n <li class={`menu-language__links-item`}>\n <a\n href={this.url}\n lang={this.langCode}\n class={{\n \"is-active\": this.isActive,\n \"is-disabled\": this.isDisabled,\n \"menu-language__link\": true,\n }}\n >\n {this.label}\n </a>\n </li>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.search-field {\n display: inline-block;\n width: 100%;\n\n @include breakpoint($narrow) {\n min-width: 48.3%;\n }\n\n @include breakpoint($extrawide) {\n min-width: 23.03%;\n }\n}\n\n.search-field__label {\n @include font-size(14px, 20px);\n display: block;\n font-family: var(--main-font-family);\n letter-spacing: -0.44px;\n margin-bottom: 8px;\n position: relative;\n text-decoration: none;\n width: 100%;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n }\n\n &.label-large {\n @include font-size(22px, 28px);\n letter-spacing: -0.7px;\n margin-bottom: 0.75rem;\n\n @include breakpoint($narrow) {\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n margin-bottom: 1.25rem;\n }\n }\n\n &.bold {\n @include font-weight($bold);\n }\n}\n\n.search-field__actions {\n align-items: stretch;\n display: flex;\n}\n\n.search-field__wrapper {\n flex-grow: 1;\n position: relative;\n}\n\n.search-field__input {\n @include font-size(16px, 24px);\n border-radius: 0;\n border: 1px solid var(--grayscale-medium-dark);\n caret-color: var(--brand-main-light);\n font-weight: bold;\n height: 40px;\n letter-spacing: normal;\n padding: 8px 12px;\n width: 100%;\n zoom: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n height: 44px;\n }\n\n @include breakpoint($extrawide) {\n height: 48px;\n }\n\n &::placeholder {\n @include font-size(16px, 24px);\n color: var(--grayscale-dark);\n font-weight: normal;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n }\n\n &:hover {\n border-color: var(--brand-main-light);\n }\n\n &:focus {\n border-color: var(--brand-main-light);\n border-style: solid inset solid solid;\n border-width: 2px;\n outline: 0;\n }\n}\n\n.search-field__reset {\n align-items: center;\n background-color: transparent;\n border: 0;\n display: inline-flex;\n height: 40px;\n justify-content: center;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 40px;\n\n @include breakpoint($narrow) {\n height: 44px;\n width: 44px;\n }\n\n @include breakpoint($extrawide) {\n height: 48px;\n width: 48px;\n }\n\n svg {\n fill: var(--grayscale-dark);\n\n @include breakpoint($extrawide) {\n height: 16px;\n width: 16px;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus {\n outline-color: var(--brand-main-light);\n }\n}\n\n.search-field__submit {\n align-items: center;\n background-color: var(--brand-main-light);\n border: 0;\n display: inline-flex;\n flex-shrink: 0;\n height: 40px;\n justify-content: center;\n width: 40px;\n\n @include breakpoint($narrow) {\n height: 44px;\n width: 44px;\n }\n\n @include breakpoint($extrawide) {\n height: 48px;\n width: 48px;\n }\n\n svg {\n @include breakpoint($narrow) {\n height: 20px;\n width: 20px;\n }\n\n @include breakpoint($extrawide) {\n height: 22px;\n width: 22px;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n s &:focus {\n outline-color: var(--brand-main-light);\n }\n}\n","import {Component, Prop, h, State, Element, Host} from \"@stencil/core\";\nimport {ColorVariant} from \"../../utils/utils\";\n\n@Component({\n tag: \"hy-search-field\",\n styleUrl: \"hy-search-field.scss\",\n shadow: false,\n})\nexport class HySearchField {\n @Element() el: HTMLElement;\n @Prop() label: string;\n @Prop() ariaLabel: string = \"Search\";\n @Prop() resetLabel: string = \"Reset\";\n @Prop() isLabelBold: boolean = false;\n @Prop() labelLarge: boolean = false;\n @Prop() isLuomusSearch: boolean = false;\n @Prop() placeholder: string = \"Type here...\";\n @Prop() isLabelHidden?: boolean = false;\n @Prop() inputId: string;\n @Prop() prefillParameter: string = \"\";\n @State() isInputValueEmpty: boolean = true;\n\n componentDidLoad() {\n const searchInput = this.el.querySelector(\".search-field__input\");\n\n searchInput.addEventListener(\"keyup\", (event) => {\n const {value} = event.target as HTMLInputElement;\n\n this.isInputValueEmpty = value.length > 0 ? false : true;\n });\n\n if (this.prefillParameter.length > 0) {\n if (window.location === undefined) return;\n\n const urlParams = new URLSearchParams(window.location.search);\n const searchValue = urlParams.get(`${this.prefillParameter}`);\n const searchInput = this.el.querySelector(\".search-field__input\") as HTMLInputElement;\n searchInput.value = searchValue && searchValue.length > 0 ? searchValue : \"\";\n this.isInputValueEmpty = false;\n }\n }\n\n handleInputReset() {\n this.isInputValueEmpty = true;\n const searchInput = this.el.querySelector(\".search-field__input\") as HTMLInputElement;\n searchInput.value = \"\";\n searchInput.focus();\n }\n\n render() {\n return (\n <Host class=\"search-field\">\n {!this.isLuomusSearch && (\n <label\n htmlFor={this.inputId}\n class={`search-field__label \n ${this.isLabelHidden ? \"visually-hidden\" : \"\"} \n ${this.labelLarge ? \"label-large\" : \"\"} \n ${this.isLabelBold ? \"bold\" : \"\"}`}\n >\n {this.label}\n </label>\n )}\n <div class=\"search-field__actions\">\n <div class=\"search-field__wrapper\">\n {this.isLuomusSearch && (\n <input\n id={this.inputId}\n name=\"search\"\n data-drupal-selector=\"edit-search\"\n value=\"\"\n type=\"text\"\n placeholder={this.placeholder}\n class=\"search-field__input\"\n />\n )}\n {!this.isLuomusSearch && (\n <input id={this.inputId} type=\"text\" placeholder={this.placeholder} class=\"search-field__input\" />\n )}\n {!this.isInputValueEmpty && (\n <button\n type=\"button\"\n class=\"search-field__reset\"\n aria-label={this.resetLabel}\n onClick={() => this.handleInputReset()}\n >\n <hy-icon icon={\"hy-icon-remove\"} size={14} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n {this.isLuomusSearch && (\n <button\n type=\"submit\"\n class=\"search-field__submit\"\n aria-label={this.ariaLabel}\n data-drupal-selector=\"edit-submit-luomus-search\"\n id=\"edit-submit-luomus-search\"\n value=\"Apply\"\n >\n <hy-icon icon={\"hy-icon-search\"} size={18} fill={ColorVariant.white} aria-hidden=\"true\" />\n </button>\n )}\n {!this.isLuomusSearch && (\n <button type=\"submit\" class=\"search-field__submit\" aria-label={this.ariaLabel}>\n <hy-icon icon={\"hy-icon-search\"} size={18} fill={ColorVariant.white} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-site-header {\n background-color: var(--grayscale-white);\n z-index: 100;\n border-bottom: 2px solid var(--grayscale-dark);\n transform: none;\n\n &:not(.is-at-top) {\n top: 0;\n transform: translateY(-100%);\n transition: all 0.2s ease-in-out;\n }\n\n @include breakpoint($extrawide) {\n border-bottom: 1px solid var(--grayscale-black);\n margin: 0 auto;\n max-width: $fullhd;\n }\n\n &.hy-site-header--sticky-active {\n transition: all 0.2s ease-in-out;\n box-shadow: rgba(14, 104, 139, 0.2) 0 20px 20px -20px;\n }\n\n &.hy-site-header--sticky-visible {\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n transform: translateY(0);\n transition: all 0.2s ease-in-out;\n transition-delay: 0.2s;\n\n &.hy-site-header--mobile {\n transform: none;\n }\n\n &.has-toolbar {\n top: 39px;\n\n &--large {\n top: 79px;\n }\n }\n }\n\n &.hy-site-header--sticky-hidden {\n top: 0;\n }\n\n &.is-group {\n hy-desktop-menu-links,\n .hy-site-header__menu-desktop {\n @include breakpoint($extrawide) {\n margin-left: -10px;\n }\n }\n }\n}\n\n.hy-site-header__container {\n padding: 0 8px;\n display: flex;\n justify-content: space-between;\n\n @include breakpoint($extrawide) {\n padding: 0 32px;\n }\n\n &.is-group {\n flex-wrap: wrap;\n justify-content: flex-start;\n\n @include breakpoint($extrawide) {\n min-height: 82px;\n }\n }\n}\n\n.hy-site-header__branding {\n padding: 12px 0;\n\n @include breakpoint($extrawide) {\n padding: 26px 0;\n }\n\n .hy-site-header__content-top & {\n padding: 8px 0;\n\n @include breakpoint($extrawide) {\n padding: 8px 0;\n }\n }\n\n // Research group label\n > p {\n @include font-size(12px, 14px);\n @include font-weight($regular);\n font-family: var(--main-font-family);\n color: var(--grayscale-dark-text);\n letter-spacing: -0.1px;\n margin-bottom: 4px;\n text-transform: uppercase;\n\n + a {\n min-height: auto;\n }\n\n @include breakpoint($extrawide) {\n margin-bottom: 8px;\n }\n }\n\n // Group name link\n > a {\n @include font-size(16px, 16px);\n @include font-weight($bold);\n font-family: var(--main-font-family);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.6px;\n text-transform: uppercase;\n text-decoration: none;\n min-height: 48px;\n display: inline-flex;\n align-items: center;\n\n @include breakpoint($extrawide) {\n @include font-size(26px, 30px);\n letter-spacing: -0.8px;\n min-height: auto;\n }\n\n img {\n height: 100%;\n max-height: 48px;\n\n @include breakpoint($extrawide) {\n transform: translateY(-10px);\n }\n }\n }\n\n // Main container\n .is-group:not(.is-research-group) > & {\n @include breakpoint($extrawide) {\n margin-right: 32px + 10px;\n padding-bottom: 0;\n margin-bottom: -10px;\n }\n }\n}\n\n.hy-site-header__actions {\n display: inline-grid;\n gap: 4px;\n grid-template-columns: repeat(3, auto);\n justify-content: flex-end;\n min-width: 150px;\n\n @include breakpoint($wide) {\n min-width: none;\n }\n\n @include breakpoint($xlarge) {\n gap: 16px;\n }\n}\n\n.hy-site-header__menu-open-button {\n align-items: center;\n display: inline-flex;\n height: 100%;\n justify-content: center;\n width: 44px;\n background-color: transparent;\n border: 0;\n padding: 0;\n margin: 0;\n\n &[aria-expanded=\"true\"] {\n @include font-size(16px, 18px);\n @include font-weight($bold);\n align-items: center;\n background-color: transparent;\n border: none;\n color: var(--brand-main);\n display: inline-flex;\n font-family: var(--main-font-family);\n height: auto;\n letter-spacing: -0.3px;\n margin-left: auto;\n margin-right: -16px;\n padding: 16px;\n position: fixed;\n right: 16px;\n top: 12px;\n z-index: 101;\n width: auto;\n\n &:hover {\n cursor: pointer;\n }\n\n hy-icon {\n margin-left: 8px;\n\n svg {\n fill: var(--brand-main);\n }\n }\n }\n}\n\n.hy-site-header__donate-link {\n @include font-size(12px, 24px);\n @include font-weight($regular);\n display: inline-grid;\n font-family: var(--main-font-family);\n align-items: center;\n gap: 4px;\n grid-template-columns: repeat(2, auto);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.5px;\n padding: 0;\n text-decoration: none;\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 24px);\n }\n\n &:hover {\n color: var(--brand-main);\n cursor: pointer;\n\n svg {\n fill: var(--brand-main);\n }\n }\n\n &:focus {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n\n .hy-site-header__content-top & {\n color: var(--grayscale-white);\n\n svg {\n fill: var(--grayscale-white);\n }\n\n &:hover {\n color: var(--grayscale-medium);\n cursor: pointer;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n}\n\n.hy-site-header__content-top {\n background-color: var(--grayscale-black);\n border-bottom: 2px solid rgb(000, 000, 000, 0.7);\n position: relative;\n}\n\n.hy-backdrop {\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n visibility: hidden;\n\n &.is-active {\n background-color: rgba(0, 0, 0, 0.4);\n transition: background-color 300ms;\n visibility: visible;\n z-index: 99;\n }\n\n &.is-active-top {\n background-color: rgba(0, 0, 0, 0.4);\n transition: background-color 300ms;\n visibility: visible;\n z-index: 98;\n }\n}\n\n.hy-site-header__panel {\n background: var(--grayscale-white);\n bottom: 0;\n overflow: hidden;\n position: fixed;\n right: 0;\n top: 0;\n visibility: visible;\n width: 90%;\n z-index: 100;\n\n @include breakpoint($narrow) {\n width: 400px;\n }\n\n &[aria-hidden=\"true\"] {\n visibility: hidden;\n padding: 0;\n width: 0;\n }\n}\n","export interface DesktopLinks {\n label: string;\n url: string;\n menuLinkId: string;\n}\nexport interface DonateLink {\n url: string;\n label: string;\n}\nexport interface ComponentLabels {\n open: string;\n close: string;\n expand?: string;\n label?: string;\n}\n\nlet clickTimer = null;\n\nimport {Component, Element, Event, EventEmitter, Fragment, h, Listen, Prop, State} from \"@stencil/core\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport {MenuType, ColorVariant, SiteLogoSize} from \"../../utils/utils\";\nimport {jsonParserWorker} from \"../../global/globalScript\";\n\nlet clickTimeout = null;\n\n@Component({\n tag: \"hy-site-header\",\n styleUrl: \"site-header.scss\",\n shadow: false,\n})\nexport class SiteHeader {\n @Element() el: HTMLElement;\n @Prop() isGroup: boolean = false;\n @Prop() isLuomusGroup: boolean = false;\n @Prop() isBetaGroup: boolean = false;\n @Prop() researchGroupLabel: string = \"\";\n @Prop() groupType: string = \"\";\n @Prop() groupLogoUrl: string = \"\";\n @Prop() dataMenuLanguage: string;\n @Prop() dataMenuDonate: string;\n @Prop() dataSiteHeaderLabels: string;\n @Prop() dataSiteSearchLabels: string;\n @Prop() logoUrl?: string;\n @Prop() logoLabel?: string;\n @Prop() siteLabel?: string;\n @Prop() siteUrl?: string;\n @Prop() showSearchLabel: boolean = true;\n @Prop() noSearch: boolean = false;\n @Prop() menuLabel: string = \"Menu\";\n @Prop() menuLabelOpen?: string;\n @Prop() menuLabelClose?: string;\n @Prop({reflect: true}) menuType: MenuType = null;\n\n @Prop() dataMainMenuLinks: DesktopLinks[] | string;\n @Prop() dataSearchTools: DesktopLinks[] | string;\n\n @State() isMobile: boolean;\n @State() isMenuOpen: boolean = false;\n @State() isDesktopMenuOpen: boolean = false;\n @State() isDesktopMenuDropdown: boolean = false;\n @State() isTopMenuOpen: boolean = false;\n @State() isBottomVisible: boolean = false;\n @State() isTopVisible: boolean = false;\n\n @Event() headerScrollUp: EventEmitter;\n @Event() headerScrollDown: EventEmitter;\n @Event() menuMobileToggled: EventEmitter;\n @Event() menuMobileTopToggled: EventEmitter;\n\n private ro: ResizeObserver;\n private bottomObserver: IntersectionObserver;\n private topObserver: IntersectionObserver;\n private donateLink: DonateLink[];\n private menuLabels: ComponentLabels[];\n private searchLabels: ComponentLabels[];\n private groupPages: ComponentLabels[];\n private languageLabels: ComponentLabels[];\n\n @State() lastScrollTop = 0;\n @State() delta = 50;\n @State() navbarHeight = 0;\n\n // Listener for toggling mobile menu panel on or off.\n @Listen(\"mobileMenuToggle\") mobileMenuToggle() {\n this.isMenuOpen = !this.isMenuOpen;\n this.menuMobileToggled.emit();\n let bodyElement = document.getElementsByTagName(\"body\")[0] as HTMLElement;\n\n if (this.isMenuOpen) {\n bodyElement.style.overflow = \"hidden\";\n } else {\n bodyElement.style.overflow = \"initial\";\n }\n }\n\n // Listener for toggling mobile menu top panel on or off.\n @Listen(\"mobileMenuTopToggle\") mobileMenuTopToggle() {\n this.isTopMenuOpen = !this.isTopMenuOpen;\n this.menuMobileTopToggled.emit();\n }\n\n @Listen(\"menuToggled\", {target: \"window\"}) mainMenuToggled() {\n this.isDesktopMenuOpen = !this.isDesktopMenuOpen;\n }\n\n @Listen(\"scroll\", {target: \"window\"})\n handleScroll() {\n this.headerScrollHandler();\n }\n\n headerScrollHandler() {\n let topOffset = window.pageYOffset;\n if (Math.abs(this.lastScrollTop - topOffset) <= this.delta) {\n return;\n }\n\n if (topOffset > this.lastScrollTop && !this.isTopVisible) {\n this.toggleStickyness(false);\n this.headerScrollDown.emit();\n }\n // Scrolling up\n if (topOffset < this.lastScrollTop && !this.isTopVisible) {\n this.toggleStickyness();\n this.headerScrollUp.emit();\n }\n // At the top of the page\n if (this.isTopVisible) {\n this.toggleStickyness(false);\n }\n\n this.lastScrollTop = topOffset;\n }\n\n toggleStickyness(toggleOn = true) {\n const bodyElementClasses = document.querySelector(\"body\").classList;\n let hySiteHeader = this.el.querySelector(\".hy-site-header\") as HTMLElement;\n if (!hySiteHeader) return;\n\n this.isTopVisible ? hySiteHeader.classList.add(\"is-at-top\") : hySiteHeader.classList.remove(\"is-at-top\");\n\n if (toggleOn) {\n hySiteHeader.classList.add(\"hy-site-header--sticky-active\", \"hy-site-header--sticky-visible\");\n hySiteHeader.classList.remove(\"hy-site-header--sticky-hidden\");\n\n !this.isBottomVisible && !this.isTopVisible && bodyElementClasses.add(\"sticky-active\");\n\n if (bodyElementClasses.contains(\"toolbar-horizontal\")) {\n hySiteHeader.classList.add(\"has-toolbar\");\n\n if (bodyElementClasses.contains(\"toolbar-tray-open\")) {\n hySiteHeader.classList.add(\"has-toolbar--large\");\n }\n }\n }\n\n if (!toggleOn) {\n hySiteHeader.classList.remove(\n \"hy-site-header--sticky-active\",\n \"hy-site-header--sticky-visible\",\n \"hy-site-header--sticky-hidden\",\n \"has-toolbar\",\n \"has-toolbar--large\"\n );\n bodyElementClasses.remove(\"sticky-active\");\n }\n }\n\n componentDidLoad() {\n // Set the browser resize observer to gather information about browser width.\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.applySizeClasses(entry.contentRect.width);\n }\n });\n this.ro.observe(document.body);\n\n const topOptions = {\n root: null,\n rootMargin: \"250px\",\n threshold: [0.0, 1.0],\n };\n\n this.topObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.target.nodeName === \"HEADER\") {\n this.isTopVisible = entry.isIntersecting;\n }\n });\n }, topOptions);\n\n const header = document.querySelector(\"header\");\n if (header) {\n this.topObserver.observe(header);\n }\n\n const bottomOptions = {\n root: null,\n rootMargin: \"0px\",\n threshold: [0.0, 1.0],\n };\n\n this.bottomObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.target.nodeName === \"HEADER\") {\n this.isTopVisible = entry.isIntersecting;\n }\n });\n }, bottomOptions);\n\n const footer = document.querySelector(\"hy-footer\");\n if (footer) {\n this.bottomObserver.observe(footer);\n }\n\n // Pass the dataMenuLanguage prop to menu component.\n this.el.children[0].setAttribute(\"data-menu-language\", this.dataMenuLanguage);\n this.navbarHeight = 120;\n const body = document.querySelector(\"body\");\n body.style.setProperty(\"--nav-height\", `${this.navbarHeight * 2}px`);\n }\n\n async componentWillLoad() {\n // Check for site header labels and set them to variables accordingly.\n if (this.dataSiteHeaderLabels) {\n const labels = await jsonParserWorker(this.dataSiteHeaderLabels);\n this.menuLabels = labels.menu_labels;\n this.languageLabels = labels.language_labels;\n this.searchLabels = labels.search_labels;\n this.groupPages = labels.group_pages;\n\n this.el.children[0].setAttribute(\"menu-button-breadcrumb-logourl\", this.logoUrl);\n }\n\n // Check for the donation link information and set it to variables accordingly.\n // Also pass the donation link data to menu-component.\n if (this.dataMenuDonate) {\n this.donateLink = await jsonParserWorker(this.dataMenuDonate);\n this.el.children[0].setAttribute(\"data-menu-donate\", this.dataMenuDonate);\n }\n // Pass the necessary information to menu component. These props will be\n // used in mobile menu.\n this.el.children[0].setAttribute(\"open\", this.isMenuOpen.toString());\n this.el.children[0].setAttribute(\"logo-label\", this.logoLabel);\n this.el.children[0].setAttribute(\"logo-url\", this.logoUrl);\n this.el.children[0].setAttribute(\"site-label\", this.siteLabel);\n this.el.children[0].setAttribute(\"site-url\", this.siteUrl);\n this.el.children[0].setAttribute(\"menu-button-breadcrumb-logourl\", this.logoUrl);\n this.el.children[0].setAttribute(\"menu-language-label-open\", this.languageLabels[\"open\"]);\n this.el.children[0].setAttribute(\"menu-language-label-close\", this.languageLabels[\"close\"]);\n this.el.children[0].setAttribute(\"label-front-page\", this.menuLabels[\"front_page\"]);\n\n if (this.groupType !== \"\") {\n this.isDesktopMenuDropdown = true;\n }\n }\n\n disconnectedCallback() {\n clearTimeout(clickTimer);\n this.ro.disconnect();\n this.topObserver.disconnect();\n this.bottomObserver.disconnect();\n clearTimeout(clickTimeout);\n }\n\n applySizeClasses(size: number) {\n // Set the menu-type based on the width of the browser.\n size <= 1200 ? (this.menuType = MenuType.mobile) : (this.menuType = MenuType.desktop);\n\n // Pass the menu type to menu component.\n this.isMobile = this.menuType === (MenuType.mobile || MenuType.tablet);\n const menuAttribute = this.menuType;\n this.el.children[0].setAttribute(\"menu-type\", menuAttribute);\n }\n\n render() {\n if (this.menuType === null) return;\n\n const logoSize = this.isMobile ? SiteLogoSize.small : SiteLogoSize.big;\n const logoSizeGroup = this.isMobile ? SiteLogoSize.small : SiteLogoSize.small;\n const logoColor = ColorVariant.black;\n const logoColorGroup = ColorVariant.white;\n\n let classAttributes = [\n \"hy-site-header\",\n `hy-site-header--${this.menuType}`,\n this.isGroup ? \"is-group\" : \"\",\n \"is-at-top\",\n ];\n\n const toggleMenuMobileAndRemoveListener = () => {\n window.removeEventListener(\"click\", handleClickOutside);\n this.mobileMenuToggle();\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n const [targetElement] = event.composedPath() as HTMLElement[];\n if (targetElement.classList.contains(\"hy-backdrop\")) {\n toggleMenuMobileAndRemoveListener();\n }\n };\n\n if (this.isMenuOpen) {\n window.addEventListener(\"click\", () => {\n clearTimeout(clickTimeout);\n clickTimeout = setTimeout(() => {\n handleClickOutside;\n }, 250);\n });\n }\n\n let activeLang = \"en\";\n let dataMenuLanguageArray = JSON.parse(this.dataMenuLanguage);\n dataMenuLanguageArray.forEach((lang) => {\n if (lang.isActive) {\n activeLang = lang.langCode;\n }\n });\n\n switch (this.menuType) {\n case MenuType.desktop:\n // Larger than 1200px screens\n return [\n <header class={`${classAttributes.join(\" \")}`}>\n <div\n class={{\n \"hy-backdrop\": true,\n \"is-active\":\n (this.isMenuOpen && !this.isDesktopMenuDropdown) ||\n (this.isTopMenuOpen && !this.isDesktopMenuDropdown),\n }}\n />\n {this.isGroup && (\n <section class={`hy-site-header__content-top ${this.isTopMenuOpen ? \"is-open\" : \"\"}`}>\n <div class=\"hy-site-header__container\">\n <div class=\"hy-site-header__branding\">\n <hy-site-logo\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n size={logoSizeGroup}\n color={logoColorGroup}\n url={this.siteUrl}\n label={this.siteLabel}\n />\n </div>\n {this.dataMainMenuLinks.length > 2 && (\n <hy-menu-main-group\n tabindex=\"0\"\n is-mobile={false}\n menu-label={this.groupPages[\"university_main_menu\"] ?? null}\n data-main-menu={this.dataMainMenuLinks}\n menu-label-close={this.menuLabelClose}\n />\n )}\n <div class=\"hy-site-header__actions\">\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} isGroup />\n {!this.noSearch && (\n <hy-site-search\n class={\"menu--secondary__item group\"}\n size={18}\n color={logoColorGroup}\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n {this.donateLink.map(({label, url}) => {\n return (\n <a class={\"hy-site-header__donate-link\"} href={url}>\n <hy-icon icon={\"hy-icon-heart-support\"} size={14} fill={ColorVariant.black} />\n <span>{label}</span>\n </a>\n );\n })}\n </div>\n </div>\n </section>\n )}\n <section\n class={`hy-site-header__container ${this.isGroup ? \"is-group\" : \"\"} ${\n this.groupType === \"research_group_menu\" ? \"is-research-group\" : \"\"\n }`}\n >\n <div class={\"hy-site-header__branding\"}>\n {this.isGroup && this.groupType == \"research_group_menu\" && <p>{this.researchGroupLabel}</p>}\n {this.isGroup ? (\n <a href={this.logoUrl}>\n {this.groupType == \"generic_site_group_menu\" && this.groupLogoUrl ? (\n <img src={this.groupLogoUrl} alt={`${this.logoLabel} logo`} />\n ) : (\n this.logoLabel\n )}\n </a>\n ) : (\n <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />\n )}\n </div>\n {this.groupType != \"research_group_menu\" && <slot name=\"menu\"></slot>}\n {!this.isGroup && (\n <div class=\"hy-site-header__actions\">\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} />\n {!this.noSearch && (\n <hy-site-search\n size={14}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n color={ColorVariant.black}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n {this.donateLink.map(({label, url}) => {\n return (\n <a class={\"hy-site-header__donate-link\"} href={url}>\n <hy-icon icon={\"hy-icon-heart-support\"} size={14} fill={ColorVariant.black} />\n <span>{label}</span>\n </a>\n );\n })}\n </div>\n )}\n </section>\n </header>,\n ];\n\n case MenuType.mobile:\n // Smaller than 960px screens\n return (\n <header class={classAttributes.join(\" \")} data-menu-active={this.isMenuOpen}>\n <div class={{\"hy-backdrop\": true, \"is-active\": this.isMenuOpen}} />\n <div class={{\"hy-backdrop\": true, \"is-active-top\": this.isTopMenuOpen}} />\n {this.isGroup && (\n <section class={`hy-site-header__content-top ${this.isTopMenuOpen ? \"is-open\" : \"\"}`}>\n <div class=\"hy-site-header__container\">\n <div class=\"hy-site-header__branding\">\n <hy-site-logo\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n size={logoSizeGroup}\n color={logoColorGroup}\n url={this.siteUrl}\n label={this.siteLabel}\n />\n </div>\n <div class=\"hy-site-header__actions\">\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} isGroup />\n {!this.noSearch && (\n <hy-site-search\n class={\"menu--secondary__item group\"}\n size={18}\n color={logoColorGroup}\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n {this.dataMainMenuLinks.length > 2 && (\n <hy-menu-main-group\n site-label={this.siteLabel}\n site-url={this.siteUrl}\n logo-label={this.logoLabel}\n logo-url={this.logoUrl}\n is-mobile={true}\n donate={this.donateLink}\n data-main-menu={this.dataMainMenuLinks}\n />\n )}\n </div>\n </div>\n </section>\n )}\n <section class=\"hy-site-header__container\">\n <div class={\"hy-site-header__branding\"}>\n {this.groupType == \"research_group_menu\" && <p>{this.researchGroupLabel}</p>}\n {this.isGroup ? (\n <a href={this.logoUrl}>\n {this.groupType == \"generic_site_group_menu\" && this.groupLogoUrl ? (\n <img src={this.groupLogoUrl} alt={`${this.logoLabel} logo`} />\n ) : (\n this.logoLabel\n )}\n </a>\n ) : (\n <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />\n )}\n </div>\n <div class=\"hy-site-header__actions\">\n {!this.isGroup && (\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} />\n )}\n {!this.isGroup && !this.noSearch && (\n <hy-site-search\n size={24}\n color={ColorVariant.black}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n <button\n onClick={() => toggleMenuMobileAndRemoveListener()}\n class={`hy-site-header__menu-open-button`}\n aria-label={this.isMenuOpen ? this.menuLabels[\"close\"] : this.menuLabels[\"open\"]}\n aria-expanded={`${this.isMenuOpen}`}\n >\n {!this.isMenuOpen && <hy-icon icon={\"hy-icon-hamburger\"} size={24} fill={ColorVariant.black} />}\n {this.isMenuOpen && (\n <Fragment>\n <span>{this.menuLabelClose}</span>\n <hy-icon icon={\"hy-icon-remove\"} size={16} />\n </Fragment>\n )}\n </button>\n </div>\n <div\n class={{\n \"is-open\": this.isMenuOpen,\n \"hy-site-header__panel\": true,\n }}\n aria-hidden={`${!this.isMenuOpen}`}\n >\n <slot name={\"menu_mobile\"} />\n </div>\n </section>\n </header>\n );\n }\n }\n}\n",":host {\n --site-logo-color: var(--brand-main-nearly-black);\n}\n\n:host(.hy-site-logo--mobile) {\n --site-logo-color: var(--brand-main-nearly-black);\n}\n\n.hy-site-logo {\n a,\n div.luomus-group {\n align-items: center;\n display: flex;\n text-decoration: none;\n\n &:focus {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n }\n\n &__label {\n @include font-size(14px, 14px);\n @include font-weight($bold);\n color: var(--site-logo-color);\n font-family: var(--main-font-family);\n letter-spacing: -0.7px;\n margin-left: 8px;\n max-width: 90px;\n text-transform: uppercase;\n\n .hy-site-header__branding & {\n @include breakpoint($narrow) {\n min-width: min-content;\n max-width: max-content;\n white-space: nowrap;\n }\n\n @include breakpoint($extrawide) {\n min-width: min-content;\n max-width: 90px;\n white-space: initial;\n }\n\n @include breakpoint($xlarge) {\n min-width: min-content;\n max-width: max-content;\n white-space: nowrap;\n }\n }\n\n @include breakpoint($narrow) {\n @include font-size(15px, 16px);\n letter-spacing: -0.75px;\n margin-left: 6px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(14px, 14px);\n letter-spacing: -0.6px;\n margin-left: 4px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(16px, 16px);\n letter-spacing: -0.7px;\n margin-left: 4px;\n }\n\n &.group {\n @include font-size(12px, 14px);\n color: var(--grayscale-white);\n letter-spacing: -0.6px;\n margin-left: 3px;\n\n @include breakpoint($wide) {\n @include font-size(14px, 14px);\n letter-spacing: -0.7px;\n }\n\n @include breakpoint($xlarge) {\n margin-left: 8px;\n }\n }\n }\n\n &__icon {\n &.group {\n svg {\n height: 32px !important;\n width: 33.41px;\n }\n }\n\n &:not(.group) svg {\n height: 32px;\n width: 33.41px;\n\n @include breakpoint($narrow) {\n height: 48px;\n width: 51px;\n }\n\n @include breakpoint($xlarge) {\n height: 60px;\n width: 64px;\n }\n }\n }\n\n &__header {\n //&:hover {\n &__page {\n &:hover {\n color: var(--brand-main);\n\n a,\n span {\n color: var(--brand-main) !important;\n }\n\n svg {\n fill: var(--brand-main);\n }\n }\n }\n &__group:not(.luomus) {\n &:hover {\n color: var(--grayscale-medium);\n\n a,\n span {\n color: var(--grayscale-medium) !important;\n }\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n }\n\n &__footer {\n &:hover {\n span {\n color: var(--grayscale-medium) !important;\n }\n svg {\n fill: var(--grayscale-medium) !important;\n }\n }\n }\n}\n\n.hy-site-header__logo-container {\n a.group {\n @include font-size(14px, 16px);\n @include font-weight($bold);\n\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n text-decoration: none;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(24px, 28px);\n letter-spacing: -0.8px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(26px, 30px);\n }\n }\n}\n","import {Component, h, Host, Prop} from \"@stencil/core\";\nimport {ColorVariant, FooterVariant, SiteLogoSize} from \"../../../utils/utils\";\n\n@Component({\n tag: \"hy-site-logo\",\n styleUrl: \"site-logo.scss\",\n shadow: false,\n})\nexport class SiteLogo {\n @Prop() type: FooterVariant = FooterVariant.header;\n @Prop() color: ColorVariant = ColorVariant.black;\n @Prop() isGroup: boolean = false;\n @Prop() isLuomusGroup: boolean = false;\n @Prop() label?: string;\n @Prop() size: SiteLogoSize = SiteLogoSize.big;\n @Prop() url?: string;\n\n render() {\n const isGroupClass = this.isGroup ? \"group\" : \"page\";\n // const isLuomusGroupClass = this.isLuomusGroup ? 'luomus' : 'regular';\n const classAttributes = [\n \"hy-site-logo\",\n `hy-site-logo__${this.type}__${isGroupClass}`,\n `hy-site-logo__${this.type}`,\n \"luomus\",\n ].join(\" \");\n\n return this.url ? (\n <Host class={classAttributes}>\n {!this.isLuomusGroup && (\n <a href={this.url}>\n <hy-icon\n class={{\"hy-site-logo__icon\": true, group: this.isGroup}}\n icon={\"hy-icon-hy-logo\"}\n size={this.size}\n fill={this.color}\n />\n <span class={{\"hy-site-logo__label\": true, group: this.isGroup}} style={{color: this.color}}>\n {this.label}\n </span>\n </a>\n )}\n {this.isLuomusGroup && (\n <div class=\"luomus-group\">\n <hy-icon\n class={{\"hy-site-logo__icon\": true, group: this.isGroup}}\n icon={\"hy-icon-hy-logo\"}\n size={this.size}\n fill={this.color}\n />\n <span class={{\"hy-site-logo__label\": true, group: this.isGroup}} style={{color: this.color}}>\n {this.label}\n </span>\n </div>\n )}\n </Host>\n ) : this.label ? (\n <Host class={classAttributes}>\n <hy-icon\n class={{\"hy-site-logo__icon\": true, group: this.isGroup}}\n icon={\"hy-icon-hy-logo\"}\n size={this.size}\n fill={this.color}\n />\n <span class={{\"hy-site-logo__label\": true, group: this.isGroup}} style={{color: this.color}}>\n {this.label}\n </span>\n </Host>\n ) : (\n \"\"\n );\n }\n}\n",".button--search {\n @include font-size(12px, 24px);\n @include font-weight($regular);\n align-items: center;\n background: transparent;\n border: 0 none;\n color: var(--brand-main-nearly-black);\n display: inline-flex;\n flex-direction: row;\n font-family: var(--main-font-family);\n height: 100%;\n justify-content: center;\n letter-spacing: -0.5px;\n width: 44px;\n\n @include breakpoint($extrawide) {\n display: inline-grid;\n grid-template-columns: repeat(2, auto);\n gap: 4px;\n width: auto;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 24px);\n }\n\n &:hover:not([disabled]) {\n color: var(--brand-main);\n cursor: pointer;\n\n svg {\n fill: var(--brand-main);\n }\n }\n\n &:focus:not([disabled]) {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n\n &.is-active,\n &[aria-expanded=\"true\"] {\n position: relative;\n\n &:after {\n content: \"\";\n position: absolute;\n height: 4px;\n right: 0;\n bottom: -1px;\n left: 0;\n background-color: var(--grayscale-black);\n }\n }\n\n .is-group & {\n color: var(--grayscale-white);\n\n &:hover:not([disabled]) {\n color: var(--grayscale-medium);\n cursor: pointer;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n\n &.is-open--menu {\n position: absolute;\n right: 50px;\n top: 15px;\n z-index: 101;\n }\n}\n\n.button--search__label {\n display: none;\n visibility: hidden;\n\n @include breakpoint($extrawide) {\n display: block;\n visibility: visible;\n order: 2;\n }\n}\n\n.site-search {\n height: 100%;\n\n &__panel {\n display: none;\n &__is-open {\n background-color: rgba(0, 0, 0, 0.5);\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n display: flex;\n flex-direction: column;\n font-family: var(--main-font-family);\n left: 0;\n height: 100vh;\n position: absolute;\n width: 100%;\n z-index: 520;\n }\n\n &__title {\n &__group {\n align-items: baseline;\n display: flex;\n flex-direction: column;\n\n @include breakpoint($wide) {\n align-items: baseline;\n flex-direction: row;\n justify-content: flex-start;\n }\n }\n\n .panel-title {\n @include font-size(32px, 32px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n letter-spacing: -1px;\n margin-bottom: 12px;\n margin-top: 20px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(46px, 48px);\n letter-spacing: -1.5px;\n margin-top: 24px;\n }\n @include breakpoint($xlarge) {\n @include font-size(52px, 54px);\n letter-spacing: -1.6px;\n }\n }\n .description {\n @include font-size(12px, 16px);\n color: var(--grayscale-black);\n letter-spacing: -0.2px;\n margin-bottom: 16px;\n padding: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 22px);\n letter-spacing: -0.1px;\n margin-bottom: 18px;\n }\n @include breakpoint($wide) {\n @include font-size(18px, 24px);\n letter-spacing: -0.1px;\n padding-left: 8px;\n }\n @include breakpoint($xlarge) {\n @include font-size(20px, 28px);\n letter-spacing: -0.2px;\n padding-left: 12px;\n }\n }\n }\n\n &__content {\n background-color: #f8f8f8;\n width: 100%;\n }\n\n &__space-box {height: 100%;width:100%;}\n\n &__wrapper {\n margin: 0 auto;\n max-width: 100%;\n padding: 0 1rem 2rem;\n width: 100%;\n\n @include breakpoint($narrow) {\n max-width: 1216px;\n padding: 0 0 2rem;\n }\n @include breakpoint($xlarge) {\n padding: 0 0 4rem;\n }\n }\n\n &__panel-toggle {\n background-color: transparent;\n border: none;\n position: absolute;\n right: 1rem;\n top: 25px;\n\n @include breakpoint($narrow) {\n right: 2rem;\n top: 36px;\n }\n @include breakpoint($xlarge) {\n top: 45px;\n }\n\n &__label {\n @include font-size(14px, 22px);\n @include font-weight($bold);\n align-items: center;\n color: var(--grayscale-black);\n display: flex;\n letter-spacing: -0.44px;\n text-transform: uppercase;\n\n &__title {\n padding-right: 8px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(18px, 22px);\n letter-spacing: -0.56px;\n }\n }\n\n &:focus:not([disabled]),\n &:hover:not([disabled]) {\n cursor: pointer;\n span {\n color: var(--brand-main);\n }\n svg {\n fill: var(--brand-main);\n }\n }\n }\n\n &__tools {\n .title {\n @include font-size(16px, 20px);\n @include font-weight($bold);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.5px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n margin: 32px 0 16px;\n }\n }\n\n .list {\n a.search-special-tool {\n align-items: center;\n background-color: var(--grayscale-white);\n display: flex;\n margin-bottom: 8px;\n text-decoration: none;\n\n .label {\n @include font-size(14px, 16px);\n @include font-weight($bold);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.44px;\n padding-left: 8px;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n padding-left: 12px;\n }\n }\n .description {\n display: none;\n @include breakpoint($wide) {\n @include font-size(14px, 18px);\n color: var(--grayscale-dark);\n display: flex;\n letter-spacing: -0.2px;\n padding-left: 12px;\n }\n @include breakpoint($xlarge) {\n @include font-size(16px, 24px);\n color: var(--grayscale-dark);\n display: flex;\n letter-spacing: 0;\n padding-left: 12px;\n }\n }\n\n hy-icon {\n height: 40px;\n width: 40px;\n\n svg {\n background-color: var(--brand-main-light);\n fill: var(--grayscale-white);\n height: 40px;\n padding: 8px;\n width: 40px;\n }\n }\n }\n }\n }\n }\n}\n","export interface SearchTools {\n label: string;\n url: string;\n description: string;\n menuLinkId: string;\n isExternal: string;\n}\n\nexport interface SearchLabels {\n label?: string;\n}\n\ndeclare global {\n interface Window {\n CludoSayt: any;\n }\n}\n\nimport {Component, Prop, h, State, Listen, Event, EventEmitter, Element} from \"@stencil/core\";\nimport {ComponentLabels} from \"../site-header\";\nimport {ColorVariant} from \"../../../utils/utils\";\nimport {jsonParserWorker} from \"../../../global/globalScript\";\n\n@Component({\n tag: \"hy-site-search\",\n styleUrl: \"site-search.scss\",\n shadow: true,\n})\nexport class SiteSearch {\n @Element() el: HTMLElement;\n\n @Prop() color: ColorVariant = ColorVariant.black;\n @Prop() isAlternative: boolean = false;\n @Prop() isGroup: boolean = false;\n @Prop() isLuomusGroup: boolean = false;\n @Prop() isBetaGroup: boolean = false;\n @Prop() searchLanguage: string;\n @Prop() labels?: ComponentLabels[] | string;\n @Prop() searchLabels: string;\n @Prop() searchTools: string;\n private _searchTools: SearchTools[];\n\n @Prop() showLabel: boolean = false;\n @Prop() size: number;\n @Prop() dataSearchSpecialTools: string;\n\n private _searchLabels: SearchLabels[];\n private searchTitleLabel: string;\n private searchCloseLabel: string;\n private searchToolsLabel: string;\n private searchDescriptionLabel: string;\n\n @State() isSearchPanelOpen: boolean = false;\n @Event() searchPanelToggled: EventEmitter;\n\n private _labels: ComponentLabels[];\n\n async componentWillLoad() {\n this._labels = await jsonParserWorker(this.labels);\n // Special search tools.\n if (this.searchTools) {\n this._searchTools = await jsonParserWorker(this.searchTools);\n }\n\n if (this.searchLabels) {\n this._searchLabels = await jsonParserWorker(this.searchLabels);\n\n this.searchTitleLabel = this._searchLabels[\"search_label\"];\n this.searchCloseLabel = this._searchLabels[\"search_close_label\"];\n this.searchToolsLabel = this._searchLabels[\"search_tools_label\"];\n this.searchDescriptionLabel = this._searchLabels[\"search_description\"];\n }\n }\n\n // CLose the search panel if user opens the any other dropdown in header.\n // Do same if user scrolls up or down;\n @Listen(\"menuMobileToggled\", {target: \"document\"})\n @Listen(\"menuDesktopToggled\", {target: \"document\"})\n @Listen(\"menuLanguageToggled\", {target: \"document\"})\n @Listen(\"universityMainMenuToggled\", {target: \"document\"})\n @Listen(\"menuToggled\", {target: \"window\"})\n @Listen('headerScrollUp', {target: 'document'})\n @Listen('headerScrollDown', {target: 'document'})\n closePanelWhenOtherDropdownsTriggered() {\n this.closeSearchPanel();\n }\n\n\n @Listen(\"click\", {target: 'window'})\n handleWindowClick(event) {\n // Check if event is being fired during pressing a key (event.detail==0 in this case)\n if (event.detail == 0) return;\n\n if (this.isSearchPanelOpen) {\n const path = event.path || (event.composedPath && event.composedPath());\n\n if ((path[0] as HTMLElement).classList.contains(\"hy-backdrop\")) {\n this.closeSearchPanel();\n event.stopPropagation();\n }\n }\n }\n\n\n closeSearchPanel() {\n this.isSearchPanelOpen = false;\n\n let cludoSayt = document.querySelectorAll(\"stencil-cludo-sayt\")[0] as HTMLElement;\n if (cludoSayt) {\n let CludoSayt = window.CludoSayt;\n if (typeof CludoSayt !== \"undefined\") {\n CludoSayt.hide();\n }\n }\n\n //this.showBackdropShadow();\n }\n\n handleSearchPanelToggle(event) {\n // What is this??\n // TODO: Cleanup\n if (this.isLuomusGroup) {\n let beta = this.isBetaGroup ? \"/beta\" : \"\";\n let luomus_search_url = \"/\" + this.searchLanguage + beta + \"/luomus/search-results\";\n if (this.searchLanguage == \"fi\") {\n luomus_search_url = \"/\" + this.searchLanguage + beta + \"/luomus/hakutulokset\";\n } else if (this.searchLanguage == \"sv\") {\n luomus_search_url = \"/\" + this.searchLanguage + beta + \"/luomus/sokresultat\";\n } else if (this.searchLanguage == \"ru\") {\n luomus_search_url = \"/\" + this.searchLanguage + beta + \"/luomus/rezultaty-poiska\";\n }\n location.href = luomus_search_url;\n } else {\n this.isSearchPanelOpen = !this.isSearchPanelOpen;\n\n if (this.isSearchPanelOpen) {\n // Close desktop menu panel and lang menu panel if they are open.\n this.searchPanelToggled.emit();\n\n //this.adjustPosition(this.el);\n\n // Remove hidden class from cludo suggestions\n let cludoSayt = document.querySelectorAll(\"stencil-cludo-sayt\")[0] as HTMLElement;\n if (cludoSayt) {\n const cludoSearchContentFormElement = this.el.shadowRoot.querySelector(\n \"#cludo-search-content-form\"\n ) as HTMLElement;\n cludoSayt.classList.remove(\"hidden\");\n cludoSearchContentFormElement?.append(cludoSayt);\n (cludoSayt.shadowRoot.querySelector(\"#cludo-reli-flexi-wrapper\") as HTMLElement).style.position = \"relative\";\n (cludoSayt.shadowRoot.querySelector(\"#cludo-reli-flexi\") as HTMLElement).style.position = \"relative\";\n (cludoSayt.shadowRoot.querySelector(\"#cludo-reli-flexi\") as HTMLElement).style.maxWidth = \"none\";\n }\n\n // Without setTimeout it will not focus the input because it hasn't rendered yet.\n setTimeout(() => {\n const searchInput = this.el.shadowRoot.querySelector(\"input#search\") as HTMLElement;\n searchInput?.focus();\n });\n } else {\n this.closeSearchPanel();\n }\n }\n\n event.stopPropagation();\n }\n\n render() {\n const currentPageUrlPathName = window.location.pathname;\n const searchPagePathNames = [\"/fi/haku\", \"/en/search\", \"/sv/sök\"];\n\n return (\n <div\n class={{\n \"site-search\": true,\n \"site-search__is-open\": this.isSearchPanelOpen,\n \"is-group\": this.isGroup,\n }}\n >\n <button\n aria-label={this.showLabel ? this._labels[\"open\"] : \"\"}\n aria-expanded={`${this.isSearchPanelOpen}`}\n class={{\n \"button--search\": true,\n \"is-open--menu\": this.isAlternative,\n \"is-open\": this.isSearchPanelOpen,\n \"is-active\": searchPagePathNames.some((item) => item === currentPageUrlPathName),\n }}\n onClick={(e) => this.handleSearchPanelToggle(e)}\n disabled={searchPagePathNames.some((item) => item === currentPageUrlPathName) ? true : false}\n >\n {this.showLabel ? (\n <span class={{\"button--search__label\": true, \"button--search__label__group\": this.isGroup}}>\n {this._labels[\"label\"]}\n </span>\n ) : (\n \"\"\n )}\n <hy-icon icon={\"hy-icon-search\"} size={this.size} fill={this.color} />\n </button>\n {(!this.isLuomusGroup && this.isSearchPanelOpen) && (\n <div\n class={{\n \"site-search__panel\": true,\n \"site-search__panel__is-open\": this.isSearchPanelOpen,\n }}\n aria-hidden={`${!this.isSearchPanelOpen}`}\n >\n <div class=\"site-search__panel__content\">\n <div class=\"site-search__panel__wrapper\">\n <div class=\"site-search__panel__title\">\n <div class=\"site-search__panel__title__group\">\n <span class=\"panel-title\">{this.searchTitleLabel}</span>\n <div class=\"description\">{this.searchDescriptionLabel}</div>\n </div>\n </div>\n <div id=\"cludo-search-results\" class=\"container_12\">\n <div class=\"search-banner\"></div>\n <div class=\"search-filters search-filters-mobile\"></div>\n\n <div class=\"col-md-12\">\n <div style={{margin: \"20px 0 32px\"}} id=\"cludo-search-content-form\">\n <hy-search-field input-id=\"search\" label=\"\"></hy-search-field>\n </div>\n </div>\n\n <div class=\"col-md-3\">\n <div class=\"search-filters\" aria-controls=\"search-results\"></div>\n </div>\n <div class=\"col-md-9\">\n <div class=\"search-results-container\">\n <hy-paragraph-text>\n <div class=\"search-result-count\"></div>\n </hy-paragraph-text>\n <div class=\"search-did-you-mean\" role=\"Complementary\"></div>\n <div class=\"search-results\" role=\"region\" id=\"search-results\" aria-live=\"polite\"></div>\n </div>\n </div>\n </div>\n\n {this._searchTools && this._searchTools.length > 0 && (\n <div class=\"site-search__panel__tools\">\n <div class=\"title\">{this.searchToolsLabel}</div>\n <div class=\"list\">\n {this._searchTools.map((i) => {\n let searchToolTarget = i.isExternal ? \"_blank\" : \"_self\";\n return (\n <a class=\"search-special-tool\" href={i.url} target={searchToolTarget}>\n <hy-icon icon={\"hy-icon-arrow-to-right\"} size={14} fill={ColorVariant.black} />\n <span class=\"label\">{i.label}</span>\n <span class=\"description\">{i.description}</span>\n </a>\n );\n })}\n </div>\n </div>\n )}\n <button\n onClick={() => this.closeSearchPanel()}\n class={{\n \"site-search__panel__panel-toggle\": true,\n }}\n aria-label={this.searchCloseLabel}\n aria-expanded={`${this.isSearchPanelOpen}`}\n >\n <span class=\"site-search__panel__panel-toggle__label\">\n <span class=\"site-search__panel__panel-toggle__label__title\" tabindex=\"0\">\n {this.searchCloseLabel}\n </span>\n <hy-icon icon={\"hy-icon-remove\"} size={16} fill={ColorVariant.black} />\n </span>\n </button>\n </div>\n <div class=\"site-search__panel__space-box\" onClick={() => this.closeSearchPanel()}></div>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"hy-breadcrumbs.hy-footer.hy-footer-action.hy-footer-base.hy-footer-info.hy-footer-link-item.hy-heading.hy-ingress.hy-main-content-wrapper.hy-menu-language.hy-menu-language-item.hy-search-field.hy-site-header.hy-site-logo.hy-site-search.entry.cjs.js","mappings":"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","names":["BreadcrumbVariants","jsonParserWorker","h","Host","FooterLinkItemColor","SiteLogoSize","ColorVariant","FooterVariant","ResizeObserver","FooterLinkVariants","HeadingSectionVariants","HeadingVarians","CtaLinkButtonVariants","MenuType","Fragment"],"sources":["./src/components/hy-breadcrumbs/hy-breadcrumbs.scss?tag=hy-breadcrumbs","./src/components/hy-breadcrumbs/hy-breadcrumbs.tsx","./src/components/footer/hy-footer/hy-footer.scss?tag=hy-footer","./src/components/footer/hy-footer/hy-footer.tsx","./src/components/footer/hy-footer-action/hy-footer-action.scss?tag=hy-footer-action","./src/components/footer/hy-footer-action/hy-footer-action.tsx","./src/components/footer/hy-footer-base/hy-footer-base.scss?tag=hy-footer-base","./src/components/footer/hy-footer-base/hy-footer-base.tsx","./src/components/footer/hy-footer-info/hy-footer-info.scss?tag=hy-footer-info","./src/components/footer/hy-footer-info/hy-footer-info.tsx","./src/components/footer/hy-footer-link-item/hy-footer-link-item.scss?tag=hy-footer-link-item","./src/components/footer/hy-footer-link-item/hy-footer-link-item.tsx","./src/components/hy-heading/heading.scss?tag=hy-heading&mode=default","./src/components/hy-heading/heading-fw.scss?tag=hy-heading&mode=wide","./src/components/hy-heading/heading.tsx","./src/components/hy-ingress/ingress.scss?tag=hy-ingress","./src/components/hy-ingress/ingress.tsx","./src/components/hy-main-content-wrapper/hy-main-content-wrapper.scss?tag=hy-main-content-wrapper","./src/components/hy-main-content-wrapper/hy-main-content-wrapper.tsx","./src/components/hy-navigation/menu-language/menu-language.scss?tag=hy-menu-language&encapsulation=shadow","./src/components/hy-navigation/menu-language/menu-language.tsx","./src/components/hy-navigation/menu-language-item/menu-language-item.scss?tag=hy-menu-language-item&encapsulation=shadow","./src/components/hy-navigation/menu-language-item/menu-language-item.tsx","./src/components/hy-search-field/hy-search-field.scss?tag=hy-search-field","./src/components/hy-search-field/hy-search-field.tsx","./src/components/hy-site-header/site-header.scss?tag=hy-site-header","./src/components/hy-site-header/site-header.tsx","./src/components/hy-site-header/site-logo/site-logo.scss?tag=hy-site-logo","./src/components/hy-site-header/site-logo/site-logo.tsx","./src/components/hy-site-header/site-search/site-search.scss?tag=hy-site-search&encapsulation=shadow","./src/components/hy-site-header/site-search/site-search.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.hy-breadcrumbs {\n display: inline-block;\n position: relative;\n width: auto;\n\n &.is-condensed {\n width: 100%;\n }\n\n ol {\n margin: 0;\n padding: 0;\n }\n\n .breadcrumb-container {\n display: flex;\n font-family: var(--main-font-family);\n flex-wrap: wrap;\n list-style-type: none;\n margin: 0;\n padding: 20px 0 16px;\n\n @include breakpoint($narrow) {\n padding: 24px 0 16px;\n }\n\n @include breakpoint($extrawide) {\n padding: 32px 0 16px;\n }\n }\n\n .breadcrumb-item {\n @include font-size(15px, 20px);\n align-items: center;\n display: flex;\n font-weight: 600;\n font-family: var(--main-font-family);\n margin-bottom: 0.75rem;\n letter-spacing: -0.5px;\n\n @include breakpoint($narrow) {\n margin-bottom: 1rem;\n }\n\n .breadcrumb-item__link {\n color: var(--brand-main-light);\n text-decoration: none;\n }\n\n .breadcrumb-item__icon {\n margin: 0 21px;\n }\n\n &:hover {\n .breadcrumb-item__link {\n color: var(--brand-main-active);\n }\n }\n }\n\n .breadcrumb-item--current a {\n @include font-size(15px, 20px);\n\n color: var(--grayscale-dark);\n display: block;\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.5px;\n text-decoration: none;\n }\n}\n","export interface Breadcrumb {\n url: string;\n text: string;\n}\n\nimport {Component, Element, h, Prop, State} from \"@stencil/core\";\nimport {BreadcrumbVariants} from \"../../utils/utils\";\nimport {jsonParserWorker} from \"../../global/globalScript\";\n\n@Component({\n tag: \"hy-breadcrumbs\",\n styleUrl: \"hy-breadcrumbs.scss\",\n shadow: false,\n})\nexport class HyBreadcrumbs {\n private _dataItems: Breadcrumb[];\n @Prop() dataItems: Breadcrumb[] | string;\n @Prop() variant: BreadcrumbVariants = BreadcrumbVariants.default as any;\n @Prop() headerstyle: string = \"with-sidebar\";\n\n @State() menuOpen: boolean = false;\n @Element() el: HTMLElement;\n\n async componentWillLoad() {\n this._dataItems = await jsonParserWorker(this.dataItems);\n }\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest(\".hy-main\");\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains(\"with-sidebar\")) {\n this.headerstyle = \"without-sidebar\";\n }\n }\n }\n\n render() {\n const breadcrumbsClass = [\"hy-breadcrumbs\", this.variant, this.headerstyle].join(\" \");\n return (\n <nav aria-label=\"Breadcrumb\" role=\"navigation\" aria-labelledby=\"system-breadcrumb\" class={breadcrumbsClass}>\n <ol class=\"breadcrumb-container\">\n {this._dataItems.map((item) => {\n if (item.url.length > 0) {\n return (\n <li class=\"breadcrumb-item\">\n <a class=\"breadcrumb-item__link\" href={item.url}>\n {item.text}\n </a>\n <hy-icon class=\"breadcrumb-item__icon\" icon=\"hy-icon-caret-right\" size={12}></hy-icon>\n </li>\n );\n } else {\n return (\n <li class=\"breadcrumb-item breadcrumb-item--current\">\n <a href={item.url} aria-current=\"page\">\n {item.text}\n </a>\n </li>\n );\n }\n })}\n </ol>\n </nav>\n );\n }\n}\n",".hy-footer {\n display: block;\n}\n","import {Component, h} from \"@stencil/core\";\n\n@Component({\n tag: \"hy-footer\",\n styleUrl: \"hy-footer.scss\",\n shadow: false,\n})\nexport class HyFooter {\n render() {\n const classAttributes = [\"hy-footer\"];\n return (\n <footer class={classAttributes.join(\" \")}>\n <slot></slot>\n </footer>\n );\n }\n}\n",".hy-footer-action {\n align-items: center;\n border-top: 1px solid var(--grayscale-medium-dark);\n display: flex;\n flex-direction: row;\n padding: 8px 16px 16px 16px;\n place-content: center space-between;\n width: 100%;\n\n @include breakpoint($narrow) {\n margin: 0 auto;\n max-width: $fullhd;\n padding: 16px 24px 16px 24px;\n }\n\n @include breakpoint($wide) {\n padding: 16px 32px 24px 32px;\n }\n\n &__updated-text {\n @include font-size(14px, 24px);\n\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n }\n\n &__scroll-up {\n align-items: center;\n display: flex;\n\n .hy-footer-action__up-button {\n background-color: var(--brand-main-light);\n border: 0;\n box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.05);\n padding: 8px;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n label {\n @include font-size(16px, 24px);\n\n color: var(--grayscale-dark);\n font-family: var(--main-font-family);\n letter-spacing: 0;\n margin-right: 8px;\n\n &:hover {\n cursor: pointer;\n }\n }\n\n svg {\n fill: var(--grayscale-white);\n }\n\n &:hover {\n label {\n text-decoration: underline;\n }\n .hy-footer-action__up-button {\n background-color: var(--brand-main);\n }\n }\n }\n}\n","import {Component, Host, Prop, Listen, h} from \"@stencil/core\";\n\nlet scrollTimeout = null;\n\n@Component({\n tag: \"hy-footer-action\",\n styleUrl: \"hy-footer-action.scss\",\n shadow: false,\n})\nexport class HyFooterAction {\n /**\n * String of text for updated text to be displayed.\n */\n @Prop() updatedText: string;\n /**\n * Up button label.\n */\n @Prop() upButtonLabel: string;\n\n disconnectedCallback() {\n clearTimeout(scrollTimeout);\n }\n\n @Listen(\"scrollTop\", {capture: true}) scrollTop() {\n const hyLogo = document.querySelector(\".hy-site-header .hy-site-header__branding a\") as HTMLElement;\n window.scrollTo({top: 0, behavior: \"smooth\"});\n scrollTimeout = window.setTimeout(() => {\n hyLogo.focus();\n }, 500);\n }\n\n render() {\n const classAttributes = [\"hy-footer-action\"].join(\" \");\n\n return (\n <Host class={classAttributes}>\n <span class={\"hy-footer-action__updated-text\"}>{this.updatedText}</span>\n {this.upButtonLabel && (\n <span class=\"hy-footer-action__scroll-up\">\n <label id=\"up-label\" htmlFor=\"scroll-up\" onClick={() => this.scrollTop()}>\n {this.upButtonLabel}\n </label>\n <button\n name=\"scroll-up\"\n aria-labelledby=\"up-label\"\n onClick={() => this.scrollTop()}\n class=\"hy-footer-action__up-button\"\n type=\"button\"\n >\n <hy-icon class={\"hy-footer-action__up-icon\"} icon={\"hy-icon-arrow-up\"} size={26} />\n </button>\n </span>\n )}\n </Host>\n );\n }\n}\n",".hy-footer-base--content-container {\n background-color: var(--grayscale-black);\n display: block;\n max-width: 100%;\n}\n\n.hy-footer-base {\n background-color: var(--grayscale-black);\n display: flex;\n flex-direction: column;\n max-height: 100%;\n padding: 32px 16px 0 16px;\n place-content: center space-between;\n position: relative;\n width: 100%;\n\n @include breakpoint($narrow) {\n flex-direction: column;\n margin: 0 auto;\n max-width: $fullhd;\n padding: 32px 24px 0 24px;\n }\n\n @include breakpoint($wide) {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: repeat(2, auto);\n padding: 36px 32px 0 32px;\n }\n\n @include breakpoint($extrawide) {\n padding: 40px 32px 0 32px;\n }\n\n &__left {\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n margin-top: 24px;\n order: 2;\n\n @include breakpoint($narrow) {\n align-items: center;\n width: 100%;\n }\n\n @include breakpoint($wide) {\n order: unset;\n align-items: flex-start;\n }\n }\n\n &__logo {\n @include font-size(18px, 16px);\n\n font-family: var(--main-font-family);\n font-weight: bold;\n letter-spacing: -0.9px;\n\n .hy-site-logo__label {\n max-width: max-content;\n min-width: max-content;\n }\n }\n\n &__content {\n @include font-size(16px, 24px);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-style: normal;\n font-weight: 600;\n letter-spacing: -0.1px;\n margin: 22px 0;\n white-space: pre-line;\n\n @include breakpoint($narrow) {\n margin: 22px 0;\n }\n\n @include breakpoint($wide) {\n margin: 32px 0;\n }\n\n @include breakpoint($extrawide) {\n margin: 44px 0;\n }\n\n address {\n font-style: normal;\n }\n\n a {\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n }\n }\n\n &__some {\n align-items: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin-bottom: 0;\n z-index: 2;\n\n @include breakpoint($medium) {\n margin-bottom: 64px;\n }\n\n @include breakpoint($wide) {\n align-items: flex-start;\n flex-direction: column;\n margin-bottom: 0;\n }\n\n @include breakpoint($extrawide) {\n align-items: center;\n flex-direction: row;\n }\n\n &__label {\n @include font-size(16px, 24px);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.1px;\n margin-bottom: 8px;\n margin-right: 24px;\n\n @include breakpoint($wide) {\n margin-bottom: 8px;\n }\n }\n\n &__items {\n align-items: center;\n display: flex;\n flex-direction: row;\n }\n\n &__item {\n margin-right: 24px;\n\n :last-child() {\n margin-right: 0;\n }\n\n &:hover {\n color: var(--grayscale-medium) !important;\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n\n svg {\n fill: var(--grayscale-white);\n }\n }\n\n &__right {\n display: flex;\n flex-direction: column;\n grid-column: 2 / -1;\n justify-content: center;\n max-height: 100%;\n order: 1;\n width: 100%;\n\n hy-footer-link-item {\n float: none;\n width: 100%;\n }\n\n @include breakpoint($narrow) {\n margin-bottom: 32px;\n }\n\n @include breakpoint($medium) {\n display: block;\n justify-content: flex-start;\n\n hy-footer-link-item {\n clear: right;\n float: left;\n height: max-content;\n width: 50%;\n margin-bottom: 1.5rem;\n }\n }\n\n @include breakpoint($wide) {\n order: unset;\n }\n }\n\n &__bottom {\n border-top: 1px solid var(--grayscale-white);\n display: flex;\n flex-direction: column;\n grid-column: 1 / -1;\n justify-content: center;\n margin: 2.5rem 0 1rem;\n order: 3;\n padding-top: 2.5rem;\n width: 100%;\n\n @include breakpoint($medium) {\n flex-direction: row;\n justify-content: space-between;\n padding-top: 1rem;\n }\n\n &__links {\n align-items: flex-start;\n display: flex;\n flex-wrap: wrap;\n gap: 1.25rem;\n justify-content: center;\n padding: 0 1rem 1rem;\n\n @include breakpoint($medium) {\n padding: 0;\n gap: 2rem;\n }\n }\n\n &__link {\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-size: 14px;\n font-weight: 600;\n letter-spacing: -0.1;\n line-height: 19.07px;\n text-align: right;\n text-decoration: underline;\n text-decoration-thickness: auto;\n\n &:hover,\n &:focus-within {\n text-decoration-thickness: 2px;\n }\n }\n }\n\n &__copy {\n @include font-size(16px, 24px);\n\n align-self: center;\n color: var(--grayscale-white);\n display: block;\n font-family: var(--main-font-family);\n font-weight: 600;\n letter-spacing: -0.1px;\n text-align: center;\n\n @include breakpoint($medium) {\n align-self: flex-end;\n margin-left: 0.5rem;\n }\n }\n}\n","export interface FooterBaseLinks {\n label: string;\n url: string;\n isActive?: boolean;\n mainlink?: boolean;\n items: Array<FooterBaseLinks>;\n}\n\nexport interface FooterPostSectionLinks {\n label: string;\n url: string;\n external: boolean;\n}\n\nexport interface FooterBaseSome {\n label: string;\n url: string;\n type: string;\n}\n\nimport {Component, ComponentInterface, Host, Prop, h} from \"@stencil/core\";\nimport {FooterLinkItemColor, SiteLogoSize, ColorVariant, FooterVariant} from \"../../../utils/utils\";\nimport {jsonParserWorker} from \"../../../global/globalScript\";\n\n@Component({\n tag: \"hy-footer-base\",\n styleUrl: \"hy-footer-base.scss\",\n shadow: false,\n})\nexport class HyFooterBase implements ComponentInterface {\n /**\n * Link item color\n */\n @Prop() color: FooterLinkItemColor = FooterLinkItemColor.white;\n /**\n * Logo url\n */\n @Prop() logoUrl?: string;\n /**\n * Logo label\n */\n @Prop() logoLabel?: string;\n /**\n * Logo size\n */\n @Prop() size: SiteLogoSize = SiteLogoSize.big;\n /**\n * Label for some links\n */\n @Prop() someLabel?: string;\n /**\n * Copyright text\n */\n @Prop() copyrightText: string;\n\n private _dataFooterBaseLinks: FooterBaseLinks[];\n private _dataFooterBaseSome: FooterBaseSome[];\n private _dataFooterPostSectionLinks: FooterPostSectionLinks[];\n /**\n * Footer links to be displayed\n */\n @Prop() dataFooterBaseLinks: FooterBaseLinks[] | string;\n /**\n * Footer post section links\n */\n @Prop() dataFooterPostSectionLinks: FooterPostSectionLinks[] | string;\n /**\n * Footer some links\n */\n @Prop() dataFooterBaseSome: FooterBaseSome[] | string;\n\n async componentWillLoad() {\n this._dataFooterBaseLinks = await jsonParserWorker(this.dataFooterBaseLinks);\n this._dataFooterBaseSome = await jsonParserWorker(this.dataFooterBaseSome);\n this._dataFooterPostSectionLinks = await jsonParserWorker(this.dataFooterPostSectionLinks);\n }\n\n render() {\n const logoColor = ColorVariant.white;\n const classAttributes = [\"hy-footer-base--content-container\"].join(\" \");\n const links = this._dataFooterBaseLinks as Array<FooterBaseLinks>;\n const postSectionLinks = this._dataFooterPostSectionLinks as Array<FooterPostSectionLinks>;\n const some = this._dataFooterBaseSome as Array<FooterBaseSome>;\n\n return (\n <Host class={classAttributes}>\n <div class=\"hy-footer-base\">\n <div class=\"hy-footer-base__left\">\n <div class=\"hy-footer-base__logo\">\n <hy-site-logo type={FooterVariant.footer} color={logoColor} url={this.logoUrl} label={this.logoLabel} />\n </div>\n <div class=\"hy-footer-base__content\">\n <slot name=\"content\"></slot>\n </div>\n <div class=\"hy-footer-base__some\">\n <div class=\"hy-footer-base__some__items\">\n {some &&\n some.map((s) => {\n return (\n <a\n aria-label={s.label}\n href={s.url}\n class={`hy-footer-base__some__item`}\n title={s.label}\n target=\"_blank\"\n >\n <hy-icon icon={`hy-icon-some-${s.type}`} size={36} />\n </a>\n );\n })}\n </div>\n </div>\n </div>\n <div class=\"hy-footer-base__right\">\n {links &&\n links.map((link) => {\n return (\n <hy-footer-link-item\n label={link.label}\n url={link.url}\n color={FooterLinkItemColor.white}\n mainLink={link.mainlink}\n items={link.items ?? null}\n ></hy-footer-link-item>\n );\n })}\n </div>\n {postSectionLinks && (\n <div class=\"hy-footer-base__bottom\">\n <div class=\"hy-footer-base__bottom__links\">\n {postSectionLinks &&\n postSectionLinks.map((item) => (\n <a class=\"hy-footer-base__bottom__link\" href={item.url} target={item.external ? \"_blank\" : \"_self\"}>\n {item.label}\n </a>\n ))}\n </div>\n {this.copyrightText && <span class=\"hy-footer-base__copy\">{this.copyrightText}</span>}\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-footer-info {\n display: flex;\n flex-direction: column;\n max-height: auto;\n padding: 0 16px 40px 16px;\n place-content: center space-between;\n\n @include breakpoint($narrow) {\n flex-direction: column;\n margin: 0 auto;\n max-width: $fullhd;\n padding: 0 24px 32px 24px;\n }\n\n @include breakpoint($wide) {\n flex-direction: row;\n padding: 0 32px 36px 32px;\n }\n\n @include breakpoint($extrawide) {\n padding: 0 32px 40px 32px;\n }\n\n &__content {\n margin-bottom: 24px;\n width: 100%;\n\n @include breakpoint($narrow) {\n margin-bottom: 32px;\n width: 100%;\n }\n\n @include breakpoint($wide) {\n width: 31.11%;\n }\n\n .hy-heading {\n padding-top: 0 !important;\n }\n }\n\n &__ingress {\n @include font-size(15px, 20px);\n @include font-weight($regular);\n letter-spacing: -0.09px;\n\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n padding-bottom: 24px;\n\n @include breakpoint($wide) {\n @include font-size(16px, 22px);\n letter-spacing: -0.1px;\n padding-bottom: 16px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px); // Paragraph Large size\n }\n\n @include breakpoint($extrawide) {\n padding-bottom: 24px;\n }\n\n a {\n @include font-size(14px, 20px); // Paragraph Small size\n color: var(--link-blue);\n font-family: var(--main-font-family);\n font-weight: 600;\n display: inline-flex;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n letter-spacing: -0.1px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(17px, 26px); // Paragraph Large size\n }\n\n &:hover {\n color: var(--brand-main);\n }\n }\n\n a[target=\"_blank\"]:after {\n display: block;\n content: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='rgb(4,121,165)'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n margin-left: 3px;\n transform: rotate(315deg);\n\n &:hover {\n content: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='pink'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n }\n }\n\n a[target=\"_blank\"]:hover {\n &:after {\n content: url(\"data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 30 29' fill='rgb(14,104,139)'> <polygon points='29.207 13.783 14.756 .717 14.055 0 11.402 3.118 10.732 3.835 19.665 11.974 0 11.974 0 17.026 19.756 17.026 11.494 24.447 10.823 25.071 11.402 25.882 13.476 28.189 14.055 29 30 14.594' /> </svg>\");\n }\n }\n }\n\n &__links {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n max-height: auto;\n overflow: hidden;\n width: 100%;\n\n @include breakpoint($narrow) {\n align-content: space-between;\n max-height: 555px;\n width: 100%;\n }\n @include breakpoint($wide) {\n max-height: 555px;\n width: 65.56%;\n }\n @include breakpoint($overwide) {\n max-height: 530px;\n }\n\n &.is-group:not(.luomus) {\n @include breakpoint($narrow) {\n flex-direction: row;\n max-height: none;\n }\n }\n }\n\n .hy-accordion__content--inner-wrapper {\n width: 100%;\n }\n}\n\n.hy-footer-info.luomus {\n background-color: var(--grayscale-black);\n color: var(--grayscale-white);\n padding-top: 40px;\n\n .hy-footer-info__logo {\n @include font-size(18px, 16px);\n font-family: var(--main-font-family);\n font-weight: bold;\n letter-spacing: -0.9px;\n\n .hy-site-logo__label {\n max-width: 100%;\n }\n }\n\n .hy-footer-info__branding {\n padding: 22px 0 62px;\n a {\n img {\n height: 32px;\n width: 148px;\n }\n }\n }\n\n .luomus-footer-content {\n color: var(--grayscale-white);\n margin: 8px 0;\n\n &__link {\n @include font-size(18px, 24px);\n @include font-weight($bold);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-style: normal;\n letter-spacing: -0.36px;\n text-decoration: none;\n }\n\n &__description {\n @include font-size(16px, 22px);\n @include font-weight($regular);\n\n color: var(--grayscale-white);\n font-family: var(--main-font-family);\n font-style: normal;\n letter-spacing: -0.1px;\n padding-bottom: 32px;\n }\n }\n}\n","export interface FooterInfoLinks {\n label: string;\n url: string;\n isExternal: string;\n isActive?: boolean;\n mainlink?: boolean;\n items: Array<FooterInfoLinks>;\n}\n\nexport interface LuomusFooterContent {\n heading: string;\n url: string;\n content?: string;\n}\n\nimport {Component, ComponentInterface, Element, h, Host, Prop, State} from \"@stencil/core\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport {\n ColorVariant,\n CtaLinkButtonVariants,\n FooterLinkItemColor,\n FooterLinkVariants,\n FooterVariant,\n HeadingSectionVariants,\n HeadingVarians,\n} from \"../../../utils/utils\";\nimport {jsonParserWorker} from \"../../../global/globalScript\";\n\n@Component({\n tag: \"hy-footer-info\",\n styleUrl: \"hy-footer-info.scss\",\n shadow: false,\n})\nexport class HyFooterInfo implements ComponentInterface {\n @Element() el: HTMLElement;\n /**\n * Content area title.\n */\n @Prop() textTitle: string;\n /**\n * Content area text.\n */\n @Prop() textDescription: string;\n /**\n * Content area link button text.\n */\n @Prop() linkText: string;\n /**\n * Content area link button url.\n */\n @Prop() linkUrl: string;\n @Prop() linkIsExternal: boolean = false;\n @Prop() linkScLabel?: string;\n\n /**\n * Logo url\n */\n @Prop() logoUrl?: string;\n /**\n * Logo label\n */\n @Prop() logoLabel?: string;\n\n /**\n * Luomus group Logo url for footer\n */\n @Prop() groupLogoUrl?: string;\n\n @Prop() isGroup: boolean;\n @Prop() isLuomusGroup: boolean = false;\n @State() isMobile: boolean;\n\n private ro: ResizeObserver;\n private _dataFooterInfoLinks: FooterInfoLinks[];\n private _dataLuomusFooterContent: LuomusFooterContent[];\n /**\n * Data for links to be displayed.\n */\n @Prop() dataFooterInfoLinks: FooterInfoLinks[] | string;\n\n @Prop() luomusFooterContent: LuomusFooterContent[] | string;\n\n async componentWillLoad() {\n this._dataFooterInfoLinks = await jsonParserWorker(this.dataFooterInfoLinks);\n this._dataLuomusFooterContent = await jsonParserWorker(this.luomusFooterContent);\n }\n\n componentDidLoad() {\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.checkForMobile(entry.contentRect.width);\n }\n });\n this.ro.observe(document.body);\n }\n\n disconnectedCallback() {\n this.ro.disconnect();\n }\n\n checkForMobile(size: number) {\n this.isMobile = size <= 479 ? true : false;\n }\n\n render() {\n const links = this._dataFooterInfoLinks as Array<FooterInfoLinks>;\n const luomusFooterContentItems = this._dataLuomusFooterContent as Array<LuomusFooterContent>;\n\n const variant = this.isGroup ? FooterLinkVariants.group : FooterLinkVariants.campus;\n const section = this.isGroup ? HeadingSectionVariants.groupFooterInfo : HeadingSectionVariants.defaultFooterInfo;\n\n const footerLinkItemClass = this.isGroup ? \"group\" : \"campus\";\n\n const scLabel = this.linkScLabel && this.linkScLabel.length > 0 ? this.linkScLabel : this.linkText;\n const logoColor = ColorVariant.white;\n const linksColor = this.isLuomusGroup ? FooterLinkItemColor.white : FooterLinkItemColor.black;\n\n return (\n <Host\n class={{\n \"hy-footer-info\": true,\n luomus: this.isLuomusGroup,\n }}\n >\n <div\n class={{\n \"hy-footer-info__content\": true,\n \"is-group\": this.isGroup,\n }}\n >\n {!this.isLuomusGroup && (\n <hy-heading heading={HeadingVarians.h2} section={section}>\n {this.textTitle}\n </hy-heading>\n )}\n {this.isLuomusGroup && (\n <div class=\"hy-footer-info__logo\">\n <hy-site-logo\n type={FooterVariant.footer}\n isGroup={this.isGroup}\n color={logoColor}\n url={this.logoUrl}\n label={this.logoLabel}\n />\n </div>\n )}\n {this.isLuomusGroup && (\n <div class={\"hy-footer-info__branding\"}>\n <a href={this.groupLogoUrl}>\n <img src={this.groupLogoUrl} alt={\"Luomus logo\"} />\n </a>\n </div>\n )}\n {!this.isLuomusGroup && (\n <div\n class={{\n \"hy-footer-info__ingress\": true,\n \"is-group\": this.isGroup,\n }}\n innerHTML={this.textDescription}\n ></div>\n )}\n {!this.isLuomusGroup && this.linkUrl && (\n <hy-cta-button\n link-content={this.linkText}\n sc-label={scLabel}\n is-external={this.linkIsExternal}\n url={this.linkUrl}\n variant={CtaLinkButtonVariants.onWhiteBkgd}\n />\n )}\n {this.isLuomusGroup &&\n luomusFooterContentItems &&\n luomusFooterContentItems.map((item) => {\n return (\n <div class=\"luomus-footer-content\">\n <a href={item.url} class=\"luomus-footer-content__link\">\n {item.heading}\n </a>\n {item.content && <div class=\"luomus-footer-content__description\" innerHTML={item.content}></div>}\n </div>\n );\n })}\n </div>\n {this.isMobile && this.isGroup === false ? (\n <div\n class={{\n \"hy-footer-info__links\": true,\n \"is-group\": this.isGroup,\n luomus: this.isLuomusGroup,\n }}\n >\n <hy-accordion-container accordionid={\"test\"}>\n {links &&\n links.map((link) => {\n return (\n <hy-accordion-item accordiontitle={link.label}>\n <hy-footer-link-item\n class={footerLinkItemClass}\n variant={variant}\n color={linksColor}\n label={link.label}\n url={link.url}\n main-link={link.mainlink}\n items={link.items}\n isMobile={this.isMobile}\n ></hy-footer-link-item>\n </hy-accordion-item>\n );\n })}\n </hy-accordion-container>\n </div>\n ) : (\n <div\n class={{\n \"hy-footer-info__links\": true,\n \"is-group\": this.isGroup,\n luomus: this.isLuomusGroup,\n }}\n >\n {links &&\n links.map((link) => {\n const external_link = link.isExternal === \"external\";\n return (\n <hy-footer-link-item\n is-luomus-group={this.isLuomusGroup}\n class={footerLinkItemClass}\n variant={variant}\n color={linksColor}\n label={link.label}\n url={link.url}\n is-external={external_link}\n main-link={link.mainlink}\n items={link.items}\n isMobile={this.isMobile}\n ></hy-footer-link-item>\n );\n })}\n </div>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\nhy-footer-link-item:not([main-link]) {\n width: 100%;\n\n @include breakpoint($medium) {\n width: 50%;\n }\n}\n\nhy-footer-link-item[main-link] {\n hyphens: auto;\n min-width: 200px;\n width: 100%;\n\n @include breakpoint($narrow) {\n width: 50%;\n }\n}\n\nhy-footer-link-item.group[main-link]:not([is-luomus-group]) {\n flex-basis: 100%;\n margin-top: 1rem;\n\n @include breakpoint($narrow) {\n flex-basis: 50%;\n margin: 0;\n }\n}\n\n.hy-footer-link-item--container {\n display: flex;\n flex-direction: column;\n\n @include breakpoint($medium) {\n margin-bottom: 1rem;\n }\n\n .hy-footer-link-item:last-child {\n margin-bottom: 16px;\n }\n}\n\n//.hy-footer-link-item__main .hy-heading__container>h3.hy-heading .hy-footer-link-item__link {\n.hy-footer-link-item {\n display: flex;\n font-family: var(--main-font-family);\n margin-left: 0;\n margin-right: 0;\n position: relative;\n text-decoration: none;\n\n @include breakpoint($narrow) {\n margin-left: 0;\n margin-right: 24px;\n //padding: 15px 20px 15px 0;\n }\n\n @include breakpoint($wide) {\n margin-left: 32px;\n margin-right: 0;\n //padding: 15px 20px 15px 0;\n }\n\n @include breakpoint($xlarge) {\n margin-left: 48px;\n }\n\n &__main {\n border: 0;\n padding: 0;\n margin-right: -32px;\n width: fit-content;\n\n .hy-heading__container > h3.hy-heading {\n @include font-size(16px, 16px);\n letter-spacing: -0.45px;\n padding: 1.5rem 0 1px 0 !important;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n letter-spacing: -0.44px;\n }\n\n .hy-footer-link-item__link[data-color=\"white\"] {\n color: var(--grayscale-white);\n }\n\n .hy-footer-link-item__link[data-color=\"black\"] {\n color: var(--grayscale-black);\n }\n\n .hy-footer-link-item__link {\n font-family: var(--main-font-family);\n text-decoration: none;\n margin-bottom: 8px;\n\n @include breakpoint($medium) {\n margin-bottom: 12px;\n }\n }\n }\n }\n\n &__color-black {\n @include font-size(14px, 18px);\n @include font-weight($regular);\n border-bottom: 1px solid var(--grayscale-black);\n color: var(--grayscale-black);\n letter-spacing: -0.5px;\n padding: 16px 20px 14px 0;\n\n .hy-footer-link-item__icon svg {\n fill: var(--brand-main-nearly-black);\n height: 12px;\n margin-right: 2px;\n width: 12px;\n }\n\n .hy-heading__container > h3.hy-heading {\n &a.hy-footer-link-item__link:hover {\n color: var(--brand-main) !important;\n text-decoration: underline;\n\n svg {\n fill: var(--brand-main);\n }\n }\n }\n }\n\n &__color-white {\n @include font-size(15px, 18px);\n @include font-weight($semibold);\n border-bottom: 1px solid var(--grayscale-white);\n color: var(--grayscale-white);\n letter-spacing: -0.5px;\n padding: 15px 20px 15px 0;\n\n &:hover,\n &:focus-within {\n text-decoration: underline;\n }\n\n .hy-footer-link-item__icon svg {\n fill: var(--grayscale-white);\n }\n\n .hy-heading__container > h3.hy-heading {\n .hy-footer-link-item__link:hover {\n color: var(--grayscale-medium) !important;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n }\n\n &__icon {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n }\n}\n","import {Component, h, Prop} from \"@stencil/core\";\nimport {FooterLinkItemColor, FooterLinkVariants, HeadingVarians} from \"../../../utils/utils\";\n\n@Component({\n tag: \"hy-footer-link-item\",\n styleUrl: \"hy-footer-link-item.scss\",\n shadow: false,\n})\nexport class HyFooterLinkItem {\n @Prop() label: string;\n @Prop() url: string;\n @Prop() isExternal: boolean = false;\n @Prop() mainLink: boolean = false;\n @Prop() items: Array<any>;\n @Prop() color: FooterLinkItemColor = FooterLinkItemColor.black;\n @Prop() isMobile: boolean;\n @Prop() variant: FooterLinkVariants = FooterLinkVariants.base;\n @Prop() isLuomusGroup: boolean = false;\n\n render() {\n const containerClassAttributes = [\n \"hy-footer-link-item--container\",\n `hy-footer-link-item__${this.variant}`,\n this.items && \"hy-footer-link-item__has-children\",\n ].join(\" \");\n const classAttributes = [\n \"hy-footer-link-item\",\n this.mainLink && \"hy-footer-link-item__main\",\n `hy-footer-link-item__color-${this.color}`,\n ].join(\" \");\n const headingClassAttributes = [\n \"hy-footer-link-item\",\n \"hy-footer-link-item__heading\",\n this.mainLink && \"hy-footer-link-item__main\",\n `hy-footer-link-item__heading__color-${this.color}`,\n ].join(\" \");\n const linkClassAttributes = [\n \"hy-footer-link-item\",\n `hy-footer-link-item__color-${this.color}`,\n this.isLuomusGroup ? `luomus` : \"\",\n ].join(\" \");\n\n if (this.items) {\n if (this.isMobile && this.variant !== FooterLinkVariants.group) {\n return (\n <div class={containerClassAttributes}>\n {this.items.map((item) => {\n const target = item.isExternal === \"external\" ? \"_blank\" : \"_self\";\n return (\n <a class={linkClassAttributes} href={item.url} target={target} style={{color: this.color}}>\n {item.label}\n <hy-icon class={\"hy-footer-link-item__icon\"} icon={\"hy-icon-arrow-right\"} size={16} />\n </a>\n );\n })}\n </div>\n );\n } else {\n return (\n <div class={containerClassAttributes}>\n <hy-heading class={headingClassAttributes} heading={HeadingVarians.h3}>\n {this.url.length > 0 && (\n <a class={\"hy-footer-link-item__link\"} href={this.url} style={{color: this.color}}>\n {this.label}\n </a>\n )}\n {this.url.length == 0 && (\n <div data-color={this.color} class={\"hy-footer-link-item__link\"}>\n {this.label}\n </div>\n )}\n </hy-heading>\n {this.items.map((item) => {\n const target = item.isExternal === \"external\" ? \"_blank\" : \"_self\";\n return (\n <a class={linkClassAttributes} href={item.url} target={target} style={{color: this.color}}>\n {item.label}\n <hy-icon class={\"hy-footer-link-item__icon\"} icon={\"hy-icon-arrow-right\"} size={16} />\n </a>\n );\n })}\n </div>\n );\n }\n } else {\n const target = this.isExternal ? \"_blank\" : \"_self\";\n return (\n <a class={classAttributes} href={this.url} style={{color: this.color}} target={target}>\n {this.label}\n <hy-icon class={\"hy-footer-link-item__icon\"} icon={\"hy-icon-arrow-right\"} size={16} />\n </a>\n );\n }\n }\n}\n",":host {\n display: block;\n}\n\n.hy-heading__container {\n display: flex;\n flex-direction: column-reverse;\n width: 100%;\n\n @include breakpoint($narrow) {\n flex-direction: row;\n }\n\n &__subsection {\n padding: 2.5rem 0 1.375rem;\n\n @include breakpoint($narrow) {\n padding: 4rem 0 2.375rem;\n }\n }\n\n // H1 content page title\n h1.hy-heading__default {\n margin-bottom: 12px;\n\n @include breakpoint($xlarge) {\n margin-bottom: 16px;\n }\n\n // No sidebar, large desktops\n &__large {\n @include breakpoint($extrawide) {\n margin-bottom: 16px;\n }\n }\n }\n\n h1.hy-heading__search {\n margin-bottom: 0;\n padding: 16px 0 0;\n\n @include breakpoint($narrow) {\n padding: 28px 0 0;\n }\n @include breakpoint($wide) {\n padding: 32px 0 0;\n }\n\n &__large {\n @include breakpoint($extrawide) {\n padding: 40px 0 0;\n }\n }\n }\n\n h2,\n h3,\n h4,\n h5,\n h6 {\n padding: 1.5rem 0 1rem;\n\n @include breakpoint($narrow) {\n padding: 2rem 0 1rem;\n }\n }\n\n &.hy-heading__introduction {\n padding-top: 0;\n }\n\n .hy-heading__courses {\n padding-top: 0;\n }\n}\n\n.hy-heading {\n display: flex;\n flex-grow: 1;\n flex-shrink: 0;\n max-width: 100%;\n width: auto;\n}\n\n/*\n Headers (ex. h2, h3) used in Content pages (no caps and line).\n*/\n.hy-heading__subsection--divider,\n.hy-heading__contentsection--divider {\n flex-shrink: 2;\n overflow: hidden;\n width: 100%;\n\n &:after {\n background-color: transparent;\n border-bottom: 6px solid var(--grayscale-dark);\n content: \" \";\n display: flex;\n height: 2px;\n width: 100%;\n margin-left: 0;\n margin-bottom: 0.5rem;\n position: relative;\n top: 50%;\n transform: translateY(-50%);\n\n @include breakpoint($narrow) {\n margin-left: 2rem;\n border-bottom: 1px solid var(--grayscale-dark);\n margin-bottom: 1rem;\n }\n }\n}\n\n// H2 used in landing pages and in Introduction paragraph: caps, bigger font.\n// These styles are applied if there is a Sidebar on the page in Desktop sizes\nh2.hy-heading__introduction,\nh2.hy-heading__landingsection {\n @include font-size(28px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n}\n\nh1.hy-heading__hero {\n @include font-size(32px, 38px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.8px;\n margin-bottom: 0;\n\n @include breakpoint(1024px) {\n @include font-size(46px, 54px);\n letter-spacing: -1.15px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n}\n\n// Applied when there is a sidebar\n.hy-heading__container__common {\n h2.hy-heading__introduction,\n h2.hy-heading__landingsection {\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n\n h2.hy-heading__introduction {\n padding: 0 0 12px;\n @include breakpoint($narrow) {\n padding: 0 0 1rem;\n }\n }\n\n h2.hy-heading__landingsection,\n h2.hy-heading__contentsection {\n padding-bottom: 24px;\n\n @include breakpoint($narrow) {\n padding-bottom: 28px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 32px;\n }\n\n @include breakpoint($extrawide) {\n padding-bottom: 32px;\n }\n\n @include breakpoint($xlarge) {\n padding-bottom: 40px;\n }\n }\n\n // Footer info box header style for group pages.\n h2.hy-heading__group_footer_info {\n @include font-size(24px, 28px);\n @include font-weight($bold);\n letter-spacing: -0.6px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n letter-spacing: -0.8px;\n }\n @include breakpoint($xlarge) {\n @include font-size(26px, 30px);\n }\n }\n\n // Footer info box header style for main site pages.\n h2.hy-heading__footer_info {\n @include font-size(28px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n @include breakpoint($xlarge) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n}\n\n// Applied when there is NO sidebar\n.hy-heading__container__large {\n h2.hy-heading__introduction,\n h2.hy-heading__landingsection {\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n\n h2.hy-heading__introduction {\n //@todo check here\n @include breakpoint($extrawide) {\n // h2 font large\n padding: 0 0 1rem;\n }\n @include breakpoint($xlarge) {\n // h2 font x-large\n padding: 0 0 20px;\n }\n }\n\n h2.hy-heading__landingsection,\n h2.hy-heading__contentsection {\n padding-bottom: 24px;\n\n @include breakpoint($narrow) {\n padding-bottom: 28px;\n }\n\n @include breakpoint($wide) {\n padding-bottom: 32px;\n }\n\n @include breakpoint($extrawide) {\n padding-bottom: 40px;\n }\n }\n\n // Hero h1 landing minor. no sidebar\n h1.hy-heading__landing_minor {\n @include breakpoint($extrawide) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n }\n\n // Hero h1 heading frontpage. no sidebar\n h1.hy-heading__frontpage,\n h1.hy-heading__landing_major {\n @include breakpoint($extrawide) {\n @include font-size(56px, 64px);\n letter-spacing: -1.4px;\n }\n }\n\n // Footer info box header style for group pages.\n h2.hy-heading__group_footer_info {\n @include font-size(24px, 28px);\n @include font-weight($bold);\n letter-spacing: -0.6px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n letter-spacing: -0.8px;\n }\n @include breakpoint($extrawide) {\n @include font-size(26px, 30px);\n }\n }\n\n // Footer info box header style for main site pages.\n h2.hy-heading__footer_info {\n @include font-size(28px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.7px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(34px, 40px);\n letter-spacing: -0.85px;\n }\n @include breakpoint($extrawide) {\n @include font-size(42px, 48px);\n letter-spacing: -1.05px;\n }\n }\n}\n\n// h3 on landing pages use the same fonts as h2 on content pages; no line; no caps\nh3.hy-heading__landingsection {\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(32px, 32px);\n letter-spacing: -1px;\n }\n\n @include breakpoint($extrawide) {\n // > 1200px\n @include font-size(40px, 48px);\n letter-spacing: -1.2px;\n }\n\n @include breakpoint($xlarge) {\n // > 1400px\n @include font-size(40px, 48px);\n letter-spacing: -1.2px;\n }\n}\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n color: var(--brand-main-nearly-black);\n font-family: var(--main-font-family);\n font-weight: 700;\n padding: 0;\n margin: 0;\n width: 100%;\n\n &.negative {\n color: var(--grayscale-white);\n }\n}\n\nh1 {\n @include font-size(32px, 38px);\n letter-spacing: -0.8px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(46px, 54px);\n letter-spacing: -1.15px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n\n // without Sidebar\n .hy-heading__container__large & {\n @include breakpoint($extrawide) {\n @include font-size(52px, 60px);\n letter-spacing: -1.3px;\n }\n }\n}\n\n// default h2 used in content pages\nh2 {\n @include font-size(26px, 32px);\n @include font-weight($bold);\n letter-spacing: -0.52px;\n\n @include breakpoint($narrow) {\n @include font-size(30px, 36px);\n letter-spacing: -0.6px;\n }\n\n // with Sidebar\n .hy-heading__container__common & {\n @include breakpoint($xlarge) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n\n // without Sidebar\n .hy-heading__container__large & {\n @include breakpoint($extrawide) {\n @include font-size(34px, 40px);\n letter-spacing: -0.68px;\n }\n }\n}\n\n// default h3 used in content pages\nh3 {\n @include font-size(22px, 28px);\n letter-spacing: -0.7px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n }\n}\n\nh4 {\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(22px, 28px);\n letter-spacing: -0.69px;\n }\n}\n\nh5 {\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n }\n}\n\nh6 {\n @include font-size(14px, 16px);\n letter-spacing: -0.44px;\n\n @include breakpoint($narrow) {\n // > 480px\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n }\n}\n","@import \"./heading.scss\";\n//overrides for full width views\n// JUST A DEMO, FIX AND EXPAND!\nh1 {\n font-size: $font-size-xxxx-large;\n font-weight: bold;\n text-transform: uppercase;\n line-height: 1.2;\n}\n","import {Component, Element, h, Host, Prop, State} from \"@stencil/core\";\nimport {HeadingSectionVariants, HeadingVarians} from \"../../utils/utils\";\n\n@Component({\n tag: \"hy-heading\",\n styleUrls: {default: \"heading.scss\", wide: \"heading-fw.scss\"},\n scoped: false,\n shadow: false,\n})\nexport class Heading {\n /**\n * @type {*}\n */\n @Prop() heading: HeadingVarians = HeadingVarians.default as any;\n @Prop() isSearch: boolean = false;\n /**\n * @type {*}\n */\n @Prop() section: HeadingSectionVariants = HeadingSectionVariants.default as any;\n @Prop() negative: boolean = false;\n @Prop() headerstyle: string = \"common\";\n @Prop({reflect: true}) hyphenatedText?: string;\n @Element() el: HTMLElement;\n @State() hasChildren: boolean = true;\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest(\".hy-main\");\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains(\"with-sidebar\")) {\n this.headerstyle = \"large\";\n }\n }\n if (this.el.parentElement.classList.contains(\"hy-hero__title-container\")) {\n this.hasChildren = false;\n }\n }\n\n render() {\n const headingInVariants = this.heading in HeadingVarians;\n const classAttributes = [\n \"hy-heading\",\n this.negative ? \"negative\" : \"\",\n this.isSearch ? \"hy-heading__search\" : \"\",\n this.isSearch ? `hy-heading__search__${this.headerstyle}` : \"\",\n `hy-heading__${this.section}`,\n `hy-heading__${this.headerstyle}`,\n `hy-heading__${this.section}__${this.headerstyle}`,\n ];\n\n const sectionClassAttributes = [`hy-heading__${this.section}--divider`].join(\" \");\n\n const containerSectionClass = [\n \"hy-heading__container\",\n `hy-heading__container__${this.section}`,\n `hy-heading__container__${this.headerstyle}`,\n ].join(\" \");\n\n return (\n <Host>\n {headingInVariants ? (\n [\n <div class={containerSectionClass}>\n {this.hyphenatedText && !this.hasChildren ? (\n <this.heading class={classAttributes.join(\" \")} innerHTML={this.hyphenatedText}></this.heading>\n ) : (\n <this.heading class={classAttributes.join(\" \")}>\n <slot />\n </this.heading>\n )}\n\n <span class={sectionClassAttributes}></span>\n </div>,\n ]\n ) : (\n <div class={containerSectionClass}>\n {this.hyphenatedText && !this.hasChildren ? (\n <HeadingVarians.default class={classAttributes.join(\" \")}>\n <span innerHTML={this.hyphenatedText}></span>\n </HeadingVarians.default>\n ) : (\n <HeadingVarians.default class={classAttributes.join(\" \")}>\n <span>\n <slot />\n </span>\n </HeadingVarians.default>\n )}\n\n <span class={sectionClassAttributes}></span>\n </div>\n )}\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\np.hy-ingress {\n @include font-size(16px, 24px);\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n margin: 0 0 2rem;\n\n @include breakpoint($narrow) {\n @include font-size(18px, 28px);\n }\n\n @include breakpoint($wide) {\n margin: 0 0 2.25rem;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(18px, 32px);\n margin: 0 0 3rem;\n }\n\n // No sidebar, large desktop styles\n &__large {\n @include breakpoint($extrawide) {\n @include font-size(18px, 32px);\n margin: 0 0 3rem;\n }\n }\n}\n","import {Component, Element, h, Host, Prop} from \"@stencil/core\";\n\n@Component({\n tag: \"hy-ingress\",\n styleUrl: \"ingress.scss\",\n shadow: false,\n})\nexport class Ingress {\n @Element() el: HTMLElement;\n @Prop() headerstyle: string = \"common\";\n\n componentDidLoad() {\n let hyMainDiv = this.el.closest(\".hy-main\");\n if (hyMainDiv) {\n if (!hyMainDiv.classList.contains(\"with-sidebar\")) {\n this.headerstyle = \"large\";\n }\n }\n }\n\n render() {\n const classAttributes = [\"hy-ingress\", `hy-ingress__${this.headerstyle}`].join(\" \");\n return (\n <Host>\n <p class={classAttributes}>\n <slot></slot>\n </p>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.with-sidebar {\n .hy-main-content-wrapper {\n // Layout Mobile 320-479px\n margin: 0 auto;\n max-width: 100%;\n padding: 0 1rem;\n position: relative;\n\n // Layout Tablet 480-959px\n // Side navigation disappears to hamburger when width < 1200.\n @include breakpoint($narrow) {\n // the rule is applied to screens >=480px: width 100% - side margins (32px)\n padding: 0 2rem;\n }\n\n // Large desktop Layout >1600px\n @include breakpoint($xlarge) {\n max-width: 1216px;\n padding: 0;\n }\n }\n}\n\n.without-sidebar {\n .hy-main-content-wrapper {\n // Layout Mobile 320-479px\n margin: 0 auto;\n max-width: 100%;\n padding: 0 1rem;\n position: relative;\n\n // Layout Tablet 480-959px\n @include breakpoint($narrow) {\n padding: 0 2rem;\n }\n\n // Large desktop Layout >1200px\n @include breakpoint($extrawide) {\n max-width: 1216px;\n padding: 0;\n }\n }\n}\n","import {Component, h, Host} from \"@stencil/core\";\n\n@Component({\n tag: \"hy-main-content-wrapper\",\n styleUrl: \"hy-main-content-wrapper.scss\",\n shadow: false,\n})\nexport class HyMainContentWrapper {\n render() {\n const classAttributes = [\"hy-main-content-wrapper\"].join(\" \");\n\n return (\n <Host>\n <div class={classAttributes}>\n <slot />\n </div>\n </Host>\n );\n }\n}\n",".menu-language {\n position: relative;\n align-items: center;\n display: flex;\n height: 100%;\n}\n\n.menu-language__toggle {\n @include font-size(16px, 16px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n align-items: center;\n background-color: transparent;\n border: 0;\n display: inline-grid;\n font-family: var(--main-font-family);\n gap: 4px;\n grid-template-columns: repeat(2, auto);\n letter-spacing: -0.7px;\n margin: 0;\n padding: 14px 10px;\n text-transform: uppercase;\n height: 100%;\n\n @include breakpoint($extrawide) {\n @include font-size(12px, 24px);\n @include font-weight($regular);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.5px;\n grid-template-columns: repeat(3, auto);\n padding: 0;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 24px);\n }\n\n &:hover {\n color: var(--brand-main);\n cursor: pointer;\n\n svg {\n fill: var(--brand-main);\n }\n }\n\n &:focus {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n\n hy-icon {\n &:first-of-type {\n display: none !important;\n\n @include breakpoint($extrawide) {\n display: inline-flex !important;\n }\n }\n }\n\n &[aria-expanded=\"true\"] {\n position: relative;\n\n &:after {\n content: \"\";\n position: absolute;\n height: 4px;\n right: 0;\n bottom: -1px;\n left: 0;\n background-color: var(--grayscale-black);\n }\n\n span + hy-icon {\n transform: rotate(180deg);\n }\n }\n\n .is-group & {\n color: var(--grayscale-white);\n\n &:hover {\n color: var(--grayscale-medium);\n cursor: pointer;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n}\n\n.menu-language__dropdown {\n background-color: var(--grayscale-white);\n border-radius: 0 0 5px 5px;\n box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2);\n display: flex;\n flex-flow: column;\n justify-items: center;\n right: -15px;\n margin: 0;\n padding: 8px;\n position: absolute;\n text-transform: uppercase;\n visibility: visible;\n width: max-content;\n z-index: 100;\n min-width: 160px;\n\n &[aria-hidden=\"true\"] {\n display: none;\n }\n\n @include breakpoint($extrawide) {\n left: -15px;\n right: 0;\n }\n}\n\n.menu-language__links {\n margin: 0;\n padding: 0;\n list-style: none;\n display: grid;\n gap: 4px;\n}\n","import {ComponentLabels} from \"../../hy-site-header/site-header\";\n\nexport interface MenuLanguage {\n langCode: string;\n url: string;\n abbr: string;\n label: string;\n isActive?: boolean;\n isDisabled?: boolean;\n}\n\nimport {Component, h, Prop, Element, Listen, State, Event, EventEmitter} from \"@stencil/core\";\nimport {jsonParserWorker} from \"../../../global/globalScript\";\n\n@Component({\n tag: \"hy-menu-language\",\n styleUrl: \"menu-language.scss\",\n shadow: true,\n})\nexport class MenuLanguage {\n @Element() el: HTMLElement;\n @Prop() dataMenuLanguage: MenuLanguage[] | string;\n @Prop() isGroup: boolean = false;\n @Prop() labels?: ComponentLabels[] | string;\n @State() isMenuOpen: boolean = false;\n\n @Event() menuLanguageToggled: EventEmitter;\n\n private _dataMenuLanguage: MenuLanguage[];\n private _labels: ComponentLabels[];\n\n // Close the language menu if user clicks anywhere outside the Menu language component.\n @Listen(\"click\", {target: \"window\"})\n handleOutsideMenuClick(event) {\n this.isMenuOpen = false;\n event.stopPropagation();\n }\n\n // CLose the language menu if user opens the desktop menu panel.\n @Listen(\"menuDesktopToggled\", {target: \"document\"})\n desktopMenuToggled() {\n this.isMenuOpen = false;\n }\n\n // CLose the language menu if user opens the search panel\n @Listen(\"searchPanelToggled\", {target: \"document\"})\n searchPanelToggled() {\n this.isMenuOpen = false;\n }\n\n // Close the language menu if user opens University main menu\n @Listen(\"universityMainMenuToggled\", {target: \"document\"})\n universityMainMenuPanelToggled() {\n this.isMenuOpen = false;\n }\n\n @Listen(\"focus\")\n handleComponentFocus(event) {\n // Close desktop menu panel if it's open.\n this.menuLanguageToggled.emit();\n\n event.stopPropagation();\n }\n\n @Listen(\"click\")\n handleComponentClick(event) {\n this.isMenuOpen = !this.isMenuOpen;\n\n if (this.isMenuOpen) {\n // Close desktop menu panel if it's open.\n this.menuLanguageToggled.emit();\n\n const languageMenuSelector = event.target as HTMLElement;\n this.adjustPosition(languageMenuSelector, this.el);\n }\n\n event.stopPropagation();\n }\n\n adjustPosition(languageMenuSelector, target) {\n const languagePanel = languageMenuSelector.shadowRoot.querySelectorAll(\n `.menu-language__dropdown`\n )[0] as HTMLElement;\n let headerHeight = \"0\";\n let hyHeader = this.isGroup\n ? (target.closest(\".hy-site-header__content-top\") as HTMLElement)\n : (target.closest(\".hy-site-header\") as HTMLElement);\n\n if (hyHeader) {\n let rectHeader = hyHeader.getBoundingClientRect();\n let rectLangMenu = languageMenuSelector.getBoundingClientRect();\n\n headerHeight = `${languageMenuSelector.offsetHeight + rectHeader.bottom + 8 - rectLangMenu.bottom}px`;\n }\n\n languagePanel.style.top = headerHeight;\n }\n\n async componentWillLoad() {\n this._dataMenuLanguage = await jsonParserWorker(this.dataMenuLanguage);\n this._labels = await jsonParserWorker(this.labels);\n }\n\n render() {\n const black = \"var(--brand-main-nearly-black)\";\n const white = \"var(--grayscale-white)\";\n const svgColor = this.isGroup ? white : black;\n const globeIconSize = this.isGroup ? 16 : 14;\n\n return (\n <div\n class={{\n \"menu-language\": true,\n \"is-open\": this.isMenuOpen,\n \"is-group\": this.isGroup,\n }}\n >\n <button\n class={{\n \"menu-language__toggle\": true,\n }}\n aria-label={this.isMenuOpen ? this._labels[\"close\"] : this._labels[\"open\"]}\n >\n <hy-icon icon={\"hy-icon-globe\"} size={globeIconSize} fill={svgColor} />\n <span>\n {this._dataMenuLanguage.map(({isActive, langCode}) => {\n if (isActive) {\n return langCode;\n }\n })}\n </span>\n <hy-icon icon={\"hy-icon-caret-down\"} size={8} fill={svgColor} />\n </button>\n <div\n class={{\n \"menu-language__dropdown\": true,\n }}\n aria-hidden={`${!this.isMenuOpen}`}\n >\n {this.isMenuOpen &&\n <ul class=\"menu-language__links\">\n {this._dataMenuLanguage.map((item) => {\n return (\n <hy-menu-language-item\n lang-code={item.langCode}\n url={item.url}\n label={item.label}\n abbr={item.abbr}\n is-active={item.isActive}\n is-disabled={item.isDisabled}\n />\n );\n })}\n </ul>\n }\n </div>\n </div>\n );\n }\n}\n",".menu-language__link {\n @include font-size(16px, 24px);\n @include font-weight($semibold);\n color: var(--brand-main-light);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n overflow: hidden;\n text-decoration: none;\n padding: 12px 12px;\n display: block;\n\n &:hover {\n background-color: var(--grayscale-background-box);\n color: var(--brand-main);\n }\n\n &.is-active {\n color: var(--grayscale-black);\n border: 2px solid var(--grayscale-black);\n }\n\n &.is-disabled {\n color: var(--link-disabled);\n\n &:hover {\n background-color: transparent;\n color: var(--link-disabled);\n }\n }\n}\n","import {Component, h, Prop} from \"@stencil/core\";\n\n@Component({\n tag: \"hy-menu-language-item\",\n styleUrl: \"menu-language-item.scss\",\n shadow: true,\n})\nexport class SiteLanguage {\n @Prop() abbr: string;\n @Prop() isActive: boolean = false;\n @Prop() isDisabled: boolean = false;\n @Prop() label: string;\n @Prop() langCode: string;\n @Prop() url: string;\n\n render() {\n return (\n <li class={`menu-language__links-item`}>\n <a\n href={this.url}\n lang={this.langCode}\n class={{\n \"is-active\": this.isActive,\n \"is-disabled\": this.isDisabled,\n \"menu-language__link\": true,\n }}\n >\n {this.label}\n </a>\n </li>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.search-field {\n display: inline-block;\n width: 100%;\n\n @include breakpoint($narrow) {\n min-width: 48.3%;\n }\n\n @include breakpoint($extrawide) {\n min-width: 23.03%;\n }\n}\n\n.search-field__label {\n @include font-size(14px, 20px);\n display: block;\n font-family: var(--main-font-family);\n letter-spacing: -0.44px;\n margin-bottom: 8px;\n position: relative;\n text-decoration: none;\n width: 100%;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n }\n\n &.label-large {\n @include font-size(22px, 28px);\n letter-spacing: -0.7px;\n margin-bottom: 0.75rem;\n\n @include breakpoint($narrow) {\n @include font-size(26px, 32px);\n letter-spacing: -0.8px;\n margin-bottom: 1.25rem;\n }\n }\n\n &.bold {\n @include font-weight($bold);\n }\n}\n\n.search-field__actions {\n align-items: stretch;\n display: flex;\n}\n\n.search-field__wrapper {\n flex-grow: 1;\n position: relative;\n}\n\n.search-field__input {\n @include font-size(16px, 24px);\n border-radius: 0;\n border: 1px solid var(--grayscale-medium-dark);\n caret-color: var(--brand-main-light);\n font-weight: bold;\n height: 40px;\n letter-spacing: normal;\n padding: 8px 12px;\n width: 100%;\n zoom: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n height: 44px;\n }\n\n @include breakpoint($extrawide) {\n height: 48px;\n }\n\n &::placeholder {\n @include font-size(16px, 24px);\n color: var(--grayscale-dark);\n font-weight: normal;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 24px);\n }\n }\n\n &:hover {\n border-color: var(--brand-main-light);\n }\n\n &:focus {\n border-color: var(--brand-main-light);\n border-style: solid inset solid solid;\n border-width: 2px;\n outline: 0;\n }\n}\n\n.search-field__reset {\n align-items: center;\n background-color: transparent;\n border: 0;\n display: inline-flex;\n height: 40px;\n justify-content: center;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 40px;\n\n @include breakpoint($narrow) {\n height: 44px;\n width: 44px;\n }\n\n @include breakpoint($extrawide) {\n height: 48px;\n width: 48px;\n }\n\n svg {\n fill: var(--grayscale-dark);\n\n @include breakpoint($extrawide) {\n height: 16px;\n width: 16px;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n\n &:focus {\n outline-color: var(--brand-main-light);\n }\n}\n\n.search-field__submit {\n align-items: center;\n background-color: var(--brand-main-light);\n border: 0;\n display: inline-flex;\n flex-shrink: 0;\n height: 40px;\n justify-content: center;\n width: 40px;\n\n @include breakpoint($narrow) {\n height: 44px;\n width: 44px;\n }\n\n @include breakpoint($extrawide) {\n height: 48px;\n width: 48px;\n }\n\n svg {\n @include breakpoint($narrow) {\n height: 20px;\n width: 20px;\n }\n\n @include breakpoint($extrawide) {\n height: 22px;\n width: 22px;\n }\n }\n\n &:hover {\n cursor: pointer;\n }\n s &:focus {\n outline-color: var(--brand-main-light);\n }\n}\n","import {Component, Prop, h, State, Element, Host} from \"@stencil/core\";\nimport {ColorVariant} from \"../../utils/utils\";\n\n@Component({\n tag: \"hy-search-field\",\n styleUrl: \"hy-search-field.scss\",\n shadow: false,\n})\nexport class HySearchField {\n @Element() el: HTMLElement;\n @Prop() label: string;\n @Prop() ariaLabel: string = \"Search\";\n @Prop() resetLabel: string = \"Reset\";\n @Prop() isLabelBold: boolean = false;\n @Prop() labelLarge: boolean = false;\n @Prop() isLuomusSearch: boolean = false;\n @Prop() placeholder: string = \"Type here...\";\n @Prop() isLabelHidden?: boolean = false;\n @Prop() inputId: string;\n @Prop() prefillParameter: string = \"\";\n @State() isInputValueEmpty: boolean = true;\n\n componentDidLoad() {\n const searchInput = this.el.querySelector(\".search-field__input\");\n\n searchInput.addEventListener(\"keyup\", (event) => {\n const {value} = event.target as HTMLInputElement;\n\n this.isInputValueEmpty = value.length > 0 ? false : true;\n });\n\n if (this.prefillParameter.length > 0) {\n if (window.location === undefined) return;\n\n const urlParams = new URLSearchParams(window.location.search);\n const searchValue = urlParams.get(`${this.prefillParameter}`);\n const searchInput = this.el.querySelector(\".search-field__input\") as HTMLInputElement;\n searchInput.value = searchValue && searchValue.length > 0 ? searchValue : \"\";\n this.isInputValueEmpty = false;\n }\n }\n\n handleInputReset() {\n this.isInputValueEmpty = true;\n const searchInput = this.el.querySelector(\".search-field__input\") as HTMLInputElement;\n searchInput.value = \"\";\n searchInput.focus();\n }\n\n render() {\n return (\n <Host class=\"search-field\">\n {!this.isLuomusSearch && (\n <label\n htmlFor={this.inputId}\n class={`search-field__label \n ${this.isLabelHidden ? \"visually-hidden\" : \"\"} \n ${this.labelLarge ? \"label-large\" : \"\"} \n ${this.isLabelBold ? \"bold\" : \"\"}`}\n >\n {this.label}\n </label>\n )}\n <div class=\"search-field__actions\">\n <div class=\"search-field__wrapper\">\n {this.isLuomusSearch && (\n <input\n id={this.inputId}\n name=\"search\"\n data-drupal-selector=\"edit-search\"\n value=\"\"\n type=\"text\"\n placeholder={this.placeholder}\n class=\"search-field__input\"\n />\n )}\n {!this.isLuomusSearch && (\n <input id={this.inputId} type=\"text\" placeholder={this.placeholder} class=\"search-field__input\" />\n )}\n {!this.isInputValueEmpty && (\n <button\n type=\"button\"\n class=\"search-field__reset\"\n aria-label={this.resetLabel}\n onClick={() => this.handleInputReset()}\n >\n <hy-icon icon={\"hy-icon-remove\"} size={14} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n {this.isLuomusSearch && (\n <button\n type=\"submit\"\n class=\"search-field__submit\"\n aria-label={this.ariaLabel}\n data-drupal-selector=\"edit-submit-luomus-search\"\n id=\"edit-submit-luomus-search\"\n value=\"Apply\"\n >\n <hy-icon icon={\"hy-icon-search\"} size={18} fill={ColorVariant.white} aria-hidden=\"true\" />\n </button>\n )}\n {!this.isLuomusSearch && (\n <button type=\"submit\" class=\"search-field__submit\" aria-label={this.ariaLabel}>\n <hy-icon icon={\"hy-icon-search\"} size={18} fill={ColorVariant.white} aria-hidden=\"true\" />\n </button>\n )}\n </div>\n </Host>\n );\n }\n}\n",":host {\n display: block;\n}\n\n.hy-site-header {\n background-color: var(--grayscale-white);\n z-index: 100;\n border-bottom: 2px solid var(--grayscale-dark);\n transform: none;\n\n &:not(.is-at-top) {\n top: 0;\n transform: translateY(-100%);\n transition: all 0.2s ease-in-out;\n }\n\n @include breakpoint($extrawide) {\n border-bottom: 1px solid var(--grayscale-black);\n margin: 0 auto;\n max-width: $fullhd;\n }\n\n &.hy-site-header--sticky-active {\n transition: all 0.2s ease-in-out;\n box-shadow: rgba(14, 104, 139, 0.2) 0 20px 20px -20px;\n }\n\n &.hy-site-header--sticky-visible {\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n transform: translateY(0);\n transition: all 0.2s ease-in-out;\n transition-delay: 0.2s;\n\n &.hy-site-header--mobile {\n transform: none;\n }\n\n &.has-toolbar {\n top: 39px;\n\n &--large {\n top: 79px;\n }\n }\n }\n\n &.hy-site-header--sticky-hidden {\n top: 0;\n }\n\n &.is-group {\n hy-desktop-menu-links,\n .hy-site-header__menu-desktop {\n @include breakpoint($extrawide) {\n margin-left: -10px;\n }\n }\n }\n}\n\n.hy-site-header__container {\n padding: 0 8px;\n display: flex;\n justify-content: space-between;\n\n @include breakpoint($extrawide) {\n padding: 0 32px;\n }\n\n &.is-group {\n flex-wrap: wrap;\n justify-content: flex-start;\n\n @include breakpoint($extrawide) {\n min-height: 82px;\n }\n }\n}\n\n.hy-site-header__branding {\n padding: 12px 0;\n\n @include breakpoint($extrawide) {\n padding: 26px 0;\n }\n\n .hy-site-header__content-top & {\n padding: 8px 0;\n\n @include breakpoint($extrawide) {\n padding: 8px 0;\n }\n }\n\n // Research group label\n > p {\n @include font-size(12px, 14px);\n @include font-weight($regular);\n font-family: var(--main-font-family);\n color: var(--grayscale-dark-text);\n letter-spacing: -0.1px;\n margin-bottom: 4px;\n text-transform: uppercase;\n\n + a {\n min-height: auto;\n }\n\n @include breakpoint($extrawide) {\n margin-bottom: 8px;\n }\n }\n\n // Group name link\n > a {\n @include font-size(16px, 16px);\n @include font-weight($bold);\n font-family: var(--main-font-family);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.6px;\n text-transform: uppercase;\n text-decoration: none;\n min-height: 48px;\n display: inline-flex;\n align-items: center;\n\n @include breakpoint($extrawide) {\n @include font-size(26px, 30px);\n letter-spacing: -0.8px;\n min-height: auto;\n }\n\n img {\n height: 100%;\n max-height: 48px;\n\n @include breakpoint($extrawide) {\n transform: translateY(-10px);\n }\n }\n }\n\n // Main container\n .is-group:not(.is-research-group) > & {\n @include breakpoint($extrawide) {\n margin-right: 32px + 10px;\n padding-bottom: 0;\n margin-bottom: -10px;\n }\n }\n}\n\n.hy-site-header__actions {\n display: inline-grid;\n gap: 4px;\n grid-template-columns: repeat(3, auto);\n justify-content: flex-end;\n min-width: 150px;\n\n @include breakpoint($wide) {\n min-width: none;\n }\n\n @include breakpoint($xlarge) {\n gap: 16px;\n }\n}\n\n.hy-site-header__menu-open-button {\n align-items: center;\n display: inline-flex;\n height: 100%;\n justify-content: center;\n width: 44px;\n background-color: transparent;\n border: 0;\n padding: 0;\n margin: 0;\n\n &[aria-expanded=\"true\"] {\n @include font-size(16px, 18px);\n @include font-weight($bold);\n align-items: center;\n background-color: transparent;\n border: none;\n color: var(--brand-main);\n display: inline-flex;\n font-family: var(--main-font-family);\n height: auto;\n letter-spacing: -0.3px;\n margin-left: auto;\n margin-right: -16px;\n padding: 16px;\n position: fixed;\n right: 16px;\n top: 12px;\n z-index: 101;\n width: auto;\n\n &:hover {\n cursor: pointer;\n }\n\n hy-icon {\n margin-left: 8px;\n\n svg {\n fill: var(--brand-main);\n }\n }\n }\n}\n\n.hy-site-header__donate-link {\n @include font-size(12px, 24px);\n @include font-weight($regular);\n display: inline-grid;\n font-family: var(--main-font-family);\n align-items: center;\n gap: 4px;\n grid-template-columns: repeat(2, auto);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.5px;\n padding: 0;\n text-decoration: none;\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 24px);\n }\n\n &:hover {\n color: var(--brand-main);\n cursor: pointer;\n\n svg {\n fill: var(--brand-main);\n }\n }\n\n &:focus {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n\n .hy-site-header__content-top & {\n color: var(--grayscale-white);\n\n svg {\n fill: var(--grayscale-white);\n }\n\n &:hover {\n color: var(--grayscale-medium);\n cursor: pointer;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n}\n\n.hy-site-header__content-top {\n background-color: var(--grayscale-black);\n border-bottom: 2px solid rgb(000, 000, 000, 0.7);\n position: relative;\n}\n\n.hy-backdrop {\n bottom: 0;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n visibility: hidden;\n\n &.is-active {\n background-color: rgba(0, 0, 0, 0.4);\n transition: background-color 300ms;\n visibility: visible;\n z-index: 99;\n }\n\n &.is-active-top {\n background-color: rgba(0, 0, 0, 0.4);\n transition: background-color 300ms;\n visibility: visible;\n z-index: 98;\n }\n}\n\n.hy-site-header__panel {\n background: var(--grayscale-white);\n bottom: 0;\n overflow: hidden;\n position: fixed;\n right: 0;\n top: 0;\n visibility: visible;\n width: 90%;\n z-index: 100;\n\n @include breakpoint($narrow) {\n width: 400px;\n }\n\n &[aria-hidden=\"true\"] {\n visibility: hidden;\n padding: 0;\n width: 0;\n }\n}\n","export interface DesktopLinks {\n label: string;\n url: string;\n menuLinkId: string;\n}\nexport interface DonateLink {\n url: string;\n label: string;\n}\nexport interface ComponentLabels {\n open: string;\n close: string;\n expand?: string;\n label?: string;\n}\n\nlet clickTimer = null;\n\nimport {Component, Element, Event, EventEmitter, Fragment, h, Listen, Prop, State} from \"@stencil/core\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport {MenuType, ColorVariant, SiteLogoSize} from \"../../utils/utils\";\nimport {jsonParserWorker} from \"../../global/globalScript\";\n\nlet clickTimeout = null;\n\n@Component({\n tag: \"hy-site-header\",\n styleUrl: \"site-header.scss\",\n shadow: false,\n})\nexport class SiteHeader {\n @Element() el: HTMLElement;\n @Prop() isGroup: boolean = false;\n @Prop() isLuomusGroup: boolean = false;\n @Prop() isBetaGroup: boolean = false;\n @Prop() researchGroupLabel: string = \"\";\n @Prop() groupType: string = \"\";\n @Prop() groupLogoUrl: string = \"\";\n @Prop() dataMenuLanguage: string;\n @Prop() dataMenuDonate: string;\n @Prop() dataSiteHeaderLabels: string;\n @Prop() dataSiteSearchLabels: string;\n @Prop() logoUrl?: string;\n @Prop() logoLabel?: string;\n @Prop() siteLabel?: string;\n @Prop() siteUrl?: string;\n @Prop() showSearchLabel: boolean = true;\n @Prop() noSearch: boolean = false;\n @Prop() menuLabel: string = \"Menu\";\n @Prop() menuLabelOpen?: string;\n @Prop() menuLabelClose?: string;\n @Prop({reflect: true}) menuType: MenuType = null;\n\n @Prop() dataMainMenuLinks: DesktopLinks[] | string;\n @Prop() dataSearchTools: DesktopLinks[] | string;\n\n @State() isMobile: boolean;\n @State() isMenuOpen: boolean = false;\n @State() isDesktopMenuOpen: boolean = false;\n @State() isDesktopMenuDropdown: boolean = false;\n @State() isTopMenuOpen: boolean = false;\n @State() isBottomVisible: boolean = false;\n @State() isTopVisible: boolean = false;\n\n @Event() headerScrollUp: EventEmitter;\n @Event() headerScrollDown: EventEmitter;\n @Event() menuMobileToggled: EventEmitter;\n @Event() menuMobileTopToggled: EventEmitter;\n\n private ro: ResizeObserver;\n private bottomObserver: IntersectionObserver;\n private topObserver: IntersectionObserver;\n private donateLink: DonateLink[];\n private menuLabels: ComponentLabels[];\n private searchLabels: ComponentLabels[];\n private groupPages: ComponentLabels[];\n private languageLabels: ComponentLabels[];\n\n @State() lastScrollTop = 0;\n @State() delta = 50;\n @State() navbarHeight = 0;\n\n // Listener for toggling mobile menu panel on or off.\n @Listen(\"mobileMenuToggle\") mobileMenuToggle() {\n this.isMenuOpen = !this.isMenuOpen;\n this.menuMobileToggled.emit();\n let bodyElement = document.getElementsByTagName(\"body\")[0] as HTMLElement;\n\n if (this.isMenuOpen) {\n bodyElement.style.overflow = \"hidden\";\n } else {\n bodyElement.style.overflow = \"initial\";\n }\n }\n\n // Listener for toggling mobile menu top panel on or off.\n @Listen(\"mobileMenuTopToggle\") mobileMenuTopToggle() {\n this.isTopMenuOpen = !this.isTopMenuOpen;\n this.menuMobileTopToggled.emit();\n }\n\n @Listen(\"menuToggled\", {target: \"window\"}) mainMenuToggled() {\n this.isDesktopMenuOpen = !this.isDesktopMenuOpen;\n }\n\n @Listen(\"scroll\", {target: \"window\"})\n handleScroll() {\n this.headerScrollHandler();\n }\n\n headerScrollHandler() {\n let topOffset = window.pageYOffset;\n if (Math.abs(this.lastScrollTop - topOffset) <= this.delta) {\n return;\n }\n\n if (topOffset > this.lastScrollTop && !this.isTopVisible) {\n this.toggleStickyness(false);\n this.headerScrollDown.emit();\n }\n // Scrolling up\n if (topOffset < this.lastScrollTop && !this.isTopVisible) {\n this.toggleStickyness();\n this.headerScrollUp.emit();\n }\n // At the top of the page\n if (this.isTopVisible) {\n this.toggleStickyness(false);\n }\n\n this.lastScrollTop = topOffset;\n }\n\n toggleStickyness(toggleOn = true) {\n const bodyElementClasses = document.querySelector(\"body\").classList;\n let hySiteHeader = this.el.querySelector(\".hy-site-header\") as HTMLElement;\n if (!hySiteHeader) return;\n\n this.isTopVisible ? hySiteHeader.classList.add(\"is-at-top\") : hySiteHeader.classList.remove(\"is-at-top\");\n\n if (toggleOn) {\n hySiteHeader.classList.add(\"hy-site-header--sticky-active\", \"hy-site-header--sticky-visible\");\n hySiteHeader.classList.remove(\"hy-site-header--sticky-hidden\");\n\n !this.isBottomVisible && !this.isTopVisible && bodyElementClasses.add(\"sticky-active\");\n\n if (bodyElementClasses.contains(\"toolbar-horizontal\")) {\n hySiteHeader.classList.add(\"has-toolbar\");\n\n if (bodyElementClasses.contains(\"toolbar-tray-open\")) {\n hySiteHeader.classList.add(\"has-toolbar--large\");\n }\n }\n }\n\n if (!toggleOn) {\n hySiteHeader.classList.remove(\n \"hy-site-header--sticky-active\",\n \"hy-site-header--sticky-visible\",\n \"hy-site-header--sticky-hidden\",\n \"has-toolbar\",\n \"has-toolbar--large\"\n );\n bodyElementClasses.remove(\"sticky-active\");\n }\n }\n\n componentDidLoad() {\n // Set the browser resize observer to gather information about browser width.\n this.ro = new ResizeObserver((entries) => {\n for (const entry of entries) {\n this.applySizeClasses(entry.contentRect.width);\n }\n });\n this.ro.observe(document.body);\n\n const topOptions = {\n root: null,\n rootMargin: \"250px\",\n threshold: [0.0, 1.0],\n };\n\n this.topObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.target.nodeName === \"HEADER\") {\n this.isTopVisible = entry.isIntersecting;\n }\n });\n }, topOptions);\n\n const header = document.querySelector(\"header\");\n if (header) {\n this.topObserver.observe(header);\n }\n\n const bottomOptions = {\n root: null,\n rootMargin: \"0px\",\n threshold: [0.0, 1.0],\n };\n\n this.bottomObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.target.nodeName === \"HEADER\") {\n this.isTopVisible = entry.isIntersecting;\n }\n });\n }, bottomOptions);\n\n const footer = document.querySelector(\"hy-footer\");\n if (footer) {\n this.bottomObserver.observe(footer);\n }\n\n // Pass the dataMenuLanguage prop to menu component.\n this.el.children[0].setAttribute(\"data-menu-language\", this.dataMenuLanguage);\n this.navbarHeight = 120;\n const body = document.querySelector(\"body\");\n body.style.setProperty(\"--nav-height\", `${this.navbarHeight * 2}px`);\n }\n\n async componentWillLoad() {\n // Check for site header labels and set them to variables accordingly.\n if (this.dataSiteHeaderLabels) {\n const labels = await jsonParserWorker(this.dataSiteHeaderLabels);\n this.menuLabels = labels.menu_labels;\n this.languageLabels = labels.language_labels;\n this.searchLabels = labels.search_labels;\n this.groupPages = labels.group_pages;\n\n this.el.children[0].setAttribute(\"menu-button-breadcrumb-logourl\", this.logoUrl);\n }\n\n // Check for the donation link information and set it to variables accordingly.\n // Also pass the donation link data to menu-component.\n if (this.dataMenuDonate) {\n this.donateLink = await jsonParserWorker(this.dataMenuDonate);\n this.el.children[0].setAttribute(\"data-menu-donate\", this.dataMenuDonate);\n }\n // Pass the necessary information to menu component. These props will be\n // used in mobile menu.\n this.el.children[0].setAttribute(\"open\", this.isMenuOpen.toString());\n this.el.children[0].setAttribute(\"logo-label\", this.logoLabel);\n this.el.children[0].setAttribute(\"logo-url\", this.logoUrl);\n this.el.children[0].setAttribute(\"site-label\", this.siteLabel);\n this.el.children[0].setAttribute(\"site-url\", this.siteUrl);\n this.el.children[0].setAttribute(\"menu-button-breadcrumb-logourl\", this.logoUrl);\n this.el.children[0].setAttribute(\"menu-language-label-open\", this.languageLabels[\"open\"]);\n this.el.children[0].setAttribute(\"menu-language-label-close\", this.languageLabels[\"close\"]);\n this.el.children[0].setAttribute(\"label-front-page\", this.menuLabels[\"front_page\"]);\n\n if (this.groupType !== \"\") {\n this.isDesktopMenuDropdown = true;\n }\n }\n\n disconnectedCallback() {\n clearTimeout(clickTimer);\n this.ro.disconnect();\n this.topObserver.disconnect();\n this.bottomObserver.disconnect();\n clearTimeout(clickTimeout);\n }\n\n applySizeClasses(size: number) {\n // Set the menu-type based on the width of the browser.\n size <= 1200 ? (this.menuType = MenuType.mobile) : (this.menuType = MenuType.desktop);\n\n // Pass the menu type to menu component.\n this.isMobile = this.menuType === (MenuType.mobile || MenuType.tablet);\n const menuAttribute = this.menuType;\n this.el.children[0].setAttribute(\"menu-type\", menuAttribute);\n }\n\n render() {\n if (this.menuType === null) return;\n\n const logoSize = this.isMobile ? SiteLogoSize.small : SiteLogoSize.big;\n const logoSizeGroup = this.isMobile ? SiteLogoSize.small : SiteLogoSize.small;\n const logoColor = ColorVariant.black;\n const logoColorGroup = ColorVariant.white;\n\n let classAttributes = [\n \"hy-site-header\",\n `hy-site-header--${this.menuType}`,\n this.isGroup ? \"is-group\" : \"\",\n \"is-at-top\",\n ];\n\n const toggleMenuMobileAndRemoveListener = () => {\n window.removeEventListener(\"click\", handleClickOutside);\n this.mobileMenuToggle();\n };\n\n const handleClickOutside = (event: MouseEvent) => {\n const [targetElement] = event.composedPath() as HTMLElement[];\n if (targetElement.classList.contains(\"hy-backdrop\")) {\n toggleMenuMobileAndRemoveListener();\n }\n };\n\n if (this.isMenuOpen) {\n window.addEventListener(\"click\", () => {\n clearTimeout(clickTimeout);\n clickTimeout = setTimeout(() => {\n handleClickOutside;\n }, 250);\n });\n }\n\n let activeLang = \"en\";\n let dataMenuLanguageArray = JSON.parse(this.dataMenuLanguage);\n dataMenuLanguageArray.forEach((lang) => {\n if (lang.isActive) {\n activeLang = lang.langCode;\n }\n });\n\n switch (this.menuType) {\n case MenuType.desktop:\n // Larger than 1200px screens\n return [\n <header class={`${classAttributes.join(\" \")}`}>\n <div\n class={{\n \"hy-backdrop\": true,\n \"is-active\":\n (this.isMenuOpen && !this.isDesktopMenuDropdown) ||\n (this.isTopMenuOpen && !this.isDesktopMenuDropdown),\n }}\n />\n {this.isGroup && (\n <section class={`hy-site-header__content-top ${this.isTopMenuOpen ? \"is-open\" : \"\"}`}>\n <div class=\"hy-site-header__container\">\n <div class=\"hy-site-header__branding\">\n <hy-site-logo\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n size={logoSizeGroup}\n color={logoColorGroup}\n url={this.siteUrl}\n label={this.siteLabel}\n />\n </div>\n {this.dataMainMenuLinks.length > 2 && (\n <hy-menu-main-group\n tabindex=\"0\"\n is-mobile={false}\n menu-label={this.groupPages[\"university_main_menu\"] ?? null}\n data-main-menu={this.dataMainMenuLinks}\n menu-label-close={this.menuLabelClose}\n />\n )}\n <div class=\"hy-site-header__actions\">\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} isGroup />\n {!this.noSearch && (\n <hy-site-search\n class={\"menu--secondary__item group\"}\n size={18}\n color={logoColorGroup}\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n {this.donateLink.map(({label, url}) => {\n return (\n <a class={\"hy-site-header__donate-link\"} href={url}>\n <hy-icon icon={\"hy-icon-heart-support\"} size={14} fill={ColorVariant.black} />\n <span>{label}</span>\n </a>\n );\n })}\n </div>\n </div>\n </section>\n )}\n <section\n class={`hy-site-header__container ${this.isGroup ? \"is-group\" : \"\"} ${\n this.groupType === \"research_group_menu\" ? \"is-research-group\" : \"\"\n }`}\n >\n <div class={\"hy-site-header__branding\"}>\n {this.isGroup && this.groupType == \"research_group_menu\" && <p>{this.researchGroupLabel}</p>}\n {this.isGroup ? (\n <a href={this.logoUrl}>\n {this.groupType == \"generic_site_group_menu\" && this.groupLogoUrl ? (\n <img src={this.groupLogoUrl} alt={`${this.logoLabel} logo`} />\n ) : (\n this.logoLabel\n )}\n </a>\n ) : (\n <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />\n )}\n </div>\n {this.groupType != \"research_group_menu\" && <slot name=\"menu\"></slot>}\n {!this.isGroup && (\n <div class=\"hy-site-header__actions\">\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} />\n {!this.noSearch && (\n <hy-site-search\n size={14}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n color={ColorVariant.black}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n {this.donateLink.map(({label, url}) => {\n return (\n <a class={\"hy-site-header__donate-link\"} href={url}>\n <hy-icon icon={\"hy-icon-heart-support\"} size={14} fill={ColorVariant.black} />\n <span>{label}</span>\n </a>\n );\n })}\n </div>\n )}\n </section>\n </header>,\n ];\n\n case MenuType.mobile:\n // Smaller than 960px screens\n return (\n <header class={classAttributes.join(\" \")} data-menu-active={this.isMenuOpen}>\n <div class={{\"hy-backdrop\": true, \"is-active\": this.isMenuOpen}} />\n <div class={{\"hy-backdrop\": true, \"is-active-top\": this.isTopMenuOpen}} />\n {this.isGroup && (\n <section class={`hy-site-header__content-top ${this.isTopMenuOpen ? \"is-open\" : \"\"}`}>\n <div class=\"hy-site-header__container\">\n <div class=\"hy-site-header__branding\">\n <hy-site-logo\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n size={logoSizeGroup}\n color={logoColorGroup}\n url={this.siteUrl}\n label={this.siteLabel}\n />\n </div>\n <div class=\"hy-site-header__actions\">\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} isGroup />\n {!this.noSearch && (\n <hy-site-search\n class={\"menu--secondary__item group\"}\n size={18}\n color={logoColorGroup}\n is-group={true}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n {this.dataMainMenuLinks.length > 2 && (\n <hy-menu-main-group\n site-label={this.siteLabel}\n site-url={this.siteUrl}\n logo-label={this.logoLabel}\n logo-url={this.logoUrl}\n is-mobile={true}\n donate={this.donateLink}\n data-main-menu={this.dataMainMenuLinks}\n />\n )}\n </div>\n </div>\n </section>\n )}\n <section class=\"hy-site-header__container\">\n <div class={\"hy-site-header__branding\"}>\n {this.groupType == \"research_group_menu\" && <p>{this.researchGroupLabel}</p>}\n {this.isGroup ? (\n <a href={this.logoUrl}>\n {this.groupType == \"generic_site_group_menu\" && this.groupLogoUrl ? (\n <img src={this.groupLogoUrl} alt={`${this.logoLabel} logo`} />\n ) : (\n this.logoLabel\n )}\n </a>\n ) : (\n <hy-site-logo size={logoSize} color={logoColor} url={this.logoUrl} label={this.logoLabel} />\n )}\n </div>\n <div class=\"hy-site-header__actions\">\n {!this.isGroup && (\n <hy-menu-language data-menu-language={this.dataMenuLanguage} labels={this.languageLabels} />\n )}\n {!this.isGroup && !this.noSearch && (\n <hy-site-search\n size={24}\n color={ColorVariant.black}\n is-luomus-group={this.isLuomusGroup}\n is-beta-group={this.isBetaGroup}\n search-language={activeLang}\n show-label={this.showSearchLabel}\n labels={this.searchLabels}\n search-labels={this.dataSiteSearchLabels}\n search-tools={this.dataSearchTools}\n />\n )}\n <button\n onClick={() => toggleMenuMobileAndRemoveListener()}\n class={`hy-site-header__menu-open-button`}\n aria-label={this.isMenuOpen ? this.menuLabels[\"close\"] : this.menuLabels[\"open\"]}\n aria-expanded={`${this.isMenuOpen}`}\n >\n {!this.isMenuOpen && <hy-icon icon={\"hy-icon-hamburger\"} size={24} fill={ColorVariant.black} />}\n {this.isMenuOpen && (\n <Fragment>\n <span>{this.menuLabelClose}</span>\n <hy-icon icon={\"hy-icon-remove\"} size={16} />\n </Fragment>\n )}\n </button>\n </div>\n <div\n class={{\n \"is-open\": this.isMenuOpen,\n \"hy-site-header__panel\": true,\n }}\n aria-hidden={`${!this.isMenuOpen}`}\n >\n <slot name={\"menu_mobile\"} />\n </div>\n </section>\n </header>\n );\n }\n }\n}\n",":host {\n --site-logo-color: var(--brand-main-nearly-black);\n}\n\n:host(.hy-site-logo--mobile) {\n --site-logo-color: var(--brand-main-nearly-black);\n}\n\n.hy-site-logo {\n a,\n div.luomus-group {\n align-items: center;\n display: flex;\n text-decoration: none;\n\n &:focus {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n }\n\n &__label {\n @include font-size(14px, 14px);\n @include font-weight($bold);\n color: var(--site-logo-color);\n font-family: var(--main-font-family);\n letter-spacing: -0.7px;\n margin-left: 8px;\n max-width: 90px;\n text-transform: uppercase;\n\n .hy-site-header__branding & {\n @include breakpoint($narrow) {\n min-width: min-content;\n max-width: max-content;\n white-space: nowrap;\n }\n\n @include breakpoint($extrawide) {\n min-width: min-content;\n max-width: 90px;\n white-space: initial;\n }\n\n @include breakpoint($xlarge) {\n min-width: min-content;\n max-width: max-content;\n white-space: nowrap;\n }\n }\n\n @include breakpoint($narrow) {\n @include font-size(15px, 16px);\n letter-spacing: -0.75px;\n margin-left: 6px;\n }\n\n @include breakpoint($extrawide) {\n @include font-size(14px, 14px);\n letter-spacing: -0.6px;\n margin-left: 4px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(16px, 16px);\n letter-spacing: -0.7px;\n margin-left: 4px;\n }\n\n &.group {\n @include font-size(12px, 14px);\n color: var(--grayscale-white);\n letter-spacing: -0.6px;\n margin-left: 3px;\n\n @include breakpoint($wide) {\n @include font-size(14px, 14px);\n letter-spacing: -0.7px;\n }\n\n @include breakpoint($xlarge) {\n margin-left: 8px;\n }\n }\n }\n\n &__icon {\n &.group {\n svg {\n height: 32px !important;\n width: 33.41px;\n }\n }\n\n &:not(.group) svg {\n height: 32px;\n width: 33.41px;\n\n @include breakpoint($narrow) {\n height: 48px;\n width: 51px;\n }\n\n @include breakpoint($xlarge) {\n height: 60px;\n width: 64px;\n }\n }\n }\n\n &__header {\n //&:hover {\n &__page {\n &:hover {\n color: var(--brand-main);\n\n a,\n span {\n color: var(--brand-main) !important;\n }\n\n svg {\n fill: var(--brand-main);\n }\n }\n }\n &__group:not(.luomus) {\n &:hover {\n color: var(--grayscale-medium);\n\n a,\n span {\n color: var(--grayscale-medium) !important;\n }\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n }\n\n &__footer {\n &:hover {\n span {\n color: var(--grayscale-medium) !important;\n }\n svg {\n fill: var(--grayscale-medium) !important;\n }\n }\n }\n}\n\n.hy-site-header__logo-container {\n a.group {\n @include font-size(14px, 16px);\n @include font-weight($bold);\n\n color: var(--grayscale-black);\n font-family: var(--main-font-family);\n letter-spacing: -0.5px;\n text-decoration: none;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(24px, 28px);\n letter-spacing: -0.8px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(26px, 30px);\n }\n }\n}\n","import {Component, h, Host, Prop} from \"@stencil/core\";\nimport {ColorVariant, FooterVariant, SiteLogoSize} from \"../../../utils/utils\";\n\n@Component({\n tag: \"hy-site-logo\",\n styleUrl: \"site-logo.scss\",\n shadow: false,\n})\nexport class SiteLogo {\n @Prop() type: FooterVariant = FooterVariant.header;\n @Prop() color: ColorVariant = ColorVariant.black;\n @Prop() isGroup: boolean = false;\n @Prop() isLuomusGroup: boolean = false;\n @Prop() label?: string;\n @Prop() size: SiteLogoSize = SiteLogoSize.big;\n @Prop() url?: string;\n\n render() {\n const isGroupClass = this.isGroup ? \"group\" : \"page\";\n // const isLuomusGroupClass = this.isLuomusGroup ? 'luomus' : 'regular';\n const classAttributes = [\n \"hy-site-logo\",\n `hy-site-logo__${this.type}__${isGroupClass}`,\n `hy-site-logo__${this.type}`,\n \"luomus\",\n ].join(\" \");\n\n return this.url ? (\n <Host class={classAttributes}>\n {!this.isLuomusGroup && (\n <a href={this.url}>\n <hy-icon\n class={{\"hy-site-logo__icon\": true, group: this.isGroup}}\n icon={\"hy-icon-hy-logo\"}\n size={this.size}\n fill={this.color}\n />\n <span class={{\"hy-site-logo__label\": true, group: this.isGroup}} style={{color: this.color}}>\n {this.label}\n </span>\n </a>\n )}\n {this.isLuomusGroup && (\n <div class=\"luomus-group\">\n <hy-icon\n class={{\"hy-site-logo__icon\": true, group: this.isGroup}}\n icon={\"hy-icon-hy-logo\"}\n size={this.size}\n fill={this.color}\n />\n <span class={{\"hy-site-logo__label\": true, group: this.isGroup}} style={{color: this.color}}>\n {this.label}\n </span>\n </div>\n )}\n </Host>\n ) : this.label ? (\n <Host class={classAttributes}>\n <hy-icon\n class={{\"hy-site-logo__icon\": true, group: this.isGroup}}\n icon={\"hy-icon-hy-logo\"}\n size={this.size}\n fill={this.color}\n />\n <span class={{\"hy-site-logo__label\": true, group: this.isGroup}} style={{color: this.color}}>\n {this.label}\n </span>\n </Host>\n ) : (\n \"\"\n );\n }\n}\n",".button--search {\n @include font-size(12px, 24px);\n @include font-weight($regular);\n align-items: center;\n background: transparent;\n border: 0 none;\n color: var(--brand-main-nearly-black);\n display: inline-flex;\n flex-direction: row;\n font-family: var(--main-font-family);\n height: 100%;\n justify-content: center;\n letter-spacing: -0.5px;\n width: 44px;\n\n @include breakpoint($extrawide) {\n display: inline-grid;\n grid-template-columns: repeat(2, auto);\n gap: 4px;\n width: auto;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(14px, 24px);\n }\n\n &:hover:not([disabled]) {\n color: var(--brand-main);\n cursor: pointer;\n\n svg {\n fill: var(--brand-main);\n }\n }\n\n &:focus:not([disabled]) {\n outline: solid 2px var(--additional-yellow);\n outline-offset: 2px;\n }\n\n &.is-active,\n &[aria-expanded=\"true\"] {\n position: relative;\n\n &:after {\n content: \"\";\n position: absolute;\n height: 4px;\n right: 0;\n bottom: -1px;\n left: 0;\n background-color: var(--grayscale-black);\n }\n }\n\n .is-group & {\n color: var(--grayscale-white);\n\n &:hover:not([disabled]) {\n color: var(--grayscale-medium);\n cursor: pointer;\n\n svg {\n fill: var(--grayscale-medium);\n }\n }\n }\n\n &.is-open--menu {\n position: absolute;\n right: 50px;\n top: 15px;\n z-index: 101;\n }\n}\n\n.button--search__label {\n display: none;\n visibility: hidden;\n\n @include breakpoint($extrawide) {\n display: block;\n visibility: visible;\n order: 2;\n }\n}\n\n.site-search {\n height: 100%;\n\n &__panel {\n display: none;\n &__is-open {\n background-color: rgba(0, 0, 0, 0.5);\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n display: flex;\n flex-direction: column;\n font-family: var(--main-font-family);\n left: 0;\n height: 100vh;\n position: absolute;\n width: 100%;\n z-index: 520;\n }\n\n &__title {\n &__group {\n align-items: baseline;\n display: flex;\n flex-direction: column;\n\n @include breakpoint($wide) {\n align-items: baseline;\n flex-direction: row;\n justify-content: flex-start;\n }\n }\n\n .panel-title {\n @include font-size(32px, 32px);\n @include font-weight($bold);\n color: var(--grayscale-black);\n letter-spacing: -1px;\n margin-bottom: 12px;\n margin-top: 20px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(46px, 48px);\n letter-spacing: -1.5px;\n margin-top: 24px;\n }\n @include breakpoint($xlarge) {\n @include font-size(52px, 54px);\n letter-spacing: -1.6px;\n }\n }\n .description {\n @include font-size(12px, 16px);\n color: var(--grayscale-black);\n letter-spacing: -0.2px;\n margin-bottom: 16px;\n padding: 0;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 22px);\n letter-spacing: -0.1px;\n margin-bottom: 18px;\n }\n @include breakpoint($wide) {\n @include font-size(18px, 24px);\n letter-spacing: -0.1px;\n padding-left: 8px;\n }\n @include breakpoint($xlarge) {\n @include font-size(20px, 28px);\n letter-spacing: -0.2px;\n padding-left: 12px;\n }\n }\n }\n\n &__content {\n background-color: #f8f8f8;\n width: 100%;\n }\n\n &__space-box {height: 100%;width:100%;}\n\n &__wrapper {\n margin: 0 auto;\n max-width: 100%;\n padding: 0 1rem 2rem;\n width: 100%;\n\n @include breakpoint($narrow) {\n max-width: 1216px;\n padding: 0 0 2rem;\n }\n @include breakpoint($xlarge) {\n padding: 0 0 4rem;\n }\n }\n\n &__panel-toggle {\n background-color: transparent;\n border: none;\n position: absolute;\n right: 1rem;\n top: 25px;\n\n @include breakpoint($narrow) {\n right: 2rem;\n top: 36px;\n }\n @include breakpoint($xlarge) {\n top: 45px;\n }\n\n &__label {\n @include font-size(14px, 22px);\n @include font-weight($bold);\n align-items: center;\n color: var(--grayscale-black);\n display: flex;\n letter-spacing: -0.44px;\n text-transform: uppercase;\n\n &__title {\n padding-right: 8px;\n }\n\n @include breakpoint($xlarge) {\n @include font-size(18px, 22px);\n letter-spacing: -0.56px;\n }\n }\n\n &:focus:not([disabled]),\n &:hover:not([disabled]) {\n cursor: pointer;\n span {\n color: var(--brand-main);\n }\n svg {\n fill: var(--brand-main);\n }\n }\n }\n\n &__tools {\n .title {\n @include font-size(16px, 20px);\n @include font-weight($bold);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.5px;\n text-transform: uppercase;\n\n @include breakpoint($narrow) {\n @include font-size(18px, 24px);\n letter-spacing: -0.56px;\n margin: 32px 0 16px;\n }\n }\n\n .list {\n a.search-special-tool {\n align-items: center;\n background-color: var(--grayscale-white);\n display: flex;\n margin-bottom: 8px;\n text-decoration: none;\n\n .label {\n @include font-size(14px, 16px);\n @include font-weight($bold);\n color: var(--brand-main-nearly-black);\n letter-spacing: -0.44px;\n padding-left: 8px;\n\n @include breakpoint($narrow) {\n @include font-size(16px, 20px);\n letter-spacing: -0.5px;\n padding-left: 12px;\n }\n }\n .description {\n display: none;\n @include breakpoint($wide) {\n @include font-size(14px, 18px);\n color: var(--grayscale-dark);\n display: flex;\n letter-spacing: -0.2px;\n padding-left: 12px;\n }\n @include breakpoint($xlarge) {\n @include font-size(16px, 24px);\n color: var(--grayscale-dark);\n display: flex;\n letter-spacing: 0;\n padding-left: 12px;\n }\n }\n\n hy-icon {\n height: 40px;\n width: 40px;\n\n svg {\n background-color: var(--brand-main-light);\n fill: var(--grayscale-white);\n height: 40px;\n padding: 8px;\n width: 40px;\n }\n }\n }\n }\n }\n }\n}\n","export interface SearchTools {\n label: string;\n url: string;\n description: string;\n menuLinkId: string;\n isExternal: string;\n}\n\nexport interface SearchLabels {\n label?: string;\n}\n\ndeclare global {\n interface Window {\n CludoSayt: any;\n }\n}\n\nimport {Component, Prop, h, State, Listen, Event, EventEmitter, Element} from \"@stencil/core\";\nimport {ComponentLabels} from \"../site-header\";\nimport {ColorVariant} from \"../../../utils/utils\";\nimport {jsonParserWorker} from \"../../../global/globalScript\";\n\n@Component({\n tag: \"hy-site-search\",\n styleUrl: \"site-search.scss\",\n shadow: true,\n})\nexport class SiteSearch {\n @Element() el: HTMLElement;\n\n @Prop() color: ColorVariant = ColorVariant.black;\n @Prop() isAlternative: boolean = false;\n @Prop() isGroup: boolean = false;\n @Prop() isLuomusGroup: boolean = false;\n @Prop() isBetaGroup: boolean = false;\n @Prop() searchLanguage: string;\n @Prop() labels?: ComponentLabels[] | string;\n @Prop() searchLabels: string;\n @Prop() searchTools: string;\n private _searchTools: SearchTools[];\n\n @Prop() showLabel: boolean = false;\n @Prop() size: number;\n @Prop() dataSearchSpecialTools: string;\n\n private _searchLabels: SearchLabels[];\n private searchTitleLabel: string;\n private searchCloseLabel: string;\n private searchToolsLabel: string;\n private searchDescriptionLabel: string;\n\n @State() isSearchPanelOpen: boolean = false;\n @Event() searchPanelToggled: EventEmitter;\n\n private _labels: ComponentLabels[];\n\n async componentWillLoad() {\n this._labels = await jsonParserWorker(this.labels);\n // Special search tools.\n if (this.searchTools) {\n this._searchTools = await jsonParserWorker(this.searchTools);\n }\n\n if (this.searchLabels) {\n this._searchLabels = await jsonParserWorker(this.searchLabels);\n\n this.searchTitleLabel = this._searchLabels[\"search_label\"];\n this.searchCloseLabel = this._searchLabels[\"search_close_label\"];\n this.searchToolsLabel = this._searchLabels[\"search_tools_label\"];\n this.searchDescriptionLabel = this._searchLabels[\"search_description\"];\n }\n }\n\n // CLose the search panel if user opens the any other dropdown in header.\n // Do same if user scrolls up or down;\n @Listen(\"menuMobileToggled\", {target: \"document\"})\n @Listen(\"menuDesktopToggled\", {target: \"document\"})\n @Listen(\"menuLanguageToggled\", {target: \"document\"})\n @Listen(\"universityMainMenuToggled\", {target: \"document\"})\n @Listen(\"menuToggled\", {target: \"window\"})\n @Listen('headerScrollUp', {target: 'document'})\n @Listen('headerScrollDown', {target: 'document'})\n closePanelWhenOtherDropdownsTriggered() {\n this.closeSearchPanel();\n }\n\n\n @Listen(\"click\", {target: 'window'})\n handleWindowClick(event) {\n // Check if event is being fired during pressing a key (event.detail==0 in this case)\n if (event.detail == 0) return;\n\n if (this.isSearchPanelOpen) {\n const path = event.path || (event.composedPath && event.composedPath());\n\n if ((path[0] as HTMLElement).classList.contains(\"hy-backdrop\")) {\n this.closeSearchPanel();\n event.stopPropagation();\n }\n }\n }\n\n\n closeSearchPanel() {\n this.isSearchPanelOpen = false;\n\n let cludoSayt = document.querySelectorAll(\"stencil-cludo-sayt\")[0] as HTMLElement;\n if (cludoSayt) {\n let CludoSayt = window.CludoSayt;\n if (typeof CludoSayt !== \"undefined\") {\n CludoSayt.hide();\n }\n }\n\n //this.showBackdropShadow();\n }\n\n handleSearchPanelToggle(event) {\n // What is this??\n // TODO: Cleanup\n if (this.isLuomusGroup) {\n let beta = this.isBetaGroup ? \"/beta\" : \"\";\n let luomus_search_url = \"/\" + this.searchLanguage + beta + \"/luomus/search-results\";\n if (this.searchLanguage == \"fi\") {\n luomus_search_url = \"/\" + this.searchLanguage + beta + \"/luomus/hakutulokset\";\n } else if (this.searchLanguage == \"sv\") {\n luomus_search_url = \"/\" + this.searchLanguage + beta + \"/luomus/sokresultat\";\n } else if (this.searchLanguage == \"ru\") {\n luomus_search_url = \"/\" + this.searchLanguage + beta + \"/luomus/rezultaty-poiska\";\n }\n location.href = luomus_search_url;\n } else {\n this.isSearchPanelOpen = !this.isSearchPanelOpen;\n\n if (this.isSearchPanelOpen) {\n // Close desktop menu panel and lang menu panel if they are open.\n this.searchPanelToggled.emit();\n\n //this.adjustPosition(this.el);\n\n // Remove hidden class from cludo suggestions\n let cludoSayt = document.querySelectorAll(\"stencil-cludo-sayt\")[0] as HTMLElement;\n if (cludoSayt) {\n const cludoSearchContentFormElement = this.el.shadowRoot.querySelector(\n \"#cludo-search-content-form\"\n ) as HTMLElement;\n cludoSayt.classList.remove(\"hidden\");\n cludoSearchContentFormElement?.append(cludoSayt);\n (cludoSayt.shadowRoot.querySelector(\"#cludo-reli-flexi-wrapper\") as HTMLElement).style.position = \"relative\";\n (cludoSayt.shadowRoot.querySelector(\"#cludo-reli-flexi\") as HTMLElement).style.position = \"relative\";\n (cludoSayt.shadowRoot.querySelector(\"#cludo-reli-flexi\") as HTMLElement).style.maxWidth = \"none\";\n }\n\n // Without setTimeout it will not focus the input because it hasn't rendered yet.\n setTimeout(() => {\n const searchInput = this.el.shadowRoot.querySelector(\"input#search\") as HTMLElement;\n searchInput?.focus();\n });\n } else {\n this.closeSearchPanel();\n }\n }\n\n event.stopPropagation();\n }\n\n render() {\n const currentPageUrlPathName = window.location.pathname;\n const searchPagePathNames = [\"/fi/haku\", \"/en/search\", \"/sv/sök\"];\n\n return (\n <div\n class={{\n \"site-search\": true,\n \"site-search__is-open\": this.isSearchPanelOpen,\n \"is-group\": this.isGroup,\n }}\n >\n <button\n aria-label={this.showLabel ? this._labels[\"open\"] : \"\"}\n aria-expanded={`${this.isSearchPanelOpen}`}\n class={{\n \"button--search\": true,\n \"is-open--menu\": this.isAlternative,\n \"is-open\": this.isSearchPanelOpen,\n \"is-active\": searchPagePathNames.some((item) => item === currentPageUrlPathName),\n }}\n onClick={(e) => this.handleSearchPanelToggle(e)}\n disabled={searchPagePathNames.some((item) => item === currentPageUrlPathName) ? true : false}\n >\n {this.showLabel ? (\n <span class={{\"button--search__label\": true, \"button--search__label__group\": this.isGroup}}>\n {this._labels[\"label\"]}\n </span>\n ) : (\n \"\"\n )}\n <hy-icon icon={\"hy-icon-search\"} size={this.size} fill={this.color} />\n </button>\n {(!this.isLuomusGroup && this.isSearchPanelOpen) && (\n <div\n class={{\n \"site-search__panel\": true,\n \"site-search__panel__is-open\": this.isSearchPanelOpen,\n }}\n aria-hidden={`${!this.isSearchPanelOpen}`}\n >\n <div class=\"site-search__panel__content\">\n <div class=\"site-search__panel__wrapper\">\n <div class=\"site-search__panel__title\">\n <div class=\"site-search__panel__title__group\">\n <span class=\"panel-title\">{this.searchTitleLabel}</span>\n <div class=\"description\">{this.searchDescriptionLabel}</div>\n </div>\n </div>\n <div id=\"cludo-search-results\" class=\"container_12\">\n <div class=\"search-banner\"></div>\n <div class=\"search-filters search-filters-mobile\"></div>\n\n <div class=\"col-md-12\">\n <div style={{margin: \"20px 0 32px\"}} id=\"cludo-search-content-form\">\n <hy-search-field input-id=\"search\" label=\"\"></hy-search-field>\n </div>\n </div>\n\n <div class=\"col-md-3\">\n <div class=\"search-filters\" aria-controls=\"search-results\"></div>\n </div>\n <div class=\"col-md-9\">\n <div class=\"search-results-container\">\n <hy-paragraph-text>\n <div class=\"search-result-count\"></div>\n </hy-paragraph-text>\n <div class=\"search-did-you-mean\" role=\"Complementary\"></div>\n <div class=\"search-results\" role=\"region\" id=\"search-results\" aria-live=\"polite\"></div>\n </div>\n </div>\n </div>\n\n {this._searchTools && this._searchTools.length > 0 && (\n <div class=\"site-search__panel__tools\">\n <div class=\"title\">{this.searchToolsLabel}</div>\n <div class=\"list\">\n {this._searchTools.map((i) => {\n let searchToolTarget = i.isExternal ? \"_blank\" : \"_self\";\n return (\n <a class=\"search-special-tool\" href={i.url} target={searchToolTarget}>\n <hy-icon icon={\"hy-icon-arrow-to-right\"} size={14} fill={ColorVariant.black} />\n <span class=\"label\">{i.label}</span>\n <span class=\"description\">{i.description}</span>\n </a>\n );\n })}\n </div>\n </div>\n )}\n <button\n onClick={() => this.closeSearchPanel()}\n class={{\n \"site-search__panel__panel-toggle\": true,\n }}\n aria-label={this.searchCloseLabel}\n aria-expanded={`${this.isSearchPanelOpen}`}\n >\n <span class=\"site-search__panel__panel-toggle__label\">\n <span class=\"site-search__panel__panel-toggle__label__title\" tabindex=\"0\">\n {this.searchCloseLabel}\n </span>\n <hy-icon icon={\"hy-icon-remove\"} size={16} fill={ColorVariant.black} />\n </span>\n </button>\n </div>\n <div class=\"site-search__panel__space-box\" onClick={() => this.closeSearchPanel()}></div>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}