@testgorilla/tgo-ui 11.22.2 → 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 (227) 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 -1789
  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/assets/icons/rebrand/Sequences-filled.svg +3 -0
  152. package/projects/tgo-canopy-ui/assets/icons/rebrand/Sequences-in-line.svg +3 -0
  153. package/projects/tgo-canopy-ui/theme/_palette.scss +23 -18
  154. package/types/testgorilla-tgo-ui-components-accordion.d.ts +214 -158
  155. package/types/testgorilla-tgo-ui-components-ai-audio-circle.d.ts +93 -69
  156. package/types/testgorilla-tgo-ui-components-ai-caveat.d.ts +37 -34
  157. package/types/testgorilla-tgo-ui-components-ai-feedback.d.ts +126 -86
  158. package/types/testgorilla-tgo-ui-components-alert-banner.d.ts +260 -185
  159. package/types/testgorilla-tgo-ui-components-audio-waveform.d.ts +96 -67
  160. package/types/testgorilla-tgo-ui-components-autocomplete-v2.d.ts +455 -256
  161. package/types/testgorilla-tgo-ui-components-autocomplete.d.ts +545 -390
  162. package/types/testgorilla-tgo-ui-components-avatar.d.ts +128 -102
  163. package/types/testgorilla-tgo-ui-components-badge.d.ts +191 -139
  164. package/types/testgorilla-tgo-ui-components-breadcrumb.d.ts +100 -62
  165. package/types/testgorilla-tgo-ui-components-button.d.ts +479 -340
  166. package/types/testgorilla-tgo-ui-components-card.d.ts +153 -114
  167. package/types/testgorilla-tgo-ui-components-checkbox.d.ts +299 -223
  168. package/types/testgorilla-tgo-ui-components-checklist.d.ts +149 -97
  169. package/types/testgorilla-tgo-ui-components-core.d.ts +307 -295
  170. package/types/testgorilla-tgo-ui-components-datepicker.d.ts +404 -299
  171. package/types/testgorilla-tgo-ui-components-device-control.d.ts +151 -81
  172. package/types/testgorilla-tgo-ui-components-dialog.d.ts +442 -329
  173. package/types/testgorilla-tgo-ui-components-divider.d.ts +64 -51
  174. package/types/testgorilla-tgo-ui-components-donut-chart.d.ts +41 -37
  175. package/types/testgorilla-tgo-ui-components-dropdown.d.ts +335 -241
  176. package/types/testgorilla-tgo-ui-components-elevation-shadow.d.ts +48 -43
  177. package/types/testgorilla-tgo-ui-components-empty-state.d.ts +317 -215
  178. package/types/testgorilla-tgo-ui-components-field.d.ts +559 -388
  179. package/types/testgorilla-tgo-ui-components-file-upload.d.ts +230 -168
  180. package/types/testgorilla-tgo-ui-components-filter-button.d.ts +263 -206
  181. package/types/testgorilla-tgo-ui-components-gaussian-chart.d.ts +107 -94
  182. package/types/testgorilla-tgo-ui-components-icon-label.d.ts +84 -61
  183. package/types/testgorilla-tgo-ui-components-icon.d.ts +137 -110
  184. package/types/testgorilla-tgo-ui-components-infinite-scroll-table.d.ts +429 -303
  185. package/types/testgorilla-tgo-ui-components-inline-field.d.ts +338 -254
  186. package/types/testgorilla-tgo-ui-components-logo.d.ts +119 -101
  187. package/types/testgorilla-tgo-ui-components-media-card.d.ts +51 -35
  188. package/types/testgorilla-tgo-ui-components-media-dialog.d.ts +40 -45
  189. package/types/testgorilla-tgo-ui-components-multi-input.d.ts +283 -194
  190. package/types/testgorilla-tgo-ui-components-navbar.d.ts +326 -208
  191. package/types/testgorilla-tgo-ui-components-overflow-menu.d.ts +276 -204
  192. package/types/testgorilla-tgo-ui-components-page-header.d.ts +67 -50
  193. package/types/testgorilla-tgo-ui-components-paginator.d.ts +103 -70
  194. package/types/testgorilla-tgo-ui-components-password-criteria.d.ts +67 -58
  195. package/types/testgorilla-tgo-ui-components-password-strength.d.ts +66 -57
  196. package/types/testgorilla-tgo-ui-components-phone-input.d.ts +217 -175
  197. package/types/testgorilla-tgo-ui-components-popover.d.ts +94 -53
  198. package/types/testgorilla-tgo-ui-components-popup-tip.d.ts +81 -44
  199. package/types/testgorilla-tgo-ui-components-progress-bar.d.ts +115 -84
  200. package/types/testgorilla-tgo-ui-components-prompt.d.ts +315 -219
  201. package/types/testgorilla-tgo-ui-components-radial-progress.d.ts +146 -107
  202. package/types/testgorilla-tgo-ui-components-radio-button.d.ts +296 -219
  203. package/types/testgorilla-tgo-ui-components-rating.d.ts +134 -95
  204. package/types/testgorilla-tgo-ui-components-scale-table.d.ts +67 -47
  205. package/types/testgorilla-tgo-ui-components-scale.d.ts +91 -66
  206. package/types/testgorilla-tgo-ui-components-segmented-bar.d.ts +118 -89
  207. package/types/testgorilla-tgo-ui-components-segmented-button.d.ts +107 -80
  208. package/types/testgorilla-tgo-ui-components-segmented-toggle.d.ts +138 -105
  209. package/types/testgorilla-tgo-ui-components-selectable-card.d.ts +90 -56
  210. package/types/testgorilla-tgo-ui-components-side-navigation.d.ts +183 -107
  211. package/types/testgorilla-tgo-ui-components-side-panel.d.ts +156 -145
  212. package/types/testgorilla-tgo-ui-components-side-sheet.d.ts +98 -89
  213. package/types/testgorilla-tgo-ui-components-skeleton.d.ts +50 -33
  214. package/types/testgorilla-tgo-ui-components-slider.d.ts +278 -198
  215. package/types/testgorilla-tgo-ui-components-snackbar.d.ts +211 -159
  216. package/types/testgorilla-tgo-ui-components-spider-chart.d.ts +140 -121
  217. package/types/testgorilla-tgo-ui-components-spinner.d.ts +93 -72
  218. package/types/testgorilla-tgo-ui-components-stepper.d.ts +480 -338
  219. package/types/testgorilla-tgo-ui-components-table.d.ts +280 -233
  220. package/types/testgorilla-tgo-ui-components-tabs.d.ts +282 -183
  221. package/types/testgorilla-tgo-ui-components-tag.d.ts +266 -193
  222. package/types/testgorilla-tgo-ui-components-toggle.d.ts +180 -132
  223. package/types/testgorilla-tgo-ui-components-tooltip.d.ts +142 -105
  224. package/types/testgorilla-tgo-ui-components-universal-skills.d.ts +165 -144
  225. package/types/testgorilla-tgo-ui-components-validation-error.d.ts +70 -51
  226. package/types/testgorilla-tgo-ui-components-write-with-ai.d.ts +210 -133
  227. package/types/testgorilla-tgo-ui.d.ts +52 -45
@@ -1 +1 @@
1
- {"version":3,"file":"testgorilla-tgo-ui-components-navbar.mjs","sources":["../../../components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.ts","../../../components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.html","../../../components/navbar/navbar.component.ts","../../../components/navbar/navbar.component.html","../../../components/navbar/navbar.component.module.ts","../../../components/navbar/testgorilla-tgo-ui-components-navbar.ts"],"sourcesContent":["import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, output, Signal, TemplateRef } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { AccordionComponentModule } from '@testgorilla/tgo-ui/components/accordion';\nimport { AvatarComponentModule, AvatarSize } from '@testgorilla/tgo-ui/components/avatar';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { UiTranslatePipe, ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\n\nimport { IRoute, MenuItem } from '../navbar.model';\n\n@Component({\n selector: 'ui-mobile-navbar-side-sheet',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './mobile-navbar-side-sheet.component.html',\n styleUrls: ['./mobile-navbar-side-sheet.component.scss'],\n imports: [\n NgClass,\n IconComponentModule,\n MatIconModule,\n MatMenuModule,\n UiTranslatePipe,\n MatButtonModule,\n AccordionComponentModule,\n NgTemplateOutlet,\n AvatarComponentModule,\n ButtonComponentModule,\n AsyncPipe,\n ],\n})\nexport class MobileNavbarSideSheetComponent {\n readonly routes = input<IRoute[]>([]);\n readonly activedRoute = input('');\n readonly email = input('');\n readonly userName = input('');\n readonly menuItems = input<MenuItem[]>([]);\n readonly contentTemplateRef = input<TemplateRef<unknown>>();\n readonly userInfoExtraTemplateRef = input<TemplateRef<unknown>>();\n readonly menuContentTemplateRef = input<TemplateRef<unknown>>();\n readonly isDesktop = input(false);\n readonly applicationTheme = input<ApplicationTheme>('light');\n\n readonly navigateEvent = output<string>();\n readonly menuItemClicked = output<string>();\n readonly logoutEvent = output<void>();\n\n protected readonly translationContext = 'NAVBAR.';\n protected readonly avatarSize = AvatarSize;\n\n readonly activeRoutesMap: Signal<Map<string, boolean>> = computed(() => {\n const currentRoute = this.activedRoute();\n return new Map(this.routes().map(route => [route.id, currentRoute?.startsWith(route.id)]));\n });\n\n navigate(routeId: string) {\n this.navigateEvent.emit(`/${routeId}`);\n }\n\n logout(): void {\n this.logoutEvent.emit();\n }\n\n clickMenuItem(id: string) {\n this.menuItemClicked.emit(id);\n }\n}\n","<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","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { NgClass, AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n output,\n OutputRefSubscription,\n ProviderToken,\n signal,\n Signal,\n TemplateRef,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenuTrigger, MatMenu, MatMenuItem } from '@angular/material/menu';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { map, Subject, switchMap, take } from 'rxjs';\n\nimport { AvatarSize, AvatarComponent } from '@testgorilla/tgo-ui/components/avatar';\nimport { BadgeComponent } from '@testgorilla/tgo-ui/components/badge';\nimport { ButtonComponent } from '@testgorilla/tgo-ui/components/button';\nimport { ApplicationTheme, ScreenBreakpoints, UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { LogoTypeEnum, LogoComponent } from '@testgorilla/tgo-ui/components/logo';\nimport { SideSheetService, SideSheetComponentModule } from '@testgorilla/tgo-ui/components/side-sheet';\n\nimport { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';\nimport { IRoute, MenuItem, MenuState, ScreenSize } from './navbar.model';\n\n/**\n * Injected by string for backwards compatibility — consumers provide this token by its string name.\n */\nconst DEFAULT_APPLICATION_THEME_TOKEN =\n 'CANOPYUI_DEFAULT_APPLICATION_THEME' as unknown as ProviderToken<ApplicationTheme>;\n\n@Component({\n selector: 'ui-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SideSheetComponentModule,\n MatToolbar,\n LogoComponent,\n ButtonComponent,\n NgClass,\n BadgeComponent,\n MatButton,\n MatMenuTrigger,\n AvatarComponent,\n MatIcon,\n IconComponentModule,\n MatMenu,\n MatMenuItem,\n MobileNavbarSideSheetComponent,\n AsyncPipe,\n UiTranslatePipe,\n ],\n providers: [UiTranslatePipe],\n})\nexport class NavbarComponent {\n private readonly breakpointObserver = inject(BreakpointObserver);\n private readonly sideSheetService = inject(SideSheetService);\n private readonly translatePipe = inject(UiTranslatePipe);\n private readonly defaultAppTheme = inject(DEFAULT_APPLICATION_THEME_TOKEN, { optional: true });\n\n /**\n * Routes object\n *\n * @memberof NavbarComponent\n * @ignore\n */\n readonly routes = input<IRoute[]>([]);\n\n /**\n * Actived route id\n *\n * @memberof NavbarComponent\n */\n readonly activedRoute = input('');\n\n /**\n * User first name and last name\n *\n * @memberof NavbarComponent\n */\n readonly userName = input('');\n\n /**\n * User email\n *\n * @memberof NavbarComponent\n */\n readonly email = input('');\n\n /**\n * Menu items to show in menu above the Log out button\n *\n * @memberof NavbarComponent\n */\n readonly menuItems = input<MenuItem[]>([]);\n\n /**\n * Defines the application theme\n *\n * @memberof NavbarComponent\n */\n readonly applicationTheme = input<ApplicationTheme>(this.defaultAppTheme ?? 'light');\n\n /**\n * It's ng-content for the collapsed (drawer) version\n *\n * @memberof NavbarComponent\n */\n readonly contentTemplateRef = input<TemplateRef<unknown>>();\n\n /**\n * Additional info template reference for the extra user info in the dropdown/sidesheet\n *\n * @memberof NavbarComponent\n */\n readonly userInfoExtraTemplateRef = input<TemplateRef<unknown>>();\n\n /**\n * Custom content template reference for the menu section between user info and menu items.\n * Use this to add custom components like credits display.\n *\n * @memberof NavbarComponent\n */\n readonly menuContentTemplateRef = input<TemplateRef<unknown>>();\n\n /**\n * Width at or below which the navbar renders its compact (brandmark) logo\n *\n * @memberof NavbarComponent\n */\n readonly mobileBreakpoint = input(ScreenBreakpoints.MOBILE, {\n // `[mobileBreakpoint]=\"maybeUndefined\"` must not produce `(max-width: undefinedpx)`.\n transform: (value: number) => value || ScreenBreakpoints.MOBILE,\n });\n\n /**\n * Width at or below which the horizontal navigation and the profile menu collapse\n * into the hamburger-triggered drawer\n *\n * @memberof NavbarComponent\n */\n readonly collapseBreakpoint = input(ScreenBreakpoints.LARGE_TABLET, {\n // `[collapseBreakpoint]=\"maybeUndefined\"` must not produce `(max-width: undefinedpx)`.\n transform: (value: number) => value || ScreenBreakpoints.LARGE_TABLET,\n });\n\n /**\n * Show avatar with user initials\n *\n * @memberof NavbarComponent\n */\n readonly isAvatar = input(true);\n\n /**\n * Sets class for the menu\n *\n * @memberof NavbarComponent\n */\n readonly menuClass = input('');\n\n /**\n * @ignore\n */\n readonly navigateEvent = output<string>();\n\n /**\n * @ignore\n */\n readonly menuItemClicked = output<string>();\n\n /**\n * @ignore\n */\n readonly logoutEvent = output<void>();\n readonly menuState = output<MenuState>();\n\n protected readonly isMobile = this.observeMaxWidth(this.mobileBreakpoint);\n protected readonly isCollapsed = this.observeMaxWidth(this.collapseBreakpoint);\n protected readonly screenSize = computed<ScreenSize>(() => {\n if (this.isMobile()) {\n return 'mobile';\n }\n return this.isCollapsed() ? 'tablet' : 'desktop';\n });\n\n /**\n * @deprecated Use the `screenSize` reported by `menuState` instead. Removed in the next major.\n */\n protected readonly isMobile$ = toObservable(this.isMobile);\n\n /**\n * @deprecated Use the `screenSize` reported by `menuState` instead. Removed in the next major.\n */\n protected readonly isTablet$ = toObservable(this.isCollapsed);\n\n protected readonly translationContext = 'NAVBAR.';\n protected readonly logoType = LogoTypeEnum;\n protected readonly AvatarSize = AvatarSize;\n\n readonly activeRoutesMap: Signal<Map<string, boolean>> = computed(() => {\n const currentRoute = this.activedRoute();\n return new Map(this.routes().map(route => [route.id, currentRoute?.startsWith(route.id)]));\n });\n\n /**\n * Output subscriptions of the currently open drawer. Torn down when it closes, so repeated\n * opens don't accumulate one set per open.\n */\n private drawerSubscriptions: OutputRefSubscription[] = [];\n private readonly isDrawerOpened = signal(false);\n\n // The hamburger disappears once the viewport grows past `collapseBreakpoint`, so an open\n // drawer would have no dismiss affordance left — close it as soon as the nav expands.\n private readonly closeDrawerOnExpand = effect(() => {\n if (!this.isCollapsed() && this.isDrawerOpened()) {\n this.sideSheetService.close();\n }\n });\n\n openMobileMenu(): void {\n // Defensive: never stack a second set of subscriptions if a close never reported back.\n this.teardownDrawerSubscriptions();\n\n const isSideSheetClosed$ = new Subject<void>();\n\n // `LanguageService` is backed by a BehaviorSubject, so this resolves synchronously.\n let title = '';\n this.translatePipe\n .transform(`${this.translationContext}MENU`)\n .pipe(take(1))\n .subscribe(translated => (title = translated));\n\n const navbarSideSheetComponent = this.sideSheetService.open<MobileNavbarSideSheetComponent>({\n componentRef: MobileNavbarSideSheetComponent,\n title,\n showLogo: false,\n closed: isSideSheetClosed$,\n inputs: {\n userName: this.userName(),\n menuItems: this.menuItems(),\n activedRoute: this.activedRoute(),\n routes: this.routes(),\n email: this.email(),\n contentTemplateRef: this.contentTemplateRef(),\n userInfoExtraTemplateRef: this.userInfoExtraTemplateRef(),\n menuContentTemplateRef: this.menuContentTemplateRef(),\n applicationTheme: this.applicationTheme(),\n },\n });\n\n this.drawerSubscriptions = [\n navbarSideSheetComponent.logoutEvent.subscribe(() => {\n this.logoutEvent.emit();\n isSideSheetClosed$.next();\n }),\n navbarSideSheetComponent.menuItemClicked.subscribe(value => {\n this.menuItemClicked.emit(value);\n isSideSheetClosed$.next();\n }),\n navbarSideSheetComponent.navigateEvent.subscribe(value => {\n this.navigateEvent.emit(value);\n isSideSheetClosed$.next();\n }),\n ];\n }\n\n /**\n * Closes the drawer if the navbar is currently collapsed. Consumers use this to dismiss the\n * menu on navigation without reaching into the component's internals.\n */\n closeMenu(): void {\n // The open check matters: `SideSheetService.close()` broadcasts to the sheet regardless of\n // its state, so calling it with the drawer already closed must stay a no-op.\n if (this.isCollapsed() && this.isDrawerOpened()) {\n this.sideSheetService.close();\n }\n }\n\n navigate(routeId: string) {\n this.navigateEvent.emit(`/${routeId}`);\n }\n\n logout(): void {\n this.logoutEvent.emit();\n }\n\n clickMenuItem(id: string) {\n this.menuItemClicked.emit(id);\n }\n\n onChangeMenuState(isOpened: boolean, screenSize: ScreenSize) {\n this.menuState.emit({ isOpened, screenSize });\n }\n\n protected onSideSheetOpenChange(isOpened: boolean): void {\n this.isDrawerOpened.set(isOpened);\n\n if (!isOpened) {\n this.teardownDrawerSubscriptions();\n }\n\n this.onChangeMenuState(isOpened, this.screenSize());\n }\n\n private teardownDrawerSubscriptions(): void {\n this.drawerSubscriptions.forEach(subscription => subscription.unsubscribe());\n this.drawerSubscriptions = [];\n }\n\n private observeMaxWidth(breakpointPx: Signal<number>): Signal<boolean> {\n return toSignal(\n toObservable(breakpointPx).pipe(\n switchMap(breakpoint => this.breakpointObserver.observe(`(max-width: ${breakpoint}px)`)),\n map(state => state.matches)\n ),\n { initialValue: false }\n );\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\n\nimport { AvatarComponentModule } from '@testgorilla/tgo-ui/components/avatar';\nimport { BadgeComponentModule } from '@testgorilla/tgo-ui/components/badge';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { LogoComponentModule } from '@testgorilla/tgo-ui/components/logo';\nimport { SideSheetComponentModule } from '@testgorilla/tgo-ui/components/side-sheet';\n\nimport { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';\nimport { NavbarComponent } from './navbar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatToolbarModule,\n MatIconModule,\n MatButtonModule,\n MatRippleModule,\n MatMenuModule,\n LogoComponentModule,\n IconComponentModule,\n UiTranslatePipe,\n AvatarComponentModule,\n SideSheetComponentModule,\n ButtonComponentModule,\n MobileNavbarSideSheetComponent,\n BadgeComponentModule,\n NavbarComponent,\n ],\n exports: [NavbarComponent],\n})\nexport class NavbarComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"testgorilla-tgo-ui-components-navbar.mjs","names":["i1","i2"],"sources":["../../../components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.ts","../../../components/navbar/mobile-navbar-side-sheet/mobile-navbar-side-sheet.component.html","../../../components/navbar/navbar.component.ts","../../../components/navbar/navbar.component.html","../../../components/navbar/navbar.component.module.ts"],"sourcesContent":["import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, output, Signal, TemplateRef } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { AccordionComponentModule } from '@testgorilla/tgo-ui/components/accordion';\nimport { AvatarComponentModule, AvatarSize } from '@testgorilla/tgo-ui/components/avatar';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { UiTranslatePipe, ApplicationTheme } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\n\nimport { IRoute, MenuItem } from '../navbar.model';\n\n@Component({\n selector: 'ui-mobile-navbar-side-sheet',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './mobile-navbar-side-sheet.component.html',\n styleUrls: ['./mobile-navbar-side-sheet.component.scss'],\n imports: [\n NgClass,\n IconComponentModule,\n MatIconModule,\n MatMenuModule,\n UiTranslatePipe,\n MatButtonModule,\n AccordionComponentModule,\n NgTemplateOutlet,\n AvatarComponentModule,\n ButtonComponentModule,\n AsyncPipe,\n ],\n})\nexport class MobileNavbarSideSheetComponent {\n readonly routes = input<IRoute[]>([]);\n readonly activedRoute = input('');\n readonly email = input('');\n readonly userName = input('');\n readonly menuItems = input<MenuItem[]>([]);\n readonly contentTemplateRef = input<TemplateRef<unknown>>();\n readonly userInfoExtraTemplateRef = input<TemplateRef<unknown>>();\n readonly menuContentTemplateRef = input<TemplateRef<unknown>>();\n readonly isDesktop = input(false);\n readonly applicationTheme = input<ApplicationTheme>('light');\n\n readonly navigateEvent = output<string>();\n readonly menuItemClicked = output<string>();\n readonly logoutEvent = output<void>();\n\n protected readonly translationContext = 'NAVBAR.';\n protected readonly avatarSize = AvatarSize;\n\n readonly activeRoutesMap: Signal<Map<string, boolean>> = computed(() => {\n const currentRoute = this.activedRoute();\n return new Map(this.routes().map(route => [route.id, currentRoute?.startsWith(route.id)]));\n });\n\n navigate(routeId: string) {\n this.navigateEvent.emit(`/${routeId}`);\n }\n\n logout(): void {\n this.logoutEvent.emit();\n }\n\n clickMenuItem(id: string) {\n this.menuItemClicked.emit(id);\n }\n}\n","<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","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { NgClass, AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n output,\n OutputRefSubscription,\n ProviderToken,\n signal,\n Signal,\n TemplateRef,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatButton } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatMenuTrigger, MatMenu, MatMenuItem } from '@angular/material/menu';\nimport { MatToolbar } from '@angular/material/toolbar';\nimport { map, Subject, switchMap, take } from 'rxjs';\n\nimport { AvatarSize, AvatarComponent } from '@testgorilla/tgo-ui/components/avatar';\nimport { BadgeComponent } from '@testgorilla/tgo-ui/components/badge';\nimport { ButtonComponent } from '@testgorilla/tgo-ui/components/button';\nimport { ApplicationTheme, ScreenBreakpoints, UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { LogoTypeEnum, LogoComponent } from '@testgorilla/tgo-ui/components/logo';\nimport { SideSheetService, SideSheetComponentModule } from '@testgorilla/tgo-ui/components/side-sheet';\n\nimport { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';\nimport { IRoute, MenuItem, MenuState, ScreenSize } from './navbar.model';\n\n/**\n * Injected by string for backwards compatibility — consumers provide this token by its string name.\n */\nconst DEFAULT_APPLICATION_THEME_TOKEN =\n 'CANOPYUI_DEFAULT_APPLICATION_THEME' as unknown as ProviderToken<ApplicationTheme>;\n\n@Component({\n selector: 'ui-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SideSheetComponentModule,\n MatToolbar,\n LogoComponent,\n ButtonComponent,\n NgClass,\n BadgeComponent,\n MatButton,\n MatMenuTrigger,\n AvatarComponent,\n MatIcon,\n IconComponentModule,\n MatMenu,\n MatMenuItem,\n MobileNavbarSideSheetComponent,\n AsyncPipe,\n UiTranslatePipe,\n ],\n providers: [UiTranslatePipe],\n})\nexport class NavbarComponent {\n private readonly breakpointObserver = inject(BreakpointObserver);\n private readonly sideSheetService = inject(SideSheetService);\n private readonly translatePipe = inject(UiTranslatePipe);\n private readonly defaultAppTheme = inject(DEFAULT_APPLICATION_THEME_TOKEN, { optional: true });\n\n /**\n * Routes object\n *\n * @memberof NavbarComponent\n * @ignore\n */\n readonly routes = input<IRoute[]>([]);\n\n /**\n * Actived route id\n *\n * @memberof NavbarComponent\n */\n readonly activedRoute = input('');\n\n /**\n * User first name and last name\n *\n * @memberof NavbarComponent\n */\n readonly userName = input('');\n\n /**\n * User email\n *\n * @memberof NavbarComponent\n */\n readonly email = input('');\n\n /**\n * Menu items to show in menu above the Log out button\n *\n * @memberof NavbarComponent\n */\n readonly menuItems = input<MenuItem[]>([]);\n\n /**\n * Defines the application theme\n *\n * @memberof NavbarComponent\n */\n readonly applicationTheme = input<ApplicationTheme>(this.defaultAppTheme ?? 'light');\n\n /**\n * It's ng-content for the collapsed (drawer) version\n *\n * @memberof NavbarComponent\n */\n readonly contentTemplateRef = input<TemplateRef<unknown>>();\n\n /**\n * Additional info template reference for the extra user info in the dropdown/sidesheet\n *\n * @memberof NavbarComponent\n */\n readonly userInfoExtraTemplateRef = input<TemplateRef<unknown>>();\n\n /**\n * Custom content template reference for the menu section between user info and menu items.\n * Use this to add custom components like credits display.\n *\n * @memberof NavbarComponent\n */\n readonly menuContentTemplateRef = input<TemplateRef<unknown>>();\n\n /**\n * Width at or below which the navbar renders its compact (brandmark) logo\n *\n * @memberof NavbarComponent\n */\n readonly mobileBreakpoint = input(ScreenBreakpoints.MOBILE, {\n // `[mobileBreakpoint]=\"maybeUndefined\"` must not produce `(max-width: undefinedpx)`.\n transform: (value: number) => value || ScreenBreakpoints.MOBILE,\n });\n\n /**\n * Width at or below which the horizontal navigation and the profile menu collapse\n * into the hamburger-triggered drawer\n *\n * @memberof NavbarComponent\n */\n readonly collapseBreakpoint = input(ScreenBreakpoints.LARGE_TABLET, {\n // `[collapseBreakpoint]=\"maybeUndefined\"` must not produce `(max-width: undefinedpx)`.\n transform: (value: number) => value || ScreenBreakpoints.LARGE_TABLET,\n });\n\n /**\n * Show avatar with user initials\n *\n * @memberof NavbarComponent\n */\n readonly isAvatar = input(true);\n\n /**\n * Sets class for the menu\n *\n * @memberof NavbarComponent\n */\n readonly menuClass = input('');\n\n /**\n * @ignore\n */\n readonly navigateEvent = output<string>();\n\n /**\n * @ignore\n */\n readonly menuItemClicked = output<string>();\n\n /**\n * @ignore\n */\n readonly logoutEvent = output<void>();\n readonly menuState = output<MenuState>();\n\n protected readonly isMobile = this.observeMaxWidth(this.mobileBreakpoint);\n protected readonly isCollapsed = this.observeMaxWidth(this.collapseBreakpoint);\n protected readonly screenSize = computed<ScreenSize>(() => {\n if (this.isMobile()) {\n return 'mobile';\n }\n return this.isCollapsed() ? 'tablet' : 'desktop';\n });\n\n /**\n * @deprecated Use the `screenSize` reported by `menuState` instead. Removed in the next major.\n */\n protected readonly isMobile$ = toObservable(this.isMobile);\n\n /**\n * @deprecated Use the `screenSize` reported by `menuState` instead. Removed in the next major.\n */\n protected readonly isTablet$ = toObservable(this.isCollapsed);\n\n protected readonly translationContext = 'NAVBAR.';\n protected readonly logoType = LogoTypeEnum;\n protected readonly AvatarSize = AvatarSize;\n\n readonly activeRoutesMap: Signal<Map<string, boolean>> = computed(() => {\n const currentRoute = this.activedRoute();\n return new Map(this.routes().map(route => [route.id, currentRoute?.startsWith(route.id)]));\n });\n\n /**\n * Output subscriptions of the currently open drawer. Torn down when it closes, so repeated\n * opens don't accumulate one set per open.\n */\n private drawerSubscriptions: OutputRefSubscription[] = [];\n private readonly isDrawerOpened = signal(false);\n\n // The hamburger disappears once the viewport grows past `collapseBreakpoint`, so an open\n // drawer would have no dismiss affordance left — close it as soon as the nav expands.\n private readonly closeDrawerOnExpand = effect(() => {\n if (!this.isCollapsed() && this.isDrawerOpened()) {\n this.sideSheetService.close();\n }\n });\n\n openMobileMenu(): void {\n // Defensive: never stack a second set of subscriptions if a close never reported back.\n this.teardownDrawerSubscriptions();\n\n const isSideSheetClosed$ = new Subject<void>();\n\n // `LanguageService` is backed by a BehaviorSubject, so this resolves synchronously.\n let title = '';\n this.translatePipe\n .transform(`${this.translationContext}MENU`)\n .pipe(take(1))\n .subscribe(translated => (title = translated));\n\n const navbarSideSheetComponent = this.sideSheetService.open<MobileNavbarSideSheetComponent>({\n componentRef: MobileNavbarSideSheetComponent,\n title,\n showLogo: false,\n closed: isSideSheetClosed$,\n inputs: {\n userName: this.userName(),\n menuItems: this.menuItems(),\n activedRoute: this.activedRoute(),\n routes: this.routes(),\n email: this.email(),\n contentTemplateRef: this.contentTemplateRef(),\n userInfoExtraTemplateRef: this.userInfoExtraTemplateRef(),\n menuContentTemplateRef: this.menuContentTemplateRef(),\n applicationTheme: this.applicationTheme(),\n },\n });\n\n this.drawerSubscriptions = [\n navbarSideSheetComponent.logoutEvent.subscribe(() => {\n this.logoutEvent.emit();\n isSideSheetClosed$.next();\n }),\n navbarSideSheetComponent.menuItemClicked.subscribe(value => {\n this.menuItemClicked.emit(value);\n isSideSheetClosed$.next();\n }),\n navbarSideSheetComponent.navigateEvent.subscribe(value => {\n this.navigateEvent.emit(value);\n isSideSheetClosed$.next();\n }),\n ];\n }\n\n /**\n * Closes the drawer if the navbar is currently collapsed. Consumers use this to dismiss the\n * menu on navigation without reaching into the component's internals.\n */\n closeMenu(): void {\n // The open check matters: `SideSheetService.close()` broadcasts to the sheet regardless of\n // its state, so calling it with the drawer already closed must stay a no-op.\n if (this.isCollapsed() && this.isDrawerOpened()) {\n this.sideSheetService.close();\n }\n }\n\n navigate(routeId: string) {\n this.navigateEvent.emit(`/${routeId}`);\n }\n\n logout(): void {\n this.logoutEvent.emit();\n }\n\n clickMenuItem(id: string) {\n this.menuItemClicked.emit(id);\n }\n\n onChangeMenuState(isOpened: boolean, screenSize: ScreenSize) {\n this.menuState.emit({ isOpened, screenSize });\n }\n\n protected onSideSheetOpenChange(isOpened: boolean): void {\n this.isDrawerOpened.set(isOpened);\n\n if (!isOpened) {\n this.teardownDrawerSubscriptions();\n }\n\n this.onChangeMenuState(isOpened, this.screenSize());\n }\n\n private teardownDrawerSubscriptions(): void {\n this.drawerSubscriptions.forEach(subscription => subscription.unsubscribe());\n this.drawerSubscriptions = [];\n }\n\n private observeMaxWidth(breakpointPx: Signal<number>): Signal<boolean> {\n return toSignal(\n toObservable(breakpointPx).pipe(\n switchMap(breakpoint => this.breakpointObserver.observe(`(max-width: ${breakpoint}px)`)),\n map(state => state.matches)\n ),\n { initialValue: false }\n );\n }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatToolbarModule } from '@angular/material/toolbar';\n\nimport { AvatarComponentModule } from '@testgorilla/tgo-ui/components/avatar';\nimport { BadgeComponentModule } from '@testgorilla/tgo-ui/components/badge';\nimport { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';\nimport { UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';\nimport { IconComponentModule } from '@testgorilla/tgo-ui/components/icon';\nimport { LogoComponentModule } from '@testgorilla/tgo-ui/components/logo';\nimport { SideSheetComponentModule } from '@testgorilla/tgo-ui/components/side-sheet';\n\nimport { MobileNavbarSideSheetComponent } from './mobile-navbar-side-sheet/mobile-navbar-side-sheet.component';\nimport { NavbarComponent } from './navbar.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatToolbarModule,\n MatIconModule,\n MatButtonModule,\n MatRippleModule,\n MatMenuModule,\n LogoComponentModule,\n IconComponentModule,\n UiTranslatePipe,\n AvatarComponentModule,\n SideSheetComponentModule,\n ButtonComponentModule,\n MobileNavbarSideSheetComponent,\n BadgeComponentModule,\n NavbarComponent,\n ],\n exports: [NavbarComponent],\n})\nexport class NavbarComponentModule {}\n"],"mappings":"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"}