@hermes-ui/angular 0.1.7 → 0.2.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 (108) hide show
  1. package/README.md +6 -6
  2. package/button/_buttons.clarity.scss +80 -2
  3. package/button/_mixins.buttons.scss +44 -2
  4. package/button/_properties.buttons.scss +209 -247
  5. package/button/_variables.buttons.scss +22 -0
  6. package/fesm2022/hermes-ui-angular-accordion.mjs +2 -2
  7. package/fesm2022/hermes-ui-angular-accordion.mjs.map +1 -1
  8. package/fesm2022/hermes-ui-angular-addons-card-container.mjs +3 -3
  9. package/fesm2022/hermes-ui-angular-addons-card-container.mjs.map +1 -1
  10. package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs +2 -2
  11. package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs.map +1 -1
  12. package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs +2 -2
  13. package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs.map +1 -1
  14. package/fesm2022/hermes-ui-angular-addons-datagrid.mjs +2 -2
  15. package/fesm2022/hermes-ui-angular-addons-datagrid.mjs.map +1 -1
  16. package/fesm2022/hermes-ui-angular-addons-property-view.mjs +2 -2
  17. package/fesm2022/hermes-ui-angular-addons-property-view.mjs.map +1 -1
  18. package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs +66 -66
  19. package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs.map +1 -1
  20. package/fesm2022/hermes-ui-angular-addons-var.mjs +2 -2
  21. package/fesm2022/hermes-ui-angular-addons-var.mjs.map +1 -1
  22. package/fesm2022/hermes-ui-angular-addons-wizard.mjs +2 -2
  23. package/fesm2022/hermes-ui-angular-addons-wizard.mjs.map +1 -1
  24. package/fesm2022/hermes-ui-angular-button.mjs +2 -2
  25. package/fesm2022/hermes-ui-angular-button.mjs.map +1 -1
  26. package/fesm2022/hermes-ui-angular-data-datagrid.mjs +2 -2
  27. package/fesm2022/hermes-ui-angular-data-datagrid.mjs.map +1 -1
  28. package/fesm2022/hermes-ui-angular-data-stack-view.mjs +2 -2
  29. package/fesm2022/hermes-ui-angular-data-stack-view.mjs.map +1 -1
  30. package/fesm2022/hermes-ui-angular-data-tree-view.mjs +2 -2
  31. package/fesm2022/hermes-ui-angular-data-tree-view.mjs.map +1 -1
  32. package/fesm2022/hermes-ui-angular-emphasis-alert.mjs +2 -2
  33. package/fesm2022/hermes-ui-angular-emphasis-alert.mjs.map +1 -1
  34. package/fesm2022/hermes-ui-angular-forms-checkbox.mjs +2 -2
  35. package/fesm2022/hermes-ui-angular-forms-checkbox.mjs.map +1 -1
  36. package/fesm2022/hermes-ui-angular-forms-combobox.mjs +2 -2
  37. package/fesm2022/hermes-ui-angular-forms-combobox.mjs.map +1 -1
  38. package/fesm2022/hermes-ui-angular-forms-common.mjs +2 -2
  39. package/fesm2022/hermes-ui-angular-forms-common.mjs.map +1 -1
  40. package/fesm2022/hermes-ui-angular-forms-datalist.mjs +2 -2
  41. package/fesm2022/hermes-ui-angular-forms-datalist.mjs.map +1 -1
  42. package/fesm2022/hermes-ui-angular-forms-datepicker.mjs +3 -3
  43. package/fesm2022/hermes-ui-angular-forms-datepicker.mjs.map +1 -1
  44. package/fesm2022/hermes-ui-angular-forms-file-input.mjs +2 -2
  45. package/fesm2022/hermes-ui-angular-forms-file-input.mjs.map +1 -1
  46. package/fesm2022/hermes-ui-angular-forms-input.mjs +2 -2
  47. package/fesm2022/hermes-ui-angular-forms-input.mjs.map +1 -1
  48. package/fesm2022/hermes-ui-angular-forms-native-select.mjs +2 -2
  49. package/fesm2022/hermes-ui-angular-forms-native-select.mjs.map +1 -1
  50. package/fesm2022/hermes-ui-angular-forms-number-input.mjs +2 -2
  51. package/fesm2022/hermes-ui-angular-forms-number-input.mjs.map +1 -1
  52. package/fesm2022/hermes-ui-angular-forms-password.mjs +2 -2
  53. package/fesm2022/hermes-ui-angular-forms-password.mjs.map +1 -1
  54. package/fesm2022/hermes-ui-angular-forms-radio.mjs +2 -2
  55. package/fesm2022/hermes-ui-angular-forms-radio.mjs.map +1 -1
  56. package/fesm2022/hermes-ui-angular-forms-range.mjs +2 -2
  57. package/fesm2022/hermes-ui-angular-forms-range.mjs.map +1 -1
  58. package/fesm2022/hermes-ui-angular-forms-select.mjs +2 -2
  59. package/fesm2022/hermes-ui-angular-forms-select.mjs.map +1 -1
  60. package/fesm2022/hermes-ui-angular-forms-textarea.mjs +2 -2
  61. package/fesm2022/hermes-ui-angular-forms-textarea.mjs.map +1 -1
  62. package/fesm2022/hermes-ui-angular-icon.mjs +29 -29
  63. package/fesm2022/hermes-ui-angular-icon.mjs.map +1 -1
  64. package/fesm2022/hermes-ui-angular-layout-nav.mjs +2 -2
  65. package/fesm2022/hermes-ui-angular-layout-nav.mjs.map +1 -1
  66. package/fesm2022/hermes-ui-angular-layout-tabs.mjs +2 -2
  67. package/fesm2022/hermes-ui-angular-layout-tabs.mjs.map +1 -1
  68. package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs +382 -28
  69. package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs.map +1 -1
  70. package/fesm2022/hermes-ui-angular-modal.mjs +2 -2
  71. package/fesm2022/hermes-ui-angular-modal.mjs.map +1 -1
  72. package/fesm2022/hermes-ui-angular-popover-signpost.mjs +2 -2
  73. package/fesm2022/hermes-ui-angular-popover-signpost.mjs.map +1 -1
  74. package/fesm2022/hermes-ui-angular-stepper.mjs +2 -2
  75. package/fesm2022/hermes-ui-angular-stepper.mjs.map +1 -1
  76. package/fesm2022/hermes-ui-angular-timeline.mjs +2 -2
  77. package/fesm2022/hermes-ui-angular-timeline.mjs.map +1 -1
  78. package/fesm2022/hermes-ui-angular-toast.mjs +2 -2
  79. package/fesm2022/hermes-ui-angular-toast.mjs.map +1 -1
  80. package/fesm2022/hermes-ui-angular-utils.mjs +6 -0
  81. package/fesm2022/hermes-ui-angular-utils.mjs.map +1 -1
  82. package/fesm2022/hermes-ui-angular-wizard.mjs +2 -2
  83. package/fesm2022/hermes-ui-angular-wizard.mjs.map +1 -1
  84. package/forms/combobox/_combobox.clarity.scss +18 -4
  85. package/forms/combobox/_properties.combobox.scss +5 -5
  86. package/forms/styles/_input-group.clarity.scss +7 -0
  87. package/forms/styles/_mixins.forms.scss +12 -10
  88. package/forms/styles/_native-select.clarity.scss +17 -5
  89. package/forms/styles/_properties.forms.scss +29 -18
  90. package/forms/styles/_textarea.clarity.scss +4 -4
  91. package/forms/styles/_variables.forms.scss +6 -0
  92. package/layout/main-container/_properties.header.scss +44 -6
  93. package/layout/main-container/_variables.header.scss +11 -0
  94. package/layout/nav/_header.clarity.scss +14 -0
  95. package/layout/nav/_mixins.header.scss +55 -40
  96. package/layout/nav/_responsive-nav.clarity.scss +21 -10
  97. package/layout/vertical-nav/_properties.vertical-nav.scss +77 -27
  98. package/layout/vertical-nav/_variables.vertical-nav.scss +23 -0
  99. package/layout/vertical-nav/_vertical-nav.clarity.scss +418 -277
  100. package/package.json +1 -1
  101. package/types/hermes-ui-angular-addons-theme-builder.d.ts +2 -2
  102. package/types/hermes-ui-angular-addons-theme-builder.d.ts.map +1 -1
  103. package/types/hermes-ui-angular-icon.d.ts +3 -3
  104. package/types/hermes-ui-angular-icon.d.ts.map +1 -1
  105. package/types/hermes-ui-angular-layout-vertical-nav.d.ts +134 -10
  106. package/types/hermes-ui-angular-layout-vertical-nav.d.ts.map +1 -1
  107. package/types/hermes-ui-angular-utils.d.ts +12 -0
  108. package/types/hermes-ui-angular-utils.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"hermes-ui-angular-layout-vertical-nav.mjs","sources":["../../../layout/vertical-nav/vertical-nav-group-children.ts","../../../layout/vertical-nav/providers/vertical-nav-group.service.ts","../../../layout/vertical-nav/providers/vertical-nav-group-registration.service.ts","../../../layout/vertical-nav/providers/vertical-nav.service.ts","../../../layout/vertical-nav/vertical-nav-group.ts","../../../layout/vertical-nav/vertical-nav-group.html","../../../layout/vertical-nav/providers/vertical-nav-icon.service.ts","../../../layout/vertical-nav/vertical-nav.ts","../../../layout/vertical-nav/vertical-nav.html","../../../layout/vertical-nav/vertical-nav-link.ts","../../../layout/vertical-nav/vertical-nav-icon.ts","../../../layout/vertical-nav/vertical-nav.module.ts","../../../layout/vertical-nav/index.ts","../../../layout/vertical-nav/hermes-ui-angular-layout-vertical-nav.ts"],"sourcesContent":["/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hermes-vertical-nav-group-children',\r\n template: `<ng-content></ng-content>`,\r\n standalone: false,\r\n})\r\nexport class HermesVerticalNavGroupChildren {}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class VerticalNavGroupService {\r\n private _expandChange = new Subject<boolean>();\r\n\r\n get expandChange(): Observable<boolean> {\r\n return this._expandChange.asObservable();\r\n }\r\n\r\n expand(): void {\r\n this._expandChange.next(true);\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class VerticalNavGroupRegistrationService {\r\n navGroupCount = 0;\r\n\r\n registerNavGroup() {\r\n this.navGroupCount++;\r\n }\r\n\r\n unregisterNavGroup(): void {\r\n this.navGroupCount--;\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class VerticalNavService {\r\n private _animateOnCollapsed = new Subject<boolean>();\r\n private _collapsedChanged = new Subject<boolean>();\r\n private _collapsed = false;\r\n private _collapsible = false;\r\n\r\n get animateOnCollapsed(): Observable<boolean> {\r\n return this._animateOnCollapsed.asObservable();\r\n }\r\n\r\n get collapsedChanged(): Observable<boolean> {\r\n return this._collapsedChanged.asObservable();\r\n }\r\n\r\n get collapsed(): boolean {\r\n return this._collapsed;\r\n }\r\n set collapsed(value: boolean) {\r\n value = !!value;\r\n if (this.collapsible && this._collapsed !== value) {\r\n this.updateCollapseBehavior(value);\r\n }\r\n }\r\n\r\n get collapsible(): boolean {\r\n return this._collapsible;\r\n }\r\n set collapsible(value: boolean) {\r\n value = !!value;\r\n if (this._collapsible !== value) {\r\n if (!value && this.collapsed) {\r\n this.updateCollapseBehavior(false);\r\n }\r\n this._collapsible = value;\r\n }\r\n }\r\n\r\n private updateCollapseBehavior(value: boolean): void {\r\n this._animateOnCollapsed.next(value);\r\n this._collapsed = value;\r\n this._collapsedChanged.next(value);\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\r\nimport { AfterContentInit, Component, EventEmitter, HostBinding, Input, OnDestroy, Output } from '@angular/core';\r\nimport { HermesCommonStringsService, IfExpandService } from '@hermes-ui/angular/utils';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { VerticalNavGroupRegistrationService } from './providers/vertical-nav-group-registration.service';\r\nimport { VerticalNavGroupService } from './providers/vertical-nav-group.service';\r\nimport { VerticalNavService } from './providers/vertical-nav.service';\r\n\r\nconst EXPANDED_STATE = 'expanded';\r\nconst COLLAPSED_STATE = 'collapsed';\r\n\r\n@Component({\r\n selector: 'hermes-vertical-nav-group',\r\n templateUrl: './vertical-nav-group.html',\r\n providers: [IfExpandService, VerticalNavGroupService],\r\n animations: [\r\n trigger('hermesExpand', [\r\n state(EXPANDED_STATE, style({ height: '*' })),\r\n state(COLLAPSED_STATE, style({ height: 0, visibility: 'hidden' })),\r\n transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),\r\n ]),\r\n ],\r\n host: { class: 'nav-group' },\r\n standalone: false,\r\n})\r\nexport class HermesVerticalNavGroup implements AfterContentInit, OnDestroy {\r\n @Output('hermesVerticalNavGroupExpandedChange') expandedChange = new EventEmitter<boolean>(true);\r\n\r\n private wasExpanded = false;\r\n private _subscriptions: Subscription[] = [];\r\n private _expandAnimationState: string = COLLAPSED_STATE;\r\n\r\n constructor(\r\n private _itemExpand: IfExpandService,\r\n private _navGroupRegistrationService: VerticalNavGroupRegistrationService,\r\n navGroupService: VerticalNavGroupService,\r\n private _navService: VerticalNavService,\r\n public commonStrings: HermesCommonStringsService\r\n ) {\r\n _navGroupRegistrationService.registerNavGroup();\r\n\r\n // FIXME: This subscription handles a corner case\r\n // Vertical Nav collapse requires the animation to run first and then\r\n // remove the nodes from the DOM. If the user directly sets the input\r\n // on the hermesIfExpanded directive, we have no chance to run the animation\r\n // and wait for it to complete. This subscription makes sure that the\r\n // animation states are correct for that edge case.\r\n this._subscriptions.push(\r\n _itemExpand.expandChange.subscribe(value => {\r\n if (value && this.expandAnimationState === COLLAPSED_STATE) {\r\n if (_navService.collapsed) {\r\n _navService.collapsed = false;\r\n }\r\n this.expandAnimationState = EXPANDED_STATE;\r\n } else if (!value && this.expandAnimationState === EXPANDED_STATE) {\r\n this.expandAnimationState = COLLAPSED_STATE;\r\n }\r\n })\r\n );\r\n\r\n // 1. If the nav is collapsing, close the open nav group + save its state\r\n // 2. If the nav is expanding, expand the nav group if the previous state was expanded\r\n this._subscriptions.push(\r\n _navService.animateOnCollapsed.subscribe((goingToCollapse: boolean) => {\r\n if (goingToCollapse && this.expanded) {\r\n this.wasExpanded = true;\r\n this.expandAnimationState = COLLAPSED_STATE;\r\n } else if (!goingToCollapse && this.wasExpanded) {\r\n this.expandGroup();\r\n this.wasExpanded = false;\r\n }\r\n })\r\n );\r\n\r\n // If a link is clicked, expand the nav group\r\n this._subscriptions.push(\r\n navGroupService.expandChange.subscribe((expand: boolean) => {\r\n if (expand && !this.expanded) {\r\n this.expandGroup();\r\n }\r\n })\r\n );\r\n }\r\n\r\n @HostBinding('class.is-expanded')\r\n get expanded(): boolean {\r\n return this._itemExpand.expanded;\r\n }\r\n set expanded(value: boolean) {\r\n if (this._itemExpand.expanded !== value) {\r\n this._itemExpand.expanded = value;\r\n this.expandedChange.emit(value);\r\n }\r\n }\r\n\r\n @Input('hermesVerticalNavGroupExpanded')\r\n set userExpandedInput(value: boolean | string) {\r\n value = !!value;\r\n if (this.expanded !== value) {\r\n // We have to call toggleExpand because some cases require animations to occur first\r\n // Directly setting the Expand service value skips the animation and can result in\r\n // nodes in the DOM but the nav group still being collapsed\r\n this.toggleExpand();\r\n }\r\n }\r\n\r\n get expandAnimationState(): string {\r\n return this._expandAnimationState;\r\n }\r\n set expandAnimationState(value: string) {\r\n if (value !== this._expandAnimationState) {\r\n this._expandAnimationState = value;\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n // This makes sure that if someone marks a nav group expanded in a collapsed nav\r\n // the expanded property is switched back to collapsed state.\r\n if (this._navService.collapsed && this.expanded) {\r\n this.wasExpanded = true;\r\n this.expandAnimationState = COLLAPSED_STATE;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subscriptions.forEach((sub: Subscription) => sub.unsubscribe());\r\n this._navGroupRegistrationService.unregisterNavGroup();\r\n }\r\n\r\n expandGroup(): void {\r\n this.expanded = true;\r\n // Expanded animation occurs after Expand.expand is set to true\r\n this.expandAnimationState = EXPANDED_STATE;\r\n }\r\n\r\n collapseGroup(): void {\r\n // If a Vertical Nav Group toggle button is clicked while the Vertical Nav is in Collapsed state,\r\n // the Vertical Nav should be expanded first.\r\n this.expandAnimationState = COLLAPSED_STATE;\r\n }\r\n\r\n // closes a group after the collapse animation\r\n expandAnimationDone($event: AnimationEvent) {\r\n if ($event.toState === COLLAPSED_STATE) {\r\n this.expanded = false;\r\n }\r\n }\r\n\r\n toggleExpand(): void {\r\n if (this.expanded) {\r\n this.collapseGroup();\r\n } else {\r\n // If nav is collasped, first open the nav\r\n if (this._navService.collapsed) {\r\n this._navService.collapsed = false;\r\n }\r\n // then expand the nav group\r\n this.expandGroup();\r\n }\r\n }\r\n}\r\n","<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n<div class=\"nav-group-content\">\r\n <ng-content select=\"[hermesVerticalNavLink]\"></ng-content>\r\n <button class=\"nav-group-trigger\" type=\"button\" [attr.aria-expanded]=\"expanded\" (click)=\"toggleExpand()\">\r\n <ng-content select=\"[hermesVerticalNavIcon]\"></ng-content>\r\n <div class=\"nav-group-text\">\r\n <ng-content></ng-content>\r\n </div>\r\n <hermes-icon shape=\"angle\" class=\"nav-group-trigger-icon\" [direction]=\"expanded ? 'down' : 'right'\"></hermes-icon>\r\n </button>\r\n</div>\r\n<!--TODO: This animation needs to be added to the hermes-vertical-nav-group-children component-->\r\n<div class=\"nav-group-children\" [@hermesExpand]=\"expandAnimationState\" (@hermesExpand.done)=\"expandAnimationDone($event)\">\r\n <ng-content select=\"[hermesIfExpanded], hermes-vertical-nav-group-children\"></ng-content>\r\n</div>\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class VerticalNavIconService {\r\n private _icons = 0;\r\n\r\n get hasIcons(): boolean {\r\n return this._icons > 0;\r\n }\r\n\r\n registerIcon(): void {\r\n this._icons++;\r\n }\r\n\r\n unregisterIcon(): void {\r\n this._icons--;\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport { HermesCommonStringsService, uniqueIdFactory } from '@hermes-ui/angular/utils';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { VerticalNavGroupRegistrationService } from './providers/vertical-nav-group-registration.service';\r\nimport { VerticalNavIconService } from './providers/vertical-nav-icon.service';\r\nimport { VerticalNavService } from './providers/vertical-nav.service';\r\n\r\n@Component({\r\n selector: 'hermes-vertical-nav',\r\n templateUrl: './vertical-nav.html',\r\n providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService],\r\n host: {\r\n class: 'hermes-vertical-nav',\r\n // Suprimido durante o peek: reaproveita 100% do CSS já existente pro\r\n // estado expandido (inclusive empurrar o conteúdo ao lado, via flex\r\n // normal) em vez de tentar \"desfazer\" as regras de .is-collapsed via\r\n // :hover (o `collapsed` real, usado por toggleByButton()/ariaExpanded/\r\n // o output, não muda — só a classe aplicada).\r\n '[class.is-collapsed]': 'collapsed && !peeking',\r\n '[class.is-peeking]': 'peeking',\r\n '[class.has-nav-groups]': 'hasNavGroups',\r\n '[class.has-icons]': 'hasIcons',\r\n '[class.is-pinnable]': 'pinnable',\r\n '(mouseenter)': 'onPeekEnter()',\r\n '(mouseleave)': 'onPeekLeave()',\r\n },\r\n standalone: false,\r\n})\r\nexport class HermesVerticalNav implements OnDestroy {\r\n @Input('hermesVerticalNavToggleLabel') toggleLabel: string;\r\n /** Quando true, o toggle vira semanticamente um \"fixar aberta/fechada\" (ícones\r\n * pin/unpin em vez do chevron duplo genérico) e habilita o hover-peek: passar\r\n * o mouse enquanto colapsada e não fixada expande temporariamente (ver\r\n * onPeekEnter/onPeekLeave abaixo), sem persistir nem emitir o output. */\r\n @Input('hermesVerticalNavPinnable') pinnable = false;\r\n contentId = uniqueIdFactory();\r\n\r\n /** true só enquanto o mouse está sobre uma nav colapsada e \"pinnable\" —\r\n * não persiste, não afeta `collapsed`/o output, é puramente visual. */\r\n peeking = false;\r\n\r\n onPeekEnter(): void {\r\n if (this.pinnable && this.collapsed) {\r\n this.peeking = true;\r\n }\r\n }\r\n\r\n onPeekLeave(): void {\r\n this.peeking = false;\r\n }\r\n\r\n @Output('hermesVerticalNavCollapsedChange') private _collapsedChanged = new EventEmitter<boolean>(true);\r\n\r\n private _sub: Subscription;\r\n\r\n constructor(\r\n private _navService: VerticalNavService,\r\n private _navIconService: VerticalNavIconService,\r\n private _navGroupRegistrationService: VerticalNavGroupRegistrationService,\r\n public commonStrings: HermesCommonStringsService\r\n ) {\r\n this._sub = _navService.collapsedChanged.subscribe(value => {\r\n this._collapsedChanged.emit(value);\r\n });\r\n }\r\n\r\n @Input('hermesVerticalNavCollapsible')\r\n get collapsible(): boolean | string {\r\n return this._navService.collapsible;\r\n }\r\n set collapsible(value: boolean | string) {\r\n this._navService.collapsible = value as boolean;\r\n }\r\n\r\n @Input('hermesVerticalNavCollapsed')\r\n get collapsed(): boolean | string {\r\n return this._navService.collapsed;\r\n }\r\n set collapsed(value: boolean | string) {\r\n this._navService.collapsed = value as boolean;\r\n }\r\n\r\n get hasNavGroups(): boolean {\r\n return this._navGroupRegistrationService.navGroupCount > 0;\r\n }\r\n\r\n get hasIcons(): boolean {\r\n return this._navIconService.hasIcons;\r\n }\r\n\r\n get ariaExpanded(): string {\r\n if (!this.collapsible) {\r\n return null;\r\n }\r\n return !this.collapsed ? 'true' : 'false';\r\n }\r\n\r\n ngOnDestroy() {\r\n this._sub.unsubscribe();\r\n }\r\n\r\n toggleByButton() {\r\n this.collapsed = !this.collapsed;\r\n }\r\n}\r\n","<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n@if (collapsible) {\r\n<button\r\n type=\"button\"\r\n class=\"nav-trigger\"\r\n [class.on-collapse]=\"collapsed\"\r\n [attr.aria-controls]=\"contentId\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-label]=\"toggleLabel || commonStrings.keys.verticalNavToggle\"\r\n (click)=\"toggleByButton()\"\r\n>\r\n @if (pinnable) {\r\n <hermes-icon [shape]=\"collapsed ? 'pin' : 'unpin'\" class=\"nav-trigger-icon\"></hermes-icon>\r\n } @else {\r\n <hermes-icon shape=\"angle-double\" class=\"nav-trigger-icon\" [direction]=\"(collapsed) ? 'right' : 'left'\"></hermes-icon>\r\n }\r\n</button>\r\n}\r\n<div [id]=\"contentId\" class=\"nav-content\">\r\n <ng-content></ng-content>\r\n @if (collapsible && collapsed) {\r\n <button\r\n type=\"button\"\r\n (click)=\"collapsed = false\"\r\n class=\"nav-btn\"\r\n aria-hidden=\"true\"\r\n tabindex=\"-1\"\r\n [attr.aria-controls]=\"contentId\"\r\n [attr.aria-label]=\"toggleLabel || commonStrings.keys.verticalNavToggle\"\r\n ></button>\r\n }\r\n</div>\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { ChangeDetectorRef, Component, ElementRef, Inject, OnDestroy, Optional } from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { VerticalNavGroupService } from './providers/vertical-nav-group.service';\r\n\r\n@Component({\r\n selector: '[hermesVerticalNavLink]',\r\n template: `\r\n <ng-content select=\"[hermesVerticalNavIcon]\"></ng-content>\r\n <span class=\"nav-text\">\r\n <ng-content></ng-content>\r\n </span>\r\n `,\r\n host: {\r\n class: 'nav-link',\r\n },\r\n standalone: false,\r\n})\r\nexport class HermesVerticalNavLink implements OnDestroy {\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(\r\n host: ElementRef<HTMLElement>,\r\n ref: ChangeDetectorRef,\r\n @Optional() @Inject(VerticalNavGroupService) navGroupService: VerticalNavGroupService | null\r\n ) {\r\n // Note: since the `VerticalNavGroupService` is an optional provider, we'll setup the event\r\n // listener only when the `[hermesVerticalLink]` is located within the `hermes-vertical-nav-group`.\r\n navGroupService &&\r\n fromEvent(host.nativeElement, 'click')\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n navGroupService.expand();\r\n ref.markForCheck();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Directive, OnDestroy } from '@angular/core';\r\n\r\nimport { VerticalNavIconService } from './providers/vertical-nav-icon.service';\r\n\r\n@Directive({\r\n selector: '[hermesVerticalNavIcon]',\r\n host: { class: 'nav-icon' },\r\n standalone: false,\r\n})\r\nexport class HermesVerticalNavIcon implements OnDestroy {\r\n constructor(private _verticalNavIconService: VerticalNavIconService) {\r\n _verticalNavIconService.registerIcon();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._verticalNavIconService.unregisterIcon();\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule, Type } from '@angular/core';\r\nimport { angleDoubleIcon, angleIcon, ClarityIcons, HermesIcon } from '@hermes-ui/angular/icon';\r\nimport { HermesConditionalModule, HermesFocusOnViewInitModule } from '@hermes-ui/angular/utils';\r\n\r\nimport { HermesVerticalNav } from './vertical-nav';\r\nimport { HermesVerticalNavGroup } from './vertical-nav-group';\r\nimport { HermesVerticalNavGroupChildren } from './vertical-nav-group-children';\r\nimport { HermesVerticalNavIcon } from './vertical-nav-icon';\r\nimport { HermesVerticalNavLink } from './vertical-nav-link';\r\n\r\nexport const HERMES_VERTICAL_NAV_DIRECTIVES: Type<any>[] = [\r\n HermesVerticalNav,\r\n HermesVerticalNavLink,\r\n HermesVerticalNavGroup,\r\n HermesVerticalNavGroupChildren,\r\n HermesVerticalNavIcon,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, HermesIcon, HermesConditionalModule, HermesFocusOnViewInitModule],\r\n declarations: [HERMES_VERTICAL_NAV_DIRECTIVES],\r\n exports: [HERMES_VERTICAL_NAV_DIRECTIVES, HermesConditionalModule, HermesIcon, HermesFocusOnViewInitModule],\r\n})\r\nexport class HermesVerticalNavModule {\r\n constructor() {\r\n ClarityIcons.addIcons(angleIcon, angleDoubleIcon);\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nexport * from './vertical-nav-group-children';\r\nexport * from './vertical-nav-group';\r\nexport * from './vertical-nav';\r\nexport * from './vertical-nav-link';\r\nexport * from './vertical-nav-icon';\r\nexport * from './vertical-nav.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.VerticalNavGroupRegistrationService","i3.VerticalNavGroupService","i4.VerticalNavService","i1.VerticalNavService","i2.VerticalNavIconService","i3.VerticalNavGroupRegistrationService","i4","i1.VerticalNavIconService"],"mappings":"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"}
1
+ {"version":3,"file":"hermes-ui-angular-layout-vertical-nav.mjs","sources":["../../../layout/vertical-nav/vertical-nav-group-children.ts","../../../layout/vertical-nav/providers/vertical-nav-group.service.ts","../../../layout/vertical-nav/providers/vertical-nav-group-registration.service.ts","../../../layout/vertical-nav/providers/vertical-nav.service.ts","../../../layout/vertical-nav/vertical-nav-group.ts","../../../layout/vertical-nav/vertical-nav-group.html","../../../layout/vertical-nav/providers/vertical-nav-icon.service.ts","../../../layout/vertical-nav/vertical-nav.ts","../../../layout/vertical-nav/vertical-nav.html","../../../layout/vertical-nav/vertical-nav-link.ts","../../../layout/vertical-nav/vertical-nav-icon.ts","../../../layout/vertical-nav/vertical-nav.module.ts","../../../layout/vertical-nav/index.ts","../../../layout/vertical-nav/hermes-ui-angular-layout-vertical-nav.ts"],"sourcesContent":["/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hermes-vertical-nav-group-children',\r\n template: `<ng-content></ng-content>`,\r\n standalone: false,\r\n})\r\nexport class HermesVerticalNavGroupChildren {}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class VerticalNavGroupService {\r\n private _expandChange = new Subject<boolean>();\r\n\r\n get expandChange(): Observable<boolean> {\r\n return this._expandChange.asObservable();\r\n }\r\n\r\n expand(): void {\r\n this._expandChange.next(true);\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n/** What the vertical nav needs from a group to expand or collapse it in bulk. */\r\nexport interface VerticalNavGroupControl {\r\n expandGroup(): void;\r\n collapseGroup(): void;\r\n}\r\n\r\n@Injectable()\r\nexport class VerticalNavGroupRegistrationService {\r\n navGroupCount = 0;\r\n\r\n private readonly groups = new Set<VerticalNavGroupControl>();\r\n\r\n registerNavGroup(group?: VerticalNavGroupControl) {\r\n this.navGroupCount++;\r\n if (group) {\r\n this.groups.add(group);\r\n }\r\n }\r\n\r\n unregisterNavGroup(group?: VerticalNavGroupControl): void {\r\n this.navGroupCount--;\r\n if (group) {\r\n this.groups.delete(group);\r\n }\r\n }\r\n\r\n /** Expands every group registered right now. */\r\n expandAll(): void {\r\n this.groups.forEach(group => group.expandGroup());\r\n }\r\n\r\n /** Collapses every group registered right now. */\r\n collapseAll(): void {\r\n this.groups.forEach(group => group.collapseGroup());\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class VerticalNavService {\r\n private _animateOnCollapsed = new Subject<boolean>();\r\n private _collapsedChanged = new Subject<boolean>();\r\n private _collapsed = false;\r\n private _collapsible = false;\r\n\r\n get animateOnCollapsed(): Observable<boolean> {\r\n return this._animateOnCollapsed.asObservable();\r\n }\r\n\r\n get collapsedChanged(): Observable<boolean> {\r\n return this._collapsedChanged.asObservable();\r\n }\r\n\r\n get collapsed(): boolean {\r\n return this._collapsed;\r\n }\r\n set collapsed(value: boolean) {\r\n value = !!value;\r\n if (this.collapsible && this._collapsed !== value) {\r\n this.updateCollapseBehavior(value);\r\n }\r\n }\r\n\r\n get collapsible(): boolean {\r\n return this._collapsible;\r\n }\r\n set collapsible(value: boolean) {\r\n value = !!value;\r\n if (this._collapsible !== value) {\r\n if (!value && this.collapsed) {\r\n this.updateCollapseBehavior(false);\r\n }\r\n this._collapsible = value;\r\n }\r\n }\r\n\r\n private updateCollapseBehavior(value: boolean): void {\r\n this._animateOnCollapsed.next(value);\r\n this._collapsed = value;\r\n this._collapsedChanged.next(value);\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { animate, AnimationEvent, state, style, transition, trigger } from '@angular/animations';\r\nimport { AfterContentInit, Component, EventEmitter, HostBinding, Input, OnDestroy, Output } from '@angular/core';\r\nimport { HermesCommonStringsService, IfExpandService } from '@hermes-ui/angular/utils';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { VerticalNavGroupRegistrationService } from './providers/vertical-nav-group-registration.service';\r\nimport { VerticalNavGroupService } from './providers/vertical-nav-group.service';\r\nimport { VerticalNavService } from './providers/vertical-nav.service';\r\n\r\nconst EXPANDED_STATE = 'expanded';\r\nconst COLLAPSED_STATE = 'collapsed';\r\n\r\n@Component({\r\n selector: 'hermes-vertical-nav-group',\r\n templateUrl: './vertical-nav-group.html',\r\n providers: [IfExpandService, VerticalNavGroupService],\r\n animations: [\r\n trigger('hermesExpand', [\r\n state(EXPANDED_STATE, style({ height: '*' })),\r\n state(COLLAPSED_STATE, style({ height: 0, visibility: 'hidden' })),\r\n transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),\r\n ]),\r\n ],\r\n host: { class: 'nav-group' },\r\n standalone: false,\r\n})\r\nexport class HermesVerticalNavGroup implements AfterContentInit, OnDestroy {\r\n @Output('hermesVerticalNavGroupExpandedChange') expandedChange = new EventEmitter<boolean>(true);\r\n\r\n private wasExpanded = false;\r\n private _subscriptions: Subscription[] = [];\r\n private _expandAnimationState: string = COLLAPSED_STATE;\r\n\r\n constructor(\r\n private _itemExpand: IfExpandService,\r\n private _navGroupRegistrationService: VerticalNavGroupRegistrationService,\r\n navGroupService: VerticalNavGroupService,\r\n private _navService: VerticalNavService,\r\n public commonStrings: HermesCommonStringsService\r\n ) {\r\n _navGroupRegistrationService.registerNavGroup(this);\r\n\r\n // FIXME: This subscription handles a corner case\r\n // Vertical Nav collapse requires the animation to run first and then\r\n // remove the nodes from the DOM. If the user directly sets the input\r\n // on the hermesIfExpanded directive, we have no chance to run the animation\r\n // and wait for it to complete. This subscription makes sure that the\r\n // animation states are correct for that edge case.\r\n this._subscriptions.push(\r\n _itemExpand.expandChange.subscribe(value => {\r\n if (value && this.expandAnimationState === COLLAPSED_STATE) {\r\n if (_navService.collapsed) {\r\n _navService.collapsed = false;\r\n }\r\n this.expandAnimationState = EXPANDED_STATE;\r\n } else if (!value && this.expandAnimationState === EXPANDED_STATE) {\r\n this.expandAnimationState = COLLAPSED_STATE;\r\n }\r\n })\r\n );\r\n\r\n // 1. If the nav is collapsing, close the open nav group + save its state\r\n // 2. If the nav is expanding, expand the nav group if the previous state was expanded\r\n this._subscriptions.push(\r\n _navService.animateOnCollapsed.subscribe((goingToCollapse: boolean) => {\r\n if (goingToCollapse && this.expanded) {\r\n this.wasExpanded = true;\r\n this.expandAnimationState = COLLAPSED_STATE;\r\n } else if (!goingToCollapse && this.wasExpanded) {\r\n this.expandGroup();\r\n this.wasExpanded = false;\r\n }\r\n })\r\n );\r\n\r\n // If a link is clicked, expand the nav group\r\n this._subscriptions.push(\r\n navGroupService.expandChange.subscribe((expand: boolean) => {\r\n if (expand && !this.expanded) {\r\n this.expandGroup();\r\n }\r\n })\r\n );\r\n }\r\n\r\n @HostBinding('class.is-expanded')\r\n get expanded(): boolean {\r\n return this._itemExpand.expanded;\r\n }\r\n set expanded(value: boolean) {\r\n if (this._itemExpand.expanded !== value) {\r\n this._itemExpand.expanded = value;\r\n this.expandedChange.emit(value);\r\n }\r\n }\r\n\r\n @Input('hermesVerticalNavGroupExpanded')\r\n set userExpandedInput(value: boolean | string) {\r\n value = !!value;\r\n if (this.expanded !== value) {\r\n // We have to call toggleExpand because some cases require animations to occur first\r\n // Directly setting the Expand service value skips the animation and can result in\r\n // nodes in the DOM but the nav group still being collapsed\r\n this.toggleExpand();\r\n }\r\n }\r\n\r\n get expandAnimationState(): string {\r\n return this._expandAnimationState;\r\n }\r\n set expandAnimationState(value: string) {\r\n if (value !== this._expandAnimationState) {\r\n this._expandAnimationState = value;\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n // This makes sure that if someone marks a nav group expanded in a collapsed nav\r\n // the expanded property is switched back to collapsed state.\r\n if (this._navService.collapsed && this.expanded) {\r\n this.wasExpanded = true;\r\n this.expandAnimationState = COLLAPSED_STATE;\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._subscriptions.forEach((sub: Subscription) => sub.unsubscribe());\r\n this._navGroupRegistrationService.unregisterNavGroup(this);\r\n }\r\n\r\n expandGroup(): void {\r\n this.expanded = true;\r\n // Expanded animation occurs after Expand.expand is set to true\r\n this.expandAnimationState = EXPANDED_STATE;\r\n }\r\n\r\n collapseGroup(): void {\r\n // If a Vertical Nav Group toggle button is clicked while the Vertical Nav is in Collapsed state,\r\n // the Vertical Nav should be expanded first.\r\n this.expandAnimationState = COLLAPSED_STATE;\r\n }\r\n\r\n // closes a group after the collapse animation\r\n expandAnimationDone($event: AnimationEvent) {\r\n if ($event.toState === COLLAPSED_STATE) {\r\n this.expanded = false;\r\n }\r\n }\r\n\r\n toggleExpand(): void {\r\n if (this.expanded) {\r\n this.collapseGroup();\r\n } else {\r\n // If nav is collasped, first open the nav\r\n if (this._navService.collapsed) {\r\n this._navService.collapsed = false;\r\n }\r\n // then expand the nav group\r\n this.expandGroup();\r\n }\r\n }\r\n}\r\n","<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n<div class=\"nav-group-content\">\r\n <ng-content select=\"[hermesVerticalNavLink]\"></ng-content>\r\n <button class=\"nav-group-trigger\" type=\"button\" [attr.aria-expanded]=\"expanded\" (click)=\"toggleExpand()\">\r\n <ng-content select=\"[hermesVerticalNavIcon]\"></ng-content>\r\n <div class=\"nav-group-text\">\r\n <ng-content></ng-content>\r\n </div>\r\n <hermes-icon shape=\"angle\" class=\"nav-group-trigger-icon\" [direction]=\"expanded ? 'up' : 'down'\"></hermes-icon>\r\n </button>\r\n</div>\r\n<!--TODO: This animation needs to be added to the hermes-vertical-nav-group-children component-->\r\n<div class=\"nav-group-children\" [@hermesExpand]=\"expandAnimationState\" (@hermesExpand.done)=\"expandAnimationDone($event)\">\r\n <ng-content select=\"[hermesIfExpanded], hermes-vertical-nav-group-children\"></ng-content>\r\n</div>\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class VerticalNavIconService {\r\n private _icons = 0;\r\n\r\n get hasIcons(): boolean {\r\n return this._icons > 0;\r\n }\r\n\r\n registerIcon(): void {\r\n this._icons++;\r\n }\r\n\r\n unregisterIcon(): void {\r\n this._icons--;\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport {\r\n AfterViewInit,\r\n booleanAttribute,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Inject,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n Output,\r\n PLATFORM_ID,\r\n} from '@angular/core';\r\nimport { HermesCommonStringsService, uniqueIdFactory } from '@hermes-ui/angular/utils';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { VerticalNavGroupRegistrationService } from './providers/vertical-nav-group-registration.service';\r\nimport { VerticalNavIconService } from './providers/vertical-nav-icon.service';\r\nimport { VerticalNavService } from './providers/vertical-nav.service';\r\n\r\n/**\r\n * How a vertical nav that manages itself behaves on wide screens.\r\n *\r\n * - `auto`: icon-only at rest, and opens **over** the content while the pointer or keyboard focus\r\n * is on it, collapsing again when they leave. The page never moves: the nav holds its rail-wide\r\n * slot in the layout and grows on top of it.\r\n * - `fixed`: always expanded, next to the content.\r\n * - `compact`: always icon-only, next to the content.\r\n */\r\nexport type HermesVerticalNavMode = 'auto' | 'fixed' | 'compact';\r\n\r\n/** Overrides for the strings of the nav footer. Anything left out falls back to the common strings. */\r\nexport interface HermesVerticalNavFooterLabels {\r\n behavior?: string;\r\n auto?: string;\r\n fixed?: string;\r\n compact?: string;\r\n expandAll?: string;\r\n collapseAll?: string;\r\n}\r\n\r\nconst MODES: readonly { id: HermesVerticalNavMode; shape: string }[] = [\r\n { id: 'auto', shape: 'two-way-arrows' },\r\n { id: 'fixed', shape: 'pin' },\r\n { id: 'compact', shape: 'bars' },\r\n];\r\n\r\n// Mirrors `--hermes-vertical-nav-transition-duration` (0.2s): how long the width takes to settle.\r\nconst TRANSITION_MS = 200;\r\n// Measuring at the exact instant the transition ends is a coin flip - the last frame lands before or\r\n// after the timer. A small margin takes the measurement out of the race without being noticeable.\r\nconst MEASURE_MARGIN_MS = 60;\r\n// Below this a label is not really laid out: it's the 1x1 screen-reader-only box of a collapsed nav,\r\n// or a node that hasn't been measured yet.\r\nconst MIN_LABEL_WIDTH_PX = 8;\r\n// Room left between the end of the longest label and the end of its box, so the hover pill and the\r\n// selected tint don't end flush against the divider.\r\nconst LABEL_BREATHING_PX = 8;\r\nconst MEASURED_WIDTH_PROPERTY = '--hermes-vertical-nav-measured-width';\r\n\r\n@Component({\r\n selector: 'hermes-vertical-nav',\r\n templateUrl: './vertical-nav.html',\r\n providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService],\r\n host: {\r\n class: 'hermes-vertical-nav',\r\n // Suprimido durante o peek: reaproveita 100% do CSS já existente pro\r\n // estado expandido (inclusive empurrar o conteúdo ao lado, via flex\r\n // normal) em vez de tentar \"desfazer\" as regras de .is-collapsed via\r\n // :hover (o `collapsed` real, usado por toggleByButton()/ariaExpanded/\r\n // o output, não muda — só a classe aplicada).\r\n '[class.is-collapsed]': 'collapsed && !peeking',\r\n '[class.is-peeking]': 'peeking',\r\n '[class.has-nav-groups]': 'hasNavGroups',\r\n '[class.has-icons]': 'hasIcons',\r\n '[class.is-pinnable]': 'pinnable',\r\n '[class.is-overlay]': 'overlay',\r\n '[class.has-footer]': 'showFooter',\r\n '[attr.role]': 'ariaLabel ? \"navigation\" : null',\r\n '[attr.aria-label]': 'ariaLabel || null',\r\n '(mouseenter)': 'onPointerEnter()',\r\n '(mouseleave)': 'onPointerLeave()',\r\n '(focusin)': 'onFocusIn($event)',\r\n '(focusout)': 'onFocusOut($event)',\r\n },\r\n standalone: false,\r\n})\r\nexport class HermesVerticalNav implements AfterViewInit, OnDestroy {\r\n @Input('hermesVerticalNavToggleLabel') toggleLabel: string;\r\n /** Quando true, o toggle vira semanticamente um \"fixar aberta/fechada\" (ícones\r\n * pin/unpin em vez do chevron duplo genérico) e habilita o hover-peek: passar\r\n * o mouse enquanto colapsada e não fixada expande temporariamente (ver\r\n * onPointerEnter/onPointerLeave abaixo), sem persistir nem emitir o output. */\r\n @Input('hermesVerticalNavPinnable') pinnable = false;\r\n\r\n /** Accessible name of the navigation landmark. When set, the host is exposed as `role=\"navigation\"`. */\r\n @Input('hermesVerticalNavLabel') ariaLabel: string;\r\n\r\n /**\r\n * Makes the nav manage its own collapsed state from a behavior mode (see `HermesVerticalNavMode`),\r\n * including the hover/focus reaction of `auto`. `null` (the default) leaves the collapsed state to\r\n * `hermesVerticalNavCollapsed` and the built-in toggle button, as before.\r\n */\r\n @Input('hermesVerticalNavMode')\r\n get mode(): HermesVerticalNavMode | null {\r\n return this._mode;\r\n }\r\n set mode(value: HermesVerticalNavMode | null) {\r\n this._mode = value ?? null;\r\n this.syncCollapsible();\r\n this.applyMode();\r\n }\r\n\r\n /** Shows the footer with the behavior menu and the expand-all / collapse-all buttons. Needs a mode. */\r\n @Input({ alias: 'hermesVerticalNavFooter', transform: booleanAttribute }) footer = false;\r\n\r\n /**\r\n * Lets the width of the open nav grow (up to `--hermes-vertical-nav-max-width`) to fit the longest\r\n * label in view. Only applies to a nav with a mode.\r\n */\r\n @Input({ alias: 'hermesVerticalNavAutoWidth', transform: booleanAttribute }) autoWidth = true;\r\n\r\n /** Overrides for the footer strings, e.g. to pass translated ones. */\r\n @Input('hermesVerticalNavFooterLabels') footerLabels: HermesVerticalNavFooterLabels;\r\n\r\n @Output('hermesVerticalNavModeChange') modeChange = new EventEmitter<HermesVerticalNavMode>();\r\n\r\n @Output('hermesVerticalNavCollapsedChange') private _collapsedChanged = new EventEmitter<boolean>(true);\r\n\r\n contentId = uniqueIdFactory();\r\n readonly modes = MODES;\r\n\r\n /** true só enquanto o mouse está sobre uma nav colapsada e \"pinnable\" —\r\n * não persiste, não afeta `collapsed`/o output, é puramente visual. */\r\n peeking = false;\r\n\r\n menuOpen = false;\r\n\r\n private _mode: HermesVerticalNavMode | null = null;\r\n private _collapsibleInput = false;\r\n private hovered = false;\r\n private focusedVisible = false;\r\n private readonly isBrowser: boolean;\r\n private measureTimer: ReturnType<typeof setTimeout> | undefined;\r\n private observer: MutationObserver | undefined;\r\n private _sub: Subscription;\r\n\r\n constructor(\r\n private _navService: VerticalNavService,\r\n private _navIconService: VerticalNavIconService,\r\n private _navGroupRegistrationService: VerticalNavGroupRegistrationService,\r\n public commonStrings: HermesCommonStringsService,\r\n private host: ElementRef<HTMLElement>,\r\n private cdr: ChangeDetectorRef,\r\n private zone: NgZone,\r\n @Inject(PLATFORM_ID) platformId: any\r\n ) {\r\n this.isBrowser = isPlatformBrowser(platformId);\r\n this._sub = _navService.collapsedChanged.subscribe(value => {\r\n this._collapsedChanged.emit(value);\r\n if (!value) {\r\n this.scheduleMeasure();\r\n }\r\n });\r\n }\r\n\r\n @Input('hermesVerticalNavCollapsible')\r\n get collapsible(): boolean | string {\r\n return this._navService.collapsible;\r\n }\r\n set collapsible(value: boolean | string) {\r\n this._collapsibleInput = !!value;\r\n this.syncCollapsible();\r\n }\r\n\r\n @Input('hermesVerticalNavCollapsed')\r\n get collapsed(): boolean | string {\r\n return this._navService.collapsed;\r\n }\r\n set collapsed(value: boolean | string) {\r\n this._navService.collapsed = value as boolean;\r\n }\r\n\r\n /** The nav derives its collapsed state from a mode, instead of from the collapsed input. */\r\n get managed(): boolean {\r\n return this._mode !== null;\r\n }\r\n\r\n /** In `auto` mode the nav sits on top of the content instead of pushing it. */\r\n get overlay(): boolean {\r\n return this._mode === 'auto';\r\n }\r\n\r\n get showFooter(): boolean {\r\n return this.footer && this.managed;\r\n }\r\n\r\n get hasNavGroups(): boolean {\r\n return this._navGroupRegistrationService.navGroupCount > 0;\r\n }\r\n\r\n get hasIcons(): boolean {\r\n return this._navIconService.hasIcons;\r\n }\r\n\r\n get ariaExpanded(): string {\r\n if (!this.collapsible) {\r\n return null;\r\n }\r\n return !this.collapsed ? 'true' : 'false';\r\n }\r\n\r\n /** The built-in top toggle is replaced by the footer once the nav manages itself. */\r\n get showToggle(): boolean {\r\n return !!this.collapsible && !this.managed;\r\n }\r\n\r\n get currentMode() {\r\n return MODES.find(mode => mode.id === this._mode) ?? MODES[0];\r\n }\r\n\r\n get currentModeLabel(): string {\r\n return this.label(this.currentMode.id);\r\n }\r\n\r\n label(key: keyof HermesVerticalNavFooterLabels): string {\r\n const strings = this.commonStrings.keys;\r\n const fallback: Record<keyof HermesVerticalNavFooterLabels, string> = {\r\n behavior: strings.verticalNavBehavior,\r\n auto: strings.verticalNavModeAuto,\r\n fixed: strings.verticalNavModeFixed,\r\n compact: strings.verticalNavModeCompact,\r\n expandAll: strings.verticalNavExpandAll,\r\n collapseAll: strings.verticalNavCollapseAll,\r\n };\r\n return this.footerLabels?.[key] ?? fallback[key];\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.isBrowser) {\r\n return;\r\n }\r\n\r\n // The host can be created under a pointer that is already resting on it (e.g. the nav lives inside\r\n // each routed page and is recreated on every navigation). Browsers don't always fire `mouseenter`\r\n // for that, so ask the browser directly; it may take a frame to update `:hover`, hence two tries.\r\n if (this.managed) {\r\n [0, 150].forEach(delay => setTimeout(() => this.syncHoverFromDom(), delay));\r\n }\r\n\r\n // Anything that changes what's in view - a group opening, lazy content, translated labels -\r\n // changes which label is the longest, so it asks for a new measurement.\r\n this.zone.runOutsideAngular(() => {\r\n const content = this.host.nativeElement.querySelector('.nav-content');\r\n if (content && typeof MutationObserver !== 'undefined') {\r\n this.observer = new MutationObserver(() => this.scheduleMeasure());\r\n this.observer.observe(content, {\r\n childList: true,\r\n subtree: true,\r\n characterData: true,\r\n attributes: true,\r\n attributeFilter: ['class'],\r\n });\r\n }\r\n });\r\n\r\n this.scheduleMeasure();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._sub.unsubscribe();\r\n this.observer?.disconnect();\r\n clearTimeout(this.measureTimer);\r\n }\r\n\r\n toggleByButton() {\r\n this.collapsed = !this.collapsed;\r\n }\r\n\r\n onPointerEnter(): void {\r\n if (this.pinnable && this.collapsed) {\r\n this.peeking = true;\r\n }\r\n if (this._mode === 'auto') {\r\n this.hovered = true;\r\n this.applyMode();\r\n }\r\n }\r\n\r\n onPointerLeave(): void {\r\n this.peeking = false;\r\n if (this._mode === 'auto') {\r\n this.hovered = false;\r\n this.applyMode();\r\n }\r\n }\r\n\r\n /**\r\n * Only keyboard focus (`:focus-visible`) holds the nav open. Clicking a link also focuses it, and\r\n * click-focus alone would keep the nav open until something else was clicked - `:focus-visible` is\r\n * exactly the browser's own pointer-vs-keyboard distinction, so pointer-triggered focus is left to\r\n * the pointer's own enter/leave.\r\n */\r\n onFocusIn(event: FocusEvent): void {\r\n if (this._mode !== 'auto') {\r\n return;\r\n }\r\n const target = event.target;\r\n if (!(target instanceof Element)) {\r\n return;\r\n }\r\n try {\r\n if (target.matches(':focus-visible')) {\r\n this.focusedVisible = true;\r\n this.applyMode();\r\n }\r\n } catch {\r\n // :focus-visible unsupported in this engine; the pointer alone decides.\r\n }\r\n }\r\n\r\n /**\r\n * Focus keeps the nav open only while it is still inside it. A missing `relatedTarget` counts as\r\n * leaving: clicking a routed link can unmount the focused element, and treating that as \"still\r\n * inside\" would pin the nav open for good.\r\n */\r\n onFocusOut(event: FocusEvent): void {\r\n if (this._mode !== 'auto') {\r\n return;\r\n }\r\n const related = event.relatedTarget;\r\n const stillInside = related instanceof Node && this.host.nativeElement.contains(related);\r\n if (!stillInside) {\r\n this.focusedVisible = false;\r\n this.applyMode();\r\n }\r\n }\r\n\r\n // --- Footer ---------------------------------------------------------------------------------\r\n\r\n toggleMenu(): void {\r\n this.menuOpen = !this.menuOpen;\r\n this.applyMode();\r\n }\r\n\r\n closeMenu(restoreFocus = false): void {\r\n if (!this.menuOpen) {\r\n return;\r\n }\r\n this.menuOpen = false;\r\n this.applyMode();\r\n if (restoreFocus) {\r\n this.host.nativeElement.querySelector<HTMLElement>('.nav-footer-mode-btn')?.focus();\r\n }\r\n }\r\n\r\n selectMode(mode: HermesVerticalNavMode): void {\r\n this.menuOpen = false;\r\n this.setMode(mode);\r\n this.host.nativeElement.querySelector<HTMLElement>('.nav-footer-mode-btn')?.focus();\r\n }\r\n\r\n /** The footer's \"expand all\": opens every group, leaving `compact` first since it has nowhere to show them. */\r\n expandAll(): void {\r\n this.ensureExpanded();\r\n this._navGroupRegistrationService.expandAll();\r\n }\r\n\r\n collapseAll(): void {\r\n this._navGroupRegistrationService.collapseAll();\r\n }\r\n\r\n onFooterFocusOut(event: FocusEvent): void {\r\n const related = event.relatedTarget;\r\n const footer = event.currentTarget as HTMLElement;\r\n if (!(related instanceof Node && footer.contains(related))) {\r\n this.closeMenu();\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent): void {\r\n if (this.menuOpen && !this.host.nativeElement.querySelector('.nav-footer')?.contains(event.target as Node)) {\r\n this.closeMenu();\r\n }\r\n }\r\n\r\n // --- Internals ------------------------------------------------------------------------------\r\n\r\n private syncCollapsible(): void {\r\n this._navService.collapsible = this._collapsibleInput || this.managed;\r\n }\r\n\r\n private setMode(mode: HermesVerticalNavMode): void {\r\n if (this._mode !== mode) {\r\n this._mode = mode;\r\n this.modeChange.emit(mode);\r\n }\r\n this.syncCollapsible();\r\n this.applyMode();\r\n }\r\n\r\n private ensureExpanded(): void {\r\n if (this._mode === 'compact') {\r\n this.setMode('fixed');\r\n } else if (this.collapsed) {\r\n this.collapsed = false;\r\n }\r\n }\r\n\r\n /**\r\n * Derives the collapsed state from the mode. `auto` stays open while the pointer or the keyboard is\r\n * on the nav, and also while its own menu is open - otherwise reaching for the menu, which sits\r\n * over the list, could collapse the nav under the pointer.\r\n */\r\n private applyMode(): void {\r\n if (!this.managed) {\r\n return;\r\n }\r\n let collapsed: boolean;\r\n switch (this._mode) {\r\n case 'fixed':\r\n collapsed = false;\r\n break;\r\n case 'compact':\r\n collapsed = true;\r\n break;\r\n default:\r\n collapsed = !(this.hovered || this.focusedVisible || this.menuOpen);\r\n }\r\n this.collapsed = collapsed;\r\n }\r\n\r\n private syncHoverFromDom(): void {\r\n if (this._mode !== 'auto') {\r\n return;\r\n }\r\n let hovering = false;\r\n try {\r\n hovering = this.host.nativeElement.matches(':hover');\r\n } catch {\r\n return;\r\n }\r\n if (hovering !== this.hovered) {\r\n this.hovered = hovering;\r\n this.applyMode();\r\n this.cdr.markForCheck();\r\n }\r\n }\r\n\r\n private scheduleMeasure(): void {\r\n if (!this.isBrowser || !this.managed || !this.autoWidth) {\r\n return;\r\n }\r\n clearTimeout(this.measureTimer);\r\n this.zone.runOutsideAngular(() => {\r\n this.measureTimer = setTimeout(() => this.measureWidth(), TRANSITION_MS + MEASURE_MARGIN_MS);\r\n });\r\n }\r\n\r\n /**\r\n * The smallest width at which every label in view fits whole. CSS clamps it between the nav's\r\n * `min-width` and `max-width`, so this only reports what the labels ask for.\r\n *\r\n * The measurement is absolute rather than an adjustment on the current width: each label reports the\r\n * column width it needs (everything around it plus its own text), and the largest wins. Measuring\r\n * twice in a row gives the same number whether the column is wide or at its floor.\r\n *\r\n * Only labels in view count. A closed group's children stay in the DOM (that's how their height\r\n * animates) but are `visibility: hidden`, and the nav shouldn't grow to fit text nobody sees.\r\n */\r\n private measureWidth(): void {\r\n const root = this.host.nativeElement;\r\n const panel = root.querySelector<HTMLElement>('.nav-panel');\r\n if (!panel || root.classList.contains('is-collapsed') || !this.managed || !this.autoWidth) {\r\n return;\r\n }\r\n\r\n const panelWidth = panel.getBoundingClientRect().width;\r\n const range = document.createRange();\r\n let needed = 0;\r\n\r\n root.querySelectorAll<HTMLElement>('.nav-content .nav-text, .nav-content .nav-group-text').forEach(label => {\r\n const hiddenBy = label.closest<HTMLElement>('.nav-group-children');\r\n if (hiddenBy && getComputedStyle(hiddenBy).visibility === 'hidden') {\r\n return;\r\n }\r\n\r\n const box = label.getBoundingClientRect().width;\r\n if (box < MIN_LABEL_WIDTH_PX) {\r\n return;\r\n }\r\n\r\n range.selectNodeContents(label);\r\n needed = Math.max(needed, panelWidth - box + range.getBoundingClientRect().width + LABEL_BREATHING_PX);\r\n });\r\n\r\n range.detach();\r\n\r\n // No measurable label: the list isn't laid out yet. Leaving the width alone is right - guessing\r\n // is what makes a column jump on its own.\r\n if (needed > 0) {\r\n root.style.setProperty(MEASURED_WIDTH_PROPERTY, `${Math.ceil(needed)}px`);\r\n }\r\n }\r\n}\r\n","<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n<div class=\"nav-panel\">\r\n @if (showToggle) {\r\n <button\r\n type=\"button\"\r\n class=\"nav-trigger\"\r\n [class.on-collapse]=\"collapsed\"\r\n [attr.aria-controls]=\"contentId\"\r\n [attr.aria-expanded]=\"ariaExpanded\"\r\n [attr.aria-label]=\"toggleLabel || commonStrings.keys.verticalNavToggle\"\r\n (click)=\"toggleByButton()\"\r\n >\r\n @if (pinnable) {\r\n <hermes-icon [shape]=\"collapsed ? 'pin' : 'unpin'\" class=\"nav-trigger-icon\"></hermes-icon>\r\n } @else {\r\n <hermes-icon shape=\"angle-double\" class=\"nav-trigger-icon\" [direction]=\"(collapsed) ? 'right' : 'left'\"></hermes-icon>\r\n }\r\n </button>\r\n }\r\n <div [id]=\"contentId\" class=\"nav-content\">\r\n <ng-content></ng-content>\r\n @if (collapsible && collapsed && !managed) {\r\n <button\r\n type=\"button\"\r\n (click)=\"collapsed = false\"\r\n class=\"nav-btn\"\r\n aria-hidden=\"true\"\r\n tabindex=\"-1\"\r\n [attr.aria-controls]=\"contentId\"\r\n [attr.aria-label]=\"toggleLabel || commonStrings.keys.verticalNavToggle\"\r\n ></button>\r\n }\r\n </div>\r\n @if (showFooter) {\r\n <div class=\"nav-footer\" (focusout)=\"onFooterFocusOut($event)\" (keydown.escape)=\"closeMenu(true)\">\r\n <button\r\n type=\"button\"\r\n class=\"nav-footer-btn nav-footer-mode-btn\"\r\n aria-haspopup=\"menu\"\r\n [attr.aria-expanded]=\"menuOpen\"\r\n [attr.aria-label]=\"label('behavior') + ': ' + currentModeLabel\"\r\n [title]=\"label('behavior') + ': ' + currentModeLabel\"\r\n (click)=\"toggleMenu()\"\r\n >\r\n <hermes-icon [shape]=\"currentMode.shape\"></hermes-icon>\r\n </button>\r\n <span class=\"nav-footer-mode\">{{ currentModeLabel }}</span>\r\n <button\r\n type=\"button\"\r\n class=\"nav-footer-btn nav-footer-batch\"\r\n [attr.aria-label]=\"label('expandAll')\"\r\n [title]=\"label('expandAll')\"\r\n (click)=\"expandAll()\"\r\n >\r\n <hermes-icon shape=\"angle-double\" direction=\"down\"></hermes-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"nav-footer-btn nav-footer-batch\"\r\n [attr.aria-label]=\"label('collapseAll')\"\r\n [title]=\"label('collapseAll')\"\r\n (click)=\"collapseAll()\"\r\n >\r\n <hermes-icon shape=\"angle-double\" direction=\"up\"></hermes-icon>\r\n </button>\r\n @if (menuOpen) {\r\n <div class=\"nav-footer-menu\" role=\"menu\" [attr.aria-label]=\"label('behavior')\">\r\n @for (item of modes; track item.id) {\r\n <button\r\n type=\"button\"\r\n class=\"nav-footer-menu-item\"\r\n role=\"menuitemradio\"\r\n [attr.aria-checked]=\"item.id === mode\"\r\n (click)=\"selectMode(item.id)\"\r\n >\r\n <hermes-icon [shape]=\"item.shape\"></hermes-icon>\r\n <span class=\"nav-footer-menu-label\">{{ label(item.id) }}</span>\r\n @if (item.id === mode) {\r\n <hermes-icon shape=\"check\"></hermes-icon>\r\n }\r\n </button>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { ChangeDetectorRef, Component, ElementRef, Inject, OnDestroy, Optional } from '@angular/core';\r\nimport { fromEvent, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\nimport { VerticalNavGroupService } from './providers/vertical-nav-group.service';\r\n\r\n@Component({\r\n selector: '[hermesVerticalNavLink]',\r\n template: `\r\n <ng-content select=\"[hermesVerticalNavIcon]\"></ng-content>\r\n <span class=\"nav-text\">\r\n <ng-content></ng-content>\r\n </span>\r\n `,\r\n host: {\r\n class: 'nav-link',\r\n },\r\n standalone: false,\r\n})\r\nexport class HermesVerticalNavLink implements OnDestroy {\r\n private destroy$ = new Subject<void>();\r\n\r\n constructor(\r\n host: ElementRef<HTMLElement>,\r\n ref: ChangeDetectorRef,\r\n @Optional() @Inject(VerticalNavGroupService) navGroupService: VerticalNavGroupService | null\r\n ) {\r\n // Note: since the `VerticalNavGroupService` is an optional provider, we'll setup the event\r\n // listener only when the `[hermesVerticalLink]` is located within the `hermes-vertical-nav-group`.\r\n navGroupService &&\r\n fromEvent(host.nativeElement, 'click')\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(() => {\r\n navGroupService.expand();\r\n ref.markForCheck();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Directive, OnDestroy } from '@angular/core';\r\n\r\nimport { VerticalNavIconService } from './providers/vertical-nav-icon.service';\r\n\r\n@Directive({\r\n selector: '[hermesVerticalNavIcon]',\r\n host: { class: 'nav-icon' },\r\n standalone: false,\r\n})\r\nexport class HermesVerticalNavIcon implements OnDestroy {\r\n constructor(private _verticalNavIconService: VerticalNavIconService) {\r\n _verticalNavIconService.registerIcon();\r\n }\r\n\r\n ngOnDestroy() {\r\n this._verticalNavIconService.unregisterIcon();\r\n }\r\n}\r\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport {\n angleDoubleIcon,\n angleIcon,\n barsIcon,\n checkIcon,\n HermesIcons,\n HermesIcon,\n pinIcon,\n twoWayArrowsIcon,\n unpinIcon,\n} from '@hermes-ui/angular/icon';\nimport { HermesConditionalModule, HermesFocusOnViewInitModule } from '@hermes-ui/angular/utils';\n\nimport { HermesVerticalNav } from './vertical-nav';\nimport { HermesVerticalNavGroup } from './vertical-nav-group';\nimport { HermesVerticalNavGroupChildren } from './vertical-nav-group-children';\nimport { HermesVerticalNavIcon } from './vertical-nav-icon';\nimport { HermesVerticalNavLink } from './vertical-nav-link';\n\nexport const HERMES_VERTICAL_NAV_DIRECTIVES: Type<any>[] = [\n HermesVerticalNav,\n HermesVerticalNavLink,\n HermesVerticalNavGroup,\n HermesVerticalNavGroupChildren,\n HermesVerticalNavIcon,\n];\n\n@NgModule({\n imports: [CommonModule, HermesIcon, HermesConditionalModule, HermesFocusOnViewInitModule],\n declarations: [HERMES_VERTICAL_NAV_DIRECTIVES],\n exports: [HERMES_VERTICAL_NAV_DIRECTIVES, HermesConditionalModule, HermesIcon, HermesFocusOnViewInitModule],\n})\nexport class HermesVerticalNavModule {\n constructor() {\n HermesIcons.addIcons(angleIcon, angleDoubleIcon, barsIcon, checkIcon, pinIcon, unpinIcon, twoWayArrowsIcon);\n }\n}\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nexport * from './vertical-nav-group-children';\r\nexport * from './vertical-nav-group';\r\nexport * from './vertical-nav';\r\nexport * from './vertical-nav-link';\r\nexport * from './vertical-nav-icon';\r\nexport * from './vertical-nav.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.VerticalNavGroupRegistrationService","i3.VerticalNavGroupService","i4.VerticalNavService","i1.VerticalNavIconService"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { Keys, uniqueIdFactory, ScrollingService, CdkTrapFocusModule } from '@he
6
6
  import * as i4 from '@angular/common';
7
7
  import { isPlatformBrowser, CommonModule } from '@angular/common';
8
8
  import * as i5 from '@hermes-ui/angular/icon';
9
- import { ClarityIcons, windowCloseIcon, HermesIcon } from '@hermes-ui/angular/icon';
9
+ import { HermesIcons, windowCloseIcon, HermesIcon } from '@hermes-ui/angular/icon';
10
10
 
11
11
  /*
12
12
  * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
@@ -348,7 +348,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
348
348
  const HERMES_MODAL_DIRECTIVES = [HermesModal, HermesModalBody, HermesModalHostComponent];
349
349
  class HermesModalModule {
350
350
  constructor() {
351
- ClarityIcons.addIcons(windowCloseIcon);
351
+ HermesIcons.addIcons(windowCloseIcon);
352
352
  }
353
353
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
354
354
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: HermesModalModule, declarations: [HermesModal, HermesModalBody, HermesModalHostComponent], imports: [CommonModule, CdkTrapFocusModule, HermesIcon], exports: [HermesModal, HermesModalBody, HermesModalHostComponent, HermesIcon] }); }
@@ -1 +1 @@
1
- {"version":3,"file":"hermes-ui-angular-modal.mjs","sources":["../../../modal/modal-stack.service.ts","../../../modal/modal-configuration.service.ts","../../../modal/modal.ts","../../../modal/modal.html","../../../modal/modal-body.ts","../../../modal/modal-host.component.ts","../../../modal/modal.module.ts","../../../modal/side-panel.ts","../../../modal/side-panel.html","../../../modal/side-panel.module.ts","../../../modal/index.ts","../../../modal/hermes-ui-angular-modal.ts"],"sourcesContent":["/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { Keys } from '@hermes-ui/angular/utils';\r\n\r\nexport interface Closable {\r\n close(): void;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ModalStackService {\r\n private readonly modalStack: Closable[] = [];\r\n private readonly keyUpEventListener = this.onKeyUp.bind(this);\r\n\r\n constructor(@Inject(PLATFORM_ID) private readonly platformId: unknown) {}\r\n\r\n trackModalOpen(openedModal: Closable) {\r\n if (this.modalStack.includes(openedModal) === false) {\r\n this.modalStack.unshift(openedModal);\r\n }\r\n\r\n if (isPlatformBrowser(this.platformId)) {\r\n document.body.addEventListener('keyup', this.keyUpEventListener);\r\n }\r\n }\r\n\r\n trackModalClose(closedModal: Closable) {\r\n const closedModalIndex = this.modalStack.indexOf(closedModal);\r\n\r\n if (closedModalIndex > -1) {\r\n this.modalStack.splice(closedModalIndex, 1);\r\n }\r\n\r\n if (this.modalStack.length === 0 && isPlatformBrowser(this.platformId)) {\r\n document.body.removeEventListener('keyup', this.keyUpEventListener);\r\n }\r\n }\r\n\r\n private onKeyUp(event: KeyboardEvent) {\r\n if (this.modalStack.length && event.key === Keys.Escape) {\r\n // We blur the active element because escaping with an input element in focus could cause\r\n // an ExpressionChangedAfterItHasBeenCheckedError for the touched state. (CDE-1662)\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n this.modalStack[0].close();\r\n }\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class HermesModalConfigurationService {\r\n fadeMove = 'fadeDown';\r\n backdrop = true;\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { animate, AnimationEvent, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChange,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { HermesCommonStringsService, ScrollingService, uniqueIdFactory } from '@hermes-ui/angular/utils';\r\n\r\nimport { HermesModalConfigurationService } from './modal-configuration.service';\r\nimport { ModalStackService } from './modal-stack.service';\r\n\r\n@Component({\r\n selector: 'hermes-modal',\r\n viewProviders: [ScrollingService],\r\n templateUrl: './modal.html',\r\n styles: [\r\n `\r\n :host {\r\n display: none;\r\n }\r\n :host.open {\r\n display: inline;\r\n }\r\n `,\r\n ],\r\n animations: [\r\n trigger('fadeMove', [\r\n transition('* => fadeDown', [\r\n style({ opacity: 0, transform: 'translate(0, -25%)' }),\r\n animate('0.2s ease-in-out'),\r\n ]),\r\n transition('fadeDown => *', [\r\n animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' })),\r\n ]),\r\n transition('* => fadeLeft', [style({ opacity: 0, transform: 'translate(25%, 0)' }), animate('0.2s ease-in-out')]),\r\n transition('fadeLeft => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(25%, 0)' }))]),\r\n transition('* => fadeUp', [style({ opacity: 0, transform: 'translate(0, 50%)' }), animate('0.2s ease-in-out')]),\r\n transition('fadeUp => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, 50%)' }))]),\r\n ]),\r\n trigger('fade', [\r\n transition('void => *', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),\r\n transition('* => void', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),\r\n ]),\r\n ],\r\n standalone: false,\r\n})\r\nexport class HermesModal implements OnChanges, OnDestroy {\r\n modalId = uniqueIdFactory();\r\n @ViewChild('title') title: ElementRef<HTMLElement>;\r\n\r\n @Input('hermesModalOpen') @HostBinding('class.open') _open = false;\r\n @Output('hermesModalOpenChange') _openChanged = new EventEmitter<boolean>(false);\r\n\r\n @Input('hermesModalClosable') closable = true;\r\n @Input('hermesModalCloseButtonAriaLabel') closeButtonAriaLabel = this.commonStrings.keys.close;\r\n @Input('hermesModalSize') size = 'md';\r\n @Input('hermesModalStaticBackdrop') staticBackdrop = true;\r\n @Input('hermesModalSkipAnimation') skipAnimation = false;\r\n\r\n @Input('hermesModalPreventClose') stopClose = false;\r\n @Output('hermesModalAlternateClose') altClose = new EventEmitter<boolean>(false);\r\n\r\n @Input('hermesModalLabelledById') labelledBy: string;\r\n\r\n // presently this is only used by inline wizards\r\n @Input('hermesModalOverrideScrollService') bypassScrollService = false;\r\n\r\n // Provide raw modal content. This is used by the wizard so that the same template can be rendered with and without a modal.\r\n @ContentChild('hermesInternalModalContentTemplate') protected readonly modalContentTemplate: TemplateRef<any>;\r\n\r\n @ViewChild('body') private readonly bodyElementRef: ElementRef<HTMLElement>;\r\n\r\n constructor(\r\n private _scrollingService: ScrollingService,\r\n public commonStrings: HermesCommonStringsService,\r\n private modalStackService: ModalStackService,\r\n private configuration: HermesModalConfigurationService\r\n ) {}\r\n\r\n get fadeMove(): string {\r\n return this.skipAnimation ? '' : this.configuration.fadeMove;\r\n }\r\n set fadeMove(move: string) {\r\n this.configuration.fadeMove = move;\r\n }\r\n\r\n get backdrop(): boolean {\r\n return this.configuration.backdrop;\r\n }\r\n\r\n // Detect when _open is set to true and set no-scrolling to true\r\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\r\n if (!this.bypassScrollService && changes && Object.prototype.hasOwnProperty.call(changes, '_open')) {\r\n if (changes._open.currentValue) {\r\n this._scrollingService.stopScrolling();\r\n this.modalStackService.trackModalOpen(this);\r\n } else {\r\n this._scrollingService.resumeScrolling();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._scrollingService.resumeScrolling();\r\n }\r\n\r\n open(): void {\r\n if (this._open) {\r\n return;\r\n }\r\n this._open = true;\r\n this._openChanged.emit(true);\r\n this.modalStackService.trackModalOpen(this);\r\n }\r\n\r\n backdropClick(): void {\r\n if (this.staticBackdrop) {\r\n return;\r\n }\r\n\r\n this.close();\r\n }\r\n\r\n close(): void {\r\n if (this.stopClose) {\r\n this.altClose.emit(false);\r\n return;\r\n }\r\n if (!this.closable || !this._open) {\r\n return;\r\n }\r\n this._open = false;\r\n }\r\n\r\n fadeDone(e: AnimationEvent) {\r\n if (e.toState === 'void') {\r\n // TODO: Investigate if we can decouple from animation events\r\n this._openChanged.emit(false);\r\n this.modalStackService.trackModalClose(this);\r\n }\r\n }\r\n\r\n scrollTop() {\r\n this.bodyElementRef.nativeElement.scrollTo(0, 0);\r\n }\r\n}\r\n","<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n@if (_open) {\r\n<div class=\"modal\" [class.modal-full-screen]=\"size == 'full-screen'\">\r\n <!--fixme: revisit when ngClass works with exit animation-->\r\n <div\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n [@fadeMove]=\"fadeMove\"\r\n (@fadeMove.done)=\"fadeDone($event)\"\r\n class=\"modal-dialog\"\r\n [class.modal-sm]=\"size == 'sm'\"\r\n [class.modal-lg]=\"size == 'lg'\"\r\n [class.modal-xl]=\"size == 'xl'\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-hidden]=\"!_open\"\r\n [attr.aria-labelledby]=\"labelledBy || modalId\"\r\n >\r\n <div class=\"hermes-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\r\n <!-- This wizard is tightly coupled to the modal styles, so changes here could require changes in the wizard. -->\r\n @if (!modalContentTemplate) {\r\n <div class=\"modal-content-wrapper\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header--accessible\">\r\n <ng-content select=\".leading-button\"></ng-content>\r\n <div class=\"modal-title-wrapper\" #title [id]=\"modalId\" cdkFocusInitial tabindex=\"-1\">\r\n <ng-content select=\".modal-title\"></ng-content>\r\n </div>\r\n @if (closable) {\r\n <button\r\n type=\"button\"\r\n [attr.aria-label]=\"closeButtonAriaLabel || commonStrings.keys.close\"\r\n class=\"close\"\r\n (click)=\"close()\"\r\n >\r\n <hermes-icon shape=\"window-close\"></hermes-icon>\r\n </button>\r\n }\r\n </div>\r\n <div #body class=\"modal-body-wrapper\">\r\n <ng-content select=\".modal-body\"></ng-content>\r\n </div>\r\n <ng-content select=\".modal-footer\"></ng-content>\r\n </div>\r\n </div>\r\n } @else {\r\n <ng-template [ngTemplateOutlet]=\"modalContentTemplate\"></ng-template>\r\n }\r\n </div>\r\n <div class=\"hermes-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\r\n @if (backdrop) {\r\n <div\r\n [@fade]\r\n class=\"modal-backdrop\"\r\n [class.static]=\"staticBackdrop\"\r\n aria-hidden=\"true\"\r\n (click)=\"backdropClick()\"\r\n ></div>\r\n }\r\n</div>\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Directive, ElementRef, NgZone, OnDestroy, Renderer2 } from '@angular/core';\r\n\r\n/**\r\n * Allows modal overflow area to be scrollable via keyboard.\r\n * The modal body will focus with keyboard navigation only.\r\n * This allows inner focusable items to be focused without\r\n * the overflow scroll being focused.\r\n */\r\n@Directive({\r\n selector: '.modal-body',\r\n standalone: false,\r\n})\r\nexport class HermesModalBody implements OnDestroy {\r\n private tabindex = '0';\r\n private unlisteners: VoidFunction[] = [];\r\n private observer: ResizeObserver;\r\n\r\n constructor(\r\n private readonly renderer: Renderer2,\r\n private readonly host: ElementRef<HTMLElement>,\r\n ngZone: NgZone\r\n ) {\r\n ngZone.runOutsideAngular(() => {\r\n this.observer = new ResizeObserver(() => this.addOrRemoveTabIndex());\r\n this.observer.observe(host.nativeElement);\r\n\r\n this.unlisteners.push(\r\n renderer.listen(host.nativeElement, 'mouseup', () => {\r\n // set the tabindex binding back when click is completed with mouseup\r\n this.addOrRemoveTabIndex();\r\n }),\r\n renderer.listen(host.nativeElement, 'mousedown', () => {\r\n // tabindex = 0 binding should be removed\r\n // so it won't be focused when click starts with mousedown\r\n this.removeTabIndex();\r\n })\r\n );\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n while (this.unlisteners.length) {\r\n this.unlisteners.pop()();\r\n }\r\n\r\n this.observer.disconnect();\r\n this.observer = null;\r\n }\r\n\r\n private addTabIndex() {\r\n this.renderer.setAttribute(this.host.nativeElement, 'tabindex', this.tabindex);\r\n }\r\n\r\n private removeTabIndex() {\r\n this.renderer.removeAttribute(this.host.nativeElement, 'tabindex');\r\n }\r\n\r\n private addOrRemoveTabIndex() {\r\n const modalBody = this.host.nativeElement.parentElement;\r\n\r\n if (modalBody && modalBody.clientHeight < modalBody.scrollHeight) {\r\n this.addTabIndex();\r\n } else {\r\n this.removeTabIndex();\r\n }\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: '[hermesModalHost]',\r\n host: { '[class.hermes-modal-host]': 'true' },\r\n template: `\r\n <div class=\"hermes-modal-host-scrollable\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n standalone: false,\r\n})\r\nexport class HermesModalHostComponent {}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule, Type } from '@angular/core';\r\nimport { ClarityIcons, HermesIcon, windowCloseIcon } from '@hermes-ui/angular/icon';\r\nimport { CdkTrapFocusModule } from '@hermes-ui/angular/utils';\r\n\r\nimport { HermesModal } from './modal';\r\nimport { HermesModalBody } from './modal-body';\r\nimport { HermesModalHostComponent } from './modal-host.component';\r\n\r\nexport const HERMES_MODAL_DIRECTIVES: Type<any>[] = [HermesModal, HermesModalBody, HermesModalHostComponent];\r\n\r\n@NgModule({\r\n imports: [CommonModule, CdkTrapFocusModule, HermesIcon],\r\n declarations: [HERMES_MODAL_DIRECTIVES],\r\n exports: [HERMES_MODAL_DIRECTIVES, HermesIcon],\r\n})\r\nexport class HermesModalModule {\r\n constructor() {\r\n ClarityIcons.addIcons(windowCloseIcon);\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { HermesCommonStringsService } from '@hermes-ui/angular/utils';\r\n\r\nimport { HermesModal } from './modal';\r\nimport { HermesModalConfigurationService } from './modal-configuration.service';\r\n\r\n@Component({\r\n selector: 'hermes-side-panel',\r\n templateUrl: 'side-panel.html',\r\n host: {\r\n '[class.side-panel]': 'true',\r\n },\r\n standalone: false,\r\n})\r\nexport class HermesSidePanel implements OnInit, OnDestroy {\r\n @Output('hermesSidePanelOpenChange') openChange = new EventEmitter<boolean>(false);\r\n @Input('hermesSidePanelCloseButtonAriaLabel') closeButtonAriaLabel: string | undefined;\r\n @Input('hermesSidePanelSkipAnimation') skipAnimation = false;\r\n @Input('hermesSidePanelLabelledById') labelledById: string;\r\n @Input('hermesSidePanelStaticBackdrop') staticBackdrop = false;\r\n @Input('hermesSidePanelClosable') closable = true;\r\n @Input('hermesSidePanelPreventClose') preventClose = false;\r\n @Output('hermesSidePanelAlternateClose') altClose = new EventEmitter<boolean>(false);\r\n\r\n private _pinnable = false;\r\n private _pinned = false;\r\n private originalStopClose: boolean;\r\n private _position = 'right';\r\n private _modal: HermesModal;\r\n private __open = false;\r\n\r\n private _size = 'md';\r\n\r\n constructor(\r\n private element: ElementRef<HTMLElement>,\r\n private configuration: HermesModalConfigurationService,\r\n public commonStrings: HermesCommonStringsService\r\n ) {}\r\n\r\n @Input('hermesSidePanelOpen')\r\n get _open(): boolean {\r\n return this.__open;\r\n }\r\n set _open(open: boolean) {\r\n if (open !== this.__open) {\r\n this.__open = open;\r\n if (this.pinned) {\r\n this.updateModalState();\r\n }\r\n }\r\n }\r\n\r\n @Input('hermesSidePanelSize')\r\n get size(): string {\r\n return this._size;\r\n }\r\n\r\n set size(value: string) {\r\n if (!value) {\r\n value = 'md';\r\n }\r\n if (this._size !== value) {\r\n this._size = value;\r\n if (this.pinned) {\r\n this.updateModalState();\r\n }\r\n }\r\n }\r\n\r\n @Input('hermesSidePanelPosition')\r\n get position(): string {\r\n return this._position;\r\n }\r\n\r\n set position(position: string) {\r\n if (position && position !== this._position) {\r\n this._position = position;\r\n if (this._position === 'right') {\r\n this.configuration.fadeMove = 'fadeLeft';\r\n } else if (this._position === 'bottom') {\r\n this.configuration.fadeMove = 'fadeUp';\r\n }\r\n }\r\n }\r\n\r\n @Input('hermesSidePanelPinned')\r\n get pinned(): boolean {\r\n return this._pinned;\r\n }\r\n\r\n set pinned(pinned: boolean) {\r\n this._pinned = pinned;\r\n if (this.modal) {\r\n this.updateModalState();\r\n }\r\n }\r\n\r\n @Input()\r\n get hermesSidePanelBackdrop(): boolean {\r\n return this.configuration.backdrop;\r\n }\r\n\r\n set hermesSidePanelBackdrop(backdrop: boolean) {\r\n if (backdrop !== undefined) {\r\n this.configuration.backdrop = backdrop;\r\n }\r\n }\r\n\r\n @Input()\r\n get hermesSidePanelPinnable(): boolean {\r\n return this._pinnable;\r\n }\r\n\r\n set hermesSidePanelPinnable(pinnable: boolean) {\r\n this._pinnable = pinnable;\r\n }\r\n\r\n @ViewChild(HermesModal)\r\n private get modal(): HermesModal {\r\n return this._modal;\r\n }\r\n\r\n private set modal(modal: HermesModal) {\r\n this._modal = modal;\r\n this.originalStopClose = this.modal.stopClose;\r\n this.updateModalState();\r\n }\r\n\r\n private get hostElement(): HTMLElement {\r\n return (this.element.nativeElement as HTMLElement).closest('.hermes-modal-host') || document.body;\r\n }\r\n\r\n @HostBinding('class.side-panel-bottom')\r\n private get bottomPositionCssClass() {\r\n return this.position === 'bottom';\r\n }\r\n\r\n ngOnInit(): void {\r\n this.configuration.fadeMove = 'fadeLeft';\r\n if (this.position === 'bottom') {\r\n this.configuration.fadeMove = 'fadeUp';\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.cleanupPinnedClasses();\r\n }\r\n\r\n handleModalOpen(open: boolean) {\r\n if (open) {\r\n this.updateModalState();\r\n } else {\r\n this.cleanupPinnedClasses();\r\n }\r\n this.openChange.emit(open);\r\n }\r\n\r\n open() {\r\n this.modal.open();\r\n }\r\n\r\n close() {\r\n this.modal.close();\r\n }\r\n\r\n togglePinned() {\r\n this.pinned = !this.pinned;\r\n }\r\n\r\n @HostListener('document:pointerup', ['$event'])\r\n private documentClick(event: Event) {\r\n if (\r\n !this.element.nativeElement.contains(event.target as Node) &&\r\n this.modal._open &&\r\n !this.configuration.backdrop\r\n ) {\r\n this.modal.close();\r\n }\r\n }\r\n\r\n private updateModalState() {\r\n if (!this.modal) {\r\n return;\r\n }\r\n if (this.pinned) {\r\n this.modal.stopClose = true;\r\n if (this.__open) {\r\n this.updatePinnedClasses();\r\n }\r\n } else {\r\n this.modal.stopClose = this.originalStopClose;\r\n this.cleanupPinnedClasses();\r\n }\r\n }\r\n\r\n private cleanupPinnedClasses() {\r\n [this.hostElement, document.body].forEach(host => {\r\n host.classList.forEach(className => {\r\n if (className.startsWith('hermes-side-panel-pinned-')) {\r\n host.classList.remove(className);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private updatePinnedClasses() {\r\n this.cleanupPinnedClasses();\r\n this.hostElement.classList.add(`hermes-side-panel-pinned-${this.position}-${this.size}`);\r\n }\r\n}\r\n","<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<hermes-modal\r\n [hermesModalOpen]=\"_open\"\r\n (hermesModalOpenChange)=\"handleModalOpen($event)\"\r\n [hermesModalCloseButtonAriaLabel]=\"closeButtonAriaLabel\"\r\n [hermesModalSize]=\"size\"\r\n [hermesModalSkipAnimation]=\"skipAnimation\"\r\n [hermesModalStaticBackdrop]=\"staticBackdrop\"\r\n [hermesModalLabelledById]=\"labelledById\"\r\n [hermesModalPreventClose]=\"preventClose\"\r\n [hermesModalClosable]=\"closable\"\r\n (hermesModalAlternateClose)=\"altClose.emit($event)\"\r\n [hermesModalOverrideScrollService]=\"true\"\r\n>\r\n @if (hermesSidePanelPinnable) {\r\n <button\r\n type=\"button\"\r\n [attr.aria-label]=\"commonStrings.keys.sidePanelPin\"\r\n class=\"leading-button pinnable\"\r\n (click)=\"togglePinned()\"\r\n >\r\n <hermes-icon [shape]=\"pinned ? 'unpin' : 'pin'\"></hermes-icon>\r\n </button>\r\n }\r\n <div class=\"modal-title\"><ng-content select=\".side-panel-title\"></ng-content></div>\r\n <div class=\"modal-body\"><ng-content select=\".side-panel-body\"></ng-content></div>\r\n <div class=\"modal-footer\"><ng-content select=\".side-panel-footer\"></ng-content></div>\r\n</hermes-modal>\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule, Type } from '@angular/core';\r\nimport { HermesIcon } from '@hermes-ui/angular/icon';\r\nimport { CdkTrapFocusModule } from '@hermes-ui/angular/utils';\r\n\r\nimport { HermesModalModule } from './modal.module';\r\nimport { HermesSidePanel } from './side-panel';\r\n\r\nexport const HERMES_SIDEPANEL_DIRECTIVES: Type<any>[] = [HermesSidePanel];\r\n\r\n@NgModule({\r\n imports: [CommonModule, CdkTrapFocusModule, HermesIcon, HermesModalModule],\r\n declarations: [HERMES_SIDEPANEL_DIRECTIVES],\r\n exports: [HERMES_SIDEPANEL_DIRECTIVES, HermesModalModule, HermesIcon],\r\n})\r\nexport class HermesSidePanelModule {}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nexport * from './modal';\r\nexport * from './modal.module';\r\nexport * from './modal-configuration.service';\r\nexport * from './modal-host.component';\r\nexport * from './side-panel.module';\r\nexport * from './modal-body';\r\nexport * from './side-panel';\r\nexport * from './modal-stack.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.ModalStackService","i3.HermesModalConfigurationService","i1.HermesModalConfigurationService","i2","i3","i4.HermesModal","i5.HermesModalBody"],"mappings":"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"}
1
+ {"version":3,"file":"hermes-ui-angular-modal.mjs","sources":["../../../modal/modal-stack.service.ts","../../../modal/modal-configuration.service.ts","../../../modal/modal.ts","../../../modal/modal.html","../../../modal/modal-body.ts","../../../modal/modal-host.component.ts","../../../modal/modal.module.ts","../../../modal/side-panel.ts","../../../modal/side-panel.html","../../../modal/side-panel.module.ts","../../../modal/index.ts","../../../modal/hermes-ui-angular-modal.ts"],"sourcesContent":["/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { isPlatformBrowser } from '@angular/common';\r\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\nimport { Keys } from '@hermes-ui/angular/utils';\r\n\r\nexport interface Closable {\r\n close(): void;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ModalStackService {\r\n private readonly modalStack: Closable[] = [];\r\n private readonly keyUpEventListener = this.onKeyUp.bind(this);\r\n\r\n constructor(@Inject(PLATFORM_ID) private readonly platformId: unknown) {}\r\n\r\n trackModalOpen(openedModal: Closable) {\r\n if (this.modalStack.includes(openedModal) === false) {\r\n this.modalStack.unshift(openedModal);\r\n }\r\n\r\n if (isPlatformBrowser(this.platformId)) {\r\n document.body.addEventListener('keyup', this.keyUpEventListener);\r\n }\r\n }\r\n\r\n trackModalClose(closedModal: Closable) {\r\n const closedModalIndex = this.modalStack.indexOf(closedModal);\r\n\r\n if (closedModalIndex > -1) {\r\n this.modalStack.splice(closedModalIndex, 1);\r\n }\r\n\r\n if (this.modalStack.length === 0 && isPlatformBrowser(this.platformId)) {\r\n document.body.removeEventListener('keyup', this.keyUpEventListener);\r\n }\r\n }\r\n\r\n private onKeyUp(event: KeyboardEvent) {\r\n if (this.modalStack.length && event.key === Keys.Escape) {\r\n // We blur the active element because escaping with an input element in focus could cause\r\n // an ExpressionChangedAfterItHasBeenCheckedError for the touched state. (CDE-1662)\r\n (document.activeElement as HTMLElement).blur();\r\n\r\n this.modalStack[0].close();\r\n }\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class HermesModalConfigurationService {\r\n fadeMove = 'fadeDown';\r\n backdrop = true;\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { animate, AnimationEvent, style, transition, trigger } from '@angular/animations';\r\nimport {\r\n Component,\r\n ContentChild,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChange,\r\n TemplateRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { HermesCommonStringsService, ScrollingService, uniqueIdFactory } from '@hermes-ui/angular/utils';\r\n\r\nimport { HermesModalConfigurationService } from './modal-configuration.service';\r\nimport { ModalStackService } from './modal-stack.service';\r\n\r\n@Component({\r\n selector: 'hermes-modal',\r\n viewProviders: [ScrollingService],\r\n templateUrl: './modal.html',\r\n styles: [\r\n `\r\n :host {\r\n display: none;\r\n }\r\n :host.open {\r\n display: inline;\r\n }\r\n `,\r\n ],\r\n animations: [\r\n trigger('fadeMove', [\r\n transition('* => fadeDown', [\r\n style({ opacity: 0, transform: 'translate(0, -25%)' }),\r\n animate('0.2s ease-in-out'),\r\n ]),\r\n transition('fadeDown => *', [\r\n animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' })),\r\n ]),\r\n transition('* => fadeLeft', [style({ opacity: 0, transform: 'translate(25%, 0)' }), animate('0.2s ease-in-out')]),\r\n transition('fadeLeft => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(25%, 0)' }))]),\r\n transition('* => fadeUp', [style({ opacity: 0, transform: 'translate(0, 50%)' }), animate('0.2s ease-in-out')]),\r\n transition('fadeUp => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, 50%)' }))]),\r\n ]),\r\n trigger('fade', [\r\n transition('void => *', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),\r\n transition('* => void', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),\r\n ]),\r\n ],\r\n standalone: false,\r\n})\r\nexport class HermesModal implements OnChanges, OnDestroy {\r\n modalId = uniqueIdFactory();\r\n @ViewChild('title') title: ElementRef<HTMLElement>;\r\n\r\n @Input('hermesModalOpen') @HostBinding('class.open') _open = false;\r\n @Output('hermesModalOpenChange') _openChanged = new EventEmitter<boolean>(false);\r\n\r\n @Input('hermesModalClosable') closable = true;\r\n @Input('hermesModalCloseButtonAriaLabel') closeButtonAriaLabel = this.commonStrings.keys.close;\r\n @Input('hermesModalSize') size = 'md';\r\n @Input('hermesModalStaticBackdrop') staticBackdrop = true;\r\n @Input('hermesModalSkipAnimation') skipAnimation = false;\r\n\r\n @Input('hermesModalPreventClose') stopClose = false;\r\n @Output('hermesModalAlternateClose') altClose = new EventEmitter<boolean>(false);\r\n\r\n @Input('hermesModalLabelledById') labelledBy: string;\r\n\r\n // presently this is only used by inline wizards\r\n @Input('hermesModalOverrideScrollService') bypassScrollService = false;\r\n\r\n // Provide raw modal content. This is used by the wizard so that the same template can be rendered with and without a modal.\r\n @ContentChild('hermesInternalModalContentTemplate') protected readonly modalContentTemplate: TemplateRef<any>;\r\n\r\n @ViewChild('body') private readonly bodyElementRef: ElementRef<HTMLElement>;\r\n\r\n constructor(\r\n private _scrollingService: ScrollingService,\r\n public commonStrings: HermesCommonStringsService,\r\n private modalStackService: ModalStackService,\r\n private configuration: HermesModalConfigurationService\r\n ) {}\r\n\r\n get fadeMove(): string {\r\n return this.skipAnimation ? '' : this.configuration.fadeMove;\r\n }\r\n set fadeMove(move: string) {\r\n this.configuration.fadeMove = move;\r\n }\r\n\r\n get backdrop(): boolean {\r\n return this.configuration.backdrop;\r\n }\r\n\r\n // Detect when _open is set to true and set no-scrolling to true\r\n ngOnChanges(changes: { [propName: string]: SimpleChange }): void {\r\n if (!this.bypassScrollService && changes && Object.prototype.hasOwnProperty.call(changes, '_open')) {\r\n if (changes._open.currentValue) {\r\n this._scrollingService.stopScrolling();\r\n this.modalStackService.trackModalOpen(this);\r\n } else {\r\n this._scrollingService.resumeScrolling();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._scrollingService.resumeScrolling();\r\n }\r\n\r\n open(): void {\r\n if (this._open) {\r\n return;\r\n }\r\n this._open = true;\r\n this._openChanged.emit(true);\r\n this.modalStackService.trackModalOpen(this);\r\n }\r\n\r\n backdropClick(): void {\r\n if (this.staticBackdrop) {\r\n return;\r\n }\r\n\r\n this.close();\r\n }\r\n\r\n close(): void {\r\n if (this.stopClose) {\r\n this.altClose.emit(false);\r\n return;\r\n }\r\n if (!this.closable || !this._open) {\r\n return;\r\n }\r\n this._open = false;\r\n }\r\n\r\n fadeDone(e: AnimationEvent) {\r\n if (e.toState === 'void') {\r\n // TODO: Investigate if we can decouple from animation events\r\n this._openChanged.emit(false);\r\n this.modalStackService.trackModalClose(this);\r\n }\r\n }\r\n\r\n scrollTop() {\r\n this.bodyElementRef.nativeElement.scrollTo(0, 0);\r\n }\r\n}\r\n","<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n\r\n@if (_open) {\r\n<div class=\"modal\" [class.modal-full-screen]=\"size == 'full-screen'\">\r\n <!--fixme: revisit when ngClass works with exit animation-->\r\n <div\r\n cdkTrapFocus\r\n [cdkTrapFocusAutoCapture]=\"true\"\r\n [@fadeMove]=\"fadeMove\"\r\n (@fadeMove.done)=\"fadeDone($event)\"\r\n class=\"modal-dialog\"\r\n [class.modal-sm]=\"size == 'sm'\"\r\n [class.modal-lg]=\"size == 'lg'\"\r\n [class.modal-xl]=\"size == 'xl'\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-hidden]=\"!_open\"\r\n [attr.aria-labelledby]=\"labelledBy || modalId\"\r\n >\r\n <div class=\"hermes-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\r\n <!-- This wizard is tightly coupled to the modal styles, so changes here could require changes in the wizard. -->\r\n @if (!modalContentTemplate) {\r\n <div class=\"modal-content-wrapper\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header--accessible\">\r\n <ng-content select=\".leading-button\"></ng-content>\r\n <div class=\"modal-title-wrapper\" #title [id]=\"modalId\" cdkFocusInitial tabindex=\"-1\">\r\n <ng-content select=\".modal-title\"></ng-content>\r\n </div>\r\n @if (closable) {\r\n <button\r\n type=\"button\"\r\n [attr.aria-label]=\"closeButtonAriaLabel || commonStrings.keys.close\"\r\n class=\"close\"\r\n (click)=\"close()\"\r\n >\r\n <hermes-icon shape=\"window-close\"></hermes-icon>\r\n </button>\r\n }\r\n </div>\r\n <div #body class=\"modal-body-wrapper\">\r\n <ng-content select=\".modal-body\"></ng-content>\r\n </div>\r\n <ng-content select=\".modal-footer\"></ng-content>\r\n </div>\r\n </div>\r\n } @else {\r\n <ng-template [ngTemplateOutlet]=\"modalContentTemplate\"></ng-template>\r\n }\r\n </div>\r\n <div class=\"hermes-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\r\n @if (backdrop) {\r\n <div\r\n [@fade]\r\n class=\"modal-backdrop\"\r\n [class.static]=\"staticBackdrop\"\r\n aria-hidden=\"true\"\r\n (click)=\"backdropClick()\"\r\n ></div>\r\n }\r\n</div>\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Directive, ElementRef, NgZone, OnDestroy, Renderer2 } from '@angular/core';\r\n\r\n/**\r\n * Allows modal overflow area to be scrollable via keyboard.\r\n * The modal body will focus with keyboard navigation only.\r\n * This allows inner focusable items to be focused without\r\n * the overflow scroll being focused.\r\n */\r\n@Directive({\r\n selector: '.modal-body',\r\n standalone: false,\r\n})\r\nexport class HermesModalBody implements OnDestroy {\r\n private tabindex = '0';\r\n private unlisteners: VoidFunction[] = [];\r\n private observer: ResizeObserver;\r\n\r\n constructor(\r\n private readonly renderer: Renderer2,\r\n private readonly host: ElementRef<HTMLElement>,\r\n ngZone: NgZone\r\n ) {\r\n ngZone.runOutsideAngular(() => {\r\n this.observer = new ResizeObserver(() => this.addOrRemoveTabIndex());\r\n this.observer.observe(host.nativeElement);\r\n\r\n this.unlisteners.push(\r\n renderer.listen(host.nativeElement, 'mouseup', () => {\r\n // set the tabindex binding back when click is completed with mouseup\r\n this.addOrRemoveTabIndex();\r\n }),\r\n renderer.listen(host.nativeElement, 'mousedown', () => {\r\n // tabindex = 0 binding should be removed\r\n // so it won't be focused when click starts with mousedown\r\n this.removeTabIndex();\r\n })\r\n );\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n while (this.unlisteners.length) {\r\n this.unlisteners.pop()();\r\n }\r\n\r\n this.observer.disconnect();\r\n this.observer = null;\r\n }\r\n\r\n private addTabIndex() {\r\n this.renderer.setAttribute(this.host.nativeElement, 'tabindex', this.tabindex);\r\n }\r\n\r\n private removeTabIndex() {\r\n this.renderer.removeAttribute(this.host.nativeElement, 'tabindex');\r\n }\r\n\r\n private addOrRemoveTabIndex() {\r\n const modalBody = this.host.nativeElement.parentElement;\r\n\r\n if (modalBody && modalBody.clientHeight < modalBody.scrollHeight) {\r\n this.addTabIndex();\r\n } else {\r\n this.removeTabIndex();\r\n }\r\n }\r\n}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: '[hermesModalHost]',\r\n host: { '[class.hermes-modal-host]': 'true' },\r\n template: `\r\n <div class=\"hermes-modal-host-scrollable\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n standalone: false,\r\n})\r\nexport class HermesModalHostComponent {}\r\n","/*\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n * This software is released under MIT license.\n * The full license information can be found in LICENSE in the root directory of this project.\n */\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule, Type } from '@angular/core';\nimport { HermesIcons, HermesIcon, windowCloseIcon } from '@hermes-ui/angular/icon';\nimport { CdkTrapFocusModule } from '@hermes-ui/angular/utils';\n\nimport { HermesModal } from './modal';\nimport { HermesModalBody } from './modal-body';\nimport { HermesModalHostComponent } from './modal-host.component';\n\nexport const HERMES_MODAL_DIRECTIVES: Type<any>[] = [HermesModal, HermesModalBody, HermesModalHostComponent];\n\n@NgModule({\n imports: [CommonModule, CdkTrapFocusModule, HermesIcon],\n declarations: [HERMES_MODAL_DIRECTIVES],\n exports: [HERMES_MODAL_DIRECTIVES, HermesIcon],\n})\nexport class HermesModalModule {\n constructor() {\n HermesIcons.addIcons(windowCloseIcon);\n }\n}\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { HermesCommonStringsService } from '@hermes-ui/angular/utils';\r\n\r\nimport { HermesModal } from './modal';\r\nimport { HermesModalConfigurationService } from './modal-configuration.service';\r\n\r\n@Component({\r\n selector: 'hermes-side-panel',\r\n templateUrl: 'side-panel.html',\r\n host: {\r\n '[class.side-panel]': 'true',\r\n },\r\n standalone: false,\r\n})\r\nexport class HermesSidePanel implements OnInit, OnDestroy {\r\n @Output('hermesSidePanelOpenChange') openChange = new EventEmitter<boolean>(false);\r\n @Input('hermesSidePanelCloseButtonAriaLabel') closeButtonAriaLabel: string | undefined;\r\n @Input('hermesSidePanelSkipAnimation') skipAnimation = false;\r\n @Input('hermesSidePanelLabelledById') labelledById: string;\r\n @Input('hermesSidePanelStaticBackdrop') staticBackdrop = false;\r\n @Input('hermesSidePanelClosable') closable = true;\r\n @Input('hermesSidePanelPreventClose') preventClose = false;\r\n @Output('hermesSidePanelAlternateClose') altClose = new EventEmitter<boolean>(false);\r\n\r\n private _pinnable = false;\r\n private _pinned = false;\r\n private originalStopClose: boolean;\r\n private _position = 'right';\r\n private _modal: HermesModal;\r\n private __open = false;\r\n\r\n private _size = 'md';\r\n\r\n constructor(\r\n private element: ElementRef<HTMLElement>,\r\n private configuration: HermesModalConfigurationService,\r\n public commonStrings: HermesCommonStringsService\r\n ) {}\r\n\r\n @Input('hermesSidePanelOpen')\r\n get _open(): boolean {\r\n return this.__open;\r\n }\r\n set _open(open: boolean) {\r\n if (open !== this.__open) {\r\n this.__open = open;\r\n if (this.pinned) {\r\n this.updateModalState();\r\n }\r\n }\r\n }\r\n\r\n @Input('hermesSidePanelSize')\r\n get size(): string {\r\n return this._size;\r\n }\r\n\r\n set size(value: string) {\r\n if (!value) {\r\n value = 'md';\r\n }\r\n if (this._size !== value) {\r\n this._size = value;\r\n if (this.pinned) {\r\n this.updateModalState();\r\n }\r\n }\r\n }\r\n\r\n @Input('hermesSidePanelPosition')\r\n get position(): string {\r\n return this._position;\r\n }\r\n\r\n set position(position: string) {\r\n if (position && position !== this._position) {\r\n this._position = position;\r\n if (this._position === 'right') {\r\n this.configuration.fadeMove = 'fadeLeft';\r\n } else if (this._position === 'bottom') {\r\n this.configuration.fadeMove = 'fadeUp';\r\n }\r\n }\r\n }\r\n\r\n @Input('hermesSidePanelPinned')\r\n get pinned(): boolean {\r\n return this._pinned;\r\n }\r\n\r\n set pinned(pinned: boolean) {\r\n this._pinned = pinned;\r\n if (this.modal) {\r\n this.updateModalState();\r\n }\r\n }\r\n\r\n @Input()\r\n get hermesSidePanelBackdrop(): boolean {\r\n return this.configuration.backdrop;\r\n }\r\n\r\n set hermesSidePanelBackdrop(backdrop: boolean) {\r\n if (backdrop !== undefined) {\r\n this.configuration.backdrop = backdrop;\r\n }\r\n }\r\n\r\n @Input()\r\n get hermesSidePanelPinnable(): boolean {\r\n return this._pinnable;\r\n }\r\n\r\n set hermesSidePanelPinnable(pinnable: boolean) {\r\n this._pinnable = pinnable;\r\n }\r\n\r\n @ViewChild(HermesModal)\r\n private get modal(): HermesModal {\r\n return this._modal;\r\n }\r\n\r\n private set modal(modal: HermesModal) {\r\n this._modal = modal;\r\n this.originalStopClose = this.modal.stopClose;\r\n this.updateModalState();\r\n }\r\n\r\n private get hostElement(): HTMLElement {\r\n return (this.element.nativeElement as HTMLElement).closest('.hermes-modal-host') || document.body;\r\n }\r\n\r\n @HostBinding('class.side-panel-bottom')\r\n private get bottomPositionCssClass() {\r\n return this.position === 'bottom';\r\n }\r\n\r\n ngOnInit(): void {\r\n this.configuration.fadeMove = 'fadeLeft';\r\n if (this.position === 'bottom') {\r\n this.configuration.fadeMove = 'fadeUp';\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.cleanupPinnedClasses();\r\n }\r\n\r\n handleModalOpen(open: boolean) {\r\n if (open) {\r\n this.updateModalState();\r\n } else {\r\n this.cleanupPinnedClasses();\r\n }\r\n this.openChange.emit(open);\r\n }\r\n\r\n open() {\r\n this.modal.open();\r\n }\r\n\r\n close() {\r\n this.modal.close();\r\n }\r\n\r\n togglePinned() {\r\n this.pinned = !this.pinned;\r\n }\r\n\r\n @HostListener('document:pointerup', ['$event'])\r\n private documentClick(event: Event) {\r\n if (\r\n !this.element.nativeElement.contains(event.target as Node) &&\r\n this.modal._open &&\r\n !this.configuration.backdrop\r\n ) {\r\n this.modal.close();\r\n }\r\n }\r\n\r\n private updateModalState() {\r\n if (!this.modal) {\r\n return;\r\n }\r\n if (this.pinned) {\r\n this.modal.stopClose = true;\r\n if (this.__open) {\r\n this.updatePinnedClasses();\r\n }\r\n } else {\r\n this.modal.stopClose = this.originalStopClose;\r\n this.cleanupPinnedClasses();\r\n }\r\n }\r\n\r\n private cleanupPinnedClasses() {\r\n [this.hostElement, document.body].forEach(host => {\r\n host.classList.forEach(className => {\r\n if (className.startsWith('hermes-side-panel-pinned-')) {\r\n host.classList.remove(className);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private updatePinnedClasses() {\r\n this.cleanupPinnedClasses();\r\n this.hostElement.classList.add(`hermes-side-panel-pinned-${this.position}-${this.size}`);\r\n }\r\n}\r\n","<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<hermes-modal\r\n [hermesModalOpen]=\"_open\"\r\n (hermesModalOpenChange)=\"handleModalOpen($event)\"\r\n [hermesModalCloseButtonAriaLabel]=\"closeButtonAriaLabel\"\r\n [hermesModalSize]=\"size\"\r\n [hermesModalSkipAnimation]=\"skipAnimation\"\r\n [hermesModalStaticBackdrop]=\"staticBackdrop\"\r\n [hermesModalLabelledById]=\"labelledById\"\r\n [hermesModalPreventClose]=\"preventClose\"\r\n [hermesModalClosable]=\"closable\"\r\n (hermesModalAlternateClose)=\"altClose.emit($event)\"\r\n [hermesModalOverrideScrollService]=\"true\"\r\n>\r\n @if (hermesSidePanelPinnable) {\r\n <button\r\n type=\"button\"\r\n [attr.aria-label]=\"commonStrings.keys.sidePanelPin\"\r\n class=\"leading-button pinnable\"\r\n (click)=\"togglePinned()\"\r\n >\r\n <hermes-icon [shape]=\"pinned ? 'unpin' : 'pin'\"></hermes-icon>\r\n </button>\r\n }\r\n <div class=\"modal-title\"><ng-content select=\".side-panel-title\"></ng-content></div>\r\n <div class=\"modal-body\"><ng-content select=\".side-panel-body\"></ng-content></div>\r\n <div class=\"modal-footer\"><ng-content select=\".side-panel-footer\"></ng-content></div>\r\n</hermes-modal>\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule, Type } from '@angular/core';\r\nimport { HermesIcon } from '@hermes-ui/angular/icon';\r\nimport { CdkTrapFocusModule } from '@hermes-ui/angular/utils';\r\n\r\nimport { HermesModalModule } from './modal.module';\r\nimport { HermesSidePanel } from './side-panel';\r\n\r\nexport const HERMES_SIDEPANEL_DIRECTIVES: Type<any>[] = [HermesSidePanel];\r\n\r\n@NgModule({\r\n imports: [CommonModule, CdkTrapFocusModule, HermesIcon, HermesModalModule],\r\n declarations: [HERMES_SIDEPANEL_DIRECTIVES],\r\n exports: [HERMES_SIDEPANEL_DIRECTIVES, HermesModalModule, HermesIcon],\r\n})\r\nexport class HermesSidePanelModule {}\r\n","/*\r\n * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n * The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n * This software is released under MIT license.\r\n * The full license information can be found in LICENSE in the root directory of this project.\r\n */\r\n\r\nexport * from './modal';\r\nexport * from './modal.module';\r\nexport * from './modal-configuration.service';\r\nexport * from './modal-host.component';\r\nexport * from './side-panel.module';\r\nexport * from './modal-body';\r\nexport * from './side-panel';\r\nexport * from './modal-stack.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.ModalStackService","i3.HermesModalConfigurationService","i1.HermesModalConfigurationService","i2","i3","i4.HermesModal","i5.HermesModalBody"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { isPlatformBrowser, CommonModule } from '@angular/common';
7
7
  import * as i1 from '@hermes-ui/angular/utils';
8
8
  import { uniqueIdFactory, HermesFocusOnViewInitModule } from '@hermes-ui/angular/utils';
9
9
  import * as i3 from '@hermes-ui/angular/icon';
10
- import { ClarityIcons, windowCloseIcon, infoCircleIcon, HermesIcon } from '@hermes-ui/angular/icon';
10
+ import { HermesIcons, windowCloseIcon, infoCircleIcon, HermesIcon } from '@hermes-ui/angular/icon';
11
11
 
12
12
  /*
13
13
  * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
@@ -458,7 +458,7 @@ const HERMES_SIGNPOST_DIRECTIVES = [
458
458
  ];
459
459
  class HermesSignpostModule {
460
460
  constructor() {
461
- ClarityIcons.addIcons(windowCloseIcon, infoCircleIcon);
461
+ HermesIcons.addIcons(windowCloseIcon, infoCircleIcon);
462
462
  }
463
463
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: HermesSignpostModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
464
464
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: HermesSignpostModule, declarations: [HermesSignpost,