@genesislcap/foundation-header 14.278.3 → 14.280.0

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.
@@ -287,7 +287,7 @@
287
287
  {
288
288
  "kind": "variable",
289
289
  "name": "navTemplate",
290
- "default": "html<Navigation>`\n ${when((x) => !x.hideSideBar, sideNavTemplate)}\n <div class=\"nav-listbox\" data-test-id=\"nav-bar\" role=\"navigation\" aria-label=\"Main menu\">\n ${app.registerElementsTarget<HeaderTargetId>('header-start')}\n <div class=\"nav-leftside\">\n ${app.registerElementsTarget<NavTargetId>('nav-start')}\n ${when(\n (x) => !x.hideSideBar,\n html<Navigation>`\n <${buttonTag}\n class=\"bars-container\"\n @click=${(x) => x.toggleNavVisibility()}\n data-test-id=\"hamburger-menu\"\n aria-label=\"Toggle side menu\"\n aria-controls=\"side-nav\"\n aria-expanded=${(x) => x.sideNavOpen}\n appearance=\"stealth\"\n @focusin=${(x) => x.closeNav()}\n >\n <${iconTag}\n name=\"bars\"\n part=\"nav-visibility-icon\"\n class=\"nav-visibility-icon\"\n >\n </${iconTag}>\n </${buttonTag}>\n `,\n )}\n <div class=\"logo-container\" data-test-id=\"nav-bar-logo\">\n <img\n src=${(x) => x.logoSrc}\n class=\"logo\"\n part=\"logo\"\n data-test-id=\"logo\"\n alt=\"${(x) => x.logoAltText}\"\n />\n </div>\n <slot name=\"routes\" data-test-id=\"route-buttons\">\n ${(x) => (x.routeNavItems ? routeNavItemsTemplate('header') : defaultRouteNavItemsTemplate)}\n </slot>\n ${app.registerElementsTarget<NavTargetId>('nav')}\n </div>\n <div class=\"nav-rightside\">\n ${app.registerElementsTarget<NavTargetId>('nav-end')}\n <slot name=\"routes-end\" data-test-id=\"route-end-buttons\"></slot>\n ${when(\n (x) => x.showLuminanceToggleButton,\n html<Navigation>`\n <div\n class=\"icon-container\"\n data-test-id=\"luminance-toggle-button\"\n part=\"luminance-button\"\n aria-label=\"Luminance toggle\"\n >\n <${iconTag}\n @click=${(x) => x.luminanceIconEvent()}\n variant=\"regular\"\n name=\"moon\"\n part=\"luminance-icon\"\n ></${iconTag}>\n </div>\n `,\n )}\n ${when(\n (x) => x.showMiscToggleButton,\n html<Navigation>`\n <div class=\"icon-container\" data-test-id=\"misc-toggle-button\" part=\"misc-button\" aria-label=\"Misc icon\">\n <${iconTag} @click=${(x) => x.miscIconEvent()} name=\"th\" part=\"misc-icon\">\n </${iconTag}>\n </div>\n `,\n )}\n ${when(\n (x) => x.showConnectionIndicator,\n html<Navigation>`\n <div class=\"connection-indicator-container\" data-test-id=\"connection-indicator\">\n <${connectionIndicatorTag} show-label=\"false\">\n </${connectionIndicatorTag}>\n </div>\n `,\n )}\n ${when(\n (x) => x.showLanguageSelector && x.languageOptions,\n html<Navigation>`\n <${selectTag}\n class=\"language-selector\"\n position=\"below\"\n data-test-id=\"language-selector\"\n part=\"language-selector\"\n @change=\"${(x, c) => x.changeLanguage(c.event as CustomEvent)}\"\n aria-label=\"Language selector\"\n >\n ${repeat(\n (x) => x.languageOptions.availableLanguages,\n html`\n <${optionTag}\n value=\"${(x) => x}\"\n ?selected=\"${(x, c) => x === c.parent.languageOptions.selectedLanguage}\"\n >\n ${(x) => x.toUpperCase()}\n </${optionTag}>\n `,\n )}\n </${selectTag}>\n `,\n )}\n\n <${buttonTag} appearance=\"neutral-grey\" data-test-id=\"user-button\" class=\"nav-button\" aria-label=\"User button\">\n <${iconTag} name=\"user-circle\"></${iconTag}>\n ${(x) => x.userName}\n </${buttonTag}>\n </div>\n ${app.registerElementsTarget<HeaderTargetId>(['header', 'header-end'])}\n </div>\n`",
290
+ "default": "html<Navigation>`\n ${when((x) => !x.hideSideBar, sideNavTemplate)}\n <div class=\"nav-listbox\" data-test-id=\"nav-bar\" role=\"navigation\" aria-label=\"Main menu\">\n ${app.registerElementsTarget<HeaderTargetId>('header-start')}\n <div class=\"nav-leftside\">\n ${app.registerElementsTarget<NavTargetId>('nav-start')}\n ${when(\n (x) => !x.hideSideBar,\n html<Navigation>`\n <${buttonTag}\n class=\"bars-container\"\n @click=${(x) => x.toggleNavVisibility()}\n data-test-id=\"hamburger-menu\"\n aria-label=\"Toggle side menu\"\n aria-controls=\"side-nav\"\n aria-expanded=${(x) => x.sideNavOpen}\n appearance=\"stealth\"\n @focusin=${(x) => x.closeNav()}\n >\n <${iconTag}\n name=\"bars\"\n part=\"nav-visibility-icon\"\n class=\"nav-visibility-icon\"\n >\n </${iconTag}>\n </${buttonTag}>\n `,\n )}\n <div class=\"logo-container\" data-test-id=\"nav-bar-logo\">\n <img\n src=${(x) => x.logoSrc}\n class=\"logo\"\n part=\"logo\"\n data-test-id=\"logo\"\n alt=\"${(x) => x.logoAltText}\"\n />\n </div>\n <slot name=\"routes\" data-test-id=\"route-buttons\">\n ${(x) => (x.routeNavItems ? routeNavItemsTemplate('header') : defaultRouteNavItemsTemplate)}\n </slot>\n ${app.registerElementsTarget<NavTargetId>('nav')}\n </div>\n <div class=\"nav-rightside\">\n ${app.registerElementsTarget<NavTargetId>('nav-end')}\n <slot name=\"routes-end\" data-test-id=\"route-end-buttons\"></slot>\n ${when(\n (x) => x.showLuminanceToggleButton,\n html<Navigation>`\n <div\n class=\"icon-container\"\n data-test-id=\"luminance-toggle-button\"\n part=\"luminance-button\"\n aria-label=\"Luminance toggle\"\n >\n <${iconTag}\n @click=${(x) => x.luminanceIconEvent()}\n variant=\"regular\"\n name=\"moon\"\n part=\"luminance-icon\"\n ></${iconTag}>\n </div>\n `,\n )}\n ${when(\n (x) => x.showMiscToggleButton,\n html<Navigation>`\n <div class=\"icon-container\" data-test-id=\"misc-toggle-button\" part=\"misc-button\" aria-label=\"Misc icon\">\n <${iconTag} @click=${(x) => x.miscIconEvent()} name=\"th\" part=\"misc-icon\">\n </${iconTag}>\n </div>\n `,\n )}\n ${when(\n (x) => x.showConnectionIndicator,\n html<Navigation>`\n <div class=\"connection-indicator-container\" data-test-id=\"connection-indicator\">\n <${connectionIndicatorTag} show-label=\"false\">\n </${connectionIndicatorTag}>\n </div>\n `,\n )}\n ${when(\n (x) => x.showLanguageSelector && x.languageOptions,\n html<Navigation>`\n <${selectTag}\n class=\"language-selector\"\n position=\"below\"\n data-test-id=\"language-selector\"\n part=\"language-selector\"\n @change=\"${(x, c) => x.changeLanguage(c.event as CustomEvent)}\"\n aria-label=\"Language selector\"\n >\n ${repeat(\n (x) => x.languageOptions.availableLanguages,\n html`\n <${optionTag}\n value=\"${(x) => x}\"\n ?selected=\"${(x, c) => x === c.parent.languageOptions.selectedLanguage}\"\n >\n ${(x) => x.toUpperCase()}\n </${optionTag}>\n `,\n )}\n </${selectTag}>\n `,\n )}\n ${() => accountMenuTemplate}\n </div>\n ${app.registerElementsTarget<HeaderTargetId>(['header', 'header-end'])}\n </div>\n`",
291
291
  "description": "Template for Navigation class",
292
292
  "return": {
293
293
  "type": {
@@ -446,6 +446,15 @@
446
446
  },
447
447
  "description": "Boolean attribute which controls whether to include the sideNav component\nControl via`hide-side-bar`"
448
448
  },
449
+ {
450
+ "kind": "field",
451
+ "name": "logoutButtonPosition",
452
+ "type": {
453
+ "text": "'side-nav' | 'account-menu' | 'none'"
454
+ },
455
+ "default": "'side-nav'",
456
+ "description": "String attribute which controls the position of the logout button in the header\nControl via `logout-button-position`"
457
+ },
449
458
  {
450
459
  "kind": "field",
451
460
  "name": "routeButtons",
@@ -463,6 +472,24 @@
463
472
  },
464
473
  "description": "If present the defined @genesislcap/foundation-ui#FoundationRouteNavItem | FoundationRouteNavItems will be rendered in the header 'routes' slot"
465
474
  },
475
+ {
476
+ "kind": "field",
477
+ "name": "showAccountMenu",
478
+ "type": {
479
+ "text": "boolean"
480
+ },
481
+ "default": "false",
482
+ "description": "Boolean attribute which controls whether to show the account menu on the navigation bar\nControl via `show-account-menu`"
483
+ },
484
+ {
485
+ "kind": "field",
486
+ "name": "shouldShowAccountMenu",
487
+ "type": {
488
+ "text": "boolean"
489
+ },
490
+ "description": "Computed property that determines if the account menu should be shown",
491
+ "readonly": true
492
+ },
466
493
  {
467
494
  "kind": "method",
468
495
  "name": "selectTemplate",
@@ -635,6 +662,24 @@
635
662
  },
636
663
  "description": "Boolean attribute which controls whether to include the sideNav component\nControl via`hide-side-bar`",
637
664
  "fieldName": "hideSideBar"
665
+ },
666
+ {
667
+ "name": "logout-button-position",
668
+ "type": {
669
+ "text": "'side-nav' | 'account-menu' | 'none'"
670
+ },
671
+ "default": "'side-nav'",
672
+ "description": "String attribute which controls the position of the logout button in the header\nControl via `logout-button-position`",
673
+ "fieldName": "logoutButtonPosition"
674
+ },
675
+ {
676
+ "name": "show-account-menu",
677
+ "type": {
678
+ "text": "boolean"
679
+ },
680
+ "default": "false",
681
+ "description": "Boolean attribute which controls whether to show the account menu on the navigation bar\nControl via `show-account-menu`",
682
+ "fieldName": "showAccountMenu"
638
683
  }
639
684
  ],
640
685
  "mixins": [
@@ -857,6 +902,19 @@
857
902
  "module": "src/main/main.ts"
858
903
  }
859
904
  },
905
+ {
906
+ "kind": "field",
907
+ "name": "logoutButtonPosition",
908
+ "type": {
909
+ "text": "'side-nav' | 'account-menu' | 'none'"
910
+ },
911
+ "default": "'side-nav'",
912
+ "description": "String attribute which controls the position of the logout button in the header\nControl via `logout-button-position`",
913
+ "inheritedFrom": {
914
+ "name": "Navigation",
915
+ "module": "src/main/main.ts"
916
+ }
917
+ },
860
918
  {
861
919
  "kind": "field",
862
920
  "name": "routeButtons",
@@ -882,6 +940,32 @@
882
940
  "module": "src/main/main.ts"
883
941
  }
884
942
  },
943
+ {
944
+ "kind": "field",
945
+ "name": "showAccountMenu",
946
+ "type": {
947
+ "text": "boolean"
948
+ },
949
+ "default": "false",
950
+ "description": "Boolean attribute which controls whether to show the account menu on the navigation bar\nControl via `show-account-menu`",
951
+ "inheritedFrom": {
952
+ "name": "Navigation",
953
+ "module": "src/main/main.ts"
954
+ }
955
+ },
956
+ {
957
+ "kind": "field",
958
+ "name": "shouldShowAccountMenu",
959
+ "type": {
960
+ "text": "boolean"
961
+ },
962
+ "description": "Computed property that determines if the account menu should be shown",
963
+ "readonly": true,
964
+ "inheritedFrom": {
965
+ "name": "Navigation",
966
+ "module": "src/main/main.ts"
967
+ }
968
+ },
885
969
  {
886
970
  "kind": "method",
887
971
  "name": "selectTemplate",
@@ -1088,6 +1172,32 @@
1088
1172
  "name": "Navigation",
1089
1173
  "module": "src/main/main.ts"
1090
1174
  }
1175
+ },
1176
+ {
1177
+ "name": "logout-button-position",
1178
+ "type": {
1179
+ "text": "'side-nav' | 'account-menu' | 'none'"
1180
+ },
1181
+ "default": "'side-nav'",
1182
+ "description": "String attribute which controls the position of the logout button in the header\nControl via `logout-button-position`",
1183
+ "fieldName": "logoutButtonPosition",
1184
+ "inheritedFrom": {
1185
+ "name": "Navigation",
1186
+ "module": "src/main/main.ts"
1187
+ }
1188
+ },
1189
+ {
1190
+ "name": "show-account-menu",
1191
+ "type": {
1192
+ "text": "boolean"
1193
+ },
1194
+ "default": "false",
1195
+ "description": "Boolean attribute which controls whether to show the account menu on the navigation bar\nControl via `show-account-menu`",
1196
+ "fieldName": "showAccountMenu",
1197
+ "inheritedFrom": {
1198
+ "name": "Navigation",
1199
+ "module": "src/main/main.ts"
1200
+ }
1091
1201
  }
1092
1202
  ],
1093
1203
  "events": [
@@ -1248,6 +1358,32 @@
1248
1358
  "name": "Navigation",
1249
1359
  "module": "src/main/main.ts"
1250
1360
  }
1361
+ },
1362
+ {
1363
+ "name": "logout-button-position",
1364
+ "type": {
1365
+ "text": "'side-nav' | 'account-menu' | 'none'"
1366
+ },
1367
+ "default": "'side-nav'",
1368
+ "description": "String attribute which controls the position of the logout button in the header\nControl via `logout-button-position`",
1369
+ "fieldName": "logoutButtonPosition",
1370
+ "inheritedFrom": {
1371
+ "name": "Navigation",
1372
+ "module": "src/main/main.ts"
1373
+ }
1374
+ },
1375
+ {
1376
+ "name": "show-account-menu",
1377
+ "type": {
1378
+ "text": "boolean"
1379
+ },
1380
+ "default": "false",
1381
+ "description": "Boolean attribute which controls whether to show the account menu on the navigation bar\nControl via `show-account-menu`",
1382
+ "fieldName": "showAccountMenu",
1383
+ "inheritedFrom": {
1384
+ "name": "Navigation",
1385
+ "module": "src/main/main.ts"
1386
+ }
1251
1387
  }
1252
1388
  ],
1253
1389
  "members": [
@@ -1444,6 +1580,19 @@
1444
1580
  "module": "src/main/main.ts"
1445
1581
  }
1446
1582
  },
1583
+ {
1584
+ "kind": "field",
1585
+ "name": "logoutButtonPosition",
1586
+ "type": {
1587
+ "text": "'side-nav' | 'account-menu' | 'none'"
1588
+ },
1589
+ "default": "'side-nav'",
1590
+ "description": "String attribute which controls the position of the logout button in the header\nControl via `logout-button-position`",
1591
+ "inheritedFrom": {
1592
+ "name": "Navigation",
1593
+ "module": "src/main/main.ts"
1594
+ }
1595
+ },
1447
1596
  {
1448
1597
  "kind": "field",
1449
1598
  "name": "routeButtons",
@@ -1469,6 +1618,32 @@
1469
1618
  "module": "src/main/main.ts"
1470
1619
  }
1471
1620
  },
1621
+ {
1622
+ "kind": "field",
1623
+ "name": "showAccountMenu",
1624
+ "type": {
1625
+ "text": "boolean"
1626
+ },
1627
+ "default": "false",
1628
+ "description": "Boolean attribute which controls whether to show the account menu on the navigation bar\nControl via `show-account-menu`",
1629
+ "inheritedFrom": {
1630
+ "name": "Navigation",
1631
+ "module": "src/main/main.ts"
1632
+ }
1633
+ },
1634
+ {
1635
+ "kind": "field",
1636
+ "name": "shouldShowAccountMenu",
1637
+ "type": {
1638
+ "text": "boolean"
1639
+ },
1640
+ "description": "Computed property that determines if the account menu should be shown",
1641
+ "readonly": true,
1642
+ "inheritedFrom": {
1643
+ "name": "Navigation",
1644
+ "module": "src/main/main.ts"
1645
+ }
1646
+ },
1472
1647
  {
1473
1648
  "kind": "method",
1474
1649
  "name": "selectTemplate",
@@ -1822,6 +1997,19 @@
1822
1997
  "module": "src/main/main.ts"
1823
1998
  }
1824
1999
  },
2000
+ {
2001
+ "kind": "field",
2002
+ "name": "logoutButtonPosition",
2003
+ "type": {
2004
+ "text": "'side-nav' | 'account-menu' | 'none'"
2005
+ },
2006
+ "default": "'side-nav'",
2007
+ "description": "String attribute which controls the position of the logout button in the header\nControl via `logout-button-position`",
2008
+ "inheritedFrom": {
2009
+ "name": "Navigation",
2010
+ "module": "src/main/main.ts"
2011
+ }
2012
+ },
1825
2013
  {
1826
2014
  "kind": "field",
1827
2015
  "name": "routeButtons",
@@ -1847,6 +2035,32 @@
1847
2035
  "module": "src/main/main.ts"
1848
2036
  }
1849
2037
  },
2038
+ {
2039
+ "kind": "field",
2040
+ "name": "showAccountMenu",
2041
+ "type": {
2042
+ "text": "boolean"
2043
+ },
2044
+ "default": "false",
2045
+ "description": "Boolean attribute which controls whether to show the account menu on the navigation bar\nControl via `show-account-menu`",
2046
+ "inheritedFrom": {
2047
+ "name": "Navigation",
2048
+ "module": "src/main/main.ts"
2049
+ }
2050
+ },
2051
+ {
2052
+ "kind": "field",
2053
+ "name": "shouldShowAccountMenu",
2054
+ "type": {
2055
+ "text": "boolean"
2056
+ },
2057
+ "description": "Computed property that determines if the account menu should be shown",
2058
+ "readonly": true,
2059
+ "inheritedFrom": {
2060
+ "name": "Navigation",
2061
+ "module": "src/main/main.ts"
2062
+ }
2063
+ },
1850
2064
  {
1851
2065
  "kind": "method",
1852
2066
  "name": "logout",
@@ -2041,6 +2255,32 @@
2041
2255
  "name": "Navigation",
2042
2256
  "module": "src/main/main.ts"
2043
2257
  }
2258
+ },
2259
+ {
2260
+ "name": "logout-button-position",
2261
+ "type": {
2262
+ "text": "'side-nav' | 'account-menu' | 'none'"
2263
+ },
2264
+ "default": "'side-nav'",
2265
+ "description": "String attribute which controls the position of the logout button in the header\nControl via `logout-button-position`",
2266
+ "fieldName": "logoutButtonPosition",
2267
+ "inheritedFrom": {
2268
+ "name": "Navigation",
2269
+ "module": "src/main/main.ts"
2270
+ }
2271
+ },
2272
+ {
2273
+ "name": "show-account-menu",
2274
+ "type": {
2275
+ "text": "boolean"
2276
+ },
2277
+ "default": "false",
2278
+ "description": "Boolean attribute which controls whether to show the account menu on the navigation bar\nControl via `show-account-menu`",
2279
+ "fieldName": "showAccountMenu",
2280
+ "inheritedFrom": {
2281
+ "name": "Navigation",
2282
+ "module": "src/main/main.ts"
2283
+ }
2044
2284
  }
2045
2285
  ],
2046
2286
  "events": [
@@ -2299,6 +2539,12 @@
2299
2539
  }
2300
2540
  ]
2301
2541
  },
2542
+ {
2543
+ "kind": "javascript-module",
2544
+ "path": "src/templates/rapid.template.ts",
2545
+ "declarations": [],
2546
+ "exports": []
2547
+ },
2302
2548
  {
2303
2549
  "kind": "javascript-module",
2304
2550
  "path": "src/tags/index.ts",
@@ -2320,12 +2566,6 @@
2320
2566
  "declarations": [],
2321
2567
  "exports": []
2322
2568
  },
2323
- {
2324
- "kind": "javascript-module",
2325
- "path": "src/templates/rapid.template.ts",
2326
- "declarations": [],
2327
- "exports": []
2328
- },
2329
2569
  {
2330
2570
  "kind": "javascript-module",
2331
2571
  "path": "src/utils/index.ts",
@@ -3,8 +3,8 @@ import { I18next } from '@genesislcap/foundation-i18n';
3
3
  import { LoginRouting } from '@genesislcap/foundation-login';
4
4
  import { FoundationRouteNavItem } from '@genesislcap/foundation-ui';
5
5
  import { User } from '@genesislcap/foundation-user';
6
- import { Container } from '@genesislcap/web-core';
7
6
  import type { ViewTemplate } from '@genesislcap/web-core';
7
+ import { Container } from '@genesislcap/web-core';
8
8
  import { HeaderConfig } from '../config/config';
9
9
  /**
10
10
  * Events dispatched by the navigation control buttons
@@ -73,17 +73,11 @@ declare const Navigation_base: abstract new (...args: any[]) => {
73
73
  readonly scrollWidth: number;
74
74
  readonly shadowRoot: ShadowRoot;
75
75
  slot: string;
76
- readonly tagName: string; /**
77
- * @internal
78
- * Flag to indicate if the component is ready
79
- */
76
+ readonly tagName: string;
80
77
  attachShadow(init: ShadowRootInit): ShadowRoot;
81
78
  closest<K_3 extends keyof HTMLElementTagNameMap>(selector: K_3): HTMLElementTagNameMap[K_3];
82
79
  closest<K_4 extends keyof SVGElementTagNameMap>(selector: K_4): SVGElementTagNameMap[K_4];
83
80
  closest<E extends Element = Element>(selectors: string): E;
84
- /**
85
- * Called when the component is connected to the DOM
86
- */
87
81
  getAttribute(qualifiedName: string): string;
88
82
  getAttributeNS(namespace: string, localName: string): string;
89
83
  getAttributeNames(): string[];
@@ -120,7 +114,9 @@ declare const Navigation_base: abstract new (...args: any[]) => {
120
114
  scrollTo(options?: ScrollToOptions): void;
121
115
  scrollTo(x: number, y: number): void;
122
116
  setAttribute(qualifiedName: string, value: string): void;
123
- setAttributeNS(namespace: string, qualifiedName: string, value: string): void;
117
+ setAttributeNS(namespace: string, qualifiedName: string, value: string): void; /**
118
+ * @internal
119
+ */
124
120
  setAttributeNode(attr: Attr): Attr;
125
121
  setAttributeNodeNS(attr: Attr): Attr;
126
122
  setPointerCapture(pointerId: number): void;
@@ -135,9 +131,7 @@ declare const Navigation_base: abstract new (...args: any[]) => {
135
131
  readonly nodeName: string;
136
132
  readonly nodeType: number;
137
133
  nodeValue: string;
138
- readonly parentElement: HTMLElement; /**
139
- * Object which defines the language options to be displayed in the language selector
140
- */
134
+ readonly parentElement: HTMLElement;
141
135
  readonly parentNode: ParentNode;
142
136
  readonly previousSibling: ChildNode;
143
137
  textContent: string;
@@ -148,7 +142,11 @@ declare const Navigation_base: abstract new (...args: any[]) => {
148
142
  getRootNode(options?: GetRootNodeOptions): Node;
149
143
  hasChildNodes(): boolean;
150
144
  insertBefore<T_1 extends Node>(node: T_1, child: Node): T_1;
151
- isDefaultNamespace(namespace: string): boolean;
145
+ isDefaultNamespace(namespace: string): boolean; /**
146
+ * Boolean attribute which controls whether to include the sideNav component
147
+ * Control via`hide-side-bar`
148
+ *
149
+ */
152
150
  isEqualNode(otherNode: Node): boolean;
153
151
  isSameNode(otherNode: Node): boolean;
154
152
  lookupNamespaceURI(prefix: string): string;
@@ -228,41 +226,18 @@ declare const Navigation_base: abstract new (...args: any[]) => {
228
226
  readonly children: HTMLCollection;
229
227
  readonly firstElementChild: Element;
230
228
  readonly lastElementChild: Element;
231
- append(...nodes: (string | Node)[]): void;
229
+ append(...nodes: (string | Node)[]): void; /**
230
+ * Logs the user out of their session
231
+ *
232
+ * @public
233
+ */
232
234
  prepend(...nodes: (string | Node)[]): void;
233
235
  querySelector<K_7 extends keyof HTMLElementTagNameMap>(selectors: K_7): HTMLElementTagNameMap[K_7];
234
236
  querySelector<K_8 extends keyof SVGElementTagNameMap>(selectors: K_8): SVGElementTagNameMap[K_8];
235
237
  querySelector<E_1 extends Element = Element>(selectors: string): E_1;
236
- querySelectorAll<K_9 extends keyof HTMLElementTagNameMap>(selectors: K_9): NodeListOf<HTMLElementTagNameMap[K_9]>; /**
237
- * Emits the event corresponding to the luminance icon being clicked
238
- *
239
- * @remarks
240
- *
241
- * Activated when the user clicks on the moon icon on the navigation
242
- * bar right hand side
243
- *
244
- * @internal
245
- */
246
- querySelectorAll<K_10 extends keyof SVGElementTagNameMap>(selectors: K_10): NodeListOf<SVGElementTagNameMap[K_10]>; /**
247
- * Emits the event corresponding to the luminance icon being clicked
248
- *
249
- * @remarks
250
- *
251
- * Activated when the user clicks on the moon icon on the navigation
252
- * bar right hand side
253
- *
254
- * @internal
255
- */
256
- querySelectorAll<E_2 extends Element = Element>(selectors: string): NodeListOf<E_2>; /**
257
- * Emits the event corresponding to the luminance icon being clicked
258
- *
259
- * @remarks
260
- *
261
- * Activated when the user clicks on the moon icon on the navigation
262
- * bar right hand side
263
- *
264
- * @internal
265
- */
238
+ querySelectorAll<K_9 extends keyof HTMLElementTagNameMap>(selectors: K_9): NodeListOf<HTMLElementTagNameMap[K_9]>;
239
+ querySelectorAll<K_10 extends keyof SVGElementTagNameMap>(selectors: K_10): NodeListOf<SVGElementTagNameMap[K_10]>;
240
+ querySelectorAll<E_2 extends Element = Element>(selectors: string): NodeListOf<E_2>;
266
241
  replaceChildren(...nodes: (string | Node)[]): void;
267
242
  readonly assignedSlot: HTMLSlotElement;
268
243
  oncopy: (this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any;
@@ -285,6 +260,16 @@ declare const Navigation_base: abstract new (...args: any[]) => {
285
260
  oncanplay: (this: GlobalEventHandlers, ev: Event) => any;
286
261
  oncanplaythrough: (this: GlobalEventHandlers, ev: Event) => any;
287
262
  onchange: (this: GlobalEventHandlers, ev: Event) => any;
263
+ /**
264
+ * Emits the event corresponding to the miscellaneous icon being clicked
265
+ *
266
+ * @remarks
267
+ *
268
+ * Activated when the user clicks on the menu icon on the navigation
269
+ * bar right hand side
270
+ *
271
+ * @internal
272
+ */
288
273
  onclick: (this: GlobalEventHandlers, ev: MouseEvent) => any;
289
274
  onclose: (this: GlobalEventHandlers, ev: Event) => any;
290
275
  oncontextmenu: (this: GlobalEventHandlers, ev: MouseEvent) => any;
@@ -300,13 +285,6 @@ declare const Navigation_base: abstract new (...args: any[]) => {
300
285
  ondurationchange: (this: GlobalEventHandlers, ev: Event) => any;
301
286
  onemptied: (this: GlobalEventHandlers, ev: Event) => any;
302
287
  onended: (this: GlobalEventHandlers, ev: Event) => any;
303
- /**
304
- * ZeroHeader is a zero version of the header micro-frontend.
305
- *
306
- * @deprecated - Use RapidHeader instead.
307
- *
308
- * @internal
309
- */
310
288
  onerror: OnErrorEventHandlerNonNull;
311
289
  onfocus: (this: GlobalEventHandlers, ev: FocusEvent) => any;
312
290
  onformdata: (this: GlobalEventHandlers, ev: FormDataEvent) => any;
@@ -402,6 +380,8 @@ declare const Navigation_base: abstract new (...args: any[]) => {
402
380
  * @param show-connection-indicator - Boolean attribute which controls whether the navigation bar will display the connection indicator.
403
381
  * @param show-language-selector - Boolean attribute which controls whether the navigation bar will display the language selector.
404
382
  * @param hide-side-bar - Boolean attribute which controls whether the navigation bar will display the side bar.
383
+ * @param show-account-menu - Boolean attribute which controls whether the navigation bar will display the account menu.
384
+ * @param logout-button-position - String attribute which controls the position of the logout button in the header.
405
385
  *
406
386
  * @param userName - String which defines the username to be displayed in the navigation bar.
407
387
  * @param routeButtons - Array of objects which define the route buttons to be displayed in the navigation bar.
@@ -518,6 +498,15 @@ export declare class Navigation extends Navigation_base {
518
498
  *
519
499
  */
520
500
  hideSideBar: boolean;
501
+ /**
502
+ * String attribute which controls the position of the logout button in the header
503
+ * Control via `logout-button-position`
504
+ *
505
+ * @remarks
506
+ *
507
+ * If this attribute is not set then the logout button is shown in the side nav
508
+ */
509
+ logoutButtonPosition: 'side-nav' | 'account-menu' | 'none';
521
510
  /**
522
511
  * If present the defined route buttons will be rendered in the header 'routes' slot
523
512
  *
@@ -538,6 +527,21 @@ export declare class Navigation extends Navigation_base {
538
527
  * If present the defined {@link @genesislcap/foundation-ui#FoundationRouteNavItem | FoundationRouteNavItems} will be rendered in the header 'routes' slot
539
528
  */
540
529
  routeNavItems: FoundationRouteNavItem[];
530
+ /**
531
+ * Boolean attribute which controls whether to show the account menu on the navigation bar
532
+ * Control via `show-account-menu`
533
+ *
534
+ * @remarks
535
+ * If this attribute is not set then the account menu is not shown
536
+ */
537
+ showAccountMenu: boolean;
538
+ /**
539
+ * Computed property that determines if the account menu should be shown
540
+ * @remarks
541
+ * It will be shown if the attribute is explicitly set to true
542
+ * or the logout button position is set to 'account-menu'
543
+ */
544
+ get shouldShowAccountMenu(): boolean;
541
545
  /**
542
546
  * Load remote components
543
547
  *
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/main/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/main/main.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAe,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE1E,OAAO,EAAsB,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAQ,SAAS,EAA6C,MAAM,uBAAuB,CAAC;AAEnG,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMhD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wBAAwB,EAAE,IAAI,CAAC;IAC/B,gBAAgB,EAAE,IAAI,CAAC;IACvB,mBAAmB,EAAE,IAAI,CAAC;IAC1B,2BAA2B,EAAE,IAAI,CAAC;IAClC,kBAAkB,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFAwIA;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;oDAiCH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+CAgGH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAoFH;;;;;;;;;OASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA3WL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAKa,UAAW,SAAQ,eAAsC;IACzD,SAAS,EAAG,SAAS,CAAC;IACxB,OAAO,EAAG,OAAO,CAAC;IACb,YAAY,EAAG,YAAY,CAAC;IAC7B,WAAW,EAAG,WAAW,CAAC;IACzB,YAAY,EAAG,YAAY,CAAC;IACpC,IAAI,EAAE,IAAI,CAAC;IAEjB;;;OAGG;IACS,KAAK,EAAE,OAAO,CAAS;IAEnC;;OAEG;IACgB,QAAQ,EAAE,MAAM,CAAC;IAEpC;;;OAGG;IACS,WAAW,UAAS;IAEhC;;OAEG;IACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/C;;;;;;;OAOG;IAC8B,OAAO,EAAE,GAAG,CAAQ;IAErD;;;;;;OAMG;IACmC,WAAW,EAAE,MAAM,CAAoB;IAE7E;;;;;;;OAOG;IAEH,yBAAyB,EAAE,OAAO,CAAC;IAEnC;;;;;;;OAOG;IAC8D,oBAAoB,EAAE,OAAO,CAAC;IAE/F;;;;;;;;;OASG;IAEH,uBAAuB,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,8BAA8B,IAAI,IAAI;IAItC;;;;OAIG;IAEH,uBAAuB,EAAE,OAAO,CAAQ;IAExC;;;;;;;;OAQG;IAEH,oBAAoB,EAAE,OAAO,CAAS;IAEtC;;OAEG;IACS,eAAe,EAAE,eAAe,CAG1C;IAEF;;;;OAIG;IAEH,WAAW,EAAE,OAAO,CAAC;IAErB;;;;;;;OAOG;IAEH,oBAAoB,EAAE,UAAU,GAAG,cAAc,GAAG,MAAM,CAAc;IAExE;;;;OAIG;IACS,YAAY,EAAE,KAAK,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAEH;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAiB3B;;OAEG;IACS,aAAa,EAAE,sBAAsB,EAAE,CAAC;IAEpD;;;;;;OAMG;IAEH,eAAe,EAAE,OAAO,CAAS;IAEjC;;;;;OAKG;IACH,IAAI,qBAAqB,IAAI,OAAO,CAEnC;IAED;;;;;;;;OAQG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlC;;;OAGG;IACH,cAAc,IAAI,YAAY,CAAC,UAAU,CAAC;IAI1C;;;;OAIG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAWpC;;;;;;;;;;OAUG;IACI,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUrC;;;;;OAKG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI5C;;;;;;;;;OASG;IACH,mBAAmB,IAAI,IAAI;IAI3B;;;;;;;;OAQG;IACH,QAAQ,IAAI,IAAI;IAIhB;;;;;;;;;OASG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;;;;;;;;OASG;IACH,aAAa,IAAI,IAAI;IAIrB;;;;;;;;;OASG;IACH,qBAAqB,IAAI,IAAI;IAI7B;;;;;;;;OAQG;IACH,cAAc,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKpC;;;;;;;;OAQG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAKtC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IACxC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC;AAED;;;;;;GAMG;AACH,qBAKa,UAAW,SAAQ,UAAU;CAAG;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAKa,WAAY,SAAQ,UAAU;IACzC;;;;;;;;OAQG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlC,cAAc,IAAI,YAAY,CAAC,UAAU,CAAC;CAG3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.styles.d.ts","sourceRoot":"","sources":["../../../src/main/main.styles.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,iDAqMgD,CAAC"}
1
+ {"version":3,"file":"main.styles.d.ts","sourceRoot":"","sources":["../../../src/main/main.styles.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,iDAsPgD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.template.d.ts","sourceRoot":"","sources":["../../../src/main/main.template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAY1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIzC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,UAAU,CAIpD,CAAC;AAyHF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,+BAkHvB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,yCAI/B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,UAAU,CAEpD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,+BAAc,CAAC"}
1
+ {"version":3,"file":"main.template.d.ts","sourceRoot":"","sources":["../../../src/main/main.template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAa1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIzC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,UAAU,CAIpD,CAAC;AA8HF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,+BA8GvB,CAAC;AAiDF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,yCAI/B,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,UAAU,CAEpD,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,YAAY,+BAAc,CAAC"}
@@ -6,13 +6,13 @@ import { I18next } from '@genesislcap/foundation-i18n';
6
6
  import { LoginConfig, LoginRouting } from '@genesislcap/foundation-login';
7
7
  import { FoundationRouteNav } from '@genesislcap/foundation-ui';
8
8
  import { User } from '@genesislcap/foundation-user';
9
- import { GenesisElement, customElement, observable, attr, Container } from '@genesislcap/web-core';
9
+ import { attr, Container, customElement, GenesisElement, observable } from '@genesislcap/web-core';
10
10
  import logo from '../assets/logo.svg';
11
11
  import { HeaderConfig } from '../config/config';
12
12
  import { rapidTemplate } from '../templates/rapid.template';
13
13
  import { logger } from '../utils';
14
14
  import { MainStyles as styles } from './main.styles';
15
- import { dynamicTemplate as template, LoadingTemplate, mainTemplate } from './main.template';
15
+ import { LoadingTemplate, mainTemplate, dynamicTemplate as template } from './main.template';
16
16
  /**
17
17
  * Navigation micro-frontend includes navigation bar and flyout menu
18
18
  *
@@ -33,6 +33,8 @@ import { dynamicTemplate as template, LoadingTemplate, mainTemplate } from './ma
33
33
  * @param show-connection-indicator - Boolean attribute which controls whether the navigation bar will display the connection indicator.
34
34
  * @param show-language-selector - Boolean attribute which controls whether the navigation bar will display the language selector.
35
35
  * @param hide-side-bar - Boolean attribute which controls whether the navigation bar will display the side bar.
36
+ * @param show-account-menu - Boolean attribute which controls whether the navigation bar will display the account menu.
37
+ * @param logout-button-position - String attribute which controls the position of the logout button in the header.
36
38
  *
37
39
  * @param userName - String which defines the username to be displayed in the navigation bar.
38
40
  * @param routeButtons - Array of objects which define the route buttons to be displayed in the navigation bar.
@@ -102,6 +104,23 @@ let Navigation = class Navigation extends EventEmitter(GenesisElement) {
102
104
  availableLanguages: Object.keys((_a = this.i18next.config.resources) !== null && _a !== void 0 ? _a : {}),
103
105
  selectedLanguage: this.i18next.config.lng,
104
106
  };
107
+ /**
108
+ * String attribute which controls the position of the logout button in the header
109
+ * Control via `logout-button-position`
110
+ *
111
+ * @remarks
112
+ *
113
+ * If this attribute is not set then the logout button is shown in the side nav
114
+ */
115
+ this.logoutButtonPosition = 'side-nav';
116
+ /**
117
+ * Boolean attribute which controls whether to show the account menu on the navigation bar
118
+ * Control via `show-account-menu`
119
+ *
120
+ * @remarks
121
+ * If this attribute is not set then the account menu is not shown
122
+ */
123
+ this.showAccountMenu = false;
105
124
  }
106
125
  /**
107
126
  * Called when the component is connected to the DOM
@@ -143,6 +162,15 @@ let Navigation = class Navigation extends EventEmitter(GenesisElement) {
143
162
  }));
144
163
  }
145
164
  }
165
+ /**
166
+ * Computed property that determines if the account menu should be shown
167
+ * @remarks
168
+ * It will be shown if the attribute is explicitly set to true
169
+ * or the logout button position is set to 'account-menu'
170
+ */
171
+ get shouldShowAccountMenu() {
172
+ return this.showAccountMenu || this.logoutButtonPosition === 'account-menu';
173
+ }
146
174
  /**
147
175
  * Load remote components
148
176
  *
@@ -358,12 +386,18 @@ __decorate([
358
386
  __decorate([
359
387
  attr({ mode: 'boolean', attribute: 'hide-side-bar' })
360
388
  ], Navigation.prototype, "hideSideBar", void 0);
389
+ __decorate([
390
+ attr({ attribute: 'logout-button-position' })
391
+ ], Navigation.prototype, "logoutButtonPosition", void 0);
361
392
  __decorate([
362
393
  observable
363
394
  ], Navigation.prototype, "routeButtons", void 0);
364
395
  __decorate([
365
396
  observable
366
397
  ], Navigation.prototype, "routeNavItems", void 0);
398
+ __decorate([
399
+ attr({ mode: 'boolean', attribute: 'show-account-menu' })
400
+ ], Navigation.prototype, "showAccountMenu", void 0);
367
401
  Navigation = __decorate([
368
402
  customElement({
369
403
  name: 'foundation-header',
@@ -1,6 +1,6 @@
1
1
  import { getApp } from '@genesislcap/foundation-shell/app';
2
2
  import { css } from '@genesislcap/web-core';
3
- import { optionTag, iconTag, flyoutTag } from '../tags';
3
+ import { flyoutTag, iconTag, optionTag } from '../tags';
4
4
  /**
5
5
  * Base styles for the foundation-header
6
6
  *
@@ -205,4 +205,53 @@ export const MainStyles = css `
205
205
  display: flex;
206
206
  flex-direction: column;
207
207
  }
208
+
209
+ .account-menu {
210
+ opacity: 0%;
211
+ visibility: hidden;
212
+ margin: 0;
213
+ background-color: var(--neutral-layer-2);
214
+ border-color: var(--neutral-fill-hover);
215
+ border: calc(var(--stroke-width) * 1px) solid var(--neutral-layer-1);
216
+ transition:
217
+ opacity 0.1s ease,
218
+ visibility 0.1s ease,
219
+ transform 0.1s ease;
220
+ transform: translateY(calc(var(--design-unit) * -5px));
221
+ padding: 0;
222
+ position: absolute;
223
+ top: 100%;
224
+ right: 0;
225
+ z-index: 1;
226
+ min-width: 130px;
227
+ }
228
+
229
+ .account-menu-wrapper:hover .account-menu {
230
+ opacity: 100%;
231
+ visibility: visible;
232
+ transform: translateY(0);
233
+ }
234
+
235
+ .account-menu-wrapper {
236
+ position: relative;
237
+ padding: 0;
238
+ margin: 0;
239
+ line-height: 0;
240
+ font-size: 0;
241
+ }
242
+
243
+ .account-button {
244
+ position: relative;
245
+ z-index: 2;
246
+ }
247
+
248
+ .account-menu-button {
249
+ height: calc(((var(--base-height-multiplier) + var(--density)) * var(--design-unit) - 8) * 1px);
250
+ width: 100%;
251
+ background-color: var(--neutral-layer-2);
252
+ }
253
+
254
+ .account-menu-button:hover {
255
+ background-color: var(--neutral-fill-hover);
256
+ }
208
257
  `.withBehaviors(getApp().registerStylesTarget('header'));
@@ -1,6 +1,6 @@
1
1
  import { getApp } from '@genesislcap/foundation-shell/app';
2
2
  import { html, repeat, when } from '@genesislcap/web-core';
3
- import { buttonTag, flyoutTag, iconTag, connectionIndicatorTag, optionTag, selectTag, providerTag, getTagHelper, } from '../tags';
3
+ import { buttonTag, connectionIndicatorTag, flyoutTag, getTagHelper, iconTag, optionTag, providerTag, selectTag, } from '../tags';
4
4
  const app = getApp();
5
5
  /**
6
6
  * Top level template for Navigation class
@@ -114,16 +114,18 @@ const sideNavTemplate = html `
114
114
  </div>
115
115
  </slot>
116
116
 
117
- <${buttonTag}
118
- slot="footer"
119
- class="logout-container"
120
- data-test-id="logout-button"
121
- @click=${(x) => x.logout()}
122
- aria-label="Sign out"
123
- >
124
- <${iconTag} name="sign-out-alt"></${iconTag}>
125
- Sign out
126
- </${buttonTag}>
117
+ ${when((x) => x.logoutButtonPosition === 'side-nav', html `
118
+ <${buttonTag}
119
+ slot="footer"
120
+ class="logout-container"
121
+ data-test-id="logout-button"
122
+ @click=${(x) => x.logout()}
123
+ aria-label="Sign out"
124
+ >
125
+ <${iconTag} name="sign-out-alt"></${iconTag}>
126
+ Sign out
127
+ </${buttonTag}>
128
+ `)}
127
129
  </${flyoutTag}>
128
130
  `;
129
131
  /**
@@ -227,14 +229,47 @@ export const navTemplate = html `
227
229
  `)}
228
230
  </${selectTag}>
229
231
  `)}
230
-
232
+ ${() => accountMenuTemplate}
233
+ </div>
234
+ ${app.registerElementsTarget(['header', 'header-end'])}
235
+ </div>
236
+ `;
237
+ const accountMenuTemplate = html `
238
+ ${when((x) => x.shouldShowAccountMenu, html `
239
+ <div class="account-menu-wrapper" part="account-menu-wrapper">
240
+ <${buttonTag}
241
+ appearance="neutral-grey"
242
+ data-test-id="user-button"
243
+ class="nav-button account-button"
244
+ aria-label="User button"
245
+ part="account-button"
246
+ >
247
+ <${iconTag} name="user-circle"></${iconTag}>
248
+ ${(x) => x.userName}
249
+ </${buttonTag}>
250
+ <nav class="account-menu" part="account-menu">
251
+ ${when((x) => x.logoutButtonPosition === 'account-menu', html `
252
+ <${buttonTag}
253
+ appearance="neutral-grey"
254
+ data-test-id="account-menu-logout-button"
255
+ class="account-menu-button"
256
+ @click=${(x) => x.logout()}
257
+ aria-label="Sign out"
258
+ part="account-menu-logout-button"
259
+ >
260
+ <${iconTag} name="sign-out-alt"></${iconTag}>
261
+ Sign out
262
+ </${buttonTag}>`)}
263
+ <slot name="account-menu"></slot>
264
+ </nav>
265
+ </div>
266
+ `)}
267
+ ${when((x) => !x.shouldShowAccountMenu, html `
231
268
  <${buttonTag} appearance="neutral-grey" data-test-id="user-button" class="nav-button" aria-label="User button">
232
269
  <${iconTag} name="user-circle"></${iconTag}>
233
270
  ${(x) => x.userName}
234
271
  </${buttonTag}>
235
- </div>
236
- ${app.registerElementsTarget(['header', 'header-end'])}
237
- </div>
272
+ `)}
238
273
  `;
239
274
  /**
240
275
  * Get the template by prefix
@@ -563,7 +563,7 @@
563
563
  {
564
564
  "kind": "Class",
565
565
  "canonicalReference": "@genesislcap/foundation-header!Navigation:class",
566
- "docComment": "/**\n * Navigation micro-frontend includes navigation bar and flyout menu\n *\n * @remarks\n *\n * `foundation-header` micro-frontend can be added to the project to include a navigation bar and flyout menu. There are multiple ways that the behaviour of the component can be configured - the icon shown on the navigation bar and flyout menu (this shows the Genesis logo by default). - navigation links at the left-hand side of the navigation bar. - the control buttons on the right-hand side of the navigation bar can be shown or hidden, and their behaviour controlled via event listeners - The contents of the flyout menu.\n *\n * @param logo - src - Option 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.\n *\n * @param logo - alt-text -Descriptive logo text.\n *\n * @param show - luminance-toggle-button - Boolean attribute which controls whether the navigation bar will display the luminance toggle icon.\n *\n * @param show - misc-toggle-button - Boolean attribute which controls whether the navigation bar will display the miscellaneous behaviour icon.\n *\n * @param notification - icon-clicked - Boolean attribute which controls whether the navigation bar will display the show notification icon.\n *\n * @param show - connection-indicator - Boolean attribute which controls whether the navigation bar will display the connection indicator.\n *\n * @param show - language-selector - Boolean attribute which controls whether the navigation bar will display the language selector.\n *\n * @param hide - side-bar - Boolean attribute which controls whether the navigation bar will display the side bar.\n *\n * @param userName - String which defines the username to be displayed in the navigation bar.\n *\n * @param routeButtons - Array of objects which define the route buttons to be displayed in the navigation bar.\n *\n * @param routeNavItems - Array of {@link @genesislcap/foundation-ui#FoundationRouteNavItem | FoundationRouteNavItems} which define the route buttons to be displayed in the navigation bar.\n *\n * @param languageOptions - Object which defines the language options to be displayed in the language selector.\n *\n * @fires\n *\n * luminance-icon-clicked - Dispatched when the user clicks on the luminance toggle icon in the navigation bar.\n *\n * @fires\n *\n * misc-icon-clicked - Dispatched when the user clicks on the miscellaneous behaviour icon in the navigation bar.\n *\n * @fires\n *\n * notification-icon-clicked - Dispatched when the user clicks on the notification icon in the navigation bar.\n *\n * @fires\n *\n * language-changed - Dispatched when the user changes the language in the language selector.\n *\n * @fires\n *\n * logout-clicked - Dispatched when the user clicks logout button.\n *\n * @public\n */\n",
566
+ "docComment": "/**\n * Navigation micro-frontend includes navigation bar and flyout menu\n *\n * @remarks\n *\n * `foundation-header` micro-frontend can be added to the project to include a navigation bar and flyout menu. There are multiple ways that the behaviour of the component can be configured - the icon shown on the navigation bar and flyout menu (this shows the Genesis logo by default). - navigation links at the left-hand side of the navigation bar. - the control buttons on the right-hand side of the navigation bar can be shown or hidden, and their behaviour controlled via event listeners - The contents of the flyout menu.\n *\n * @param logo - src - Option 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.\n *\n * @param logo - alt-text -Descriptive logo text.\n *\n * @param show - luminance-toggle-button - Boolean attribute which controls whether the navigation bar will display the luminance toggle icon.\n *\n * @param show - misc-toggle-button - Boolean attribute which controls whether the navigation bar will display the miscellaneous behaviour icon.\n *\n * @param notification - icon-clicked - Boolean attribute which controls whether the navigation bar will display the show notification icon.\n *\n * @param show - connection-indicator - Boolean attribute which controls whether the navigation bar will display the connection indicator.\n *\n * @param show - language-selector - Boolean attribute which controls whether the navigation bar will display the language selector.\n *\n * @param hide - side-bar - Boolean attribute which controls whether the navigation bar will display the side bar.\n *\n * @param show - account-menu - Boolean attribute which controls whether the navigation bar will display the account menu.\n *\n * @param logout - button-position - String attribute which controls the position of the logout button in the header.\n *\n * @param userName - String which defines the username to be displayed in the navigation bar.\n *\n * @param routeButtons - Array of objects which define the route buttons to be displayed in the navigation bar.\n *\n * @param routeNavItems - Array of {@link @genesislcap/foundation-ui#FoundationRouteNavItem | FoundationRouteNavItems} which define the route buttons to be displayed in the navigation bar.\n *\n * @param languageOptions - Object which defines the language options to be displayed in the language selector.\n *\n * @fires\n *\n * luminance-icon-clicked - Dispatched when the user clicks on the luminance toggle icon in the navigation bar.\n *\n * @fires\n *\n * misc-icon-clicked - Dispatched when the user clicks on the miscellaneous behaviour icon in the navigation bar.\n *\n * @fires\n *\n * notification-icon-clicked - Dispatched when the user clicks on the notification icon in the navigation bar.\n *\n * @fires\n *\n * language-changed - Dispatched when the user changes the language in the language selector.\n *\n * @fires\n *\n * logout-clicked - Dispatched when the user clicks logout button.\n *\n * @public\n */\n",
567
567
  "excerptTokens": [
568
568
  {
569
569
  "kind": "Content",
@@ -982,6 +982,36 @@
982
982
  "isAbstract": false,
983
983
  "name": "logout"
984
984
  },
985
+ {
986
+ "kind": "Property",
987
+ "canonicalReference": "@genesislcap/foundation-header!Navigation#logoutButtonPosition:member",
988
+ "docComment": "/**\n * String attribute which controls the position of the logout button in the header Control via `logout-button-position`\n *\n * @remarks\n *\n * If this attribute is not set then the logout button is shown in the side nav\n */\n",
989
+ "excerptTokens": [
990
+ {
991
+ "kind": "Content",
992
+ "text": "logoutButtonPosition: "
993
+ },
994
+ {
995
+ "kind": "Content",
996
+ "text": "'side-nav' | 'account-menu' | 'none'"
997
+ },
998
+ {
999
+ "kind": "Content",
1000
+ "text": ";"
1001
+ }
1002
+ ],
1003
+ "isReadonly": false,
1004
+ "isOptional": false,
1005
+ "releaseTag": "Public",
1006
+ "name": "logoutButtonPosition",
1007
+ "propertyTypeTokenRange": {
1008
+ "startIndex": 1,
1009
+ "endIndex": 2
1010
+ },
1011
+ "isStatic": false,
1012
+ "isProtected": false,
1013
+ "isAbstract": false
1014
+ },
985
1015
  {
986
1016
  "kind": "Method",
987
1017
  "canonicalReference": "@genesislcap/foundation-header!Navigation#navigateTo:member(1)",
@@ -1145,6 +1175,66 @@
1145
1175
  "isAbstract": false,
1146
1176
  "name": "selectTemplate"
1147
1177
  },
1178
+ {
1179
+ "kind": "Property",
1180
+ "canonicalReference": "@genesislcap/foundation-header!Navigation#shouldShowAccountMenu:member",
1181
+ "docComment": "/**\n * Computed property that determines if the account menu should be shown\n *\n * @remarks\n *\n * It will be shown if the attribute is explicitly set to true or the logout button position is set to 'account-menu'\n */\n",
1182
+ "excerptTokens": [
1183
+ {
1184
+ "kind": "Content",
1185
+ "text": "get shouldShowAccountMenu(): "
1186
+ },
1187
+ {
1188
+ "kind": "Content",
1189
+ "text": "boolean"
1190
+ },
1191
+ {
1192
+ "kind": "Content",
1193
+ "text": ";"
1194
+ }
1195
+ ],
1196
+ "isReadonly": true,
1197
+ "isOptional": false,
1198
+ "releaseTag": "Public",
1199
+ "name": "shouldShowAccountMenu",
1200
+ "propertyTypeTokenRange": {
1201
+ "startIndex": 1,
1202
+ "endIndex": 2
1203
+ },
1204
+ "isStatic": false,
1205
+ "isProtected": false,
1206
+ "isAbstract": false
1207
+ },
1208
+ {
1209
+ "kind": "Property",
1210
+ "canonicalReference": "@genesislcap/foundation-header!Navigation#showAccountMenu:member",
1211
+ "docComment": "/**\n * Boolean attribute which controls whether to show the account menu on the navigation bar Control via `show-account-menu`\n *\n * @remarks\n *\n * If this attribute is not set then the account menu is not shown\n */\n",
1212
+ "excerptTokens": [
1213
+ {
1214
+ "kind": "Content",
1215
+ "text": "showAccountMenu: "
1216
+ },
1217
+ {
1218
+ "kind": "Content",
1219
+ "text": "boolean"
1220
+ },
1221
+ {
1222
+ "kind": "Content",
1223
+ "text": ";"
1224
+ }
1225
+ ],
1226
+ "isReadonly": false,
1227
+ "isOptional": false,
1228
+ "releaseTag": "Public",
1229
+ "name": "showAccountMenu",
1230
+ "propertyTypeTokenRange": {
1231
+ "startIndex": 1,
1232
+ "endIndex": 2
1233
+ },
1234
+ "isStatic": false,
1235
+ "isProtected": false,
1236
+ "isAbstract": false
1237
+ },
1148
1238
  {
1149
1239
  "kind": "Property",
1150
1240
  "canonicalReference": "@genesislcap/foundation-header!Navigation#showConnectionIndicator:member",
@@ -215,6 +215,8 @@ export declare type NavEventDetailMap = {
215
215
  * @param show-connection-indicator - Boolean attribute which controls whether the navigation bar will display the connection indicator.
216
216
  * @param show-language-selector - Boolean attribute which controls whether the navigation bar will display the language selector.
217
217
  * @param hide-side-bar - Boolean attribute which controls whether the navigation bar will display the side bar.
218
+ * @param show-account-menu - Boolean attribute which controls whether the navigation bar will display the account menu.
219
+ * @param logout-button-position - String attribute which controls the position of the logout button in the header.
218
220
  *
219
221
  * @param userName - String which defines the username to be displayed in the navigation bar.
220
222
  * @param routeButtons - Array of objects which define the route buttons to be displayed in the navigation bar.
@@ -331,6 +333,15 @@ export declare class Navigation extends Navigation_base {
331
333
  *
332
334
  */
333
335
  hideSideBar: boolean;
336
+ /**
337
+ * String attribute which controls the position of the logout button in the header
338
+ * Control via `logout-button-position`
339
+ *
340
+ * @remarks
341
+ *
342
+ * If this attribute is not set then the logout button is shown in the side nav
343
+ */
344
+ logoutButtonPosition: 'side-nav' | 'account-menu' | 'none';
334
345
  /**
335
346
  * If present the defined route buttons will be rendered in the header 'routes' slot
336
347
  *
@@ -351,6 +362,21 @@ export declare class Navigation extends Navigation_base {
351
362
  * If present the defined {@link @genesislcap/foundation-ui#FoundationRouteNavItem | FoundationRouteNavItems} will be rendered in the header 'routes' slot
352
363
  */
353
364
  routeNavItems: FoundationRouteNavItem[];
365
+ /**
366
+ * Boolean attribute which controls whether to show the account menu on the navigation bar
367
+ * Control via `show-account-menu`
368
+ *
369
+ * @remarks
370
+ * If this attribute is not set then the account menu is not shown
371
+ */
372
+ showAccountMenu: boolean;
373
+ /**
374
+ * Computed property that determines if the account menu should be shown
375
+ * @remarks
376
+ * It will be shown if the attribute is explicitly set to true
377
+ * or the logout button position is set to 'account-menu'
378
+ */
379
+ get shouldShowAccountMenu(): boolean;
354
380
  /**
355
381
  * Load remote components
356
382
  *
@@ -515,17 +541,11 @@ declare const Navigation_base: abstract new (...args: any[]) => {
515
541
  readonly scrollWidth: number;
516
542
  readonly shadowRoot: ShadowRoot;
517
543
  slot: string;
518
- readonly tagName: string; /**
519
- * @internal
520
- * Flag to indicate if the component is ready
521
- */
544
+ readonly tagName: string;
522
545
  attachShadow(init: ShadowRootInit): ShadowRoot;
523
546
  closest<K_3 extends keyof HTMLElementTagNameMap>(selector: K_3): HTMLElementTagNameMap[K_3];
524
547
  closest<K_4 extends keyof SVGElementTagNameMap>(selector: K_4): SVGElementTagNameMap[K_4];
525
548
  closest<E extends Element = Element>(selectors: string): E;
526
- /**
527
- * Called when the component is connected to the DOM
528
- */
529
549
  getAttribute(qualifiedName: string): string;
530
550
  getAttributeNS(namespace: string, localName: string): string;
531
551
  getAttributeNames(): string[];
@@ -562,7 +582,9 @@ declare const Navigation_base: abstract new (...args: any[]) => {
562
582
  scrollTo(options?: ScrollToOptions): void;
563
583
  scrollTo(x: number, y: number): void;
564
584
  setAttribute(qualifiedName: string, value: string): void;
565
- setAttributeNS(namespace: string, qualifiedName: string, value: string): void;
585
+ setAttributeNS(namespace: string, qualifiedName: string, value: string): void; /**
586
+ * @internal
587
+ */
566
588
  setAttributeNode(attr: Attr): Attr;
567
589
  setAttributeNodeNS(attr: Attr): Attr;
568
590
  setPointerCapture(pointerId: number): void;
@@ -577,9 +599,7 @@ declare const Navigation_base: abstract new (...args: any[]) => {
577
599
  readonly nodeName: string;
578
600
  readonly nodeType: number;
579
601
  nodeValue: string;
580
- readonly parentElement: HTMLElement; /**
581
- * Object which defines the language options to be displayed in the language selector
582
- */
602
+ readonly parentElement: HTMLElement;
583
603
  readonly parentNode: ParentNode;
584
604
  readonly previousSibling: ChildNode;
585
605
  textContent: string;
@@ -590,7 +610,11 @@ declare const Navigation_base: abstract new (...args: any[]) => {
590
610
  getRootNode(options?: GetRootNodeOptions): Node;
591
611
  hasChildNodes(): boolean;
592
612
  insertBefore<T_1 extends Node>(node: T_1, child: Node): T_1;
593
- isDefaultNamespace(namespace: string): boolean;
613
+ isDefaultNamespace(namespace: string): boolean; /**
614
+ * Boolean attribute which controls whether to include the sideNav component
615
+ * Control via`hide-side-bar`
616
+ *
617
+ */
594
618
  isEqualNode(otherNode: Node): boolean;
595
619
  isSameNode(otherNode: Node): boolean;
596
620
  lookupNamespaceURI(prefix: string): string;
@@ -670,41 +694,18 @@ declare const Navigation_base: abstract new (...args: any[]) => {
670
694
  readonly children: HTMLCollection;
671
695
  readonly firstElementChild: Element;
672
696
  readonly lastElementChild: Element;
673
- append(...nodes: (string | Node)[]): void;
697
+ append(...nodes: (string | Node)[]): void; /**
698
+ * Logs the user out of their session
699
+ *
700
+ * @public
701
+ */
674
702
  prepend(...nodes: (string | Node)[]): void;
675
703
  querySelector<K_7 extends keyof HTMLElementTagNameMap>(selectors: K_7): HTMLElementTagNameMap[K_7];
676
704
  querySelector<K_8 extends keyof SVGElementTagNameMap>(selectors: K_8): SVGElementTagNameMap[K_8];
677
705
  querySelector<E_1 extends Element = Element>(selectors: string): E_1;
678
- querySelectorAll<K_9 extends keyof HTMLElementTagNameMap>(selectors: K_9): NodeListOf<HTMLElementTagNameMap[K_9]>; /**
679
- * Emits the event corresponding to the luminance icon being clicked
680
- *
681
- * @remarks
682
- *
683
- * Activated when the user clicks on the moon icon on the navigation
684
- * bar right hand side
685
- *
686
- * @internal
687
- */
688
- querySelectorAll<K_10 extends keyof SVGElementTagNameMap>(selectors: K_10): NodeListOf<SVGElementTagNameMap[K_10]>; /**
689
- * Emits the event corresponding to the luminance icon being clicked
690
- *
691
- * @remarks
692
- *
693
- * Activated when the user clicks on the moon icon on the navigation
694
- * bar right hand side
695
- *
696
- * @internal
697
- */
698
- querySelectorAll<E_2 extends Element = Element>(selectors: string): NodeListOf<E_2>; /**
699
- * Emits the event corresponding to the luminance icon being clicked
700
- *
701
- * @remarks
702
- *
703
- * Activated when the user clicks on the moon icon on the navigation
704
- * bar right hand side
705
- *
706
- * @internal
707
- */
706
+ querySelectorAll<K_9 extends keyof HTMLElementTagNameMap>(selectors: K_9): NodeListOf<HTMLElementTagNameMap[K_9]>;
707
+ querySelectorAll<K_10 extends keyof SVGElementTagNameMap>(selectors: K_10): NodeListOf<SVGElementTagNameMap[K_10]>;
708
+ querySelectorAll<E_2 extends Element = Element>(selectors: string): NodeListOf<E_2>;
708
709
  replaceChildren(...nodes: (string | Node)[]): void;
709
710
  readonly assignedSlot: HTMLSlotElement;
710
711
  oncopy: (this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any;
@@ -727,6 +728,16 @@ declare const Navigation_base: abstract new (...args: any[]) => {
727
728
  oncanplay: (this: GlobalEventHandlers, ev: Event) => any;
728
729
  oncanplaythrough: (this: GlobalEventHandlers, ev: Event) => any;
729
730
  onchange: (this: GlobalEventHandlers, ev: Event) => any;
731
+ /**
732
+ * Emits the event corresponding to the miscellaneous icon being clicked
733
+ *
734
+ * @remarks
735
+ *
736
+ * Activated when the user clicks on the menu icon on the navigation
737
+ * bar right hand side
738
+ *
739
+ * @internal
740
+ */
730
741
  onclick: (this: GlobalEventHandlers, ev: MouseEvent) => any;
731
742
  onclose: (this: GlobalEventHandlers, ev: Event) => any;
732
743
  oncontextmenu: (this: GlobalEventHandlers, ev: MouseEvent) => any;
@@ -742,13 +753,6 @@ declare const Navigation_base: abstract new (...args: any[]) => {
742
753
  ondurationchange: (this: GlobalEventHandlers, ev: Event) => any;
743
754
  onemptied: (this: GlobalEventHandlers, ev: Event) => any;
744
755
  onended: (this: GlobalEventHandlers, ev: Event) => any;
745
- /**
746
- * ZeroHeader is a zero version of the header micro-frontend.
747
- *
748
- * @deprecated - Use RapidHeader instead.
749
- *
750
- * @internal
751
- */
752
756
  onerror: OnErrorEventHandlerNonNull;
753
757
  onfocus: (this: GlobalEventHandlers, ev: FocusEvent) => any;
754
758
  onformdata: (this: GlobalEventHandlers, ev: FormDataEvent) => any;
@@ -0,0 +1,18 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-header](./foundation-header.md) &gt; [Navigation](./foundation-header.navigation.md) &gt; [logoutButtonPosition](./foundation-header.navigation.logoutbuttonposition.md)
4
+
5
+ ## Navigation.logoutButtonPosition property
6
+
7
+ String attribute which controls the position of the logout button in the header Control via `logout-button-position`
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ logoutButtonPosition: 'side-nav' | 'account-menu' | 'none';
13
+ ```
14
+
15
+ ## Remarks
16
+
17
+ If this attribute is not set then the logout button is shown in the side nav
18
+
@@ -30,8 +30,11 @@ export declare class Navigation extends Navigation_base
30
30
  | [loginRouting](./foundation-header.navigation.loginrouting.md) | | LoginRouting | |
31
31
  | [logoAltText](./foundation-header.navigation.logoalttext.md) | | string | Optional attribute which controls the alt text of the logo Control via <code>logo-alt-text</code> |
32
32
  | [logoSrc](./foundation-header.navigation.logosrc.md) | | any | Optional attribute which controls the icon to show on the navigation bar and flyout Control via <code>logo-src</code> |
33
+ | [logoutButtonPosition](./foundation-header.navigation.logoutbuttonposition.md) | | 'side-nav' \| 'account-menu' \| 'none' | String attribute which controls the position of the logout button in the header Control via <code>logout-button-position</code> |
33
34
  | [routeButtons](./foundation-header.navigation.routebuttons.md) | | Array&lt;{ index: number; path: string; title: string; icon: string; variant: string; }&gt; | If present the defined route buttons will be rendered in the header 'routes' slot |
34
35
  | [routeNavItems](./foundation-header.navigation.routenavitems.md) | | FoundationRouteNavItem\[\] | If present the defined will be rendered in the header 'routes' slot |
36
+ | [shouldShowAccountMenu](./foundation-header.navigation.shouldshowaccountmenu.md) | <code>readonly</code> | boolean | Computed property that determines if the account menu should be shown |
37
+ | [showAccountMenu](./foundation-header.navigation.showaccountmenu.md) | | boolean | Boolean attribute which controls whether to show the account menu on the navigation bar Control via <code>show-account-menu</code> |
35
38
  | [showConnectionIndicator](./foundation-header.navigation.showconnectionindicator.md) | | boolean | Boolean attribute which controls whether to show the connection indicator on the navigation bar Control via <code>show-connection-indicator</code> |
36
39
  | [showLanguageSelector](./foundation-header.navigation.showlanguageselector.md) | | boolean | Boolean attribute which controls whether to show the language selector on the navigation bar Control via <code>show-language-selector</code> |
37
40
  | [showLuminanceToggleButton](./foundation-header.navigation.showluminancetogglebutton.md) | | boolean | Boolean attribute which controls whether to show the luminance (moon) icon on the navigation bar Control via<code>show-luminance-toggle-button</code> |
@@ -0,0 +1,18 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-header](./foundation-header.md) &gt; [Navigation](./foundation-header.navigation.md) &gt; [shouldShowAccountMenu](./foundation-header.navigation.shouldshowaccountmenu.md)
4
+
5
+ ## Navigation.shouldShowAccountMenu property
6
+
7
+ Computed property that determines if the account menu should be shown
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ get shouldShowAccountMenu(): boolean;
13
+ ```
14
+
15
+ ## Remarks
16
+
17
+ It will be shown if the attribute is explicitly set to true or the logout button position is set to 'account-menu'
18
+
@@ -0,0 +1,18 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-header](./foundation-header.md) &gt; [Navigation](./foundation-header.navigation.md) &gt; [showAccountMenu](./foundation-header.navigation.showaccountmenu.md)
4
+
5
+ ## Navigation.showAccountMenu property
6
+
7
+ Boolean attribute which controls whether to show the account menu on the navigation bar Control via `show-account-menu`
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ showAccountMenu: boolean;
13
+ ```
14
+
15
+ ## Remarks
16
+
17
+ If this attribute is not set then the account menu is not shown
18
+
@@ -114,6 +114,7 @@ export class Navigation extends Navigation_base {
114
114
  logoAltText: string;
115
115
  logoSrc: any;
116
116
  logout(): Promise<void>;
117
+ logoutButtonPosition: 'side-nav' | 'account-menu' | 'none';
117
118
  // @internal
118
119
  luminanceIconEvent(): void;
119
120
  // @internal
@@ -135,6 +136,8 @@ export class Navigation extends Navigation_base {
135
136
  routeButtonsChanged(): void;
136
137
  routeNavItems: FoundationRouteNavItem[];
137
138
  selectTemplate(): ViewTemplate<Navigation>;
139
+ get shouldShowAccountMenu(): boolean;
140
+ showAccountMenu: boolean;
138
141
  showConnectionIndicator: boolean;
139
142
  showLanguageSelector: boolean;
140
143
  showLuminanceToggleButton: boolean;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-header",
3
3
  "description": "Genesis Foundation Header",
4
- "version": "14.278.3",
4
+ "version": "14.280.0",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "main": "dist/esm/index.js",
7
7
  "types": "dist/foundation-header.d.ts",
@@ -77,29 +77,29 @@
77
77
  }
78
78
  },
79
79
  "devDependencies": {
80
- "@genesislcap/foundation-testing": "14.278.3",
81
- "@genesislcap/genx": "14.278.3",
82
- "@genesislcap/rollup-builder": "14.278.3",
83
- "@genesislcap/ts-builder": "14.278.3",
84
- "@genesislcap/uvu-playwright-builder": "14.278.3",
85
- "@genesislcap/vite-builder": "14.278.3",
86
- "@genesislcap/webpack-builder": "14.278.3",
80
+ "@genesislcap/foundation-testing": "14.280.0",
81
+ "@genesislcap/genx": "14.280.0",
82
+ "@genesislcap/rollup-builder": "14.280.0",
83
+ "@genesislcap/ts-builder": "14.280.0",
84
+ "@genesislcap/uvu-playwright-builder": "14.280.0",
85
+ "@genesislcap/vite-builder": "14.280.0",
86
+ "@genesislcap/webpack-builder": "14.280.0",
87
87
  "rimraf": "^5.0.0"
88
88
  },
89
89
  "dependencies": {
90
- "@genesislcap/foundation-auth": "14.278.3",
91
- "@genesislcap/foundation-comms": "14.278.3",
92
- "@genesislcap/foundation-events": "14.278.3",
93
- "@genesislcap/foundation-i18n": "14.278.3",
94
- "@genesislcap/foundation-logger": "14.278.3",
95
- "@genesislcap/foundation-login": "14.278.3",
96
- "@genesislcap/foundation-shell": "14.278.3",
97
- "@genesislcap/foundation-ui": "14.278.3",
98
- "@genesislcap/foundation-user": "14.278.3",
99
- "@genesislcap/foundation-utils": "14.278.3",
100
- "@genesislcap/foundation-zero": "14.278.3",
101
- "@genesislcap/rapid-design-system": "14.278.3",
102
- "@genesislcap/web-core": "14.278.3",
90
+ "@genesislcap/foundation-auth": "14.280.0",
91
+ "@genesislcap/foundation-comms": "14.280.0",
92
+ "@genesislcap/foundation-events": "14.280.0",
93
+ "@genesislcap/foundation-i18n": "14.280.0",
94
+ "@genesislcap/foundation-logger": "14.280.0",
95
+ "@genesislcap/foundation-login": "14.280.0",
96
+ "@genesislcap/foundation-shell": "14.280.0",
97
+ "@genesislcap/foundation-ui": "14.280.0",
98
+ "@genesislcap/foundation-user": "14.280.0",
99
+ "@genesislcap/foundation-utils": "14.280.0",
100
+ "@genesislcap/foundation-zero": "14.280.0",
101
+ "@genesislcap/rapid-design-system": "14.280.0",
102
+ "@genesislcap/web-core": "14.280.0",
103
103
  "tslib": "^2.3.1"
104
104
  },
105
105
  "repository": {
@@ -111,5 +111,5 @@
111
111
  "access": "public"
112
112
  },
113
113
  "customElements": "dist/custom-elements.json",
114
- "gitHead": "4260edc21556ef0d65f67142ca75774c05384054"
114
+ "gitHead": "7e89766c4e599c7eea739cd24de3be1e65357472"
115
115
  }