@testgorilla/tgo-ui 11.16.0 → 11.18.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 (152) hide show
  1. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs +7 -7
  2. package/fesm2022/testgorilla-tgo-ui-components-accordion.mjs.map +1 -1
  3. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs +7 -7
  4. package/fesm2022/testgorilla-tgo-ui-components-ai-audio-circle.mjs.map +1 -1
  5. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs +7 -7
  6. package/fesm2022/testgorilla-tgo-ui-components-ai-caveat.mjs.map +1 -1
  7. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs +7 -7
  8. package/fesm2022/testgorilla-tgo-ui-components-ai-feedback.mjs.map +1 -1
  9. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs +7 -7
  10. package/fesm2022/testgorilla-tgo-ui-components-alert-banner.mjs.map +1 -1
  11. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs +10 -10
  12. package/fesm2022/testgorilla-tgo-ui-components-audio-waveform.mjs.map +1 -1
  13. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs +15 -15
  14. package/fesm2022/testgorilla-tgo-ui-components-autocomplete-v2.mjs.map +1 -1
  15. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs +19 -19
  16. package/fesm2022/testgorilla-tgo-ui-components-autocomplete.mjs.map +1 -1
  17. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs +10 -10
  18. package/fesm2022/testgorilla-tgo-ui-components-avatar.mjs.map +1 -1
  19. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs +7 -7
  20. package/fesm2022/testgorilla-tgo-ui-components-badge.mjs.map +1 -1
  21. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs +7 -7
  22. package/fesm2022/testgorilla-tgo-ui-components-breadcrumb.mjs.map +1 -1
  23. package/fesm2022/testgorilla-tgo-ui-components-button.mjs +7 -7
  24. package/fesm2022/testgorilla-tgo-ui-components-button.mjs.map +1 -1
  25. package/fesm2022/testgorilla-tgo-ui-components-card.mjs +7 -7
  26. package/fesm2022/testgorilla-tgo-ui-components-card.mjs.map +1 -1
  27. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs +10 -10
  28. package/fesm2022/testgorilla-tgo-ui-components-checkbox.mjs.map +1 -1
  29. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs +3 -3
  30. package/fesm2022/testgorilla-tgo-ui-components-checklist.mjs.map +1 -1
  31. package/fesm2022/testgorilla-tgo-ui-components-core.mjs +42 -42
  32. package/fesm2022/testgorilla-tgo-ui-components-core.mjs.map +1 -1
  33. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs +19 -19
  34. package/fesm2022/testgorilla-tgo-ui-components-datepicker.mjs.map +1 -1
  35. package/fesm2022/testgorilla-tgo-ui-components-device-control.mjs +7 -7
  36. package/fesm2022/testgorilla-tgo-ui-components-device-control.mjs.map +1 -1
  37. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs +24 -24
  38. package/fesm2022/testgorilla-tgo-ui-components-dialog.mjs.map +1 -1
  39. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs +7 -7
  40. package/fesm2022/testgorilla-tgo-ui-components-divider.mjs.map +1 -1
  41. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs +7 -7
  42. package/fesm2022/testgorilla-tgo-ui-components-donut-chart.mjs.map +1 -1
  43. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs +7 -7
  44. package/fesm2022/testgorilla-tgo-ui-components-dropdown.mjs.map +1 -1
  45. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs +7 -7
  46. package/fesm2022/testgorilla-tgo-ui-components-elevation-shadow.mjs.map +1 -1
  47. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs +7 -7
  48. package/fesm2022/testgorilla-tgo-ui-components-empty-state.mjs.map +1 -1
  49. package/fesm2022/testgorilla-tgo-ui-components-field.mjs +7 -7
  50. package/fesm2022/testgorilla-tgo-ui-components-field.mjs.map +1 -1
  51. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs +10 -10
  52. package/fesm2022/testgorilla-tgo-ui-components-file-upload.mjs.map +1 -1
  53. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs +7 -7
  54. package/fesm2022/testgorilla-tgo-ui-components-filter-button.mjs.map +1 -1
  55. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs +7 -7
  56. package/fesm2022/testgorilla-tgo-ui-components-gaussian-chart.mjs.map +1 -1
  57. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs +7 -7
  58. package/fesm2022/testgorilla-tgo-ui-components-icon-label.mjs.map +1 -1
  59. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs +10 -10
  60. package/fesm2022/testgorilla-tgo-ui-components-icon.mjs.map +1 -1
  61. package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs +7 -7
  62. package/fesm2022/testgorilla-tgo-ui-components-infinite-scroll-table.mjs.map +1 -1
  63. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs +7 -7
  64. package/fesm2022/testgorilla-tgo-ui-components-inline-field.mjs.map +1 -1
  65. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs +7 -7
  66. package/fesm2022/testgorilla-tgo-ui-components-logo.mjs.map +1 -1
  67. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs +3 -3
  68. package/fesm2022/testgorilla-tgo-ui-components-media-card.mjs.map +1 -1
  69. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs +3 -3
  70. package/fesm2022/testgorilla-tgo-ui-components-media-dialog.mjs.map +1 -1
  71. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs +7 -7
  72. package/fesm2022/testgorilla-tgo-ui-components-multi-input.mjs.map +1 -1
  73. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs +10 -10
  74. package/fesm2022/testgorilla-tgo-ui-components-navbar.mjs.map +1 -1
  75. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs +7 -7
  76. package/fesm2022/testgorilla-tgo-ui-components-overflow-menu.mjs.map +1 -1
  77. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs +7 -7
  78. package/fesm2022/testgorilla-tgo-ui-components-page-header.mjs.map +1 -1
  79. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs +7 -7
  80. package/fesm2022/testgorilla-tgo-ui-components-paginator.mjs.map +1 -1
  81. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs +7 -7
  82. package/fesm2022/testgorilla-tgo-ui-components-password-criteria.mjs.map +1 -1
  83. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs +7 -7
  84. package/fesm2022/testgorilla-tgo-ui-components-password-strength.mjs.map +1 -1
  85. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs +10 -10
  86. package/fesm2022/testgorilla-tgo-ui-components-phone-input.mjs.map +1 -1
  87. package/fesm2022/testgorilla-tgo-ui-components-popover.mjs +6 -6
  88. package/fesm2022/testgorilla-tgo-ui-components-popover.mjs.map +1 -1
  89. package/fesm2022/testgorilla-tgo-ui-components-popup-tip.mjs +7 -7
  90. package/fesm2022/testgorilla-tgo-ui-components-popup-tip.mjs.map +1 -1
  91. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs +7 -7
  92. package/fesm2022/testgorilla-tgo-ui-components-progress-bar.mjs.map +1 -1
  93. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs +7 -7
  94. package/fesm2022/testgorilla-tgo-ui-components-prompt.mjs.map +1 -1
  95. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs +7 -7
  96. package/fesm2022/testgorilla-tgo-ui-components-radial-progress.mjs.map +1 -1
  97. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs +7 -7
  98. package/fesm2022/testgorilla-tgo-ui-components-radio-button.mjs.map +1 -1
  99. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs +10 -10
  100. package/fesm2022/testgorilla-tgo-ui-components-rating.mjs.map +1 -1
  101. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs +3 -3
  102. package/fesm2022/testgorilla-tgo-ui-components-scale-table.mjs.map +1 -1
  103. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs +7 -7
  104. package/fesm2022/testgorilla-tgo-ui-components-scale.mjs.map +1 -1
  105. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs +7 -7
  106. package/fesm2022/testgorilla-tgo-ui-components-segmented-bar.mjs.map +1 -1
  107. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs +7 -7
  108. package/fesm2022/testgorilla-tgo-ui-components-segmented-button.mjs.map +1 -1
  109. package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs +3 -3
  110. package/fesm2022/testgorilla-tgo-ui-components-segmented-toggle.mjs.map +1 -1
  111. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs +7 -7
  112. package/fesm2022/testgorilla-tgo-ui-components-selectable-card.mjs.map +1 -1
  113. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs +7 -7
  114. package/fesm2022/testgorilla-tgo-ui-components-side-navigation.mjs.map +1 -1
  115. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs +103 -12
  116. package/fesm2022/testgorilla-tgo-ui-components-side-panel.mjs.map +1 -1
  117. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs +10 -10
  118. package/fesm2022/testgorilla-tgo-ui-components-side-sheet.mjs.map +1 -1
  119. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs +3 -3
  120. package/fesm2022/testgorilla-tgo-ui-components-skeleton.mjs.map +1 -1
  121. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs +7 -7
  122. package/fesm2022/testgorilla-tgo-ui-components-slider.mjs.map +1 -1
  123. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs +10 -10
  124. package/fesm2022/testgorilla-tgo-ui-components-snackbar.mjs.map +1 -1
  125. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs +7 -7
  126. package/fesm2022/testgorilla-tgo-ui-components-spider-chart.mjs.map +1 -1
  127. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs +7 -7
  128. package/fesm2022/testgorilla-tgo-ui-components-spinner.mjs.map +1 -1
  129. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs +17 -17
  130. package/fesm2022/testgorilla-tgo-ui-components-stepper.mjs.map +1 -1
  131. package/fesm2022/testgorilla-tgo-ui-components-table.mjs +10 -10
  132. package/fesm2022/testgorilla-tgo-ui-components-table.mjs.map +1 -1
  133. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs +10 -10
  134. package/fesm2022/testgorilla-tgo-ui-components-tabs.mjs.map +1 -1
  135. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs +7 -7
  136. package/fesm2022/testgorilla-tgo-ui-components-tag.mjs.map +1 -1
  137. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs +7 -7
  138. package/fesm2022/testgorilla-tgo-ui-components-toggle.mjs.map +1 -1
  139. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs +10 -10
  140. package/fesm2022/testgorilla-tgo-ui-components-tooltip.mjs.map +1 -1
  141. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs +17 -17
  142. package/fesm2022/testgorilla-tgo-ui-components-universal-skills.mjs.map +1 -1
  143. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs +7 -7
  144. package/fesm2022/testgorilla-tgo-ui-components-validation-error.mjs.map +1 -1
  145. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs +10 -10
  146. package/fesm2022/testgorilla-tgo-ui-components-write-with-ai.mjs.map +1 -1
  147. package/fesm2022/testgorilla-tgo-ui.mjs +7 -7
  148. package/fesm2022/testgorilla-tgo-ui.mjs.map +1 -1
  149. package/mcp/catalog.json +1 -1
  150. package/mcp/server.mjs +412 -128
  151. package/package.json +9 -9
  152. package/types/testgorilla-tgo-ui-components-side-panel.d.ts +69 -5
@@ -148,10 +148,10 @@ class SideNavigationComponent {
148
148
  prefersReducedMotion() {
149
149
  return typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion: reduce)').matches;
150
150
  }
151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SideNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: SideNavigationComponent, isStandalone: true, selector: "ui-side-navigation", inputs: { activeRoute: { classPropertyName: "activeRoute", publicName: "activeRoute", isSignal: true, isRequired: false, transformFunction: null }, mainCta: { classPropertyName: "mainCta", publicName: "mainCta", isSignal: true, isRequired: false, transformFunction: null }, mainNavigation: { classPropertyName: "mainNavigation", publicName: "mainNavigation", isSignal: true, isRequired: true, transformFunction: null }, secondaryNavigation: { classPropertyName: "secondaryNavigation", publicName: "secondaryNavigation", isSignal: true, isRequired: false, transformFunction: null }, contentTemplateExtendedRef: { classPropertyName: "contentTemplateExtendedRef", publicName: "contentTemplateExtendedRef", isSignal: true, isRequired: false, transformFunction: null }, contentTemplateCollapsedRef: { classPropertyName: "contentTemplateCollapsedRef", publicName: "contentTemplateCollapsedRef", isSignal: true, isRequired: false, transformFunction: null }, account: { classPropertyName: "account", publicName: "account", isSignal: true, isRequired: false, transformFunction: null }, appContentTemplateRef: { classPropertyName: "appContentTemplateRef", publicName: "appContentTemplateRef", isSignal: true, isRequired: false, transformFunction: null }, applicationTheme: { classPropertyName: "applicationTheme", publicName: "applicationTheme", isSignal: true, isRequired: false, transformFunction: null }, collapseToggleLabel: { classPropertyName: "collapseToggleLabel", publicName: "collapseToggleLabel", isSignal: true, isRequired: false, transformFunction: null }, expandToggleLabel: { classPropertyName: "expandToggleLabel", publicName: "expandToggleLabel", isSignal: true, isRequired: false, transformFunction: null }, mobileMenuLabel: { classPropertyName: "mobileMenuLabel", publicName: "mobileMenuLabel", isSignal: true, isRequired: false, transformFunction: null }, mobileCloseLabel: { classPropertyName: "mobileCloseLabel", publicName: "mobileCloseLabel", isSignal: true, isRequired: false, transformFunction: null }, navAriaLabel: { classPropertyName: "navAriaLabel", publicName: "navAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isCollapsed: "isCollapsedChange", mainCtaClicked: "mainCtaClicked", navigate: "navigate", accountMenuSelected: "accountMenuSelected", logoClicked: "logoClicked" }, host: { listeners: { "keydown.escape": "onEscapeKey()" } }, providers: [UiTranslatePipe], ngImport: i0, template: "<div class=\"mobile-navbar\">\n <ui-logo [allowResizing]=\"true\" [width]=\"150\" [type]=\"logoType.DEFAULT\" (click)=\"logoClicked.emit()\"></ui-logo>\n\n <ui-button\n data-testid=\"navigation-collapse-mobile\"\n data-test-role=\"navigation-collapse\"\n [applicationTheme]=\"applicationTheme()\"\n [variant]=\"'menuTrigger'\"\n [iconName]=\"isCollapsed() ? 'Menu-burger' : 'Close'\"\n [ariaLabel]=\"mobileToggleAriaLabelOverride() ?? (mobileToggleAriaKey() | uiTranslate | async) ?? ''\"\n [ariaExpanded]=\"!isCollapsed()\"\n [ariaControls]=\"drawerControlsId\"\n [tooltip]=\"mobileToggleAriaLabelOverride() ?? (mobileToggleAriaKey() | uiTranslate | async) ?? ''\"\n tooltipPosition=\"left\"\n (buttonClickEvent)=\"toggleCollapsed()\"\n class=\"navigation-collapse-button\"\n ></ui-button>\n</div>\n\n<div class=\"main-container\">\n <nav\n [id]=\"drawerControlsId\"\n role=\"navigation\"\n [attr.aria-label]=\"navAriaLabel() ?? (translationKey.NAV | uiTranslate | async)\"\n class=\"side-navigation-container\"\n [class.collapsed]=\"isCollapsed()\"\n [class.expanded]=\"!isCollapsed()\"\n [cdkTrapFocus]=\"trapFocus()\"\n [cdkTrapFocusAutoCapture]=\"trapFocus()\"\n >\n <div class=\"zone-logo-row\">\n <div class=\"header\" [class.collapsed]=\"isCollapsed()\">\n <ui-logo\n class=\"logo-brandmark\"\n [allowResizing]=\"true\"\n [width]=\"19\"\n [type]=\"logoType.PRIMARY_BRANDMARK_PINK\"\n (click)=\"logoClicked.emit()\"\n ></ui-logo>\n <ui-logo\n class=\"logo-lockup\"\n [allowResizing]=\"true\"\n [width]=\"136\"\n [type]=\"logoType.DEFAULT\"\n (click)=\"logoClicked.emit()\"\n ></ui-logo>\n\n <ui-button\n data-testid=\"navigation-collapse\"\n data-test-role=\"navigation-collapse\"\n [applicationTheme]=\"applicationTheme()\"\n [variant]=\"'menuTrigger'\"\n [iconName]=\"isCollapsed() ? 'Sidebar-open-in-line' : 'Sidebar-close-in-line'\"\n [ariaLabel]=\"toggleAriaLabelOverride() ?? (toggleAriaKey() | uiTranslate | async) ?? ''\"\n [ariaPressed]=\"isCollapsed()\"\n [tooltip]=\"toggleAriaLabelOverride() ?? (toggleAriaKey() | uiTranslate | async) ?? ''\"\n tooltipPosition=\"below\"\n (buttonClickEvent)=\"toggleCollapsed()\"\n [class.collapsed]=\"isCollapsed()\"\n class=\"navigation-collapse-button\"\n ></ui-button>\n </div>\n </div>\n\n <div class=\"zone-primary-nav\">\n @if (mainCta(); as cta) {\n <div class=\"main-cta\">\n <ui-button\n data-testid=\"main-cta\"\n data-test-role=\"main-cta\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [variant]=\"cta.variant\"\n iconPosition=\"left\"\n [iconName]=\"cta.icon\"\n [label]=\"isCollapsed() && !isExpandingOrCollapsing() ? '' : cta.label\"\n [ariaLabel]=\"cta.label\"\n [tooltip]=\"isCollapsed() ? cta.label : ''\"\n tooltipPosition=\"right\"\n (buttonClickEvent)=\"mainCtaClicked.emit()\"\n ></ui-button>\n </div>\n }\n\n <ul class=\"navigation-list\">\n @for (item of mainNavigation(); track item.id) {\n <li>\n <ng-container [ngTemplateOutlet]=\"navigationItem\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </li>\n }\n </ul>\n </div>\n\n <div class=\"zone-utility-nav\">\n @if (secondaryNavigation(); as secondary) {\n <ul class=\"navigation-list\">\n @for (item of secondary; track item.id) {\n <li>\n <ng-container [ngTemplateOutlet]=\"navigationItem\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </li>\n }\n </ul>\n }\n </div>\n\n @if (account() || contentTemplateExtendedRef() || contentTemplateCollapsedRef()) {\n <div class=\"zone-account\">\n @if (contentTemplateExtendedRef(); as extendedRef) {\n @if (!isCollapsed() && !isExpandingOrCollapsing()) {\n <ng-container [ngTemplateOutlet]=\"extendedRef\"></ng-container>\n }\n }\n\n @if (contentTemplateCollapsedRef(); as collapsedRef) {\n @if (isCollapsed() || isExpandingOrCollapsing()) {\n <ng-container [ngTemplateOutlet]=\"collapsedRef\"></ng-container>\n }\n }\n\n @if (account(); as accountValue) {\n <ui-overflow-menu\n [applicationTheme]=\"applicationTheme()\"\n [contentTemplateRef]=\"userInfo\"\n [buttons]=\"accountValue.menu\"\n [isDynamicMenu]=\"true\"\n [class.collapsed]=\"isCollapsed() && !isExpandingOrCollapsing()\"\n (selectItem)=\"onSelectMenuItem($event)\"\n [menuConfig]=\"overflowMenuConfig()\"\n ></ui-overflow-menu>\n }\n </div>\n }\n </nav>\n <div class=\"app-container\" [class.collapsed]=\"isCollapsed()\" [class.expanded]=\"!isCollapsed()\">\n @if (appContentTemplateRef(); as appRef) {\n <ng-container [ngTemplateOutlet]=\"appRef\"></ng-container>\n }\n @if (isMobileOrTablet() && !isCollapsed()) {\n <button\n type=\"button\"\n class=\"backdrop\"\n [attr.aria-label]=\"mobileCloseLabel() ?? (translationKey.MOBILE_CLOSE | uiTranslate | async) ?? ''\"\n (click)=\"toggleCollapsed()\"\n ></button>\n }\n </div>\n</div>\n\n<ng-template #navigationItem let-item=\"item\">\n @if (item) {\n <div class=\"menu-item\" [attr.aria-current]=\"activeRoutesMap().get(item.url) ? 'page' : null\">\n <ui-button\n [attr.data-testid]=\"item.id\"\n data-test-role=\"menu-item\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"item.icon\"\n [label]=\"isCollapsed() && !isExpandingOrCollapsing() ? '' : item.text\"\n (buttonClickEvent)=\"onNavigateClick(item.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"item.text\"\n [class.active]=\"activeRoutesMap().get(item.url)\"\n [buttonBadgeConfig]=\"isCollapsed() && !isExpandingOrCollapsing() ? undefined : item?.badgeOptions\"\n [tooltip]=\"isCollapsed() ? item.text : undefined\"\n tooltipPosition=\"right\"\n [iconFilled]=\"!!activeRoutesMap().get(item.url)\"\n ></ui-button>\n </div>\n }\n</ng-template>\n\n<ng-template #userInfo>\n @if (account(); as accountValue) {\n <div class=\"user-info\">\n <ui-avatar [size]=\"isCollapsed() ? avatarSize.MEDIUM : avatarSize.SMALL\" [name]=\"accountValue.name\"></ui-avatar>\n @if (!isCollapsed()) {\n <span class=\"user-name\">{{ accountValue.name }}</span>\n <ui-icon class=\"user-chevron\" name=\"Arrow-chevron-right-in-line\" size=\"24\" aria-hidden=\"true\"></ui-icon>\n }\n </div>\n }\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}.mobile-navbar{background:#fff;display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100vw;position:fixed;top:0;left:0;padding:16px 24px;height:64px;z-index:11}.mobile-navbar ui-logo{top:2px}@media(min-width:600px){.mobile-navbar{display:none}}.main-container{display:flex;flex-direction:row;width:100vw;height:100vh}.main-container .app-container{flex:1;min-width:0;overflow:hidden auto;transition:margin-left .18s cubic-bezier(.4,0,.2,1),padding .18s cubic-bezier(.4,0,.2,1)}.main-container .app-container .backdrop{display:none;padding:0;border:0;background:transparent;cursor:pointer}.main-container .app-container.expanded .backdrop{display:block}@media(prefers-reduced-motion:reduce){.main-container .app-container{transition:none}}@media(max-width:600px){.main-container .app-container{margin-top:64px}.main-container .app-container.expanded .backdrop{position:fixed;top:64px;left:240px;background:#00000040;width:calc(100vw - 240px);height:calc(100vh - 64px);z-index:8}}@media(min-width:600px)and (max-width:1024px){.main-container .app-container{margin-left:72px}.main-container .app-container.expanded .backdrop{position:absolute;top:0;left:0;background:#00000040;width:100%;height:100%;z-index:2}}@media(min-width:1024px){.main-container .app-container.collapsed{margin-left:72px}.main-container .app-container.expanded{margin-left:240px}}.side-navigation-container{position:fixed;z-index:10;display:flex;flex-direction:column;background:#fff;height:100vh;width:240px;border-right:1px solid #e9e9e9;transition:width .18s cubic-bezier(.4,0,.2,1),left .18s cubic-bezier(.4,0,.2,1)}@media(prefers-reduced-motion:reduce){.side-navigation-container{transition:none}}.side-navigation-container.collapsed{width:72px}@media(max-width:600px){.side-navigation-container{width:240px;top:64px;height:calc(100vh - 64px)}.side-navigation-container .zone-logo-row{display:none!important}.side-navigation-container.expanded{left:0}.side-navigation-container.collapsed{width:240px;left:-240px}}.side-navigation-container .zone-logo-row{flex:0 0 auto;height:56px;padding:16px 12px 16px 26px;display:flex;align-items:center;border-bottom:1px solid #e9e9e9;position:relative}.side-navigation-container .zone-logo-row .header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}.side-navigation-container .zone-logo-row .header ui-logo{cursor:pointer;flex:0 0 auto}.side-navigation-container .zone-logo-row .header .logo-brandmark{position:absolute;left:26px;top:50%;transform:translateY(-50%);opacity:0;pointer-events:none;transition:opacity 90ms cubic-bezier(.4,0,.2,1) 90ms}.side-navigation-container .zone-logo-row .header .logo-lockup{opacity:1;max-width:136px;overflow:hidden;transition:opacity .18s cubic-bezier(.4,0,.2,1),max-width .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container .zone-logo-row .header .navigation-collapse-button ::ng-deep .mat-mdc-button-persistent-ripple{background:#fff}.side-navigation-container .zone-logo-row .navigation-collapse-button{position:absolute;top:8px;right:12px;z-index:2;background:transparent;border:1px solid transparent;border-radius:50%;box-shadow:0 2px 8px #0000;transform:translate(0);transition:right .18s cubic-bezier(.4,0,.2,1),transform .18s cubic-bezier(.4,0,.2,1),background .18s cubic-bezier(.4,0,.2,1),border-color .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container.collapsed .zone-logo-row .header .logo-brandmark{opacity:1;pointer-events:auto;transition:opacity 90ms cubic-bezier(.4,0,.2,1)}.side-navigation-container.collapsed .zone-logo-row .header .logo-lockup{opacity:0;max-width:0;pointer-events:none}.side-navigation-container.collapsed .zone-logo-row .navigation-collapse-button{top:8px;right:0;transform:translate(50%);background:#fff;border-color:#e9e9e9;box-shadow:0 2px 8px #00000014}.side-navigation-container .zone-primary-nav{flex:1 1 auto;min-height:0;overflow:hidden auto;display:flex;flex-direction:column;gap:8px;padding:12px}.side-navigation-container .zone-primary-nav .main-cta{width:100%}.side-navigation-container .zone-primary-nav .main-cta ::ng-deep ui-button button{overflow:hidden;padding-left:12px!important;padding-right:12px!important}.side-navigation-container .zone-primary-nav .main-cta ::ng-deep ui-button button .icon-label-wrapper{justify-content:flex-start;width:100%}.side-navigation-container .zone-primary-nav .main-cta ::ng-deep ui-button button span.icon{transition:margin-right .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container .zone-primary-nav .main-cta ::ng-deep ui-button button span.label{opacity:1;transition:opacity .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container.collapsed .zone-primary-nav .main-cta ::ng-deep ui-button button span.icon{margin-right:0!important}.side-navigation-container.collapsed .zone-primary-nav .main-cta ::ng-deep ui-button button span.label{opacity:0;pointer-events:none}.side-navigation-container .zone-utility-nav{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;padding:12px;border-top:1px solid #e9e9e9;align-items:stretch}.side-navigation-container .zone-utility-nav:empty{display:none}.side-navigation-container.collapsed .zone-account{align-items:center;padding:12px}.side-navigation-container.collapsed .zone-account .user-info{transform:translate(-8px)}.side-navigation-container .zone-account{flex:0 0 auto;width:100%;padding:12px;border-top:1px solid #e9e9e9;background:#fff;display:flex;flex-direction:column;gap:8px;align-items:stretch}.side-navigation-container .zone-account>ui-button,.side-navigation-container .zone-account>a,.side-navigation-container .zone-account>button{width:100%}.side-navigation-container .zone-account ui-overflow-menu{width:100%}.side-navigation-container .zone-account ui-avatar ::ng-deep .avatar-container{transition:width .18s cubic-bezier(.4,0,.2,1),height .18s cubic-bezier(.4,0,.2,1),font-size .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container .zone-account .user-info{display:flex;align-items:center;padding:8px 0;width:100%;gap:12px;transition:transform .18s cubic-bezier(.4,0,.2,1);transform:translate(0)}.side-navigation-container .zone-account .user-info .user-name,.side-navigation-container .zone-account .user-info .user-chevron{opacity:1;transition:opacity .18s cubic-bezier(.4,0,.2,1)}@starting-style{.side-navigation-container .zone-account .user-info .user-name,.side-navigation-container .zone-account .user-info .user-chevron{opacity:0}}.side-navigation-container .zone-account .user-info .user-name{flex:1 1 auto;font-weight:500;font-size:14px;line-height:22px;font-family:ModernGothic,sans-serif;color:#242424;text-align:start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-navigation-container .zone-account .user-info .user-chevron{flex:0 0 auto;color:#666}.side-navigation-container .navigation-list{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:8px}.side-navigation-container .navigation-list li{width:100%}.side-navigation-container .menu-item{width:100%;height:40px;display:flex;font-size:14px;font-weight:700;font-family:ModernGothic,sans-serif;flex-direction:row;align-items:center;cursor:pointer}.side-navigation-container .menu-item ui-button{width:100%}.side-navigation-container .menu-item ::ng-deep ui-button button{padding:8px 12px!important;border-radius:10px!important;min-height:40px;overflow:hidden}.side-navigation-container .menu-item ::ng-deep ui-button button span.icon{margin-right:12px!important;transition:margin-right .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container .menu-item ::ng-deep ui-button button span.label{transition:opacity .18s cubic-bezier(.4,0,.2,1),max-width .18s cubic-bezier(.4,0,.2,1);opacity:1;max-width:240px}.side-navigation-container .menu-item ::ng-deep ui-button.active button{background-color:#fff2fc!important;color:#a90686!important}.side-navigation-container .menu-item ::ng-deep ui-button.active button .icon,.side-navigation-container .menu-item ::ng-deep ui-button.active button .label{color:#a90686!important}.side-navigation-container .menu-item ::ng-deep ui-button.active button .mat-mdc-button-touch-target{background-color:transparent}.side-navigation-container.collapsed .menu-item ::ng-deep ui-button button{width:100%!important}.side-navigation-container.collapsed .menu-item ::ng-deep ui-button button span.icon{margin-right:0!important}.side-navigation-container.collapsed .menu-item ::ng-deep ui-button button span.label{opacity:0;max-width:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.side-navigation-container .menu-item ::ng-deep ui-button button,.side-navigation-container .menu-item ::ng-deep ui-button button span.icon,.side-navigation-container .menu-item ::ng-deep ui-button button span.label,.side-navigation-container .zone-logo-row .header .logo-brandmark,.side-navigation-container .zone-logo-row .header .logo-lockup,.side-navigation-container .zone-logo-row .navigation-collapse-button{transition:none}}::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell,::ng-deep ui-overflow-menu button.mat-mdc-menu-trigger.content-template{outline-offset:-2px!important}::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:hover,::ng-deep ui-overflow-menu button.mat-mdc-menu-trigger.content-template:hover{background-color:#f4f4f4!important}::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:active,::ng-deep ui-overflow-menu button.mat-mdc-menu-trigger.content-template:active{background-color:#e9e9e9!important}::ng-deep ui-button.active button.mat-mdc-unelevated-button.menuCell:hover{background-color:#ffe6fa!important}::ng-deep ui-overflow-menu button.overflow-menu-opener.content-template{padding:0 8px}@media(min-width:600px){::ng-deep .cdk-overlay-connected-position-bounding-box:has(.cdk-overlay-pane .collapsed-menu){left:78px!important}::ng-deep .cdk-overlay-connected-position-bounding-box:has(.cdk-overlay-pane .expanded-menu){left:246px!important}}@media(max-width:599px){::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.expanded-menu,::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.collapsed-menu{max-width:calc(100vw - 32px);min-width:0}}::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.expanded-menu,::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.collapsed-menu{min-width:280px}::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.expanded-menu button.mat-mdc-menu-item.cdk-keyboard-focused,::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.collapsed-menu button.mat-mdc-menu-item.cdk-keyboard-focused{background-color:#f4f4f4}::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.expanded-menu button.mat-mdc-menu-item.cdk-keyboard-focused.is-destructive,::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.collapsed-menu button.mat-mdc-menu-item.cdk-keyboard-focused.is-destructive{background-color:#ffeae6}\n"], dependencies: [{ 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: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: OverflowMenuComponentModule }, { kind: "component", type: i1.OverflowMenuComponent, selector: "ui-overflow-menu", inputs: ["buttons", "iconTrigger", "menuLabel", "applicationTheme", "ariaLabel", "testId", "ariaRequired", "describedby", "contentTemplateRef", "buttonVariant", "buttonSize", "menuConfig", "selectionMode", "isDynamicMenu", "withRemovableOption"], outputs: ["selectItem", "menuOpened", "menuClosed"] }, { kind: "component", type: AvatarComponent, selector: "ui-avatar", inputs: ["size", "imageUrl", "name", "tooltipText", "allowEdit", "applicationTheme", "backgroundColor"], outputs: ["editClick"] }, { kind: "ngmodule", type: IconComponentModule }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SideNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.23", type: SideNavigationComponent, isStandalone: true, selector: "ui-side-navigation", inputs: { activeRoute: { classPropertyName: "activeRoute", publicName: "activeRoute", isSignal: true, isRequired: false, transformFunction: null }, mainCta: { classPropertyName: "mainCta", publicName: "mainCta", isSignal: true, isRequired: false, transformFunction: null }, mainNavigation: { classPropertyName: "mainNavigation", publicName: "mainNavigation", isSignal: true, isRequired: true, transformFunction: null }, secondaryNavigation: { classPropertyName: "secondaryNavigation", publicName: "secondaryNavigation", isSignal: true, isRequired: false, transformFunction: null }, contentTemplateExtendedRef: { classPropertyName: "contentTemplateExtendedRef", publicName: "contentTemplateExtendedRef", isSignal: true, isRequired: false, transformFunction: null }, contentTemplateCollapsedRef: { classPropertyName: "contentTemplateCollapsedRef", publicName: "contentTemplateCollapsedRef", isSignal: true, isRequired: false, transformFunction: null }, account: { classPropertyName: "account", publicName: "account", isSignal: true, isRequired: false, transformFunction: null }, appContentTemplateRef: { classPropertyName: "appContentTemplateRef", publicName: "appContentTemplateRef", isSignal: true, isRequired: false, transformFunction: null }, applicationTheme: { classPropertyName: "applicationTheme", publicName: "applicationTheme", isSignal: true, isRequired: false, transformFunction: null }, collapseToggleLabel: { classPropertyName: "collapseToggleLabel", publicName: "collapseToggleLabel", isSignal: true, isRequired: false, transformFunction: null }, expandToggleLabel: { classPropertyName: "expandToggleLabel", publicName: "expandToggleLabel", isSignal: true, isRequired: false, transformFunction: null }, mobileMenuLabel: { classPropertyName: "mobileMenuLabel", publicName: "mobileMenuLabel", isSignal: true, isRequired: false, transformFunction: null }, mobileCloseLabel: { classPropertyName: "mobileCloseLabel", publicName: "mobileCloseLabel", isSignal: true, isRequired: false, transformFunction: null }, navAriaLabel: { classPropertyName: "navAriaLabel", publicName: "navAriaLabel", isSignal: true, isRequired: false, transformFunction: null }, isCollapsed: { classPropertyName: "isCollapsed", publicName: "isCollapsed", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isCollapsed: "isCollapsedChange", mainCtaClicked: "mainCtaClicked", navigate: "navigate", accountMenuSelected: "accountMenuSelected", logoClicked: "logoClicked" }, host: { listeners: { "keydown.escape": "onEscapeKey()" } }, providers: [UiTranslatePipe], ngImport: i0, template: "<div class=\"mobile-navbar\">\n <ui-logo [allowResizing]=\"true\" [width]=\"150\" [type]=\"logoType.DEFAULT\" (click)=\"logoClicked.emit()\"></ui-logo>\n\n <ui-button\n data-testid=\"navigation-collapse-mobile\"\n data-test-role=\"navigation-collapse\"\n [applicationTheme]=\"applicationTheme()\"\n [variant]=\"'menuTrigger'\"\n [iconName]=\"isCollapsed() ? 'Menu-burger' : 'Close'\"\n [ariaLabel]=\"mobileToggleAriaLabelOverride() ?? (mobileToggleAriaKey() | uiTranslate | async) ?? ''\"\n [ariaExpanded]=\"!isCollapsed()\"\n [ariaControls]=\"drawerControlsId\"\n [tooltip]=\"mobileToggleAriaLabelOverride() ?? (mobileToggleAriaKey() | uiTranslate | async) ?? ''\"\n tooltipPosition=\"left\"\n (buttonClickEvent)=\"toggleCollapsed()\"\n class=\"navigation-collapse-button\"\n ></ui-button>\n</div>\n\n<div class=\"main-container\">\n <nav\n [id]=\"drawerControlsId\"\n role=\"navigation\"\n [attr.aria-label]=\"navAriaLabel() ?? (translationKey.NAV | uiTranslate | async)\"\n class=\"side-navigation-container\"\n [class.collapsed]=\"isCollapsed()\"\n [class.expanded]=\"!isCollapsed()\"\n [cdkTrapFocus]=\"trapFocus()\"\n [cdkTrapFocusAutoCapture]=\"trapFocus()\"\n >\n <div class=\"zone-logo-row\">\n <div class=\"header\" [class.collapsed]=\"isCollapsed()\">\n <ui-logo\n class=\"logo-brandmark\"\n [allowResizing]=\"true\"\n [width]=\"19\"\n [type]=\"logoType.PRIMARY_BRANDMARK_PINK\"\n (click)=\"logoClicked.emit()\"\n ></ui-logo>\n <ui-logo\n class=\"logo-lockup\"\n [allowResizing]=\"true\"\n [width]=\"136\"\n [type]=\"logoType.DEFAULT\"\n (click)=\"logoClicked.emit()\"\n ></ui-logo>\n\n <ui-button\n data-testid=\"navigation-collapse\"\n data-test-role=\"navigation-collapse\"\n [applicationTheme]=\"applicationTheme()\"\n [variant]=\"'menuTrigger'\"\n [iconName]=\"isCollapsed() ? 'Sidebar-open-in-line' : 'Sidebar-close-in-line'\"\n [ariaLabel]=\"toggleAriaLabelOverride() ?? (toggleAriaKey() | uiTranslate | async) ?? ''\"\n [ariaPressed]=\"isCollapsed()\"\n [tooltip]=\"toggleAriaLabelOverride() ?? (toggleAriaKey() | uiTranslate | async) ?? ''\"\n tooltipPosition=\"below\"\n (buttonClickEvent)=\"toggleCollapsed()\"\n [class.collapsed]=\"isCollapsed()\"\n class=\"navigation-collapse-button\"\n ></ui-button>\n </div>\n </div>\n\n <div class=\"zone-primary-nav\">\n @if (mainCta(); as cta) {\n <div class=\"main-cta\">\n <ui-button\n data-testid=\"main-cta\"\n data-test-role=\"main-cta\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [variant]=\"cta.variant\"\n iconPosition=\"left\"\n [iconName]=\"cta.icon\"\n [label]=\"isCollapsed() && !isExpandingOrCollapsing() ? '' : cta.label\"\n [ariaLabel]=\"cta.label\"\n [tooltip]=\"isCollapsed() ? cta.label : ''\"\n tooltipPosition=\"right\"\n (buttonClickEvent)=\"mainCtaClicked.emit()\"\n ></ui-button>\n </div>\n }\n\n <ul class=\"navigation-list\">\n @for (item of mainNavigation(); track item.id) {\n <li>\n <ng-container [ngTemplateOutlet]=\"navigationItem\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </li>\n }\n </ul>\n </div>\n\n <div class=\"zone-utility-nav\">\n @if (secondaryNavigation(); as secondary) {\n <ul class=\"navigation-list\">\n @for (item of secondary; track item.id) {\n <li>\n <ng-container [ngTemplateOutlet]=\"navigationItem\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </li>\n }\n </ul>\n }\n </div>\n\n @if (account() || contentTemplateExtendedRef() || contentTemplateCollapsedRef()) {\n <div class=\"zone-account\">\n @if (contentTemplateExtendedRef(); as extendedRef) {\n @if (!isCollapsed() && !isExpandingOrCollapsing()) {\n <ng-container [ngTemplateOutlet]=\"extendedRef\"></ng-container>\n }\n }\n\n @if (contentTemplateCollapsedRef(); as collapsedRef) {\n @if (isCollapsed() || isExpandingOrCollapsing()) {\n <ng-container [ngTemplateOutlet]=\"collapsedRef\"></ng-container>\n }\n }\n\n @if (account(); as accountValue) {\n <ui-overflow-menu\n [applicationTheme]=\"applicationTheme()\"\n [contentTemplateRef]=\"userInfo\"\n [buttons]=\"accountValue.menu\"\n [isDynamicMenu]=\"true\"\n [class.collapsed]=\"isCollapsed() && !isExpandingOrCollapsing()\"\n (selectItem)=\"onSelectMenuItem($event)\"\n [menuConfig]=\"overflowMenuConfig()\"\n ></ui-overflow-menu>\n }\n </div>\n }\n </nav>\n <div class=\"app-container\" [class.collapsed]=\"isCollapsed()\" [class.expanded]=\"!isCollapsed()\">\n @if (appContentTemplateRef(); as appRef) {\n <ng-container [ngTemplateOutlet]=\"appRef\"></ng-container>\n }\n @if (isMobileOrTablet() && !isCollapsed()) {\n <button\n type=\"button\"\n class=\"backdrop\"\n [attr.aria-label]=\"mobileCloseLabel() ?? (translationKey.MOBILE_CLOSE | uiTranslate | async) ?? ''\"\n (click)=\"toggleCollapsed()\"\n ></button>\n }\n </div>\n</div>\n\n<ng-template #navigationItem let-item=\"item\">\n @if (item) {\n <div class=\"menu-item\" [attr.aria-current]=\"activeRoutesMap().get(item.url) ? 'page' : null\">\n <ui-button\n [attr.data-testid]=\"item.id\"\n data-test-role=\"menu-item\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"item.icon\"\n [label]=\"isCollapsed() && !isExpandingOrCollapsing() ? '' : item.text\"\n (buttonClickEvent)=\"onNavigateClick(item.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"item.text\"\n [class.active]=\"activeRoutesMap().get(item.url)\"\n [buttonBadgeConfig]=\"isCollapsed() && !isExpandingOrCollapsing() ? undefined : item?.badgeOptions\"\n [tooltip]=\"isCollapsed() ? item.text : undefined\"\n tooltipPosition=\"right\"\n [iconFilled]=\"!!activeRoutesMap().get(item.url)\"\n ></ui-button>\n </div>\n }\n</ng-template>\n\n<ng-template #userInfo>\n @if (account(); as accountValue) {\n <div class=\"user-info\">\n <ui-avatar [size]=\"isCollapsed() ? avatarSize.MEDIUM : avatarSize.SMALL\" [name]=\"accountValue.name\"></ui-avatar>\n @if (!isCollapsed()) {\n <span class=\"user-name\">{{ accountValue.name }}</span>\n <ui-icon class=\"user-chevron\" name=\"Arrow-chevron-right-in-line\" size=\"24\" aria-hidden=\"true\"></ui-icon>\n }\n </div>\n }\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}.mobile-navbar{background:#fff;display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100vw;position:fixed;top:0;left:0;padding:16px 24px;height:64px;z-index:11}.mobile-navbar ui-logo{top:2px}@media(min-width:600px){.mobile-navbar{display:none}}.main-container{display:flex;flex-direction:row;width:100vw;height:100vh}.main-container .app-container{flex:1;min-width:0;overflow:hidden auto;transition:margin-left .18s cubic-bezier(.4,0,.2,1),padding .18s cubic-bezier(.4,0,.2,1)}.main-container .app-container .backdrop{display:none;padding:0;border:0;background:transparent;cursor:pointer}.main-container .app-container.expanded .backdrop{display:block}@media(prefers-reduced-motion:reduce){.main-container .app-container{transition:none}}@media(max-width:600px){.main-container .app-container{margin-top:64px}.main-container .app-container.expanded .backdrop{position:fixed;top:64px;left:240px;background:#00000040;width:calc(100vw - 240px);height:calc(100vh - 64px);z-index:8}}@media(min-width:600px)and (max-width:1024px){.main-container .app-container{margin-left:72px}.main-container .app-container.expanded .backdrop{position:absolute;top:0;left:0;background:#00000040;width:100%;height:100%;z-index:2}}@media(min-width:1024px){.main-container .app-container.collapsed{margin-left:72px}.main-container .app-container.expanded{margin-left:240px}}.side-navigation-container{position:fixed;z-index:10;display:flex;flex-direction:column;background:#fff;height:100vh;width:240px;border-right:1px solid #e9e9e9;transition:width .18s cubic-bezier(.4,0,.2,1),left .18s cubic-bezier(.4,0,.2,1)}@media(prefers-reduced-motion:reduce){.side-navigation-container{transition:none}}.side-navigation-container.collapsed{width:72px}@media(max-width:600px){.side-navigation-container{width:240px;top:64px;height:calc(100vh - 64px)}.side-navigation-container .zone-logo-row{display:none!important}.side-navigation-container.expanded{left:0}.side-navigation-container.collapsed{width:240px;left:-240px}}.side-navigation-container .zone-logo-row{flex:0 0 auto;height:56px;padding:16px 12px 16px 26px;display:flex;align-items:center;border-bottom:1px solid #e9e9e9;position:relative}.side-navigation-container .zone-logo-row .header{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px}.side-navigation-container .zone-logo-row .header ui-logo{cursor:pointer;flex:0 0 auto}.side-navigation-container .zone-logo-row .header .logo-brandmark{position:absolute;left:26px;top:50%;transform:translateY(-50%);opacity:0;pointer-events:none;transition:opacity 90ms cubic-bezier(.4,0,.2,1) 90ms}.side-navigation-container .zone-logo-row .header .logo-lockup{opacity:1;max-width:136px;overflow:hidden;transition:opacity .18s cubic-bezier(.4,0,.2,1),max-width .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container .zone-logo-row .header .navigation-collapse-button ::ng-deep .mat-mdc-button-persistent-ripple{background:#fff}.side-navigation-container .zone-logo-row .navigation-collapse-button{position:absolute;top:8px;right:12px;z-index:2;background:transparent;border:1px solid transparent;border-radius:50%;box-shadow:0 2px 8px #0000;transform:translate(0);transition:right .18s cubic-bezier(.4,0,.2,1),transform .18s cubic-bezier(.4,0,.2,1),background .18s cubic-bezier(.4,0,.2,1),border-color .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container.collapsed .zone-logo-row .header .logo-brandmark{opacity:1;pointer-events:auto;transition:opacity 90ms cubic-bezier(.4,0,.2,1)}.side-navigation-container.collapsed .zone-logo-row .header .logo-lockup{opacity:0;max-width:0;pointer-events:none}.side-navigation-container.collapsed .zone-logo-row .navigation-collapse-button{top:8px;right:0;transform:translate(50%);background:#fff;border-color:#e9e9e9;box-shadow:0 2px 8px #00000014}.side-navigation-container .zone-primary-nav{flex:1 1 auto;min-height:0;overflow:hidden auto;display:flex;flex-direction:column;gap:8px;padding:12px}.side-navigation-container .zone-primary-nav .main-cta{width:100%}.side-navigation-container .zone-primary-nav .main-cta ::ng-deep ui-button button{overflow:hidden;padding-left:12px!important;padding-right:12px!important}.side-navigation-container .zone-primary-nav .main-cta ::ng-deep ui-button button .icon-label-wrapper{justify-content:flex-start;width:100%}.side-navigation-container .zone-primary-nav .main-cta ::ng-deep ui-button button span.icon{transition:margin-right .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container .zone-primary-nav .main-cta ::ng-deep ui-button button span.label{opacity:1;transition:opacity .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container.collapsed .zone-primary-nav .main-cta ::ng-deep ui-button button span.icon{margin-right:0!important}.side-navigation-container.collapsed .zone-primary-nav .main-cta ::ng-deep ui-button button span.label{opacity:0;pointer-events:none}.side-navigation-container .zone-utility-nav{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;padding:12px;border-top:1px solid #e9e9e9;align-items:stretch}.side-navigation-container .zone-utility-nav:empty{display:none}.side-navigation-container.collapsed .zone-account{align-items:center;padding:12px}.side-navigation-container.collapsed .zone-account .user-info{transform:translate(-8px)}.side-navigation-container .zone-account{flex:0 0 auto;width:100%;padding:12px;border-top:1px solid #e9e9e9;background:#fff;display:flex;flex-direction:column;gap:8px;align-items:stretch}.side-navigation-container .zone-account>ui-button,.side-navigation-container .zone-account>a,.side-navigation-container .zone-account>button{width:100%}.side-navigation-container .zone-account ui-overflow-menu{width:100%}.side-navigation-container .zone-account ui-avatar ::ng-deep .avatar-container{transition:width .18s cubic-bezier(.4,0,.2,1),height .18s cubic-bezier(.4,0,.2,1),font-size .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container .zone-account .user-info{display:flex;align-items:center;padding:8px 0;width:100%;gap:12px;transition:transform .18s cubic-bezier(.4,0,.2,1);transform:translate(0)}.side-navigation-container .zone-account .user-info .user-name,.side-navigation-container .zone-account .user-info .user-chevron{opacity:1;transition:opacity .18s cubic-bezier(.4,0,.2,1)}@starting-style{.side-navigation-container .zone-account .user-info .user-name,.side-navigation-container .zone-account .user-info .user-chevron{opacity:0}}.side-navigation-container .zone-account .user-info .user-name{flex:1 1 auto;font-weight:500;font-size:14px;line-height:22px;font-family:ModernGothic,sans-serif;color:#242424;text-align:start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-navigation-container .zone-account .user-info .user-chevron{flex:0 0 auto;color:#666}.side-navigation-container .navigation-list{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:8px}.side-navigation-container .navigation-list li{width:100%}.side-navigation-container .menu-item{width:100%;height:40px;display:flex;font-size:14px;font-weight:700;font-family:ModernGothic,sans-serif;flex-direction:row;align-items:center;cursor:pointer}.side-navigation-container .menu-item ui-button{width:100%}.side-navigation-container .menu-item ::ng-deep ui-button button{padding:8px 12px!important;border-radius:10px!important;min-height:40px;overflow:hidden}.side-navigation-container .menu-item ::ng-deep ui-button button span.icon{margin-right:12px!important;transition:margin-right .18s cubic-bezier(.4,0,.2,1)}.side-navigation-container .menu-item ::ng-deep ui-button button span.label{transition:opacity .18s cubic-bezier(.4,0,.2,1),max-width .18s cubic-bezier(.4,0,.2,1);opacity:1;max-width:240px}.side-navigation-container .menu-item ::ng-deep ui-button.active button{background-color:#fff2fc!important;color:#a90686!important}.side-navigation-container .menu-item ::ng-deep ui-button.active button .icon,.side-navigation-container .menu-item ::ng-deep ui-button.active button .label{color:#a90686!important}.side-navigation-container .menu-item ::ng-deep ui-button.active button .mat-mdc-button-touch-target{background-color:transparent}.side-navigation-container.collapsed .menu-item ::ng-deep ui-button button{width:100%!important}.side-navigation-container.collapsed .menu-item ::ng-deep ui-button button span.icon{margin-right:0!important}.side-navigation-container.collapsed .menu-item ::ng-deep ui-button button span.label{opacity:0;max-width:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.side-navigation-container .menu-item ::ng-deep ui-button button,.side-navigation-container .menu-item ::ng-deep ui-button button span.icon,.side-navigation-container .menu-item ::ng-deep ui-button button span.label,.side-navigation-container .zone-logo-row .header .logo-brandmark,.side-navigation-container .zone-logo-row .header .logo-lockup,.side-navigation-container .zone-logo-row .navigation-collapse-button{transition:none}}::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell,::ng-deep ui-overflow-menu button.mat-mdc-menu-trigger.content-template{outline-offset:-2px!important}::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:hover,::ng-deep ui-overflow-menu button.mat-mdc-menu-trigger.content-template:hover{background-color:#f4f4f4!important}::ng-deep ui-button button.mat-mdc-unelevated-button.menuCell:active,::ng-deep ui-overflow-menu button.mat-mdc-menu-trigger.content-template:active{background-color:#e9e9e9!important}::ng-deep ui-button.active button.mat-mdc-unelevated-button.menuCell:hover{background-color:#ffe6fa!important}::ng-deep ui-overflow-menu button.overflow-menu-opener.content-template{padding:0 8px}@media(min-width:600px){::ng-deep .cdk-overlay-connected-position-bounding-box:has(.cdk-overlay-pane .collapsed-menu){left:78px!important}::ng-deep .cdk-overlay-connected-position-bounding-box:has(.cdk-overlay-pane .expanded-menu){left:246px!important}}@media(max-width:599px){::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.expanded-menu,::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.collapsed-menu{max-width:calc(100vw - 32px);min-width:0}}::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.expanded-menu,::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.collapsed-menu{min-width:280px}::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.expanded-menu button.mat-mdc-menu-item.cdk-keyboard-focused,::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.collapsed-menu button.mat-mdc-menu-item.cdk-keyboard-focused{background-color:#f4f4f4}::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.expanded-menu button.mat-mdc-menu-item.cdk-keyboard-focused.is-destructive,::ng-deep .cdk-overlay-pane .mat-mdc-menu-panel.collapsed-menu button.mat-mdc-menu-item.cdk-keyboard-focused.is-destructive{background-color:#ffeae6}\n"], dependencies: [{ 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: CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: OverflowMenuComponentModule }, { kind: "component", type: i1.OverflowMenuComponent, selector: "ui-overflow-menu", inputs: ["buttons", "iconTrigger", "menuLabel", "applicationTheme", "ariaLabel", "testId", "ariaRequired", "describedby", "contentTemplateRef", "buttonVariant", "buttonSize", "menuConfig", "selectionMode", "isDynamicMenu", "withRemovableOption"], outputs: ["selectItem", "menuOpened", "menuClosed"] }, { kind: "component", type: AvatarComponent, selector: "ui-avatar", inputs: ["size", "imageUrl", "name", "tooltipText", "allowEdit", "applicationTheme", "backgroundColor"], outputs: ["editClick"] }, { kind: "ngmodule", type: IconComponentModule }, { kind: "component", type: i2.IconComponent, selector: "ui-icon", inputs: ["size", "cssClass", "name", "color", "filled", "toggleIconStyle", "applicationTheme", "useFullIconName"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: UiTranslatePipe, name: "uiTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
153
153
  }
154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SideNavigationComponent, decorators: [{
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SideNavigationComponent, decorators: [{
155
155
  type: Component,
156
156
  args: [{ selector: 'ui-side-navigation', changeDetection: ChangeDetectionStrategy.OnPush, providers: [UiTranslatePipe], host: {
157
157
  '(keydown.escape)': 'onEscapeKey()',
@@ -169,8 +169,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
169
169
  }], propDecorators: { activeRoute: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeRoute", required: false }] }], mainCta: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainCta", required: false }] }], mainNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "mainNavigation", required: true }] }], secondaryNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "secondaryNavigation", required: false }] }], contentTemplateExtendedRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentTemplateExtendedRef", required: false }] }], contentTemplateCollapsedRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "contentTemplateCollapsedRef", required: false }] }], account: [{ type: i0.Input, args: [{ isSignal: true, alias: "account", required: false }] }], appContentTemplateRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "appContentTemplateRef", required: false }] }], applicationTheme: [{ type: i0.Input, args: [{ isSignal: true, alias: "applicationTheme", required: false }] }], collapseToggleLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseToggleLabel", required: false }] }], expandToggleLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandToggleLabel", required: false }] }], mobileMenuLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileMenuLabel", required: false }] }], mobileCloseLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "mobileCloseLabel", required: false }] }], navAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "navAriaLabel", required: false }] }], isCollapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "isCollapsed", required: false }] }, { type: i0.Output, args: ["isCollapsedChange"] }], mainCtaClicked: [{ type: i0.Output, args: ["mainCtaClicked"] }], navigate: [{ type: i0.Output, args: ["navigate"] }], accountMenuSelected: [{ type: i0.Output, args: ["accountMenuSelected"] }], logoClicked: [{ type: i0.Output, args: ["logoClicked"] }] } });
170
170
 
171
171
  class SideNavigationComponentModule {
172
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SideNavigationComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
173
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.19", ngImport: i0, type: SideNavigationComponentModule, imports: [A11yModule,
172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SideNavigationComponentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
173
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.23", ngImport: i0, type: SideNavigationComponentModule, imports: [A11yModule,
174
174
  CommonModule,
175
175
  UiTranslatePipe,
176
176
  ButtonComponentModule,
@@ -179,7 +179,7 @@ class SideNavigationComponentModule {
179
179
  LogoComponentModule,
180
180
  OverflowMenuComponentModule,
181
181
  SideNavigationComponent], exports: [SideNavigationComponent] }); }
182
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SideNavigationComponentModule, imports: [A11yModule,
182
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SideNavigationComponentModule, imports: [A11yModule,
183
183
  CommonModule,
184
184
  ButtonComponentModule,
185
185
  AvatarComponentModule,
@@ -188,7 +188,7 @@ class SideNavigationComponentModule {
188
188
  OverflowMenuComponentModule,
189
189
  SideNavigationComponent] }); }
190
190
  }
191
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SideNavigationComponentModule, decorators: [{
191
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SideNavigationComponentModule, decorators: [{
192
192
  type: NgModule,
193
193
  args: [{
194
194
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"testgorilla-tgo-ui-components-side-navigation.mjs","sources":["../../../components/side-navigation/side-navigation.component.ts","../../../components/side-navigation/side-navigation.component.html","../../../components/side-navigation/side-navigation.component.module.ts","../../../components/side-navigation/testgorilla-tgo-ui-components-side-navigation.ts"],"sourcesContent":["import { LiveAnnouncer, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { NgTemplateOutlet, AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnDestroy,\n OnInit,\n TemplateRef,\n computed,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take } from 'rxjs';\n\nimport { AvatarSize, AvatarComponent } from '@testgorilla/tgo-ui/components/avatar';\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 { MenuConfig, OverflowMenuComponentModule } from '@testgorilla/tgo-ui/components/overflow-menu';\n\nimport { NavigationAccount, NavigationCta, NavigationItem } from './side-navigation.model';\n\nconst OVERFLOW_MENU_CONFIG: Omit<MenuConfig, 'panelClass'> = {\n overlapTrigger: true,\n xPosition: 'before',\n yPosition: 'below',\n};\n\nexport const COLLAPSE_ANIMATION_MS = 180;\n\nconst TRANSLATION_KEY = {\n COLLAPSE: 'SIDE_NAVIGATION.COLLAPSE_LABEL',\n EXPAND: 'SIDE_NAVIGATION.EXPAND_LABEL',\n MOBILE_OPEN: 'SIDE_NAVIGATION.MOBILE_OPEN_LABEL',\n MOBILE_CLOSE: 'SIDE_NAVIGATION.MOBILE_CLOSE_LABEL',\n NAV: 'SIDE_NAVIGATION.NAV_ARIA_LABEL',\n ANNOUNCE_COLLAPSED: 'SIDE_NAVIGATION.ANNOUNCE_COLLAPSED',\n ANNOUNCE_EXPANDED: 'SIDE_NAVIGATION.ANNOUNCE_EXPANDED',\n} as const;\n\n@Component({\n selector: 'ui-side-navigation',\n templateUrl: './side-navigation.component.html',\n styleUrls: ['./side-navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [UiTranslatePipe],\n host: {\n '(keydown.escape)': 'onEscapeKey()',\n },\n imports: [\n LogoComponent,\n ButtonComponent,\n CdkTrapFocus,\n NgTemplateOutlet,\n OverflowMenuComponentModule,\n AvatarComponent,\n IconComponentModule,\n AsyncPipe,\n UiTranslatePipe,\n ],\n})\nexport class SideNavigationComponent implements OnInit, OnDestroy {\n protected readonly avatarSize = AvatarSize;\n protected readonly logoType = LogoTypeEnum;\n protected readonly drawerControlsId = 'side-navigation-drawer';\n protected readonly translationKey = TRANSLATION_KEY;\n\n private readonly breakpointObserver = inject(BreakpointObserver);\n private readonly liveAnnouncer = inject(LiveAnnouncer);\n private readonly destroyRef = inject(DestroyRef);\n private readonly uiTranslate = inject(UiTranslatePipe);\n\n activeRoute = input<string>('');\n mainCta = input<NavigationCta>();\n mainNavigation = input.required<NavigationItem[]>();\n secondaryNavigation = input<NavigationItem[]>();\n contentTemplateExtendedRef = input<TemplateRef<unknown>>();\n contentTemplateCollapsedRef = input<TemplateRef<unknown>>();\n account = input<NavigationAccount>();\n appContentTemplateRef = input<TemplateRef<unknown>>();\n applicationTheme = input<ApplicationTheme>('light');\n /** Optional override; falls back to `SIDE_NAVIGATION.COLLAPSE_LABEL` translation. */\n collapseToggleLabel = input<string>();\n /** Optional override; falls back to `SIDE_NAVIGATION.EXPAND_LABEL` translation. */\n expandToggleLabel = input<string>();\n /** Optional override; falls back to `SIDE_NAVIGATION.MOBILE_OPEN_LABEL` translation. */\n mobileMenuLabel = input<string>();\n /** Optional override; falls back to `SIDE_NAVIGATION.MOBILE_CLOSE_LABEL` translation. */\n mobileCloseLabel = input<string>();\n /** Optional override; falls back to `SIDE_NAVIGATION.NAV_ARIA_LABEL` translation. */\n navAriaLabel = input<string>();\n\n isCollapsed = model<boolean>(false);\n\n mainCtaClicked = output<void>();\n navigate = output<string>();\n accountMenuSelected = output<string>();\n logoClicked = output<void>();\n\n isExpandingOrCollapsing = signal(false);\n isMobileOrTablet = signal(false);\n\n protected readonly trapFocus = computed(() => this.isMobileOrTablet() && !this.isCollapsed());\n\n private collapseTimer: ReturnType<typeof setTimeout> | null = null;\n\n activeRoutesMap = computed(() => {\n const currentRoute = this.activeRoute();\n const allItems = [...this.mainNavigation(), ...(this.secondaryNavigation() ?? [])];\n return new Map(allItems.map(route => [route.url, currentRoute?.startsWith(route.url) ?? false]));\n });\n\n overflowMenuConfig = computed<MenuConfig>(() => ({\n ...OVERFLOW_MENU_CONFIG,\n panelClass: this.isCollapsed() ? 'collapsed-menu' : 'expanded-menu',\n }));\n\n protected readonly toggleAriaLabelOverride = computed(() =>\n this.isCollapsed() ? this.expandToggleLabel() : this.collapseToggleLabel()\n );\n\n protected readonly toggleAriaKey = computed(() =>\n this.isCollapsed() ? TRANSLATION_KEY.EXPAND : TRANSLATION_KEY.COLLAPSE\n );\n\n protected readonly mobileToggleAriaLabelOverride = computed(() =>\n this.isCollapsed() ? this.mobileMenuLabel() : this.mobileCloseLabel()\n );\n\n protected readonly mobileToggleAriaKey = computed(() =>\n this.isCollapsed() ? TRANSLATION_KEY.MOBILE_OPEN : TRANSLATION_KEY.MOBILE_CLOSE\n );\n\n ngOnInit(): void {\n this.observeViewportBreakpoint();\n }\n\n ngOnDestroy(): void {\n this.clearCollapseTimer();\n }\n\n toggleCollapsed({ announce = true }: { announce?: boolean } = {}): void {\n this.isCollapsed.set(!this.isCollapsed());\n\n if (announce) {\n this.announceCollapseState();\n }\n\n if (this.prefersReducedMotion()) {\n return;\n }\n\n this.isExpandingOrCollapsing.set(true);\n this.clearCollapseTimer();\n this.collapseTimer = setTimeout(() => {\n this.isExpandingOrCollapsing.set(false);\n this.collapseTimer = null;\n }, COLLAPSE_ANIMATION_MS);\n }\n\n onNavigateClick(id: string): void {\n this.navigate.emit(id);\n this.autoCloseDrawer();\n }\n\n onSelectMenuItem($event: string): void {\n this.accountMenuSelected.emit($event);\n this.autoCloseDrawer();\n }\n\n onEscapeKey(): void {\n this.autoCloseDrawer();\n }\n\n private autoCloseDrawer(): void {\n if (this.isMobileOrTablet() && !this.isCollapsed()) {\n this.toggleCollapsed({ announce: false });\n }\n }\n\n private observeViewportBreakpoint(): void {\n this.breakpointObserver\n .observe([`(max-width: ${ScreenBreakpoints.TABLET}px)`])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(result => {\n const wasMobileOrTablet = this.isMobileOrTablet();\n this.isMobileOrTablet.set(result.matches);\n if (result.matches && !wasMobileOrTablet) {\n this.isCollapsed.set(true);\n }\n });\n }\n\n private announceCollapseState(): void {\n const key = this.isCollapsed() ? TRANSLATION_KEY.ANNOUNCE_COLLAPSED : TRANSLATION_KEY.ANNOUNCE_EXPANDED;\n this.uiTranslate\n .transform(key)\n .pipe(take(1))\n .subscribe(message => {\n void this.liveAnnouncer.announce(message, 'polite');\n });\n }\n\n private clearCollapseTimer(): void {\n if (this.collapseTimer !== null) {\n clearTimeout(this.collapseTimer);\n this.collapseTimer = null;\n }\n }\n\n private prefersReducedMotion(): boolean {\n return typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n}\n","<div class=\"mobile-navbar\">\n <ui-logo [allowResizing]=\"true\" [width]=\"150\" [type]=\"logoType.DEFAULT\" (click)=\"logoClicked.emit()\"></ui-logo>\n\n <ui-button\n data-testid=\"navigation-collapse-mobile\"\n data-test-role=\"navigation-collapse\"\n [applicationTheme]=\"applicationTheme()\"\n [variant]=\"'menuTrigger'\"\n [iconName]=\"isCollapsed() ? 'Menu-burger' : 'Close'\"\n [ariaLabel]=\"mobileToggleAriaLabelOverride() ?? (mobileToggleAriaKey() | uiTranslate | async) ?? ''\"\n [ariaExpanded]=\"!isCollapsed()\"\n [ariaControls]=\"drawerControlsId\"\n [tooltip]=\"mobileToggleAriaLabelOverride() ?? (mobileToggleAriaKey() | uiTranslate | async) ?? ''\"\n tooltipPosition=\"left\"\n (buttonClickEvent)=\"toggleCollapsed()\"\n class=\"navigation-collapse-button\"\n ></ui-button>\n</div>\n\n<div class=\"main-container\">\n <nav\n [id]=\"drawerControlsId\"\n role=\"navigation\"\n [attr.aria-label]=\"navAriaLabel() ?? (translationKey.NAV | uiTranslate | async)\"\n class=\"side-navigation-container\"\n [class.collapsed]=\"isCollapsed()\"\n [class.expanded]=\"!isCollapsed()\"\n [cdkTrapFocus]=\"trapFocus()\"\n [cdkTrapFocusAutoCapture]=\"trapFocus()\"\n >\n <div class=\"zone-logo-row\">\n <div class=\"header\" [class.collapsed]=\"isCollapsed()\">\n <ui-logo\n class=\"logo-brandmark\"\n [allowResizing]=\"true\"\n [width]=\"19\"\n [type]=\"logoType.PRIMARY_BRANDMARK_PINK\"\n (click)=\"logoClicked.emit()\"\n ></ui-logo>\n <ui-logo\n class=\"logo-lockup\"\n [allowResizing]=\"true\"\n [width]=\"136\"\n [type]=\"logoType.DEFAULT\"\n (click)=\"logoClicked.emit()\"\n ></ui-logo>\n\n <ui-button\n data-testid=\"navigation-collapse\"\n data-test-role=\"navigation-collapse\"\n [applicationTheme]=\"applicationTheme()\"\n [variant]=\"'menuTrigger'\"\n [iconName]=\"isCollapsed() ? 'Sidebar-open-in-line' : 'Sidebar-close-in-line'\"\n [ariaLabel]=\"toggleAriaLabelOverride() ?? (toggleAriaKey() | uiTranslate | async) ?? ''\"\n [ariaPressed]=\"isCollapsed()\"\n [tooltip]=\"toggleAriaLabelOverride() ?? (toggleAriaKey() | uiTranslate | async) ?? ''\"\n tooltipPosition=\"below\"\n (buttonClickEvent)=\"toggleCollapsed()\"\n [class.collapsed]=\"isCollapsed()\"\n class=\"navigation-collapse-button\"\n ></ui-button>\n </div>\n </div>\n\n <div class=\"zone-primary-nav\">\n @if (mainCta(); as cta) {\n <div class=\"main-cta\">\n <ui-button\n data-testid=\"main-cta\"\n data-test-role=\"main-cta\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [variant]=\"cta.variant\"\n iconPosition=\"left\"\n [iconName]=\"cta.icon\"\n [label]=\"isCollapsed() && !isExpandingOrCollapsing() ? '' : cta.label\"\n [ariaLabel]=\"cta.label\"\n [tooltip]=\"isCollapsed() ? cta.label : ''\"\n tooltipPosition=\"right\"\n (buttonClickEvent)=\"mainCtaClicked.emit()\"\n ></ui-button>\n </div>\n }\n\n <ul class=\"navigation-list\">\n @for (item of mainNavigation(); track item.id) {\n <li>\n <ng-container [ngTemplateOutlet]=\"navigationItem\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </li>\n }\n </ul>\n </div>\n\n <div class=\"zone-utility-nav\">\n @if (secondaryNavigation(); as secondary) {\n <ul class=\"navigation-list\">\n @for (item of secondary; track item.id) {\n <li>\n <ng-container [ngTemplateOutlet]=\"navigationItem\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </li>\n }\n </ul>\n }\n </div>\n\n @if (account() || contentTemplateExtendedRef() || contentTemplateCollapsedRef()) {\n <div class=\"zone-account\">\n @if (contentTemplateExtendedRef(); as extendedRef) {\n @if (!isCollapsed() && !isExpandingOrCollapsing()) {\n <ng-container [ngTemplateOutlet]=\"extendedRef\"></ng-container>\n }\n }\n\n @if (contentTemplateCollapsedRef(); as collapsedRef) {\n @if (isCollapsed() || isExpandingOrCollapsing()) {\n <ng-container [ngTemplateOutlet]=\"collapsedRef\"></ng-container>\n }\n }\n\n @if (account(); as accountValue) {\n <ui-overflow-menu\n [applicationTheme]=\"applicationTheme()\"\n [contentTemplateRef]=\"userInfo\"\n [buttons]=\"accountValue.menu\"\n [isDynamicMenu]=\"true\"\n [class.collapsed]=\"isCollapsed() && !isExpandingOrCollapsing()\"\n (selectItem)=\"onSelectMenuItem($event)\"\n [menuConfig]=\"overflowMenuConfig()\"\n ></ui-overflow-menu>\n }\n </div>\n }\n </nav>\n <div class=\"app-container\" [class.collapsed]=\"isCollapsed()\" [class.expanded]=\"!isCollapsed()\">\n @if (appContentTemplateRef(); as appRef) {\n <ng-container [ngTemplateOutlet]=\"appRef\"></ng-container>\n }\n @if (isMobileOrTablet() && !isCollapsed()) {\n <button\n type=\"button\"\n class=\"backdrop\"\n [attr.aria-label]=\"mobileCloseLabel() ?? (translationKey.MOBILE_CLOSE | uiTranslate | async) ?? ''\"\n (click)=\"toggleCollapsed()\"\n ></button>\n }\n </div>\n</div>\n\n<ng-template #navigationItem let-item=\"item\">\n @if (item) {\n <div class=\"menu-item\" [attr.aria-current]=\"activeRoutesMap().get(item.url) ? 'page' : null\">\n <ui-button\n [attr.data-testid]=\"item.id\"\n data-test-role=\"menu-item\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"item.icon\"\n [label]=\"isCollapsed() && !isExpandingOrCollapsing() ? '' : item.text\"\n (buttonClickEvent)=\"onNavigateClick(item.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"item.text\"\n [class.active]=\"activeRoutesMap().get(item.url)\"\n [buttonBadgeConfig]=\"isCollapsed() && !isExpandingOrCollapsing() ? undefined : item?.badgeOptions\"\n [tooltip]=\"isCollapsed() ? item.text : undefined\"\n tooltipPosition=\"right\"\n [iconFilled]=\"!!activeRoutesMap().get(item.url)\"\n ></ui-button>\n </div>\n }\n</ng-template>\n\n<ng-template #userInfo>\n @if (account(); as accountValue) {\n <div class=\"user-info\">\n <ui-avatar [size]=\"isCollapsed() ? avatarSize.MEDIUM : avatarSize.SMALL\" [name]=\"accountValue.name\"></ui-avatar>\n @if (!isCollapsed()) {\n <span class=\"user-name\">{{ accountValue.name }}</span>\n <ui-icon class=\"user-chevron\" name=\"Arrow-chevron-right-in-line\" size=\"24\" aria-hidden=\"true\"></ui-icon>\n }\n </div>\n }\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AvatarComponentModule } from '@testgorilla/tgo-ui/components/avatar';\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 { OverflowMenuComponentModule } from '@testgorilla/tgo-ui/components/overflow-menu';\n\nimport { SideNavigationComponent } from './side-navigation.component';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n UiTranslatePipe,\n ButtonComponentModule,\n AvatarComponentModule,\n IconComponentModule,\n LogoComponentModule,\n OverflowMenuComponentModule,\n SideNavigationComponent,\n ],\n exports: [SideNavigationComponent],\n})\nexport class SideNavigationComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testgorilla-tgo-ui-components-side-navigation.mjs","sources":["../../../components/side-navigation/side-navigation.component.ts","../../../components/side-navigation/side-navigation.component.html","../../../components/side-navigation/side-navigation.component.module.ts","../../../components/side-navigation/testgorilla-tgo-ui-components-side-navigation.ts"],"sourcesContent":["import { LiveAnnouncer, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { NgTemplateOutlet, AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n OnDestroy,\n OnInit,\n TemplateRef,\n computed,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { take } from 'rxjs';\n\nimport { AvatarSize, AvatarComponent } from '@testgorilla/tgo-ui/components/avatar';\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 { MenuConfig, OverflowMenuComponentModule } from '@testgorilla/tgo-ui/components/overflow-menu';\n\nimport { NavigationAccount, NavigationCta, NavigationItem } from './side-navigation.model';\n\nconst OVERFLOW_MENU_CONFIG: Omit<MenuConfig, 'panelClass'> = {\n overlapTrigger: true,\n xPosition: 'before',\n yPosition: 'below',\n};\n\nexport const COLLAPSE_ANIMATION_MS = 180;\n\nconst TRANSLATION_KEY = {\n COLLAPSE: 'SIDE_NAVIGATION.COLLAPSE_LABEL',\n EXPAND: 'SIDE_NAVIGATION.EXPAND_LABEL',\n MOBILE_OPEN: 'SIDE_NAVIGATION.MOBILE_OPEN_LABEL',\n MOBILE_CLOSE: 'SIDE_NAVIGATION.MOBILE_CLOSE_LABEL',\n NAV: 'SIDE_NAVIGATION.NAV_ARIA_LABEL',\n ANNOUNCE_COLLAPSED: 'SIDE_NAVIGATION.ANNOUNCE_COLLAPSED',\n ANNOUNCE_EXPANDED: 'SIDE_NAVIGATION.ANNOUNCE_EXPANDED',\n} as const;\n\n@Component({\n selector: 'ui-side-navigation',\n templateUrl: './side-navigation.component.html',\n styleUrls: ['./side-navigation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [UiTranslatePipe],\n host: {\n '(keydown.escape)': 'onEscapeKey()',\n },\n imports: [\n LogoComponent,\n ButtonComponent,\n CdkTrapFocus,\n NgTemplateOutlet,\n OverflowMenuComponentModule,\n AvatarComponent,\n IconComponentModule,\n AsyncPipe,\n UiTranslatePipe,\n ],\n})\nexport class SideNavigationComponent implements OnInit, OnDestroy {\n protected readonly avatarSize = AvatarSize;\n protected readonly logoType = LogoTypeEnum;\n protected readonly drawerControlsId = 'side-navigation-drawer';\n protected readonly translationKey = TRANSLATION_KEY;\n\n private readonly breakpointObserver = inject(BreakpointObserver);\n private readonly liveAnnouncer = inject(LiveAnnouncer);\n private readonly destroyRef = inject(DestroyRef);\n private readonly uiTranslate = inject(UiTranslatePipe);\n\n activeRoute = input<string>('');\n mainCta = input<NavigationCta>();\n mainNavigation = input.required<NavigationItem[]>();\n secondaryNavigation = input<NavigationItem[]>();\n contentTemplateExtendedRef = input<TemplateRef<unknown>>();\n contentTemplateCollapsedRef = input<TemplateRef<unknown>>();\n account = input<NavigationAccount>();\n appContentTemplateRef = input<TemplateRef<unknown>>();\n applicationTheme = input<ApplicationTheme>('light');\n /** Optional override; falls back to `SIDE_NAVIGATION.COLLAPSE_LABEL` translation. */\n collapseToggleLabel = input<string>();\n /** Optional override; falls back to `SIDE_NAVIGATION.EXPAND_LABEL` translation. */\n expandToggleLabel = input<string>();\n /** Optional override; falls back to `SIDE_NAVIGATION.MOBILE_OPEN_LABEL` translation. */\n mobileMenuLabel = input<string>();\n /** Optional override; falls back to `SIDE_NAVIGATION.MOBILE_CLOSE_LABEL` translation. */\n mobileCloseLabel = input<string>();\n /** Optional override; falls back to `SIDE_NAVIGATION.NAV_ARIA_LABEL` translation. */\n navAriaLabel = input<string>();\n\n isCollapsed = model<boolean>(false);\n\n mainCtaClicked = output<void>();\n navigate = output<string>();\n accountMenuSelected = output<string>();\n logoClicked = output<void>();\n\n isExpandingOrCollapsing = signal(false);\n isMobileOrTablet = signal(false);\n\n protected readonly trapFocus = computed(() => this.isMobileOrTablet() && !this.isCollapsed());\n\n private collapseTimer: ReturnType<typeof setTimeout> | null = null;\n\n activeRoutesMap = computed(() => {\n const currentRoute = this.activeRoute();\n const allItems = [...this.mainNavigation(), ...(this.secondaryNavigation() ?? [])];\n return new Map(allItems.map(route => [route.url, currentRoute?.startsWith(route.url) ?? false]));\n });\n\n overflowMenuConfig = computed<MenuConfig>(() => ({\n ...OVERFLOW_MENU_CONFIG,\n panelClass: this.isCollapsed() ? 'collapsed-menu' : 'expanded-menu',\n }));\n\n protected readonly toggleAriaLabelOverride = computed(() =>\n this.isCollapsed() ? this.expandToggleLabel() : this.collapseToggleLabel()\n );\n\n protected readonly toggleAriaKey = computed(() =>\n this.isCollapsed() ? TRANSLATION_KEY.EXPAND : TRANSLATION_KEY.COLLAPSE\n );\n\n protected readonly mobileToggleAriaLabelOverride = computed(() =>\n this.isCollapsed() ? this.mobileMenuLabel() : this.mobileCloseLabel()\n );\n\n protected readonly mobileToggleAriaKey = computed(() =>\n this.isCollapsed() ? TRANSLATION_KEY.MOBILE_OPEN : TRANSLATION_KEY.MOBILE_CLOSE\n );\n\n ngOnInit(): void {\n this.observeViewportBreakpoint();\n }\n\n ngOnDestroy(): void {\n this.clearCollapseTimer();\n }\n\n toggleCollapsed({ announce = true }: { announce?: boolean } = {}): void {\n this.isCollapsed.set(!this.isCollapsed());\n\n if (announce) {\n this.announceCollapseState();\n }\n\n if (this.prefersReducedMotion()) {\n return;\n }\n\n this.isExpandingOrCollapsing.set(true);\n this.clearCollapseTimer();\n this.collapseTimer = setTimeout(() => {\n this.isExpandingOrCollapsing.set(false);\n this.collapseTimer = null;\n }, COLLAPSE_ANIMATION_MS);\n }\n\n onNavigateClick(id: string): void {\n this.navigate.emit(id);\n this.autoCloseDrawer();\n }\n\n onSelectMenuItem($event: string): void {\n this.accountMenuSelected.emit($event);\n this.autoCloseDrawer();\n }\n\n onEscapeKey(): void {\n this.autoCloseDrawer();\n }\n\n private autoCloseDrawer(): void {\n if (this.isMobileOrTablet() && !this.isCollapsed()) {\n this.toggleCollapsed({ announce: false });\n }\n }\n\n private observeViewportBreakpoint(): void {\n this.breakpointObserver\n .observe([`(max-width: ${ScreenBreakpoints.TABLET}px)`])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(result => {\n const wasMobileOrTablet = this.isMobileOrTablet();\n this.isMobileOrTablet.set(result.matches);\n if (result.matches && !wasMobileOrTablet) {\n this.isCollapsed.set(true);\n }\n });\n }\n\n private announceCollapseState(): void {\n const key = this.isCollapsed() ? TRANSLATION_KEY.ANNOUNCE_COLLAPSED : TRANSLATION_KEY.ANNOUNCE_EXPANDED;\n this.uiTranslate\n .transform(key)\n .pipe(take(1))\n .subscribe(message => {\n void this.liveAnnouncer.announce(message, 'polite');\n });\n }\n\n private clearCollapseTimer(): void {\n if (this.collapseTimer !== null) {\n clearTimeout(this.collapseTimer);\n this.collapseTimer = null;\n }\n }\n\n private prefersReducedMotion(): boolean {\n return typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n}\n","<div class=\"mobile-navbar\">\n <ui-logo [allowResizing]=\"true\" [width]=\"150\" [type]=\"logoType.DEFAULT\" (click)=\"logoClicked.emit()\"></ui-logo>\n\n <ui-button\n data-testid=\"navigation-collapse-mobile\"\n data-test-role=\"navigation-collapse\"\n [applicationTheme]=\"applicationTheme()\"\n [variant]=\"'menuTrigger'\"\n [iconName]=\"isCollapsed() ? 'Menu-burger' : 'Close'\"\n [ariaLabel]=\"mobileToggleAriaLabelOverride() ?? (mobileToggleAriaKey() | uiTranslate | async) ?? ''\"\n [ariaExpanded]=\"!isCollapsed()\"\n [ariaControls]=\"drawerControlsId\"\n [tooltip]=\"mobileToggleAriaLabelOverride() ?? (mobileToggleAriaKey() | uiTranslate | async) ?? ''\"\n tooltipPosition=\"left\"\n (buttonClickEvent)=\"toggleCollapsed()\"\n class=\"navigation-collapse-button\"\n ></ui-button>\n</div>\n\n<div class=\"main-container\">\n <nav\n [id]=\"drawerControlsId\"\n role=\"navigation\"\n [attr.aria-label]=\"navAriaLabel() ?? (translationKey.NAV | uiTranslate | async)\"\n class=\"side-navigation-container\"\n [class.collapsed]=\"isCollapsed()\"\n [class.expanded]=\"!isCollapsed()\"\n [cdkTrapFocus]=\"trapFocus()\"\n [cdkTrapFocusAutoCapture]=\"trapFocus()\"\n >\n <div class=\"zone-logo-row\">\n <div class=\"header\" [class.collapsed]=\"isCollapsed()\">\n <ui-logo\n class=\"logo-brandmark\"\n [allowResizing]=\"true\"\n [width]=\"19\"\n [type]=\"logoType.PRIMARY_BRANDMARK_PINK\"\n (click)=\"logoClicked.emit()\"\n ></ui-logo>\n <ui-logo\n class=\"logo-lockup\"\n [allowResizing]=\"true\"\n [width]=\"136\"\n [type]=\"logoType.DEFAULT\"\n (click)=\"logoClicked.emit()\"\n ></ui-logo>\n\n <ui-button\n data-testid=\"navigation-collapse\"\n data-test-role=\"navigation-collapse\"\n [applicationTheme]=\"applicationTheme()\"\n [variant]=\"'menuTrigger'\"\n [iconName]=\"isCollapsed() ? 'Sidebar-open-in-line' : 'Sidebar-close-in-line'\"\n [ariaLabel]=\"toggleAriaLabelOverride() ?? (toggleAriaKey() | uiTranslate | async) ?? ''\"\n [ariaPressed]=\"isCollapsed()\"\n [tooltip]=\"toggleAriaLabelOverride() ?? (toggleAriaKey() | uiTranslate | async) ?? ''\"\n tooltipPosition=\"below\"\n (buttonClickEvent)=\"toggleCollapsed()\"\n [class.collapsed]=\"isCollapsed()\"\n class=\"navigation-collapse-button\"\n ></ui-button>\n </div>\n </div>\n\n <div class=\"zone-primary-nav\">\n @if (mainCta(); as cta) {\n <div class=\"main-cta\">\n <ui-button\n data-testid=\"main-cta\"\n data-test-role=\"main-cta\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [variant]=\"cta.variant\"\n iconPosition=\"left\"\n [iconName]=\"cta.icon\"\n [label]=\"isCollapsed() && !isExpandingOrCollapsing() ? '' : cta.label\"\n [ariaLabel]=\"cta.label\"\n [tooltip]=\"isCollapsed() ? cta.label : ''\"\n tooltipPosition=\"right\"\n (buttonClickEvent)=\"mainCtaClicked.emit()\"\n ></ui-button>\n </div>\n }\n\n <ul class=\"navigation-list\">\n @for (item of mainNavigation(); track item.id) {\n <li>\n <ng-container [ngTemplateOutlet]=\"navigationItem\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </li>\n }\n </ul>\n </div>\n\n <div class=\"zone-utility-nav\">\n @if (secondaryNavigation(); as secondary) {\n <ul class=\"navigation-list\">\n @for (item of secondary; track item.id) {\n <li>\n <ng-container [ngTemplateOutlet]=\"navigationItem\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\n </li>\n }\n </ul>\n }\n </div>\n\n @if (account() || contentTemplateExtendedRef() || contentTemplateCollapsedRef()) {\n <div class=\"zone-account\">\n @if (contentTemplateExtendedRef(); as extendedRef) {\n @if (!isCollapsed() && !isExpandingOrCollapsing()) {\n <ng-container [ngTemplateOutlet]=\"extendedRef\"></ng-container>\n }\n }\n\n @if (contentTemplateCollapsedRef(); as collapsedRef) {\n @if (isCollapsed() || isExpandingOrCollapsing()) {\n <ng-container [ngTemplateOutlet]=\"collapsedRef\"></ng-container>\n }\n }\n\n @if (account(); as accountValue) {\n <ui-overflow-menu\n [applicationTheme]=\"applicationTheme()\"\n [contentTemplateRef]=\"userInfo\"\n [buttons]=\"accountValue.menu\"\n [isDynamicMenu]=\"true\"\n [class.collapsed]=\"isCollapsed() && !isExpandingOrCollapsing()\"\n (selectItem)=\"onSelectMenuItem($event)\"\n [menuConfig]=\"overflowMenuConfig()\"\n ></ui-overflow-menu>\n }\n </div>\n }\n </nav>\n <div class=\"app-container\" [class.collapsed]=\"isCollapsed()\" [class.expanded]=\"!isCollapsed()\">\n @if (appContentTemplateRef(); as appRef) {\n <ng-container [ngTemplateOutlet]=\"appRef\"></ng-container>\n }\n @if (isMobileOrTablet() && !isCollapsed()) {\n <button\n type=\"button\"\n class=\"backdrop\"\n [attr.aria-label]=\"mobileCloseLabel() ?? (translationKey.MOBILE_CLOSE | uiTranslate | async) ?? ''\"\n (click)=\"toggleCollapsed()\"\n ></button>\n }\n </div>\n</div>\n\n<ng-template #navigationItem let-item=\"item\">\n @if (item) {\n <div class=\"menu-item\" [attr.aria-current]=\"activeRoutesMap().get(item.url) ? 'page' : null\">\n <ui-button\n [attr.data-testid]=\"item.id\"\n data-test-role=\"menu-item\"\n [applicationTheme]=\"applicationTheme()\"\n [fullWidth]=\"true\"\n [disabledScaleOnClick]=\"true\"\n [variant]=\"'menuCell'\"\n iconPosition=\"left\"\n [iconName]=\"item.icon\"\n [label]=\"isCollapsed() && !isExpandingOrCollapsing() ? '' : item.text\"\n (buttonClickEvent)=\"onNavigateClick(item.id)\"\n (keydown.Tab)=\"$event.stopPropagation()\"\n (keydown.shift.tab)=\"$event.stopPropagation()\"\n [ariaLabel]=\"item.text\"\n [class.active]=\"activeRoutesMap().get(item.url)\"\n [buttonBadgeConfig]=\"isCollapsed() && !isExpandingOrCollapsing() ? undefined : item?.badgeOptions\"\n [tooltip]=\"isCollapsed() ? item.text : undefined\"\n tooltipPosition=\"right\"\n [iconFilled]=\"!!activeRoutesMap().get(item.url)\"\n ></ui-button>\n </div>\n }\n</ng-template>\n\n<ng-template #userInfo>\n @if (account(); as accountValue) {\n <div class=\"user-info\">\n <ui-avatar [size]=\"isCollapsed() ? avatarSize.MEDIUM : avatarSize.SMALL\" [name]=\"accountValue.name\"></ui-avatar>\n @if (!isCollapsed()) {\n <span class=\"user-name\">{{ accountValue.name }}</span>\n <ui-icon class=\"user-chevron\" name=\"Arrow-chevron-right-in-line\" size=\"24\" aria-hidden=\"true\"></ui-icon>\n }\n </div>\n }\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AvatarComponentModule } from '@testgorilla/tgo-ui/components/avatar';\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 { OverflowMenuComponentModule } from '@testgorilla/tgo-ui/components/overflow-menu';\n\nimport { SideNavigationComponent } from './side-navigation.component';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n UiTranslatePipe,\n ButtonComponentModule,\n AvatarComponentModule,\n IconComponentModule,\n LogoComponentModule,\n OverflowMenuComponentModule,\n SideNavigationComponent,\n ],\n exports: [SideNavigationComponent],\n})\nexport class SideNavigationComponentModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { AsyncPipe, NgClass } from '@angular/common';
1
+ import { NgTemplateOutlet, AsyncPipe, NgClass } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, inject, EnvironmentInjector, ApplicationRef, TemplateRef, Injector, createComponent, Injectable, signal, viewChild, ViewContainerRef, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { InjectionToken, inject, EnvironmentInjector, ApplicationRef, TemplateRef, Injector, createComponent, Injectable, signal, viewChild, ViewContainerRef, computed, ChangeDetectionStrategy, Component, Directive, booleanAttribute, input, output, contentChild, DestroyRef } from '@angular/core';
4
4
  import * as i1 from '@testgorilla/tgo-ui/components/button';
5
5
  import { ButtonComponentModule } from '@testgorilla/tgo-ui/components/button';
6
6
  import { LanguageService, UiTranslatePipe } from '@testgorilla/tgo-ui/components/core';
@@ -172,10 +172,10 @@ class SidePanelService {
172
172
  this.embeddedViewRef = viewContainerRef().createEmbeddedView(template);
173
173
  }
174
174
  }
175
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SidePanelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
176
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SidePanelService, providedIn: 'root' }); }
175
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SidePanelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
176
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SidePanelService, providedIn: 'root' }); }
177
177
  }
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SidePanelService, decorators: [{
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SidePanelService, decorators: [{
179
179
  type: Injectable,
180
180
  args: [{
181
181
  providedIn: 'root',
@@ -184,6 +184,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImpo
184
184
 
185
185
  class SidePanelComponent {
186
186
  constructor() {
187
+ this.sidePanelService = inject(SidePanelService);
188
+ this.sidePanelConfig = inject(SidePanelConfig);
187
189
  this.sidePanelPosition = signal('right', ...(ngDevMode ? [{ debugName: "sidePanelPosition" }] : /* istanbul ignore next */ []));
188
190
  this.sidePanelContainer = viewChild.required('sidePanelContainer', { read: ViewContainerRef });
189
191
  this.sidePanel = viewChild.required('sidePanel');
@@ -194,6 +196,15 @@ class SidePanelComponent {
194
196
  this.isSmall = computed(() => this.size() === 'small', ...(ngDevMode ? [{ debugName: "isSmall" }] : /* istanbul ignore next */ []));
195
197
  this.isLarge = computed(() => this.size() === 'large', ...(ngDevMode ? [{ debugName: "isLarge" }] : /* istanbul ignore next */ []));
196
198
  this.isXLarge = computed(() => this.size() === 'x-large', ...(ngDevMode ? [{ debugName: "isXLarge" }] : /* istanbul ignore next */ []));
199
+ this.activeView = signal(null, ...(ngDevMode ? [{ debugName: "activeView" }] : /* istanbul ignore next */ []));
200
+ // The active view owns the header and the footer while it is registered, falling back to the config.
201
+ this.headerTitle = computed(() => this.activeView()?.title() ?? this.sidePanelConfig.title, ...(ngDevMode ? [{ debugName: "headerTitle" }] : /* istanbul ignore next */ []));
202
+ this.showBackButton = computed(() => this.activeView()?.showBackButton() ?? this.sidePanelConfig.showBackButton, ...(ngDevMode ? [{ debugName: "showBackButton" }] : /* istanbul ignore next */ []));
203
+ this.footerTemplate = computed(() => this.activeView()?.footerTemplate() ?? null, ...(ngDevMode ? [{ debugName: "footerTemplate" }] : /* istanbul ignore next */ []));
204
+ /** A view owns the back button only when it asked for one; otherwise the config did. */
205
+ this.viewOwnsBackButton = computed(() => this.activeView()?.showBackButton() !== undefined, ...(ngDevMode ? [{ debugName: "viewOwnsBackButton" }] : /* istanbul ignore next */ []));
206
+ this.footerDivider = computed(() => this.activeView()?.footerDivider() ?? false, ...(ngDevMode ? [{ debugName: "footerDivider" }] : /* istanbul ignore next */ []));
207
+ this.fillHeight = computed(() => this.activeView()?.fillHeight() ?? false, ...(ngDevMode ? [{ debugName: "fillHeight" }] : /* istanbul ignore next */ []));
197
208
  this.animation = computed(() => {
198
209
  if (this.isOpen()) {
199
210
  return SidePanelAnimationState.Open;
@@ -202,8 +213,6 @@ class SidePanelComponent {
202
213
  ? SidePanelAnimationState.ClosedLeft
203
214
  : SidePanelAnimationState.ClosedRight;
204
215
  }, ...(ngDevMode ? [{ debugName: "animation" }] : /* istanbul ignore next */ []));
205
- this.sidePanelService = inject(SidePanelService);
206
- this.sidePanelConfig = inject(SidePanelConfig);
207
216
  // The config is injected once per panel and never mutated, so plain readonly fields suffice.
208
217
  this.closeButtonTestId = this.sidePanelConfig.testId ? `${this.sidePanelConfig.testId}-close` : null;
209
218
  this.backButtonTestId = this.sidePanelConfig.testId ? `${this.sidePanelConfig.testId}-back` : null;
@@ -211,6 +220,28 @@ class SidePanelComponent {
211
220
  this.sidePanelPosition.set(position);
212
221
  this.size.set(size);
213
222
  }
223
+ /** The last view to register wins, so a control-flow swap in either order ends up correct. */
224
+ registerView(view) {
225
+ this.activeView.set(view);
226
+ }
227
+ /** Guarded by identity so a view destroyed after its successor was created cannot unseat it. */
228
+ unregisterView(view) {
229
+ if (this.activeView() === view) {
230
+ this.activeView.set(null);
231
+ }
232
+ }
233
+ /**
234
+ * The action follows whoever asked for the button, so that a consumer who leaves the flag in the
235
+ * config and adopts a view for its footer gets the old close behaviour rather than a dead button.
236
+ */
237
+ onBack() {
238
+ const view = this.activeView();
239
+ if (view && this.viewOwnsBackButton()) {
240
+ view.back.emit();
241
+ return;
242
+ }
243
+ this.close();
244
+ }
214
245
  open() {
215
246
  setTimeout(() => {
216
247
  this.isOpen.set(true);
@@ -222,17 +253,77 @@ class SidePanelComponent {
222
253
  this.sidePanelService.destroyComponent(result);
223
254
  }, sidePanelAnimationDuration);
224
255
  }
225
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SidePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
226
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: SidePanelComponent, isStandalone: true, selector: "ui-side-panel", viewQueries: [{ propertyName: "sidePanelContainer", first: true, predicate: ["sidePanelContainer"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "sidePanel", first: true, predicate: ["sidePanel"], descendants: true, isSignal: true }, { propertyName: "backdrop", first: true, predicate: ["sidePanelBackdrop"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"side-panel-backdrop\"\n #sidePanelBackdrop\n tabindex=\"0\"\n (click)=\"close()\"\n (keydown.enter)=\"close()\"\n [@fadeInOut]=\"isOpen() ? 'open' : 'closed'\"\n></div>\n<div\n class=\"side-panel\"\n [class]=\"sidePanelConfig.panelClass\"\n [class.side-panel-small]=\"isSmall()\"\n [class.side-panel-large]=\"isLarge()\"\n [class.side-panel-x-large]=\"isXLarge()\"\n #sidePanel\n [@slideInOut]=\"animation()\"\n [attr.data-testid]=\"sidePanelConfig.testId ?? null\"\n>\n @if (sidePanelConfig.showHeader) {\n <div class=\"side-panel-header\">\n <div class=\"side-panel-title-container\">\n @if (sidePanelConfig.showBackButton) {\n <ui-button\n class=\"side-panel-action\"\n [variant]=\"'icon-button'\"\n [iconName]=\"'Arrow-chevron-left-filled'\"\n (click)=\"close()\"\n [tooltip]=\"('COMMON.BACK' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.BACK' | uiTranslate | async)!\"\n [testId]=\"backButtonTestId\"\n size=\"medium\"\n ></ui-button>\n }\n <span class=\"side-panel-title h3 bold\">{{ sidePanelConfig.title }}</span>\n </div>\n @if (sidePanelConfig.showCloseButton) {\n <ui-button\n class=\"side-panel-action side-panel-action-close\"\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [tooltip]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n [testId]=\"closeButtonTestId\"\n (click)=\"close()\"\n size=\"medium\"\n ></ui-button>\n }\n </div>\n }\n\n <div class=\"side-panel-content\">\n <ng-container #sidePanelContainer></ng-container>\n </div>\n</div>\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}.side-panel{position:fixed;top:0;bottom:0;background-color:#fff;padding:32px;box-shadow:2px 24px 48px 8px #00000014;z-index:999999;display:flex;flex-direction:column;will-change:transform;transform:translate(100%)}.side-panel.side-panel-small{width:600px}@media(max-width:600px){.side-panel.side-panel-small{width:100%}}.side-panel.side-panel-large{width:956px}@media(max-width:600px){.side-panel.side-panel-large{width:100%}}@media(max-width:960px){.side-panel.side-panel-large{width:100%}}.side-panel.side-panel-x-large{width:1200px}@media(max-width:1280px){.side-panel.side-panel-x-large{width:100%}}.side-panel-action-close{margin-left:8px}.side-panel-title-container{display:flex;gap:8px}.side-panel.left{left:0}.side-panel.right{right:0}.side-panel-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;z-index:899;opacity:0}.side-panel-title{display:block;display:-webkit-box;max-height:3em;line-height:1.6em;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.side-panel-content{overflow:auto;flex:1}.side-panel-header{position:sticky;min-height:30px;display:flex;justify-content:space-between;margin-bottom:32px}\n"], dependencies: [{ kind: "ngmodule", type: TooltipComponentModule }, { kind: "ngmodule", type: ButtonComponentModule }, { kind: "component", type: i1.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" }], animations: [sidePanelAnimation, backdropAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
256
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SidePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
257
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.23", type: SidePanelComponent, isStandalone: true, selector: "ui-side-panel", viewQueries: [{ propertyName: "sidePanelContainer", first: true, predicate: ["sidePanelContainer"], descendants: true, read: ViewContainerRef, isSignal: true }, { propertyName: "sidePanel", first: true, predicate: ["sidePanel"], descendants: true, isSignal: true }, { propertyName: "backdrop", first: true, predicate: ["sidePanelBackdrop"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"side-panel-backdrop\"\n #sidePanelBackdrop\n tabindex=\"0\"\n (click)=\"close()\"\n (keydown.enter)=\"close()\"\n [@fadeInOut]=\"isOpen() ? 'open' : 'closed'\"\n></div>\n<div\n class=\"side-panel\"\n [class]=\"sidePanelConfig.panelClass\"\n [class.side-panel-small]=\"isSmall()\"\n [class.side-panel-large]=\"isLarge()\"\n [class.side-panel-x-large]=\"isXLarge()\"\n #sidePanel\n [@slideInOut]=\"animation()\"\n [attr.data-testid]=\"sidePanelConfig.testId ?? null\"\n>\n @if (sidePanelConfig.showHeader) {\n <div class=\"side-panel-header\">\n <div class=\"side-panel-title-container\">\n @if (showBackButton()) {\n <ui-button\n class=\"side-panel-action\"\n [variant]=\"'icon-button'\"\n [iconName]=\"'Arrow-chevron-left-filled'\"\n (click)=\"onBack()\"\n [tooltip]=\"('COMMON.BACK' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.BACK' | uiTranslate | async)!\"\n [testId]=\"backButtonTestId\"\n size=\"medium\"\n ></ui-button>\n }\n <span class=\"side-panel-title h3 bold\">{{ headerTitle() }}</span>\n </div>\n @if (sidePanelConfig.showCloseButton) {\n <ui-button\n class=\"side-panel-action side-panel-action-close\"\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [tooltip]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n [testId]=\"closeButtonTestId\"\n (click)=\"close()\"\n size=\"medium\"\n ></ui-button>\n }\n </div>\n }\n\n <div class=\"side-panel-content\" [class.side-panel-content-fill]=\"fillHeight()\">\n <ng-container #sidePanelContainer></ng-container>\n </div>\n\n @if (footerTemplate(); as footer) {\n <div class=\"side-panel-footer\" [class.side-panel-footer-divided]=\"footerDivider()\">\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\n </div>\n }\n</div>\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}.side-panel{position:fixed;top:0;height:100vh;height:100dvh;background-color:#fff;padding:32px;box-shadow:2px 24px 48px 8px #00000014;z-index:999999;display:flex;flex-direction:column;will-change:transform;transform:translate(100%)}.side-panel.side-panel-small{width:600px}@media(max-width:600px){.side-panel.side-panel-small{width:100%}}.side-panel.side-panel-large{width:956px}@media(max-width:600px){.side-panel.side-panel-large{width:100%}}@media(max-width:960px){.side-panel.side-panel-large{width:100%}}.side-panel.side-panel-x-large{width:1200px}@media(max-width:1280px){.side-panel.side-panel-x-large{width:100%}}.side-panel-action-close{margin-left:8px}.side-panel-title-container{display:flex;gap:8px}.side-panel.left{left:0}.side-panel.right{right:0}.side-panel-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;z-index:899;opacity:0}.side-panel-title{display:block;display:-webkit-box;max-height:3em;line-height:1.6em;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.side-panel-content{overflow:auto;min-height:0;flex:1;padding-right:16px;margin-right:-16px}.side-panel-content-fill{position:relative;overflow:hidden;padding-right:0;margin-right:0}.side-panel-footer{display:flex;align-items:center;justify-content:flex-end;column-gap:16px;flex:0 0 auto;min-height:48px;margin:0 -32px -32px;padding:16px 32px;background-color:#fff}.side-panel-footer-divided{border-top:1px solid #e9e9e9}.side-panel-header{position:sticky;min-height:30px;display:flex;justify-content:space-between;margin-bottom:32px}\n"], dependencies: [{ kind: "ngmodule", type: TooltipComponentModule }, { kind: "ngmodule", type: ButtonComponentModule }, { kind: "component", type: i1.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: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: UiTranslatePipe, name: "uiTranslate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], animations: [sidePanelAnimation, backdropAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
227
258
  }
228
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SidePanelComponent, decorators: [{
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SidePanelComponent, decorators: [{
229
260
  type: Component,
230
- args: [{ selector: 'ui-side-panel', animations: [sidePanelAnimation, backdropAnimation], changeDetection: ChangeDetectionStrategy.OnPush, imports: [TooltipComponentModule, ButtonComponentModule, UiTranslatePipe, AsyncPipe, NgClass], template: "<div\n class=\"side-panel-backdrop\"\n #sidePanelBackdrop\n tabindex=\"0\"\n (click)=\"close()\"\n (keydown.enter)=\"close()\"\n [@fadeInOut]=\"isOpen() ? 'open' : 'closed'\"\n></div>\n<div\n class=\"side-panel\"\n [class]=\"sidePanelConfig.panelClass\"\n [class.side-panel-small]=\"isSmall()\"\n [class.side-panel-large]=\"isLarge()\"\n [class.side-panel-x-large]=\"isXLarge()\"\n #sidePanel\n [@slideInOut]=\"animation()\"\n [attr.data-testid]=\"sidePanelConfig.testId ?? null\"\n>\n @if (sidePanelConfig.showHeader) {\n <div class=\"side-panel-header\">\n <div class=\"side-panel-title-container\">\n @if (sidePanelConfig.showBackButton) {\n <ui-button\n class=\"side-panel-action\"\n [variant]=\"'icon-button'\"\n [iconName]=\"'Arrow-chevron-left-filled'\"\n (click)=\"close()\"\n [tooltip]=\"('COMMON.BACK' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.BACK' | uiTranslate | async)!\"\n [testId]=\"backButtonTestId\"\n size=\"medium\"\n ></ui-button>\n }\n <span class=\"side-panel-title h3 bold\">{{ sidePanelConfig.title }}</span>\n </div>\n @if (sidePanelConfig.showCloseButton) {\n <ui-button\n class=\"side-panel-action side-panel-action-close\"\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [tooltip]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n [testId]=\"closeButtonTestId\"\n (click)=\"close()\"\n size=\"medium\"\n ></ui-button>\n }\n </div>\n }\n\n <div class=\"side-panel-content\">\n <ng-container #sidePanelContainer></ng-container>\n </div>\n</div>\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}.side-panel{position:fixed;top:0;bottom:0;background-color:#fff;padding:32px;box-shadow:2px 24px 48px 8px #00000014;z-index:999999;display:flex;flex-direction:column;will-change:transform;transform:translate(100%)}.side-panel.side-panel-small{width:600px}@media(max-width:600px){.side-panel.side-panel-small{width:100%}}.side-panel.side-panel-large{width:956px}@media(max-width:600px){.side-panel.side-panel-large{width:100%}}@media(max-width:960px){.side-panel.side-panel-large{width:100%}}.side-panel.side-panel-x-large{width:1200px}@media(max-width:1280px){.side-panel.side-panel-x-large{width:100%}}.side-panel-action-close{margin-left:8px}.side-panel-title-container{display:flex;gap:8px}.side-panel.left{left:0}.side-panel.right{right:0}.side-panel-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;z-index:899;opacity:0}.side-panel-title{display:block;display:-webkit-box;max-height:3em;line-height:1.6em;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.side-panel-content{overflow:auto;flex:1}.side-panel-header{position:sticky;min-height:30px;display:flex;justify-content:space-between;margin-bottom:32px}\n"] }]
261
+ args: [{ selector: 'ui-side-panel', animations: [sidePanelAnimation, backdropAnimation], changeDetection: ChangeDetectionStrategy.OnPush, imports: [TooltipComponentModule, ButtonComponentModule, UiTranslatePipe, AsyncPipe, NgClass, NgTemplateOutlet], template: "<div\n class=\"side-panel-backdrop\"\n #sidePanelBackdrop\n tabindex=\"0\"\n (click)=\"close()\"\n (keydown.enter)=\"close()\"\n [@fadeInOut]=\"isOpen() ? 'open' : 'closed'\"\n></div>\n<div\n class=\"side-panel\"\n [class]=\"sidePanelConfig.panelClass\"\n [class.side-panel-small]=\"isSmall()\"\n [class.side-panel-large]=\"isLarge()\"\n [class.side-panel-x-large]=\"isXLarge()\"\n #sidePanel\n [@slideInOut]=\"animation()\"\n [attr.data-testid]=\"sidePanelConfig.testId ?? null\"\n>\n @if (sidePanelConfig.showHeader) {\n <div class=\"side-panel-header\">\n <div class=\"side-panel-title-container\">\n @if (showBackButton()) {\n <ui-button\n class=\"side-panel-action\"\n [variant]=\"'icon-button'\"\n [iconName]=\"'Arrow-chevron-left-filled'\"\n (click)=\"onBack()\"\n [tooltip]=\"('COMMON.BACK' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.BACK' | uiTranslate | async)!\"\n [testId]=\"backButtonTestId\"\n size=\"medium\"\n ></ui-button>\n }\n <span class=\"side-panel-title h3 bold\">{{ headerTitle() }}</span>\n </div>\n @if (sidePanelConfig.showCloseButton) {\n <ui-button\n class=\"side-panel-action side-panel-action-close\"\n [variant]=\"'icon-button'\"\n [iconName]=\"'Close'\"\n [tooltip]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n [ariaLabel]=\"('COMMON.CLOSE' | uiTranslate | async)!\"\n [testId]=\"closeButtonTestId\"\n (click)=\"close()\"\n size=\"medium\"\n ></ui-button>\n }\n </div>\n }\n\n <div class=\"side-panel-content\" [class.side-panel-content-fill]=\"fillHeight()\">\n <ng-container #sidePanelContainer></ng-container>\n </div>\n\n @if (footerTemplate(); as footer) {\n <div class=\"side-panel-footer\" [class.side-panel-footer-divided]=\"footerDivider()\">\n <ng-container [ngTemplateOutlet]=\"footer\"></ng-container>\n </div>\n }\n</div>\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}.side-panel{position:fixed;top:0;height:100vh;height:100dvh;background-color:#fff;padding:32px;box-shadow:2px 24px 48px 8px #00000014;z-index:999999;display:flex;flex-direction:column;will-change:transform;transform:translate(100%)}.side-panel.side-panel-small{width:600px}@media(max-width:600px){.side-panel.side-panel-small{width:100%}}.side-panel.side-panel-large{width:956px}@media(max-width:600px){.side-panel.side-panel-large{width:100%}}@media(max-width:960px){.side-panel.side-panel-large{width:100%}}.side-panel.side-panel-x-large{width:1200px}@media(max-width:1280px){.side-panel.side-panel-x-large{width:100%}}.side-panel-action-close{margin-left:8px}.side-panel-title-container{display:flex;gap:8px}.side-panel.left{left:0}.side-panel.right{right:0}.side-panel-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;z-index:899;opacity:0}.side-panel-title{display:block;display:-webkit-box;max-height:3em;line-height:1.6em;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;white-space:normal}.side-panel-content{overflow:auto;min-height:0;flex:1;padding-right:16px;margin-right:-16px}.side-panel-content-fill{position:relative;overflow:hidden;padding-right:0;margin-right:0}.side-panel-footer{display:flex;align-items:center;justify-content:flex-end;column-gap:16px;flex:0 0 auto;min-height:48px;margin:0 -32px -32px;padding:16px 32px;background-color:#fff}.side-panel-footer-divided{border-top:1px solid #e9e9e9}.side-panel-header{position:sticky;min-height:30px;display:flex;justify-content:space-between;margin-bottom:32px}\n"] }]
231
262
  }], ctorParameters: () => [], propDecorators: { sidePanelContainer: [{ type: i0.ViewChild, args: ['sidePanelContainer', { ...{ read: ViewContainerRef }, isSignal: true }] }], sidePanel: [{ type: i0.ViewChild, args: ['sidePanel', { isSignal: true }] }], backdrop: [{ type: i0.ViewChild, args: ['sidePanelBackdrop', { isSignal: true }] }] } });
232
263
 
264
+ /** Marks the `ng-template` inside a `ui-side-panel-view` that holds the view's footer. */
265
+ class SidePanelFooterDirective {
266
+ constructor() {
267
+ this.templateRef = inject(TemplateRef);
268
+ }
269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SidePanelFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
270
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.23", type: SidePanelFooterDirective, isStandalone: true, selector: "ng-template[uiSidePanelFooter]", ngImport: i0 }); }
271
+ }
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SidePanelFooterDirective, decorators: [{
273
+ type: Directive,
274
+ args: [{
275
+ selector: 'ng-template[uiSidePanelFooter]',
276
+ standalone: true,
277
+ }]
278
+ }] });
279
+
280
+ // `undefined` has to survive so the panel can tell "not set by this view" apart from an
281
+ // explicit `false` and fall back to `SidePanelConfig`.
282
+ function optionalBooleanAttribute(value) {
283
+ return value === undefined ? undefined : booleanAttribute(value);
284
+ }
285
+ /**
286
+ * One view inside a side panel: its body, its header title and its footer. Render a different
287
+ * one per step to switch views without reopening the panel.
288
+ */
289
+ class SidePanelViewComponent {
290
+ constructor() {
291
+ /** Left unset, the panel keeps the title from `SidePanelConfig`. */
292
+ this.title = input(...(ngDevMode ? [undefined, { debugName: "title" }] : /* istanbul ignore next */ []));
293
+ /** Left unset, the panel falls back to `SidePanelConfig.showBackButton`. */
294
+ this.showBackButton = input(undefined, { ...(ngDevMode ? { debugName: "showBackButton" } : /* istanbul ignore next */ {}), transform: optionalBooleanAttribute });
295
+ /** Draws a rule above the footer, separating it from content that scrolls underneath. */
296
+ this.footerDivider = input(false, { ...(ngDevMode ? { debugName: "footerDivider" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
297
+ /**
298
+ * Makes the view fill the panel body instead of growing with its content, and stops the panel
299
+ * scrolling. Content then owns its own overflow — give the element that should scroll
300
+ * `flex: 1; min-height: 0; overflow: auto`, or `height: 100%`.
301
+ */
302
+ this.fillHeight = input(false, { ...(ngDevMode ? { debugName: "fillHeight" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
303
+ /** The panel does not close itself — move to the previous view, or close it yourself. */
304
+ this.back = output();
305
+ this.footer = contentChild(SidePanelFooterDirective, ...(ngDevMode ? [{ debugName: "footer" }] : /* istanbul ignore next */ []));
306
+ this.footerTemplate = computed(() => this.footer()?.templateRef ?? null, ...(ngDevMode ? [{ debugName: "footerTemplate" }] : /* istanbul ignore next */ []));
307
+ this.panel = inject(SidePanelComponent, { optional: true });
308
+ this.panel?.registerView(this);
309
+ inject(DestroyRef).onDestroy(() => this.panel?.unregisterView(this));
310
+ }
311
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SidePanelViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
312
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.23", type: SidePanelViewComponent, isStandalone: true, selector: "ui-side-panel-view", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, showBackButton: { classPropertyName: "showBackButton", publicName: "showBackButton", isSignal: true, isRequired: false, transformFunction: null }, footerDivider: { classPropertyName: "footerDivider", publicName: "footerDivider", isSignal: true, isRequired: false, transformFunction: null }, fillHeight: { classPropertyName: "fillHeight", publicName: "fillHeight", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back" }, host: { properties: { "class.side-panel-view-fill": "fillHeight()", "attr.title": "null" } }, queries: [{ propertyName: "footer", first: true, predicate: SidePanelFooterDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n", styles: [":host{display:block}:host(.side-panel-view-fill){position:absolute;inset:0;display:flex;flex-direction:column}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
313
+ }
314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.23", ngImport: i0, type: SidePanelViewComponent, decorators: [{
315
+ type: Component,
316
+ args: [{ selector: 'ui-side-panel-view', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, host: {
317
+ '[class.side-panel-view-fill]': 'fillHeight()',
318
+ // `title` is a global HTML attribute and Angular keeps a statically set one on the host, so
319
+ // `<ui-side-panel-view title="...">` would hang a native tooltip over the whole view body.
320
+ '[attr.title]': 'null',
321
+ }, template: "<ng-content></ng-content>\n", styles: [":host{display:block}:host(.side-panel-view-fill){position:absolute;inset:0;display:flex;flex-direction:column}\n"] }]
322
+ }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], showBackButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBackButton", required: false }] }], footerDivider: [{ type: i0.Input, args: [{ isSignal: true, alias: "footerDivider", required: false }] }], fillHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "fillHeight", required: false }] }], back: [{ type: i0.Output, args: ["back"] }], footer: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SidePanelFooterDirective), { isSignal: true }] }] } });
323
+
233
324
  /**
234
325
  * Generated bundle index. Do not edit.
235
326
  */
236
327
 
237
- export { SIDE_PANEL_CONFIG, SIDE_PANEL_DATA, SidePanelAnimationState, SidePanelComponent, SidePanelConfig, SidePanelRef, SidePanelService, backdropAnimation, defaultSidePanelConfig, sidePanelAnimation, sidePanelAnimationDuration };
328
+ export { SIDE_PANEL_CONFIG, SIDE_PANEL_DATA, SidePanelAnimationState, SidePanelComponent, SidePanelConfig, SidePanelFooterDirective, SidePanelRef, SidePanelService, SidePanelViewComponent, backdropAnimation, defaultSidePanelConfig, sidePanelAnimation, sidePanelAnimationDuration };
238
329
  //# sourceMappingURL=testgorilla-tgo-ui-components-side-panel.mjs.map