@ongov/ontario-design-system-component-library 6.0.0-alpha.6 → 6.0.0-alpha.9

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.
@@ -912,7 +912,7 @@ export class OntarioHeader {
912
912
  composed: true,
913
913
  docs: {
914
914
  tags: [],
915
- text: 'This event is toggled when the menu button is pressed.\nThe <ontario-header-overflow-menu> sub-component listens for this event\nTo trigger the showing and hiding of the overflow menu.',
915
+ text: 'This event is toggled when the menu button is pressed.\nThe `<ontario-header-overflow-menu>` sub-component listens for this event\nTo trigger the showing and hiding of the overflow menu.',
916
916
  },
917
917
  complexType: {
918
918
  original: 'boolean',
@@ -1 +1 @@
1
- {"version":3,"file":"ontario-header.js","sourceRoot":"","sources":["../../../src/components/ontario-header/ontario-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, Watch, Event, EventEmitter, Listen, h, Element } from '@stencil/core';\n\nimport {\n\tApplicationHeaderInfo,\n\tLanguageToggleOptions,\n\tOntarioMenuItems,\n\tOntarioHeaderType,\n} from './ontario-header.interface';\n\nimport OntarioIconClose from '../ontario-icon/assets/ontario-icon-close-header.svg';\nimport OntarioIconMenu from '../ontario-icon/assets/ontario-icon-menu-header.svg';\nimport OntarioIconSearch from '../ontario-icon/assets/ontario-icon-search.svg';\nimport OntarioIconSearchWhite from '../ontario-icon/assets/ontario-icon-search-white.svg';\nimport OntarioHeaderDefaultData from './ontario-header-default-data.json';\n\nimport { Language } from '../../utils/common/language-types';\nimport { MenuItem } from '../../utils/common/common.interface';\nimport { DeviceTypes } from '../../utils/common/common.enum';\nimport { isClientSideRendering } from '../../utils/common/environment';\nimport { Input } from '../../utils/common/input/input';\nimport { generateMenuItem } from '../../utils/components/header/header-menu-items';\nimport { ConsoleMessageClass } from '../../utils/console-message/console-message';\nimport { ConsoleType } from '../../utils/console-message/console-message.enum';\nimport { getImageAssetSrcPath } from '../../utils/helper/assets';\nimport { determineDeviceType } from '../../utils/helper/utils';\nimport { DeviceType } from '../../utils/helper/utils-types';\nimport { validateLanguage } from '../../utils/validation/validation-functions';\n\nimport translations from '../../translations/global.i18n.json';\nimport config from '../../config.json';\n\n@Component({\n\ttag: 'ontario-header',\n\tstyleUrls: ['ontario-header.scss', 'ontario-application-header.scss', 'service-ontario-header.scss'],\n\tshadow: true,\n\tassetsDirs: ['./assets'],\n})\nexport class OntarioHeader {\n\t@Element() el: HTMLElement;\n\n\t/**\n\t * The type of header.\n\t */\n\t@Prop() type?: OntarioHeaderType = 'application';\n\n\t/**\n\t * Information pertaining to the application header. This is only necessary for the 'application' header type.\n\t *\n\t * This includes the application name, URL and optional props for the number of links in the subheader for desktop, tablet, and mobile views.\n\t *\n\t * @example\n\t * <ontario-header\n\t * type=\"application\"\n\t * application-header-info='{\n\t * \"title\": \"Application name\",\n\t * \"href\": \"/application-homepage\",\n\t *\t\t\"maxSubheaderLinks\": {\n\t *\t\t\t\"desktop\": \"3\",\n\t *\t\t\t\"tablet\": \"2\",\n\t *\t\t\t\"mobile\": \"1\"\n\t *\t\t}\n\t * }'\n\t *\t>\n\t * </ontario-header>\n\t */\n\t@Prop() applicationHeaderInfo: ApplicationHeaderInfo | string;\n\n\t/**\n\t * The items that will go inside the menu.\n\t */\n\t@Prop() menuItems: MenuItem[] | string;\n\n\t/**\n\t * Option to disable fetching of the dynamic menu from the Ontario Header API\n\t *\n\t * @example\n\t * \t<ontario-header\n\t * \t\t\ttype=\"ontario\"\n\t * \t\t\tdisable-dynamic-menu=\"false\"\n\t *\t\t\tmenu-items='[{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t}]'>\n\t *\t</ontario-header>\n\t */\n\t@Prop() disableDynamicMenu: boolean = false;\n\n\t/**\n\t * Information pertaining to the language toggle links.\n\t *\n\t * @example\n\t * <ontario-header\n\t * \tlanguage-toggle-options='{\n\t * \"englishLink\": \"/en\",\n\t * \"frenchLink\": \"/fr\"\n\t * }'\n\t * ...\n\t * >\n\t * </ontario-header>\n\t */\n\t@Prop() languageToggleOptions?: LanguageToggleOptions | string;\n\n\t/**\n\t * A custom function to pass to the language toggle button.\n\t */\n\t@Prop() customLanguageToggle?: (event: globalThis.Event) => void;\n\n\t/**\n\t * The language of the component.\n\t * This is used for translations, and is by default set through event listeners checking for a language property from the header. If none is passed, it will default to English.\n\t */\n\t@Prop({ mutable: true }) language?: Language = 'en';\n\n\t/**\n\t * The base path to an assets folder containing the Design System assets\n\t */\n\t@Prop() assetBasePath: string;\n\n\t/**\n\t * The application header information is reassigned to applicationHeaderInfoState for parsing\n\t */\n\t@State() private applicationHeaderInfoState: ApplicationHeaderInfo;\n\n\t/**\n\t * The menuItems is reassigned to itemState for parsing\n\t *\n\t * @example\n\t * \t<ontario-header\n\t * \t\t\ttype=\"ontario\"\n\t * \t\t\tdisable-dynamic-menu=\"true\"\n\t *\t\t\tmenu-items='[{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t}]'>\n\t *\t</ontario-header>\n\t */\n\t@State() private menuItemState: MenuItem[];\n\n\t/**\n\t * Check to see if menu is dynamic or static\n\t */\n\t@State() private isDynamicMenu: boolean = false;\n\n\t/**\n\t * The languageToggleOptions is reassigned to languageState for parsing\n\t *\n\t * @example\n\t * \t<ontario-header\n\t *\t\tlanguage-toggle-options='{\n\t *\t\t\t\"englishLink\":\"/en\",\n\t *\t\t\t\"frenchLink\": \"/fr\"\n\t *\t\t}'\n\t *\t</ontario-header>\n\t */\n\t@State() private languageState: LanguageToggleOptions;\n\n\t/**\n\t * Toggler for the menu and the search button\n\t */\n\t@State() menuToggled: boolean = false;\n\t@State() searchToggle?: boolean = false;\n\n\t@State() translations: any = translations;\n\n\t@State() breakpointDeviceState: DeviceType;\n\n\t@Watch('applicationHeaderInfo')\n\tprivate parseApplicationHeaderInfo() {\n\t\tconst applicationHeaderInfo = this.applicationHeaderInfo;\n\t\tif (applicationHeaderInfo) {\n\t\t\ttry {\n\t\t\t\tif (typeof applicationHeaderInfo === 'string')\n\t\t\t\t\tthis.applicationHeaderInfoState = JSON.parse(applicationHeaderInfo);\n\t\t\t\telse this.applicationHeaderInfoState = applicationHeaderInfo;\n\t\t\t} catch (error) {\n\t\t\t\tconst message = new ConsoleMessageClass();\n\t\t\t\tmessage\n\t\t\t\t\t.addDesignSystemTag()\n\t\t\t\t\t.addRegularText(' failed to parse props for ')\n\t\t\t\t\t.addMonospaceText('<ontario-header>')\n\t\t\t\t\t.addRegularText(' in ')\n\t\t\t\t\t.addMonospaceText('parseApplicationHeaderInfo()')\n\t\t\t\t\t.addRegularText(' method \\n ')\n\t\t\t\t\t.addMonospaceText(error.stack)\n\t\t\t\t\t.printMessage(ConsoleType.Error);\n\n\t\t\t\tthis.applicationHeaderInfoState = {\n\t\t\t\t\ttitle: '',\n\t\t\t\t\thref: '/',\n\t\t\t\t}; // fallback on error\n\t\t\t}\n\t\t}\n\t}\n\n\t@Watch('menuItems')\n\tparseMenuItems() {\n\t\tconst isEnglish = this.language === 'en';\n\t\ttry {\n\t\t\tif (!Array.isArray(this.menuItems) && typeof this.menuItems === 'string') {\n\t\t\t\tthis.menuItemState = JSON.parse(this.menuItems);\n\t\t\t\tthis.isDynamicMenu = false;\n\t\t\t} else if (Array.isArray(this.menuItems) && this.type === 'application') {\n\t\t\t\tthis.menuItemState = this.menuItems;\n\t\t\t\tthis.isDynamicMenu = false;\n\t\t\t} else {\n\t\t\t\tthis.menuItemState = isEnglish ? OntarioHeaderDefaultData.en : OntarioHeaderDefaultData.fr;\n\t\t\t\tthis.isDynamicMenu = false;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst message = new ConsoleMessageClass();\n\t\t\tmessage\n\t\t\t\t.addDesignSystemTag()\n\t\t\t\t.addRegularText(' failed to parse props for ')\n\t\t\t\t.addMonospaceText('<ontario-header>')\n\t\t\t\t.addRegularText(' in ')\n\t\t\t\t.addMonospaceText('parseMenuItems()')\n\t\t\t\t.addRegularText(' method \\n ')\n\t\t\t\t.addMonospaceText(error.stack)\n\t\t\t\t.printMessage(ConsoleType.Error);\n\n\t\t\tthis.menuItemState = [];\n\t\t}\n\t}\n\n\t@Watch('languageToggleOptions')\n\tprivate parseLanguage() {\n\t\tconst languageToggleOptions = this.languageToggleOptions;\n\n\t\ttry {\n\t\t\tif (languageToggleOptions) {\n\t\t\t\tif (typeof languageToggleOptions === 'string') {\n\t\t\t\t\tthis.languageState = JSON.parse(languageToggleOptions);\n\t\t\t\t} else {\n\t\t\t\t\tthis.languageState = languageToggleOptions;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst message = new ConsoleMessageClass();\n\t\t\tmessage\n\t\t\t\t.addDesignSystemTag()\n\t\t\t\t.addRegularText(' failed to parse props for ')\n\t\t\t\t.addMonospaceText('<ontario-header>')\n\t\t\t\t.addRegularText(' in ')\n\t\t\t\t.addMonospaceText('parseLanguage()')\n\t\t\t\t.addRegularText(' method \\n ')\n\t\t\t\t.addMonospaceText(error.stack)\n\t\t\t\t.printMessage(ConsoleType.Error);\n\n\t\t\tthis.languageState = {\n\t\t\t\tenglishLink: '/en',\n\t\t\t\tfrenchLink: '/fr',\n\t\t\t}; // fallback on error\n\t\t}\n\t}\n\n\t@Listen('keydown', { target: 'window' })\n\thandleKeyDown(event: KeyboardEvent) {\n\t\tif (this.menuToggled && event.key === 'Escape') {\n\t\t\tthis.menuToggled = false;\n\t\t\tthis.menuButtonToggled.emit(this.menuToggled);\n\t\t\tthis.focusMenuButton();\n\t\t}\n\t}\n\n\t/**\n\t * Logic to close the menu when anything outside the menu is clicked\n\t */\n\t@Listen('click', { capture: true, target: 'window' })\n\thandleClick(event: any) {\n\t\t// if the button is clicked, return\n\t\tif (event.composedPath().includes(this.menuButton)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If the click was outside the current component, do the following\n\t\tif (this.menuToggled) this.menuToggled = !this.menuToggled;\n\t}\n\n\t/**\n\t * Logic to close the menu when the focus leaves the menu\n\t */\n\t@Listen('focusout', { target: 'window' })\n\thandleFocusOut(event: FocusEvent) {\n\t\tif (this.menuToggled && !this.el.contains(event.relatedTarget as Node)) {\n\t\t\tthis.menuToggled = false;\n\t\t\tthis.menuButtonToggled.emit(this.menuToggled);\n\t\t}\n\t}\n\n\t/**\n\t * Logic to set breakpointDeviceState to the appropriate device when the screen resizes\n\t */\n\t@Listen('resize', { target: 'window' })\n\thandleResize() {\n\t\tthis.breakpointDeviceState = isClientSideRendering() ? determineDeviceType() : DeviceTypes.Desktop;\n\t}\n\n\t/**\n\t * This listens for the `setAppLanguage` event sent from the language toggle when it is is connected to the DOM.\n\t * It is used for the initial language when the input component loads.\n\t */\n\t@Listen('setAppLanguage', { target: 'window' })\n\thandleSetAppLanguage(event: CustomEvent<Language> | Language) {\n\t\tthis.language = validateLanguage(event);\n\t\tthis.parseMenuItems();\n\t}\n\n\t/**\n\t * This listens for the `headerLanguageToggled` event sent from the language toggle when it is is connected to the DOM.\n\t * It is used for changing the component language after the language toggle has been activated.\n\t */\n\t@Listen('headerLanguageToggled', { target: 'window' })\n\thandleLanguageToggle(event: CustomEvent<{ oldLanguage: Language; newLanguage: Language }>) {\n\t\tthis.handleSetAppLanguage(event.detail.newLanguage);\n\t}\n\n\t/**\n\t * This event is toggled when the menu button is pressed.\n\t * The <ontario-header-overflow-menu> sub-component listens for this event\n\t * To trigger the showing and hiding of the overflow menu.\n\t */\n\t@Event() menuButtonToggled: EventEmitter<boolean>;\n\n\t/**\n\t * Logic to handle the menu toggling\n\t */\n\thandlemenuToggled = () => {\n\t\tthis.menuToggled = !this.menuToggled;\n\t\tthis.menuButtonToggled.emit(this.menuToggled);\n\t\tthis.searchToggle = undefined;\n\t};\n\n\t/**\n\t * Logic to handle the search toggling\n\t */\n\thandleSearchToggle = () => {\n\t\tthis.searchToggle = !this.searchToggle;\n\t};\n\n\t/**\n\t * event.preventDefault(): https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault\n\t * location.href: https://developer.mozilla.org/en-US/docs/Web/API/Location/href\n\t */\n\thandleSubmit = (event: any) => {\n\t\tevent.preventDefault();\n\t\tlocation.href = `${this.translations.header.ontarioSearchURL[`${this.language}`]}${event.target[0].value}`;\n\t};\n\n\t/**\n\t * Logic to make the focus go back to the menu button when the list ends\n\t */\n\t@Listen('endOfMenuReached', { target: 'window' })\n\tfocusMenuButton() {\n\t\tthis.menuButton.focus();\n\t}\n\n\t/**\n\t * Call to Ontario Menu API to fetch linksets to populate header component\n\t */\n\tasync fetchOntarioMenu() {\n\t\tconst isEnglish = this.language === 'en';\n\n\t\t// If menu has already been fetched and contains dynamic menu items, do not run fetch again\n\t\tif (!this.isDynamicMenu) {\n\t\t\tconst apiUrl = isEnglish\n\t\t\t\t? (config.ONTARIO_HEADER_API_URL_EN as string)\n\t\t\t\t: (config.ONTARIO_HEADER_API_URL_FR as string);\n\n\t\t\tconst response = await fetch(apiUrl)\n\t\t\t\t.then((response) => response.json())\n\t\t\t\t.then((json) => json.linkset[0].item as OntarioMenuItems[])\n\t\t\t\t.catch(() => {\n\t\t\t\t\tconsole.error('Unable to retrieve data from Ontario Menu API');\n\t\t\t\t\treturn [];\n\t\t\t\t});\n\n\t\t\tif (response.length > 0) {\n\t\t\t\tconst externalMenuItems = response.map((item) => {\n\t\t\t\t\treturn { href: item.href, title: item.title };\n\t\t\t\t});\n\t\t\t\tthis.menuItemState = externalMenuItems;\n\t\t\t\tthis.isDynamicMenu = true;\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\n\t/**\n\t * Hydration Guard Flag\n\t *\n\t * This flag is used to determine if the component has been hydrated in the browser.\n\t * It prevents certain browser-only operations, like fetching from APIs, from running\n\t * during Server-Side Rendering (SSR), where `window` and `fetch` are not available.\n\t *\n\t * The `isHydrated` flag is set to true in `componentDidLoad()` and checked before\n\t * triggering logic that should only run in the browser (e.g., `fetchOntarioMenu()`).\n\t *\n\t * Not reactive - should not be stored in State.\n\t */\n\tprivate isHydrated = false;\n\n\t/**\n\t * Generate the full path to an image asset based on the base asset path.\n\t *\n\t * - If `assetBasePath` is provided, it is used as the base path.\n\t * - If not, attempts to use Stencil's `getAssetPath` (for Stencil/Angular builds).\n\t * - If that fails (e.g., in React), falls back to `/assets/`, assuming assets are in the public folder.\n\t *\n\t * This allows the component to work across multiple environments (Stencil, Angular, React).\n\t *\n\t * @param imageName - The name of the image file.\n\t * @returns The full image path as a string.\n\t */\n\tprivate getImageAssetSrcPath(imageName: string): string {\n\t\treturn getImageAssetSrcPath(imageName, this.assetBasePath);\n\t}\n\n\t/**\n\t * This function generates the menu dropdown button for the ontario header component.\n\t *\n\t * @param viewportSize - the size of the screen where the function is being called. It can either be set to `desktop`, `tablet` or `mobile`. This dictates the classes used on the menu button, as well as the ref to keep the focus trapped when the menu is open.\n\t */\n\tprivate renderMenuButton(viewportSize: string) {\n\t\tif (!this.isMenuVisible(viewportSize)) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn (\n\t\t\t<button\n\t\t\t\tclass=\"ontario-header__menu-toggler ontario-header-button ontario-header-button--with-outline\"\n\t\t\t\tid={this.type === 'ontario' ? 'ontario-header-menu-toggler' : 'ontario-application-header-menu-toggler'}\n\t\t\t\taria-controls=\"ontario-navigation\"\n\t\t\t\taria-label={\n\t\t\t\t\tthis.menuToggled\n\t\t\t\t\t\t? this.translations.header.closeMenu[`${this.language}`]\n\t\t\t\t\t\t: this.translations.header.openMenu[`${this.language}`]\n\t\t\t\t}\n\t\t\t\taria-expanded={this.menuToggled ? 'true' : 'false'}\n\t\t\t\tonClick={this.handlemenuToggled}\n\t\t\t\ttype=\"button\"\n\t\t\t\tref={(el) => (this.menuButton = el as HTMLInputElement)}\n\t\t\t>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"ontario-header__icon-container\"\n\t\t\t\t\tinnerHTML={this.menuToggled ? OntarioIconClose : OntarioIconMenu}\n\t\t\t\t/>\n\t\t\t\t<span>Menu</span>\n\t\t\t</button>\n\t\t);\n\t}\n\n\t/**\n\t * The onEscapePressed function clears the searchbar form when Escape is pressed\n\t */\n\tprivate onEscapePressed(event: any) {\n\t\tif (event.key === 'Escape') {\n\t\t\tevent.path[0].value = '';\n\t\t}\n\t}\n\n\tprivate isMenuVisible(viewportSize: string) {\n\t\tif (this.type !== 'ontario') {\n\t\t\tconst { menuItemState, applicationHeaderInfoState } = this;\n\t\t\tconst { mobile = 0, tablet = 0, desktop = 0 } = applicationHeaderInfoState?.maxSubheaderLinks ?? {};\n\n\t\t\tconst numOfMenuItems = menuItemState?.length ?? 0;\n\n\t\t\tif (numOfMenuItems <= 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (viewportSize === DeviceTypes.Mobile) {\n\t\t\t\treturn numOfMenuItems - mobile > 0;\n\t\t\t}\n\n\t\t\tif (viewportSize === DeviceTypes.Tablet) {\n\t\t\t\treturn numOfMenuItems - tablet > 0;\n\t\t\t}\n\n\t\t\tif (viewportSize === DeviceTypes.Desktop) {\n\t\t\t\treturn numOfMenuItems - desktop > 0;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.parseApplicationHeaderInfo();\n\t\tthis.parseMenuItems();\n\t\tthis.parseLanguage();\n\t}\n\n\tcomponentDidLoad() {\n\t\tthis.isHydrated = true;\n\t}\n\n\tcomponentDidRender() {\n\t\tif (this.isHydrated && this.disableDynamicMenu === false && this.type === 'ontario') {\n\t\t\tthis.fetchOntarioMenu();\n\t\t}\n\t\tthis.handleResize();\n\t}\n\n\t/**\n\t * Handles the search focus when the search toggle button is clicked.\n\t * When search button is clicked, the search bar is in focus,\n\t * when the closed button is clicked, the search button is back into focus.\n\t */\n\tcomponentDidUpdate() {\n\t\tif (this.type == 'ontario') {\n\t\t\tif (this.searchToggle === true) this.searchBar.focus();\n\t\t\tif (this.searchToggle === false) this.searchButton.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Assigning values to elements to use them as ref\n\t */\n\theader!: HTMLElement;\n\tmenuButton!: HTMLElement;\n\tsearchBar!: HTMLInputElement;\n\tsearchButton!: HTMLInputElement;\n\n\trender() {\n\t\tconst isServiceOntarioType = this.type === 'serviceOntario';\n\n\t\tif (this.type == 'ontario') {\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"ontario-header__container\" ref={(el) => (this.header = el as HTMLInputElement)}>\n\t\t\t\t\t\t<header\n\t\t\t\t\t\t\tclass={this.searchToggle ? 'ontario-header ontario-header--search-open' : 'ontario-header'}\n\t\t\t\t\t\t\tid=\"ontario-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class=\"ontario-row\">\n\t\t\t\t\t\t\t\t{/* Ontario header logo */}\n\t\t\t\t\t\t\t\t<div class=\"ontario-header__logo-container ontario-columns ontario-small-2 ontario-medium-4 ontario-large-3\">\n\t\t\t\t\t\t\t\t\t<a href={this.translations.header.logoLink[`${this.language}`]}>\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\tclass=\"ontario-show-for-medium\"\n\t\t\t\t\t\t\t\t\t\t\tsrc={this.getImageAssetSrcPath('ontario-logo--desktop.svg')}\n\t\t\t\t\t\t\t\t\t\t\talt={this.translations.header.logoAltText[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\tclass=\"ontario-show-for-small-only\"\n\t\t\t\t\t\t\t\t\t\t\tsrc={this.getImageAssetSrcPath('ontario-logo--mobile.svg')}\n\t\t\t\t\t\t\t\t\t\t\talt={this.translations.header.logoAltText[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{/* Ontario header search input */}\n\t\t\t\t\t\t\t\t<form\n\t\t\t\t\t\t\t\t\tname=\"searchForm\"\n\t\t\t\t\t\t\t\t\tid=\"ontario-search-form-container\"\n\t\t\t\t\t\t\t\t\tonSubmit={this.handleSubmit}\n\t\t\t\t\t\t\t\t\tclass=\"ontario-header__search-container ontario-columns ontario-small-10 ontario-medium-offset-3 ontario-medium-6 ontario-large-offset-0 ontario-large-6\"\n\t\t\t\t\t\t\t\t\tnovalidate\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"ontario-search-input-field\" class=\"ontario-show-for-sr\">\n\t\t\t\t\t\t\t\t\t\t{this.translations.header.search[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tname=\"search\"\n\t\t\t\t\t\t\t\t\t\tid=\"ontario-search-input-field\"\n\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"ontario-input ontario-header__search-input\"\n\t\t\t\t\t\t\t\t\t\trequired={true}\n\t\t\t\t\t\t\t\t\t\tref={(el) => (this.searchBar = el as HTMLInputElement)}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={this.onEscapePressed}\n\t\t\t\t\t\t\t\t\t></Input>\n\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\tclassName=\"ontario-header__search-reset\"\n\t\t\t\t\t\t\t\t\t\tid=\"ontario-search-reset\"\n\t\t\t\t\t\t\t\t\t\ttype=\"reset\"\n\t\t\t\t\t\t\t\t\t\tvalue=\"\"\n\t\t\t\t\t\t\t\t\t\taria-label={this.translations.header.clearSearchField[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t></Input>\n\t\t\t\t\t\t\t\t\t<button class=\"ontario-header__search-submit\" id=\"ontario-search-submit\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"ontario-show-for-sr\">{this.translations.header.submit[`${this.language}`]}</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"ontario-header__icon-container\" innerHTML={OntarioIconSearch} />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</form>\n\n\t\t\t\t\t\t\t\t{/* Ontario header language toggle + menu button */}\n\t\t\t\t\t\t\t\t<div class=\"ontario-header__nav-right-container ontario-columns ontario-small-10 ontario-medium-8 ontario-large-3\">\n\t\t\t\t\t\t\t\t\t<ontario-language-toggle\n\t\t\t\t\t\t\t\t\t\turl={this.language === 'en' ? this.languageState?.frenchLink : this.languageState?.englishLink}\n\t\t\t\t\t\t\t\t\t\tsize=\"default\"\n\t\t\t\t\t\t\t\t\t\tcustomLanguageToggle={this.customLanguageToggle}\n\t\t\t\t\t\t\t\t\t></ontario-language-toggle>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tclass=\"ontario-header__search-toggler ontario-header-button ontario-header-button--without-outline ontario-hide-for-large\"\n\t\t\t\t\t\t\t\t\t\tid=\"ontario-header-search-toggler\"\n\t\t\t\t\t\t\t\t\t\taria-controls=\"ontario-search-form-container\"\n\t\t\t\t\t\t\t\t\t\tonClick={this.handleSearchToggle}\n\t\t\t\t\t\t\t\t\t\tref={(el) => (this.searchButton = el as HTMLInputElement)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span class=\"ontario-header__icon-container\" innerHTML={OntarioIconSearchWhite} />\n\t\t\t\t\t\t\t\t\t\t<span class=\"ontario-show-for-medium ontario-show\">\n\t\t\t\t\t\t\t\t\t\t\t{this.translations.header.search[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t{this.renderMenuButton('ontario-header')}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"ontario-header__search-close-container ontario-columns ontario-small-2 ontario-medium-3\">\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tclass=\"ontario-header__search-close ontario-header-button ontario-header-button--without-outline\"\n\t\t\t\t\t\t\t\t\t\tid=\"ontario-header-search-close\"\n\t\t\t\t\t\t\t\t\t\taria-label={this.translations.header.closeSearch[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\tonClick={this.handleSearchToggle}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span aria-hidden={`${!this.searchToggle}`}>\n\t\t\t\t\t\t\t\t\t\t\t{this.translations.header.close[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"ontario-header__icon-container\" innerHTML={OntarioIconClose} />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</header>\n\n\t\t\t\t\t\t{/* Ontario header navigation */}\n\t\t\t\t\t\t{/* Minor styling differences in placement of ontario.ca menu and application menu */}\n\t\t\t\t\t\t<ontario-header-overflow-menu menuItems={this.menuItemState}></ontario-header-overflow-menu>\n\t\t\t\t\t</div>\n\t\t\t\t\t{this.menuToggled && <div class=\"ontario-hide-for-large ontario-overlay\" />}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"ontario-application-header-container\"\n\t\t\t\t\t\tid=\"ontario-application-header\"\n\t\t\t\t\t\tref={(el) => (this.header = el as HTMLInputElement)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Ontario application header black bar */}\n\t\t\t\t\t\t<header class=\"ontario-application-header\" id=\"ontario-header\">\n\t\t\t\t\t\t\t<div class=\"ontario-row\">\n\t\t\t\t\t\t\t\t<div class=\"ontario-columns ontario-small-6 ontario-application-header__logo\">\n\t\t\t\t\t\t\t\t\t<a href={this.translations.header.logoLink[`${this.language}`]}>\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\tsrc={this.getImageAssetSrcPath('ontario-logo--desktop.svg')}\n\t\t\t\t\t\t\t\t\t\t\talt={this.translations.header.logoAltText[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"ontario-columns ontario-small-6 ontario-application-header__lang-toggle\">\n\t\t\t\t\t\t\t\t\t<ontario-language-toggle\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\turl={this.language === 'en' ? this.languageState?.frenchLink : this.languageState?.englishLink}\n\t\t\t\t\t\t\t\t\t\tcustomLanguageToggle={this.customLanguageToggle}\n\t\t\t\t\t\t\t\t\t></ontario-language-toggle>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</header>\n\n\t\t\t\t\t\t{/* Ontario application header subheader */}\n\t\t\t\t\t\t<div class=\"ontario-application-subheader-menu__container\">\n\t\t\t\t\t\t\t<section\n\t\t\t\t\t\t\t\tclass={`ontario-application-subheader ${isServiceOntarioType ? 'ontario-service-subheader' : ''}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div class=\"ontario-row\">\n\t\t\t\t\t\t\t\t\t<div class=\"ontario-columns ontario-small-12 ontario-application-subheader__container\">\n\t\t\t\t\t\t\t\t\t\t{!isServiceOntarioType ? (\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"ontario-application-subheader__heading\">\n\t\t\t\t\t\t\t\t\t\t\t\t<a href={this.applicationHeaderInfoState?.href}>{this.applicationHeaderInfoState?.title}</a>\n\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<a href={this.applicationHeaderInfoState?.href} class=\"ontario-service-subheader__link\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ontario-service-subheader__heading-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"ontario-service-subheader__heading\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.translations.header.serviceOntario[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"ontario-service-subheader__description\">{this.applicationHeaderInfoState?.title}</p>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t<div class=\"ontario-application-subheader__menu-container\">\n\t\t\t\t\t\t\t\t\t\t\t{!!this.applicationHeaderInfoState?.maxSubheaderLinks?.[this.breakpointDeviceState] && (\n\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"ontario-application-subheader__menu\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.menuItemState\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t?.slice(0, this.applicationHeaderInfoState?.maxSubheaderLinks?.[this.breakpointDeviceState])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((item) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgenerateMenuItem(item.href, item.title, item.linkIsActive, '', item.onClickHandler),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t\t{/* Render menu button if menuItemState exists, and if there are items to display in a dropdown menu */}\n\t\t\t\t\t\t\t\t\t\t\t{this.menuItemState !== undefined &&\n\t\t\t\t\t\t\t\t\t\t\t\tthis.applicationHeaderInfoState?.maxSubheaderLinks?.[this.breakpointDeviceState] !==\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.menuItemState.length &&\n\t\t\t\t\t\t\t\t\t\t\t\tthis.renderMenuButton('')}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</section>\n\t\t\t\t\t\t\t<ontario-header-overflow-menu\n\t\t\t\t\t\t\t\tmenuItems={this.menuItemState?.slice(\n\t\t\t\t\t\t\t\t\tthis.applicationHeaderInfoState?.maxSubheaderLinks?.[this.breakpointDeviceState],\n\t\t\t\t\t\t\t\t\tthis.menuItemState.length,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t></ontario-header-overflow-menu>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t{this.menuToggled && <div class=\"ontario-hide-for-large ontario-overlay\" />}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"ontario-header.js","sourceRoot":"","sources":["../../../src/components/ontario-header/ontario-header.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Prop, State, Watch, Event, EventEmitter, Listen, h, Element } from '@stencil/core';\n\nimport {\n\tApplicationHeaderInfo,\n\tLanguageToggleOptions,\n\tOntarioMenuItems,\n\tOntarioHeaderType,\n} from './ontario-header.interface';\n\nimport OntarioIconClose from '../ontario-icon/assets/ontario-icon-close-header.svg';\nimport OntarioIconMenu from '../ontario-icon/assets/ontario-icon-menu-header.svg';\nimport OntarioIconSearch from '../ontario-icon/assets/ontario-icon-search.svg';\nimport OntarioIconSearchWhite from '../ontario-icon/assets/ontario-icon-search-white.svg';\nimport OntarioHeaderDefaultData from './ontario-header-default-data.json';\n\nimport { Language } from '../../utils/common/language-types';\nimport { MenuItem } from '../../utils/common/common.interface';\nimport { DeviceTypes } from '../../utils/common/common.enum';\nimport { isClientSideRendering } from '../../utils/common/environment';\nimport { Input } from '../../utils/common/input/input';\nimport { generateMenuItem } from '../../utils/components/header/header-menu-items';\nimport { ConsoleMessageClass } from '../../utils/console-message/console-message';\nimport { ConsoleType } from '../../utils/console-message/console-message.enum';\nimport { getImageAssetSrcPath } from '../../utils/helper/assets';\nimport { determineDeviceType } from '../../utils/helper/utils';\nimport { DeviceType } from '../../utils/helper/utils-types';\nimport { validateLanguage } from '../../utils/validation/validation-functions';\n\nimport translations from '../../translations/global.i18n.json';\nimport config from '../../config.json';\n\n@Component({\n\ttag: 'ontario-header',\n\tstyleUrls: ['ontario-header.scss', 'ontario-application-header.scss', 'service-ontario-header.scss'],\n\tshadow: true,\n\tassetsDirs: ['./assets'],\n})\nexport class OntarioHeader {\n\t@Element() el: HTMLElement;\n\n\t/**\n\t * The type of header.\n\t */\n\t@Prop() type?: OntarioHeaderType = 'application';\n\n\t/**\n\t * Information pertaining to the application header. This is only necessary for the 'application' header type.\n\t *\n\t * This includes the application name, URL and optional props for the number of links in the subheader for desktop, tablet, and mobile views.\n\t *\n\t * @example\n\t * <ontario-header\n\t * type=\"application\"\n\t * application-header-info='{\n\t * \"title\": \"Application name\",\n\t * \"href\": \"/application-homepage\",\n\t *\t\t\"maxSubheaderLinks\": {\n\t *\t\t\t\"desktop\": \"3\",\n\t *\t\t\t\"tablet\": \"2\",\n\t *\t\t\t\"mobile\": \"1\"\n\t *\t\t}\n\t * }'\n\t *\t>\n\t * </ontario-header>\n\t */\n\t@Prop() applicationHeaderInfo: ApplicationHeaderInfo | string;\n\n\t/**\n\t * The items that will go inside the menu.\n\t */\n\t@Prop() menuItems: MenuItem[] | string;\n\n\t/**\n\t * Option to disable fetching of the dynamic menu from the Ontario Header API\n\t *\n\t * @example\n\t * \t<ontario-header\n\t * \t\t\ttype=\"ontario\"\n\t * \t\t\tdisable-dynamic-menu=\"false\"\n\t *\t\t\tmenu-items='[{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t}]'>\n\t *\t</ontario-header>\n\t */\n\t@Prop() disableDynamicMenu: boolean = false;\n\n\t/**\n\t * Information pertaining to the language toggle links.\n\t *\n\t * @example\n\t * <ontario-header\n\t * \tlanguage-toggle-options='{\n\t * \"englishLink\": \"/en\",\n\t * \"frenchLink\": \"/fr\"\n\t * }'\n\t * ...\n\t * >\n\t * </ontario-header>\n\t */\n\t@Prop() languageToggleOptions?: LanguageToggleOptions | string;\n\n\t/**\n\t * A custom function to pass to the language toggle button.\n\t */\n\t@Prop() customLanguageToggle?: (event: globalThis.Event) => void;\n\n\t/**\n\t * The language of the component.\n\t * This is used for translations, and is by default set through event listeners checking for a language property from the header. If none is passed, it will default to English.\n\t */\n\t@Prop({ mutable: true }) language?: Language = 'en';\n\n\t/**\n\t * The base path to an assets folder containing the Design System assets\n\t */\n\t@Prop() assetBasePath: string;\n\n\t/**\n\t * The application header information is reassigned to applicationHeaderInfoState for parsing\n\t */\n\t@State() private applicationHeaderInfoState: ApplicationHeaderInfo;\n\n\t/**\n\t * The menuItems is reassigned to itemState for parsing\n\t *\n\t * @example\n\t * \t<ontario-header\n\t * \t\t\ttype=\"ontario\"\n\t * \t\t\tdisable-dynamic-menu=\"true\"\n\t *\t\t\tmenu-items='[{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t},{\n\t *\t\t\t\t\"title\": \"Hint\",\n\t *\t\t\t\t\"href\": \"/ontario-hint\"\n\t *\t\t\t\t\"linkIsActive\": \"false\"\n\t *\t\t\t}]'>\n\t *\t</ontario-header>\n\t */\n\t@State() private menuItemState: MenuItem[];\n\n\t/**\n\t * Check to see if menu is dynamic or static\n\t */\n\t@State() private isDynamicMenu: boolean = false;\n\n\t/**\n\t * The languageToggleOptions is reassigned to languageState for parsing\n\t *\n\t * @example\n\t * \t<ontario-header\n\t *\t\tlanguage-toggle-options='{\n\t *\t\t\t\"englishLink\":\"/en\",\n\t *\t\t\t\"frenchLink\": \"/fr\"\n\t *\t\t}'\n\t *\t</ontario-header>\n\t */\n\t@State() private languageState: LanguageToggleOptions;\n\n\t/**\n\t * Toggler for the menu and the search button\n\t */\n\t@State() menuToggled: boolean = false;\n\t@State() searchToggle?: boolean = false;\n\n\t@State() translations: any = translations;\n\n\t@State() breakpointDeviceState: DeviceType;\n\n\t@Watch('applicationHeaderInfo')\n\tprivate parseApplicationHeaderInfo() {\n\t\tconst applicationHeaderInfo = this.applicationHeaderInfo;\n\t\tif (applicationHeaderInfo) {\n\t\t\ttry {\n\t\t\t\tif (typeof applicationHeaderInfo === 'string')\n\t\t\t\t\tthis.applicationHeaderInfoState = JSON.parse(applicationHeaderInfo);\n\t\t\t\telse this.applicationHeaderInfoState = applicationHeaderInfo;\n\t\t\t} catch (error) {\n\t\t\t\tconst message = new ConsoleMessageClass();\n\t\t\t\tmessage\n\t\t\t\t\t.addDesignSystemTag()\n\t\t\t\t\t.addRegularText(' failed to parse props for ')\n\t\t\t\t\t.addMonospaceText('<ontario-header>')\n\t\t\t\t\t.addRegularText(' in ')\n\t\t\t\t\t.addMonospaceText('parseApplicationHeaderInfo()')\n\t\t\t\t\t.addRegularText(' method \\n ')\n\t\t\t\t\t.addMonospaceText(error.stack)\n\t\t\t\t\t.printMessage(ConsoleType.Error);\n\n\t\t\t\tthis.applicationHeaderInfoState = {\n\t\t\t\t\ttitle: '',\n\t\t\t\t\thref: '/',\n\t\t\t\t}; // fallback on error\n\t\t\t}\n\t\t}\n\t}\n\n\t@Watch('menuItems')\n\tparseMenuItems() {\n\t\tconst isEnglish = this.language === 'en';\n\t\ttry {\n\t\t\tif (!Array.isArray(this.menuItems) && typeof this.menuItems === 'string') {\n\t\t\t\tthis.menuItemState = JSON.parse(this.menuItems);\n\t\t\t\tthis.isDynamicMenu = false;\n\t\t\t} else if (Array.isArray(this.menuItems) && this.type === 'application') {\n\t\t\t\tthis.menuItemState = this.menuItems;\n\t\t\t\tthis.isDynamicMenu = false;\n\t\t\t} else {\n\t\t\t\tthis.menuItemState = isEnglish ? OntarioHeaderDefaultData.en : OntarioHeaderDefaultData.fr;\n\t\t\t\tthis.isDynamicMenu = false;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst message = new ConsoleMessageClass();\n\t\t\tmessage\n\t\t\t\t.addDesignSystemTag()\n\t\t\t\t.addRegularText(' failed to parse props for ')\n\t\t\t\t.addMonospaceText('<ontario-header>')\n\t\t\t\t.addRegularText(' in ')\n\t\t\t\t.addMonospaceText('parseMenuItems()')\n\t\t\t\t.addRegularText(' method \\n ')\n\t\t\t\t.addMonospaceText(error.stack)\n\t\t\t\t.printMessage(ConsoleType.Error);\n\n\t\t\tthis.menuItemState = [];\n\t\t}\n\t}\n\n\t@Watch('languageToggleOptions')\n\tprivate parseLanguage() {\n\t\tconst languageToggleOptions = this.languageToggleOptions;\n\n\t\ttry {\n\t\t\tif (languageToggleOptions) {\n\t\t\t\tif (typeof languageToggleOptions === 'string') {\n\t\t\t\t\tthis.languageState = JSON.parse(languageToggleOptions);\n\t\t\t\t} else {\n\t\t\t\t\tthis.languageState = languageToggleOptions;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconst message = new ConsoleMessageClass();\n\t\t\tmessage\n\t\t\t\t.addDesignSystemTag()\n\t\t\t\t.addRegularText(' failed to parse props for ')\n\t\t\t\t.addMonospaceText('<ontario-header>')\n\t\t\t\t.addRegularText(' in ')\n\t\t\t\t.addMonospaceText('parseLanguage()')\n\t\t\t\t.addRegularText(' method \\n ')\n\t\t\t\t.addMonospaceText(error.stack)\n\t\t\t\t.printMessage(ConsoleType.Error);\n\n\t\t\tthis.languageState = {\n\t\t\t\tenglishLink: '/en',\n\t\t\t\tfrenchLink: '/fr',\n\t\t\t}; // fallback on error\n\t\t}\n\t}\n\n\t@Listen('keydown', { target: 'window' })\n\thandleKeyDown(event: KeyboardEvent) {\n\t\tif (this.menuToggled && event.key === 'Escape') {\n\t\t\tthis.menuToggled = false;\n\t\t\tthis.menuButtonToggled.emit(this.menuToggled);\n\t\t\tthis.focusMenuButton();\n\t\t}\n\t}\n\n\t/**\n\t * Logic to close the menu when anything outside the menu is clicked\n\t */\n\t@Listen('click', { capture: true, target: 'window' })\n\thandleClick(event: any) {\n\t\t// if the button is clicked, return\n\t\tif (event.composedPath().includes(this.menuButton)) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If the click was outside the current component, do the following\n\t\tif (this.menuToggled) this.menuToggled = !this.menuToggled;\n\t}\n\n\t/**\n\t * Logic to close the menu when the focus leaves the menu\n\t */\n\t@Listen('focusout', { target: 'window' })\n\thandleFocusOut(event: FocusEvent) {\n\t\tif (this.menuToggled && !this.el.contains(event.relatedTarget as Node)) {\n\t\t\tthis.menuToggled = false;\n\t\t\tthis.menuButtonToggled.emit(this.menuToggled);\n\t\t}\n\t}\n\n\t/**\n\t * Logic to set breakpointDeviceState to the appropriate device when the screen resizes\n\t */\n\t@Listen('resize', { target: 'window' })\n\thandleResize() {\n\t\tthis.breakpointDeviceState = isClientSideRendering() ? determineDeviceType() : DeviceTypes.Desktop;\n\t}\n\n\t/**\n\t * This listens for the `setAppLanguage` event sent from the language toggle when it is is connected to the DOM.\n\t * It is used for the initial language when the input component loads.\n\t */\n\t@Listen('setAppLanguage', { target: 'window' })\n\thandleSetAppLanguage(event: CustomEvent<Language> | Language) {\n\t\tthis.language = validateLanguage(event);\n\t\tthis.parseMenuItems();\n\t}\n\n\t/**\n\t * This listens for the `headerLanguageToggled` event sent from the language toggle when it is is connected to the DOM.\n\t * It is used for changing the component language after the language toggle has been activated.\n\t */\n\t@Listen('headerLanguageToggled', { target: 'window' })\n\thandleLanguageToggle(event: CustomEvent<{ oldLanguage: Language; newLanguage: Language }>) {\n\t\tthis.handleSetAppLanguage(event.detail.newLanguage);\n\t}\n\n\t/**\n\t * This event is toggled when the menu button is pressed.\n\t * The `<ontario-header-overflow-menu>` sub-component listens for this event\n\t * To trigger the showing and hiding of the overflow menu.\n\t */\n\t@Event() menuButtonToggled: EventEmitter<boolean>;\n\n\t/**\n\t * Logic to handle the menu toggling\n\t */\n\thandlemenuToggled = () => {\n\t\tthis.menuToggled = !this.menuToggled;\n\t\tthis.menuButtonToggled.emit(this.menuToggled);\n\t\tthis.searchToggle = undefined;\n\t};\n\n\t/**\n\t * Logic to handle the search toggling\n\t */\n\thandleSearchToggle = () => {\n\t\tthis.searchToggle = !this.searchToggle;\n\t};\n\n\t/**\n\t * event.preventDefault(): https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault\n\t * location.href: https://developer.mozilla.org/en-US/docs/Web/API/Location/href\n\t */\n\thandleSubmit = (event: any) => {\n\t\tevent.preventDefault();\n\t\tlocation.href = `${this.translations.header.ontarioSearchURL[`${this.language}`]}${event.target[0].value}`;\n\t};\n\n\t/**\n\t * Logic to make the focus go back to the menu button when the list ends\n\t */\n\t@Listen('endOfMenuReached', { target: 'window' })\n\tfocusMenuButton() {\n\t\tthis.menuButton.focus();\n\t}\n\n\t/**\n\t * Call to Ontario Menu API to fetch linksets to populate header component\n\t */\n\tasync fetchOntarioMenu() {\n\t\tconst isEnglish = this.language === 'en';\n\n\t\t// If menu has already been fetched and contains dynamic menu items, do not run fetch again\n\t\tif (!this.isDynamicMenu) {\n\t\t\tconst apiUrl = isEnglish\n\t\t\t\t? (config.ONTARIO_HEADER_API_URL_EN as string)\n\t\t\t\t: (config.ONTARIO_HEADER_API_URL_FR as string);\n\n\t\t\tconst response = await fetch(apiUrl)\n\t\t\t\t.then((response) => response.json())\n\t\t\t\t.then((json) => json.linkset[0].item as OntarioMenuItems[])\n\t\t\t\t.catch(() => {\n\t\t\t\t\tconsole.error('Unable to retrieve data from Ontario Menu API');\n\t\t\t\t\treturn [];\n\t\t\t\t});\n\n\t\t\tif (response.length > 0) {\n\t\t\t\tconst externalMenuItems = response.map((item) => {\n\t\t\t\t\treturn { href: item.href, title: item.title };\n\t\t\t\t});\n\t\t\t\tthis.menuItemState = externalMenuItems;\n\t\t\t\tthis.isDynamicMenu = true;\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\n\t/**\n\t * Hydration Guard Flag\n\t *\n\t * This flag is used to determine if the component has been hydrated in the browser.\n\t * It prevents certain browser-only operations, like fetching from APIs, from running\n\t * during Server-Side Rendering (SSR), where `window` and `fetch` are not available.\n\t *\n\t * The `isHydrated` flag is set to true in `componentDidLoad()` and checked before\n\t * triggering logic that should only run in the browser (e.g., `fetchOntarioMenu()`).\n\t *\n\t * Not reactive - should not be stored in State.\n\t */\n\tprivate isHydrated = false;\n\n\t/**\n\t * Generate the full path to an image asset based on the base asset path.\n\t *\n\t * - If `assetBasePath` is provided, it is used as the base path.\n\t * - If not, attempts to use Stencil's `getAssetPath` (for Stencil/Angular builds).\n\t * - If that fails (e.g., in React), falls back to `/assets/`, assuming assets are in the public folder.\n\t *\n\t * This allows the component to work across multiple environments (Stencil, Angular, React).\n\t *\n\t * @param imageName - The name of the image file.\n\t * @returns The full image path as a string.\n\t */\n\tprivate getImageAssetSrcPath(imageName: string): string {\n\t\treturn getImageAssetSrcPath(imageName, this.assetBasePath);\n\t}\n\n\t/**\n\t * This function generates the menu dropdown button for the ontario header component.\n\t *\n\t * @param viewportSize - the size of the screen where the function is being called. It can either be set to `desktop`, `tablet` or `mobile`. This dictates the classes used on the menu button, as well as the ref to keep the focus trapped when the menu is open.\n\t */\n\tprivate renderMenuButton(viewportSize: string) {\n\t\tif (!this.isMenuVisible(viewportSize)) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn (\n\t\t\t<button\n\t\t\t\tclass=\"ontario-header__menu-toggler ontario-header-button ontario-header-button--with-outline\"\n\t\t\t\tid={this.type === 'ontario' ? 'ontario-header-menu-toggler' : 'ontario-application-header-menu-toggler'}\n\t\t\t\taria-controls=\"ontario-navigation\"\n\t\t\t\taria-label={\n\t\t\t\t\tthis.menuToggled\n\t\t\t\t\t\t? this.translations.header.closeMenu[`${this.language}`]\n\t\t\t\t\t\t: this.translations.header.openMenu[`${this.language}`]\n\t\t\t\t}\n\t\t\t\taria-expanded={this.menuToggled ? 'true' : 'false'}\n\t\t\t\tonClick={this.handlemenuToggled}\n\t\t\t\ttype=\"button\"\n\t\t\t\tref={(el) => (this.menuButton = el as HTMLInputElement)}\n\t\t\t>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"ontario-header__icon-container\"\n\t\t\t\t\tinnerHTML={this.menuToggled ? OntarioIconClose : OntarioIconMenu}\n\t\t\t\t/>\n\t\t\t\t<span>Menu</span>\n\t\t\t</button>\n\t\t);\n\t}\n\n\t/**\n\t * The onEscapePressed function clears the searchbar form when Escape is pressed\n\t */\n\tprivate onEscapePressed(event: any) {\n\t\tif (event.key === 'Escape') {\n\t\t\tevent.path[0].value = '';\n\t\t}\n\t}\n\n\tprivate isMenuVisible(viewportSize: string) {\n\t\tif (this.type !== 'ontario') {\n\t\t\tconst { menuItemState, applicationHeaderInfoState } = this;\n\t\t\tconst { mobile = 0, tablet = 0, desktop = 0 } = applicationHeaderInfoState?.maxSubheaderLinks ?? {};\n\n\t\t\tconst numOfMenuItems = menuItemState?.length ?? 0;\n\n\t\t\tif (numOfMenuItems <= 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (viewportSize === DeviceTypes.Mobile) {\n\t\t\t\treturn numOfMenuItems - mobile > 0;\n\t\t\t}\n\n\t\t\tif (viewportSize === DeviceTypes.Tablet) {\n\t\t\t\treturn numOfMenuItems - tablet > 0;\n\t\t\t}\n\n\t\t\tif (viewportSize === DeviceTypes.Desktop) {\n\t\t\t\treturn numOfMenuItems - desktop > 0;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.parseApplicationHeaderInfo();\n\t\tthis.parseMenuItems();\n\t\tthis.parseLanguage();\n\t}\n\n\tcomponentDidLoad() {\n\t\tthis.isHydrated = true;\n\t}\n\n\tcomponentDidRender() {\n\t\tif (this.isHydrated && this.disableDynamicMenu === false && this.type === 'ontario') {\n\t\t\tthis.fetchOntarioMenu();\n\t\t}\n\t\tthis.handleResize();\n\t}\n\n\t/**\n\t * Handles the search focus when the search toggle button is clicked.\n\t * When search button is clicked, the search bar is in focus,\n\t * when the closed button is clicked, the search button is back into focus.\n\t */\n\tcomponentDidUpdate() {\n\t\tif (this.type == 'ontario') {\n\t\t\tif (this.searchToggle === true) this.searchBar.focus();\n\t\t\tif (this.searchToggle === false) this.searchButton.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Assigning values to elements to use them as ref\n\t */\n\theader!: HTMLElement;\n\tmenuButton!: HTMLElement;\n\tsearchBar!: HTMLInputElement;\n\tsearchButton!: HTMLInputElement;\n\n\trender() {\n\t\tconst isServiceOntarioType = this.type === 'serviceOntario';\n\n\t\tif (this.type == 'ontario') {\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"ontario-header__container\" ref={(el) => (this.header = el as HTMLInputElement)}>\n\t\t\t\t\t\t<header\n\t\t\t\t\t\t\tclass={this.searchToggle ? 'ontario-header ontario-header--search-open' : 'ontario-header'}\n\t\t\t\t\t\t\tid=\"ontario-header\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div class=\"ontario-row\">\n\t\t\t\t\t\t\t\t{/* Ontario header logo */}\n\t\t\t\t\t\t\t\t<div class=\"ontario-header__logo-container ontario-columns ontario-small-2 ontario-medium-4 ontario-large-3\">\n\t\t\t\t\t\t\t\t\t<a href={this.translations.header.logoLink[`${this.language}`]}>\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\tclass=\"ontario-show-for-medium\"\n\t\t\t\t\t\t\t\t\t\t\tsrc={this.getImageAssetSrcPath('ontario-logo--desktop.svg')}\n\t\t\t\t\t\t\t\t\t\t\talt={this.translations.header.logoAltText[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\tclass=\"ontario-show-for-small-only\"\n\t\t\t\t\t\t\t\t\t\t\tsrc={this.getImageAssetSrcPath('ontario-logo--mobile.svg')}\n\t\t\t\t\t\t\t\t\t\t\talt={this.translations.header.logoAltText[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t\t{/* Ontario header search input */}\n\t\t\t\t\t\t\t\t<form\n\t\t\t\t\t\t\t\t\tname=\"searchForm\"\n\t\t\t\t\t\t\t\t\tid=\"ontario-search-form-container\"\n\t\t\t\t\t\t\t\t\tonSubmit={this.handleSubmit}\n\t\t\t\t\t\t\t\t\tclass=\"ontario-header__search-container ontario-columns ontario-small-10 ontario-medium-offset-3 ontario-medium-6 ontario-large-offset-0 ontario-large-6\"\n\t\t\t\t\t\t\t\t\tnovalidate\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<label htmlFor=\"ontario-search-input-field\" class=\"ontario-show-for-sr\">\n\t\t\t\t\t\t\t\t\t\t{this.translations.header.search[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tname=\"search\"\n\t\t\t\t\t\t\t\t\t\tid=\"ontario-search-input-field\"\n\t\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\t\taria-autocomplete=\"none\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"ontario-input ontario-header__search-input\"\n\t\t\t\t\t\t\t\t\t\trequired={true}\n\t\t\t\t\t\t\t\t\t\tref={(el) => (this.searchBar = el as HTMLInputElement)}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={this.onEscapePressed}\n\t\t\t\t\t\t\t\t\t></Input>\n\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\tclassName=\"ontario-header__search-reset\"\n\t\t\t\t\t\t\t\t\t\tid=\"ontario-search-reset\"\n\t\t\t\t\t\t\t\t\t\ttype=\"reset\"\n\t\t\t\t\t\t\t\t\t\tvalue=\"\"\n\t\t\t\t\t\t\t\t\t\taria-label={this.translations.header.clearSearchField[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t></Input>\n\t\t\t\t\t\t\t\t\t<button class=\"ontario-header__search-submit\" id=\"ontario-search-submit\" type=\"submit\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"ontario-show-for-sr\">{this.translations.header.submit[`${this.language}`]}</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"ontario-header__icon-container\" innerHTML={OntarioIconSearch} />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</form>\n\n\t\t\t\t\t\t\t\t{/* Ontario header language toggle + menu button */}\n\t\t\t\t\t\t\t\t<div class=\"ontario-header__nav-right-container ontario-columns ontario-small-10 ontario-medium-8 ontario-large-3\">\n\t\t\t\t\t\t\t\t\t<ontario-language-toggle\n\t\t\t\t\t\t\t\t\t\turl={this.language === 'en' ? this.languageState?.frenchLink : this.languageState?.englishLink}\n\t\t\t\t\t\t\t\t\t\tsize=\"default\"\n\t\t\t\t\t\t\t\t\t\tcustomLanguageToggle={this.customLanguageToggle}\n\t\t\t\t\t\t\t\t\t></ontario-language-toggle>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tclass=\"ontario-header__search-toggler ontario-header-button ontario-header-button--without-outline ontario-hide-for-large\"\n\t\t\t\t\t\t\t\t\t\tid=\"ontario-header-search-toggler\"\n\t\t\t\t\t\t\t\t\t\taria-controls=\"ontario-search-form-container\"\n\t\t\t\t\t\t\t\t\t\tonClick={this.handleSearchToggle}\n\t\t\t\t\t\t\t\t\t\tref={(el) => (this.searchButton = el as HTMLInputElement)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span class=\"ontario-header__icon-container\" innerHTML={OntarioIconSearchWhite} />\n\t\t\t\t\t\t\t\t\t\t<span class=\"ontario-show-for-medium ontario-show\">\n\t\t\t\t\t\t\t\t\t\t\t{this.translations.header.search[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t{this.renderMenuButton('ontario-header')}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"ontario-header__search-close-container ontario-columns ontario-small-2 ontario-medium-3\">\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tclass=\"ontario-header__search-close ontario-header-button ontario-header-button--without-outline\"\n\t\t\t\t\t\t\t\t\t\tid=\"ontario-header-search-close\"\n\t\t\t\t\t\t\t\t\t\taria-label={this.translations.header.closeSearch[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\tonClick={this.handleSearchToggle}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<span aria-hidden={`${!this.searchToggle}`}>\n\t\t\t\t\t\t\t\t\t\t\t{this.translations.header.close[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"ontario-header__icon-container\" innerHTML={OntarioIconClose} />\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</header>\n\n\t\t\t\t\t\t{/* Ontario header navigation */}\n\t\t\t\t\t\t{/* Minor styling differences in placement of ontario.ca menu and application menu */}\n\t\t\t\t\t\t<ontario-header-overflow-menu menuItems={this.menuItemState}></ontario-header-overflow-menu>\n\t\t\t\t\t</div>\n\t\t\t\t\t{this.menuToggled && <div class=\"ontario-hide-for-large ontario-overlay\" />}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else {\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"ontario-application-header-container\"\n\t\t\t\t\t\tid=\"ontario-application-header\"\n\t\t\t\t\t\tref={(el) => (this.header = el as HTMLInputElement)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{/* Ontario application header black bar */}\n\t\t\t\t\t\t<header class=\"ontario-application-header\" id=\"ontario-header\">\n\t\t\t\t\t\t\t<div class=\"ontario-row\">\n\t\t\t\t\t\t\t\t<div class=\"ontario-columns ontario-small-6 ontario-application-header__logo\">\n\t\t\t\t\t\t\t\t\t<a href={this.translations.header.logoLink[`${this.language}`]}>\n\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\tsrc={this.getImageAssetSrcPath('ontario-logo--desktop.svg')}\n\t\t\t\t\t\t\t\t\t\t\talt={this.translations.header.logoAltText[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div class=\"ontario-columns ontario-small-6 ontario-application-header__lang-toggle\">\n\t\t\t\t\t\t\t\t\t<ontario-language-toggle\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\turl={this.language === 'en' ? this.languageState?.frenchLink : this.languageState?.englishLink}\n\t\t\t\t\t\t\t\t\t\tcustomLanguageToggle={this.customLanguageToggle}\n\t\t\t\t\t\t\t\t\t></ontario-language-toggle>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</header>\n\n\t\t\t\t\t\t{/* Ontario application header subheader */}\n\t\t\t\t\t\t<div class=\"ontario-application-subheader-menu__container\">\n\t\t\t\t\t\t\t<section\n\t\t\t\t\t\t\t\tclass={`ontario-application-subheader ${isServiceOntarioType ? 'ontario-service-subheader' : ''}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div class=\"ontario-row\">\n\t\t\t\t\t\t\t\t\t<div class=\"ontario-columns ontario-small-12 ontario-application-subheader__container\">\n\t\t\t\t\t\t\t\t\t\t{!isServiceOntarioType ? (\n\t\t\t\t\t\t\t\t\t\t\t<p class=\"ontario-application-subheader__heading\">\n\t\t\t\t\t\t\t\t\t\t\t\t<a href={this.applicationHeaderInfoState?.href}>{this.applicationHeaderInfoState?.title}</a>\n\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<a href={this.applicationHeaderInfoState?.href} class=\"ontario-service-subheader__link\">\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"ontario-service-subheader__heading-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"ontario-service-subheader__heading\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.translations.header.serviceOntario[`${this.language}`]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<p class=\"ontario-service-subheader__description\">{this.applicationHeaderInfoState?.title}</p>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t<div class=\"ontario-application-subheader__menu-container\">\n\t\t\t\t\t\t\t\t\t\t\t{!!this.applicationHeaderInfoState?.maxSubheaderLinks?.[this.breakpointDeviceState] && (\n\t\t\t\t\t\t\t\t\t\t\t\t<ul class=\"ontario-application-subheader__menu\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t{this.menuItemState\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t?.slice(0, this.applicationHeaderInfoState?.maxSubheaderLinks?.[this.breakpointDeviceState])\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.map((item) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgenerateMenuItem(item.href, item.title, item.linkIsActive, '', item.onClickHandler),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t\t)}\n\n\t\t\t\t\t\t\t\t\t\t\t{/* Render menu button if menuItemState exists, and if there are items to display in a dropdown menu */}\n\t\t\t\t\t\t\t\t\t\t\t{this.menuItemState !== undefined &&\n\t\t\t\t\t\t\t\t\t\t\t\tthis.applicationHeaderInfoState?.maxSubheaderLinks?.[this.breakpointDeviceState] !==\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.menuItemState.length &&\n\t\t\t\t\t\t\t\t\t\t\t\tthis.renderMenuButton('')}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</section>\n\t\t\t\t\t\t\t<ontario-header-overflow-menu\n\t\t\t\t\t\t\t\tmenuItems={this.menuItemState?.slice(\n\t\t\t\t\t\t\t\t\tthis.applicationHeaderInfoState?.maxSubheaderLinks?.[this.breakpointDeviceState],\n\t\t\t\t\t\t\t\t\tthis.menuItemState.length,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t></ontario-header-overflow-menu>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t{this.menuToggled && <div class=\"ontario-hide-for-large ontario-overlay\" />}\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t}\n}\n"]}