@testgorilla/tgo-ui 11.22.3 → 12.0.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.
Files changed (225) hide show
  1. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +335 -229
  2. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
  3. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +547 -465
  4. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
  5. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +160 -75
  6. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
  7. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +678 -278
  8. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
  9. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +337 -274
  10. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
  11. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +351 -192
  12. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
  13. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs +1950 -960
  14. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs.map +1 -1
  15. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +1206 -1044
  16. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
  17. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +328 -182
  18. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
  19. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +383 -203
  20. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
  21. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +553 -261
  22. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
  23. package/fesm2022/testgorilla-tgo-ui-components-button.mjs +709 -739
  24. package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
  25. package/fesm2022/testgorilla-tgo-ui-components-card.mjs +219 -184
  26. package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
  27. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +515 -458
  28. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
  29. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +423 -162
  30. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
  31. package/fesm2022/testgorilla-tgo-ui-components-core.mjs +10784 -10996
  32. package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
  33. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +810 -533
  34. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
  35. package/fesm2022/testgorilla-tgo-ui-components-device-control.mjs +473 -116
  36. package/fesm2022/testgorilla-tgo-ui-components-device-control.mjs.map +1 -1
  37. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +1149 -540
  38. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
  39. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +148 -84
  40. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
  41. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +239 -142
  42. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
  43. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +599 -467
  44. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
  45. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +126 -70
  46. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
  47. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +324 -329
  48. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
  49. package/fesm2022/testgorilla-tgo-ui-components-field.mjs +969 -648
  50. package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
  51. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +553 -419
  52. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
  53. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +847 -452
  54. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
  55. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +398 -302
  56. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
  57. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +162 -95
  58. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
  59. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +1825 -1795
  60. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
  61. package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs +1018 -672
  62. package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs.map +1 -1
  63. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +758 -368
  64. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
  65. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +204 -212
  66. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
  67. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +183 -48
  68. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
  69. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +243 -79
  70. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
  71. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +751 -361
  72. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
  73. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +1122 -385
  74. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
  75. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +689 -413
  76. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
  77. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +227 -92
  78. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
  79. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +174 -113
  80. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
  81. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +367 -165
  82. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
  83. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +253 -118
  84. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
  85. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +730 -444
  86. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
  87. package/fesm2022/testgorilla-tgo-ui-components-popover.mjs +533 -221
  88. package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
  89. package/fesm2022/testgorilla-tgo-ui-components-popup-tip.mjs +274 -76
  90. package/fesm2022/testgorilla-tgo-ui-components-popup-tip.mjs.map +1 -1
  91. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +184 -124
  92. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
  93. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +1223 -574
  94. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
  95. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +249 -160
  96. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
  97. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +447 -439
  98. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
  99. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +226 -150
  100. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
  101. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +255 -67
  102. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
  103. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +205 -162
  104. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
  105. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +245 -153
  106. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
  107. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +274 -140
  108. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
  109. package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs +319 -147
  110. package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs.map +1 -1
  111. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +286 -84
  112. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
  113. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +660 -208
  114. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
  115. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +579 -320
  116. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
  117. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +419 -200
  118. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
  119. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +132 -80
  120. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
  121. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +741 -390
  122. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
  123. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +455 -329
  124. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
  125. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +543 -514
  126. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
  127. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +193 -104
  128. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
  129. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +760 -524
  130. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
  131. package/fesm2022/testgorilla-tgo-ui-components-table.mjs +714 -415
  132. package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
  133. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +847 -438
  134. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
  135. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +535 -275
  136. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
  137. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +316 -246
  138. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
  139. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +404 -284
  140. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
  141. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +664 -383
  142. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
  143. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +201 -112
  144. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
  145. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +1014 -458
  146. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
  147. package/fesm2022/testgorilla-tgo-ui.mjs +147 -155
  148. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  149. package/mcp/catalog.json +1 -1
  150. package/package.json +16 -17
  151. package/projects/tgo-canopy-ui/theme/_palette.scss +23 -18
  152. package/types/testgorilla-tgo-ui-components-accordion.d.ts +214 -158
  153. package/types/testgorilla-tgo-ui-components-ai-audio-circle.d.ts +93 -69
  154. package/types/testgorilla-tgo-ui-components-ai-caveat.d.ts +37 -34
  155. package/types/testgorilla-tgo-ui-components-ai-feedback.d.ts +126 -86
  156. package/types/testgorilla-tgo-ui-components-alert-banner.d.ts +260 -185
  157. package/types/testgorilla-tgo-ui-components-audio-waveform.d.ts +96 -67
  158. package/types/testgorilla-tgo-ui-components-autocomplete-v2.d.ts +455 -256
  159. package/types/testgorilla-tgo-ui-components-autocomplete.d.ts +545 -390
  160. package/types/testgorilla-tgo-ui-components-avatar.d.ts +128 -102
  161. package/types/testgorilla-tgo-ui-components-badge.d.ts +191 -139
  162. package/types/testgorilla-tgo-ui-components-breadcrumb.d.ts +100 -62
  163. package/types/testgorilla-tgo-ui-components-button.d.ts +479 -340
  164. package/types/testgorilla-tgo-ui-components-card.d.ts +153 -114
  165. package/types/testgorilla-tgo-ui-components-checkbox.d.ts +299 -223
  166. package/types/testgorilla-tgo-ui-components-checklist.d.ts +149 -97
  167. package/types/testgorilla-tgo-ui-components-core.d.ts +307 -295
  168. package/types/testgorilla-tgo-ui-components-datepicker.d.ts +404 -299
  169. package/types/testgorilla-tgo-ui-components-device-control.d.ts +151 -81
  170. package/types/testgorilla-tgo-ui-components-dialog.d.ts +442 -329
  171. package/types/testgorilla-tgo-ui-components-divider.d.ts +64 -51
  172. package/types/testgorilla-tgo-ui-components-donut-chart.d.ts +41 -37
  173. package/types/testgorilla-tgo-ui-components-dropdown.d.ts +335 -241
  174. package/types/testgorilla-tgo-ui-components-elevation-shadow.d.ts +48 -43
  175. package/types/testgorilla-tgo-ui-components-empty-state.d.ts +317 -215
  176. package/types/testgorilla-tgo-ui-components-field.d.ts +559 -388
  177. package/types/testgorilla-tgo-ui-components-file-upload.d.ts +230 -168
  178. package/types/testgorilla-tgo-ui-components-filter-button.d.ts +263 -206
  179. package/types/testgorilla-tgo-ui-components-gaussian-chart.d.ts +107 -94
  180. package/types/testgorilla-tgo-ui-components-icon-label.d.ts +84 -61
  181. package/types/testgorilla-tgo-ui-components-icon.d.ts +137 -110
  182. package/types/testgorilla-tgo-ui-components-infinite-scroll-table.d.ts +429 -303
  183. package/types/testgorilla-tgo-ui-components-inline-field.d.ts +338 -254
  184. package/types/testgorilla-tgo-ui-components-logo.d.ts +119 -101
  185. package/types/testgorilla-tgo-ui-components-media-card.d.ts +51 -35
  186. package/types/testgorilla-tgo-ui-components-media-dialog.d.ts +40 -45
  187. package/types/testgorilla-tgo-ui-components-multi-input.d.ts +283 -194
  188. package/types/testgorilla-tgo-ui-components-navbar.d.ts +326 -208
  189. package/types/testgorilla-tgo-ui-components-overflow-menu.d.ts +276 -204
  190. package/types/testgorilla-tgo-ui-components-page-header.d.ts +67 -50
  191. package/types/testgorilla-tgo-ui-components-paginator.d.ts +103 -70
  192. package/types/testgorilla-tgo-ui-components-password-criteria.d.ts +67 -58
  193. package/types/testgorilla-tgo-ui-components-password-strength.d.ts +66 -57
  194. package/types/testgorilla-tgo-ui-components-phone-input.d.ts +217 -175
  195. package/types/testgorilla-tgo-ui-components-popover.d.ts +94 -53
  196. package/types/testgorilla-tgo-ui-components-popup-tip.d.ts +81 -44
  197. package/types/testgorilla-tgo-ui-components-progress-bar.d.ts +115 -84
  198. package/types/testgorilla-tgo-ui-components-prompt.d.ts +315 -219
  199. package/types/testgorilla-tgo-ui-components-radial-progress.d.ts +146 -107
  200. package/types/testgorilla-tgo-ui-components-radio-button.d.ts +296 -219
  201. package/types/testgorilla-tgo-ui-components-rating.d.ts +134 -95
  202. package/types/testgorilla-tgo-ui-components-scale-table.d.ts +67 -47
  203. package/types/testgorilla-tgo-ui-components-scale.d.ts +91 -66
  204. package/types/testgorilla-tgo-ui-components-segmented-bar.d.ts +118 -89
  205. package/types/testgorilla-tgo-ui-components-segmented-button.d.ts +107 -80
  206. package/types/testgorilla-tgo-ui-components-segmented-toggle.d.ts +138 -105
  207. package/types/testgorilla-tgo-ui-components-selectable-card.d.ts +90 -56
  208. package/types/testgorilla-tgo-ui-components-side-navigation.d.ts +183 -107
  209. package/types/testgorilla-tgo-ui-components-side-panel.d.ts +156 -145
  210. package/types/testgorilla-tgo-ui-components-side-sheet.d.ts +98 -89
  211. package/types/testgorilla-tgo-ui-components-skeleton.d.ts +50 -33
  212. package/types/testgorilla-tgo-ui-components-slider.d.ts +278 -198
  213. package/types/testgorilla-tgo-ui-components-snackbar.d.ts +211 -159
  214. package/types/testgorilla-tgo-ui-components-spider-chart.d.ts +140 -121
  215. package/types/testgorilla-tgo-ui-components-spinner.d.ts +93 -72
  216. package/types/testgorilla-tgo-ui-components-stepper.d.ts +480 -338
  217. package/types/testgorilla-tgo-ui-components-table.d.ts +280 -233
  218. package/types/testgorilla-tgo-ui-components-tabs.d.ts +282 -183
  219. package/types/testgorilla-tgo-ui-components-tag.d.ts +266 -193
  220. package/types/testgorilla-tgo-ui-components-toggle.d.ts +180 -132
  221. package/types/testgorilla-tgo-ui-components-tooltip.d.ts +142 -105
  222. package/types/testgorilla-tgo-ui-components-universal-skills.d.ts +165 -144
  223. package/types/testgorilla-tgo-ui-components-validation-error.d.ts +70 -51
  224. package/types/testgorilla-tgo-ui-components-write-with-ai.d.ts +210 -133
  225. package/types/testgorilla-tgo-ui.d.ts +52 -45
@@ -1,386 +1,1123 @@
1
- import { BreakpointObserver } from '@angular/cdk/layout';
2
- import { NgClass, NgTemplateOutlet, AsyncPipe, CommonModule } from '@angular/common';
3
- import * as i0 from '@angular/core';
4
- import { input, output, computed, ChangeDetectionStrategy, Component, inject, signal, effect, NgModule } from '@angular/core';
5
- import { toObservable, toSignal } from '@angular/core/rxjs-interop';
6
- import { MatButtonModule, MatButton } from '@angular/material/button';
7
- import { MatIconModule, MatIcon } from '@angular/material/icon';
8
- import { MatMenuModule, MatMenuTrigger, MatMenu, MatMenuItem } from '@angular/material/menu';
9
- import { MatToolbar, MatToolbarModule } from '@angular/material/toolbar';
10
- import { Subject, take, switchMap, map } from 'rxjs';
11
- import * as i1 from '@testgorilla/tgo-ui/components/avatar';
12
- import { AvatarSize, AvatarComponentModule, AvatarComponent } from '@testgorilla/tgo-ui/components/avatar';
13
- import { BadgeComponent, BadgeComponentModule } from '@testgorilla/tgo-ui/components/badge';
14
- import * as i2 from '@testgorilla/tgo-ui/components/button';
15
- import { ButtonComponentModule, ButtonComponent } from '@testgorilla/tgo-ui/components/button';
16
- import { UiTranslatePipe, ScreenBreakpoints } from '@testgorilla/tgo-ui/components/core';
17
- import * as i2$1 from '@testgorilla/tgo-ui/components/icon';
18
- import { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';
19
- import { LogoTypeEnum, LogoComponent, LogoComponentModule } from '@testgorilla/tgo-ui/components/logo';
20
- import * as i1$1 from '@testgorilla/tgo-ui/components/side-sheet';
21
- import { SideSheetService, SideSheetComponentModule } from '@testgorilla/tgo-ui/components/side-sheet';
22
- import { AccordionComponentModule } from '@testgorilla/tgo-ui/components/accordion';
23
- import { MatRippleModule } from '@angular/material/core';
24
-
25
- class MobileNavbarSideSheetComponent {
26
- constructor() {
27
- this.routes = input([], ...(ngDevMode ? [{ debugName: "routes" }] : /* istanbul ignore next */ []));
28
- this.activedRoute = input('', ...(ngDevMode ? [{ debugName: "activedRoute" }] : /* istanbul ignore next */ []));
29
- this.email = input('', ...(ngDevMode ? [{ debugName: "email" }] : /* istanbul ignore next */ []));
30
- this.userName = input('', ...(ngDevMode ? [{ debugName: "userName" }] : /* istanbul ignore next */ []));
31
- this.menuItems = input([], ...(ngDevMode ? [{ debugName: "menuItems" }] : /* istanbul ignore next */ []));
32
- this.contentTemplateRef = input(...(ngDevMode ? [undefined, { debugName: "contentTemplateRef" }] : /* istanbul ignore next */ []));
33
- this.userInfoExtraTemplateRef = input(...(ngDevMode ? [undefined, { debugName: "userInfoExtraTemplateRef" }] : /* istanbul ignore next */ []));
34
- this.menuContentTemplateRef = input(...(ngDevMode ? [undefined, { debugName: "menuContentTemplateRef" }] : /* istanbul ignore next */ []));
35
- this.isDesktop = input(false, ...(ngDevMode ? [{ debugName: "isDesktop" }] : /* istanbul ignore next */ []));
36
- this.applicationTheme = input('light', ...(ngDevMode ? [{ debugName: "applicationTheme" }] : /* istanbul ignore next */ []));
37
- this.navigateEvent = output();
38
- this.menuItemClicked = output();
39
- this.logoutEvent = output();
40
- this.translationContext = 'NAVBAR.';
41
- this.avatarSize = AvatarSize;
42
- this.activeRoutesMap = computed(() => {
43
- const currentRoute = this.activedRoute();
44
- return new Map(this.routes().map(route => [route.id, currentRoute?.startsWith(route.id)]));
45
- }, ...(ngDevMode ? [{ debugName: "activeRoutesMap" }] : /* istanbul ignore next */ []));
46
- }
47
- navigate(routeId) {
48
- this.navigateEvent.emit(`/${routeId}`);
49
- }
50
- logout() {
51
- this.logoutEvent.emit();
52
- }
53
- clickMenuItem(id) {
54
- this.menuItemClicked.emit(id);
55
- }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MobileNavbarSideSheetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: MobileNavbarSideSheetComponent, isStandalone: true, selector: "ui-mobile-navbar-side-sheet", inputs: { routes: { classPropertyName: "routes", publicName: "routes", isSignal: true, isRequired: false, transformFunction: null }, activedRoute: { classPropertyName: "activedRoute", publicName: "activedRoute", isSignal: true, isRequired: false, transformFunction: null }, email: { classPropertyName: "email", publicName: "email", isSignal: true, isRequired: false, transformFunction: null }, userName: { classPropertyName: "userName", publicName: "userName", isSignal: true, isRequired: false, transformFunction: null }, menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: false, transformFunction: null }, contentTemplateRef: { classPropertyName: "contentTemplateRef", publicName: "contentTemplateRef", isSignal: true, isRequired: false, transformFunction: null }, userInfoExtraTemplateRef: { classPropertyName: "userInfoExtraTemplateRef", publicName: "userInfoExtraTemplateRef", isSignal: true, isRequired: false, transformFunction: null }, menuContentTemplateRef: { classPropertyName: "menuContentTemplateRef", publicName: "menuContentTemplateRef", isSignal: true, isRequired: false, transformFunction: null }, isDesktop: { classPropertyName: "isDesktop", publicName: "isDesktop", isSignal: true, isRequired: false, transformFunction: null }, applicationTheme: { classPropertyName: "applicationTheme", publicName: "applicationTheme", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { navigateEvent: "navigateEvent", menuItemClicked: "menuItemClicked", logoutEvent: "logoutEvent" }, ngImport: i0, template: "<div class=\"mobile-navbar-container\" [ngClass]=\"{ desktop: isDesktop() }\">\n @if (isDesktop()) {\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n }\n\n @if (menuContentTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"menuContentTemplateRef()!\"></ng-container>\n }\n\n @if (!isDesktop()) {\n <div class=\"routes\">\n @for (route of routes(); track route) {\n <div\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n tabindex=\"0\"\n (click)=\"navigate(route.id)\"\n (keydown.enter)=\"navigate(route.id)\"\n class=\"route\"\n [ngClass]=\"{ active: activeRoutesMap().get(route.id) }\"\n >\n <span>{{ route.title }}</span>\n </div>\n }\n </div>\n }\n\n <div class=\"settings\">\n @for (e of menuItems(); track e) {\n @if (e) {\n <div class=\"menu-item\">\n <ui-button\n [attr.data-testid]=\"e.id\"\n data-test-role=\"menu-item\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"e.icon\"\n [label]=\"e.text\"\n (buttonClickEvent)=\"clickMenuItem(e.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"e.text + '--' + e.text\"\n ></ui-button>\n </div>\n }\n }\n </div>\n</div>\n\n<div class=\"bottom-content\" [ngClass]=\"{ desktop: isDesktop() }\">\n @if (!isDesktop() && contentTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"contentTemplateRef()!\"></ng-container>\n }\n @if (isDesktop()) {\n <div class=\"menu-item\">\n <ui-button\n data-testid=\"logout-button\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"'Logout-in-line'\"\n [label]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n (buttonClickEvent)=\"logout()\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n ></ui-button>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n }\n</div>\n\n<ng-template #userInfo>\n <div class=\"user-info\" [ngClass]=\"{ desktop: isDesktop() }\">\n <ui-avatar [size]=\"avatarSize.MEDIUM\" [name]=\"userName()\"></ui-avatar>\n <div class=\"details-container\">\n <div class=\"name-container\">\n <span class=\"user-name dd-privacy-mask\">{{ userName() }}</span>\n <span class=\"user-email dd-privacy-mask\">{{ email() }}</span>\n @if (userInfoExtraTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"userInfoExtraTemplateRef()!\"></ng-container>\n }\n </div>\n @if (!isDesktop()) {\n <ui-button\n data-testid=\"logout-button\"\n [tooltip]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n [iconName]=\"'Logout-in-line'\"\n [applicationTheme]=\"'light'\"\n [variant]=\"'icon-button'\"\n (click)=\"logout()\"\n ></ui-button>\n }\n </div>\n </div>\n</ng-template>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{display:flex;flex-direction:column;height:100%}.mobile-navbar-container{padding-top:16px;flex:1 1 auto;min-height:0;overflow-y:auto}.mobile-navbar-container.desktop{min-width:340px}.mobile-navbar-container .routes .route{display:flex;align-items:center;gap:8px;min-height:44px;padding:12px 24px;width:100%;box-sizing:border-box;font-size:16px;line-height:24px;cursor:pointer}.mobile-navbar-container .routes .route.active{background-color:#fff2fc;color:#a90686}.mobile-navbar-container .routes .route:hover{background-color:#fff2fc}.mobile-navbar-container .routes .route:active{background-color:#ffe6fa}.menu-item{width:100%;min-height:44px;display:flex;font-size:16px;line-height:24px;flex-direction:row;align-items:center;cursor:pointer}.menu-item ::ng-deep ui-button{width:100%}.menu-item ::ng-deep ui-button button{padding-left:24px!important}.menu-item ::ng-deep ui-button button span.icon{margin-right:16px!important}.menu-item ::ng-deep ui-button button span.icon-label-wrapper span.label{font-size:16px!important;line-height:24px!important;font-weight:400!important}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}.bottom-content{width:100%;flex:0 0 auto;display:flex;align-items:center;flex-direction:column;position:sticky;bottom:0;background:#fff;z-index:1}.bottom-content.desktop{position:relative;border-top:1px solid #d3d3d3;margin-top:16px;padding:16px 0 8px}.user-info{display:flex;align-items:center;gap:16px;padding:12px 24px;width:100%;box-sizing:border-box}.user-info.desktop{padding:0 16px;margin-bottom:16px}.user-info .details-container{display:flex;justify-content:space-between;align-items:center;width:100%;min-width:0;gap:8px}.user-info .name-container{display:flex;flex-direction:column;min-width:0}.user-info .name-container .user-name{font-size:16px;line-height:24px;font-weight:700;font-family:ModernGothic,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info .name-container .user-email{font-size:16px;line-height:24px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: IconComponentModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: AccordionComponentModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AvatarComponentModule }, { kind: "component", type: i1.AvatarComponent, selector: "ui-avatar", inputs: ["size", "imageUrl", "name", "tooltipText", "allowEdit", "applicationTheme", "backgroundColor"], outputs: ["editClick"] }, { kind: "ngmodule", type: ButtonComponentModule }, { kind: "component", type: i2.ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "trailingIconName", "trailingIconFilled", "disabled", "loading", "loadingWithLabel", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaExpanded", "ariaControls", "ariaPressed", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled", "testId"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "pipe", type: UiTranslatePipe, name: "uiTranslate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: MobileNavbarSideSheetComponent, decorators: [{
60
- type: Component,
61
- args: [{ selector: 'ui-mobile-navbar-side-sheet', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
62
- NgClass,
63
- IconComponentModule,
64
- MatIconModule,
65
- MatMenuModule,
66
- UiTranslatePipe,
67
- MatButtonModule,
68
- AccordionComponentModule,
69
- NgTemplateOutlet,
70
- AvatarComponentModule,
71
- ButtonComponentModule,
72
- AsyncPipe,
73
- ], template: "<div class=\"mobile-navbar-container\" [ngClass]=\"{ desktop: isDesktop() }\">\n @if (isDesktop()) {\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n }\n\n @if (menuContentTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"menuContentTemplateRef()!\"></ng-container>\n }\n\n @if (!isDesktop()) {\n <div class=\"routes\">\n @for (route of routes(); track route) {\n <div\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n tabindex=\"0\"\n (click)=\"navigate(route.id)\"\n (keydown.enter)=\"navigate(route.id)\"\n class=\"route\"\n [ngClass]=\"{ active: activeRoutesMap().get(route.id) }\"\n >\n <span>{{ route.title }}</span>\n </div>\n }\n </div>\n }\n\n <div class=\"settings\">\n @for (e of menuItems(); track e) {\n @if (e) {\n <div class=\"menu-item\">\n <ui-button\n [attr.data-testid]=\"e.id\"\n data-test-role=\"menu-item\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"e.icon\"\n [label]=\"e.text\"\n (buttonClickEvent)=\"clickMenuItem(e.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"e.text + '--' + e.text\"\n ></ui-button>\n </div>\n }\n }\n </div>\n</div>\n\n<div class=\"bottom-content\" [ngClass]=\"{ desktop: isDesktop() }\">\n @if (!isDesktop() && contentTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"contentTemplateRef()!\"></ng-container>\n }\n @if (isDesktop()) {\n <div class=\"menu-item\">\n <ui-button\n data-testid=\"logout-button\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"'Logout-in-line'\"\n [label]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n (buttonClickEvent)=\"logout()\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n ></ui-button>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n }\n</div>\n\n<ng-template #userInfo>\n <div class=\"user-info\" [ngClass]=\"{ desktop: isDesktop() }\">\n <ui-avatar [size]=\"avatarSize.MEDIUM\" [name]=\"userName()\"></ui-avatar>\n <div class=\"details-container\">\n <div class=\"name-container\">\n <span class=\"user-name dd-privacy-mask\">{{ userName() }}</span>\n <span class=\"user-email dd-privacy-mask\">{{ email() }}</span>\n @if (userInfoExtraTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"userInfoExtraTemplateRef()!\"></ng-container>\n }\n </div>\n @if (!isDesktop()) {\n <ui-button\n data-testid=\"logout-button\"\n [tooltip]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n [iconName]=\"'Logout-in-line'\"\n [applicationTheme]=\"'light'\"\n [variant]=\"'icon-button'\"\n (click)=\"logout()\"\n ></ui-button>\n }\n </div>\n </div>\n</ng-template>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{display:flex;flex-direction:column;height:100%}.mobile-navbar-container{padding-top:16px;flex:1 1 auto;min-height:0;overflow-y:auto}.mobile-navbar-container.desktop{min-width:340px}.mobile-navbar-container .routes .route{display:flex;align-items:center;gap:8px;min-height:44px;padding:12px 24px;width:100%;box-sizing:border-box;font-size:16px;line-height:24px;cursor:pointer}.mobile-navbar-container .routes .route.active{background-color:#fff2fc;color:#a90686}.mobile-navbar-container .routes .route:hover{background-color:#fff2fc}.mobile-navbar-container .routes .route:active{background-color:#ffe6fa}.menu-item{width:100%;min-height:44px;display:flex;font-size:16px;line-height:24px;flex-direction:row;align-items:center;cursor:pointer}.menu-item ::ng-deep ui-button{width:100%}.menu-item ::ng-deep ui-button button{padding-left:24px!important}.menu-item ::ng-deep ui-button button span.icon{margin-right:16px!important}.menu-item ::ng-deep ui-button button span.icon-label-wrapper span.label{font-size:16px!important;line-height:24px!important;font-weight:400!important}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}.bottom-content{width:100%;flex:0 0 auto;display:flex;align-items:center;flex-direction:column;position:sticky;bottom:0;background:#fff;z-index:1}.bottom-content.desktop{position:relative;border-top:1px solid #d3d3d3;margin-top:16px;padding:16px 0 8px}.user-info{display:flex;align-items:center;gap:16px;padding:12px 24px;width:100%;box-sizing:border-box}.user-info.desktop{padding:0 16px;margin-bottom:16px}.user-info .details-container{display:flex;justify-content:space-between;align-items:center;width:100%;min-width:0;gap:8px}.user-info .name-container{display:flex;flex-direction:column;min-width:0}.user-info .name-container .user-name{font-size:16px;line-height:24px;font-weight:700;font-family:ModernGothic,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info .name-container .user-email{font-size:16px;line-height:24px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
74
- }], propDecorators: { routes: [{ type: i0.Input, args: [{ isSignal: true, alias: "routes", required: false }] }], activedRoute: [{ type: i0.Input, args: [{ isSignal: true, alias: "activedRoute", required: false }] }], email: [{ type: i0.Input, args: [{ isSignal: true, alias: "email", required: false }] }], userName: [{ type: i0.Input, args: [{ isSignal: true, alias: "userName", required: false }] }], menuItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuItems", required: false }] }], contentTemplateRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentTemplateRef", required: false }] }], userInfoExtraTemplateRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "userInfoExtraTemplateRef", required: false }] }], menuContentTemplateRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuContentTemplateRef", required: false }] }], isDesktop: [{ type: i0.Input, args: [{ isSignal: true, alias: "isDesktop", required: false }] }], applicationTheme: [{ type: i0.Input, args: [{ isSignal: true, alias: "applicationTheme", required: false }] }], navigateEvent: [{ type: i0.Output, args: ["navigateEvent"] }], menuItemClicked: [{ type: i0.Output, args: ["menuItemClicked"] }], logoutEvent: [{ type: i0.Output, args: ["logoutEvent"] }] } });
75
-
76
- /**
77
- * Injected by string for backwards compatibility — consumers provide this token by its string name.
78
- */
79
- const DEFAULT_APPLICATION_THEME_TOKEN = 'CANOPYUI_DEFAULT_APPLICATION_THEME';
80
- class NavbarComponent {
81
- constructor() {
82
- this.breakpointObserver = inject(BreakpointObserver);
83
- this.sideSheetService = inject(SideSheetService);
84
- this.translatePipe = inject(UiTranslatePipe);
85
- this.defaultAppTheme = inject(DEFAULT_APPLICATION_THEME_TOKEN, { optional: true });
86
- /**
87
- * Routes object
88
- *
89
- * @memberof NavbarComponent
90
- * @ignore
91
- */
92
- this.routes = input([], ...(ngDevMode ? [{ debugName: "routes" }] : /* istanbul ignore next */ []));
93
- /**
94
- * Actived route id
95
- *
96
- * @memberof NavbarComponent
97
- */
98
- this.activedRoute = input('', ...(ngDevMode ? [{ debugName: "activedRoute" }] : /* istanbul ignore next */ []));
99
- /**
100
- * User first name and last name
101
- *
102
- * @memberof NavbarComponent
103
- */
104
- this.userName = input('', ...(ngDevMode ? [{ debugName: "userName" }] : /* istanbul ignore next */ []));
105
- /**
106
- * User email
107
- *
108
- * @memberof NavbarComponent
109
- */
110
- this.email = input('', ...(ngDevMode ? [{ debugName: "email" }] : /* istanbul ignore next */ []));
111
- /**
112
- * Menu items to show in menu above the Log out button
113
- *
114
- * @memberof NavbarComponent
115
- */
116
- this.menuItems = input([], ...(ngDevMode ? [{ debugName: "menuItems" }] : /* istanbul ignore next */ []));
117
- /**
118
- * Defines the application theme
119
- *
120
- * @memberof NavbarComponent
121
- */
122
- this.applicationTheme = input(this.defaultAppTheme ?? 'light', ...(ngDevMode ? [{ debugName: "applicationTheme" }] : /* istanbul ignore next */ []));
123
- /**
124
- * It's ng-content for the collapsed (drawer) version
125
- *
126
- * @memberof NavbarComponent
127
- */
128
- this.contentTemplateRef = input(...(ngDevMode ? [undefined, { debugName: "contentTemplateRef" }] : /* istanbul ignore next */ []));
129
- /**
130
- * Additional info template reference for the extra user info in the dropdown/sidesheet
131
- *
132
- * @memberof NavbarComponent
133
- */
134
- this.userInfoExtraTemplateRef = input(...(ngDevMode ? [undefined, { debugName: "userInfoExtraTemplateRef" }] : /* istanbul ignore next */ []));
135
- /**
136
- * Custom content template reference for the menu section between user info and menu items.
137
- * Use this to add custom components like credits display.
138
- *
139
- * @memberof NavbarComponent
140
- */
141
- this.menuContentTemplateRef = input(...(ngDevMode ? [undefined, { debugName: "menuContentTemplateRef" }] : /* istanbul ignore next */ []));
142
- /**
143
- * Width at or below which the navbar renders its compact (brandmark) logo
144
- *
145
- * @memberof NavbarComponent
146
- */
147
- this.mobileBreakpoint = input(ScreenBreakpoints.MOBILE, { ...(ngDevMode ? { debugName: "mobileBreakpoint" } : /* istanbul ignore next */ {}),
148
- // `[mobileBreakpoint]="maybeUndefined"` must not produce `(max-width: undefinedpx)`.
149
- transform: (value) => value || ScreenBreakpoints.MOBILE });
150
- /**
151
- * Width at or below which the horizontal navigation and the profile menu collapse
152
- * into the hamburger-triggered drawer
153
- *
154
- * @memberof NavbarComponent
155
- */
156
- this.collapseBreakpoint = input(ScreenBreakpoints.LARGE_TABLET, { ...(ngDevMode ? { debugName: "collapseBreakpoint" } : /* istanbul ignore next */ {}),
157
- // `[collapseBreakpoint]="maybeUndefined"` must not produce `(max-width: undefinedpx)`.
158
- transform: (value) => value || ScreenBreakpoints.LARGE_TABLET });
159
- /**
160
- * Show avatar with user initials
161
- *
162
- * @memberof NavbarComponent
163
- */
164
- this.isAvatar = input(true, ...(ngDevMode ? [{ debugName: "isAvatar" }] : /* istanbul ignore next */ []));
165
- /**
166
- * Sets class for the menu
167
- *
168
- * @memberof NavbarComponent
169
- */
170
- this.menuClass = input('', ...(ngDevMode ? [{ debugName: "menuClass" }] : /* istanbul ignore next */ []));
171
- /**
172
- * @ignore
173
- */
174
- this.navigateEvent = output();
175
- /**
176
- * @ignore
177
- */
178
- this.menuItemClicked = output();
179
- /**
180
- * @ignore
181
- */
182
- this.logoutEvent = output();
183
- this.menuState = output();
184
- this.isMobile = this.observeMaxWidth(this.mobileBreakpoint);
185
- this.isCollapsed = this.observeMaxWidth(this.collapseBreakpoint);
186
- this.screenSize = computed(() => {
187
- if (this.isMobile()) {
188
- return 'mobile';
189
- }
190
- return this.isCollapsed() ? 'tablet' : 'desktop';
191
- }, ...(ngDevMode ? [{ debugName: "screenSize" }] : /* istanbul ignore next */ []));
192
- /**
193
- * @deprecated Use the `screenSize` reported by `menuState` instead. Removed in the next major.
194
- */
195
- this.isMobile$ = toObservable(this.isMobile);
196
- /**
197
- * @deprecated Use the `screenSize` reported by `menuState` instead. Removed in the next major.
198
- */
199
- this.isTablet$ = toObservable(this.isCollapsed);
200
- this.translationContext = 'NAVBAR.';
201
- this.logoType = LogoTypeEnum;
202
- this.AvatarSize = AvatarSize;
203
- this.activeRoutesMap = computed(() => {
204
- const currentRoute = this.activedRoute();
205
- return new Map(this.routes().map(route => [route.id, currentRoute?.startsWith(route.id)]));
206
- }, ...(ngDevMode ? [{ debugName: "activeRoutesMap" }] : /* istanbul ignore next */ []));
207
- /**
208
- * Output subscriptions of the currently open drawer. Torn down when it closes, so repeated
209
- * opens don't accumulate one set per open.
210
- */
211
- this.drawerSubscriptions = [];
212
- this.isDrawerOpened = signal(false, ...(ngDevMode ? [{ debugName: "isDrawerOpened" }] : /* istanbul ignore next */ []));
213
- // The hamburger disappears once the viewport grows past `collapseBreakpoint`, so an open
214
- // drawer would have no dismiss affordance left — close it as soon as the nav expands.
215
- this.closeDrawerOnExpand = effect(() => {
216
- if (!this.isCollapsed() && this.isDrawerOpened()) {
217
- this.sideSheetService.close();
218
- }
219
- }, ...(ngDevMode ? [{ debugName: "closeDrawerOnExpand" }] : /* istanbul ignore next */ []));
220
- }
221
- openMobileMenu() {
222
- // Defensive: never stack a second set of subscriptions if a close never reported back.
223
- this.teardownDrawerSubscriptions();
224
- const isSideSheetClosed$ = new Subject();
225
- // `LanguageService` is backed by a BehaviorSubject, so this resolves synchronously.
226
- let title = '';
227
- this.translatePipe
228
- .transform(`${this.translationContext}MENU`)
229
- .pipe(take(1))
230
- .subscribe(translated => (title = translated));
231
- const navbarSideSheetComponent = this.sideSheetService.open({
232
- componentRef: MobileNavbarSideSheetComponent,
233
- title,
234
- showLogo: false,
235
- closed: isSideSheetClosed$,
236
- inputs: {
237
- userName: this.userName(),
238
- menuItems: this.menuItems(),
239
- activedRoute: this.activedRoute(),
240
- routes: this.routes(),
241
- email: this.email(),
242
- contentTemplateRef: this.contentTemplateRef(),
243
- userInfoExtraTemplateRef: this.userInfoExtraTemplateRef(),
244
- menuContentTemplateRef: this.menuContentTemplateRef(),
245
- applicationTheme: this.applicationTheme(),
246
- },
247
- });
248
- this.drawerSubscriptions = [
249
- navbarSideSheetComponent.logoutEvent.subscribe(() => {
250
- this.logoutEvent.emit();
251
- isSideSheetClosed$.next();
252
- }),
253
- navbarSideSheetComponent.menuItemClicked.subscribe(value => {
254
- this.menuItemClicked.emit(value);
255
- isSideSheetClosed$.next();
256
- }),
257
- navbarSideSheetComponent.navigateEvent.subscribe(value => {
258
- this.navigateEvent.emit(value);
259
- isSideSheetClosed$.next();
260
- }),
261
- ];
262
- }
263
- /**
264
- * Closes the drawer if the navbar is currently collapsed. Consumers use this to dismiss the
265
- * menu on navigation without reaching into the component's internals.
266
- */
267
- closeMenu() {
268
- // The open check matters: `SideSheetService.close()` broadcasts to the sheet regardless of
269
- // its state, so calling it with the drawer already closed must stay a no-op.
270
- if (this.isCollapsed() && this.isDrawerOpened()) {
271
- this.sideSheetService.close();
272
- }
273
- }
274
- navigate(routeId) {
275
- this.navigateEvent.emit(`/${routeId}`);
276
- }
277
- logout() {
278
- this.logoutEvent.emit();
279
- }
280
- clickMenuItem(id) {
281
- this.menuItemClicked.emit(id);
282
- }
283
- onChangeMenuState(isOpened, screenSize) {
284
- this.menuState.emit({ isOpened, screenSize });
285
- }
286
- onSideSheetOpenChange(isOpened) {
287
- this.isDrawerOpened.set(isOpened);
288
- if (!isOpened) {
289
- this.teardownDrawerSubscriptions();
290
- }
291
- this.onChangeMenuState(isOpened, this.screenSize());
292
- }
293
- teardownDrawerSubscriptions() {
294
- this.drawerSubscriptions.forEach(subscription => subscription.unsubscribe());
295
- this.drawerSubscriptions = [];
296
- }
297
- observeMaxWidth(breakpointPx) {
298
- return toSignal(toObservable(breakpointPx).pipe(switchMap(breakpoint => this.breakpointObserver.observe(`(max-width: ${breakpoint}px)`)), map(state => state.matches)), { initialValue: false });
299
- }
300
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: NavbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
301
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.25", type: NavbarComponent, isStandalone: true, selector: "ui-navbar", inputs: { routes: { classPropertyName: "routes", publicName: "routes", isSignal: true, isRequired: false, transformFunction: null }, activedRoute: { classPropertyName: "activedRoute", publicName: "activedRoute", isSignal: true, isRequired: false, transformFunction: null }, userName: { classPropertyName: "userName", publicName: "userName", isSignal: true, isRequired: false, transformFunction: null }, email: { classPropertyName: "email", publicName: "email", isSignal: true, isRequired: false, transformFunction: null }, menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: false, transformFunction: null }, applicationTheme: { classPropertyName: "applicationTheme", publicName: "applicationTheme", isSignal: true, isRequired: false, transformFunction: null }, contentTemplateRef: { classPropertyName: "contentTemplateRef", publicName: "contentTemplateRef", isSignal: true, isRequired: false, transformFunction: null }, userInfoExtraTemplateRef: { classPropertyName: "userInfoExtraTemplateRef", publicName: "userInfoExtraTemplateRef", isSignal: true, isRequired: false, transformFunction: null }, menuContentTemplateRef: { classPropertyName: "menuContentTemplateRef", publicName: "menuContentTemplateRef", isSignal: true, isRequired: false, transformFunction: null }, mobileBreakpoint: { classPropertyName: "mobileBreakpoint", publicName: "mobileBreakpoint", isSignal: true, isRequired: false, transformFunction: null }, collapseBreakpoint: { classPropertyName: "collapseBreakpoint", publicName: "collapseBreakpoint", isSignal: true, isRequired: false, transformFunction: null }, isAvatar: { classPropertyName: "isAvatar", publicName: "isAvatar", isSignal: true, isRequired: false, transformFunction: null }, menuClass: { classPropertyName: "menuClass", publicName: "menuClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { navigateEvent: "navigateEvent", menuItemClicked: "menuItemClicked", logoutEvent: "logoutEvent", menuState: "menuState" }, providers: [UiTranslatePipe], ngImport: i0, template: "<ui-side-sheet\n class=\"navbar-sheet\"\n [applicationTheme]=\"applicationTheme()\"\n (openChange)=\"onSideSheetOpenChange($event)\"\n position=\"end\"\n>\n <mat-toolbar [attr.theme]=\"applicationTheme()\">\n <div class=\"custom-toolbar row\">\n <div class=\"brand\">\n <ui-logo\n [applicationTheme]=\"applicationTheme()\"\n class=\"logo\"\n (click)=\"navigate('')\"\n [allowResizing]=\"true\"\n [width]=\"isMobile() ? 27 : 160\"\n [type]=\"isMobile() ? logoType.PRIMARY_BRANDMARK_PINK : logoType.DEFAULT\"\n ></ui-logo>\n\n @if (!isCollapsed()) {\n <div class=\"navigation row\">\n @for (route of routes(); track route) {\n <a\n (click)=\"navigate(route.id); $event.preventDefault()\"\n [href]=\"route.id\"\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n [ngClass]=\"{ active: activeRoutesMap().get(route.id) }\"\n >\n @if (route?.badgeOptions) {\n <ui-badge\n [label]=\"route.badgeOptions!.text ?? ''\"\n [rebrandColor]=\"route.badgeOptions!.color\"\n [variant]=\"route.badgeOptions!.variant ?? 'primary'\"\n [notificationsAmount]=\"route.badgeOptions!.notificationsAmount ?? 0\"\n ></ui-badge>\n }\n <span [attr.data-text]=\"route.title\">{{ route.title }}</span>\n </a>\n }\n </div>\n }\n </div>\n\n <div class=\"actions\">\n <div class=\"custom-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n @if (isCollapsed()) {\n <ui-button\n data-testid=\"navbar-menu-button\"\n (click)=\"openMobileMenu()\"\n [variant]=\"'text'\"\n [companyColor]=\"'#242424'\"\n [applicationTheme]=\"'light'\"\n [iconName]=\"'Menu-burger-in-line'\"\n [justIcon]=\"true\"\n ></ui-button>\n } @else {\n <button\n mat-button\n class=\"profile-menu\"\n [disableRipple]=\"applicationTheme() !== 'classic'\"\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\n [matMenuTriggerFor]=\"menu\"\n >\n <div class=\"profile-button-content\">\n @if (isAvatar()) {\n <ui-avatar\n data-testid=\"profile-button\"\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\n [applicationTheme]=\"applicationTheme()\"\n [name]=\"userName()\"\n [size]=\"AvatarSize.SMALL_MEDIUM\"\n ></ui-avatar>\n } @else {\n {{ userName() }}\n }\n\n @if (applicationTheme() === 'classic') {\n <mat-icon iconPositionEnd>expand_more</mat-icon>\n } @else {\n @if (!isAvatar()) {\n <ui-icon\n [size]=\"'24'\"\n [name]=\"\n menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\n \"\n [applicationTheme]=\"applicationTheme()\"\n ></ui-icon>\n }\n }\n </div>\n </button>\n }\n </div>\n </div>\n </mat-toolbar>\n\n <ng-content></ng-content>\n\n <mat-menu [class]=\"menuClass()\" #menu=\"matMenu\">\n @if (applicationTheme() === 'classic') {\n @for (e of menuItems(); track e) {\n <button\n mat-menu-item\n (click)=\"clickMenuItem(e.id)\"\n [attr.data-testid]=\"e.id\"\n data-test-role=\"profile-menu-item\"\n >\n <div class=\"menu-item\">\n @if (e?.icon) {\n <ui-icon [name]=\"e.icon\" size=\"24\"></ui-icon>\n }\n {{ e.text }}\n </div>\n </button>\n }\n <button data-testid=\"logout-button\" mat-menu-item (click)=\"logout()\">\n <mat-icon>power_settings_new</mat-icon>\n {{ translationContext + 'LOG_OUT' | uiTranslate | async }}\n </button>\n } @else {\n <ui-mobile-navbar-side-sheet\n [isDesktop]=\"true\"\n [menuItems]=\"menuItems()\"\n [userName]=\"userName()\"\n [routes]=\"routes()\"\n [activedRoute]=\"activedRoute()\"\n [email]=\"email()\"\n [applicationTheme]=\"applicationTheme()\"\n [contentTemplateRef]=\"contentTemplateRef()\"\n [userInfoExtraTemplateRef]=\"userInfoExtraTemplateRef()\"\n [menuContentTemplateRef]=\"menuContentTemplateRef()\"\n (menuItemClicked)=\"clickMenuItem($event)\"\n (logoutEvent)=\"logout()\"\n >\n </ui-mobile-navbar-side-sheet>\n }\n </mat-menu>\n</ui-side-sheet>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{height:100%}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container{display:block;height:100%;position:relative!important;overflow:hidden}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container:has(>.side-sheet-content.mat-drawer-opened){min-height:100vh;min-height:100dvh}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content{width:360px!important;padding:0!important;background:#fff!important}@media(max-width:600px){:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content{width:320px!important}}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .mat-drawer-inner-container{display:flex;flex-direction:column;overflow:hidden}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .mat-drawer-inner-container ui-mobile-navbar-side-sheet{flex:1 1 auto;min-height:0}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header{flex:0 0 auto;height:64px;padding:0 16px 0 24px!important;border-bottom:1px solid #d3d3d3;display:flex;align-items:center}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header .title{margin-right:0}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header .title span{font-size:20px;line-height:26px;font-weight:700}.mat-toolbar{height:80px;background-color:#fff!important}.mat-toolbar .custom-toolbar{height:100%;background-color:#fff;flex:1 1 auto;box-sizing:content-box;max-width:1312px;min-width:0;padding:0 20px;gap:16px;justify-content:space-between}@media(min-width:960px){.mat-toolbar .custom-toolbar{padding:0 40px}}@media(min-width:1280px){.mat-toolbar .custom-toolbar{padding:0 64px}}@media(max-width:600px){.mat-toolbar .custom-toolbar{padding:0 24px}}.mat-toolbar .custom-toolbar .brand{display:flex;align-items:center;gap:16px}.mat-toolbar .custom-toolbar ui-logo.logo{cursor:pointer;align-self:center;display:flex;flex-shrink:0}.mat-toolbar .custom-toolbar .navigation{height:100%}.mat-toolbar .custom-toolbar .navigation a{display:flex;align-items:center;height:100%;background:#fff;cursor:pointer;color:#000;text-decoration:none;white-space:nowrap}.mat-toolbar .custom-toolbar .navigation a:hover{text-decoration:none}.mat-toolbar .custom-toolbar .navigation a.active{border-top:2px solid #276678}.mat-toolbar .custom-toolbar .navigation a.active span{font-weight:700}.mat-toolbar .custom-toolbar .navigation a span{width:100%;text-align:center;font-weight:400;font-size:14px;line-height:16px}.mat-toolbar .custom-toolbar .navigation a span:after{content:attr(data-text);content:attr(data-text)/\"\";display:block;height:0;overflow:hidden;visibility:hidden;font-weight:700;pointer-events:none}.mat-toolbar .custom-toolbar .actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.mat-toolbar .custom-toolbar .actions .profile-menu{font-weight:600;font-size:14px;height:100%}.mat-toolbar .custom-toolbar .actions .profile-menu:has(ui-avatar){min-width:auto;padding-right:2px}.mat-toolbar .custom-toolbar .actions .profile-menu mat-icon{font-size:16px;position:relative;top:3px;left:3px}.mat-toolbar .custom-toolbar .actions .profile-button-content{display:flex;align-items:center;flex-wrap:nowrap}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar{position:relative}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar.opened:after{position:absolute;content:\"\";width:40px;height:40px;left:-2px;top:-2px;z-index:-1;border-radius:100%;background:#f4f4f4}.mat-toolbar[theme=dark],.mat-toolbar[theme=light]{display:flex;justify-content:center;width:100%;height:64px;padding:0;border-bottom:1px solid #d3d3d3}.mat-toolbar[theme=dark] .actions,.mat-toolbar[theme=light] .actions{color:#242424}.mat-toolbar[theme=dark] .actions ::ng-deep .mat-mdc-button .mdc-button__label,.mat-toolbar[theme=light] .actions ::ng-deep .mat-mdc-button .mdc-button__label{font-weight:400}.mat-toolbar[theme=dark] ui-icon,.mat-toolbar[theme=light] ui-icon{margin-left:8px}.mat-toolbar[theme=dark] ui-icon.open,.mat-toolbar[theme=light] ui-icon.open{transform:rotate(180deg)}.mat-toolbar[theme=dark] .navigation,.mat-toolbar[theme=light] .navigation{gap:2px}.mat-toolbar[theme=dark] .navigation a,.mat-toolbar[theme=light] .navigation a{padding:16px 24px;border-bottom:2px solid transparent;position:relative;transition:border-bottom-color .15s ease-in}.mat-toolbar[theme=dark] .navigation a ui-badge,.mat-toolbar[theme=light] .navigation a ui-badge{position:absolute;right:-12px;top:0;z-index:1}.mat-toolbar[theme=dark] .navigation a ui-badge ::ng-deep .badge-container-notification,.mat-toolbar[theme=light] .navigation a ui-badge ::ng-deep .badge-container-notification{position:absolute;right:16px;top:8px;font-size:14px}.mat-toolbar[theme=dark] .navigation a.active,.mat-toolbar[theme=light] .navigation a.active{border-top:unset!important;border-bottom:2px solid #d410aa}.mat-toolbar[theme=dark] .navigation a:hover,.mat-toolbar[theme=light] .navigation a:hover{border-top:unset!important;border-bottom:2px solid #242424}@media(max-width:600px){.mat-toolbar[theme=dark] ui-button,.mat-toolbar[theme=light] ui-button{height:48px}}.custom-actions{display:flex;align-items:center;height:64px;min-width:0;overflow:hidden}.row{display:flex;flex-direction:row}.menu-item{display:flex;align-items:center}.menu-item ui-icon{margin-right:16px}\n"], dependencies: [{ kind: "ngmodule", type: SideSheetComponentModule }, { kind: "component", type: i1$1.SideSheetComponent, selector: "ui-side-sheet", inputs: ["position", "applicationTheme", "testId"], outputs: ["openChange"] }, { kind: "component", type: MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: LogoComponent, selector: "ui-logo", inputs: ["type", "applicationTheme", "label", "width", "allowResizing"] }, { kind: "component", type: ButtonComponent, selector: "ui-button", inputs: ["size", "variant", "label", "iconPosition", "justIcon", "iconName", "trailingIconName", "trailingIconFilled", "disabled", "loading", "loadingWithLabel", "fullWidth", "url", "urlTarget", "value", "tooltip", "isPremium", "type", "companyColor", "buttonBadgeConfig", "applicationTheme", "disabledScaleOnClick", "ariaLabel", "ariaExpanded", "ariaControls", "ariaPressed", "ariaRequired", "ariaLabelledby", "ariaDescribedby", "preventDefault", "hasBackground", "tooltipPosition", "role", "iconFilled", "testId"], outputs: ["buttonClickEvent", "buttonHoverEvent"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BadgeComponent, selector: "ui-badge", inputs: ["label", "staticLabel", "icon", "iconColor", "trailingIcon", "trailingIconColor", "color", "variant", "notificationsAmount", "applicationTheme", "rebrandColor", "truncateLabel", "enableAnimation"] }, { kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: AvatarComponent, selector: "ui-avatar", inputs: ["size", "imageUrl", "name", "tooltipText", "allowEdit", "applicationTheme", "backgroundColor"], outputs: ["editClick"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: IconComponentModule }, { kind: "component", type: i2$1.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "component", type: MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "component", type: MobileNavbarSideSheetComponent, selector: "ui-mobile-navbar-side-sheet", inputs: ["routes", "activedRoute", "email", "userName", "menuItems", "contentTemplateRef", "userInfoExtraTemplateRef", "menuContentTemplateRef", "isDesktop", "applicationTheme"], outputs: ["navigateEvent", "menuItemClicked", "logoutEvent"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
302
- }
303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: NavbarComponent, decorators: [{
304
- type: Component,
305
- args: [{ selector: 'ui-navbar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
306
- SideSheetComponentModule,
307
- MatToolbar,
308
- LogoComponent,
309
- ButtonComponent,
310
- NgClass,
311
- BadgeComponent,
312
- MatButton,
313
- MatMenuTrigger,
314
- AvatarComponent,
315
- MatIcon,
316
- IconComponentModule,
317
- MatMenu,
318
- MatMenuItem,
319
- MobileNavbarSideSheetComponent,
320
- AsyncPipe,
321
- UiTranslatePipe,
322
- ], providers: [UiTranslatePipe], template: "<ui-side-sheet\n class=\"navbar-sheet\"\n [applicationTheme]=\"applicationTheme()\"\n (openChange)=\"onSideSheetOpenChange($event)\"\n position=\"end\"\n>\n <mat-toolbar [attr.theme]=\"applicationTheme()\">\n <div class=\"custom-toolbar row\">\n <div class=\"brand\">\n <ui-logo\n [applicationTheme]=\"applicationTheme()\"\n class=\"logo\"\n (click)=\"navigate('')\"\n [allowResizing]=\"true\"\n [width]=\"isMobile() ? 27 : 160\"\n [type]=\"isMobile() ? logoType.PRIMARY_BRANDMARK_PINK : logoType.DEFAULT\"\n ></ui-logo>\n\n @if (!isCollapsed()) {\n <div class=\"navigation row\">\n @for (route of routes(); track route) {\n <a\n (click)=\"navigate(route.id); $event.preventDefault()\"\n [href]=\"route.id\"\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n [ngClass]=\"{ active: activeRoutesMap().get(route.id) }\"\n >\n @if (route?.badgeOptions) {\n <ui-badge\n [label]=\"route.badgeOptions!.text ?? ''\"\n [rebrandColor]=\"route.badgeOptions!.color\"\n [variant]=\"route.badgeOptions!.variant ?? 'primary'\"\n [notificationsAmount]=\"route.badgeOptions!.notificationsAmount ?? 0\"\n ></ui-badge>\n }\n <span [attr.data-text]=\"route.title\">{{ route.title }}</span>\n </a>\n }\n </div>\n }\n </div>\n\n <div class=\"actions\">\n <div class=\"custom-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n @if (isCollapsed()) {\n <ui-button\n data-testid=\"navbar-menu-button\"\n (click)=\"openMobileMenu()\"\n [variant]=\"'text'\"\n [companyColor]=\"'#242424'\"\n [applicationTheme]=\"'light'\"\n [iconName]=\"'Menu-burger-in-line'\"\n [justIcon]=\"true\"\n ></ui-button>\n } @else {\n <button\n mat-button\n class=\"profile-menu\"\n [disableRipple]=\"applicationTheme() !== 'classic'\"\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\n [matMenuTriggerFor]=\"menu\"\n >\n <div class=\"profile-button-content\">\n @if (isAvatar()) {\n <ui-avatar\n data-testid=\"profile-button\"\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\n [applicationTheme]=\"applicationTheme()\"\n [name]=\"userName()\"\n [size]=\"AvatarSize.SMALL_MEDIUM\"\n ></ui-avatar>\n } @else {\n {{ userName() }}\n }\n\n @if (applicationTheme() === 'classic') {\n <mat-icon iconPositionEnd>expand_more</mat-icon>\n } @else {\n @if (!isAvatar()) {\n <ui-icon\n [size]=\"'24'\"\n [name]=\"\n menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\n \"\n [applicationTheme]=\"applicationTheme()\"\n ></ui-icon>\n }\n }\n </div>\n </button>\n }\n </div>\n </div>\n </mat-toolbar>\n\n <ng-content></ng-content>\n\n <mat-menu [class]=\"menuClass()\" #menu=\"matMenu\">\n @if (applicationTheme() === 'classic') {\n @for (e of menuItems(); track e) {\n <button\n mat-menu-item\n (click)=\"clickMenuItem(e.id)\"\n [attr.data-testid]=\"e.id\"\n data-test-role=\"profile-menu-item\"\n >\n <div class=\"menu-item\">\n @if (e?.icon) {\n <ui-icon [name]=\"e.icon\" size=\"24\"></ui-icon>\n }\n {{ e.text }}\n </div>\n </button>\n }\n <button data-testid=\"logout-button\" mat-menu-item (click)=\"logout()\">\n <mat-icon>power_settings_new</mat-icon>\n {{ translationContext + 'LOG_OUT' | uiTranslate | async }}\n </button>\n } @else {\n <ui-mobile-navbar-side-sheet\n [isDesktop]=\"true\"\n [menuItems]=\"menuItems()\"\n [userName]=\"userName()\"\n [routes]=\"routes()\"\n [activedRoute]=\"activedRoute()\"\n [email]=\"email()\"\n [applicationTheme]=\"applicationTheme()\"\n [contentTemplateRef]=\"contentTemplateRef()\"\n [userInfoExtraTemplateRef]=\"userInfoExtraTemplateRef()\"\n [menuContentTemplateRef]=\"menuContentTemplateRef()\"\n (menuItemClicked)=\"clickMenuItem($event)\"\n (logoutEvent)=\"logout()\"\n >\n </ui-mobile-navbar-side-sheet>\n }\n </mat-menu>\n</ui-side-sheet>\n", styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{height:100%}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container{display:block;height:100%;position:relative!important;overflow:hidden}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container:has(>.side-sheet-content.mat-drawer-opened){min-height:100vh;min-height:100dvh}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content{width:360px!important;padding:0!important;background:#fff!important}@media(max-width:600px){:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content{width:320px!important}}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .mat-drawer-inner-container{display:flex;flex-direction:column;overflow:hidden}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .mat-drawer-inner-container ui-mobile-navbar-side-sheet{flex:1 1 auto;min-height:0}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header{flex:0 0 auto;height:64px;padding:0 16px 0 24px!important;border-bottom:1px solid #d3d3d3;display:flex;align-items:center}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header .title{margin-right:0}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header .title span{font-size:20px;line-height:26px;font-weight:700}.mat-toolbar{height:80px;background-color:#fff!important}.mat-toolbar .custom-toolbar{height:100%;background-color:#fff;flex:1 1 auto;box-sizing:content-box;max-width:1312px;min-width:0;padding:0 20px;gap:16px;justify-content:space-between}@media(min-width:960px){.mat-toolbar .custom-toolbar{padding:0 40px}}@media(min-width:1280px){.mat-toolbar .custom-toolbar{padding:0 64px}}@media(max-width:600px){.mat-toolbar .custom-toolbar{padding:0 24px}}.mat-toolbar .custom-toolbar .brand{display:flex;align-items:center;gap:16px}.mat-toolbar .custom-toolbar ui-logo.logo{cursor:pointer;align-self:center;display:flex;flex-shrink:0}.mat-toolbar .custom-toolbar .navigation{height:100%}.mat-toolbar .custom-toolbar .navigation a{display:flex;align-items:center;height:100%;background:#fff;cursor:pointer;color:#000;text-decoration:none;white-space:nowrap}.mat-toolbar .custom-toolbar .navigation a:hover{text-decoration:none}.mat-toolbar .custom-toolbar .navigation a.active{border-top:2px solid #276678}.mat-toolbar .custom-toolbar .navigation a.active span{font-weight:700}.mat-toolbar .custom-toolbar .navigation a span{width:100%;text-align:center;font-weight:400;font-size:14px;line-height:16px}.mat-toolbar .custom-toolbar .navigation a span:after{content:attr(data-text);content:attr(data-text)/\"\";display:block;height:0;overflow:hidden;visibility:hidden;font-weight:700;pointer-events:none}.mat-toolbar .custom-toolbar .actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.mat-toolbar .custom-toolbar .actions .profile-menu{font-weight:600;font-size:14px;height:100%}.mat-toolbar .custom-toolbar .actions .profile-menu:has(ui-avatar){min-width:auto;padding-right:2px}.mat-toolbar .custom-toolbar .actions .profile-menu mat-icon{font-size:16px;position:relative;top:3px;left:3px}.mat-toolbar .custom-toolbar .actions .profile-button-content{display:flex;align-items:center;flex-wrap:nowrap}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar{position:relative}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar.opened:after{position:absolute;content:\"\";width:40px;height:40px;left:-2px;top:-2px;z-index:-1;border-radius:100%;background:#f4f4f4}.mat-toolbar[theme=dark],.mat-toolbar[theme=light]{display:flex;justify-content:center;width:100%;height:64px;padding:0;border-bottom:1px solid #d3d3d3}.mat-toolbar[theme=dark] .actions,.mat-toolbar[theme=light] .actions{color:#242424}.mat-toolbar[theme=dark] .actions ::ng-deep .mat-mdc-button .mdc-button__label,.mat-toolbar[theme=light] .actions ::ng-deep .mat-mdc-button .mdc-button__label{font-weight:400}.mat-toolbar[theme=dark] ui-icon,.mat-toolbar[theme=light] ui-icon{margin-left:8px}.mat-toolbar[theme=dark] ui-icon.open,.mat-toolbar[theme=light] ui-icon.open{transform:rotate(180deg)}.mat-toolbar[theme=dark] .navigation,.mat-toolbar[theme=light] .navigation{gap:2px}.mat-toolbar[theme=dark] .navigation a,.mat-toolbar[theme=light] .navigation a{padding:16px 24px;border-bottom:2px solid transparent;position:relative;transition:border-bottom-color .15s ease-in}.mat-toolbar[theme=dark] .navigation a ui-badge,.mat-toolbar[theme=light] .navigation a ui-badge{position:absolute;right:-12px;top:0;z-index:1}.mat-toolbar[theme=dark] .navigation a ui-badge ::ng-deep .badge-container-notification,.mat-toolbar[theme=light] .navigation a ui-badge ::ng-deep .badge-container-notification{position:absolute;right:16px;top:8px;font-size:14px}.mat-toolbar[theme=dark] .navigation a.active,.mat-toolbar[theme=light] .navigation a.active{border-top:unset!important;border-bottom:2px solid #d410aa}.mat-toolbar[theme=dark] .navigation a:hover,.mat-toolbar[theme=light] .navigation a:hover{border-top:unset!important;border-bottom:2px solid #242424}@media(max-width:600px){.mat-toolbar[theme=dark] ui-button,.mat-toolbar[theme=light] ui-button{height:48px}}.custom-actions{display:flex;align-items:center;height:64px;min-width:0;overflow:hidden}.row{display:flex;flex-direction:row}.menu-item{display:flex;align-items:center}.menu-item ui-icon{margin-right:16px}\n"] }]
323
- }], propDecorators: { routes: [{ type: i0.Input, args: [{ isSignal: true, alias: "routes", required: false }] }], activedRoute: [{ type: i0.Input, args: [{ isSignal: true, alias: "activedRoute", required: false }] }], userName: [{ type: i0.Input, args: [{ isSignal: true, alias: "userName", required: false }] }], email: [{ type: i0.Input, args: [{ isSignal: true, alias: "email", required: false }] }], menuItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuItems", required: false }] }], applicationTheme: [{ type: i0.Input, args: [{ isSignal: true, alias: "applicationTheme", required: false }] }], contentTemplateRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentTemplateRef", required: false }] }], userInfoExtraTemplateRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "userInfoExtraTemplateRef", required: false }] }], menuContentTemplateRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuContentTemplateRef", required: false }] }], mobileBreakpoint: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileBreakpoint", required: false }] }], collapseBreakpoint: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseBreakpoint", required: false }] }], isAvatar: [{ type: i0.Input, args: [{ isSignal: true, alias: "isAvatar", required: false }] }], menuClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "menuClass", required: false }] }], navigateEvent: [{ type: i0.Output, args: ["navigateEvent"] }], menuItemClicked: [{ type: i0.Output, args: ["menuItemClicked"] }], logoutEvent: [{ type: i0.Output, args: ["logoutEvent"] }], menuState: [{ type: i0.Output, args: ["menuState"] }] } });
324
-
325
- class NavbarComponentModule {
326
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: NavbarComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
327
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.25", ngImport: i0, type: NavbarComponentModule, imports: [CommonModule,
328
- MatToolbarModule,
329
- MatIconModule,
330
- MatButtonModule,
331
- MatRippleModule,
332
- MatMenuModule,
333
- LogoComponentModule,
334
- IconComponentModule,
335
- UiTranslatePipe,
336
- AvatarComponentModule,
337
- SideSheetComponentModule,
338
- ButtonComponentModule,
339
- MobileNavbarSideSheetComponent,
340
- BadgeComponentModule,
341
- NavbarComponent], exports: [NavbarComponent] }); }
342
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: NavbarComponentModule, imports: [CommonModule,
343
- MatToolbarModule,
344
- MatIconModule,
345
- MatButtonModule,
346
- MatRippleModule,
347
- MatMenuModule,
348
- LogoComponentModule,
349
- IconComponentModule,
350
- AvatarComponentModule,
351
- SideSheetComponentModule,
352
- ButtonComponentModule,
353
- MobileNavbarSideSheetComponent,
354
- BadgeComponentModule,
355
- NavbarComponent] }); }
356
- }
357
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.25", ngImport: i0, type: NavbarComponentModule, decorators: [{
358
- type: NgModule,
359
- args: [{
360
- imports: [
361
- CommonModule,
362
- MatToolbarModule,
363
- MatIconModule,
364
- MatButtonModule,
365
- MatRippleModule,
366
- MatMenuModule,
367
- LogoComponentModule,
368
- IconComponentModule,
369
- UiTranslatePipe,
370
- AvatarComponentModule,
371
- SideSheetComponentModule,
372
- ButtonComponentModule,
373
- MobileNavbarSideSheetComponent,
374
- BadgeComponentModule,
375
- NavbarComponent,
376
- ],
377
- exports: [NavbarComponent],
378
- }]
379
- }] });
380
-
381
- /**
382
- * Generated bundle index. Do not edit.
383
- */
384
-
1
+ import { BreakpointObserver } from "@angular/cdk/layout";
2
+ import { AsyncPipe, CommonModule, NgClass, NgTemplateOutlet } from "@angular/common";
3
+ import * as i0 from "@angular/core";
4
+ import { ChangeDetectionStrategy, Component, NgModule, computed, effect, inject, input, output, signal } from "@angular/core";
5
+ import { toObservable, toSignal } from "@angular/core/rxjs-interop";
6
+ import { MatButton, MatButtonModule } from "@angular/material/button";
7
+ import { MatIcon, MatIconModule } from "@angular/material/icon";
8
+ import { MatMenu, MatMenuItem, MatMenuModule, MatMenuTrigger } from "@angular/material/menu";
9
+ import { MatToolbar, MatToolbarModule } from "@angular/material/toolbar";
10
+ import { Subject, map, switchMap, take } from "rxjs";
11
+ import * as i1$1 from "@testgorilla/tgo-ui/components/avatar";
12
+ import { AvatarComponent, AvatarComponentModule, AvatarSize } from "@testgorilla/tgo-ui/components/avatar";
13
+ import { BadgeComponent, BadgeComponentModule } from "@testgorilla/tgo-ui/components/badge";
14
+ import * as i2$1 from "@testgorilla/tgo-ui/components/button";
15
+ import { ButtonComponent, ButtonComponentModule } from "@testgorilla/tgo-ui/components/button";
16
+ import { ScreenBreakpoints, UiTranslatePipe } from "@testgorilla/tgo-ui/components/core";
17
+ import * as i2 from "@testgorilla/tgo-ui/components/icon";
18
+ import { IconComponentModule } from "@testgorilla/tgo-ui/components/icon";
19
+ import { LogoComponent, LogoComponentModule, LogoTypeEnum } from "@testgorilla/tgo-ui/components/logo";
20
+ import * as i1 from "@testgorilla/tgo-ui/components/side-sheet";
21
+ import { SideSheetComponentModule, SideSheetService } from "@testgorilla/tgo-ui/components/side-sheet";
22
+ import { AccordionComponentModule } from "@testgorilla/tgo-ui/components/accordion";
23
+ import { MatRippleModule } from "@angular/material/core";
24
+ var MobileNavbarSideSheetComponent = class MobileNavbarSideSheetComponent {
25
+ constructor() {
26
+ this.routes = input([], ...ngDevMode ? [{ debugName: "routes" }] : /* istanbul ignore next */ []);
27
+ this.activedRoute = input("", ...ngDevMode ? [{ debugName: "activedRoute" }] : /* istanbul ignore next */ []);
28
+ this.email = input("", ...ngDevMode ? [{ debugName: "email" }] : /* istanbul ignore next */ []);
29
+ this.userName = input("", ...ngDevMode ? [{ debugName: "userName" }] : /* istanbul ignore next */ []);
30
+ this.menuItems = input([], ...ngDevMode ? [{ debugName: "menuItems" }] : /* istanbul ignore next */ []);
31
+ this.contentTemplateRef = input(...ngDevMode ? [void 0, { debugName: "contentTemplateRef" }] : /* istanbul ignore next */ []);
32
+ this.userInfoExtraTemplateRef = input(...ngDevMode ? [void 0, { debugName: "userInfoExtraTemplateRef" }] : /* istanbul ignore next */ []);
33
+ this.menuContentTemplateRef = input(...ngDevMode ? [void 0, { debugName: "menuContentTemplateRef" }] : /* istanbul ignore next */ []);
34
+ this.isDesktop = input(false, ...ngDevMode ? [{ debugName: "isDesktop" }] : /* istanbul ignore next */ []);
35
+ this.applicationTheme = input("light", ...ngDevMode ? [{ debugName: "applicationTheme" }] : /* istanbul ignore next */ []);
36
+ this.navigateEvent = output();
37
+ this.menuItemClicked = output();
38
+ this.logoutEvent = output();
39
+ this.translationContext = "NAVBAR.";
40
+ this.avatarSize = AvatarSize;
41
+ this.activeRoutesMap = computed(() => {
42
+ const currentRoute = this.activedRoute();
43
+ return new Map(this.routes().map((route) => [route.id, currentRoute?.startsWith(route.id)]));
44
+ }, ...ngDevMode ? [{ debugName: "activeRoutesMap" }] : /* istanbul ignore next */ []);
45
+ }
46
+ navigate(routeId) {
47
+ this.navigateEvent.emit(`/${routeId}`);
48
+ }
49
+ logout() {
50
+ this.logoutEvent.emit();
51
+ }
52
+ clickMenuItem(id) {
53
+ this.menuItemClicked.emit(id);
54
+ }
55
+ static {
56
+ this.ɵfac = i0.ɵɵngDeclareFactory({
57
+ minVersion: "12.0.0",
58
+ version: "22.2.4",
59
+ ngImport: i0,
60
+ type: MobileNavbarSideSheetComponent,
61
+ deps: [],
62
+ target: i0.ɵɵFactoryTarget.Component
63
+ });
64
+ }
65
+ static {
66
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
67
+ minVersion: "17.0.0",
68
+ version: "22.2.4",
69
+ type: MobileNavbarSideSheetComponent,
70
+ isStandalone: true,
71
+ selector: "ui-mobile-navbar-side-sheet",
72
+ inputs: {
73
+ routes: {
74
+ classPropertyName: "routes",
75
+ publicName: "routes",
76
+ isSignal: true,
77
+ isRequired: false,
78
+ transformFunction: null
79
+ },
80
+ activedRoute: {
81
+ classPropertyName: "activedRoute",
82
+ publicName: "activedRoute",
83
+ isSignal: true,
84
+ isRequired: false,
85
+ transformFunction: null
86
+ },
87
+ email: {
88
+ classPropertyName: "email",
89
+ publicName: "email",
90
+ isSignal: true,
91
+ isRequired: false,
92
+ transformFunction: null
93
+ },
94
+ userName: {
95
+ classPropertyName: "userName",
96
+ publicName: "userName",
97
+ isSignal: true,
98
+ isRequired: false,
99
+ transformFunction: null
100
+ },
101
+ menuItems: {
102
+ classPropertyName: "menuItems",
103
+ publicName: "menuItems",
104
+ isSignal: true,
105
+ isRequired: false,
106
+ transformFunction: null
107
+ },
108
+ contentTemplateRef: {
109
+ classPropertyName: "contentTemplateRef",
110
+ publicName: "contentTemplateRef",
111
+ isSignal: true,
112
+ isRequired: false,
113
+ transformFunction: null
114
+ },
115
+ userInfoExtraTemplateRef: {
116
+ classPropertyName: "userInfoExtraTemplateRef",
117
+ publicName: "userInfoExtraTemplateRef",
118
+ isSignal: true,
119
+ isRequired: false,
120
+ transformFunction: null
121
+ },
122
+ menuContentTemplateRef: {
123
+ classPropertyName: "menuContentTemplateRef",
124
+ publicName: "menuContentTemplateRef",
125
+ isSignal: true,
126
+ isRequired: false,
127
+ transformFunction: null
128
+ },
129
+ isDesktop: {
130
+ classPropertyName: "isDesktop",
131
+ publicName: "isDesktop",
132
+ isSignal: true,
133
+ isRequired: false,
134
+ transformFunction: null
135
+ },
136
+ applicationTheme: {
137
+ classPropertyName: "applicationTheme",
138
+ publicName: "applicationTheme",
139
+ isSignal: true,
140
+ isRequired: false,
141
+ transformFunction: null
142
+ }
143
+ },
144
+ outputs: {
145
+ navigateEvent: "navigateEvent",
146
+ menuItemClicked: "menuItemClicked",
147
+ logoutEvent: "logoutEvent"
148
+ },
149
+ ngImport: i0,
150
+ template: "<div class=\"mobile-navbar-container\" [ngClass]=\"{ desktop: isDesktop() }\">\n @if (isDesktop()) {\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n }\n\n @if (menuContentTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"menuContentTemplateRef()!\"></ng-container>\n }\n\n @if (!isDesktop()) {\n <div class=\"routes\">\n @for (route of routes(); track route) {\n <div\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n tabindex=\"0\"\n (click)=\"navigate(route.id)\"\n (keydown.enter)=\"navigate(route.id)\"\n class=\"route\"\n [ngClass]=\"{ active: activeRoutesMap().get(route.id) }\"\n >\n <span>{{ route.title }}</span>\n </div>\n }\n </div>\n }\n\n <div class=\"settings\">\n @for (e of menuItems(); track e) {\n @if (e) {\n <div class=\"menu-item\">\n <ui-button\n [attr.data-testid]=\"e.id\"\n data-test-role=\"menu-item\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"e.icon\"\n [label]=\"e.text\"\n (buttonClickEvent)=\"clickMenuItem(e.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"e.text + '--' + e.text\"\n ></ui-button>\n </div>\n }\n }\n </div>\n</div>\n\n<div class=\"bottom-content\" [ngClass]=\"{ desktop: isDesktop() }\">\n @if (!isDesktop() && contentTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"contentTemplateRef()!\"></ng-container>\n }\n @if (isDesktop()) {\n <div class=\"menu-item\">\n <ui-button\n data-testid=\"logout-button\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"'Logout-in-line'\"\n [label]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n (buttonClickEvent)=\"logout()\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n ></ui-button>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n }\n</div>\n\n<ng-template #userInfo>\n <div class=\"user-info\" [ngClass]=\"{ desktop: isDesktop() }\">\n <ui-avatar [size]=\"avatarSize.MEDIUM\" [name]=\"userName()\"></ui-avatar>\n <div class=\"details-container\">\n <div class=\"name-container\">\n <span class=\"user-name dd-privacy-mask\">{{ userName() }}</span>\n <span class=\"user-email dd-privacy-mask\">{{ email() }}</span>\n @if (userInfoExtraTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"userInfoExtraTemplateRef()!\"></ng-container>\n }\n </div>\n @if (!isDesktop()) {\n <ui-button\n data-testid=\"logout-button\"\n [tooltip]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n [iconName]=\"'Logout-in-line'\"\n [applicationTheme]=\"'light'\"\n [variant]=\"'icon-button'\"\n (click)=\"logout()\"\n ></ui-button>\n }\n </div>\n </div>\n</ng-template>\n",
151
+ styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{display:flex;flex-direction:column;height:100%}.mobile-navbar-container{padding-top:16px;flex:1 1 auto;min-height:0;overflow-y:auto}.mobile-navbar-container.desktop{min-width:340px}.mobile-navbar-container .routes .route{display:flex;align-items:center;gap:8px;min-height:44px;padding:12px 24px;width:100%;box-sizing:border-box;font-size:16px;line-height:24px;cursor:pointer}.mobile-navbar-container .routes .route.active{background-color:#fff2fc;color:#a90686}.mobile-navbar-container .routes .route:hover{background-color:#fff2fc}.mobile-navbar-container .routes .route:active{background-color:#ffe6fa}.menu-item{width:100%;min-height:44px;display:flex;font-size:16px;line-height:24px;flex-direction:row;align-items:center;cursor:pointer}.menu-item ::ng-deep ui-button{width:100%}.menu-item ::ng-deep ui-button button{padding-left:24px!important}.menu-item ::ng-deep ui-button button span.icon{margin-right:16px!important}.menu-item ::ng-deep ui-button button span.icon-label-wrapper span.label{font-size:16px!important;line-height:24px!important;font-weight:400!important}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}.bottom-content{width:100%;flex:0 0 auto;display:flex;align-items:center;flex-direction:column;position:sticky;bottom:0;background:#fff;z-index:1}.bottom-content.desktop{position:relative;border-top:1px solid #d3d3d3;margin-top:16px;padding:16px 0 8px}.user-info{display:flex;align-items:center;gap:16px;padding:12px 24px;width:100%;box-sizing:border-box}.user-info.desktop{padding:0 16px;margin-bottom:16px}.user-info .details-container{display:flex;justify-content:space-between;align-items:center;width:100%;min-width:0;gap:8px}.user-info .name-container{display:flex;flex-direction:column;min-width:0}.user-info .name-container .user-name{font-size:16px;line-height:24px;font-weight:700;font-family:ModernGothic,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info .name-container .user-email{font-size:16px;line-height:24px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"],
152
+ dependencies: [
153
+ {
154
+ kind: "directive",
155
+ type: NgClass,
156
+ selector: "[ngClass]",
157
+ inputs: ["class", "ngClass"]
158
+ },
159
+ {
160
+ kind: "ngmodule",
161
+ type: IconComponentModule
162
+ },
163
+ {
164
+ kind: "ngmodule",
165
+ type: MatIconModule
166
+ },
167
+ {
168
+ kind: "ngmodule",
169
+ type: MatMenuModule
170
+ },
171
+ {
172
+ kind: "ngmodule",
173
+ type: MatButtonModule
174
+ },
175
+ {
176
+ kind: "ngmodule",
177
+ type: AccordionComponentModule
178
+ },
179
+ {
180
+ kind: "directive",
181
+ type: NgTemplateOutlet,
182
+ selector: "[ngTemplateOutlet]",
183
+ inputs: [
184
+ "ngTemplateOutletContext",
185
+ "ngTemplateOutlet",
186
+ "ngTemplateOutletInjector"
187
+ ]
188
+ },
189
+ {
190
+ kind: "ngmodule",
191
+ type: AvatarComponentModule
192
+ },
193
+ {
194
+ kind: "component",
195
+ type: i1$1.AvatarComponent,
196
+ selector: "ui-avatar",
197
+ inputs: [
198
+ "size",
199
+ "imageUrl",
200
+ "name",
201
+ "tooltipText",
202
+ "allowEdit",
203
+ "applicationTheme",
204
+ "backgroundColor"
205
+ ],
206
+ outputs: ["editClick"]
207
+ },
208
+ {
209
+ kind: "ngmodule",
210
+ type: ButtonComponentModule
211
+ },
212
+ {
213
+ kind: "component",
214
+ type: i2$1.ButtonComponent,
215
+ selector: "ui-button",
216
+ inputs: [
217
+ "size",
218
+ "variant",
219
+ "label",
220
+ "iconPosition",
221
+ "justIcon",
222
+ "iconName",
223
+ "trailingIconName",
224
+ "trailingIconFilled",
225
+ "disabled",
226
+ "loading",
227
+ "loadingWithLabel",
228
+ "fullWidth",
229
+ "url",
230
+ "urlTarget",
231
+ "value",
232
+ "tooltip",
233
+ "isPremium",
234
+ "type",
235
+ "companyColor",
236
+ "buttonBadgeConfig",
237
+ "applicationTheme",
238
+ "disabledScaleOnClick",
239
+ "ariaLabel",
240
+ "ariaExpanded",
241
+ "ariaControls",
242
+ "ariaPressed",
243
+ "ariaRequired",
244
+ "ariaLabelledby",
245
+ "ariaDescribedby",
246
+ "preventDefault",
247
+ "hasBackground",
248
+ "tooltipPosition",
249
+ "role",
250
+ "iconFilled",
251
+ "testId"
252
+ ],
253
+ outputs: ["buttonClickEvent", "buttonHoverEvent"]
254
+ },
255
+ {
256
+ kind: "pipe",
257
+ type: UiTranslatePipe,
258
+ name: "uiTranslate"
259
+ },
260
+ {
261
+ kind: "pipe",
262
+ type: AsyncPipe,
263
+ name: "async"
264
+ }
265
+ ],
266
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
267
+ });
268
+ }
269
+ };
270
+ i0.ɵɵngDeclareClassMetadata({
271
+ minVersion: "12.0.0",
272
+ version: "22.2.4",
273
+ ngImport: i0,
274
+ type: MobileNavbarSideSheetComponent,
275
+ decorators: [{
276
+ type: Component,
277
+ args: [{
278
+ selector: "ui-mobile-navbar-side-sheet",
279
+ changeDetection: ChangeDetectionStrategy.OnPush,
280
+ imports: [
281
+ NgClass,
282
+ IconComponentModule,
283
+ MatIconModule,
284
+ MatMenuModule,
285
+ UiTranslatePipe,
286
+ MatButtonModule,
287
+ AccordionComponentModule,
288
+ NgTemplateOutlet,
289
+ AvatarComponentModule,
290
+ ButtonComponentModule,
291
+ AsyncPipe
292
+ ],
293
+ template: "<div class=\"mobile-navbar-container\" [ngClass]=\"{ desktop: isDesktop() }\">\n @if (isDesktop()) {\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n }\n\n @if (menuContentTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"menuContentTemplateRef()!\"></ng-container>\n }\n\n @if (!isDesktop()) {\n <div class=\"routes\">\n @for (route of routes(); track route) {\n <div\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n tabindex=\"0\"\n (click)=\"navigate(route.id)\"\n (keydown.enter)=\"navigate(route.id)\"\n class=\"route\"\n [ngClass]=\"{ active: activeRoutesMap().get(route.id) }\"\n >\n <span>{{ route.title }}</span>\n </div>\n }\n </div>\n }\n\n <div class=\"settings\">\n @for (e of menuItems(); track e) {\n @if (e) {\n <div class=\"menu-item\">\n <ui-button\n [attr.data-testid]=\"e.id\"\n data-test-role=\"menu-item\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"e.icon\"\n [label]=\"e.text\"\n (buttonClickEvent)=\"clickMenuItem(e.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"e.text + '--' + e.text\"\n ></ui-button>\n </div>\n }\n }\n </div>\n</div>\n\n<div class=\"bottom-content\" [ngClass]=\"{ desktop: isDesktop() }\">\n @if (!isDesktop() && contentTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"contentTemplateRef()!\"></ng-container>\n }\n @if (isDesktop()) {\n <div class=\"menu-item\">\n <ui-button\n data-testid=\"logout-button\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"'Logout-in-line'\"\n [label]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n (buttonClickEvent)=\"logout()\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n ></ui-button>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"userInfo\"></ng-container>\n }\n</div>\n\n<ng-template #userInfo>\n <div class=\"user-info\" [ngClass]=\"{ desktop: isDesktop() }\">\n <ui-avatar [size]=\"avatarSize.MEDIUM\" [name]=\"userName()\"></ui-avatar>\n <div class=\"details-container\">\n <div class=\"name-container\">\n <span class=\"user-name dd-privacy-mask\">{{ userName() }}</span>\n <span class=\"user-email dd-privacy-mask\">{{ email() }}</span>\n @if (userInfoExtraTemplateRef()) {\n <ng-container [ngTemplateOutlet]=\"userInfoExtraTemplateRef()!\"></ng-container>\n }\n </div>\n @if (!isDesktop()) {\n <ui-button\n data-testid=\"logout-button\"\n [tooltip]=\"(translationContext + 'LOG_OUT' | uiTranslate | async)!\"\n [iconName]=\"'Logout-in-line'\"\n [applicationTheme]=\"'light'\"\n [variant]=\"'icon-button'\"\n (click)=\"logout()\"\n ></ui-button>\n }\n </div>\n </div>\n</ng-template>\n",
294
+ styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{display:flex;flex-direction:column;height:100%}.mobile-navbar-container{padding-top:16px;flex:1 1 auto;min-height:0;overflow-y:auto}.mobile-navbar-container.desktop{min-width:340px}.mobile-navbar-container .routes .route{display:flex;align-items:center;gap:8px;min-height:44px;padding:12px 24px;width:100%;box-sizing:border-box;font-size:16px;line-height:24px;cursor:pointer}.mobile-navbar-container .routes .route.active{background-color:#fff2fc;color:#a90686}.mobile-navbar-container .routes .route:hover{background-color:#fff2fc}.mobile-navbar-container .routes .route:active{background-color:#ffe6fa}.menu-item{width:100%;min-height:44px;display:flex;font-size:16px;line-height:24px;flex-direction:row;align-items:center;cursor:pointer}.menu-item ::ng-deep ui-button{width:100%}.menu-item ::ng-deep ui-button button{padding-left:24px!important}.menu-item ::ng-deep ui-button button span.icon{margin-right:16px!important}.menu-item ::ng-deep ui-button button span.icon-label-wrapper span.label{font-size:16px!important;line-height:24px!important;font-weight:400!important}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:hover{background-color:#fff2fc}.menu-item ::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:active{background-color:#ffe6fa}.bottom-content{width:100%;flex:0 0 auto;display:flex;align-items:center;flex-direction:column;position:sticky;bottom:0;background:#fff;z-index:1}.bottom-content.desktop{position:relative;border-top:1px solid #d3d3d3;margin-top:16px;padding:16px 0 8px}.user-info{display:flex;align-items:center;gap:16px;padding:12px 24px;width:100%;box-sizing:border-box}.user-info.desktop{padding:0 16px;margin-bottom:16px}.user-info .details-container{display:flex;justify-content:space-between;align-items:center;width:100%;min-width:0;gap:8px}.user-info .name-container{display:flex;flex-direction:column;min-width:0}.user-info .name-container .user-name{font-size:16px;line-height:24px;font-weight:700;font-family:ModernGothic,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-info .name-container .user-email{font-size:16px;line-height:24px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"]
295
+ }]
296
+ }],
297
+ propDecorators: {
298
+ routes: [{
299
+ type: i0.Input,
300
+ args: [{
301
+ isSignal: true,
302
+ alias: "routes",
303
+ required: false
304
+ }]
305
+ }],
306
+ activedRoute: [{
307
+ type: i0.Input,
308
+ args: [{
309
+ isSignal: true,
310
+ alias: "activedRoute",
311
+ required: false
312
+ }]
313
+ }],
314
+ email: [{
315
+ type: i0.Input,
316
+ args: [{
317
+ isSignal: true,
318
+ alias: "email",
319
+ required: false
320
+ }]
321
+ }],
322
+ userName: [{
323
+ type: i0.Input,
324
+ args: [{
325
+ isSignal: true,
326
+ alias: "userName",
327
+ required: false
328
+ }]
329
+ }],
330
+ menuItems: [{
331
+ type: i0.Input,
332
+ args: [{
333
+ isSignal: true,
334
+ alias: "menuItems",
335
+ required: false
336
+ }]
337
+ }],
338
+ contentTemplateRef: [{
339
+ type: i0.Input,
340
+ args: [{
341
+ isSignal: true,
342
+ alias: "contentTemplateRef",
343
+ required: false
344
+ }]
345
+ }],
346
+ userInfoExtraTemplateRef: [{
347
+ type: i0.Input,
348
+ args: [{
349
+ isSignal: true,
350
+ alias: "userInfoExtraTemplateRef",
351
+ required: false
352
+ }]
353
+ }],
354
+ menuContentTemplateRef: [{
355
+ type: i0.Input,
356
+ args: [{
357
+ isSignal: true,
358
+ alias: "menuContentTemplateRef",
359
+ required: false
360
+ }]
361
+ }],
362
+ isDesktop: [{
363
+ type: i0.Input,
364
+ args: [{
365
+ isSignal: true,
366
+ alias: "isDesktop",
367
+ required: false
368
+ }]
369
+ }],
370
+ applicationTheme: [{
371
+ type: i0.Input,
372
+ args: [{
373
+ isSignal: true,
374
+ alias: "applicationTheme",
375
+ required: false
376
+ }]
377
+ }],
378
+ navigateEvent: [{
379
+ type: i0.Output,
380
+ args: ["navigateEvent"]
381
+ }],
382
+ menuItemClicked: [{
383
+ type: i0.Output,
384
+ args: ["menuItemClicked"]
385
+ }],
386
+ logoutEvent: [{
387
+ type: i0.Output,
388
+ args: ["logoutEvent"]
389
+ }]
390
+ }
391
+ });
392
+ const DEFAULT_APPLICATION_THEME_TOKEN = "CANOPYUI_DEFAULT_APPLICATION_THEME";
393
+ var NavbarComponent = class NavbarComponent {
394
+ constructor() {
395
+ this.breakpointObserver = inject(BreakpointObserver);
396
+ this.sideSheetService = inject(SideSheetService);
397
+ this.translatePipe = inject(UiTranslatePipe);
398
+ this.defaultAppTheme = inject(DEFAULT_APPLICATION_THEME_TOKEN, { optional: true });
399
+ this.routes = input([], ...ngDevMode ? [{ debugName: "routes" }] : /* istanbul ignore next */ []);
400
+ this.activedRoute = input("", ...ngDevMode ? [{ debugName: "activedRoute" }] : /* istanbul ignore next */ []);
401
+ this.userName = input("", ...ngDevMode ? [{ debugName: "userName" }] : /* istanbul ignore next */ []);
402
+ this.email = input("", ...ngDevMode ? [{ debugName: "email" }] : /* istanbul ignore next */ []);
403
+ this.menuItems = input([], ...ngDevMode ? [{ debugName: "menuItems" }] : /* istanbul ignore next */ []);
404
+ this.applicationTheme = input(this.defaultAppTheme ?? "light", ...ngDevMode ? [{ debugName: "applicationTheme" }] : /* istanbul ignore next */ []);
405
+ this.contentTemplateRef = input(...ngDevMode ? [void 0, { debugName: "contentTemplateRef" }] : /* istanbul ignore next */ []);
406
+ this.userInfoExtraTemplateRef = input(...ngDevMode ? [void 0, { debugName: "userInfoExtraTemplateRef" }] : /* istanbul ignore next */ []);
407
+ this.menuContentTemplateRef = input(...ngDevMode ? [void 0, { debugName: "menuContentTemplateRef" }] : /* istanbul ignore next */ []);
408
+ this.mobileBreakpoint = input(ScreenBreakpoints.MOBILE, {
409
+ ...ngDevMode ? { debugName: "mobileBreakpoint" } : /* istanbul ignore next */ {},
410
+ transform: (value) => value || ScreenBreakpoints.MOBILE
411
+ });
412
+ this.collapseBreakpoint = input(ScreenBreakpoints.LARGE_TABLET, {
413
+ ...ngDevMode ? { debugName: "collapseBreakpoint" } : /* istanbul ignore next */ {},
414
+ transform: (value) => value || ScreenBreakpoints.LARGE_TABLET
415
+ });
416
+ this.isAvatar = input(true, ...ngDevMode ? [{ debugName: "isAvatar" }] : /* istanbul ignore next */ []);
417
+ this.menuClass = input("", ...ngDevMode ? [{ debugName: "menuClass" }] : /* istanbul ignore next */ []);
418
+ this.navigateEvent = output();
419
+ this.menuItemClicked = output();
420
+ this.logoutEvent = output();
421
+ this.menuState = output();
422
+ this.isMobile = this.observeMaxWidth(this.mobileBreakpoint);
423
+ this.isCollapsed = this.observeMaxWidth(this.collapseBreakpoint);
424
+ this.screenSize = computed(() => {
425
+ if (this.isMobile()) return "mobile";
426
+ return this.isCollapsed() ? "tablet" : "desktop";
427
+ }, ...ngDevMode ? [{ debugName: "screenSize" }] : /* istanbul ignore next */ []);
428
+ this.isMobile$ = toObservable(this.isMobile);
429
+ this.isTablet$ = toObservable(this.isCollapsed);
430
+ this.translationContext = "NAVBAR.";
431
+ this.logoType = LogoTypeEnum;
432
+ this.AvatarSize = AvatarSize;
433
+ this.activeRoutesMap = computed(() => {
434
+ const currentRoute = this.activedRoute();
435
+ return new Map(this.routes().map((route) => [route.id, currentRoute?.startsWith(route.id)]));
436
+ }, ...ngDevMode ? [{ debugName: "activeRoutesMap" }] : /* istanbul ignore next */ []);
437
+ this.drawerSubscriptions = [];
438
+ this.isDrawerOpened = signal(false, ...ngDevMode ? [{ debugName: "isDrawerOpened" }] : /* istanbul ignore next */ []);
439
+ this.closeDrawerOnExpand = effect(() => {
440
+ if (!this.isCollapsed() && this.isDrawerOpened()) this.sideSheetService.close();
441
+ }, ...ngDevMode ? [{ debugName: "closeDrawerOnExpand" }] : /* istanbul ignore next */ []);
442
+ }
443
+ openMobileMenu() {
444
+ this.teardownDrawerSubscriptions();
445
+ const isSideSheetClosed$ = new Subject();
446
+ let title = "";
447
+ this.translatePipe.transform(`${this.translationContext}MENU`).pipe(take(1)).subscribe((translated) => title = translated);
448
+ const navbarSideSheetComponent = this.sideSheetService.open({
449
+ componentRef: MobileNavbarSideSheetComponent,
450
+ title,
451
+ showLogo: false,
452
+ closed: isSideSheetClosed$,
453
+ inputs: {
454
+ userName: this.userName(),
455
+ menuItems: this.menuItems(),
456
+ activedRoute: this.activedRoute(),
457
+ routes: this.routes(),
458
+ email: this.email(),
459
+ contentTemplateRef: this.contentTemplateRef(),
460
+ userInfoExtraTemplateRef: this.userInfoExtraTemplateRef(),
461
+ menuContentTemplateRef: this.menuContentTemplateRef(),
462
+ applicationTheme: this.applicationTheme()
463
+ }
464
+ });
465
+ this.drawerSubscriptions = [
466
+ navbarSideSheetComponent.logoutEvent.subscribe(() => {
467
+ this.logoutEvent.emit();
468
+ isSideSheetClosed$.next();
469
+ }),
470
+ navbarSideSheetComponent.menuItemClicked.subscribe((value) => {
471
+ this.menuItemClicked.emit(value);
472
+ isSideSheetClosed$.next();
473
+ }),
474
+ navbarSideSheetComponent.navigateEvent.subscribe((value) => {
475
+ this.navigateEvent.emit(value);
476
+ isSideSheetClosed$.next();
477
+ })
478
+ ];
479
+ }
480
+ closeMenu() {
481
+ if (this.isCollapsed() && this.isDrawerOpened()) this.sideSheetService.close();
482
+ }
483
+ navigate(routeId) {
484
+ this.navigateEvent.emit(`/${routeId}`);
485
+ }
486
+ logout() {
487
+ this.logoutEvent.emit();
488
+ }
489
+ clickMenuItem(id) {
490
+ this.menuItemClicked.emit(id);
491
+ }
492
+ onChangeMenuState(isOpened, screenSize) {
493
+ this.menuState.emit({
494
+ isOpened,
495
+ screenSize
496
+ });
497
+ }
498
+ onSideSheetOpenChange(isOpened) {
499
+ this.isDrawerOpened.set(isOpened);
500
+ if (!isOpened) this.teardownDrawerSubscriptions();
501
+ this.onChangeMenuState(isOpened, this.screenSize());
502
+ }
503
+ teardownDrawerSubscriptions() {
504
+ this.drawerSubscriptions.forEach((subscription) => subscription.unsubscribe());
505
+ this.drawerSubscriptions = [];
506
+ }
507
+ observeMaxWidth(breakpointPx) {
508
+ return toSignal(toObservable(breakpointPx).pipe(switchMap((breakpoint) => this.breakpointObserver.observe(`(max-width: ${breakpoint}px)`)), map((state) => state.matches)), { initialValue: false });
509
+ }
510
+ static {
511
+ this.ɵfac = i0.ɵɵngDeclareFactory({
512
+ minVersion: "12.0.0",
513
+ version: "22.2.4",
514
+ ngImport: i0,
515
+ type: NavbarComponent,
516
+ deps: [],
517
+ target: i0.ɵɵFactoryTarget.Component
518
+ });
519
+ }
520
+ static {
521
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
522
+ minVersion: "17.0.0",
523
+ version: "22.2.4",
524
+ type: NavbarComponent,
525
+ isStandalone: true,
526
+ selector: "ui-navbar",
527
+ inputs: {
528
+ routes: {
529
+ classPropertyName: "routes",
530
+ publicName: "routes",
531
+ isSignal: true,
532
+ isRequired: false,
533
+ transformFunction: null
534
+ },
535
+ activedRoute: {
536
+ classPropertyName: "activedRoute",
537
+ publicName: "activedRoute",
538
+ isSignal: true,
539
+ isRequired: false,
540
+ transformFunction: null
541
+ },
542
+ userName: {
543
+ classPropertyName: "userName",
544
+ publicName: "userName",
545
+ isSignal: true,
546
+ isRequired: false,
547
+ transformFunction: null
548
+ },
549
+ email: {
550
+ classPropertyName: "email",
551
+ publicName: "email",
552
+ isSignal: true,
553
+ isRequired: false,
554
+ transformFunction: null
555
+ },
556
+ menuItems: {
557
+ classPropertyName: "menuItems",
558
+ publicName: "menuItems",
559
+ isSignal: true,
560
+ isRequired: false,
561
+ transformFunction: null
562
+ },
563
+ applicationTheme: {
564
+ classPropertyName: "applicationTheme",
565
+ publicName: "applicationTheme",
566
+ isSignal: true,
567
+ isRequired: false,
568
+ transformFunction: null
569
+ },
570
+ contentTemplateRef: {
571
+ classPropertyName: "contentTemplateRef",
572
+ publicName: "contentTemplateRef",
573
+ isSignal: true,
574
+ isRequired: false,
575
+ transformFunction: null
576
+ },
577
+ userInfoExtraTemplateRef: {
578
+ classPropertyName: "userInfoExtraTemplateRef",
579
+ publicName: "userInfoExtraTemplateRef",
580
+ isSignal: true,
581
+ isRequired: false,
582
+ transformFunction: null
583
+ },
584
+ menuContentTemplateRef: {
585
+ classPropertyName: "menuContentTemplateRef",
586
+ publicName: "menuContentTemplateRef",
587
+ isSignal: true,
588
+ isRequired: false,
589
+ transformFunction: null
590
+ },
591
+ mobileBreakpoint: {
592
+ classPropertyName: "mobileBreakpoint",
593
+ publicName: "mobileBreakpoint",
594
+ isSignal: true,
595
+ isRequired: false,
596
+ transformFunction: null
597
+ },
598
+ collapseBreakpoint: {
599
+ classPropertyName: "collapseBreakpoint",
600
+ publicName: "collapseBreakpoint",
601
+ isSignal: true,
602
+ isRequired: false,
603
+ transformFunction: null
604
+ },
605
+ isAvatar: {
606
+ classPropertyName: "isAvatar",
607
+ publicName: "isAvatar",
608
+ isSignal: true,
609
+ isRequired: false,
610
+ transformFunction: null
611
+ },
612
+ menuClass: {
613
+ classPropertyName: "menuClass",
614
+ publicName: "menuClass",
615
+ isSignal: true,
616
+ isRequired: false,
617
+ transformFunction: null
618
+ }
619
+ },
620
+ outputs: {
621
+ navigateEvent: "navigateEvent",
622
+ menuItemClicked: "menuItemClicked",
623
+ logoutEvent: "logoutEvent",
624
+ menuState: "menuState"
625
+ },
626
+ providers: [UiTranslatePipe],
627
+ ngImport: i0,
628
+ template: "<ui-side-sheet\n class=\"navbar-sheet\"\n [applicationTheme]=\"applicationTheme()\"\n (openChange)=\"onSideSheetOpenChange($event)\"\n position=\"end\"\n>\n <mat-toolbar [attr.theme]=\"applicationTheme()\">\n <div class=\"custom-toolbar row\">\n <div class=\"brand\">\n <ui-logo\n [applicationTheme]=\"applicationTheme()\"\n class=\"logo\"\n (click)=\"navigate('')\"\n [allowResizing]=\"true\"\n [width]=\"isMobile() ? 27 : 160\"\n [type]=\"isMobile() ? logoType.PRIMARY_BRANDMARK_PINK : logoType.DEFAULT\"\n ></ui-logo>\n\n @if (!isCollapsed()) {\n <div class=\"navigation row\">\n @for (route of routes(); track route) {\n <a\n (click)=\"navigate(route.id); $event.preventDefault()\"\n [href]=\"route.id\"\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n [ngClass]=\"{ active: activeRoutesMap().get(route.id) }\"\n >\n @if (route?.badgeOptions) {\n <ui-badge\n [label]=\"route.badgeOptions!.text ?? ''\"\n [rebrandColor]=\"route.badgeOptions!.color\"\n [variant]=\"route.badgeOptions!.variant ?? 'primary'\"\n [notificationsAmount]=\"route.badgeOptions!.notificationsAmount ?? 0\"\n ></ui-badge>\n }\n <span [attr.data-text]=\"route.title\">{{ route.title }}</span>\n </a>\n }\n </div>\n }\n </div>\n\n <div class=\"actions\">\n <div class=\"custom-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n @if (isCollapsed()) {\n <ui-button\n data-testid=\"navbar-menu-button\"\n (click)=\"openMobileMenu()\"\n [variant]=\"'text'\"\n [companyColor]=\"'#242424'\"\n [applicationTheme]=\"'light'\"\n [iconName]=\"'Menu-burger-in-line'\"\n [justIcon]=\"true\"\n ></ui-button>\n } @else {\n <button\n mat-button\n class=\"profile-menu\"\n [disableRipple]=\"applicationTheme() !== 'classic'\"\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\n [matMenuTriggerFor]=\"menu\"\n >\n <div class=\"profile-button-content\">\n @if (isAvatar()) {\n <ui-avatar\n data-testid=\"profile-button\"\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\n [applicationTheme]=\"applicationTheme()\"\n [name]=\"userName()\"\n [size]=\"AvatarSize.SMALL_MEDIUM\"\n ></ui-avatar>\n } @else {\n {{ userName() }}\n }\n\n @if (applicationTheme() === 'classic') {\n <mat-icon iconPositionEnd>expand_more</mat-icon>\n } @else {\n @if (!isAvatar()) {\n <ui-icon\n [size]=\"'24'\"\n [name]=\"\n menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\n \"\n [applicationTheme]=\"applicationTheme()\"\n ></ui-icon>\n }\n }\n </div>\n </button>\n }\n </div>\n </div>\n </mat-toolbar>\n\n <ng-content></ng-content>\n\n <mat-menu [class]=\"menuClass()\" #menu=\"matMenu\">\n @if (applicationTheme() === 'classic') {\n @for (e of menuItems(); track e) {\n <button\n mat-menu-item\n (click)=\"clickMenuItem(e.id)\"\n [attr.data-testid]=\"e.id\"\n data-test-role=\"profile-menu-item\"\n >\n <div class=\"menu-item\">\n @if (e?.icon) {\n <ui-icon [name]=\"e.icon\" size=\"24\"></ui-icon>\n }\n {{ e.text }}\n </div>\n </button>\n }\n <button data-testid=\"logout-button\" mat-menu-item (click)=\"logout()\">\n <mat-icon>power_settings_new</mat-icon>\n {{ translationContext + 'LOG_OUT' | uiTranslate | async }}\n </button>\n } @else {\n <ui-mobile-navbar-side-sheet\n [isDesktop]=\"true\"\n [menuItems]=\"menuItems()\"\n [userName]=\"userName()\"\n [routes]=\"routes()\"\n [activedRoute]=\"activedRoute()\"\n [email]=\"email()\"\n [applicationTheme]=\"applicationTheme()\"\n [contentTemplateRef]=\"contentTemplateRef()\"\n [userInfoExtraTemplateRef]=\"userInfoExtraTemplateRef()\"\n [menuContentTemplateRef]=\"menuContentTemplateRef()\"\n (menuItemClicked)=\"clickMenuItem($event)\"\n (logoutEvent)=\"logout()\"\n >\n </ui-mobile-navbar-side-sheet>\n }\n </mat-menu>\n</ui-side-sheet>\n",
629
+ styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{height:100%}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container{display:block;height:100%;position:relative!important;overflow:hidden}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container:has(>.side-sheet-content.mat-drawer-opened){min-height:100vh;min-height:100dvh}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content{width:360px!important;padding:0!important;background:#fff!important}@media(max-width:600px){:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content{width:320px!important}}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .mat-drawer-inner-container{display:flex;flex-direction:column;overflow:hidden}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .mat-drawer-inner-container ui-mobile-navbar-side-sheet{flex:1 1 auto;min-height:0}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header{flex:0 0 auto;height:64px;padding:0 16px 0 24px!important;border-bottom:1px solid #d3d3d3;display:flex;align-items:center}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header .title{margin-right:0}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header .title span{font-size:20px;line-height:26px;font-weight:700}.mat-toolbar{height:80px;background-color:#fff!important}.mat-toolbar .custom-toolbar{height:100%;background-color:#fff;flex:1 1 auto;box-sizing:content-box;max-width:1312px;min-width:0;padding:0 20px;gap:16px;justify-content:space-between}@media(min-width:960px){.mat-toolbar .custom-toolbar{padding:0 40px}}@media(min-width:1280px){.mat-toolbar .custom-toolbar{padding:0 64px}}@media(max-width:600px){.mat-toolbar .custom-toolbar{padding:0 24px}}.mat-toolbar .custom-toolbar .brand{display:flex;align-items:center;gap:16px}.mat-toolbar .custom-toolbar ui-logo.logo{cursor:pointer;align-self:center;display:flex;flex-shrink:0}.mat-toolbar .custom-toolbar .navigation{height:100%}.mat-toolbar .custom-toolbar .navigation a{display:flex;align-items:center;height:100%;background:#fff;cursor:pointer;color:#000;text-decoration:none;white-space:nowrap}.mat-toolbar .custom-toolbar .navigation a:hover{text-decoration:none}.mat-toolbar .custom-toolbar .navigation a.active{border-top:2px solid #276678}.mat-toolbar .custom-toolbar .navigation a.active span{font-weight:700}.mat-toolbar .custom-toolbar .navigation a span{width:100%;text-align:center;font-weight:400;font-size:14px;line-height:16px}.mat-toolbar .custom-toolbar .navigation a span:after{content:attr(data-text);content:attr(data-text)/\"\";display:block;height:0;overflow:hidden;visibility:hidden;font-weight:700;pointer-events:none}.mat-toolbar .custom-toolbar .actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.mat-toolbar .custom-toolbar .actions .profile-menu{font-weight:600;font-size:14px;height:100%}.mat-toolbar .custom-toolbar .actions .profile-menu:has(ui-avatar){min-width:auto;padding-right:2px}.mat-toolbar .custom-toolbar .actions .profile-menu mat-icon{font-size:16px;position:relative;top:3px;left:3px}.mat-toolbar .custom-toolbar .actions .profile-button-content{display:flex;align-items:center;flex-wrap:nowrap}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar{position:relative}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar.opened:after{position:absolute;content:\"\";width:40px;height:40px;left:-2px;top:-2px;z-index:-1;border-radius:100%;background:#f4f4f4}.mat-toolbar[theme=dark],.mat-toolbar[theme=light]{display:flex;justify-content:center;width:100%;height:64px;padding:0;border-bottom:1px solid #d3d3d3}.mat-toolbar[theme=dark] .actions,.mat-toolbar[theme=light] .actions{color:#242424}.mat-toolbar[theme=dark] .actions ::ng-deep .mat-mdc-button .mdc-button__label,.mat-toolbar[theme=light] .actions ::ng-deep .mat-mdc-button .mdc-button__label{font-weight:400}.mat-toolbar[theme=dark] ui-icon,.mat-toolbar[theme=light] ui-icon{margin-left:8px}.mat-toolbar[theme=dark] ui-icon.open,.mat-toolbar[theme=light] ui-icon.open{transform:rotate(180deg)}.mat-toolbar[theme=dark] .navigation,.mat-toolbar[theme=light] .navigation{gap:2px}.mat-toolbar[theme=dark] .navigation a,.mat-toolbar[theme=light] .navigation a{padding:16px 24px;border-bottom:2px solid transparent;position:relative;transition:border-bottom-color .15s ease-in}.mat-toolbar[theme=dark] .navigation a ui-badge,.mat-toolbar[theme=light] .navigation a ui-badge{position:absolute;right:-12px;top:0;z-index:1}.mat-toolbar[theme=dark] .navigation a ui-badge ::ng-deep .badge-container-notification,.mat-toolbar[theme=light] .navigation a ui-badge ::ng-deep .badge-container-notification{position:absolute;right:16px;top:8px;font-size:14px}.mat-toolbar[theme=dark] .navigation a.active,.mat-toolbar[theme=light] .navigation a.active{border-top:unset!important;border-bottom:2px solid #d410aa}.mat-toolbar[theme=dark] .navigation a:hover,.mat-toolbar[theme=light] .navigation a:hover{border-top:unset!important;border-bottom:2px solid #242424}@media(max-width:600px){.mat-toolbar[theme=dark] ui-button,.mat-toolbar[theme=light] ui-button{height:48px}}.custom-actions{display:flex;align-items:center;height:64px;min-width:0;overflow:hidden}.row{display:flex;flex-direction:row}.menu-item{display:flex;align-items:center}.menu-item ui-icon{margin-right:16px}\n"],
630
+ dependencies: [
631
+ {
632
+ kind: "ngmodule",
633
+ type: SideSheetComponentModule
634
+ },
635
+ {
636
+ kind: "component",
637
+ type: i1.SideSheetComponent,
638
+ selector: "ui-side-sheet",
639
+ inputs: [
640
+ "position",
641
+ "applicationTheme",
642
+ "testId"
643
+ ],
644
+ outputs: ["openChange"]
645
+ },
646
+ {
647
+ kind: "component",
648
+ type: MatToolbar,
649
+ selector: "mat-toolbar",
650
+ inputs: ["color"],
651
+ exportAs: ["matToolbar"]
652
+ },
653
+ {
654
+ kind: "component",
655
+ type: LogoComponent,
656
+ selector: "ui-logo",
657
+ inputs: [
658
+ "type",
659
+ "applicationTheme",
660
+ "label",
661
+ "width",
662
+ "allowResizing"
663
+ ]
664
+ },
665
+ {
666
+ kind: "component",
667
+ type: ButtonComponent,
668
+ selector: "ui-button",
669
+ inputs: [
670
+ "size",
671
+ "variant",
672
+ "label",
673
+ "iconPosition",
674
+ "justIcon",
675
+ "iconName",
676
+ "trailingIconName",
677
+ "trailingIconFilled",
678
+ "disabled",
679
+ "loading",
680
+ "loadingWithLabel",
681
+ "fullWidth",
682
+ "url",
683
+ "urlTarget",
684
+ "value",
685
+ "tooltip",
686
+ "isPremium",
687
+ "type",
688
+ "companyColor",
689
+ "buttonBadgeConfig",
690
+ "applicationTheme",
691
+ "disabledScaleOnClick",
692
+ "ariaLabel",
693
+ "ariaExpanded",
694
+ "ariaControls",
695
+ "ariaPressed",
696
+ "ariaRequired",
697
+ "ariaLabelledby",
698
+ "ariaDescribedby",
699
+ "preventDefault",
700
+ "hasBackground",
701
+ "tooltipPosition",
702
+ "role",
703
+ "iconFilled",
704
+ "testId"
705
+ ],
706
+ outputs: ["buttonClickEvent", "buttonHoverEvent"]
707
+ },
708
+ {
709
+ kind: "directive",
710
+ type: NgClass,
711
+ selector: "[ngClass]",
712
+ inputs: ["class", "ngClass"]
713
+ },
714
+ {
715
+ kind: "component",
716
+ type: BadgeComponent,
717
+ selector: "ui-badge",
718
+ inputs: [
719
+ "label",
720
+ "staticLabel",
721
+ "icon",
722
+ "iconColor",
723
+ "trailingIcon",
724
+ "trailingIconColor",
725
+ "color",
726
+ "variant",
727
+ "notificationsAmount",
728
+ "applicationTheme",
729
+ "rebrandColor",
730
+ "truncateLabel",
731
+ "enableAnimation"
732
+ ]
733
+ },
734
+ {
735
+ kind: "component",
736
+ type: MatButton,
737
+ selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ",
738
+ inputs: ["matButton"],
739
+ exportAs: ["matButton", "matAnchor"]
740
+ },
741
+ {
742
+ kind: "directive",
743
+ type: MatMenuTrigger,
744
+ selector: "[mat-menu-trigger-for], [matMenuTriggerFor]",
745
+ inputs: [
746
+ "mat-menu-trigger-for",
747
+ "matMenuTriggerFor",
748
+ "matMenuTriggerData",
749
+ "matMenuTriggerRestoreFocus"
750
+ ],
751
+ outputs: [
752
+ "menuOpened",
753
+ "onMenuOpen",
754
+ "menuClosed",
755
+ "onMenuClose"
756
+ ],
757
+ exportAs: ["matMenuTrigger"]
758
+ },
759
+ {
760
+ kind: "component",
761
+ type: AvatarComponent,
762
+ selector: "ui-avatar",
763
+ inputs: [
764
+ "size",
765
+ "imageUrl",
766
+ "name",
767
+ "tooltipText",
768
+ "allowEdit",
769
+ "applicationTheme",
770
+ "backgroundColor"
771
+ ],
772
+ outputs: ["editClick"]
773
+ },
774
+ {
775
+ kind: "component",
776
+ type: MatIcon,
777
+ selector: "mat-icon",
778
+ inputs: [
779
+ "color",
780
+ "inline",
781
+ "svgIcon",
782
+ "fontSet",
783
+ "fontIcon"
784
+ ],
785
+ exportAs: ["matIcon"]
786
+ },
787
+ {
788
+ kind: "ngmodule",
789
+ type: IconComponentModule
790
+ },
791
+ {
792
+ kind: "component",
793
+ type: i2.IconComponent,
794
+ selector: "ui-icon",
795
+ inputs: [
796
+ "size",
797
+ "cssClass",
798
+ "name",
799
+ "color",
800
+ "filled",
801
+ "toggleIconStyle",
802
+ "applicationTheme",
803
+ "useFullIconName"
804
+ ]
805
+ },
806
+ {
807
+ kind: "component",
808
+ type: MatMenu,
809
+ selector: "mat-menu",
810
+ inputs: [
811
+ "backdropClass",
812
+ "aria-label",
813
+ "aria-labelledby",
814
+ "aria-describedby",
815
+ "xPosition",
816
+ "yPosition",
817
+ "overlapTrigger",
818
+ "hasBackdrop",
819
+ "class",
820
+ "classList"
821
+ ],
822
+ outputs: ["closed", "close"],
823
+ exportAs: ["matMenu"]
824
+ },
825
+ {
826
+ kind: "component",
827
+ type: MatMenuItem,
828
+ selector: "[mat-menu-item]",
829
+ inputs: [
830
+ "role",
831
+ "disabled",
832
+ "disabledInteractive",
833
+ "disableRipple"
834
+ ],
835
+ exportAs: ["matMenuItem"]
836
+ },
837
+ {
838
+ kind: "component",
839
+ type: MobileNavbarSideSheetComponent,
840
+ selector: "ui-mobile-navbar-side-sheet",
841
+ inputs: [
842
+ "routes",
843
+ "activedRoute",
844
+ "email",
845
+ "userName",
846
+ "menuItems",
847
+ "contentTemplateRef",
848
+ "userInfoExtraTemplateRef",
849
+ "menuContentTemplateRef",
850
+ "isDesktop",
851
+ "applicationTheme"
852
+ ],
853
+ outputs: [
854
+ "navigateEvent",
855
+ "menuItemClicked",
856
+ "logoutEvent"
857
+ ]
858
+ },
859
+ {
860
+ kind: "pipe",
861
+ type: AsyncPipe,
862
+ name: "async"
863
+ },
864
+ {
865
+ kind: "pipe",
866
+ type: UiTranslatePipe,
867
+ name: "uiTranslate"
868
+ }
869
+ ],
870
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
871
+ });
872
+ }
873
+ };
874
+ i0.ɵɵngDeclareClassMetadata({
875
+ minVersion: "12.0.0",
876
+ version: "22.2.4",
877
+ ngImport: i0,
878
+ type: NavbarComponent,
879
+ decorators: [{
880
+ type: Component,
881
+ args: [{
882
+ selector: "ui-navbar",
883
+ changeDetection: ChangeDetectionStrategy.OnPush,
884
+ imports: [
885
+ SideSheetComponentModule,
886
+ MatToolbar,
887
+ LogoComponent,
888
+ ButtonComponent,
889
+ NgClass,
890
+ BadgeComponent,
891
+ MatButton,
892
+ MatMenuTrigger,
893
+ AvatarComponent,
894
+ MatIcon,
895
+ IconComponentModule,
896
+ MatMenu,
897
+ MatMenuItem,
898
+ MobileNavbarSideSheetComponent,
899
+ AsyncPipe,
900
+ UiTranslatePipe
901
+ ],
902
+ providers: [UiTranslatePipe],
903
+ template: "<ui-side-sheet\n class=\"navbar-sheet\"\n [applicationTheme]=\"applicationTheme()\"\n (openChange)=\"onSideSheetOpenChange($event)\"\n position=\"end\"\n>\n <mat-toolbar [attr.theme]=\"applicationTheme()\">\n <div class=\"custom-toolbar row\">\n <div class=\"brand\">\n <ui-logo\n [applicationTheme]=\"applicationTheme()\"\n class=\"logo\"\n (click)=\"navigate('')\"\n [allowResizing]=\"true\"\n [width]=\"isMobile() ? 27 : 160\"\n [type]=\"isMobile() ? logoType.PRIMARY_BRANDMARK_PINK : logoType.DEFAULT\"\n ></ui-logo>\n\n @if (!isCollapsed()) {\n <div class=\"navigation row\">\n @for (route of routes(); track route) {\n <a\n (click)=\"navigate(route.id); $event.preventDefault()\"\n [href]=\"route.id\"\n [attr.data-testid]=\"route.id\"\n data-test-role=\"nav-route\"\n [ngClass]=\"{ active: activeRoutesMap().get(route.id) }\"\n >\n @if (route?.badgeOptions) {\n <ui-badge\n [label]=\"route.badgeOptions!.text ?? ''\"\n [rebrandColor]=\"route.badgeOptions!.color\"\n [variant]=\"route.badgeOptions!.variant ?? 'primary'\"\n [notificationsAmount]=\"route.badgeOptions!.notificationsAmount ?? 0\"\n ></ui-badge>\n }\n <span [attr.data-text]=\"route.title\">{{ route.title }}</span>\n </a>\n }\n </div>\n }\n </div>\n\n <div class=\"actions\">\n <div class=\"custom-actions\">\n <ng-content select=\"[actions]\"></ng-content>\n </div>\n\n @if (isCollapsed()) {\n <ui-button\n data-testid=\"navbar-menu-button\"\n (click)=\"openMobileMenu()\"\n [variant]=\"'text'\"\n [companyColor]=\"'#242424'\"\n [applicationTheme]=\"'light'\"\n [iconName]=\"'Menu-burger-in-line'\"\n [justIcon]=\"true\"\n ></ui-button>\n } @else {\n <button\n mat-button\n class=\"profile-menu\"\n [disableRipple]=\"applicationTheme() !== 'classic'\"\n (menuOpened)=\"onChangeMenuState(true, 'desktop')\"\n (menuClosed)=\"onChangeMenuState(false, 'desktop')\"\n [matMenuTriggerFor]=\"menu\"\n >\n <div class=\"profile-button-content\">\n @if (isAvatar()) {\n <ui-avatar\n data-testid=\"profile-button\"\n [ngClass]=\"{ opened: menu._panelAnimationState !== 'void' }\"\n [applicationTheme]=\"applicationTheme()\"\n [name]=\"userName()\"\n [size]=\"AvatarSize.SMALL_MEDIUM\"\n ></ui-avatar>\n } @else {\n {{ userName() }}\n }\n\n @if (applicationTheme() === 'classic') {\n <mat-icon iconPositionEnd>expand_more</mat-icon>\n } @else {\n @if (!isAvatar()) {\n <ui-icon\n [size]=\"'24'\"\n [name]=\"\n menu._panelAnimationState === 'void' ? 'Arrow-chevron-down-filled' : 'Arrow-chevron-up-filled'\n \"\n [applicationTheme]=\"applicationTheme()\"\n ></ui-icon>\n }\n }\n </div>\n </button>\n }\n </div>\n </div>\n </mat-toolbar>\n\n <ng-content></ng-content>\n\n <mat-menu [class]=\"menuClass()\" #menu=\"matMenu\">\n @if (applicationTheme() === 'classic') {\n @for (e of menuItems(); track e) {\n <button\n mat-menu-item\n (click)=\"clickMenuItem(e.id)\"\n [attr.data-testid]=\"e.id\"\n data-test-role=\"profile-menu-item\"\n >\n <div class=\"menu-item\">\n @if (e?.icon) {\n <ui-icon [name]=\"e.icon\" size=\"24\"></ui-icon>\n }\n {{ e.text }}\n </div>\n </button>\n }\n <button data-testid=\"logout-button\" mat-menu-item (click)=\"logout()\">\n <mat-icon>power_settings_new</mat-icon>\n {{ translationContext + 'LOG_OUT' | uiTranslate | async }}\n </button>\n } @else {\n <ui-mobile-navbar-side-sheet\n [isDesktop]=\"true\"\n [menuItems]=\"menuItems()\"\n [userName]=\"userName()\"\n [routes]=\"routes()\"\n [activedRoute]=\"activedRoute()\"\n [email]=\"email()\"\n [applicationTheme]=\"applicationTheme()\"\n [contentTemplateRef]=\"contentTemplateRef()\"\n [userInfoExtraTemplateRef]=\"userInfoExtraTemplateRef()\"\n [menuContentTemplateRef]=\"menuContentTemplateRef()\"\n (menuItemClicked)=\"clickMenuItem($event)\"\n (logoutEvent)=\"logout()\"\n >\n </ui-mobile-navbar-side-sheet>\n }\n </mat-menu>\n</ui-side-sheet>\n",
904
+ styles: [".bg-teal-60b{background:#1c443c}.bg-teal-30b{background:#31766a}.bg-teal-default{background:#46a997}.bg-teal-30w{background:#7ec3b6}.bg-teal-60w{background:#b5ddd5}.bg-teal-secondary{background:#cbd6cb}.bg-teal-90w{background:#ecf6f5}.bg-petrol-60b{background:#102930}.bg-petrol-30b{background:#1b4754}.bg-petrol-default{background:#276678}.bg-petrol-30w{background:#6894a0}.bg-petrol-60w{background:#a9c2c9}.bg-petrol-secondary{background:#c8d7de}.bg-petrol-90w{background:#e9f0f1}.bg-error-60b{background:#513131}.bg-error-30b{background:#8e5655}.bg-error-60w{background:#e3c3c6}.bg-error-secondary{background:#f0dad9}.bg-error-default{background:#cb7b7a}.bg-warning-secondary{background:#f0d6bb}.bg-warning-default{background:#cca45f}.bg-black{background:#000}.bg-dark{background:#888}.bg-medium{background:#e0e0e0}.bg-grey{background:#ededed}.bg-light{background:#f6f6f6}.bg-white{background:#fff}.bg-box-shadow{background:#00000014}.bg-navigation-subtitle{background:#528593}.bgc-teal-60b{background-color:#1c443c}.bgc-teal-30b{background-color:#31766a}.bgc-teal-default{background-color:#46a997}.bgc-teal-30w{background-color:#7ec3b6}.bgc-teal-60w{background-color:#b5ddd5}.bgc-teal-secondary{background-color:#cbd6cb}.bgc-teal-90w{background-color:#ecf6f5}.bgc-petrol-60b{background-color:#102930}.bgc-petrol-30b{background-color:#1b4754}.bgc-petrol-default{background-color:#276678}.bgc-petrol-30w{background-color:#6894a0}.bgc-petrol-60w{background-color:#a9c2c9}.bgc-petrol-secondary{background-color:#c8d7de}.bgc-petrol-90w{background-color:#e9f0f1}.bgc-error-60b{background-color:#513131}.bgc-error-30b{background-color:#8e5655}.bgc-error-60w{background-color:#e3c3c6}.bgc-error-secondary{background-color:#f0dad9}.bgc-error-default{background-color:#cb7b7a}.bgc-warning-secondary{background-color:#f0d6bb}.bgc-warning-default{background-color:#cca45f}.bgc-black{background-color:#000}.bgc-dark{background-color:#888}.bgc-medium{background-color:#e0e0e0}.bgc-grey{background-color:#ededed}.bgc-light{background-color:#f6f6f6}.bgc-white{background-color:#fff}.bgc-box-shadow{background-color:#00000014}.bgc-navigation-subtitle{background-color:#528593}:host{height:100%}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container{display:block;height:100%;position:relative!important;overflow:hidden}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container:has(>.side-sheet-content.mat-drawer-opened){min-height:100vh;min-height:100dvh}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content{width:360px!important;padding:0!important;background:#fff!important}@media(max-width:600px){:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content{width:320px!important}}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .mat-drawer-inner-container{display:flex;flex-direction:column;overflow:hidden}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .mat-drawer-inner-container ui-mobile-navbar-side-sheet{flex:1 1 auto;min-height:0}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header{flex:0 0 auto;height:64px;padding:0 16px 0 24px!important;border-bottom:1px solid #d3d3d3;display:flex;align-items:center}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header .title{margin-right:0}:host ::ng-deep ui-side-sheet.navbar-sheet>.side-sheet-container>.mat-drawer.side-sheet-content .header .title span{font-size:20px;line-height:26px;font-weight:700}.mat-toolbar{height:80px;background-color:#fff!important}.mat-toolbar .custom-toolbar{height:100%;background-color:#fff;flex:1 1 auto;box-sizing:content-box;max-width:1312px;min-width:0;padding:0 20px;gap:16px;justify-content:space-between}@media(min-width:960px){.mat-toolbar .custom-toolbar{padding:0 40px}}@media(min-width:1280px){.mat-toolbar .custom-toolbar{padding:0 64px}}@media(max-width:600px){.mat-toolbar .custom-toolbar{padding:0 24px}}.mat-toolbar .custom-toolbar .brand{display:flex;align-items:center;gap:16px}.mat-toolbar .custom-toolbar ui-logo.logo{cursor:pointer;align-self:center;display:flex;flex-shrink:0}.mat-toolbar .custom-toolbar .navigation{height:100%}.mat-toolbar .custom-toolbar .navigation a{display:flex;align-items:center;height:100%;background:#fff;cursor:pointer;color:#000;text-decoration:none;white-space:nowrap}.mat-toolbar .custom-toolbar .navigation a:hover{text-decoration:none}.mat-toolbar .custom-toolbar .navigation a.active{border-top:2px solid #276678}.mat-toolbar .custom-toolbar .navigation a.active span{font-weight:700}.mat-toolbar .custom-toolbar .navigation a span{width:100%;text-align:center;font-weight:400;font-size:14px;line-height:16px}.mat-toolbar .custom-toolbar .navigation a span:after{content:attr(data-text);content:attr(data-text)/\"\";display:block;height:0;overflow:hidden;visibility:hidden;font-weight:700;pointer-events:none}.mat-toolbar .custom-toolbar .actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}.mat-toolbar .custom-toolbar .actions .profile-menu{font-weight:600;font-size:14px;height:100%}.mat-toolbar .custom-toolbar .actions .profile-menu:has(ui-avatar){min-width:auto;padding-right:2px}.mat-toolbar .custom-toolbar .actions .profile-menu mat-icon{font-size:16px;position:relative;top:3px;left:3px}.mat-toolbar .custom-toolbar .actions .profile-button-content{display:flex;align-items:center;flex-wrap:nowrap}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar{position:relative}.mat-toolbar .custom-toolbar .actions .profile-button-content ui-avatar.opened:after{position:absolute;content:\"\";width:40px;height:40px;left:-2px;top:-2px;z-index:-1;border-radius:100%;background:#f4f4f4}.mat-toolbar[theme=dark],.mat-toolbar[theme=light]{display:flex;justify-content:center;width:100%;height:64px;padding:0;border-bottom:1px solid #d3d3d3}.mat-toolbar[theme=dark] .actions,.mat-toolbar[theme=light] .actions{color:#242424}.mat-toolbar[theme=dark] .actions ::ng-deep .mat-mdc-button .mdc-button__label,.mat-toolbar[theme=light] .actions ::ng-deep .mat-mdc-button .mdc-button__label{font-weight:400}.mat-toolbar[theme=dark] ui-icon,.mat-toolbar[theme=light] ui-icon{margin-left:8px}.mat-toolbar[theme=dark] ui-icon.open,.mat-toolbar[theme=light] ui-icon.open{transform:rotate(180deg)}.mat-toolbar[theme=dark] .navigation,.mat-toolbar[theme=light] .navigation{gap:2px}.mat-toolbar[theme=dark] .navigation a,.mat-toolbar[theme=light] .navigation a{padding:16px 24px;border-bottom:2px solid transparent;position:relative;transition:border-bottom-color .15s ease-in}.mat-toolbar[theme=dark] .navigation a ui-badge,.mat-toolbar[theme=light] .navigation a ui-badge{position:absolute;right:-12px;top:0;z-index:1}.mat-toolbar[theme=dark] .navigation a ui-badge ::ng-deep .badge-container-notification,.mat-toolbar[theme=light] .navigation a ui-badge ::ng-deep .badge-container-notification{position:absolute;right:16px;top:8px;font-size:14px}.mat-toolbar[theme=dark] .navigation a.active,.mat-toolbar[theme=light] .navigation a.active{border-top:unset!important;border-bottom:2px solid #d410aa}.mat-toolbar[theme=dark] .navigation a:hover,.mat-toolbar[theme=light] .navigation a:hover{border-top:unset!important;border-bottom:2px solid #242424}@media(max-width:600px){.mat-toolbar[theme=dark] ui-button,.mat-toolbar[theme=light] ui-button{height:48px}}.custom-actions{display:flex;align-items:center;height:64px;min-width:0;overflow:hidden}.row{display:flex;flex-direction:row}.menu-item{display:flex;align-items:center}.menu-item ui-icon{margin-right:16px}\n"]
905
+ }]
906
+ }],
907
+ propDecorators: {
908
+ routes: [{
909
+ type: i0.Input,
910
+ args: [{
911
+ isSignal: true,
912
+ alias: "routes",
913
+ required: false
914
+ }]
915
+ }],
916
+ activedRoute: [{
917
+ type: i0.Input,
918
+ args: [{
919
+ isSignal: true,
920
+ alias: "activedRoute",
921
+ required: false
922
+ }]
923
+ }],
924
+ userName: [{
925
+ type: i0.Input,
926
+ args: [{
927
+ isSignal: true,
928
+ alias: "userName",
929
+ required: false
930
+ }]
931
+ }],
932
+ email: [{
933
+ type: i0.Input,
934
+ args: [{
935
+ isSignal: true,
936
+ alias: "email",
937
+ required: false
938
+ }]
939
+ }],
940
+ menuItems: [{
941
+ type: i0.Input,
942
+ args: [{
943
+ isSignal: true,
944
+ alias: "menuItems",
945
+ required: false
946
+ }]
947
+ }],
948
+ applicationTheme: [{
949
+ type: i0.Input,
950
+ args: [{
951
+ isSignal: true,
952
+ alias: "applicationTheme",
953
+ required: false
954
+ }]
955
+ }],
956
+ contentTemplateRef: [{
957
+ type: i0.Input,
958
+ args: [{
959
+ isSignal: true,
960
+ alias: "contentTemplateRef",
961
+ required: false
962
+ }]
963
+ }],
964
+ userInfoExtraTemplateRef: [{
965
+ type: i0.Input,
966
+ args: [{
967
+ isSignal: true,
968
+ alias: "userInfoExtraTemplateRef",
969
+ required: false
970
+ }]
971
+ }],
972
+ menuContentTemplateRef: [{
973
+ type: i0.Input,
974
+ args: [{
975
+ isSignal: true,
976
+ alias: "menuContentTemplateRef",
977
+ required: false
978
+ }]
979
+ }],
980
+ mobileBreakpoint: [{
981
+ type: i0.Input,
982
+ args: [{
983
+ isSignal: true,
984
+ alias: "mobileBreakpoint",
985
+ required: false
986
+ }]
987
+ }],
988
+ collapseBreakpoint: [{
989
+ type: i0.Input,
990
+ args: [{
991
+ isSignal: true,
992
+ alias: "collapseBreakpoint",
993
+ required: false
994
+ }]
995
+ }],
996
+ isAvatar: [{
997
+ type: i0.Input,
998
+ args: [{
999
+ isSignal: true,
1000
+ alias: "isAvatar",
1001
+ required: false
1002
+ }]
1003
+ }],
1004
+ menuClass: [{
1005
+ type: i0.Input,
1006
+ args: [{
1007
+ isSignal: true,
1008
+ alias: "menuClass",
1009
+ required: false
1010
+ }]
1011
+ }],
1012
+ navigateEvent: [{
1013
+ type: i0.Output,
1014
+ args: ["navigateEvent"]
1015
+ }],
1016
+ menuItemClicked: [{
1017
+ type: i0.Output,
1018
+ args: ["menuItemClicked"]
1019
+ }],
1020
+ logoutEvent: [{
1021
+ type: i0.Output,
1022
+ args: ["logoutEvent"]
1023
+ }],
1024
+ menuState: [{
1025
+ type: i0.Output,
1026
+ args: ["menuState"]
1027
+ }]
1028
+ }
1029
+ });
1030
+ var NavbarComponentModule = class NavbarComponentModule {
1031
+ static {
1032
+ this.ɵfac = i0.ɵɵngDeclareFactory({
1033
+ minVersion: "12.0.0",
1034
+ version: "22.2.4",
1035
+ ngImport: i0,
1036
+ type: NavbarComponentModule,
1037
+ deps: [],
1038
+ target: i0.ɵɵFactoryTarget.NgModule
1039
+ });
1040
+ }
1041
+ static {
1042
+ this.ɵmod = i0.ɵɵngDeclareNgModule({
1043
+ minVersion: "14.0.0",
1044
+ version: "22.2.4",
1045
+ ngImport: i0,
1046
+ type: NavbarComponentModule,
1047
+ imports: [
1048
+ CommonModule,
1049
+ MatToolbarModule,
1050
+ MatIconModule,
1051
+ MatButtonModule,
1052
+ MatRippleModule,
1053
+ MatMenuModule,
1054
+ LogoComponentModule,
1055
+ IconComponentModule,
1056
+ UiTranslatePipe,
1057
+ AvatarComponentModule,
1058
+ SideSheetComponentModule,
1059
+ ButtonComponentModule,
1060
+ MobileNavbarSideSheetComponent,
1061
+ BadgeComponentModule,
1062
+ NavbarComponent
1063
+ ],
1064
+ exports: [NavbarComponent]
1065
+ });
1066
+ }
1067
+ static {
1068
+ this.ɵinj = i0.ɵɵngDeclareInjector({
1069
+ minVersion: "12.0.0",
1070
+ version: "22.2.4",
1071
+ ngImport: i0,
1072
+ type: NavbarComponentModule,
1073
+ imports: [
1074
+ CommonModule,
1075
+ MatToolbarModule,
1076
+ MatIconModule,
1077
+ MatButtonModule,
1078
+ MatRippleModule,
1079
+ MatMenuModule,
1080
+ LogoComponentModule,
1081
+ IconComponentModule,
1082
+ AvatarComponentModule,
1083
+ SideSheetComponentModule,
1084
+ ButtonComponentModule,
1085
+ MobileNavbarSideSheetComponent,
1086
+ BadgeComponentModule,
1087
+ NavbarComponent
1088
+ ]
1089
+ });
1090
+ }
1091
+ };
1092
+ i0.ɵɵngDeclareClassMetadata({
1093
+ minVersion: "12.0.0",
1094
+ version: "22.2.4",
1095
+ ngImport: i0,
1096
+ type: NavbarComponentModule,
1097
+ decorators: [{
1098
+ type: NgModule,
1099
+ args: [{
1100
+ imports: [
1101
+ CommonModule,
1102
+ MatToolbarModule,
1103
+ MatIconModule,
1104
+ MatButtonModule,
1105
+ MatRippleModule,
1106
+ MatMenuModule,
1107
+ LogoComponentModule,
1108
+ IconComponentModule,
1109
+ UiTranslatePipe,
1110
+ AvatarComponentModule,
1111
+ SideSheetComponentModule,
1112
+ ButtonComponentModule,
1113
+ MobileNavbarSideSheetComponent,
1114
+ BadgeComponentModule,
1115
+ NavbarComponent
1116
+ ],
1117
+ exports: [NavbarComponent]
1118
+ }]
1119
+ }]
1120
+ });
385
1121
  export { MobileNavbarSideSheetComponent, NavbarComponent, NavbarComponentModule };
386
- //# sourceMappingURL=testgorilla-tgo-ui-components-navbar.mjs.map
1122
+
1123
+ //# sourceMappingURL=testgorilla-tgo-ui-components-navbar.mjs.map