@genesislcap/foundation-header 14.280.0 → 14.281.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.
@@ -25,6 +25,48 @@
25
25
  }
26
26
  ]
27
27
  },
28
+ {
29
+ "kind": "javascript-module",
30
+ "path": "src/components/rapid-components.ts",
31
+ "declarations": [
32
+ {
33
+ "kind": "function",
34
+ "name": "registerCommonRapidComponents",
35
+ "privacy": "public"
36
+ }
37
+ ],
38
+ "exports": [
39
+ {
40
+ "kind": "js",
41
+ "name": "registerCommonRapidComponents",
42
+ "declaration": {
43
+ "name": "registerCommonRapidComponents",
44
+ "module": "src/components/rapid-components.ts"
45
+ }
46
+ }
47
+ ]
48
+ },
49
+ {
50
+ "kind": "javascript-module",
51
+ "path": "src/components/zero-components.ts",
52
+ "declarations": [
53
+ {
54
+ "kind": "function",
55
+ "name": "registerCommonZeroComponents",
56
+ "privacy": "public"
57
+ }
58
+ ],
59
+ "exports": [
60
+ {
61
+ "kind": "js",
62
+ "name": "registerCommonZeroComponents",
63
+ "declaration": {
64
+ "name": "registerCommonZeroComponents",
65
+ "module": "src/components/zero-components.ts"
66
+ }
67
+ }
68
+ ]
69
+ },
28
70
  {
29
71
  "kind": "javascript-module",
30
72
  "path": "src/config/config.ts",
@@ -180,48 +222,6 @@
180
222
  }
181
223
  ]
182
224
  },
183
- {
184
- "kind": "javascript-module",
185
- "path": "src/components/rapid-components.ts",
186
- "declarations": [
187
- {
188
- "kind": "function",
189
- "name": "registerCommonRapidComponents",
190
- "privacy": "public"
191
- }
192
- ],
193
- "exports": [
194
- {
195
- "kind": "js",
196
- "name": "registerCommonRapidComponents",
197
- "declaration": {
198
- "name": "registerCommonRapidComponents",
199
- "module": "src/components/rapid-components.ts"
200
- }
201
- }
202
- ]
203
- },
204
- {
205
- "kind": "javascript-module",
206
- "path": "src/components/zero-components.ts",
207
- "declarations": [
208
- {
209
- "kind": "function",
210
- "name": "registerCommonZeroComponents",
211
- "privacy": "public"
212
- }
213
- ],
214
- "exports": [
215
- {
216
- "kind": "js",
217
- "name": "registerCommonZeroComponents",
218
- "declaration": {
219
- "name": "registerCommonZeroComponents",
220
- "module": "src/components/zero-components.ts"
221
- }
222
- }
223
- ]
224
- },
225
225
  {
226
226
  "kind": "javascript-module",
227
227
  "path": "src/main/index.ts",
@@ -566,6 +566,25 @@
566
566
  }
567
567
  ],
568
568
  "description": "To localised text"
569
+ },
570
+ {
571
+ "kind": "method",
572
+ "name": "handleNavButtonClick",
573
+ "return": {
574
+ "type": {
575
+ "text": "void"
576
+ }
577
+ },
578
+ "parameters": [
579
+ {
580
+ "name": "routeNavItem",
581
+ "type": {
582
+ "text": "FoundationRouteNavItem"
583
+ },
584
+ "description": "The navigation item that was clicked"
585
+ }
586
+ ],
587
+ "description": "Handles the click event for a navigation button"
569
588
  }
570
589
  ],
571
590
  "events": [
@@ -588,6 +607,10 @@
588
607
  {
589
608
  "description": "Dispatched when the user clicks logout button.",
590
609
  "name": "logout-clicked"
610
+ },
611
+ {
612
+ "description": "Dispatched when the user clicks a navigation button.",
613
+ "name": "nav-button-clicked"
591
614
  }
592
615
  ],
593
616
  "attributes": [
@@ -1062,6 +1085,29 @@
1062
1085
  "name": "Navigation",
1063
1086
  "module": "src/main/main.ts"
1064
1087
  }
1088
+ },
1089
+ {
1090
+ "kind": "method",
1091
+ "name": "handleNavButtonClick",
1092
+ "return": {
1093
+ "type": {
1094
+ "text": "void"
1095
+ }
1096
+ },
1097
+ "parameters": [
1098
+ {
1099
+ "name": "routeNavItem",
1100
+ "type": {
1101
+ "text": "FoundationRouteNavItem"
1102
+ },
1103
+ "description": "The navigation item that was clicked"
1104
+ }
1105
+ ],
1106
+ "description": "Handles the click event for a navigation button",
1107
+ "inheritedFrom": {
1108
+ "name": "Navigation",
1109
+ "module": "src/main/main.ts"
1110
+ }
1065
1111
  }
1066
1112
  ],
1067
1113
  "superclass": {
@@ -1240,6 +1286,14 @@
1240
1286
  "name": "Navigation",
1241
1287
  "module": "src/main/main.ts"
1242
1288
  }
1289
+ },
1290
+ {
1291
+ "description": "Dispatched when the user clicks a navigation button.",
1292
+ "name": "nav-button-clicked",
1293
+ "inheritedFrom": {
1294
+ "name": "Navigation",
1295
+ "module": "src/main/main.ts"
1296
+ }
1243
1297
  }
1244
1298
  ]
1245
1299
  },
@@ -1740,6 +1794,29 @@
1740
1794
  "name": "Navigation",
1741
1795
  "module": "src/main/main.ts"
1742
1796
  }
1797
+ },
1798
+ {
1799
+ "kind": "method",
1800
+ "name": "handleNavButtonClick",
1801
+ "return": {
1802
+ "type": {
1803
+ "text": "void"
1804
+ }
1805
+ },
1806
+ "parameters": [
1807
+ {
1808
+ "name": "routeNavItem",
1809
+ "type": {
1810
+ "text": "FoundationRouteNavItem"
1811
+ },
1812
+ "description": "The navigation item that was clicked"
1813
+ }
1814
+ ],
1815
+ "description": "Handles the click event for a navigation button",
1816
+ "inheritedFrom": {
1817
+ "name": "Navigation",
1818
+ "module": "src/main/main.ts"
1819
+ }
1743
1820
  }
1744
1821
  ],
1745
1822
  "events": [
@@ -1782,6 +1859,14 @@
1782
1859
  "name": "Navigation",
1783
1860
  "module": "src/main/main.ts"
1784
1861
  }
1862
+ },
1863
+ {
1864
+ "description": "Dispatched when the user clicks a navigation button.",
1865
+ "name": "nav-button-clicked",
1866
+ "inheritedFrom": {
1867
+ "name": "Navigation",
1868
+ "module": "src/main/main.ts"
1869
+ }
1785
1870
  }
1786
1871
  ]
1787
1872
  },
@@ -2143,6 +2228,29 @@
2143
2228
  "name": "Navigation",
2144
2229
  "module": "src/main/main.ts"
2145
2230
  }
2231
+ },
2232
+ {
2233
+ "kind": "method",
2234
+ "name": "handleNavButtonClick",
2235
+ "return": {
2236
+ "type": {
2237
+ "text": "void"
2238
+ }
2239
+ },
2240
+ "parameters": [
2241
+ {
2242
+ "name": "routeNavItem",
2243
+ "type": {
2244
+ "text": "FoundationRouteNavItem"
2245
+ },
2246
+ "description": "The navigation item that was clicked"
2247
+ }
2248
+ ],
2249
+ "description": "Handles the click event for a navigation button",
2250
+ "inheritedFrom": {
2251
+ "name": "Navigation",
2252
+ "module": "src/main/main.ts"
2253
+ }
2146
2254
  }
2147
2255
  ],
2148
2256
  "superclass": {
@@ -2323,6 +2431,14 @@
2323
2431
  "name": "Navigation",
2324
2432
  "module": "src/main/main.ts"
2325
2433
  }
2434
+ },
2435
+ {
2436
+ "description": "Dispatched when the user clicks a navigation button.",
2437
+ "name": "nav-button-clicked",
2438
+ "inheritedFrom": {
2439
+ "name": "Navigation",
2440
+ "module": "src/main/main.ts"
2441
+ }
2326
2442
  }
2327
2443
  ]
2328
2444
  }
@@ -2539,12 +2655,6 @@
2539
2655
  }
2540
2656
  ]
2541
2657
  },
2542
- {
2543
- "kind": "javascript-module",
2544
- "path": "src/templates/rapid.template.ts",
2545
- "declarations": [],
2546
- "exports": []
2547
- },
2548
2658
  {
2549
2659
  "kind": "javascript-module",
2550
2660
  "path": "src/tags/index.ts",
@@ -2566,6 +2676,12 @@
2566
2676
  "declarations": [],
2567
2677
  "exports": []
2568
2678
  },
2679
+ {
2680
+ "kind": "javascript-module",
2681
+ "path": "src/templates/rapid.template.ts",
2682
+ "declarations": [],
2683
+ "exports": []
2684
+ },
2569
2685
  {
2570
2686
  "kind": "javascript-module",
2571
2687
  "path": "src/utils/index.ts",
@@ -16,6 +16,10 @@ export type NavEventDetailMap = {
16
16
  'misc-icon-clicked': void;
17
17
  'notification-icon-clicked': void;
18
18
  'language-changed': void;
19
+ 'nav-button-clicked': {
20
+ item: FoundationRouteNavItem;
21
+ context: any;
22
+ };
19
23
  };
20
24
  /**
21
25
  * Options for the language selector
@@ -26,7 +30,7 @@ export type LanguageOptions = {
26
30
  selectedLanguage: string;
27
31
  };
28
32
  declare const Navigation_base: abstract new (...args: any[]) => {
29
- $emit<K extends "luminance-icon-clicked" | "logout-clicked" | "misc-icon-clicked" | "notification-icon-clicked" | "language-changed">(...args: NavEventDetailMap[K] extends void ? [type: K, options?: import("@genesislcap/foundation-events").EmitOptions] : [type: K, detail: NavEventDetailMap[K], options?: import("@genesislcap/foundation-events").EmitOptions]): import("@genesislcap/foundation-events").EmitReturn;
33
+ $emit<K extends "luminance-icon-clicked" | "logout-clicked" | "misc-icon-clicked" | "notification-icon-clicked" | "language-changed" | "nav-button-clicked">(...args: NavEventDetailMap[K] extends void ? [type: K, options?: import("@genesislcap/foundation-events").EmitOptions] : [type: K, detail: NavEventDetailMap[K], options?: import("@genesislcap/foundation-events").EmitOptions]): import("@genesislcap/foundation-events").EmitReturn;
30
34
  accessKey: string;
31
35
  readonly accessKeyLabel: string;
32
36
  autocapitalize: string;
@@ -114,9 +118,7 @@ declare const Navigation_base: abstract new (...args: any[]) => {
114
118
  scrollTo(options?: ScrollToOptions): void;
115
119
  scrollTo(x: number, y: number): void;
116
120
  setAttribute(qualifiedName: string, value: string): void;
117
- setAttributeNS(namespace: string, qualifiedName: string, value: string): void; /**
118
- * @internal
119
- */
121
+ setAttributeNS(namespace: string, qualifiedName: string, value: string): void;
120
122
  setAttributeNode(attr: Attr): Attr;
121
123
  setAttributeNodeNS(attr: Attr): Attr;
122
124
  setPointerCapture(pointerId: number): void;
@@ -142,11 +144,7 @@ declare const Navigation_base: abstract new (...args: any[]) => {
142
144
  getRootNode(options?: GetRootNodeOptions): Node;
143
145
  hasChildNodes(): boolean;
144
146
  insertBefore<T_1 extends Node>(node: T_1, child: Node): T_1;
145
- isDefaultNamespace(namespace: string): boolean; /**
146
- * Boolean attribute which controls whether to include the sideNav component
147
- * Control via`hide-side-bar`
148
- *
149
- */
147
+ isDefaultNamespace(namespace: string): boolean;
150
148
  isEqualNode(otherNode: Node): boolean;
151
149
  isSameNode(otherNode: Node): boolean;
152
150
  lookupNamespaceURI(prefix: string): string;
@@ -196,7 +194,13 @@ declare const Navigation_base: abstract new (...args: any[]) => {
196
194
  ariaMultiSelectable: string;
197
195
  ariaOrientation: string;
198
196
  ariaPlaceholder: string;
199
- ariaPosInSet: string;
197
+ ariaPosInSet: string; /**
198
+ * Boolean attribute which controls whether to show the account menu on the navigation bar
199
+ * Control via `show-account-menu`
200
+ *
201
+ * @remarks
202
+ * If this attribute is not set then the account menu is not shown
203
+ */
200
204
  ariaPressed: string;
201
205
  ariaReadOnly: string;
202
206
  ariaRequired: string;
@@ -226,11 +230,7 @@ declare const Navigation_base: abstract new (...args: any[]) => {
226
230
  readonly children: HTMLCollection;
227
231
  readonly firstElementChild: Element;
228
232
  readonly lastElementChild: Element;
229
- append(...nodes: (string | Node)[]): void; /**
230
- * Logs the user out of their session
231
- *
232
- * @public
233
- */
233
+ append(...nodes: (string | Node)[]): void;
234
234
  prepend(...nodes: (string | Node)[]): void;
235
235
  querySelector<K_7 extends keyof HTMLElementTagNameMap>(selectors: K_7): HTMLElementTagNameMap[K_7];
236
236
  querySelector<K_8 extends keyof SVGElementTagNameMap>(selectors: K_8): SVGElementTagNameMap[K_8];
@@ -260,16 +260,6 @@ declare const Navigation_base: abstract new (...args: any[]) => {
260
260
  oncanplay: (this: GlobalEventHandlers, ev: Event) => any;
261
261
  oncanplaythrough: (this: GlobalEventHandlers, ev: Event) => any;
262
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
- */
273
263
  onclick: (this: GlobalEventHandlers, ev: MouseEvent) => any;
274
264
  onclose: (this: GlobalEventHandlers, ev: Event) => any;
275
265
  oncontextmenu: (this: GlobalEventHandlers, ev: MouseEvent) => any;
@@ -330,7 +320,15 @@ declare const Navigation_base: abstract new (...args: any[]) => {
330
320
  onselectstart: (this: GlobalEventHandlers, ev: Event) => any;
331
321
  onslotchange: (this: GlobalEventHandlers, ev: Event) => any;
332
322
  onstalled: (this: GlobalEventHandlers, ev: Event) => any;
333
- onsubmit: (this: GlobalEventHandlers, ev: SubmitEvent) => any;
323
+ onsubmit: (this: GlobalEventHandlers, ev: SubmitEvent) => any; /**
324
+ * Load remote components
325
+ *
326
+ * @remarks
327
+ *
328
+ * With regards to module federation
329
+ *
330
+ * @internal
331
+ */
334
332
  onsuspend: (this: GlobalEventHandlers, ev: Event) => any;
335
333
  ontimeupdate: (this: GlobalEventHandlers, ev: Event) => any;
336
334
  ontoggle: (this: GlobalEventHandlers, ev: Event) => any;
@@ -395,6 +393,7 @@ declare const Navigation_base: abstract new (...args: any[]) => {
395
393
  * @fires notification-icon-clicked - Dispatched when the user clicks on the notification icon in the navigation bar.
396
394
  * @fires language-changed - Dispatched when the user changes the language in the language selector.
397
395
  * @fires logout-clicked - Dispatched when the user clicks logout button.
396
+ * @fires nav-button-clicked - Dispatched when the user clicks a navigation button.
398
397
  *
399
398
  */
400
399
  export declare class Navigation extends Navigation_base {
@@ -656,6 +655,11 @@ export declare class Navigation extends Navigation_base {
656
655
  * Is languageOptions needed.
657
656
  */
658
657
  toLocalisedText(text: string): string;
658
+ /**
659
+ * Handles the click event for a navigation button
660
+ * @param routeNavItem - The navigation item that was clicked
661
+ */
662
+ handleNavButtonClick(routeNavItem: FoundationRouteNavItem): void;
659
663
  }
660
664
  /**
661
665
  * FoundationHeader.
@@ -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":"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"}
@@ -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,iDAsPgD,CAAC"}
1
+ {"version":3,"file":"main.styles.d.ts","sourceRoot":"","sources":["../../../src/main/main.styles.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,iDA2VgD,CAAC"}
@@ -1 +1 @@
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"}
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;AA4KF;;;;;;;;;;;;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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rapid.template.d.ts","sourceRoot":"","sources":["../../../src/templates/rapid.template.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAc1C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,UAAU,CAIpD,CAAC;AAyHF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,+BAkHzB,CAAC"}
1
+ {"version":3,"file":"rapid.template.d.ts","sourceRoot":"","sources":["../../../src/templates/rapid.template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAc1C;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,UAAU,CAIpD,CAAC;AAuKF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,+BAkHzB,CAAC"}
@@ -48,6 +48,7 @@ import { LoadingTemplate, mainTemplate, dynamicTemplate as template } from './ma
48
48
  * @fires notification-icon-clicked - Dispatched when the user clicks on the notification icon in the navigation bar.
49
49
  * @fires language-changed - Dispatched when the user changes the language in the language selector.
50
50
  * @fires logout-clicked - Dispatched when the user clicks logout button.
51
+ * @fires nav-button-clicked - Dispatched when the user clicks a navigation button.
51
52
  *
52
53
  */
53
54
  let Navigation = class Navigation extends EventEmitter(GenesisElement) {
@@ -331,6 +332,19 @@ let Navigation = class Navigation extends EventEmitter(GenesisElement) {
331
332
  ? this.i18next.t(text, { lng: this.i18next.language })
332
333
  : text;
333
334
  }
335
+ /**
336
+ * Handles the click event for a navigation button
337
+ * @param routeNavItem - The navigation item that was clicked
338
+ */
339
+ handleNavButtonClick(routeNavItem) {
340
+ if (routeNavItem.onClick) {
341
+ routeNavItem.onClick({ item: routeNavItem, context: this });
342
+ }
343
+ else if (routeNavItem.routePath) {
344
+ this.navigateTo(routeNavItem.routePath);
345
+ }
346
+ this.$emit('nav-button-clicked', { item: routeNavItem, context: this });
347
+ }
334
348
  };
335
349
  __decorate([
336
350
  Container
@@ -56,6 +56,8 @@ export const MainStyles = css `
56
56
  align-items: center;
57
57
  margin-left: calc(var(--design-unit) * 4px);
58
58
  gap: calc(var(--design-unit) * 2px);
59
+ line-height: 0;
60
+ font-size: 0;
59
61
  }
60
62
 
61
63
  .nav-leftside:focus-within {
@@ -254,4 +256,103 @@ export const MainStyles = css `
254
256
  .account-menu-button:hover {
255
257
  background-color: var(--neutral-fill-hover);
256
258
  }
259
+
260
+ .nav-submenu-wrapper {
261
+ position: absolute;
262
+ top: 100%;
263
+ left: 0;
264
+ min-width: 175px;
265
+ background: var(--neutral-layer-2);
266
+ border: calc(var(--stroke-width) * 1px) solid var(--neutral-layer-1);
267
+ z-index: 1000;
268
+ opacity: 0%;
269
+ visibility: hidden;
270
+ transform: translateY(-10px);
271
+ transition:
272
+ opacity 0.2s ease-out,
273
+ visibility 0.2s ease-out,
274
+ transform 0.2s ease-out;
275
+ transition-delay: 0.1s;
276
+ }
277
+
278
+ .nav-button-wrapper {
279
+ position: relative;
280
+ display: inline-block;
281
+ }
282
+
283
+ .nav-submenu-wrapper .nav-button-wrapper {
284
+ width: 100%;
285
+ border-bottom: calc(var(--stroke-width) * 1px) solid var(--neutral-layer-3);
286
+ }
287
+
288
+ .side-nav-buttons-container .nav-submenu-wrapper {
289
+ position: absolute;
290
+ top: 0;
291
+ left: 100%;
292
+ margin-left: calc(var(--design-unit) * 1px);
293
+ min-width: 180px;
294
+ }
295
+
296
+ .nav-button-wrapper:hover .nav-submenu-wrapper {
297
+ opacity: 100%;
298
+ visibility: visible;
299
+ transform: translateY(0);
300
+ transition-delay: 0s;
301
+ }
302
+
303
+ .nav-submenu-wrapper .nav-button-wrapper .nav-submenu-wrapper {
304
+ top: 0;
305
+ left: 100%;
306
+ margin-left: calc(var(--design-unit) * 1px);
307
+ z-index: 1001;
308
+ }
309
+
310
+ .nav-submenu-wrapper .nav-button {
311
+ width: 100%;
312
+ text-align: left;
313
+ border: none;
314
+ background: transparent;
315
+ border-radius: 0;
316
+ margin: 0;
317
+ padding: calc(var(--design-unit) * 1px);
318
+ height: auto;
319
+ display: flex;
320
+ align-items: center;
321
+ justify-content: space-between;
322
+ overflow: hidden;
323
+ text-overflow: ellipsis;
324
+ white-space: nowrap;
325
+ z-index: 1002;
326
+ }
327
+
328
+ .nav-submenu-wrapper .nav-button:hover {
329
+ background-color: var(--neutral-fill-hover);
330
+ }
331
+
332
+ .nav-submenu-wrapper .nav-button::part(control) {
333
+ justify-content: left;
334
+ }
335
+
336
+ .nav-leftside .nav-button-wrapper .nav-button {
337
+ position: relative;
338
+ z-index: 1002;
339
+ }
340
+
341
+ .side-nav-buttons-container .nav-button-wrapper {
342
+ width: 100%;
343
+ }
344
+
345
+ .side-nav-buttons-container .nav-button-wrapper .nav-button {
346
+ width: 100%;
347
+ text-align: left;
348
+ justify-content: flex-start;
349
+ }
350
+
351
+ .side-nav-buttons-container .nav-button-wrapper .nav-button:has(+ .nav-submenu-wrapper) {
352
+ position: relative;
353
+ }
354
+
355
+ .nav-submenu-wrapper .nav-button-wrapper:last-child {
356
+ border-bottom: none;
357
+ }
257
358
  `.withBehaviors(getApp().registerStylesTarget('header'));
@@ -62,27 +62,60 @@ const routeNavItemsTemplate = (navId) => html `
62
62
  <template>
63
63
  ${repeat((x) => x.routeNavItems, html `
64
64
  ${when((x, c) => x.navId === navId &&
65
- (!x.permission || (x.permission && c.parent.isUserPermitted(x.permission))), html `
66
- <${buttonTag}
67
- appearance="neutral-grey"
68
- class="nav-button"
69
- slot="routes"
70
- @click=${(x, c) => c.parent.navigateTo(x.routePath)}
71
- data-test-id="${(x) => `${x.routePath}-button`}"
72
- aria-label=${(x) => x.title}
73
- >
74
- ${when((x) => x.icon, html `
75
- <${iconTag}
76
- name="${(x) => x.icon.name}"
77
- variant="${(x) => x.icon.variant}"
78
- size="${(x) => x.icon.size}"
79
- ></${iconTag}}>
65
+ (!x.permission || (x.permission && c.parent.isUserPermitted(x.permission))), html `
66
+ <div class="nav-button-wrapper">
67
+ <${buttonTag}
68
+ appearance="neutral-grey"
69
+ class="nav-button"
70
+ slot="routes"
71
+ @click=${(x, c) => c.parent.handleNavButtonClick(x)}
72
+ data-test-id="${(x) => `${x.routePath}-button`}"
73
+ aria-label=${(x) => x.title}
74
+ >
75
+ ${when((x) => x.icon, html `
76
+ <${iconTag}
77
+ name="${(x) => x.icon.name}"
78
+ variant="${(x) => x.icon.variant}"
79
+ size="${(x) => x.icon.size}"
80
+ ></${iconTag}>
81
+ `)}
82
+ ${(x, c) => c.parent.toLocalisedText(x.title)}
83
+ </${buttonTag}>
84
+ ${when((x) => x.navItems, html `
85
+ ${(x, c) => routeNavSubmenuItemsTemplate(x, c.parent)}
80
86
  `)}
81
- ${(x, c) => c.parent.toLocalisedText(x.title)}
82
- </${buttonTag}>`)}
87
+ </div>
88
+ `)}
83
89
  `)}
84
90
  </template>
85
91
  `;
92
+ const routeNavSubmenuItemsTemplate = (item, context) => html `
93
+ <div class="nav-submenu-wrapper">
94
+ ${repeat(() => item.navItems, html `
95
+ <div class="nav-button-wrapper">
96
+ <${buttonTag}
97
+ appearance="neutral-grey"
98
+ class="nav-button"
99
+ @click=${(x) => context.handleNavButtonClick(x)}
100
+ data-test-id="${(x) => `${x.routePath}-button`}"
101
+ aria-label=${(x) => x.title}
102
+ >
103
+ ${when((x) => x.icon, html `
104
+ <${iconTag}
105
+ name="${(x) => x.icon.name}"
106
+ variant="${(x) => x.icon.variant}"
107
+ size="${(x) => x.icon.size}"
108
+ ></${iconTag}>
109
+ `)}
110
+ ${(x) => context.toLocalisedText(x.title)}
111
+ </${buttonTag}>
112
+ ${when((x) => x.navItems, html `
113
+ ${(x) => routeNavSubmenuItemsTemplate(x, context)}
114
+ `)}
115
+ </div>
116
+ `)}
117
+ </div>
118
+ `;
86
119
  /**
87
120
  * Render template for the Navigation class
88
121
  *
@@ -70,27 +70,60 @@ const routeNavItemsTemplate = (navId) => html `
70
70
  <template>
71
71
  ${repeat((x) => x.routeNavItems, html `
72
72
  ${when((x, c) => x.navId === navId &&
73
- (!x.permission || (x.permission && c.parent.isUserPermitted(x.permission))), html `
74
- <${buttonTag}
75
- appearance="neutral-grey"
76
- class="nav-button"
77
- slot="routes"
78
- @click=${(x, c) => c.parent.navigateTo(x.routePath)}
79
- data-test-id="${(x) => `${x.routePath}-button`}"
80
- aria-label=${(x) => x.title}
81
- >
82
- ${when((x) => x.icon, html `
83
- <${iconTag}
84
- name="${(x) => x.icon.name}"
85
- variant="${(x) => x.icon.variant}"
86
- size="${(x) => x.icon.size}"
87
- ></${iconTag}}>
73
+ (!x.permission || (x.permission && c.parent.isUserPermitted(x.permission))), html `
74
+ <div class="nav-button-wrapper">
75
+ <${buttonTag}
76
+ appearance="neutral-grey"
77
+ class="nav-button"
78
+ slot="routes"
79
+ @click=${(x, c) => c.parent.handleNavButtonClick(x)}
80
+ data-test-id="${(x) => `${x.routePath}-button`}"
81
+ aria-label=${(x) => x.title}
82
+ >
83
+ ${when((x) => x.icon, html `
84
+ <${iconTag}
85
+ name="${(x) => x.icon.name}"
86
+ variant="${(x) => x.icon.variant}"
87
+ size="${(x) => x.icon.size}"
88
+ ></${iconTag}>
89
+ `)}
90
+ ${(x, c) => c.parent.toLocalisedText(x.title)}
91
+ </${buttonTag}>
92
+ ${when((x) => x.items, html `
93
+ ${(x, c) => routeNavSubmenuItemsTemplate(x, c.parent)}
88
94
  `)}
89
- ${(x, c) => c.parent.toLocalisedText(x.title)}
90
- </${buttonTag}>`)}
95
+ </div>
96
+ `)}
91
97
  `)}
92
98
  </template>
93
99
  `;
100
+ const routeNavSubmenuItemsTemplate = (item, context) => html `
101
+ <div class="nav-submenu-wrapper">
102
+ ${repeat(() => item.navItems, html `
103
+ <div class="nav-button-wrapper">
104
+ <${buttonTag}
105
+ appearance="neutral-grey"
106
+ class="nav-button"
107
+ @click=${(x) => context.handleNavButtonClick(x)}
108
+ data-test-id="${(x) => `${x.routePath}-button`}"
109
+ aria-label=${(x) => x.title}
110
+ >
111
+ ${when((x) => x.icon, html `
112
+ <${iconTag}
113
+ name="${(x) => x.icon.name}"
114
+ variant="${(x) => x.icon.variant}"
115
+ size="${(x) => x.icon.size}"
116
+ ></${iconTag}>
117
+ `)}
118
+ ${(x) => context.toLocalisedText(x.title)}
119
+ </${buttonTag}>
120
+ ${when((x) => x.navItems, html `
121
+ ${(x) => routeNavSubmenuItemsTemplate(x, context)}
122
+ `)}
123
+ </div>
124
+ `)}
125
+ </div>
126
+ `;
94
127
  /**
95
128
  * Render template for the Navigation class
96
129
  *
@@ -545,7 +545,16 @@
545
545
  },
546
546
  {
547
547
  "kind": "Content",
548
- "text": "{\n 'luminance-icon-clicked': void;\n 'logout-clicked': void;\n 'misc-icon-clicked': void;\n 'notification-icon-clicked': void;\n 'language-changed': void;\n}"
548
+ "text": "{\n 'luminance-icon-clicked': void;\n 'logout-clicked': void;\n 'misc-icon-clicked': void;\n 'notification-icon-clicked': void;\n 'language-changed': void;\n 'nav-button-clicked': {\n item: "
549
+ },
550
+ {
551
+ "kind": "Reference",
552
+ "text": "FoundationRouteNavItem",
553
+ "canonicalReference": "@genesislcap/foundation-ui!FoundationRouteNavItem:type"
554
+ },
555
+ {
556
+ "kind": "Content",
557
+ "text": ";\n context: any;\n };\n}"
549
558
  },
550
559
  {
551
560
  "kind": "Content",
@@ -557,13 +566,13 @@
557
566
  "name": "NavEventDetailMap",
558
567
  "typeTokenRange": {
559
568
  "startIndex": 1,
560
- "endIndex": 2
569
+ "endIndex": 4
561
570
  }
562
571
  },
563
572
  {
564
573
  "kind": "Class",
565
574
  "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 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",
575
+ "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 * @fires\n *\n * nav-button-clicked - Dispatched when the user clicks a navigation button.\n *\n * @public\n */\n",
567
576
  "excerptTokens": [
568
577
  {
569
578
  "kind": "Content",
@@ -732,6 +741,55 @@
732
741
  "isProtected": false,
733
742
  "isAbstract": false
734
743
  },
744
+ {
745
+ "kind": "Method",
746
+ "canonicalReference": "@genesislcap/foundation-header!Navigation#handleNavButtonClick:member(1)",
747
+ "docComment": "/**\n * Handles the click event for a navigation button\n *\n * @param routeNavItem - The navigation item that was clicked\n */\n",
748
+ "excerptTokens": [
749
+ {
750
+ "kind": "Content",
751
+ "text": "handleNavButtonClick(routeNavItem: "
752
+ },
753
+ {
754
+ "kind": "Reference",
755
+ "text": "FoundationRouteNavItem",
756
+ "canonicalReference": "@genesislcap/foundation-ui!FoundationRouteNavItem:type"
757
+ },
758
+ {
759
+ "kind": "Content",
760
+ "text": "): "
761
+ },
762
+ {
763
+ "kind": "Content",
764
+ "text": "void"
765
+ },
766
+ {
767
+ "kind": "Content",
768
+ "text": ";"
769
+ }
770
+ ],
771
+ "isStatic": false,
772
+ "returnTypeTokenRange": {
773
+ "startIndex": 3,
774
+ "endIndex": 4
775
+ },
776
+ "releaseTag": "Public",
777
+ "isProtected": false,
778
+ "overloadIndex": 1,
779
+ "parameters": [
780
+ {
781
+ "parameterName": "routeNavItem",
782
+ "parameterTypeTokenRange": {
783
+ "startIndex": 1,
784
+ "endIndex": 2
785
+ },
786
+ "isOptional": false
787
+ }
788
+ ],
789
+ "isOptional": false,
790
+ "isAbstract": false,
791
+ "name": "handleNavButtonClick"
792
+ },
735
793
  {
736
794
  "kind": "Property",
737
795
  "canonicalReference": "@genesislcap/foundation-header!Navigation#headerConfig:member",
@@ -193,6 +193,10 @@ export declare type NavEventDetailMap = {
193
193
  'misc-icon-clicked': void;
194
194
  'notification-icon-clicked': void;
195
195
  'language-changed': void;
196
+ 'nav-button-clicked': {
197
+ item: FoundationRouteNavItem;
198
+ context: any;
199
+ };
196
200
  };
197
201
 
198
202
  /**
@@ -230,6 +234,7 @@ export declare type NavEventDetailMap = {
230
234
  * @fires notification-icon-clicked - Dispatched when the user clicks on the notification icon in the navigation bar.
231
235
  * @fires language-changed - Dispatched when the user changes the language in the language selector.
232
236
  * @fires logout-clicked - Dispatched when the user clicks logout button.
237
+ * @fires nav-button-clicked - Dispatched when the user clicks a navigation button.
233
238
  *
234
239
  */
235
240
  export declare class Navigation extends Navigation_base {
@@ -491,10 +496,15 @@ export declare class Navigation extends Navigation_base {
491
496
  * Is languageOptions needed.
492
497
  */
493
498
  toLocalisedText(text: string): string;
499
+ /**
500
+ * Handles the click event for a navigation button
501
+ * @param routeNavItem - The navigation item that was clicked
502
+ */
503
+ handleNavButtonClick(routeNavItem: FoundationRouteNavItem): void;
494
504
  }
495
505
 
496
506
  declare const Navigation_base: abstract new (...args: any[]) => {
497
- $emit<K extends "luminance-icon-clicked" | "logout-clicked" | "misc-icon-clicked" | "notification-icon-clicked" | "language-changed">(...args: NavEventDetailMap[K] extends void ? [type: K, options?: EmitOptions] : [type: K, detail: NavEventDetailMap[K], options?: EmitOptions]): EmitReturn;
507
+ $emit<K extends "luminance-icon-clicked" | "logout-clicked" | "misc-icon-clicked" | "notification-icon-clicked" | "language-changed" | "nav-button-clicked">(...args: NavEventDetailMap[K] extends void ? [type: K, options?: EmitOptions] : [type: K, detail: NavEventDetailMap[K], options?: EmitOptions]): EmitReturn;
498
508
  accessKey: string;
499
509
  readonly accessKeyLabel: string;
500
510
  autocapitalize: string;
@@ -582,9 +592,7 @@ declare const Navigation_base: abstract new (...args: any[]) => {
582
592
  scrollTo(options?: ScrollToOptions): void;
583
593
  scrollTo(x: number, y: number): void;
584
594
  setAttribute(qualifiedName: string, value: string): void;
585
- setAttributeNS(namespace: string, qualifiedName: string, value: string): void; /**
586
- * @internal
587
- */
595
+ setAttributeNS(namespace: string, qualifiedName: string, value: string): void;
588
596
  setAttributeNode(attr: Attr): Attr;
589
597
  setAttributeNodeNS(attr: Attr): Attr;
590
598
  setPointerCapture(pointerId: number): void;
@@ -610,11 +618,7 @@ declare const Navigation_base: abstract new (...args: any[]) => {
610
618
  getRootNode(options?: GetRootNodeOptions): Node;
611
619
  hasChildNodes(): boolean;
612
620
  insertBefore<T_1 extends Node>(node: T_1, child: Node): T_1;
613
- isDefaultNamespace(namespace: string): boolean; /**
614
- * Boolean attribute which controls whether to include the sideNav component
615
- * Control via`hide-side-bar`
616
- *
617
- */
621
+ isDefaultNamespace(namespace: string): boolean;
618
622
  isEqualNode(otherNode: Node): boolean;
619
623
  isSameNode(otherNode: Node): boolean;
620
624
  lookupNamespaceURI(prefix: string): string;
@@ -664,7 +668,13 @@ declare const Navigation_base: abstract new (...args: any[]) => {
664
668
  ariaMultiSelectable: string;
665
669
  ariaOrientation: string;
666
670
  ariaPlaceholder: string;
667
- ariaPosInSet: string;
671
+ ariaPosInSet: string; /**
672
+ * Boolean attribute which controls whether to show the account menu on the navigation bar
673
+ * Control via `show-account-menu`
674
+ *
675
+ * @remarks
676
+ * If this attribute is not set then the account menu is not shown
677
+ */
668
678
  ariaPressed: string;
669
679
  ariaReadOnly: string;
670
680
  ariaRequired: string;
@@ -694,11 +704,7 @@ declare const Navigation_base: abstract new (...args: any[]) => {
694
704
  readonly children: HTMLCollection;
695
705
  readonly firstElementChild: Element;
696
706
  readonly lastElementChild: Element;
697
- append(...nodes: (string | Node)[]): void; /**
698
- * Logs the user out of their session
699
- *
700
- * @public
701
- */
707
+ append(...nodes: (string | Node)[]): void;
702
708
  prepend(...nodes: (string | Node)[]): void;
703
709
  querySelector<K_7 extends keyof HTMLElementTagNameMap>(selectors: K_7): HTMLElementTagNameMap[K_7];
704
710
  querySelector<K_8 extends keyof SVGElementTagNameMap>(selectors: K_8): SVGElementTagNameMap[K_8];
@@ -728,16 +734,6 @@ declare const Navigation_base: abstract new (...args: any[]) => {
728
734
  oncanplay: (this: GlobalEventHandlers, ev: Event) => any;
729
735
  oncanplaythrough: (this: GlobalEventHandlers, ev: Event) => any;
730
736
  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
- */
741
737
  onclick: (this: GlobalEventHandlers, ev: MouseEvent) => any;
742
738
  onclose: (this: GlobalEventHandlers, ev: Event) => any;
743
739
  oncontextmenu: (this: GlobalEventHandlers, ev: MouseEvent) => any;
@@ -798,7 +794,15 @@ declare const Navigation_base: abstract new (...args: any[]) => {
798
794
  onselectstart: (this: GlobalEventHandlers, ev: Event) => any;
799
795
  onslotchange: (this: GlobalEventHandlers, ev: Event) => any;
800
796
  onstalled: (this: GlobalEventHandlers, ev: Event) => any;
801
- onsubmit: (this: GlobalEventHandlers, ev: SubmitEvent) => any;
797
+ onsubmit: (this: GlobalEventHandlers, ev: SubmitEvent) => any; /**
798
+ * Load remote components
799
+ *
800
+ * @remarks
801
+ *
802
+ * With regards to module federation
803
+ *
804
+ * @internal
805
+ */
802
806
  onsuspend: (this: GlobalEventHandlers, ev: Event) => any;
803
807
  ontimeupdate: (this: GlobalEventHandlers, ev: Event) => any;
804
808
  ontoggle: (this: GlobalEventHandlers, ev: Event) => any;
@@ -15,5 +15,9 @@ export type NavEventDetailMap = {
15
15
  'misc-icon-clicked': void;
16
16
  'notification-icon-clicked': void;
17
17
  'language-changed': void;
18
+ 'nav-button-clicked': {
19
+ item: FoundationRouteNavItem;
20
+ context: any;
21
+ };
18
22
  };
19
23
  ```
@@ -0,0 +1,24 @@
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; [handleNavButtonClick](./foundation-header.navigation.handlenavbuttonclick.md)
4
+
5
+ ## Navigation.handleNavButtonClick() method
6
+
7
+ Handles the click event for a navigation button
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ handleNavButtonClick(routeNavItem: FoundationRouteNavItem): void;
13
+ ```
14
+
15
+ ## Parameters
16
+
17
+ | Parameter | Type | Description |
18
+ | --- | --- | --- |
19
+ | routeNavItem | FoundationRouteNavItem | The navigation item that was clicked |
20
+
21
+ **Returns:**
22
+
23
+ void
24
+
@@ -49,6 +49,7 @@ export declare class Navigation extends Navigation_base
49
49
  | --- | --- | --- |
50
50
  | [changeLanguage(e)](./foundation-header.navigation.changelanguage.md) | | Changes the language of the application |
51
51
  | [connectedCallback()](./foundation-header.navigation.connectedcallback.md) | | Called when the component is connected to the DOM |
52
+ | [handleNavButtonClick(routeNavItem)](./foundation-header.navigation.handlenavbuttonclick.md) | | Handles the click event for a navigation button |
52
53
  | [logout()](./foundation-header.navigation.logout.md) | | Logs the user out of their session |
53
54
  | [navigateTo(path)](./foundation-header.navigation.navigateto.md) | | Changes the route of the current page |
54
55
  | [selectTemplate()](./foundation-header.navigation.selecttemplate.md) | | Selects the appropriate template based on the component's state |
@@ -85,6 +85,10 @@ export type NavEventDetailMap = {
85
85
  'misc-icon-clicked': void;
86
86
  'notification-icon-clicked': void;
87
87
  'language-changed': void;
88
+ 'nav-button-clicked': {
89
+ item: FoundationRouteNavItem;
90
+ context: any;
91
+ };
88
92
  };
89
93
 
90
94
  // Warning: (ae-forgotten-export) The symbol "Navigation_base" needs to be exported by the entry point index.d.ts
@@ -99,6 +103,7 @@ export class Navigation extends Navigation_base {
99
103
  connectedCallback(): Promise<void>;
100
104
  // (undocumented)
101
105
  container: Container;
106
+ handleNavButtonClick(routeNavItem: FoundationRouteNavItem): void;
102
107
  // (undocumented)
103
108
  headerConfig: HeaderConfig;
104
109
  hideSideBar: 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.280.0",
4
+ "version": "14.281.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.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",
80
+ "@genesislcap/foundation-testing": "14.281.0",
81
+ "@genesislcap/genx": "14.281.0",
82
+ "@genesislcap/rollup-builder": "14.281.0",
83
+ "@genesislcap/ts-builder": "14.281.0",
84
+ "@genesislcap/uvu-playwright-builder": "14.281.0",
85
+ "@genesislcap/vite-builder": "14.281.0",
86
+ "@genesislcap/webpack-builder": "14.281.0",
87
87
  "rimraf": "^5.0.0"
88
88
  },
89
89
  "dependencies": {
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",
90
+ "@genesislcap/foundation-auth": "14.281.0",
91
+ "@genesislcap/foundation-comms": "14.281.0",
92
+ "@genesislcap/foundation-events": "14.281.0",
93
+ "@genesislcap/foundation-i18n": "14.281.0",
94
+ "@genesislcap/foundation-logger": "14.281.0",
95
+ "@genesislcap/foundation-login": "14.281.0",
96
+ "@genesislcap/foundation-shell": "14.281.0",
97
+ "@genesislcap/foundation-ui": "14.281.0",
98
+ "@genesislcap/foundation-user": "14.281.0",
99
+ "@genesislcap/foundation-utils": "14.281.0",
100
+ "@genesislcap/foundation-zero": "14.281.0",
101
+ "@genesislcap/rapid-design-system": "14.281.0",
102
+ "@genesislcap/web-core": "14.281.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": "7e89766c4e599c7eea739cd24de3be1e65357472"
114
+ "gitHead": "b2843ad2a9e1b5997b721f9fd1127666922c7259"
115
115
  }