@itcenteratunihelsinki/huds-lib 0.8.61 → 0.8.63

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 (44) hide show
  1. package/components/hy-hero-carousel.js +328 -1
  2. package/components/hy-hero-carousel.js.map +1 -1
  3. package/components/hy-menu-main-group2.js +20 -27
  4. package/components/hy-menu-main-group2.js.map +1 -1
  5. package/components/menu-language.js +4 -3
  6. package/components/menu-language.js.map +1 -1
  7. package/components/site-search.js +14 -78
  8. package/components/site-search.js.map +1 -1
  9. package/dist/cjs/huds-lib.cjs.js +1 -1
  10. package/dist/cjs/hy-breadcrumbs_15.cjs.entry.js +17 -80
  11. package/dist/cjs/hy-breadcrumbs_15.cjs.entry.js.map +1 -1
  12. package/dist/cjs/hy-hero-carousel.cjs.entry.js +328 -1
  13. package/dist/cjs/hy-hero-carousel.cjs.entry.js.map +1 -1
  14. package/dist/cjs/hy-menu-main-group.cjs.entry.js +19 -26
  15. package/dist/cjs/hy-menu-main-group.cjs.entry.js.map +1 -1
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/collection/components/hy-hero-carousel/hy-hero-carousel.js +5 -2
  18. package/dist/collection/components/hy-hero-carousel/hy-hero-carousel.js.map +1 -1
  19. package/dist/collection/components/hy-navigation/hy-menu-main-group/hy-menu-main-group.js +24 -31
  20. package/dist/collection/components/hy-navigation/hy-menu-main-group/hy-menu-main-group.js.map +1 -1
  21. package/dist/collection/components/hy-navigation/menu-language/menu-language.js +4 -3
  22. package/dist/collection/components/hy-navigation/menu-language/menu-language.js.map +1 -1
  23. package/dist/collection/components/hy-site-header/site-search/site-search.css +13 -2
  24. package/dist/collection/components/hy-site-header/site-search/site-search.js +36 -82
  25. package/dist/collection/components/hy-site-header/site-search/site-search.js.map +1 -1
  26. package/dist/esm/huds-lib.js +1 -1
  27. package/dist/esm/hy-breadcrumbs_15.entry.js +17 -80
  28. package/dist/esm/hy-breadcrumbs_15.entry.js.map +1 -1
  29. package/dist/esm/hy-hero-carousel.entry.js +328 -1
  30. package/dist/esm/hy-hero-carousel.entry.js.map +1 -1
  31. package/dist/esm/hy-menu-main-group.entry.js +19 -26
  32. package/dist/esm/hy-menu-main-group.entry.js.map +1 -1
  33. package/dist/esm/loader.js +1 -1
  34. package/dist/huds-lib/huds-lib.esm.js +1 -1
  35. package/dist/huds-lib/huds-lib.esm.js.map +1 -1
  36. package/dist/huds-lib/hy-breadcrumbs_15.entry.js +1 -1
  37. package/dist/huds-lib/hy-breadcrumbs_15.entry.js.map +1 -1
  38. package/dist/huds-lib/hy-hero-carousel.entry.js +1 -1
  39. package/dist/huds-lib/hy-hero-carousel.entry.js.map +1 -1
  40. package/dist/huds-lib/hy-menu-main-group.entry.js +1 -1
  41. package/dist/huds-lib/hy-menu-main-group.entry.js.map +1 -1
  42. package/dist/types/components/hy-navigation/hy-menu-main-group/hy-menu-main-group.d.ts +2 -5
  43. package/dist/types/components/hy-site-header/site-search/site-search.d.ts +1 -6
  44. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"hy-menu-main-group.js","sourceRoot":"","sources":["../../../../src/components/hy-navigation/hy-menu-main-group/hy-menu-main-group.tsx"],"names":[],"mappings":"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","sourcesContent":["export interface MainMenu {\n label: string;\n url: string;\n menuLinkId: string;\n}\n\nexport interface DonateLink {\n url: string;\n label: string;\n}\n\nimport {Component, Host, h, Element, Prop, State, Listen, Event, EventEmitter} from \"@stencil/core\";\nimport {ColorVariant, SiteLogoSize} from \"../../../utils/utils\";\nimport {jsonParserWorker} from \"../../../global/globalScript\";\n\nlet keys = {\n enter: \"Enter\",\n};\n\n@Component({\n tag: \"hy-menu-main-group\",\n styleUrl: \"hy-menu-main-group.scss\",\n shadow: true,\n})\nexport class HyMenuMainGroup {\n @Element() el: HTMLElement;\n @Prop() menuLabel: string = \"University main menu\";\n @Prop() menuLabelClose: string = \"Close\";\n @Prop() dataMainMenu: MainMenu[] | string;\n @Prop() isMobile: boolean = false;\n @Prop() logoUrl?: string;\n @Prop() logoLabel?: string;\n @Prop() siteLabel?: string;\n @Prop() siteUrl?: string;\n @Prop() donate: DonateLink[];\n @State() isMenuOpen: boolean = false;\n\n @Event() universityMainMenuToggled: EventEmitter;\n @Event() mobileMenuTopToggle: EventEmitter;\n\n private _dataMainMenu: MainMenu[];\n\n @Listen(\"click\", {capture: true})\n handleComponentClick(event) {\n event.stopPropagation();\n this.emitEvent();\n\n this.isMenuOpen = !this.isMenuOpen;\n if (this.isMenuOpen) {\n this.adjustMainMenuPosition(event.target);\n }\n }\n\n @Listen(\"keydown\")\n handleComponentKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n const key = event.code;\n let target = event.target as HTMLButtonElement;\n\n if (key === \"Escape\" && this.isMenuOpen) {\n this.isMenuOpen = false;\n this.emitEvent();\n }\n\n if (target && [keys.enter].includes(key)) {\n this.isMenuOpen = !this.isMenuOpen;\n\n if (this.isMenuOpen) {\n this.emitEvent();\n this.adjustMainMenuPosition(target);\n }\n }\n }\n\n emitEvent() {\n // Close other panels if they are open (lang menu, search, main menu, ..).\n this.universityMainMenuToggled.emit();\n this.mobileMenuTopToggle.emit();\n }\n\n adjustMainMenuPosition(target) {\n let hyTopHeader = this.el.closest(\".hy-site-header__content-top\") as HTMLElement;\n\n if (hyTopHeader && !hyTopHeader.hasAttribute(\"is-mobile\")) {\n let mainMenuToggle = target.shadowRoot.querySelector(\".menu--main-group__toggle\") as HTMLElement;\n let mainMenuDropdown = target.shadowRoot.querySelector(\".menu--main-group__dropdown\") as HTMLElement;\n let mainMenuList = target.shadowRoot.querySelector(\".list\") as HTMLElement;\n if (mainMenuDropdown && mainMenuList && mainMenuToggle) {\n let rectHeader = hyTopHeader.getBoundingClientRect();\n let rectMenuToggle = mainMenuToggle.getBoundingClientRect();\n mainMenuDropdown.style.top = `${rectHeader.height}px`;\n\n mainMenuList.style.left = `${rectMenuToggle.left}px`;\n }\n let headerHeight = hyTopHeader.offsetHeight + 270;\n\n this.showBackdropShadow(\"open\", headerHeight);\n }\n }\n\n showBackdropShadow(state = \"close\", top = 0) {\n let hyHeader = this.el.closest(\".hy-site-header\") as HTMLElement;\n let hyBackdropDiv = hyHeader.children[0] as HTMLElement;\n\n if (hyBackdropDiv) {\n if (state === \"open\") {\n let me = window.outerHeight - top;\n hyBackdropDiv.style.height = `${me}px`;\n hyBackdropDiv.style.top = `${top}px`;\n hyBackdropDiv.style.position = \"absolute\";\n hyBackdropDiv.classList.add(\"is-active\");\n } else {\n hyBackdropDiv.removeAttribute(\"style\");\n hyBackdropDiv.classList.remove(\"is-active\");\n }\n }\n }\n\n async componentWillLoad() {\n this._dataMainMenu = await jsonParserWorker(this.dataMainMenu);\n }\n\n handleTopMenuClose(event) {\n this.isMenuOpen = false;\n this.mobileMenuTopToggle.emit();\n this.showBackdropShadow();\n event.stopPropagation();\n }\n\n // Close the University main menu if user clicks anywhere outside the component.\n @Listen(\"click\", {target: \"window\"})\n @Listen(\"headerScrollDown\", {target: \"window\"})\n @Listen(\"headerScrollUp\", {target: \"window\"})\n handleOutsideMenuClick(event) {\n if (this.isMenuOpen) {\n this.isMenuOpen = false;\n this.handleTopMenuClose(event);\n }\n event.stopPropagation();\n }\n\n // CLose the University main menu if user opens the desktop menu panel.\n @Listen(\"menuDesktopToggled\", {target: \"document\"})\n desktopMenuToggled() {\n this.isMenuOpen = false;\n }\n\n // CLose the University main menu if user opens the search panel\n @Listen(\"searchPanelToggled\", {target: \"document\"})\n searchPanelToggled() {\n this.isMenuOpen = false;\n }\n\n // CLose the University main menu if user opens the language menu panel.\n @Listen(\"menuLanguageToggled\", {target: \"document\"})\n languageMenuToggled() {\n this.isMenuOpen = false;\n }\n\n render() {\n const white = \"var(--grayscale-white)\";\n const logoSizeGroup = this.isMobile ? SiteLogoSize.small : SiteLogoSize.small;\n const logoColorGroup = ColorVariant.white;\n\n return this.isMobile ? (\n <Host\n class={{\n \"menu--main-group--mobile\": true,\n \"menu--main-group--mobile__is-open\": this.isMenuOpen,\n }}\n >\n <button\n aria-label={this.menuLabel}\n class={{\n \"menu--main-group__mobile-toggle\": true,\n \"is-open\": this.isMenuOpen,\n }}\n >\n <hy-icon icon={\"hy-icon-slim-hamburger-menu\"} size={20} fill={white} />\n </button>\n <nav\n role=\"navigation\"\n aria-hidden={this.isMenuOpen ? \"false\" : \"true\"}\n class={{\n \"menu--main-group__dropdown--mobile\": true,\n \"is-open\": this.isMenuOpen,\n }}\n >\n <div class=\"menu--main-group__dropdown__top\">\n <div class={\"menu--main-group__logo-container\"} id={\"menu-logo\"}>\n <hy-site-logo\n is-group={true}\n size={logoSizeGroup}\n color={logoColorGroup}\n url={this.siteUrl}\n label={this.siteLabel}\n />\n </div>\n <button\n aria-label={`Close ${this.menuLabel}`}\n class=\"menu--main-group__dropdown__close\"\n onClick={(e) => this.handleTopMenuClose(e)}\n >\n <hy-icon icon={\"hy-icon-remove\"} size={20} fill={white} />\n </button>\n </div>\n <div class=\"menu--main-group__dropdown__items\">\n {this._dataMainMenu.map((item) => {\n return (\n <a href={item.url} class={{\"menu-main-link\": true}}>\n <span class={\"menu--main-group__label\"}>{item.label}</span>\n </a>\n );\n })}\n </div>\n <div class=\"menu--main-group__dropdown__donate\">\n {this.donate &&\n this.donate.map((i) => {\n return (\n <a class={\"menu--secondary__item hy-link__donate group\"} href={i.url}>\n <hy-icon icon={\"hy-icon-heart-support\"} size={14} fill={logoColorGroup} />\n <span class={\"hy-link__donate__label group\"}>{i.label}</span>\n </a>\n );\n })}\n </div>\n </nav>\n </Host>\n ) : (\n <Host\n class={{\n \"menu--main-group\": true,\n \"menu--main-group__is-open\": this.isMenuOpen,\n }}\n >\n <button\n class={{\n \"menu--main-group__toggle\": true,\n \"is-open\": this.isMenuOpen,\n }}\n aria-expanded={this.isMenuOpen ? \"true\" : \"false\"}\n aria-haspopup=\"menu\"\n //aria-label={this.isMenuOpen ? this._labels['close'] : this._labels['open']}\n >\n {this.isMenuOpen ? (\n <hy-icon class={\"toggle__close\"} icon={\"hy-icon-remove\"} size={8} fill={white} />\n ) : (\n <hy-icon class={\"toggle__caret\"} icon={\"hy-icon-slim-hamburger-menu\"} size={8} fill={white} />\n )}\n <span>{this.menuLabel}</span>\n </button>\n <div\n class={{\n \"menu--main-group__dropdown\": true,\n \"is-open\": this.isMenuOpen,\n }}\n >\n <div class=\"list\">\n {this._dataMainMenu.map((item) => {\n return (\n <a href={item.url} class={{\"menu-main-link\": true}}>\n <span class=\"heading-icon\">\n <hy-icon icon={\"hy-icon-caret-right\"} size={10} fill={white} />\n </span>\n <span class={\"menu--main-group__label\"}>{item.label}</span>\n </a>\n );\n })}\n </div>\n <button\n onClick={(e) => this.handleComponentClick(e)}\n class={{\n \"panel-toggle\": true,\n }}\n aria-label=\"Close menu\"\n >\n <span class=\"panel-toggle__label\">\n <span class=\"panel-toggle__label__title\">{this.menuLabelClose}</span>\n <hy-icon icon={\"hy-icon-remove\"} size={20} fill={ColorVariant.white} />\n </span>\n </button>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"hy-menu-main-group.js","sourceRoot":"","sources":["../../../../src/components/hy-navigation/hy-menu-main-group/hy-menu-main-group.tsx"],"names":[],"mappings":"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","sourcesContent":["export interface MainMenu {\n label: string;\n url: string;\n menuLinkId: string;\n}\n\nexport interface DonateLink {\n url: string;\n label: string;\n}\n\nimport {Component, Host, h, Element, Prop, State, Listen, Event, EventEmitter} from \"@stencil/core\";\nimport {ColorVariant, SiteLogoSize} from \"../../../utils/utils\";\nimport {jsonParserWorker} from \"../../../global/globalScript\";\n\nlet keys = {\n enter: \"Enter\",\n};\n\n@Component({\n tag: \"hy-menu-main-group\",\n styleUrl: \"hy-menu-main-group.scss\",\n shadow: true,\n})\nexport class HyMenuMainGroup {\n @Element() el: HTMLElement;\n @Prop() menuLabel: string = \"University main menu\";\n @Prop() menuLabelClose: string = \"Close\";\n @Prop() dataMainMenu: MainMenu[] | string;\n @Prop() isMobile: boolean = false;\n @Prop() logoUrl?: string;\n @Prop() logoLabel?: string;\n @Prop() siteLabel?: string;\n @Prop() siteUrl?: string;\n @Prop() donate: DonateLink[];\n @State() isMenuOpen: boolean = false;\n\n @Event() universityMainMenuToggled: EventEmitter;\n @Event() mobileMenuTopToggle: EventEmitter;\n\n private _dataMainMenu: MainMenu[];\n\n async componentWillLoad() {\n this._dataMainMenu = await jsonParserWorker(this.dataMainMenu);\n }\n\n\n @Listen(\"click\", {capture: true})\n handleComponentClick(event) {\n this.isMenuOpen = !this.isMenuOpen;\n \n this.emitEvent();\n if (this.isMenuOpen) {\n this.adjustMainMenuPosition(event.target);\n }\n if (!this.isMenuOpen) {\n this.showBackdropShadow('close');\n }\n event.stopPropagation();\n }\n\n @Listen(\"keydown\")\n handleComponentKeyDown(event: KeyboardEvent) {\n event.stopPropagation();\n const key = event.code;\n let target = event.target as HTMLButtonElement;\n\n if (key === \"Escape\" && this.isMenuOpen) {\n this.isMenuOpen = false;\n this.emitEvent();\n }\n\n if (target && [keys.enter].includes(key)) {\n this.isMenuOpen = !this.isMenuOpen;\n\n if (this.isMenuOpen) {\n this.emitEvent();\n this.adjustMainMenuPosition(target);\n }\n }\n }\n\n // Handle events that should close the menu.\n @Listen(\"click\", {target: \"window\"})\n @Listen(\"headerScrollDown\", {target: \"window\"})\n @Listen(\"headerScrollUp\", {target: \"window\"})\n @Listen(\"menuLanguageToggled\", {target: \"document\"})\n @Listen(\"searchPanelToggled\", {target: \"document\"})\n @Listen(\"menuDesktopToggled\", {target: \"document\"})\n handleOutsideMenuClick(event) {\n if (this.isMenuOpen) {\n this.isMenuOpen = false;\n this.handleTopMenuClose(event);\n }\n event.stopPropagation();\n }\n\n emitEvent() {\n // Close other panels if they are open (lang menu, search, main menu, ..).\n this.universityMainMenuToggled.emit();\n this.mobileMenuTopToggle.emit();\n }\n\n // TODO: Cleanup this. Find cleaner way to do positioning.\n adjustMainMenuPosition(target) {\n let hyTopHeader = this.el.closest(\".hy-site-header__content-top\") as HTMLElement;\n\n if (hyTopHeader && !hyTopHeader.hasAttribute(\"is-mobile\")) {\n let mainMenuToggle = target.shadowRoot.querySelector(\".menu--main-group__toggle\") as HTMLElement;\n let mainMenuDropdown = target.shadowRoot.querySelector(\".menu--main-group__dropdown\") as HTMLElement;\n let mainMenuList = target.shadowRoot.querySelector(\".list\") as HTMLElement;\n if (mainMenuDropdown && mainMenuList && mainMenuToggle) {\n let rectHeader = hyTopHeader.getBoundingClientRect();\n let rectMenuToggle = mainMenuToggle.getBoundingClientRect();\n mainMenuDropdown.style.top = `${rectHeader.height}px`;\n\n mainMenuList.style.left = `${rectMenuToggle.left}px`;\n }\n let headerHeight = hyTopHeader.offsetHeight + 270;\n\n this.showBackdropShadow(\"open\", headerHeight);\n }\n }\n\n // TODO: Handle backdrop with CSS.\n showBackdropShadow(state = \"close\", top = 0) {\n let hyHeader = this.el.closest(\".hy-site-header\") as HTMLElement;\n let hyBackdropDiv = hyHeader.children[0] as HTMLElement;\n\n if (hyBackdropDiv) {\n if (state === \"open\") {\n let me = window.outerHeight - top;\n hyBackdropDiv.style.height = `${me}px`;\n hyBackdropDiv.style.top = `${top}px`;\n hyBackdropDiv.style.position = \"absolute\";\n hyBackdropDiv.classList.add(\"is-active\");\n } else {\n hyBackdropDiv.removeAttribute(\"style\");\n hyBackdropDiv.classList.remove(\"is-active\");\n }\n }\n }\n\n\n\n handleTopMenuClose(event) {\n this.isMenuOpen = false;\n this.mobileMenuTopToggle.emit();\n this.showBackdropShadow('close');\n event.stopPropagation();\n }\n\n\n render() {\n const white = \"var(--grayscale-white)\";\n const logoSizeGroup = this.isMobile ? SiteLogoSize.small : SiteLogoSize.small;\n const logoColorGroup = ColorVariant.white;\n\n return this.isMobile ? (\n <Host\n class={{\n \"menu--main-group--mobile\": true,\n \"menu--main-group--mobile__is-open\": this.isMenuOpen,\n }}\n >\n <button\n aria-label={this.menuLabel}\n class={{\n \"menu--main-group__mobile-toggle\": true,\n \"is-open\": this.isMenuOpen,\n }}\n >\n <hy-icon icon={\"hy-icon-slim-hamburger-menu\"} size={20} fill={white} />\n </button>\n <nav\n role=\"navigation\"\n aria-hidden={this.isMenuOpen ? \"false\" : \"true\"}\n class={{\n \"menu--main-group__dropdown--mobile\": true,\n \"is-open\": this.isMenuOpen,\n }}\n >\n <div class=\"menu--main-group__dropdown__top\">\n <div class={\"menu--main-group__logo-container\"} id={\"menu-logo\"}>\n <hy-site-logo\n is-group={true}\n size={logoSizeGroup}\n color={logoColorGroup}\n url={this.siteUrl}\n label={this.siteLabel}\n />\n </div>\n <button\n aria-label={`Close ${this.menuLabel}`}\n class=\"menu--main-group__dropdown__close\"\n onClick={(e) => this.handleTopMenuClose(e)}\n >\n <hy-icon icon={\"hy-icon-remove\"} size={20} fill={white} />\n </button>\n </div>\n <div class=\"menu--main-group__dropdown__items\">\n {this._dataMainMenu.map((item) => {\n return (\n <a href={item.url} class={{\"menu-main-link\": true}}>\n <span class={\"menu--main-group__label\"}>{item.label}</span>\n </a>\n );\n })}\n </div>\n <div class=\"menu--main-group__dropdown__donate\">\n {this.donate &&\n this.donate.map((i) => {\n return (\n <a class={\"menu--secondary__item hy-link__donate group\"} href={i.url}>\n <hy-icon icon={\"hy-icon-heart-support\"} size={14} fill={logoColorGroup} />\n <span class={\"hy-link__donate__label group\"}>{i.label}</span>\n </a>\n );\n })}\n </div>\n </nav>\n </Host>\n ) : (\n <Host\n class={{\n \"menu--main-group\": true,\n \"menu--main-group__is-open\": this.isMenuOpen,\n }}\n >\n <button\n class={{\n \"menu--main-group__toggle\": true,\n \"is-open\": this.isMenuOpen,\n }}\n aria-expanded={this.isMenuOpen ? \"true\" : \"false\"}\n aria-haspopup=\"menu\"\n //aria-label={this.isMenuOpen ? this._labels['close'] : this._labels['open']}\n >\n {this.isMenuOpen ? (\n <hy-icon class={\"toggle__close\"} icon={\"hy-icon-remove\"} size={8} fill={white} />\n ) : (\n <hy-icon class={\"toggle__caret\"} icon={\"hy-icon-slim-hamburger-menu\"} size={8} fill={white} />\n )}\n <span>{this.menuLabel}</span>\n </button>\n <div\n class={{\n \"menu--main-group__dropdown\": true,\n \"is-open\": this.isMenuOpen,\n }}\n >\n <div class=\"list\">\n {this._dataMainMenu.map((item) => {\n return (\n <a href={item.url} class={{\"menu-main-link\": true}}>\n <span class=\"heading-icon\">\n <hy-icon icon={\"hy-icon-caret-right\"} size={10} fill={white} />\n </span>\n <span class={\"menu--main-group__label\"}>{item.label}</span>\n </a>\n );\n })}\n </div>\n <button\n onClick={(e) => this.handleComponentClick(e)}\n class={{\n \"panel-toggle\": true,\n }}\n aria-label=\"Close menu\"\n >\n <span class=\"panel-toggle__label\">\n <span class=\"panel-toggle__label__title\">{this.menuLabelClose}</span>\n <hy-icon icon={\"hy-icon-remove\"} size={20} fill={ColorVariant.white} />\n </span>\n </button>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -73,9 +73,10 @@ export class MenuLanguage {
73
73
  }
74
74
  })), h("hy-icon", { icon: "hy-icon-caret-down", size: 8, fill: svgColor })), h("div", { class: {
75
75
  "menu-language__dropdown": true,
76
- }, "aria-hidden": `${!this.isMenuOpen}` }, h("ul", { class: "menu-language__links" }, this._dataMenuLanguage.map((item) => {
77
- return (h("hy-menu-language-item", { "lang-code": item.langCode, url: item.url, label: item.label, abbr: item.abbr, "is-active": item.isActive, "is-disabled": item.isDisabled }));
78
- })))));
76
+ }, "aria-hidden": `${!this.isMenuOpen}` }, this.isMenuOpen &&
77
+ h("ul", { class: "menu-language__links" }, this._dataMenuLanguage.map((item) => {
78
+ return (h("hy-menu-language-item", { "lang-code": item.langCode, url: item.url, label: item.label, abbr: item.abbr, "is-active": item.isActive, "is-disabled": item.isDisabled }));
79
+ })))));
79
80
  }
80
81
  static get is() { return "hy-menu-language"; }
81
82
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"menu-language.js","sourceRoot":"","sources":["../../../../src/components/hy-navigation/menu-language/menu-language.tsx"],"names":[],"mappings":"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","sourcesContent":["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 <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 </div>\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"menu-language.js","sourceRoot":"","sources":["../../../../src/components/hy-navigation/menu-language/menu-language.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
@@ -171,8 +171,8 @@
171
171
  }
172
172
 
173
173
  .site-search__panel__is-open {
174
- background-color: #f8f8f8;
175
- border: 1px solid rgba(0, 0, 0, 0.1);
174
+ background-color: rgba(0, 0, 0, 0.5);
175
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
176
176
  display: -webkit-box;
177
177
  display: -ms-flexbox;
178
178
  display: flex;
@@ -182,6 +182,7 @@
182
182
  flex-direction: column;
183
183
  font-family: var(--main-font-family);
184
184
  left: 0;
185
+ height: 100vh;
185
186
  position: absolute;
186
187
  width: 100%;
187
188
  z-index: 520;
@@ -279,6 +280,16 @@
279
280
  }
280
281
  }
281
282
 
283
+ .site-search__panel__content {
284
+ background-color: #f8f8f8;
285
+ width: 100%;
286
+ }
287
+
288
+ .site-search__panel__space-box {
289
+ height: 100%;
290
+ width: 100%;
291
+ }
292
+
282
293
  .site-search__panel__wrapper {
283
294
  margin: 0 auto;
284
295
  max-width: 100%;
@@ -31,20 +31,9 @@ export class SiteSearch {
31
31
  this.searchDescriptionLabel = this._searchLabels["search_description"];
32
32
  }
33
33
  }
34
- // CLose the search panel if user opens the desktop menu panel.
35
- desktopMenuToggled() {
36
- this.closeSearchPanel();
37
- }
38
- // CLose the search panel if user opens the mobile menu panel.
39
- mobileMenuToggled() {
40
- this.closeSearchPanel();
41
- }
42
- // CLose the search panel if user opens the language menu.
43
- menuLanguageToggled() {
44
- this.closeSearchPanel();
45
- }
46
- // Close the search panel if user opens University main menu
47
- universityMainMenuPanelToggled() {
34
+ // CLose the search panel if user opens the any other dropdown in header.
35
+ // Do same if user scrolls up or down;
36
+ closePanelWhenOtherDropdownsTriggered() {
48
37
  this.closeSearchPanel();
49
38
  }
50
39
  handleWindowClick(event) {
@@ -59,11 +48,6 @@ export class SiteSearch {
59
48
  }
60
49
  }
61
50
  }
62
- // Close the search panel on Scroll down.
63
- // @Listen('headerScrollDown', {target: 'document'})
64
- // headerScrollDown() {
65
- // this.closeSearchPanel();
66
- // }
67
51
  closeSearchPanel() {
68
52
  this.isSearchPanelOpen = false;
69
53
  let cludoSayt = document.querySelectorAll("stencil-cludo-sayt")[0];
@@ -73,9 +57,11 @@ export class SiteSearch {
73
57
  CludoSayt.hide();
74
58
  }
75
59
  }
76
- this.showBackdropShadow();
60
+ //this.showBackdropShadow();
77
61
  }
78
62
  handleSearchPanelToggle(event) {
63
+ // What is this??
64
+ // TODO: Cleanup
79
65
  if (this.isLuomusGroup) {
80
66
  let beta = this.isBetaGroup ? "/beta" : "";
81
67
  let luomus_search_url = "/" + this.searchLanguage + beta + "/luomus/search-results";
@@ -95,13 +81,13 @@ export class SiteSearch {
95
81
  if (this.isSearchPanelOpen) {
96
82
  // Close desktop menu panel and lang menu panel if they are open.
97
83
  this.searchPanelToggled.emit();
98
- this.adjustPosition(this.el);
84
+ //this.adjustPosition(this.el);
99
85
  // Remove hidden class from cludo suggestions
100
86
  let cludoSayt = document.querySelectorAll("stencil-cludo-sayt")[0];
101
87
  if (cludoSayt) {
102
88
  const cludoSearchContentFormElement = this.el.shadowRoot.querySelector("#cludo-search-content-form");
103
89
  cludoSayt.classList.remove("hidden");
104
- cludoSearchContentFormElement.append(cludoSayt);
90
+ cludoSearchContentFormElement === null || cludoSearchContentFormElement === void 0 ? void 0 : cludoSearchContentFormElement.append(cludoSayt);
105
91
  cludoSayt.shadowRoot.querySelector("#cludo-reli-flexi-wrapper").style.position = "relative";
106
92
  cludoSayt.shadowRoot.querySelector("#cludo-reli-flexi").style.position = "relative";
107
93
  cludoSayt.shadowRoot.querySelector("#cludo-reli-flexi").style.maxWidth = "none";
@@ -109,7 +95,7 @@ export class SiteSearch {
109
95
  // Without setTimeout it will not focus the input because it hasn't rendered yet.
110
96
  setTimeout(() => {
111
97
  const searchInput = this.el.shadowRoot.querySelector("input#search");
112
- searchInput.focus();
98
+ searchInput === null || searchInput === void 0 ? void 0 : searchInput.focus();
113
99
  });
114
100
  }
115
101
  else {
@@ -118,56 +104,6 @@ export class SiteSearch {
118
104
  }
119
105
  event.stopPropagation();
120
106
  }
121
- adjustPosition(target) {
122
- let headerHeight = "0";
123
- let shadowTop = 0;
124
- const searchPanel = target.shadowRoot.querySelectorAll(`.site-search__panel`)[0];
125
- let initialDisplayStyle = searchPanel.style.display;
126
- if (this.isGroup) {
127
- let hyHeader = target.closest(".hy-site-header__content-top");
128
- if (hyHeader) {
129
- let headerHeightValue = hyHeader.offsetHeight;
130
- headerHeight = `${headerHeightValue}px`;
131
- let headerTop = hyHeader.offsetTop;
132
- // Add shadow backdrop
133
- searchPanel.style.display = "flex";
134
- shadowTop = headerHeightValue + headerTop + searchPanel.offsetHeight;
135
- }
136
- }
137
- else {
138
- let hyHeader = target.closest(".hy-site-header");
139
- if (hyHeader) {
140
- let headerHeightValue = hyHeader.classList.contains("hy-site-header--sticky-active")
141
- ? hyHeader.offsetHeight
142
- : hyHeader.offsetTop + hyHeader.offsetHeight;
143
- headerHeight = `${headerHeightValue}px`;
144
- // Add shadow backdrop
145
- searchPanel.style.display = "flex";
146
- let searchPanelHeight = searchPanel.offsetHeight;
147
- shadowTop = searchPanelHeight + headerHeightValue;
148
- }
149
- }
150
- searchPanel.style.display = initialDisplayStyle;
151
- searchPanel.style.top = headerHeight;
152
- this.showBackdropShadow("open", shadowTop);
153
- }
154
- showBackdropShadow(state = "close", top = 0) {
155
- let hyHeader = this.el.closest(".hy-site-header");
156
- let hyBackdropDiv = hyHeader.children[0];
157
- if (hyBackdropDiv) {
158
- if (state === "open") {
159
- let me = window.outerHeight - top;
160
- hyBackdropDiv.style.height = `${me}px`;
161
- hyBackdropDiv.style.top = `${top}px`;
162
- hyBackdropDiv.style.position = "absolute";
163
- hyBackdropDiv.classList.add("is-active");
164
- }
165
- else {
166
- hyBackdropDiv.removeAttribute("style");
167
- hyBackdropDiv.classList.remove("is-active");
168
- }
169
- }
170
- }
171
107
  render() {
172
108
  const currentPageUrlPathName = window.location.pathname;
173
109
  const searchPagePathNames = ["/fi/haku", "/en/search", "/sv/sök"];
@@ -180,15 +116,15 @@ export class SiteSearch {
180
116
  "is-open--menu": this.isAlternative,
181
117
  "is-open": this.isSearchPanelOpen,
182
118
  "is-active": searchPagePathNames.some((item) => item === currentPageUrlPathName),
183
- }, onClick: (e) => this.handleSearchPanelToggle(e), disabled: searchPagePathNames.some((item) => item === currentPageUrlPathName) ? true : false }, this.showLabel ? (h("span", { class: { "button--search__label": true, "button--search__label__group": this.isGroup } }, this._labels["label"])) : (""), h("hy-icon", { icon: "hy-icon-search", size: this.size, fill: this.color })), !this.isLuomusGroup && (h("div", { class: {
119
+ }, onClick: (e) => this.handleSearchPanelToggle(e), disabled: searchPagePathNames.some((item) => item === currentPageUrlPathName) ? true : false }, this.showLabel ? (h("span", { class: { "button--search__label": true, "button--search__label__group": this.isGroup } }, this._labels["label"])) : (""), h("hy-icon", { icon: "hy-icon-search", size: this.size, fill: this.color })), (!this.isLuomusGroup && this.isSearchPanelOpen) && (h("div", { class: {
184
120
  "site-search__panel": true,
185
121
  "site-search__panel__is-open": this.isSearchPanelOpen,
186
- }, "aria-hidden": `${!this.isSearchPanelOpen}` }, h("div", { class: "site-search__panel__wrapper" }, h("div", { class: "site-search__panel__title" }, h("div", { class: "site-search__panel__title__group" }, h("span", { class: "panel-title" }, this.searchTitleLabel), h("div", { class: "description" }, this.searchDescriptionLabel))), h("div", { id: "cludo-search-results", class: "container_12" }, h("div", { class: "search-banner" }), h("div", { class: "search-filters search-filters-mobile" }), h("div", { class: "col-md-12" }, h("div", { style: { margin: "20px 0 32px" }, id: "cludo-search-content-form" }, h("hy-search-field", { "input-id": "search", label: "" }))), h("div", { class: "col-md-3" }, h("div", { class: "search-filters", "aria-controls": "search-results" })), h("div", { class: "col-md-9" }, h("div", { class: "search-results-container" }, h("hy-paragraph-text", null, h("div", { class: "search-result-count" })), h("div", { class: "search-did-you-mean", role: "Complementary" }), h("div", { class: "search-results", role: "region", id: "search-results", "aria-live": "polite" })))), this._searchTools && this._searchTools.length > 0 && (h("div", { class: "site-search__panel__tools" }, h("div", { class: "title" }, this.searchToolsLabel), h("div", { class: "list" }, this._searchTools.map((i) => {
122
+ }, "aria-hidden": `${!this.isSearchPanelOpen}` }, h("div", { class: "site-search__panel__content" }, h("div", { class: "site-search__panel__wrapper" }, h("div", { class: "site-search__panel__title" }, h("div", { class: "site-search__panel__title__group" }, h("span", { class: "panel-title" }, this.searchTitleLabel), h("div", { class: "description" }, this.searchDescriptionLabel))), h("div", { id: "cludo-search-results", class: "container_12" }, h("div", { class: "search-banner" }), h("div", { class: "search-filters search-filters-mobile" }), h("div", { class: "col-md-12" }, h("div", { style: { margin: "20px 0 32px" }, id: "cludo-search-content-form" }, h("hy-search-field", { "input-id": "search", label: "" }))), h("div", { class: "col-md-3" }, h("div", { class: "search-filters", "aria-controls": "search-results" })), h("div", { class: "col-md-9" }, h("div", { class: "search-results-container" }, h("hy-paragraph-text", null, h("div", { class: "search-result-count" })), h("div", { class: "search-did-you-mean", role: "Complementary" }), h("div", { class: "search-results", role: "region", id: "search-results", "aria-live": "polite" })))), this._searchTools && this._searchTools.length > 0 && (h("div", { class: "site-search__panel__tools" }, h("div", { class: "title" }, this.searchToolsLabel), h("div", { class: "list" }, this._searchTools.map((i) => {
187
123
  let searchToolTarget = i.isExternal ? "_blank" : "_self";
188
124
  return (h("a", { class: "search-special-tool", href: i.url, target: searchToolTarget }, h("hy-icon", { icon: "hy-icon-arrow-to-right", size: 14, fill: ColorVariant.black }), h("span", { class: "label" }, i.label), h("span", { class: "description" }, i.description)));
189
125
  })))), h("button", { onClick: () => this.closeSearchPanel(), class: {
190
126
  "site-search__panel__panel-toggle": true,
191
- }, "aria-label": this.searchCloseLabel, "aria-expanded": `${this.isSearchPanelOpen}` }, h("span", { class: "site-search__panel__panel-toggle__label" }, h("span", { class: "site-search__panel__panel-toggle__label__title", tabindex: "0" }, this.searchCloseLabel), h("hy-icon", { icon: "hy-icon-remove", size: 16, fill: ColorVariant.black }))))))));
127
+ }, "aria-label": this.searchCloseLabel, "aria-expanded": `${this.isSearchPanelOpen}` }, h("span", { class: "site-search__panel__panel-toggle__label" }, h("span", { class: "site-search__panel__panel-toggle__label__title", tabindex: "0" }, this.searchCloseLabel), h("hy-icon", { icon: "hy-icon-remove", size: 16, fill: ColorVariant.black })))), h("div", { class: "site-search__panel__space-box", onClick: () => this.closeSearchPanel() }))))));
192
128
  }
193
129
  static get is() { return "hy-site-search"; }
194
130
  static get encapsulation() { return "shadow"; }
@@ -452,26 +388,44 @@ export class SiteSearch {
452
388
  static get elementRef() { return "el"; }
453
389
  static get listeners() {
454
390
  return [{
455
- "name": "menuDesktopToggled",
456
- "method": "desktopMenuToggled",
391
+ "name": "menuMobileToggled",
392
+ "method": "closePanelWhenOtherDropdownsTriggered",
457
393
  "target": "document",
458
394
  "capture": false,
459
395
  "passive": false
460
396
  }, {
461
- "name": "menuMobileToggled",
462
- "method": "mobileMenuToggled",
397
+ "name": "menuDesktopToggled",
398
+ "method": "closePanelWhenOtherDropdownsTriggered",
463
399
  "target": "document",
464
400
  "capture": false,
465
401
  "passive": false
466
402
  }, {
467
403
  "name": "menuLanguageToggled",
468
- "method": "menuLanguageToggled",
404
+ "method": "closePanelWhenOtherDropdownsTriggered",
469
405
  "target": "document",
470
406
  "capture": false,
471
407
  "passive": false
472
408
  }, {
473
409
  "name": "universityMainMenuToggled",
474
- "method": "universityMainMenuPanelToggled",
410
+ "method": "closePanelWhenOtherDropdownsTriggered",
411
+ "target": "document",
412
+ "capture": false,
413
+ "passive": false
414
+ }, {
415
+ "name": "menuToggled",
416
+ "method": "closePanelWhenOtherDropdownsTriggered",
417
+ "target": "window",
418
+ "capture": false,
419
+ "passive": false
420
+ }, {
421
+ "name": "headerScrollUp",
422
+ "method": "closePanelWhenOtherDropdownsTriggered",
423
+ "target": "document",
424
+ "capture": false,
425
+ "passive": false
426
+ }, {
427
+ "name": "headerScrollDown",
428
+ "method": "closePanelWhenOtherDropdownsTriggered",
475
429
  "target": "document",
476
430
  "capture": false,
477
431
  "passive": false
@@ -1 +1 @@
1
- {"version":3,"file":"site-search.js","sourceRoot":"","sources":["../../../../src/components/hy-site-header/site-search/site-search.tsx"],"names":[],"mappings":"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","sourcesContent":["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 desktop menu panel.\n @Listen(\"menuDesktopToggled\", {target: \"document\"})\n desktopMenuToggled() {\n this.closeSearchPanel();\n }\n\n // CLose the search panel if user opens the mobile menu panel.\n @Listen(\"menuMobileToggled\", {target: \"document\"})\n mobileMenuToggled() {\n this.closeSearchPanel();\n }\n\n // CLose the search panel if user opens the language menu.\n @Listen(\"menuLanguageToggled\", {target: \"document\"})\n menuLanguageToggled() {\n this.closeSearchPanel();\n }\n\n // Close the search panel if user opens University main menu\n @Listen(\"universityMainMenuToggled\", {target: \"document\"})\n universityMainMenuPanelToggled() {\n this.closeSearchPanel();\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 // Close the search panel on Scroll down.\n // @Listen('headerScrollDown', {target: 'document'})\n // headerScrollDown() {\n // this.closeSearchPanel();\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 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\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 adjustPosition(target) {\n let headerHeight = \"0\";\n let shadowTop = 0;\n const searchPanel = target.shadowRoot.querySelectorAll(`.site-search__panel`)[0] as HTMLElement;\n let initialDisplayStyle = searchPanel.style.display;\n\n if (this.isGroup) {\n let hyHeader = target.closest(\".hy-site-header__content-top\") as HTMLElement;\n if (hyHeader) {\n let headerHeightValue = hyHeader.offsetHeight;\n headerHeight = `${headerHeightValue}px`;\n let headerTop = hyHeader.offsetTop;\n\n // Add shadow backdrop\n searchPanel.style.display = \"flex\";\n shadowTop = headerHeightValue + headerTop + searchPanel.offsetHeight;\n }\n } else {\n let hyHeader = target.closest(\".hy-site-header\") as HTMLElement;\n if (hyHeader) {\n let headerHeightValue = hyHeader.classList.contains(\"hy-site-header--sticky-active\")\n ? hyHeader.offsetHeight\n : hyHeader.offsetTop + hyHeader.offsetHeight;\n\n headerHeight = `${headerHeightValue}px`;\n\n // Add shadow backdrop\n searchPanel.style.display = \"flex\";\n let searchPanelHeight = searchPanel.offsetHeight;\n\n shadowTop = searchPanelHeight + headerHeightValue;\n }\n }\n\n searchPanel.style.display = initialDisplayStyle;\n searchPanel.style.top = headerHeight;\n\n this.showBackdropShadow(\"open\", shadowTop);\n }\n\n showBackdropShadow(state = \"close\", top = 0) {\n let hyHeader = this.el.closest(\".hy-site-header\") as HTMLElement;\n let hyBackdropDiv = hyHeader.children[0] as HTMLElement;\n\n if (hyBackdropDiv) {\n if (state === \"open\") {\n let me = window.outerHeight - top;\n hyBackdropDiv.style.height = `${me}px`;\n hyBackdropDiv.style.top = `${top}px`;\n hyBackdropDiv.style.position = \"absolute\";\n hyBackdropDiv.classList.add(\"is-active\");\n } else {\n hyBackdropDiv.removeAttribute(\"style\");\n hyBackdropDiv.classList.remove(\"is-active\");\n }\n }\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 && (\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__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>\n )}\n </div>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"site-search.js","sourceRoot":"","sources":["../../../../src/components/hy-site-header/site-search/site-search.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAC,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAgB,OAAO,EAAC,MAAM,eAAe,CAAC;AAE9F,OAAO,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAC,gBAAgB,EAAC,MAAM,8BAA8B,CAAC;AAO9D,MAAM,OAAO,UAAU;;iBAGS,YAAY,CAAC,KAAK;yBACf,KAAK;mBACX,KAAK;yBACC,KAAK;uBACP,KAAK;;;;;qBAOP,KAAK;;;6BAUI,KAAK;;EAK3C,KAAK,CAAC,iBAAiB;IACrB,IAAI,CAAC,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,wBAAwB;IACxB,IAAI,IAAI,CAAC,WAAW,EAAE;MACpB,IAAI,CAAC,YAAY,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC9D;IAED,IAAI,IAAI,CAAC,YAAY,EAAE;MACrB,IAAI,CAAC,aAAa,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;MAE/D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;MAC3D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;MACjE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;MACjE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;KACxE;EACH,CAAC;EAED,yEAAyE;EACzE,sCAAsC;EAQtC,qCAAqC;IACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC1B,CAAC;EAID,iBAAiB,CAAC,KAAK;IACrB,qFAAqF;IACrF,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;MAAE,OAAO;IAE9B,IAAI,IAAI,CAAC,iBAAiB,EAAE;MAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;MAExE,IAAK,IAAI,CAAC,CAAC,CAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;QAC9D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,KAAK,CAAC,eAAe,EAAE,CAAC;OACzB;KACF;EACH,CAAC;EAGD,gBAAgB;IACd,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAE/B,IAAI,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAgB,CAAC;IAClF,IAAI,SAAS,EAAE;MACb,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;MACjC,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;QACpC,SAAS,CAAC,IAAI,EAAE,CAAC;OAClB;KACF;IAED,4BAA4B;EAC9B,CAAC;EAED,uBAAuB,CAAC,KAAK;IAC3B,iBAAiB;IACjB,gBAAgB;IAChB,IAAI,IAAI,CAAC,aAAa,EAAE;MACtB,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;MAC3C,IAAI,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,wBAAwB,CAAC;MACpF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;QAC/B,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,sBAAsB,CAAC;OAC/E;WAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;QACtC,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,qBAAqB,CAAC;OAC9E;WAAM,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,EAAE;QACtC,iBAAiB,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,0BAA0B,CAAC;OACnF;MACD,QAAQ,CAAC,IAAI,GAAG,iBAAiB,CAAC;KACnC;SAAM;MACL,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC;MAEjD,IAAI,IAAI,CAAC,iBAAiB,EAAE;QAC1B,iEAAiE;QACjE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAE/B,+BAA+B;QAE/B,6CAA6C;QAC7C,IAAI,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAgB,CAAC;QAClF,IAAI,SAAS,EAAE;UACb,MAAM,6BAA6B,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CACpE,4BAA4B,CACd,CAAC;UACjB,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;UACrC,6BAA6B,aAA7B,6BAA6B,uBAA7B,6BAA6B,CAAE,MAAM,CAAC,SAAS,CAAC,CAAC;UAChD,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,2BAA2B,CAAiB,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;UAC5G,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAiB,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;UACpG,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,mBAAmB,CAAiB,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;SAClG;QAED,iFAAiF;QACjF,UAAU,CAAC,GAAG,EAAE;UACd,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAgB,CAAC;UACpF,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;OACJ;WAAM;QACL,IAAI,CAAC,gBAAgB,EAAE,CAAC;OACzB;KACF;IAED,KAAK,CAAC,eAAe,EAAE,CAAC;EAC1B,CAAC;EAED,MAAM;IACJ,MAAM,sBAAsB,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACxD,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IAElE,OAAO,CACL,WACE,KAAK,EAAE;QACL,aAAa,EAAE,IAAI;QACnB,sBAAsB,EAAE,IAAI,CAAC,iBAAiB;QAC9C,UAAU,EAAE,IAAI,CAAC,OAAO;OACzB;MAED,4BACc,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,mBACvC,GAAG,IAAI,CAAC,iBAAiB,EAAE,EAC1C,KAAK,EAAE;UACL,gBAAgB,EAAE,IAAI;UACtB,eAAe,EAAE,IAAI,CAAC,aAAa;UACnC,SAAS,EAAE,IAAI,CAAC,iBAAiB;UACjC,WAAW,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC;SACjF,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAC/C,QAAQ,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QAE3F,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAChB,YAAM,KAAK,EAAE,EAAC,uBAAuB,EAAE,IAAI,EAAE,8BAA8B,EAAE,IAAI,CAAC,OAAO,EAAC,IACvF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CACjB,CACR,CAAC,CAAC,CAAC,CACF,EAAE,CACH;QACD,eAAS,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,GAAI,CAC/D;MACR,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAClD,WACE,KAAK,EAAE;UACL,oBAAoB,EAAE,IAAI;UAC1B,6BAA6B,EAAE,IAAI,CAAC,iBAAiB;SACtD,iBACY,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;QAEzC,WAAK,KAAK,EAAC,6BAA6B;UACtC,WAAK,KAAK,EAAC,6BAA6B;YACtC,WAAK,KAAK,EAAC,2BAA2B;cACpC,WAAK,KAAK,EAAC,kCAAkC;gBAC3C,YAAM,KAAK,EAAC,aAAa,IAAE,IAAI,CAAC,gBAAgB,CAAQ;gBACxD,WAAK,KAAK,EAAC,aAAa,IAAE,IAAI,CAAC,sBAAsB,CAAO,CACxD,CACF;YACN,WAAK,EAAE,EAAC,sBAAsB,EAAC,KAAK,EAAC,cAAc;cACjD,WAAK,KAAK,EAAC,eAAe,GAAO;cACjC,WAAK,KAAK,EAAC,sCAAsC,GAAO;cAExD,WAAK,KAAK,EAAC,WAAW;gBACpB,WAAK,KAAK,EAAE,EAAC,MAAM,EAAE,aAAa,EAAC,EAAE,EAAE,EAAC,2BAA2B;kBACjE,mCAA0B,QAAQ,EAAC,KAAK,EAAC,EAAE,GAAmB,CAC1D,CACF;cAEN,WAAK,KAAK,EAAC,UAAU;gBACnB,WAAK,KAAK,EAAC,gBAAgB,mBAAe,gBAAgB,GAAO,CAC7D;cACN,WAAK,KAAK,EAAC,UAAU;gBACnB,WAAK,KAAK,EAAC,0BAA0B;kBACnC;oBACE,WAAK,KAAK,EAAC,qBAAqB,GAAO,CACrB;kBACpB,WAAK,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAC,eAAe,GAAO;kBAC5D,WAAK,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAC,QAAQ,EAAC,EAAE,EAAC,gBAAgB,eAAW,QAAQ,GAAO,CACnF,CACF,CACF;YAEP,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CACpD,WAAK,KAAK,EAAC,2BAA2B;cACpC,WAAK,KAAK,EAAC,OAAO,IAAE,IAAI,CAAC,gBAAgB,CAAO;cAChD,WAAK,KAAK,EAAC,MAAM,IACd,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,IAAI,gBAAgB,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzD,OAAO,CACL,SAAG,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB;kBAClE,eAAS,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,GAAI;kBAC/E,YAAM,KAAK,EAAC,OAAO,IAAE,CAAC,CAAC,KAAK,CAAQ;kBACpC,YAAM,KAAK,EAAC,aAAa,IAAE,CAAC,CAAC,WAAW,CAAQ,CAC9C,CACL,CAAC;cACJ,CAAC,CAAC,CACE,CACF,CACP;YACD,cACE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EACtC,KAAK,EAAE;gBACL,kCAAkC,EAAE,IAAI;eACzC,gBACW,IAAI,CAAC,gBAAgB,mBAClB,GAAG,IAAI,CAAC,iBAAiB,EAAE;cAE1C,YAAM,KAAK,EAAC,yCAAyC;gBACnD,YAAM,KAAK,EAAC,gDAAgD,EAAC,QAAQ,EAAC,GAAG,IACtE,IAAI,CAAC,gBAAgB,CACjB;gBACP,eAAS,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,GAAI,CAClE,CACA,CACL;UACN,WAAK,KAAK,EAAC,+BAA+B,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAQ,CACrF,CACF,CACL,CACG,CACP,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["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"]}