Foundation Header
foundation-header
is a micro front-end consisting of a navigation bar and a flyout menu, with routing, account-logout capabilities, and the ability to change the current language.
Adding a header component to the template
Here is an example of a simple navigation bar with two navigation items. This header does not show additional control buttons but displays the default ones, allowing for showing submenus, the logged-in user's name, and the connection status.
- Genesis
- React
- Angular
Declaration:
<foundation-header></foundation-header>
Usage:
@customElement({
name: 'header-example',
template: html`
<foundation-header
:routeNavItems=${(x) => x.navItems}
></foundation-header>
`,
})
export class HeaderExample extends GenesisElement {
const navItems = [{
title: "Home",
icon: {
name: "home",
variant: "solid",
},
navId: "header",
placementIndex: 0,
routePath: "home",
routeName: "home",
},
{
title: "Grids",
icon: {
name: "table",
variant: "solid",
},
navId: "header",
placementIndex: 1,
routePath: "grids",
routeName: "grids",
}];
}
Declaration:
<foundation-header></foundation-header>
Usage:
export default function HeaderExample({}) {
const navItems = [{
title: "Home",
icon: {
name: "home",
variant: "solid",
},
navId: "header",
placementIndex: 0,
routePath: "home",
routeName: "home",
},
{
title: "Grids",
icon: {
name: "table",
variant: "solid",
},
navId: "header",
placementIndex: 1,
routePath: "grids",
routeName: "grids",
}];
return (
<foundation-header
routeNavItems={navItems}
></foundation-header>
);
}
Declaration:
<foundation-header></foundation-header>
Usage
import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
@Component({
selector: 'header-example',
template: `
<foundation-header
[routeNavItems]="navItems"
></foundation-header>
`,
standalone: true,
schemas: [CUSTOM_ELEMENTS_SCHEMA],
})
export class HeaderExampleComponent {
navItems = [{
title: "Home",
icon: {
name: "home",
variant: "solid",
},
navId: "header",
placementIndex: 0,
routePath: "home",
routeName: "home",
},
{
title: "Grids",
icon: {
name: "table",
variant: "solid",
},
navId: "header",
placementIndex: 1,
routePath: "grids",
routeName: "grids",
}];
}
Attributes
Attribute | Type | Use | Example |
---|---|---|---|
logo-src | string | Optional attribute which sets the source of the image in the navigation bar and flyout menu. The Genesis logo will be shown if this attribute is not provided. |
|
logo-alt-text | string | Optional attribute which controls the alt text of the logo. If this attribute is not set then the alt text is set to 'Corporate Logo'. |
|
show-luminance-toggle-button | boolean | Boolean attribute which controls whether the navigation bar will display the luminance toggle icon. |
|
show-misc-toggle-button | boolean | Boolean attribute which controls whether the navigation bar will display the miscellaneous behaviour icon. |
|
show-notification-button | boolean | Boolean attribute which controls whether the navigation bar will display the show notification icon. |
|
show-connection-indicator | boolean | Boolean attribute which controls whether the navigation bar will display the connection indicator. |
|
show-language-selector | boolean | Boolean attribute which controls whether the navigation bar will display the language selector. |
|
hide-side-bar | boolean | Boolean attribute which controls whether the navigation bar will display the side bar. |
|
Properties
Property | Type | Use | Example |
---|---|---|---|
userName | string | Username of the logged in user. |
|
languageOptions | LanguageOptions | Object which defines the language options to be displayed in the language selector. |
|
routeNavItems | FoundationRouteNavItem[] | Array of FoundationRouteNavItems which define the route buttons to be displayed in the navigation bar. |
|
Slots
Slot Name | Description |
---|---|
menu-contents | Slot for adding custom content to the flyout menu (side navigation). |
routes | Slot for adding custom route buttons to the navigation bar. |
routes-end | Slot for adding custom route buttons to the end of the navigation bar. |
Parts
Part Name | Description |
---|---|
dynamic-template | The element representing the dynamic template content. |
Methods
Method Name | Description |
---|---|
logout | Logs the user out of their session. |
navigateTo | Changes the route of the current page. |
Fired Events
Event Name | Type | Description | Example |
---|---|---|---|
luminance-icon-clicked | void | Dispatched when the user clicks on the luminance toggle icon in the navigation bar. |
|
misc-icon-clicked | void | Dispatched when the user clicks on the miscellaneous behaviour icon in the navigation bar. |
|
notification-icon-clicked | void | Dispatched when the user clicks on the notification icon in the navigation bar. |
|
language-changed | void | Dispatched when the user changes the language in the language selector. |
|
info
For a full list of attributes and properties, see API documents.