@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-accordion.mjs","sources":["../../../accordion/accordion-description.ts","../../../accordion/accordion-panel.ts","../../../accordion/accordion-panel.html","../../../accordion/enums/accordion-strategy.enum.ts","../../../accordion/models/accordion.model.ts","../../../accordion/providers/accordion.service.ts","../../../accordion/accordion.ts","../../../accordion/accordion-title.ts","../../../accordion/accordion-content.ts","../../../accordion/chocolate/accordion-willy-wonka.ts","../../../accordion/chocolate/accordion-oompa-loompa.ts","../../../accordion/accordion.module.ts","../../../accordion/index.ts","../../../accordion/hermes-ui-angular-accordion.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 { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hermes-accordion-description',\r\n template: `<ng-content></ng-content>`,\r\n host: { '[class.hermes-accordion-description]': 'true' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class HermesAccordionDescription {}\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 ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport {\r\n CollapsiblePanel,\r\n collapsiblePanelExpandAnimation,\r\n CollapsiblePanelModel,\r\n} from '@hermes-ui/angular/collapsible-panel';\r\nimport { HeadingLevel, IfExpandService } from '@hermes-ui/angular/utils';\r\n\r\nimport { HermesAccordionDescription } from './accordion-description';\r\n\r\n@Component({\r\n selector: 'hermes-accordion-panel',\r\n templateUrl: './accordion-panel.html',\r\n host: { '[class.hermes-accordion-panel]': 'true' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: collapsiblePanelExpandAnimation,\r\n providers: [IfExpandService],\r\n standalone: false,\r\n})\r\nexport class HermesAccordionPanel extends CollapsiblePanel implements OnChanges {\r\n @Input('hermesAccordionPanelDisabled') @HostBinding('class.hermes-accordion-panel-disabled') disabled = false;\r\n @Input('hermesAccordionPanelOpen') override panelOpen = false;\r\n @Output('hermesAccordionPanelOpenChange') override panelOpenChange = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Level of the accordion heading from 1 to 6.\r\n */\r\n @Input('hermesAccordionPanelHeadingLevel') explicitHeadingLevel: HeadingLevel;\r\n\r\n @ContentChildren(HermesAccordionDescription) accordionDescription: QueryList<HermesAccordionDescription>;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.handlePanelInputChanges(changes);\r\n }\r\n\r\n getPanelStateClasses(panel: CollapsiblePanelModel) {\r\n return panel.open ? 'hermes-accordion-panel-open' : 'hermes-accordion-panel-closed';\r\n }\r\n\r\n getContentId(id: string) {\r\n return `hermes-accordion-content-${id}`;\r\n }\r\n\r\n getHeaderId(id: string) {\r\n return `hermes-accordion-header-${id}`;\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@if (panel | async; as panel) {\r\n<div [ngClass]=\"getPanelStateClasses(panel)\">\r\n <div\r\n class=\"hermes-accordion-header\"\r\n [attr.role]=\"explicitHeadingLevel ? 'heading' : null\"\r\n [attr.aria-level]=\"explicitHeadingLevel ? explicitHeadingLevel : null\"\r\n >\r\n <button\r\n type=\"button\"\r\n class=\"hermes-accordion-header-button\"\r\n (click)=\"togglePanel()\"\r\n [id]=\"getHeaderId(panel.templateId)\"\r\n [disabled]=\"panel.disabled\"\r\n [attr.aria-controls]=\"!panel.disabled && panel.open ? getContentId(panel.templateId) : null\"\r\n [attr.aria-expanded]=\"panel.open\"\r\n [class.hermes-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\r\n #headerButton\r\n >\r\n <span class=\"hermes-accordion-status\">\r\n <hermes-icon shape=\"angle\" direction=\"right\" class=\"hermes-accordion-angle\"></hermes-icon>\r\n </span>\r\n <ng-content select=\"hermes-accordion-title\"></ng-content>\r\n <ng-content select=\"hermes-accordion-description\"></ng-content>\r\n </button>\r\n </div>\r\n <div\r\n @skipInitialRender\r\n role=\"region\"\r\n class=\"hermes-accordion-content-region\"\r\n [id]=\"getContentId(panel.templateId)\"\r\n [attr.aria-hidden]=\"!panel.open\"\r\n [attr.aria-labelledby]=\"getHeaderId(panel.templateId)\"\r\n >\r\n @if (panel.open) {\r\n <div @toggle (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\" class=\"hermes-accordion-content\">\r\n <div class=\"hermes-accordion-inner-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n }\r\n </div>\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\n/**\r\n * Controls how many panels can be open simultaneously within an accordion.\r\n */\r\nexport enum AccordionStrategy {\r\n /** Only one panel can be open at a time. Opening a panel closes any previously open panel. */\r\n Single = 'single',\r\n /** Multiple panels can be open simultaneously. */\r\n Multi = 'multi',\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 { CollapsiblePanelGroupModel } from '@hermes-ui/angular/collapsible-panel';\r\n\r\nimport { AccordionStrategy } from '../enums/accordion-strategy.enum';\r\n\r\nexport class AccordionModel extends CollapsiblePanelGroupModel {\r\n private strategy = AccordionStrategy.Single;\r\n\r\n setStrategy(strategy: AccordionStrategy) {\r\n this.strategy = strategy;\r\n }\r\n\r\n override togglePanel(panelId: string, open?: boolean) {\r\n if (!this._panels[panelId]) {\r\n return;\r\n }\r\n\r\n const panelIsOpen = this._panels[panelId].open;\r\n const newOpenState = open !== undefined ? open : !panelIsOpen;\r\n if (newOpenState && this.strategy === AccordionStrategy.Single) {\r\n this.closeAllPanels();\r\n }\r\n\r\n this._panels[panelId].open = newOpenState;\r\n }\r\n\r\n private closeAllPanels() {\r\n this.panels.forEach(panel => (this._panels[panel.id].open = false));\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 { CollapsiblePanelService } from '@hermes-ui/angular/collapsible-panel';\r\n\r\nimport { AccordionStrategy } from '../enums/accordion-strategy.enum';\r\nimport { AccordionModel } from '../models/accordion.model';\r\n\r\n@Injectable()\r\nexport class AccordionService extends CollapsiblePanelService {\r\n protected override panelGroup = new AccordionModel();\r\n\r\n setStrategy(strategy: AccordionStrategy) {\r\n this.panelGroup.setStrategy(strategy);\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 AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { CollapsiblePanelService } from '@hermes-ui/angular/collapsible-panel';\r\nimport { Subscription } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\n\r\nimport { HermesAccordionPanel } from './accordion-panel';\r\nimport { AccordionStrategy } from './enums/accordion-strategy.enum';\r\nimport { AccordionService } from './providers/accordion.service';\r\n\r\n@Component({\r\n selector: 'hermes-accordion',\r\n template: `<ng-content></ng-content>`,\r\n host: { '[class.hermes-accordion]': 'true' },\r\n providers: [AccordionService, { provide: CollapsiblePanelService, useExisting: AccordionService }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class HermesAccordion implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n @Input('hermesAccordionMultiPanel') multiPanel: boolean | string = false;\r\n @ContentChildren(HermesAccordionPanel) panels: QueryList<HermesAccordionPanel>;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private accordionService: AccordionService) {}\r\n\r\n ngOnInit() {\r\n this.setAccordionStrategy();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (\r\n changes.multiPanel &&\r\n !changes.multiPanel.firstChange &&\r\n changes.multiPanel.currentValue !== changes.multiPanel.previousValue\r\n ) {\r\n this.setAccordionStrategy();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.subscriptions.push(this.listenForDOMChanges());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n private setAccordionStrategy() {\r\n const strategy = this.multiPanel ? AccordionStrategy.Multi : AccordionStrategy.Single;\r\n this.accordionService.setStrategy(strategy);\r\n }\r\n\r\n private listenForDOMChanges() {\r\n return this.panels.changes\r\n .pipe(startWith(this.panels))\r\n .subscribe((panels: QueryList<HermesAccordionPanel>) =>\r\n this.accordionService.updatePanelOrder(panels.toArray().map(p => p.id))\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 { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hermes-accordion-title',\r\n template: `<ng-content></ng-content>`,\r\n host: { '[class.hermes-accordion-title]': 'true' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class HermesAccordionTitle {}\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 { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hermes-accordion-content',\r\n template: `<ng-content></ng-content>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class HermesAccordionContent {}\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 } from '@angular/core';\r\nimport { WillyWonka } from '@hermes-ui/angular/utils';\r\n\r\n@Directive({\r\n selector: 'hermes-accordion',\r\n standalone: false,\r\n})\r\nexport class AccordionWillyWonka extends WillyWonka {}\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, Directive, Optional } from '@angular/core';\r\nimport { IfExpandService, OompaLoompa } from '@hermes-ui/angular/utils';\r\n\r\nimport { AccordionWillyWonka } from './accordion-willy-wonka';\r\n\r\n@Directive({\r\n selector: 'hermes-accordion-panel',\r\n standalone: false,\r\n})\r\nexport class AccordionOompaLoompa extends OompaLoompa {\r\n private expand: IfExpandService;\r\n\r\n constructor(cdr: ChangeDetectorRef, @Optional() willyWonka: AccordionWillyWonka, ifExpandService: IfExpandService) {\r\n if (!willyWonka) {\r\n throw new Error('hermes-accordion-panel should only be used inside of hermes-accordion');\r\n }\r\n super(cdr, willyWonka);\r\n this.expand = ifExpandService;\r\n }\r\n\r\n get flavor() {\r\n return this.expand.expanded;\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 } from '@angular/core';\r\nimport { angleIcon, ClarityIcons, HermesIcon } from '@hermes-ui/angular/icon';\r\n\r\nimport { HermesAccordion } from './accordion';\r\nimport { HermesAccordionContent } from './accordion-content';\r\nimport { HermesAccordionDescription } from './accordion-description';\r\nimport { HermesAccordionPanel } from './accordion-panel';\r\nimport { HermesAccordionTitle } from './accordion-title';\r\nimport { AccordionOompaLoompa } from './chocolate/accordion-oompa-loompa';\r\nimport { AccordionWillyWonka } from './chocolate/accordion-willy-wonka';\r\n\r\nconst declarations = [\r\n HermesAccordion,\r\n HermesAccordionPanel,\r\n HermesAccordionTitle,\r\n HermesAccordionDescription,\r\n HermesAccordionContent,\r\n AccordionOompaLoompa,\r\n AccordionWillyWonka,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, HermesIcon],\r\n declarations: [...declarations],\r\n exports: [...declarations],\r\n})\r\nexport class HermesAccordionModule {\r\n constructor() {\r\n ClarityIcons.addIcons(angleIcon);\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 './accordion';\r\nexport * from './accordion-panel';\r\nexport * from './accordion-title';\r\nexport * from './accordion-content';\r\nexport * from './accordion-description';\r\nexport * from './accordion.module';\r\nexport * from './enums/accordion-strategy.enum';\r\nexport * from './models/accordion.model';\r\nexport * from './providers/accordion.service';\r\nexport * from './chocolate/accordion-willy-wonka';\r\nexport * from './chocolate/accordion-oompa-loompa';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AccordionService","i1.AccordionWillyWonka","i2"],"mappings":"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"}
1
+ {"version":3,"file":"hermes-ui-angular-accordion.mjs","sources":["../../../accordion/accordion-description.ts","../../../accordion/accordion-panel.ts","../../../accordion/accordion-panel.html","../../../accordion/enums/accordion-strategy.enum.ts","../../../accordion/models/accordion.model.ts","../../../accordion/providers/accordion.service.ts","../../../accordion/accordion.ts","../../../accordion/accordion-title.ts","../../../accordion/accordion-content.ts","../../../accordion/chocolate/accordion-willy-wonka.ts","../../../accordion/chocolate/accordion-oompa-loompa.ts","../../../accordion/accordion.module.ts","../../../accordion/index.ts","../../../accordion/hermes-ui-angular-accordion.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 { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hermes-accordion-description',\r\n template: `<ng-content></ng-content>`,\r\n host: { '[class.hermes-accordion-description]': 'true' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class HermesAccordionDescription {}\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 ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport {\r\n CollapsiblePanel,\r\n collapsiblePanelExpandAnimation,\r\n CollapsiblePanelModel,\r\n} from '@hermes-ui/angular/collapsible-panel';\r\nimport { HeadingLevel, IfExpandService } from '@hermes-ui/angular/utils';\r\n\r\nimport { HermesAccordionDescription } from './accordion-description';\r\n\r\n@Component({\r\n selector: 'hermes-accordion-panel',\r\n templateUrl: './accordion-panel.html',\r\n host: { '[class.hermes-accordion-panel]': 'true' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: collapsiblePanelExpandAnimation,\r\n providers: [IfExpandService],\r\n standalone: false,\r\n})\r\nexport class HermesAccordionPanel extends CollapsiblePanel implements OnChanges {\r\n @Input('hermesAccordionPanelDisabled') @HostBinding('class.hermes-accordion-panel-disabled') disabled = false;\r\n @Input('hermesAccordionPanelOpen') override panelOpen = false;\r\n @Output('hermesAccordionPanelOpenChange') override panelOpenChange = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Level of the accordion heading from 1 to 6.\r\n */\r\n @Input('hermesAccordionPanelHeadingLevel') explicitHeadingLevel: HeadingLevel;\r\n\r\n @ContentChildren(HermesAccordionDescription) accordionDescription: QueryList<HermesAccordionDescription>;\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.handlePanelInputChanges(changes);\r\n }\r\n\r\n getPanelStateClasses(panel: CollapsiblePanelModel) {\r\n return panel.open ? 'hermes-accordion-panel-open' : 'hermes-accordion-panel-closed';\r\n }\r\n\r\n getContentId(id: string) {\r\n return `hermes-accordion-content-${id}`;\r\n }\r\n\r\n getHeaderId(id: string) {\r\n return `hermes-accordion-header-${id}`;\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@if (panel | async; as panel) {\r\n<div [ngClass]=\"getPanelStateClasses(panel)\">\r\n <div\r\n class=\"hermes-accordion-header\"\r\n [attr.role]=\"explicitHeadingLevel ? 'heading' : null\"\r\n [attr.aria-level]=\"explicitHeadingLevel ? explicitHeadingLevel : null\"\r\n >\r\n <button\r\n type=\"button\"\r\n class=\"hermes-accordion-header-button\"\r\n (click)=\"togglePanel()\"\r\n [id]=\"getHeaderId(panel.templateId)\"\r\n [disabled]=\"panel.disabled\"\r\n [attr.aria-controls]=\"!panel.disabled && panel.open ? getContentId(panel.templateId) : null\"\r\n [attr.aria-expanded]=\"panel.open\"\r\n [class.hermes-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\r\n #headerButton\r\n >\r\n <span class=\"hermes-accordion-status\">\r\n <hermes-icon shape=\"angle\" direction=\"right\" class=\"hermes-accordion-angle\"></hermes-icon>\r\n </span>\r\n <ng-content select=\"hermes-accordion-title\"></ng-content>\r\n <ng-content select=\"hermes-accordion-description\"></ng-content>\r\n </button>\r\n </div>\r\n <div\r\n @skipInitialRender\r\n role=\"region\"\r\n class=\"hermes-accordion-content-region\"\r\n [id]=\"getContentId(panel.templateId)\"\r\n [attr.aria-hidden]=\"!panel.open\"\r\n [attr.aria-labelledby]=\"getHeaderId(panel.templateId)\"\r\n >\r\n @if (panel.open) {\r\n <div @toggle (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\" class=\"hermes-accordion-content\">\r\n <div class=\"hermes-accordion-inner-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n }\r\n </div>\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\n/**\r\n * Controls how many panels can be open simultaneously within an accordion.\r\n */\r\nexport enum AccordionStrategy {\r\n /** Only one panel can be open at a time. Opening a panel closes any previously open panel. */\r\n Single = 'single',\r\n /** Multiple panels can be open simultaneously. */\r\n Multi = 'multi',\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 { CollapsiblePanelGroupModel } from '@hermes-ui/angular/collapsible-panel';\r\n\r\nimport { AccordionStrategy } from '../enums/accordion-strategy.enum';\r\n\r\nexport class AccordionModel extends CollapsiblePanelGroupModel {\r\n private strategy = AccordionStrategy.Single;\r\n\r\n setStrategy(strategy: AccordionStrategy) {\r\n this.strategy = strategy;\r\n }\r\n\r\n override togglePanel(panelId: string, open?: boolean) {\r\n if (!this._panels[panelId]) {\r\n return;\r\n }\r\n\r\n const panelIsOpen = this._panels[panelId].open;\r\n const newOpenState = open !== undefined ? open : !panelIsOpen;\r\n if (newOpenState && this.strategy === AccordionStrategy.Single) {\r\n this.closeAllPanels();\r\n }\r\n\r\n this._panels[panelId].open = newOpenState;\r\n }\r\n\r\n private closeAllPanels() {\r\n this.panels.forEach(panel => (this._panels[panel.id].open = false));\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 { CollapsiblePanelService } from '@hermes-ui/angular/collapsible-panel';\r\n\r\nimport { AccordionStrategy } from '../enums/accordion-strategy.enum';\r\nimport { AccordionModel } from '../models/accordion.model';\r\n\r\n@Injectable()\r\nexport class AccordionService extends CollapsiblePanelService {\r\n protected override panelGroup = new AccordionModel();\r\n\r\n setStrategy(strategy: AccordionStrategy) {\r\n this.panelGroup.setStrategy(strategy);\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 AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChildren,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { CollapsiblePanelService } from '@hermes-ui/angular/collapsible-panel';\r\nimport { Subscription } from 'rxjs';\r\nimport { startWith } from 'rxjs/operators';\r\n\r\nimport { HermesAccordionPanel } from './accordion-panel';\r\nimport { AccordionStrategy } from './enums/accordion-strategy.enum';\r\nimport { AccordionService } from './providers/accordion.service';\r\n\r\n@Component({\r\n selector: 'hermes-accordion',\r\n template: `<ng-content></ng-content>`,\r\n host: { '[class.hermes-accordion]': 'true' },\r\n providers: [AccordionService, { provide: CollapsiblePanelService, useExisting: AccordionService }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class HermesAccordion implements OnInit, OnChanges, AfterViewInit, OnDestroy {\r\n @Input('hermesAccordionMultiPanel') multiPanel: boolean | string = false;\r\n @ContentChildren(HermesAccordionPanel) panels: QueryList<HermesAccordionPanel>;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(private accordionService: AccordionService) {}\r\n\r\n ngOnInit() {\r\n this.setAccordionStrategy();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (\r\n changes.multiPanel &&\r\n !changes.multiPanel.firstChange &&\r\n changes.multiPanel.currentValue !== changes.multiPanel.previousValue\r\n ) {\r\n this.setAccordionStrategy();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.subscriptions.push(this.listenForDOMChanges());\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n private setAccordionStrategy() {\r\n const strategy = this.multiPanel ? AccordionStrategy.Multi : AccordionStrategy.Single;\r\n this.accordionService.setStrategy(strategy);\r\n }\r\n\r\n private listenForDOMChanges() {\r\n return this.panels.changes\r\n .pipe(startWith(this.panels))\r\n .subscribe((panels: QueryList<HermesAccordionPanel>) =>\r\n this.accordionService.updatePanelOrder(panels.toArray().map(p => p.id))\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 { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hermes-accordion-title',\r\n template: `<ng-content></ng-content>`,\r\n host: { '[class.hermes-accordion-title]': 'true' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class HermesAccordionTitle {}\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 { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'hermes-accordion-content',\r\n template: `<ng-content></ng-content>`,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false,\r\n})\r\nexport class HermesAccordionContent {}\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 } from '@angular/core';\r\nimport { WillyWonka } from '@hermes-ui/angular/utils';\r\n\r\n@Directive({\r\n selector: 'hermes-accordion',\r\n standalone: false,\r\n})\r\nexport class AccordionWillyWonka extends WillyWonka {}\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, Directive, Optional } from '@angular/core';\r\nimport { IfExpandService, OompaLoompa } from '@hermes-ui/angular/utils';\r\n\r\nimport { AccordionWillyWonka } from './accordion-willy-wonka';\r\n\r\n@Directive({\r\n selector: 'hermes-accordion-panel',\r\n standalone: false,\r\n})\r\nexport class AccordionOompaLoompa extends OompaLoompa {\r\n private expand: IfExpandService;\r\n\r\n constructor(cdr: ChangeDetectorRef, @Optional() willyWonka: AccordionWillyWonka, ifExpandService: IfExpandService) {\r\n if (!willyWonka) {\r\n throw new Error('hermes-accordion-panel should only be used inside of hermes-accordion');\r\n }\r\n super(cdr, willyWonka);\r\n this.expand = ifExpandService;\r\n }\r\n\r\n get flavor() {\r\n return this.expand.expanded;\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 } from '@angular/core';\nimport { angleIcon, HermesIcons, HermesIcon } from '@hermes-ui/angular/icon';\n\nimport { HermesAccordion } from './accordion';\nimport { HermesAccordionContent } from './accordion-content';\nimport { HermesAccordionDescription } from './accordion-description';\nimport { HermesAccordionPanel } from './accordion-panel';\nimport { HermesAccordionTitle } from './accordion-title';\nimport { AccordionOompaLoompa } from './chocolate/accordion-oompa-loompa';\nimport { AccordionWillyWonka } from './chocolate/accordion-willy-wonka';\n\nconst declarations = [\n HermesAccordion,\n HermesAccordionPanel,\n HermesAccordionTitle,\n HermesAccordionDescription,\n HermesAccordionContent,\n AccordionOompaLoompa,\n AccordionWillyWonka,\n];\n\n@NgModule({\n imports: [CommonModule, HermesIcon],\n declarations: [...declarations],\n exports: [...declarations],\n})\nexport class HermesAccordionModule {\n constructor() {\n HermesIcons.addIcons(angleIcon);\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 './accordion';\r\nexport * from './accordion-panel';\r\nexport * from './accordion-title';\r\nexport * from './accordion-content';\r\nexport * from './accordion-description';\r\nexport * from './accordion.module';\r\nexport * from './enums/accordion-strategy.enum';\r\nexport * from './models/accordion.model';\r\nexport * from './providers/accordion.service';\r\nexport * from './chocolate/accordion-willy-wonka';\r\nexport * from './chocolate/accordion-oompa-loompa';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AccordionService","i1.AccordionWillyWonka","i2"],"mappings":"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"}
@@ -14,7 +14,7 @@ import { trigger, transition, style, animate } from '@angular/animations';
14
14
  import * as i5 from '@hermes-ui/angular/addons/a11y';
15
15
  import { a11ykeys } from '@hermes-ui/angular/addons/a11y';
16
16
  import * as i6 from '@hermes-ui/angular/icon';
17
- import { ClarityIcons, dragHandleIcon, cogIcon } from '@hermes-ui/angular/icon';
17
+ import { HermesIcons, dragHandleIcon, cogIcon } from '@hermes-ui/angular/icon';
18
18
  import { Subscription, of } from 'rxjs';
19
19
  import { tap, map, filter, take } from 'rxjs/operators';
20
20
  import * as i1 from '@hermes-ui/angular/addons/drag-and-drop';
@@ -576,7 +576,7 @@ class AppfxCardComponent {
576
576
  this.zoomLevelService = zoomLevelService;
577
577
  this.dragDropEnabled = true;
578
578
  this.subscriptions = new Subscription();
579
- ClarityIcons.addIcons(dragHandleIcon);
579
+ HermesIcons.addIcons(dragHandleIcon);
580
580
  }
581
581
  get isSelected() {
582
582
  return this.a11yService.isSelected(this.card.id);
@@ -822,7 +822,7 @@ class AppfxCardContainerSettingsComponent {
822
822
  * Event Emitter when user wants to show/hide card.
823
823
  */
824
824
  this.toggleCardVisibility = new EventEmitter();
825
- ClarityIcons.addIcons(cogIcon);
825
+ HermesIcons.addIcons(cogIcon);
826
826
  }
827
827
  /**
828
828
  * Cards list to display in settings dropdown menu.
@@ -1 +1 @@
1
- {"version":3,"file":"hermes-ui-angular-addons-card-container.mjs","sources":["../../../addons/card-container/appfx-card-container.l10n.ts","../../../addons/card-container/appfx-card-container-constants.ts","../../../addons/card-container/services/layout.service.ts","../../../addons/card-container/services/persistence.service.ts","../../../addons/card-container/services/container.service.ts","../../../addons/card-container/services/dnd.service.ts","../../../addons/card-container/services/a11y.service.ts","../../../addons/card-container/card/appfx-card.component.ts","../../../addons/card-container/card/appfx-card.component.html","../../../addons/card-container/utils/appfx-card-container-store.ts","../../../addons/card-container/settings/appfx-card-container-settings.component.ts","../../../addons/card-container/settings/appfx-card-container-settings.component.html","../../../addons/card-container/container/appfx-card-container.component.ts","../../../addons/card-container/container/appfx-card-container.component.html","../../../addons/card-container/appfx-card-container.module.ts","../../../addons/card-container/index.ts","../../../addons/card-container/hermes-ui-angular-addons-card-container.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\n// Disable the duplicate string check because this is a translations file.\r\n\r\nimport { AppfxTranslations } from '@hermes-ui/angular/addons/translate';\r\n\r\nexport const translations: AppfxTranslations = {\r\n en: {\r\n /**\r\n * Settings toggle button label for screen readers.\r\n */\r\n settingsCog: 'Settings',\r\n /**\r\n * Drag handle button label for screen readers.\r\n */\r\n cardDragHandle: 'Card drag handle',\r\n /**\r\n * Drag handle button describe for screen readers.\r\n */\r\n cardDragHandleDescription: 'Press Enter and use left or right key to move the card to a new position.',\r\n },\r\n fr: {\r\n settingsCog: 'Paramètres',\r\n\r\n cardDragHandle: 'Poignée de glissement de carte',\r\n\r\n cardDragHandleDescription:\r\n 'Appuyez sur Entrée et utilisez la flèche vers la gauche ou la droite pour déplacer la carte vers une nouvelle position.',\r\n },\r\n es: {\r\n settingsCog: 'Configuración',\r\n\r\n cardDragHandle: 'Control de arrastre de tarjeta ',\r\n\r\n cardDragHandleDescription:\r\n 'Pulse la tecla Intro y use la tecla de flecha izquierda o derecha para mover la tarjeta a una nueva posición.',\r\n },\r\n ja: {\r\n settingsCog: '設定',\r\n\r\n cardDragHandle: 'カード ドラッグ ハンドル',\r\n\r\n cardDragHandleDescription: 'Enter キーを押し、←または→キーを押してカードを新しい位置に移動します。',\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// unit Card Width and Height\r\nexport const cardSize = {\r\n unitWidthInPixels: 258,\r\n unitHeightInPixels: 58,\r\n unitGutterSizeInPixels: 18,\r\n headerHeightInPixels: 50,\r\n footerHeightInPixels: 50,\r\n};\r\n\r\n// card defaults\r\nexport const cardDefaults = {\r\n unitWidth: 1,\r\n unitHeight: 5,\r\n order: Infinity,\r\n hidden: false,\r\n canHide: 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 { Injectable, Renderer2 } from '@angular/core';\r\n\r\nimport { cardSize } from '../appfx-card-container-constants';\r\n\r\n/**\r\n * Provides functionality related to layout of cards like updating card sizes\r\n * adding scrolling inside card block depending on conditions\r\n */\r\n@Injectable()\r\nexport class LayoutService {\r\n constructor(private renderer: Renderer2) {}\r\n\r\n /**\r\n * Updates the size of the cards according to the info provided\r\n */\r\n updateCardSize(element: HTMLElement, unitWidth: number = 1, unitHeight: number = 5) {\r\n const cardElement = element?.querySelector('.card') as HTMLElement;\r\n if (!cardElement) {\r\n return;\r\n }\r\n if (unitWidth > -1) {\r\n const cardWidth = this.calculateCardWidth(unitWidth);\r\n this.renderer.setStyle(cardElement, 'width', `${cardWidth}px`);\r\n } else {\r\n this.renderer.removeStyle(cardElement, 'width');\r\n }\r\n let cardBlockHeight = this.calculateCardHeight(unitHeight);\r\n // if .card-header is defined reduce header height(50px) from .card-block height\r\n // 5 unit -> 58*5 + 18*4 -> 362px - 50px -> 312px\r\n const cardHeader = cardElement.querySelector('.card-header') as HTMLElement;\r\n if (cardHeader) {\r\n cardBlockHeight -= cardSize.headerHeightInPixels;\r\n this.renderer.setStyle(cardHeader, 'height', `${cardSize.headerHeightInPixels}px`);\r\n }\r\n\r\n // if .card-footer is defined reduce footer height(50px) from .card-block height\r\n // 5 unit -> 58*5 + 18*4 -> 362px - 50px -> 312px\r\n const cardFooter = cardElement.querySelector('.card-footer') as HTMLElement;\r\n if (cardFooter) {\r\n cardBlockHeight -= cardSize.footerHeightInPixels;\r\n this.renderer.setStyle(cardFooter, 'height', `${cardSize.footerHeightInPixels}px`);\r\n }\r\n const cardBlock = cardElement.querySelector('.card-block') as HTMLElement;\r\n if (cardBlock) {\r\n if (unitHeight > -1) {\r\n this.renderer.setStyle(cardBlock, 'height', `${cardBlockHeight}px`);\r\n } else {\r\n this.renderer.removeStyle(cardBlock, 'height');\r\n }\r\n if (cardHeader) {\r\n this.renderer.setStyle(cardBlock, 'overflow-y', 'auto');\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * card width is unitWidth * unitWidthInPixels(258px) + in between gutters * unitGutterSizeInPixels(18px)\r\n * in between gutters are number of units - 1\r\n * 1 unit -> 258px\r\n * 2 unit -> 258*2 + 18 -> 534px\r\n * 3 unit -> 258*3 + 18*2 -> 810px ....\r\n * @param unitWidth\r\n */\r\n private calculateCardWidth(unitWidth: number): number {\r\n return unitWidth * cardSize.unitWidthInPixels + (unitWidth - 1) * cardSize.unitGutterSizeInPixels;\r\n }\r\n\r\n /**\r\n * card height is unitHeight * unitHeightInPixels(258px) + in between gutters * unitGutterSizeInPixels(18px)\r\n * in between gutters are number of units - 1\r\n * 1 unit -> 58px\r\n * 5 unit -> 58*5 + 18*4 -> 362px\r\n * 7 unit -> 58*7 + 18*6 -> 514px ....\r\n * @param unitHeight\r\n */\r\n private calculateCardHeight(unitHeight: number): number {\r\n return unitHeight * cardSize.unitHeightInPixels + (unitHeight - 1) * cardSize.unitGutterSizeInPixels;\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 } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport {\r\n AppfxCardInternal,\r\n AppfxCardSettings,\r\n AppfxContainerPersistenceStore,\r\n} from '../appfx-card-container.interface';\r\n\r\n/**\r\n * Handles storing and retrieving of preferences/settings of the cards in container\r\n * like order, hidden properties of card.\r\n */\r\n@Injectable()\r\nexport class PersistenceService {\r\n private containerStore: AppfxContainerPersistenceStore;\r\n\r\n private appfxCardSettings: AppfxCardSettings[] = [];\r\n\r\n initialize(containerStore: AppfxContainerPersistenceStore) {\r\n this.containerStore = containerStore;\r\n }\r\n\r\n retrieve(): Observable<AppfxCardSettings[]> {\r\n return this.containerStore.retrieve().pipe(\r\n tap((cardSettings: AppfxCardSettings[]) => {\r\n this.appfxCardSettings = cardSettings;\r\n })\r\n );\r\n }\r\n\r\n save(cards: AppfxCardInternal[]): void {\r\n const cardSettings: AppfxCardSettings[] = this.generateCardSettings(cards);\r\n this.appfxCardSettings = this.mergeCardSettings(cardSettings);\r\n this.containerStore.save(this.appfxCardSettings);\r\n }\r\n\r\n /**\r\n * Generate Card Settings.\r\n */\r\n private generateCardSettings(cards: AppfxCardInternal[]): AppfxCardSettings[] {\r\n return cards.map((card: AppfxCardInternal) => ({\r\n id: card.id,\r\n order: card.order,\r\n hidden: card.hidden,\r\n }));\r\n }\r\n\r\n /**\r\n * If cardSettings are preset in the persistence store then update them with provided info and use them\r\n * else add it to store if new card settings.\r\n */\r\n private mergeCardSettings(cardSettings: AppfxCardSettings[]): AppfxCardSettings[] {\r\n const updatedCardSettings = this.appfxCardSettings.map((cardSetting: AppfxCardSettings) => {\r\n const updatedCardSetting = cardSettings.find((setting: AppfxCardSettings) => setting.id === cardSetting.id);\r\n return updatedCardSetting ?? cardSetting;\r\n });\r\n\r\n // get newly added cards\r\n const newCardSettings = cardSettings.filter((cardSetting: AppfxCardSettings) => {\r\n const alreadyUpdated = updatedCardSettings.find(\r\n (updatedCardSetting: AppfxCardSettings) => updatedCardSetting.id === cardSetting.id\r\n );\r\n return !alreadyUpdated;\r\n });\r\n\r\n // all cardsInfo's - existing with updated cardInfo's and newly added cardInfo's\r\n return [...updatedCardSettings, ...newCardSettings];\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 { EmbeddedViewRef, Injectable, ViewContainerRef } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { cardDefaults } from '../appfx-card-container-constants';\r\nimport { AppfxCardInternal, AppfxCardSettings } from '../appfx-card-container.interface';\r\nimport { PersistenceService } from './persistence.service';\r\n\r\n/**\r\n * Keep track of the cards in the container with their properties like order, hidden etc.\r\n * Takes care of updating store with the card preferences.\r\n */\r\n@Injectable()\r\nexport class ContainerService {\r\n private cardContainer: ViewContainerRef;\r\n private containerCards: AppfxCardInternal[] = [];\r\n\r\n constructor(private persistenceService: PersistenceService) {}\r\n\r\n /**\r\n * Initialize container service by adding list of cards and persistence service instance.\r\n */\r\n initialize(cardContainer: ViewContainerRef, cards: AppfxCardInternal[]) {\r\n this.cardContainer = cardContainer;\r\n // add unique cards\r\n cards.forEach((card: AppfxCardInternal) => this.addCard(card));\r\n }\r\n\r\n /**\r\n * Fetches card order, hidden properties from the persistence service and apply it to card.\r\n * Filters hidden card, sorts cards according to order and remove duplicate order cards.\r\n */\r\n getCardsWithOrder(): Observable<AppfxCardInternal[]> {\r\n return this.persistenceService.retrieve().pipe(\r\n // set card oder and hidden user preferences from store\r\n map((cardSettings: AppfxCardSettings[]) => this.applySettingsToCards(cardSettings)),\r\n // do not insert hidden cards\r\n map((cardsWithSettings: AppfxCardInternal[]) => this.filterHiddenCards(cardsWithSettings)),\r\n // sort cards in order to insert into container\r\n map((visibleCards: AppfxCardInternal[]) => this.sortCardsByOrder(visibleCards)),\r\n // remove duplicate order\r\n map((sortedCards: AppfxCardInternal[]) => this.normalizeCardOrder(sortedCards))\r\n );\r\n }\r\n\r\n /**\r\n * Fetches card order, hidden properties from the persistence service and apply it to card.\r\n * if card is hidden before filters it accordingly so that container will not insert it.\r\n */\r\n getCardWithOrder(card: AppfxCardInternal): Observable<AppfxCardInternal> {\r\n return this.persistenceService\r\n .retrieve()\r\n .pipe(map((cardSettings: AppfxCardSettings[]) => this.applyCardSettings(card, cardSettings)));\r\n }\r\n\r\n /**\r\n * Toggles card hidden property and save updated settings in store.\r\n */\r\n toggleCardVisibility(cardId: string): AppfxCardInternal | undefined {\r\n this.containerCards = this.containerCards.map((containerCard: AppfxCardInternal) => {\r\n if (containerCard.id === cardId) {\r\n containerCard.hidden = !containerCard.hidden;\r\n }\r\n return containerCard;\r\n });\r\n return this.getCardById(cardId);\r\n }\r\n\r\n /**\r\n * Moves the card from Drag Index to Drop Index\r\n * by detaching card from view at drag Index and inserting it into Drop Index.\r\n *\r\n * Updates the order of the remaining cards once done.\r\n */\r\n moveCard(fromIndex: number, toIndex: number): void {\r\n // drag and drop on the same card position\r\n if (fromIndex === toIndex) {\r\n return;\r\n }\r\n // right to left\r\n toIndex = fromIndex < toIndex ? toIndex : toIndex + 1;\r\n\r\n const cardView = this.cardContainer.get(fromIndex) as EmbeddedViewRef<void>;\r\n if (cardView) {\r\n this.cardContainer.detach(fromIndex);\r\n this.cardContainer.insert(cardView, toIndex);\r\n this.updateCardsOrder();\r\n }\r\n }\r\n\r\n /**\r\n * Removes card form the list of container cards.\r\n */\r\n removeCard(cardId: string): void {\r\n this.containerCards = this.containerCards.filter((card: AppfxCardInternal) => card.id !== cardId);\r\n }\r\n\r\n /**\r\n * Update Card properties once inserted into container.\r\n * View and order gets updated once card is available into container.\r\n */\r\n updateCard(card: AppfxCardInternal): void {\r\n this.containerCards = this.containerCards.map((containerCard: AppfxCardInternal) => {\r\n return containerCard.id === card.id ? { ...containerCard, ...card } : containerCard;\r\n });\r\n }\r\n\r\n /**\r\n * Returns all cards inside container including hidden cards.\r\n */\r\n getContainerCards(): AppfxCardInternal[] {\r\n return [...this.containerCards];\r\n }\r\n\r\n /**\r\n * Returns number of visible cards in the container.\r\n */\r\n getVisibleCardsCount(): number {\r\n return this.filterHiddenCards(this.containerCards).length;\r\n }\r\n\r\n /**\r\n * Update the order on the cards after shuffling occurs new order is as per the index of cards in the view.\r\n */\r\n updateCardsOrder(): void {\r\n this.containerCards = this.containerCards.map((card: AppfxCardInternal) => {\r\n if (!card.hidden && card.view) {\r\n const order = this.cardContainer.indexOf(card.view);\r\n if (card.order !== order) {\r\n card.order = order;\r\n }\r\n }\r\n return card;\r\n });\r\n this.persistenceService.save(this.containerCards);\r\n }\r\n\r\n /**\r\n * Returns container ViewRef\r\n */\r\n getCardContainer(): ViewContainerRef {\r\n return this.cardContainer;\r\n }\r\n\r\n /**\r\n * Provides card by id if available\r\n */\r\n getCardById(cardId: string): AppfxCardInternal | undefined {\r\n return this.containerCards.find((containerCard: AppfxCardInternal) => containerCard.id === cardId);\r\n }\r\n\r\n /**\r\n * provides order of the card in the container\r\n */\r\n getCardOrder(cardId: string): number {\r\n return this.getCardById(cardId)?.order ?? cardDefaults.order;\r\n }\r\n\r\n /**\r\n * Adds card to the container list of cards of the container service.\r\n * Container cards contains all the available cards within container visible as well as hidden.\r\n */\r\n addCard(card: AppfxCardInternal): void {\r\n if (this.getCardById(card.id)) {\r\n throw new Error(`Card with id '${card.id}' already exist`);\r\n }\r\n this.containerCards = [...this.containerCards, card];\r\n }\r\n\r\n /**\r\n * Updates each of the card settings properties like order, hidden.\r\n */\r\n private applySettingsToCards(cardSettings: AppfxCardSettings[]): AppfxCardInternal[] {\r\n return this.containerCards.map((card: AppfxCardInternal) => this.applyCardSettings(card, cardSettings));\r\n }\r\n\r\n /**\r\n * Updates card settings properties like order, hidden.\r\n * If none available in the persistence store cardDefaults are used.\r\n */\r\n private applyCardSettings(card: AppfxCardInternal, cardSettings: AppfxCardSettings[]): AppfxCardInternal {\r\n const cardSetting = cardSettings.find((setting: AppfxCardSettings) => setting.id === card.id);\r\n card.order = cardSetting?.order ?? cardDefaults.order;\r\n card.hidden = cardSetting?.hidden ?? cardDefaults.hidden;\r\n return card;\r\n }\r\n\r\n /**\r\n * Remove hidden cards\r\n */\r\n private filterHiddenCards(cards: AppfxCardInternal[]): AppfxCardInternal[] {\r\n return cards.filter((card: AppfxCardInternal) => !card.hidden);\r\n }\r\n\r\n /**\r\n * Sorts cards in ascending order\r\n */\r\n private sortCardsByOrder(cards: AppfxCardInternal[]): AppfxCardInternal[] {\r\n return cards.sort((a: AppfxCardInternal, b: AppfxCardInternal): number => {\r\n return a.order !== undefined && b.order !== undefined ? a.order - b.order : 0;\r\n });\r\n }\r\n\r\n /**\r\n * Update order to remove duplicates.\r\n * [0,1,1,2,3,3] -> [0,1,2,3,4,5]\r\n */\r\n private normalizeCardOrder(cards: AppfxCardInternal[]): AppfxCardInternal[] {\r\n return cards.map((card: AppfxCardInternal, idx: number) => {\r\n card.order = idx;\r\n return card;\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\nimport { cardDefaults } from '../appfx-card-container-constants';\r\nimport { ContainerService } from './container.service';\r\n\r\n/**\r\n * Provides functionality to drag and drop cards with hermes drag drop directives.\r\n */\r\n@Injectable()\r\nexport class DragDropService {\r\n private dragOrder: number;\r\n\r\n constructor(private containerService: ContainerService) {}\r\n\r\n /**\r\n * Saves the order of drag order to plate at the drop order later.\r\n */\r\n onDragStart(cardId: string): void {\r\n const dragOrder = this.containerService.getCardOrder(cardId);\r\n if (dragOrder === cardDefaults.order) {\r\n return;\r\n }\r\n this.dragOrder = dragOrder;\r\n }\r\n\r\n /**\r\n * On drop move the cards from drag order to drop order.\r\n */\r\n onDragDrop(cardId: string): void {\r\n const dropOrder = this.containerService.getCardOrder(cardId);\r\n if (dropOrder === cardDefaults.order) {\r\n return;\r\n }\r\n this.containerService.moveCard(this.dragOrder, dropOrder);\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 { a11ykeys } from '@hermes-ui/angular/addons/a11y';\r\n\r\nimport { cardDefaults } from '../appfx-card-container-constants';\r\nimport { ContainerService } from './container.service';\r\n\r\n/**\r\n * Provides functionality to drag and drop cards with keyboard interaction\r\n */\r\n@Injectable()\r\nexport class A11yService {\r\n private a11yMode: boolean;\r\n private a11yDragOrder: number = cardDefaults.order;\r\n private a11yDropOrder: number = cardDefaults.order;\r\n\r\n constructor(private containerService: ContainerService) {}\r\n\r\n /**\r\n * Selects the card on press of Enter Key\r\n * If it is first enter on the card container - updates the drag order\r\n * Else moves the card from drag order to drop order\r\n */\r\n selectCard(cardId: string): void {\r\n const cardOrder = this.containerService.getCardOrder(cardId);\r\n if (cardOrder === cardDefaults.order) {\r\n return;\r\n }\r\n\r\n if (this.a11yMode) {\r\n // if already in the drag card is already selected move it to the new drop position\r\n this.containerService.moveCard(this.a11yDragOrder, this.a11yDropOrder);\r\n // reset\r\n this.getOutOfA11yMode();\r\n } else {\r\n this.a11yDragOrder = cardOrder;\r\n this.a11yDropOrder = cardOrder;\r\n this.a11yMode = true;\r\n }\r\n }\r\n\r\n /**\r\n * Moves the drop position on Arrow Keys\r\n * Updates the drop placeholder according to the arrow key direction\r\n */\r\n moveDropPosition(arrowKey: string): void {\r\n if (!this.a11yMode) {\r\n return;\r\n }\r\n // move position of drop card\r\n // if leftArrowKey then to previous card\r\n if (arrowKey === a11ykeys.arrowLeft) {\r\n this.a11yDropOrder -= 1;\r\n }\r\n // if rightArrowKey then to next card\r\n if (arrowKey === a11ykeys.arrowRight) {\r\n this.a11yDropOrder += 1;\r\n }\r\n\r\n // if drop card goes before first card, move to last card\r\n this.a11yDropOrder = this.a11yDropOrder < 0 ? this.containerService.getVisibleCardsCount() - 1 : this.a11yDropOrder;\r\n\r\n // if drop card goes after last card, move to first card\r\n this.a11yDropOrder = this.a11yDropOrder > this.containerService.getVisibleCardsCount() - 1 ? 0 : this.a11yDropOrder;\r\n }\r\n\r\n /**\r\n * Get out of the Accessibility mode\r\n */\r\n getOutOfA11yMode(): void {\r\n this.a11yMode = false;\r\n this.a11yDropOrder = cardDefaults.order;\r\n this.a11yDragOrder = cardDefaults.order;\r\n }\r\n\r\n /**\r\n * checks if cardOrder is equal to a11yDragOrder\r\n */\r\n isSelected(cardId: string): boolean {\r\n const cardOrder = this.containerService.getCardOrder(cardId);\r\n return cardOrder !== cardDefaults.order && this.a11yDragOrder === cardOrder;\r\n }\r\n\r\n /**\r\n * checks if cardOrder is equal to a11yDropOrder\r\n */\r\n isDraggableOver(cardId: string): boolean {\r\n const cardOrder = this.containerService.getCardOrder(cardId);\r\n return cardOrder !== cardDefaults.order && this.a11yDropOrder === cardOrder;\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, style, transition, trigger } from '@angular/animations';\r\nimport { CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { a11ykeys, ZoomLevel, ZoomLevelService } from '@hermes-ui/angular/addons/a11y';\r\nimport { DragAndDropGroupService } from '@hermes-ui/angular/addons/drag-and-drop';\r\nimport {\r\n appfxMissingTranslationToken,\r\n AppfxTranslateService,\r\n appfxTranslationsToken,\r\n defaultMissingTranslationHandler,\r\n} from '@hermes-ui/angular/addons/translate';\r\nimport { ClarityIcons, dragHandleIcon } from '@hermes-ui/angular/icon';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter, map } from 'rxjs/operators';\r\n\r\nimport { AppfxCardInternal } from '../appfx-card-container.interface';\r\nimport { translations } from '../appfx-card-container.l10n';\r\nimport { A11yService } from '../services/a11y.service';\r\nimport { DragDropService } from '../services/dnd.service';\r\nimport { LayoutService } from '../services/layout.service';\r\n\r\n/**\r\n * Appfx Container Card\r\n * Handles user interactions like drag and drop and a11y support for same through keyboard events\r\n *\r\n * Used internally in Appfx Card Container @see(AppfxCardContainer)\r\n */\r\n@Component({\r\n selector: 'appfx-card',\r\n standalone: false,\r\n templateUrl: 'appfx-card.component.html',\r\n styleUrls: ['appfx-card.component.scss'],\r\n providers: [\r\n AppfxTranslateService,\r\n {\r\n provide: appfxMissingTranslationToken,\r\n useValue: defaultMissingTranslationHandler,\r\n },\r\n {\r\n provide: appfxTranslationsToken,\r\n useValue: translations,\r\n },\r\n ],\r\n animations: [\r\n trigger('cardAnimation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'translateX(-100%)' }),\r\n animate('200ms ease-in', style({ opacity: 1, transform: 'translateX(0%)' })),\r\n ]),\r\n transition(':leave', [animate('200ms ease-in', style({ opacity: 0, transform: 'translateX(0%)' }))]),\r\n ]),\r\n ],\r\n})\r\nexport class AppfxCardComponent implements OnInit, AfterViewInit, OnDestroy {\r\n /**\r\n * The descriptor of the step being rendered.\r\n */\r\n @Input() card: AppfxCardInternal;\r\n\r\n /**\r\n * Specifics which dropGroup card belongs to as card drop should happen within specific container\r\n * used to distinguish drag and drop cards from multiple containers\r\n */\r\n @Input() dropGroup: string;\r\n\r\n @ViewChild(CdkDropList, { static: true }) readonly dropList: CdkDropList;\r\n\r\n dragDropEnabled: boolean = true;\r\n\r\n @ViewChild(CdkDrag, { read: ElementRef }) private cdkDragElementRefs: ElementRef;\r\n\r\n @ViewChild('cardViewContainer', { read: ViewContainerRef, static: true }) private cardViewContainer: ViewContainerRef;\r\n\r\n // Store current set card unit width\r\n private currentUnitWidth: number | undefined;\r\n // Store current set card unit height\r\n private currentUnitHeight: number | undefined;\r\n private subscriptions = new Subscription();\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private groupService: DragAndDropGroupService,\r\n private layoutService: LayoutService,\r\n private dragDropService: DragDropService,\r\n private a11yService: A11yService,\r\n private changeDetector: ChangeDetectorRef,\r\n @Optional() private zoomLevelService: ZoomLevelService\r\n ) {\r\n ClarityIcons.addIcons(dragHandleIcon);\r\n }\r\n\r\n get isSelected(): boolean {\r\n return this.a11yService.isSelected(this.card.id);\r\n }\r\n\r\n get isDraggableOver(): boolean {\r\n return this.a11yService.isDraggableOver(this.card.id);\r\n }\r\n\r\n get cdkDropGroup(): CdkDropList[] {\r\n return this.groupService.getGroupItems(this.dropGroup) as unknown as CdkDropList[];\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.card.id) {\r\n throw new Error('Missing Input property for card - id');\r\n }\r\n this.loadComponent();\r\n\r\n if (this.zoomLevelService) {\r\n this.currentUnitWidth = this.card.unitWidth;\r\n this.currentUnitHeight = this.card.unitHeight;\r\n this.subscriptions.add(\r\n this.zoomLevelService.onChange\r\n .pipe(\r\n map((data: ZoomLevel) => {\r\n if (!!this.card.cardZoomSizes && !!(this.card.cardZoomSizes as any)[data]) {\r\n return (this.card.cardZoomSizes as any)[data];\r\n }\r\n return {\r\n unitHeight: this.card.unitHeight,\r\n unitWidth: this.card.unitWidth,\r\n };\r\n }),\r\n filter(size => {\r\n return size.unitWidth !== this.currentUnitWidth || size.unitHeight !== this.currentUnitHeight;\r\n })\r\n )\r\n .subscribe(size => {\r\n this.currentUnitWidth = size.unitWidth;\r\n this.currentUnitHeight = size.unitHeight;\r\n this.layoutService.updateCardSize(this.el.nativeElement, this.currentUnitWidth, this.currentUnitHeight);\r\n this.changeDetector.detectChanges();\r\n })\r\n );\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.layoutService.updateCardSize(this.el.nativeElement, this.card.unitWidth, this.card.unitHeight);\r\n this.groupService.addGroupItem(this.dropGroup, this.dropList);\r\n this.changeDetector.detectChanges();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.groupService.removeGroupItem(this.dropGroup, this.dropList);\r\n this.subscriptions.unsubscribe();\r\n }\r\n\r\n onDragStart(): void {\r\n this.dragDropService.onDragStart(this.card.id);\r\n }\r\n\r\n onDrop(): void {\r\n this.dragDropService.onDragDrop(this.card.id);\r\n }\r\n\r\n selectCard(event: Event): void {\r\n this.eventCheck(event);\r\n this.a11yService.selectCard(this.card.id);\r\n }\r\n\r\n moveDropPositionBackwards(event: Event): void {\r\n this.eventCheck(event);\r\n this.a11yService.moveDropPosition(a11ykeys.arrowLeft);\r\n }\r\n\r\n moveDropPositionForwards(event: Event): void {\r\n this.eventCheck(event);\r\n this.a11yService.moveDropPosition(a11ykeys.arrowRight);\r\n }\r\n\r\n onDropHandleKeyUp(event: Event): void {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n this.cdkDragElementRefs?.nativeElement.focus();\r\n this.a11yService.selectCard(this.card.id);\r\n }\r\n\r\n private loadComponent(): void {\r\n if (!this.card.componentClass) {\r\n return;\r\n }\r\n this.cardViewContainer.clear();\r\n const cr = this.cardViewContainer.createComponent(this.card.componentClass);\r\n if (this.card.context) {\r\n Object.entries(this.card.context).forEach(([key, value]) => {\r\n cr.instance[key] = value;\r\n });\r\n }\r\n }\r\n\r\n private eventCheck(event: Event): void {\r\n if (event.target !== event.currentTarget) {\r\n return;\r\n }\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\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\r\n class=\"appfx-card droppable\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n cdkDropListAutoScrollStep=\"6\"\r\n [cdkDropListConnectedTo]=\"cdkDropGroup\"\r\n [class.draggable-over]=\"isDraggableOver\"\r\n (cdkDropListDropped)=\"onDrop()\"\r\n [@cardAnimation]\r\n>\r\n <div\r\n tabindex=\"0\"\r\n class=\"draggable\"\r\n [class.selected-card]=\"isSelected\"\r\n cdkDrag\r\n cdkDragPreviewContainer=\"parent\"\r\n (cdkDragStarted)=\"onDragStart()\"\r\n (keyup.enter)=\"selectCard($event)\"\r\n (keyup.arrowleft)=\"moveDropPositionBackwards($event)\"\r\n (keyup.arrowright)=\"moveDropPositionForwards($event)\"\r\n >\r\n <div class=\"custom-placeholder\" *cdkDragPlaceholder></div>\r\n <button\r\n class=\"drag-handler-button btn btn-icon\"\r\n [attr.aria-label]=\"'cardDragHandle' | translate\"\r\n aria-describedby=\"card-drag-handler-instructions\"\r\n (keyup.enter)=\"onDropHandleKeyUp($event)\"\r\n (keyup.space)=\"onDropHandleKeyUp($event)\"\r\n >\r\n <span class=\"hermes-sr-only\" id=\"card-drag-handler-instructions\">\r\n {{ 'cardDragHandleDescription' | translate }}\r\n </span>\r\n <hermes-icon\r\n class=\"drag-handle-icon\"\r\n shape=\"drag-handle\"\r\n size=\"32\"\r\n cdkDragHandle\r\n [cdkDragHandleDisabled]=\"!dragDropEnabled\"\r\n [hidden]=\"!dragDropEnabled\"\r\n >\r\n </hermes-icon>\r\n </button>\r\n <ng-template #cardViewContainer> </ng-template>\r\n </div>\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 { Observable, of } from 'rxjs';\r\n\r\nimport { AppfxCardSettings, AppfxContainerPersistenceStore } from '../appfx-card-container.interface';\r\n\r\n/**\r\n * Handles storing and retrieving of preferences of the container\r\n * like order, hidden properties of card\r\n */\r\nexport class AppfxCardContainerStore {\r\n private readonly localStorage: LocalStorage | undefined;\r\n\r\n constructor() {\r\n this.localStorage = this.getLocalStorage(window);\r\n }\r\n\r\n getLocalStore(key: string): AppfxContainerPersistenceStore {\r\n const retrieve = (): Observable<AppfxCardSettings[]> => {\r\n return this.getData(key);\r\n };\r\n\r\n const save = (cards: AppfxCardSettings[]): void => {\r\n this.setData(key, cards);\r\n };\r\n\r\n return {\r\n retrieve,\r\n save,\r\n };\r\n }\r\n\r\n private getLocalStorage(window: any): LocalStorage | undefined {\r\n try {\r\n if (window.localStorage) {\r\n return window.localStorage;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n } catch (ignored) {\r\n // ignored\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Retrieving data from the local storage.\r\n * @param key the key to the local storage data\r\n * @returns the object being saved in the local storage,\r\n * Note that the stored data is converted through angular.fromJson()\r\n */\r\n private getData(key: string): Observable<AppfxCardSettings[]> {\r\n if (this.localStorage) {\r\n let data: any = this.localStorage.getItem(key);\r\n if (data) {\r\n data = JSON.parse(data);\r\n return of(data);\r\n }\r\n }\r\n return of([]);\r\n }\r\n\r\n /**\r\n * Setting data into the local storage.\r\n * @param key the key to the local storage data\r\n * @param data to be stored\r\n */\r\n private setData(key: string, cards: AppfxCardSettings[]) {\r\n const data = JSON.stringify(cards);\r\n if (this.localStorage) {\r\n try {\r\n this.localStorage.setItem(key, data);\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n } catch (ignored) {\r\n // ignored\r\n }\r\n }\r\n }\r\n}\r\n\r\ninterface LocalStorage {\r\n getItem(key: string): string;\r\n\r\n setItem(key: string, data: string): void;\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, Output } from '@angular/core';\r\nimport {\r\n appfxMissingTranslationToken,\r\n AppfxTranslateService,\r\n appfxTranslationsToken,\r\n defaultMissingTranslationHandler,\r\n} from '@hermes-ui/angular/addons/translate';\r\nimport { ClarityIcons, cogIcon } from '@hermes-ui/angular/icon';\r\n\r\nimport { AppfxCardInternal } from '../appfx-card-container.interface';\r\nimport { translations } from '../appfx-card-container.l10n';\r\n\r\n// sort function to display cards by sorted titles\r\nconst sortCardsByTitleFn = (a: AppfxCardInternal, b: AppfxCardInternal) => {\r\n if (a.title && b.title) {\r\n return a.title.localeCompare(b.title);\r\n }\r\n return 0;\r\n};\r\n\r\n/**\r\n * Component to display container settings menu to show/hide cards.\r\n * Shows card list alphabetically according to title with checkboxes.\r\n */\r\n@Component({\r\n selector: 'appfx-card-container-settings',\r\n standalone: false,\r\n templateUrl: 'appfx-card-container-settings.component.html',\r\n styleUrls: ['appfx-card-container-settings.component.scss'],\r\n providers: [\r\n AppfxTranslateService,\r\n {\r\n provide: appfxMissingTranslationToken,\r\n useValue: defaultMissingTranslationHandler,\r\n },\r\n {\r\n provide: appfxTranslationsToken,\r\n useValue: translations,\r\n },\r\n ],\r\n})\r\nexport class AppfxCardContainerSettingsComponent {\r\n cards: AppfxCardInternal[];\r\n\r\n /**\r\n * Event Emitter when user wants to show/hide card.\r\n */\r\n @Output() toggleCardVisibility: EventEmitter<string> = new EventEmitter();\r\n\r\n constructor() {\r\n ClarityIcons.addIcons(cogIcon);\r\n }\r\n\r\n /**\r\n * Cards list to display in settings dropdown menu.\r\n */\r\n @Input()\r\n set containerCards(cards: AppfxCardInternal[]) {\r\n this.cards = cards.sort(sortCardsByTitleFn);\r\n }\r\n\r\n /**\r\n * Show/hide Card\r\n */\r\n toggleShowHide(card: AppfxCardInternal): void {\r\n if (card.canHide !== false) {\r\n this.toggleCardVisibility.emit(card.id);\r\n }\r\n }\r\n\r\n trackByFn(index: number, item: AppfxCardInternal): string {\r\n return item.id;\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-dropdown [hermesCloseMenuOnItemClick]=\"false\">\r\n <button class=\"settings-btn\" hermesDropdownTrigger>\r\n <hermes-icon shape=\"cog\" size=\"24\" data-test-id=\"toggleContainerSettingsDropDown\"> </hermes-icon>\r\n <span class=\"hermes-sr-only\">\r\n {{ 'settingsCog' | translate }}\r\n </span>\r\n </button>\r\n <hermes-dropdown-menu class=\"container-settings\" hermesPosition=\"bottom-right\" *hermesIfOpen>\r\n <div *ngFor=\"let card of cards; trackBy: trackByFn\" hermesDropdownItem>\r\n <hermes-checkbox-wrapper\r\n [class.disabled-item]=\"card.canHide === false\"\r\n (keydown.space)=\"toggleShowHide(card)\"\r\n (keydown.enter)=\"toggleShowHide(card)\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n hermesCheckbox\r\n name=\"cards\"\r\n (change)=\"toggleShowHide(card)\"\r\n [checked]=\"!card.hidden\"\r\n [disabled]=\"card.canHide === false\"\r\n tabindex=\"-1\"\r\n />\r\n <label [title]=\"card.title\" hermes-text=\"truncate\">{{ card.title }}</label>\r\n </hermes-checkbox-wrapper>\r\n </div>\r\n </hermes-dropdown-menu>\r\n</hermes-dropdown>\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 DoCheck,\r\n EmbeddedViewRef,\r\n Input,\r\n IterableChangeRecord,\r\n IterableDiffer,\r\n IterableDiffers,\r\n OnInit,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { filter, map, take, tap } from 'rxjs/operators';\r\n\r\nimport { AppfxCardInternal, AppfxContainerPersistenceStore } from '../appfx-card-container.interface';\r\nimport { AppfxCardComponent } from '../card/appfx-card.component';\r\nimport { A11yService } from '../services/a11y.service';\r\nimport { ContainerService } from '../services/container.service';\r\nimport { DragDropService } from '../services/dnd.service';\r\nimport { LayoutService } from '../services/layout.service';\r\nimport { PersistenceService } from '../services/persistence.service';\r\nimport { AppfxCardContainerStore } from '../utils/appfx-card-container-store';\r\n\r\n/**\r\n * Appfx Card Container\r\n *\r\n * Provides container for cards with below functionalities\r\n * - Dynamic card insertion and removal\r\n * - Show/Hide cards through settings menu\r\n * - Drag an Drop Cards to change order\r\n * - Keyboard a11y events handling\r\n * - Card order and hidden property persistence\r\n *\r\n * @Usages\r\n * <appfx-card-container\r\n * [containerId]=\"example-container\"\r\n * [cards]=\"container cards\"\r\n * [persistenceStore]=\"AppfxContainerPersistenceStore\"> // optional if none provided local storage is used\r\n * </<appfx-card-container>\r\n */\r\n@Component({\r\n selector: 'appfx-card-container',\r\n standalone: false,\r\n templateUrl: 'appfx-card-container.component.html',\r\n styleUrls: ['appfx-card-container.component.scss'],\r\n providers: [A11yService, ContainerService, DragDropService, LayoutService, PersistenceService],\r\n})\r\nexport class AppfxCardContainerComponent implements OnInit, DoCheck {\r\n @Input() containerId: string;\r\n\r\n @Input() cards: AppfxCardInternal[] = [];\r\n\r\n @Input() persistenceStore?: AppfxContainerPersistenceStore;\r\n\r\n @Input() showCardContainerSettings: boolean = true;\r\n\r\n @Input() dragDropEnabled: boolean = true;\r\n\r\n containerCards: AppfxCardInternal[] = [];\r\n\r\n @ViewChild('cardContainer', { read: ViewContainerRef, static: true }) private cardContainer: ViewContainerRef;\r\n\r\n private readonly differ: IterableDiffer<AppfxCardInternal>;\r\n\r\n constructor(\r\n private containerService: ContainerService,\r\n private persistenceService: PersistenceService,\r\n private iterableDiffers: IterableDiffers\r\n ) {\r\n // iterable differ to track added/removed cards\r\n this.differ = iterableDiffers.find(this.cards).create(this.trackByFn);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.containerId) {\r\n throw new Error('Missing Input property - containerId');\r\n }\r\n this.initialize();\r\n }\r\n\r\n ngDoCheck() {\r\n const changes = this.differ.diff(this.cards);\r\n if (changes) {\r\n // insert card into container\r\n changes.forEachAddedItem((record: IterableChangeRecord<AppfxCardInternal>) => this.addDynamicCard(record.item));\r\n // remove card from container\r\n changes.forEachRemovedItem((record: IterableChangeRecord<AppfxCardInternal>) =>\r\n this.removeCardFromContainer(record.item)\r\n );\r\n }\r\n }\r\n\r\n onToggleCardVisibility(cardId: string): void {\r\n const card = this.containerService.toggleCardVisibility(cardId);\r\n // if card is no more inside container\r\n if (!card) {\r\n return;\r\n }\r\n // remove card from container view but not from available list of cards\r\n if (card.hidden) {\r\n this.removeCardFromContainer(card, true);\r\n this.containerService.updateCardsOrder();\r\n this.updateContainerCards();\r\n return;\r\n }\r\n // get card order, hidden property from store then update hidden to false and insert card into container\r\n this.containerService\r\n .getCardWithOrder(card)\r\n .pipe(\r\n take(1),\r\n map((cardWithOrder: AppfxCardInternal) => ({\r\n ...cardWithOrder,\r\n hidden: false,\r\n })),\r\n tap((cardWithOrder: AppfxCardInternal) => {\r\n this.insertCardToContainer(cardWithOrder);\r\n this.containerService.updateCardsOrder();\r\n this.updateContainerCards();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private initialize(): void {\r\n // initialize persistence store service with provided or local store\r\n this.persistenceService.initialize(\r\n this.persistenceStore || new AppfxCardContainerStore().getLocalStore(this.containerId)\r\n );\r\n\r\n // initialize container service\r\n this.containerService.initialize(this.cardContainer, this.cards);\r\n\r\n // get cards with order from store and accordingly insert into container\r\n this.containerService\r\n .getCardsWithOrder()\r\n .pipe(\r\n take(1),\r\n tap((cards: AppfxCardInternal[]) => {\r\n cards.forEach((card: AppfxCardInternal) => this.insertCardToContainer(card));\r\n this.containerService.updateCardsOrder();\r\n this.updateContainerCards();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private addDynamicCard(card: AppfxCardInternal): void {\r\n if (this.containerService.getCardById(card.id)) {\r\n return;\r\n }\r\n this.containerService.addCard(card); // add card to the list of container cards\r\n this.updateContainerCards(); // update container list cards\r\n\r\n // get order, hidden property from store and accordingly insert card into container\r\n this.containerService\r\n .getCardWithOrder(card)\r\n .pipe(\r\n take(1),\r\n filter((cardWithOrder: AppfxCardInternal) => !cardWithOrder.hidden),\r\n tap((cardWithOrder: AppfxCardInternal) => {\r\n this.insertCardToContainer(cardWithOrder);\r\n this.containerService.updateCardsOrder();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private insertCardToContainer(card: AppfxCardInternal): void {\r\n const containerCard = this.containerService.getCardById(card.id);\r\n if (containerCard) {\r\n // check if card is currently in ViewContainer angular returns -1 if card is not inside container\r\n const index = this.cardContainer.indexOf(containerCard.view);\r\n if (index !== -1) {\r\n console.warn('Container Card already visualized, id = ' + card.id);\r\n return;\r\n }\r\n }\r\n const numCards = this.cardContainer.length;\r\n // if order of card is out of current container cards insert card in end\r\n card.order = card.order < 0 || card.order > numCards ? numCards : card.order;\r\n const cr = this.cardContainer.createComponent(AppfxCardComponent, { index: card.order });\r\n cr.instance.card = card; // set input properties\r\n cr.instance.dropGroup = this.containerId; // card drag and drop should happen inside this container only\r\n cr.instance.dragDropEnabled = this.dragDropEnabled;\r\n // set view to retrieve order of card from view to use later\r\n card.view = this.cardContainer.get(card.order) as EmbeddedViewRef<void>;\r\n this.containerService.updateCard(card);\r\n }\r\n\r\n private removeCardFromContainer(card: AppfxCardInternal, hideOnly: boolean = false): void {\r\n const containerCard = this.containerService.getCardById(card.id);\r\n if (!containerCard) {\r\n return;\r\n }\r\n\r\n // check if card is currently in ViewContainer angular returns -1 if card is not inside container\r\n const index = this.cardContainer.indexOf(containerCard.view);\r\n if (index !== -1) {\r\n this.cardContainer.remove(index);\r\n }\r\n\r\n // remove from list of available cards if its not hidden or card view is not available\r\n if (!hideOnly || !containerCard.view) {\r\n this.containerService.removeCard(containerCard.id);\r\n this.updateContainerCards();\r\n }\r\n }\r\n\r\n private updateContainerCards() {\r\n this.containerCards = [...this.containerService.getContainerCards()];\r\n }\r\n\r\n private trackByFn(index: number, item: AppfxCardInternal): string {\r\n return item.id;\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<div class=\"content-container hermes-flex-row\">\r\n <div class=\"card-container hermes-flex-grow-1\">\r\n <ng-template #cardContainer> </ng-template>\r\n </div>\r\n <appfx-card-container-settings\r\n *ngIf=\"showCardContainerSettings\"\r\n [containerCards]=\"containerCards\"\r\n (toggleCardVisibility)=\"onToggleCardVisibility($event)\"\r\n ></appfx-card-container-settings>\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 { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AppfxTranslateModule } from '@hermes-ui/angular/addons/translate';\r\nimport { HermesCheckboxModule } from '@hermes-ui/angular/forms/checkbox';\r\nimport { HermesDropdownModule } from '@hermes-ui/angular/popover/dropdown';\r\n\r\nimport { AppfxCardComponent } from './card/appfx-card.component';\r\nimport { AppfxCardContainerComponent } from './container/appfx-card-container.component';\r\nimport { AppfxCardContainerSettingsComponent } from './settings/appfx-card-container-settings.component';\r\n\r\n/**\r\n * AppFx Card Container module\r\n * declaration and exports of needed components\r\n */\r\n@NgModule({\r\n imports: [AppfxTranslateModule, HermesCheckboxModule, HermesDropdownModule, CommonModule, DragDropModule],\r\n declarations: [AppfxCardComponent, AppfxCardContainerComponent, AppfxCardContainerSettingsComponent],\r\n exports: [AppfxCardComponent, AppfxCardContainerComponent, AppfxCardContainerSettingsComponent],\r\n})\r\nexport class AppfxCardContainerModule {}\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 { AppfxCard, AppfxCardSettings, AppfxContainerPersistenceStore } from './appfx-card-container.interface';\r\nexport { AppfxCardContainerModule } from './appfx-card-container.module';\r\nexport { AppfxCardComponent } from './card/appfx-card.component';\r\nexport { AppfxCardContainerComponent } from './container/appfx-card-container.component';\r\nexport { AppfxCardContainerSettingsComponent } from './settings/appfx-card-container-settings.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.PersistenceService","i1.ContainerService","i2.LayoutService","i3.DragDropService","i4.A11yService","i1","i2","i5","i6","i7","i2.PersistenceService","i3","i4.AppfxCardContainerSettingsComponent"],"mappings":"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"}
1
+ {"version":3,"file":"hermes-ui-angular-addons-card-container.mjs","sources":["../../../addons/card-container/appfx-card-container.l10n.ts","../../../addons/card-container/appfx-card-container-constants.ts","../../../addons/card-container/services/layout.service.ts","../../../addons/card-container/services/persistence.service.ts","../../../addons/card-container/services/container.service.ts","../../../addons/card-container/services/dnd.service.ts","../../../addons/card-container/services/a11y.service.ts","../../../addons/card-container/card/appfx-card.component.ts","../../../addons/card-container/card/appfx-card.component.html","../../../addons/card-container/utils/appfx-card-container-store.ts","../../../addons/card-container/settings/appfx-card-container-settings.component.ts","../../../addons/card-container/settings/appfx-card-container-settings.component.html","../../../addons/card-container/container/appfx-card-container.component.ts","../../../addons/card-container/container/appfx-card-container.component.html","../../../addons/card-container/appfx-card-container.module.ts","../../../addons/card-container/index.ts","../../../addons/card-container/hermes-ui-angular-addons-card-container.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\n// Disable the duplicate string check because this is a translations file.\r\n\r\nimport { AppfxTranslations } from '@hermes-ui/angular/addons/translate';\r\n\r\nexport const translations: AppfxTranslations = {\r\n en: {\r\n /**\r\n * Settings toggle button label for screen readers.\r\n */\r\n settingsCog: 'Settings',\r\n /**\r\n * Drag handle button label for screen readers.\r\n */\r\n cardDragHandle: 'Card drag handle',\r\n /**\r\n * Drag handle button describe for screen readers.\r\n */\r\n cardDragHandleDescription: 'Press Enter and use left or right key to move the card to a new position.',\r\n },\r\n fr: {\r\n settingsCog: 'Paramètres',\r\n\r\n cardDragHandle: 'Poignée de glissement de carte',\r\n\r\n cardDragHandleDescription:\r\n 'Appuyez sur Entrée et utilisez la flèche vers la gauche ou la droite pour déplacer la carte vers une nouvelle position.',\r\n },\r\n es: {\r\n settingsCog: 'Configuración',\r\n\r\n cardDragHandle: 'Control de arrastre de tarjeta ',\r\n\r\n cardDragHandleDescription:\r\n 'Pulse la tecla Intro y use la tecla de flecha izquierda o derecha para mover la tarjeta a una nueva posición.',\r\n },\r\n ja: {\r\n settingsCog: '設定',\r\n\r\n cardDragHandle: 'カード ドラッグ ハンドル',\r\n\r\n cardDragHandleDescription: 'Enter キーを押し、←または→キーを押してカードを新しい位置に移動します。',\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// unit Card Width and Height\r\nexport const cardSize = {\r\n unitWidthInPixels: 258,\r\n unitHeightInPixels: 58,\r\n unitGutterSizeInPixels: 18,\r\n headerHeightInPixels: 50,\r\n footerHeightInPixels: 50,\r\n};\r\n\r\n// card defaults\r\nexport const cardDefaults = {\r\n unitWidth: 1,\r\n unitHeight: 5,\r\n order: Infinity,\r\n hidden: false,\r\n canHide: 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 { Injectable, Renderer2 } from '@angular/core';\r\n\r\nimport { cardSize } from '../appfx-card-container-constants';\r\n\r\n/**\r\n * Provides functionality related to layout of cards like updating card sizes\r\n * adding scrolling inside card block depending on conditions\r\n */\r\n@Injectable()\r\nexport class LayoutService {\r\n constructor(private renderer: Renderer2) {}\r\n\r\n /**\r\n * Updates the size of the cards according to the info provided\r\n */\r\n updateCardSize(element: HTMLElement, unitWidth: number = 1, unitHeight: number = 5) {\r\n const cardElement = element?.querySelector('.card') as HTMLElement;\r\n if (!cardElement) {\r\n return;\r\n }\r\n if (unitWidth > -1) {\r\n const cardWidth = this.calculateCardWidth(unitWidth);\r\n this.renderer.setStyle(cardElement, 'width', `${cardWidth}px`);\r\n } else {\r\n this.renderer.removeStyle(cardElement, 'width');\r\n }\r\n let cardBlockHeight = this.calculateCardHeight(unitHeight);\r\n // if .card-header is defined reduce header height(50px) from .card-block height\r\n // 5 unit -> 58*5 + 18*4 -> 362px - 50px -> 312px\r\n const cardHeader = cardElement.querySelector('.card-header') as HTMLElement;\r\n if (cardHeader) {\r\n cardBlockHeight -= cardSize.headerHeightInPixels;\r\n this.renderer.setStyle(cardHeader, 'height', `${cardSize.headerHeightInPixels}px`);\r\n }\r\n\r\n // if .card-footer is defined reduce footer height(50px) from .card-block height\r\n // 5 unit -> 58*5 + 18*4 -> 362px - 50px -> 312px\r\n const cardFooter = cardElement.querySelector('.card-footer') as HTMLElement;\r\n if (cardFooter) {\r\n cardBlockHeight -= cardSize.footerHeightInPixels;\r\n this.renderer.setStyle(cardFooter, 'height', `${cardSize.footerHeightInPixels}px`);\r\n }\r\n const cardBlock = cardElement.querySelector('.card-block') as HTMLElement;\r\n if (cardBlock) {\r\n if (unitHeight > -1) {\r\n this.renderer.setStyle(cardBlock, 'height', `${cardBlockHeight}px`);\r\n } else {\r\n this.renderer.removeStyle(cardBlock, 'height');\r\n }\r\n if (cardHeader) {\r\n this.renderer.setStyle(cardBlock, 'overflow-y', 'auto');\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * card width is unitWidth * unitWidthInPixels(258px) + in between gutters * unitGutterSizeInPixels(18px)\r\n * in between gutters are number of units - 1\r\n * 1 unit -> 258px\r\n * 2 unit -> 258*2 + 18 -> 534px\r\n * 3 unit -> 258*3 + 18*2 -> 810px ....\r\n * @param unitWidth\r\n */\r\n private calculateCardWidth(unitWidth: number): number {\r\n return unitWidth * cardSize.unitWidthInPixels + (unitWidth - 1) * cardSize.unitGutterSizeInPixels;\r\n }\r\n\r\n /**\r\n * card height is unitHeight * unitHeightInPixels(258px) + in between gutters * unitGutterSizeInPixels(18px)\r\n * in between gutters are number of units - 1\r\n * 1 unit -> 58px\r\n * 5 unit -> 58*5 + 18*4 -> 362px\r\n * 7 unit -> 58*7 + 18*6 -> 514px ....\r\n * @param unitHeight\r\n */\r\n private calculateCardHeight(unitHeight: number): number {\r\n return unitHeight * cardSize.unitHeightInPixels + (unitHeight - 1) * cardSize.unitGutterSizeInPixels;\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 } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport {\r\n AppfxCardInternal,\r\n AppfxCardSettings,\r\n AppfxContainerPersistenceStore,\r\n} from '../appfx-card-container.interface';\r\n\r\n/**\r\n * Handles storing and retrieving of preferences/settings of the cards in container\r\n * like order, hidden properties of card.\r\n */\r\n@Injectable()\r\nexport class PersistenceService {\r\n private containerStore: AppfxContainerPersistenceStore;\r\n\r\n private appfxCardSettings: AppfxCardSettings[] = [];\r\n\r\n initialize(containerStore: AppfxContainerPersistenceStore) {\r\n this.containerStore = containerStore;\r\n }\r\n\r\n retrieve(): Observable<AppfxCardSettings[]> {\r\n return this.containerStore.retrieve().pipe(\r\n tap((cardSettings: AppfxCardSettings[]) => {\r\n this.appfxCardSettings = cardSettings;\r\n })\r\n );\r\n }\r\n\r\n save(cards: AppfxCardInternal[]): void {\r\n const cardSettings: AppfxCardSettings[] = this.generateCardSettings(cards);\r\n this.appfxCardSettings = this.mergeCardSettings(cardSettings);\r\n this.containerStore.save(this.appfxCardSettings);\r\n }\r\n\r\n /**\r\n * Generate Card Settings.\r\n */\r\n private generateCardSettings(cards: AppfxCardInternal[]): AppfxCardSettings[] {\r\n return cards.map((card: AppfxCardInternal) => ({\r\n id: card.id,\r\n order: card.order,\r\n hidden: card.hidden,\r\n }));\r\n }\r\n\r\n /**\r\n * If cardSettings are preset in the persistence store then update them with provided info and use them\r\n * else add it to store if new card settings.\r\n */\r\n private mergeCardSettings(cardSettings: AppfxCardSettings[]): AppfxCardSettings[] {\r\n const updatedCardSettings = this.appfxCardSettings.map((cardSetting: AppfxCardSettings) => {\r\n const updatedCardSetting = cardSettings.find((setting: AppfxCardSettings) => setting.id === cardSetting.id);\r\n return updatedCardSetting ?? cardSetting;\r\n });\r\n\r\n // get newly added cards\r\n const newCardSettings = cardSettings.filter((cardSetting: AppfxCardSettings) => {\r\n const alreadyUpdated = updatedCardSettings.find(\r\n (updatedCardSetting: AppfxCardSettings) => updatedCardSetting.id === cardSetting.id\r\n );\r\n return !alreadyUpdated;\r\n });\r\n\r\n // all cardsInfo's - existing with updated cardInfo's and newly added cardInfo's\r\n return [...updatedCardSettings, ...newCardSettings];\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 { EmbeddedViewRef, Injectable, ViewContainerRef } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { cardDefaults } from '../appfx-card-container-constants';\r\nimport { AppfxCardInternal, AppfxCardSettings } from '../appfx-card-container.interface';\r\nimport { PersistenceService } from './persistence.service';\r\n\r\n/**\r\n * Keep track of the cards in the container with their properties like order, hidden etc.\r\n * Takes care of updating store with the card preferences.\r\n */\r\n@Injectable()\r\nexport class ContainerService {\r\n private cardContainer: ViewContainerRef;\r\n private containerCards: AppfxCardInternal[] = [];\r\n\r\n constructor(private persistenceService: PersistenceService) {}\r\n\r\n /**\r\n * Initialize container service by adding list of cards and persistence service instance.\r\n */\r\n initialize(cardContainer: ViewContainerRef, cards: AppfxCardInternal[]) {\r\n this.cardContainer = cardContainer;\r\n // add unique cards\r\n cards.forEach((card: AppfxCardInternal) => this.addCard(card));\r\n }\r\n\r\n /**\r\n * Fetches card order, hidden properties from the persistence service and apply it to card.\r\n * Filters hidden card, sorts cards according to order and remove duplicate order cards.\r\n */\r\n getCardsWithOrder(): Observable<AppfxCardInternal[]> {\r\n return this.persistenceService.retrieve().pipe(\r\n // set card oder and hidden user preferences from store\r\n map((cardSettings: AppfxCardSettings[]) => this.applySettingsToCards(cardSettings)),\r\n // do not insert hidden cards\r\n map((cardsWithSettings: AppfxCardInternal[]) => this.filterHiddenCards(cardsWithSettings)),\r\n // sort cards in order to insert into container\r\n map((visibleCards: AppfxCardInternal[]) => this.sortCardsByOrder(visibleCards)),\r\n // remove duplicate order\r\n map((sortedCards: AppfxCardInternal[]) => this.normalizeCardOrder(sortedCards))\r\n );\r\n }\r\n\r\n /**\r\n * Fetches card order, hidden properties from the persistence service and apply it to card.\r\n * if card is hidden before filters it accordingly so that container will not insert it.\r\n */\r\n getCardWithOrder(card: AppfxCardInternal): Observable<AppfxCardInternal> {\r\n return this.persistenceService\r\n .retrieve()\r\n .pipe(map((cardSettings: AppfxCardSettings[]) => this.applyCardSettings(card, cardSettings)));\r\n }\r\n\r\n /**\r\n * Toggles card hidden property and save updated settings in store.\r\n */\r\n toggleCardVisibility(cardId: string): AppfxCardInternal | undefined {\r\n this.containerCards = this.containerCards.map((containerCard: AppfxCardInternal) => {\r\n if (containerCard.id === cardId) {\r\n containerCard.hidden = !containerCard.hidden;\r\n }\r\n return containerCard;\r\n });\r\n return this.getCardById(cardId);\r\n }\r\n\r\n /**\r\n * Moves the card from Drag Index to Drop Index\r\n * by detaching card from view at drag Index and inserting it into Drop Index.\r\n *\r\n * Updates the order of the remaining cards once done.\r\n */\r\n moveCard(fromIndex: number, toIndex: number): void {\r\n // drag and drop on the same card position\r\n if (fromIndex === toIndex) {\r\n return;\r\n }\r\n // right to left\r\n toIndex = fromIndex < toIndex ? toIndex : toIndex + 1;\r\n\r\n const cardView = this.cardContainer.get(fromIndex) as EmbeddedViewRef<void>;\r\n if (cardView) {\r\n this.cardContainer.detach(fromIndex);\r\n this.cardContainer.insert(cardView, toIndex);\r\n this.updateCardsOrder();\r\n }\r\n }\r\n\r\n /**\r\n * Removes card form the list of container cards.\r\n */\r\n removeCard(cardId: string): void {\r\n this.containerCards = this.containerCards.filter((card: AppfxCardInternal) => card.id !== cardId);\r\n }\r\n\r\n /**\r\n * Update Card properties once inserted into container.\r\n * View and order gets updated once card is available into container.\r\n */\r\n updateCard(card: AppfxCardInternal): void {\r\n this.containerCards = this.containerCards.map((containerCard: AppfxCardInternal) => {\r\n return containerCard.id === card.id ? { ...containerCard, ...card } : containerCard;\r\n });\r\n }\r\n\r\n /**\r\n * Returns all cards inside container including hidden cards.\r\n */\r\n getContainerCards(): AppfxCardInternal[] {\r\n return [...this.containerCards];\r\n }\r\n\r\n /**\r\n * Returns number of visible cards in the container.\r\n */\r\n getVisibleCardsCount(): number {\r\n return this.filterHiddenCards(this.containerCards).length;\r\n }\r\n\r\n /**\r\n * Update the order on the cards after shuffling occurs new order is as per the index of cards in the view.\r\n */\r\n updateCardsOrder(): void {\r\n this.containerCards = this.containerCards.map((card: AppfxCardInternal) => {\r\n if (!card.hidden && card.view) {\r\n const order = this.cardContainer.indexOf(card.view);\r\n if (card.order !== order) {\r\n card.order = order;\r\n }\r\n }\r\n return card;\r\n });\r\n this.persistenceService.save(this.containerCards);\r\n }\r\n\r\n /**\r\n * Returns container ViewRef\r\n */\r\n getCardContainer(): ViewContainerRef {\r\n return this.cardContainer;\r\n }\r\n\r\n /**\r\n * Provides card by id if available\r\n */\r\n getCardById(cardId: string): AppfxCardInternal | undefined {\r\n return this.containerCards.find((containerCard: AppfxCardInternal) => containerCard.id === cardId);\r\n }\r\n\r\n /**\r\n * provides order of the card in the container\r\n */\r\n getCardOrder(cardId: string): number {\r\n return this.getCardById(cardId)?.order ?? cardDefaults.order;\r\n }\r\n\r\n /**\r\n * Adds card to the container list of cards of the container service.\r\n * Container cards contains all the available cards within container visible as well as hidden.\r\n */\r\n addCard(card: AppfxCardInternal): void {\r\n if (this.getCardById(card.id)) {\r\n throw new Error(`Card with id '${card.id}' already exist`);\r\n }\r\n this.containerCards = [...this.containerCards, card];\r\n }\r\n\r\n /**\r\n * Updates each of the card settings properties like order, hidden.\r\n */\r\n private applySettingsToCards(cardSettings: AppfxCardSettings[]): AppfxCardInternal[] {\r\n return this.containerCards.map((card: AppfxCardInternal) => this.applyCardSettings(card, cardSettings));\r\n }\r\n\r\n /**\r\n * Updates card settings properties like order, hidden.\r\n * If none available in the persistence store cardDefaults are used.\r\n */\r\n private applyCardSettings(card: AppfxCardInternal, cardSettings: AppfxCardSettings[]): AppfxCardInternal {\r\n const cardSetting = cardSettings.find((setting: AppfxCardSettings) => setting.id === card.id);\r\n card.order = cardSetting?.order ?? cardDefaults.order;\r\n card.hidden = cardSetting?.hidden ?? cardDefaults.hidden;\r\n return card;\r\n }\r\n\r\n /**\r\n * Remove hidden cards\r\n */\r\n private filterHiddenCards(cards: AppfxCardInternal[]): AppfxCardInternal[] {\r\n return cards.filter((card: AppfxCardInternal) => !card.hidden);\r\n }\r\n\r\n /**\r\n * Sorts cards in ascending order\r\n */\r\n private sortCardsByOrder(cards: AppfxCardInternal[]): AppfxCardInternal[] {\r\n return cards.sort((a: AppfxCardInternal, b: AppfxCardInternal): number => {\r\n return a.order !== undefined && b.order !== undefined ? a.order - b.order : 0;\r\n });\r\n }\r\n\r\n /**\r\n * Update order to remove duplicates.\r\n * [0,1,1,2,3,3] -> [0,1,2,3,4,5]\r\n */\r\n private normalizeCardOrder(cards: AppfxCardInternal[]): AppfxCardInternal[] {\r\n return cards.map((card: AppfxCardInternal, idx: number) => {\r\n card.order = idx;\r\n return card;\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\nimport { cardDefaults } from '../appfx-card-container-constants';\r\nimport { ContainerService } from './container.service';\r\n\r\n/**\r\n * Provides functionality to drag and drop cards with hermes drag drop directives.\r\n */\r\n@Injectable()\r\nexport class DragDropService {\r\n private dragOrder: number;\r\n\r\n constructor(private containerService: ContainerService) {}\r\n\r\n /**\r\n * Saves the order of drag order to plate at the drop order later.\r\n */\r\n onDragStart(cardId: string): void {\r\n const dragOrder = this.containerService.getCardOrder(cardId);\r\n if (dragOrder === cardDefaults.order) {\r\n return;\r\n }\r\n this.dragOrder = dragOrder;\r\n }\r\n\r\n /**\r\n * On drop move the cards from drag order to drop order.\r\n */\r\n onDragDrop(cardId: string): void {\r\n const dropOrder = this.containerService.getCardOrder(cardId);\r\n if (dropOrder === cardDefaults.order) {\r\n return;\r\n }\r\n this.containerService.moveCard(this.dragOrder, dropOrder);\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 { a11ykeys } from '@hermes-ui/angular/addons/a11y';\r\n\r\nimport { cardDefaults } from '../appfx-card-container-constants';\r\nimport { ContainerService } from './container.service';\r\n\r\n/**\r\n * Provides functionality to drag and drop cards with keyboard interaction\r\n */\r\n@Injectable()\r\nexport class A11yService {\r\n private a11yMode: boolean;\r\n private a11yDragOrder: number = cardDefaults.order;\r\n private a11yDropOrder: number = cardDefaults.order;\r\n\r\n constructor(private containerService: ContainerService) {}\r\n\r\n /**\r\n * Selects the card on press of Enter Key\r\n * If it is first enter on the card container - updates the drag order\r\n * Else moves the card from drag order to drop order\r\n */\r\n selectCard(cardId: string): void {\r\n const cardOrder = this.containerService.getCardOrder(cardId);\r\n if (cardOrder === cardDefaults.order) {\r\n return;\r\n }\r\n\r\n if (this.a11yMode) {\r\n // if already in the drag card is already selected move it to the new drop position\r\n this.containerService.moveCard(this.a11yDragOrder, this.a11yDropOrder);\r\n // reset\r\n this.getOutOfA11yMode();\r\n } else {\r\n this.a11yDragOrder = cardOrder;\r\n this.a11yDropOrder = cardOrder;\r\n this.a11yMode = true;\r\n }\r\n }\r\n\r\n /**\r\n * Moves the drop position on Arrow Keys\r\n * Updates the drop placeholder according to the arrow key direction\r\n */\r\n moveDropPosition(arrowKey: string): void {\r\n if (!this.a11yMode) {\r\n return;\r\n }\r\n // move position of drop card\r\n // if leftArrowKey then to previous card\r\n if (arrowKey === a11ykeys.arrowLeft) {\r\n this.a11yDropOrder -= 1;\r\n }\r\n // if rightArrowKey then to next card\r\n if (arrowKey === a11ykeys.arrowRight) {\r\n this.a11yDropOrder += 1;\r\n }\r\n\r\n // if drop card goes before first card, move to last card\r\n this.a11yDropOrder = this.a11yDropOrder < 0 ? this.containerService.getVisibleCardsCount() - 1 : this.a11yDropOrder;\r\n\r\n // if drop card goes after last card, move to first card\r\n this.a11yDropOrder = this.a11yDropOrder > this.containerService.getVisibleCardsCount() - 1 ? 0 : this.a11yDropOrder;\r\n }\r\n\r\n /**\r\n * Get out of the Accessibility mode\r\n */\r\n getOutOfA11yMode(): void {\r\n this.a11yMode = false;\r\n this.a11yDropOrder = cardDefaults.order;\r\n this.a11yDragOrder = cardDefaults.order;\r\n }\r\n\r\n /**\r\n * checks if cardOrder is equal to a11yDragOrder\r\n */\r\n isSelected(cardId: string): boolean {\r\n const cardOrder = this.containerService.getCardOrder(cardId);\r\n return cardOrder !== cardDefaults.order && this.a11yDragOrder === cardOrder;\r\n }\r\n\r\n /**\r\n * checks if cardOrder is equal to a11yDropOrder\r\n */\r\n isDraggableOver(cardId: string): boolean {\r\n const cardOrder = this.containerService.getCardOrder(cardId);\r\n return cardOrder !== cardDefaults.order && this.a11yDropOrder === cardOrder;\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 { animate, style, transition, trigger } from '@angular/animations';\nimport { CdkDrag, CdkDropList } from '@angular/cdk/drag-drop';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { a11ykeys, ZoomLevel, ZoomLevelService } from '@hermes-ui/angular/addons/a11y';\nimport { DragAndDropGroupService } from '@hermes-ui/angular/addons/drag-and-drop';\nimport {\n appfxMissingTranslationToken,\n AppfxTranslateService,\n appfxTranslationsToken,\n defaultMissingTranslationHandler,\n} from '@hermes-ui/angular/addons/translate';\nimport { HermesIcons, dragHandleIcon } from '@hermes-ui/angular/icon';\nimport { Subscription } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { AppfxCardInternal } from '../appfx-card-container.interface';\nimport { translations } from '../appfx-card-container.l10n';\nimport { A11yService } from '../services/a11y.service';\nimport { DragDropService } from '../services/dnd.service';\nimport { LayoutService } from '../services/layout.service';\n\n/**\n * Appfx Container Card\n * Handles user interactions like drag and drop and a11y support for same through keyboard events\n *\n * Used internally in Appfx Card Container @see(AppfxCardContainer)\n */\n@Component({\n selector: 'appfx-card',\n standalone: false,\n templateUrl: 'appfx-card.component.html',\n styleUrls: ['appfx-card.component.scss'],\n providers: [\n AppfxTranslateService,\n {\n provide: appfxMissingTranslationToken,\n useValue: defaultMissingTranslationHandler,\n },\n {\n provide: appfxTranslationsToken,\n useValue: translations,\n },\n ],\n animations: [\n trigger('cardAnimation', [\n transition(':enter', [\n style({ opacity: 0, transform: 'translateX(-100%)' }),\n animate('200ms ease-in', style({ opacity: 1, transform: 'translateX(0%)' })),\n ]),\n transition(':leave', [animate('200ms ease-in', style({ opacity: 0, transform: 'translateX(0%)' }))]),\n ]),\n ],\n})\nexport class AppfxCardComponent implements OnInit, AfterViewInit, OnDestroy {\n /**\n * The descriptor of the step being rendered.\n */\n @Input() card: AppfxCardInternal;\n\n /**\n * Specifics which dropGroup card belongs to as card drop should happen within specific container\n * used to distinguish drag and drop cards from multiple containers\n */\n @Input() dropGroup: string;\n\n @ViewChild(CdkDropList, { static: true }) readonly dropList: CdkDropList;\n\n dragDropEnabled: boolean = true;\n\n @ViewChild(CdkDrag, { read: ElementRef }) private cdkDragElementRefs: ElementRef;\n\n @ViewChild('cardViewContainer', { read: ViewContainerRef, static: true }) private cardViewContainer: ViewContainerRef;\n\n // Store current set card unit width\n private currentUnitWidth: number | undefined;\n // Store current set card unit height\n private currentUnitHeight: number | undefined;\n private subscriptions = new Subscription();\n\n constructor(\n private el: ElementRef,\n private groupService: DragAndDropGroupService,\n private layoutService: LayoutService,\n private dragDropService: DragDropService,\n private a11yService: A11yService,\n private changeDetector: ChangeDetectorRef,\n @Optional() private zoomLevelService: ZoomLevelService\n ) {\n HermesIcons.addIcons(dragHandleIcon);\n }\n\n get isSelected(): boolean {\n return this.a11yService.isSelected(this.card.id);\n }\n\n get isDraggableOver(): boolean {\n return this.a11yService.isDraggableOver(this.card.id);\n }\n\n get cdkDropGroup(): CdkDropList[] {\n return this.groupService.getGroupItems(this.dropGroup) as unknown as CdkDropList[];\n }\n\n ngOnInit(): void {\n if (!this.card.id) {\n throw new Error('Missing Input property for card - id');\n }\n this.loadComponent();\n\n if (this.zoomLevelService) {\n this.currentUnitWidth = this.card.unitWidth;\n this.currentUnitHeight = this.card.unitHeight;\n this.subscriptions.add(\n this.zoomLevelService.onChange\n .pipe(\n map((data: ZoomLevel) => {\n if (!!this.card.cardZoomSizes && !!(this.card.cardZoomSizes as any)[data]) {\n return (this.card.cardZoomSizes as any)[data];\n }\n return {\n unitHeight: this.card.unitHeight,\n unitWidth: this.card.unitWidth,\n };\n }),\n filter(size => {\n return size.unitWidth !== this.currentUnitWidth || size.unitHeight !== this.currentUnitHeight;\n })\n )\n .subscribe(size => {\n this.currentUnitWidth = size.unitWidth;\n this.currentUnitHeight = size.unitHeight;\n this.layoutService.updateCardSize(this.el.nativeElement, this.currentUnitWidth, this.currentUnitHeight);\n this.changeDetector.detectChanges();\n })\n );\n }\n }\n\n ngAfterViewInit(): void {\n this.layoutService.updateCardSize(this.el.nativeElement, this.card.unitWidth, this.card.unitHeight);\n this.groupService.addGroupItem(this.dropGroup, this.dropList);\n this.changeDetector.detectChanges();\n }\n\n ngOnDestroy(): void {\n this.groupService.removeGroupItem(this.dropGroup, this.dropList);\n this.subscriptions.unsubscribe();\n }\n\n onDragStart(): void {\n this.dragDropService.onDragStart(this.card.id);\n }\n\n onDrop(): void {\n this.dragDropService.onDragDrop(this.card.id);\n }\n\n selectCard(event: Event): void {\n this.eventCheck(event);\n this.a11yService.selectCard(this.card.id);\n }\n\n moveDropPositionBackwards(event: Event): void {\n this.eventCheck(event);\n this.a11yService.moveDropPosition(a11ykeys.arrowLeft);\n }\n\n moveDropPositionForwards(event: Event): void {\n this.eventCheck(event);\n this.a11yService.moveDropPosition(a11ykeys.arrowRight);\n }\n\n onDropHandleKeyUp(event: Event): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.cdkDragElementRefs?.nativeElement.focus();\n this.a11yService.selectCard(this.card.id);\n }\n\n private loadComponent(): void {\n if (!this.card.componentClass) {\n return;\n }\n this.cardViewContainer.clear();\n const cr = this.cardViewContainer.createComponent(this.card.componentClass);\n if (this.card.context) {\n Object.entries(this.card.context).forEach(([key, value]) => {\n cr.instance[key] = value;\n });\n }\n }\n\n private eventCheck(event: Event): void {\n if (event.target !== event.currentTarget) {\n return;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\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\n<div\r\n class=\"appfx-card droppable\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n cdkDropListAutoScrollStep=\"6\"\r\n [cdkDropListConnectedTo]=\"cdkDropGroup\"\r\n [class.draggable-over]=\"isDraggableOver\"\r\n (cdkDropListDropped)=\"onDrop()\"\r\n [@cardAnimation]\r\n>\r\n <div\r\n tabindex=\"0\"\r\n class=\"draggable\"\r\n [class.selected-card]=\"isSelected\"\r\n cdkDrag\r\n cdkDragPreviewContainer=\"parent\"\r\n (cdkDragStarted)=\"onDragStart()\"\r\n (keyup.enter)=\"selectCard($event)\"\r\n (keyup.arrowleft)=\"moveDropPositionBackwards($event)\"\r\n (keyup.arrowright)=\"moveDropPositionForwards($event)\"\r\n >\r\n <div class=\"custom-placeholder\" *cdkDragPlaceholder></div>\r\n <button\r\n class=\"drag-handler-button btn btn-icon\"\r\n [attr.aria-label]=\"'cardDragHandle' | translate\"\r\n aria-describedby=\"card-drag-handler-instructions\"\r\n (keyup.enter)=\"onDropHandleKeyUp($event)\"\r\n (keyup.space)=\"onDropHandleKeyUp($event)\"\r\n >\r\n <span class=\"hermes-sr-only\" id=\"card-drag-handler-instructions\">\r\n {{ 'cardDragHandleDescription' | translate }}\r\n </span>\r\n <hermes-icon\r\n class=\"drag-handle-icon\"\r\n shape=\"drag-handle\"\r\n size=\"32\"\r\n cdkDragHandle\r\n [cdkDragHandleDisabled]=\"!dragDropEnabled\"\r\n [hidden]=\"!dragDropEnabled\"\r\n >\r\n </hermes-icon>\r\n </button>\r\n <ng-template #cardViewContainer> </ng-template>\r\n </div>\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 { Observable, of } from 'rxjs';\r\n\r\nimport { AppfxCardSettings, AppfxContainerPersistenceStore } from '../appfx-card-container.interface';\r\n\r\n/**\r\n * Handles storing and retrieving of preferences of the container\r\n * like order, hidden properties of card\r\n */\r\nexport class AppfxCardContainerStore {\r\n private readonly localStorage: LocalStorage | undefined;\r\n\r\n constructor() {\r\n this.localStorage = this.getLocalStorage(window);\r\n }\r\n\r\n getLocalStore(key: string): AppfxContainerPersistenceStore {\r\n const retrieve = (): Observable<AppfxCardSettings[]> => {\r\n return this.getData(key);\r\n };\r\n\r\n const save = (cards: AppfxCardSettings[]): void => {\r\n this.setData(key, cards);\r\n };\r\n\r\n return {\r\n retrieve,\r\n save,\r\n };\r\n }\r\n\r\n private getLocalStorage(window: any): LocalStorage | undefined {\r\n try {\r\n if (window.localStorage) {\r\n return window.localStorage;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n } catch (ignored) {\r\n // ignored\r\n }\r\n return undefined;\r\n }\r\n\r\n /**\r\n * Retrieving data from the local storage.\r\n * @param key the key to the local storage data\r\n * @returns the object being saved in the local storage,\r\n * Note that the stored data is converted through angular.fromJson()\r\n */\r\n private getData(key: string): Observable<AppfxCardSettings[]> {\r\n if (this.localStorage) {\r\n let data: any = this.localStorage.getItem(key);\r\n if (data) {\r\n data = JSON.parse(data);\r\n return of(data);\r\n }\r\n }\r\n return of([]);\r\n }\r\n\r\n /**\r\n * Setting data into the local storage.\r\n * @param key the key to the local storage data\r\n * @param data to be stored\r\n */\r\n private setData(key: string, cards: AppfxCardSettings[]) {\r\n const data = JSON.stringify(cards);\r\n if (this.localStorage) {\r\n try {\r\n this.localStorage.setItem(key, data);\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n } catch (ignored) {\r\n // ignored\r\n }\r\n }\r\n }\r\n}\r\n\r\ninterface LocalStorage {\r\n getItem(key: string): string;\r\n\r\n setItem(key: string, data: string): void;\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 { Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n appfxMissingTranslationToken,\n AppfxTranslateService,\n appfxTranslationsToken,\n defaultMissingTranslationHandler,\n} from '@hermes-ui/angular/addons/translate';\nimport { HermesIcons, cogIcon } from '@hermes-ui/angular/icon';\n\nimport { AppfxCardInternal } from '../appfx-card-container.interface';\nimport { translations } from '../appfx-card-container.l10n';\n\n// sort function to display cards by sorted titles\nconst sortCardsByTitleFn = (a: AppfxCardInternal, b: AppfxCardInternal) => {\n if (a.title && b.title) {\n return a.title.localeCompare(b.title);\n }\n return 0;\n};\n\n/**\n * Component to display container settings menu to show/hide cards.\n * Shows card list alphabetically according to title with checkboxes.\n */\n@Component({\n selector: 'appfx-card-container-settings',\n standalone: false,\n templateUrl: 'appfx-card-container-settings.component.html',\n styleUrls: ['appfx-card-container-settings.component.scss'],\n providers: [\n AppfxTranslateService,\n {\n provide: appfxMissingTranslationToken,\n useValue: defaultMissingTranslationHandler,\n },\n {\n provide: appfxTranslationsToken,\n useValue: translations,\n },\n ],\n})\nexport class AppfxCardContainerSettingsComponent {\n cards: AppfxCardInternal[];\n\n /**\n * Event Emitter when user wants to show/hide card.\n */\n @Output() toggleCardVisibility: EventEmitter<string> = new EventEmitter();\n\n constructor() {\n HermesIcons.addIcons(cogIcon);\n }\n\n /**\n * Cards list to display in settings dropdown menu.\n */\n @Input()\n set containerCards(cards: AppfxCardInternal[]) {\n this.cards = cards.sort(sortCardsByTitleFn);\n }\n\n /**\n * Show/hide Card\n */\n toggleShowHide(card: AppfxCardInternal): void {\n if (card.canHide !== false) {\n this.toggleCardVisibility.emit(card.id);\n }\n }\n\n trackByFn(index: number, item: AppfxCardInternal): string {\n return item.id;\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<hermes-dropdown [hermesCloseMenuOnItemClick]=\"false\">\r\n <button class=\"settings-btn\" hermesDropdownTrigger>\r\n <hermes-icon shape=\"cog\" size=\"24\" data-test-id=\"toggleContainerSettingsDropDown\"> </hermes-icon>\r\n <span class=\"hermes-sr-only\">\r\n {{ 'settingsCog' | translate }}\r\n </span>\r\n </button>\r\n <hermes-dropdown-menu class=\"container-settings\" hermesPosition=\"bottom-right\" *hermesIfOpen>\r\n <div *ngFor=\"let card of cards; trackBy: trackByFn\" hermesDropdownItem>\r\n <hermes-checkbox-wrapper\r\n [class.disabled-item]=\"card.canHide === false\"\r\n (keydown.space)=\"toggleShowHide(card)\"\r\n (keydown.enter)=\"toggleShowHide(card)\"\r\n >\r\n <input\r\n type=\"checkbox\"\r\n hermesCheckbox\r\n name=\"cards\"\r\n (change)=\"toggleShowHide(card)\"\r\n [checked]=\"!card.hidden\"\r\n [disabled]=\"card.canHide === false\"\r\n tabindex=\"-1\"\r\n />\r\n <label [title]=\"card.title\" hermes-text=\"truncate\">{{ card.title }}</label>\r\n </hermes-checkbox-wrapper>\r\n </div>\r\n </hermes-dropdown-menu>\r\n</hermes-dropdown>\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 DoCheck,\r\n EmbeddedViewRef,\r\n Input,\r\n IterableChangeRecord,\r\n IterableDiffer,\r\n IterableDiffers,\r\n OnInit,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { filter, map, take, tap } from 'rxjs/operators';\r\n\r\nimport { AppfxCardInternal, AppfxContainerPersistenceStore } from '../appfx-card-container.interface';\r\nimport { AppfxCardComponent } from '../card/appfx-card.component';\r\nimport { A11yService } from '../services/a11y.service';\r\nimport { ContainerService } from '../services/container.service';\r\nimport { DragDropService } from '../services/dnd.service';\r\nimport { LayoutService } from '../services/layout.service';\r\nimport { PersistenceService } from '../services/persistence.service';\r\nimport { AppfxCardContainerStore } from '../utils/appfx-card-container-store';\r\n\r\n/**\r\n * Appfx Card Container\r\n *\r\n * Provides container for cards with below functionalities\r\n * - Dynamic card insertion and removal\r\n * - Show/Hide cards through settings menu\r\n * - Drag an Drop Cards to change order\r\n * - Keyboard a11y events handling\r\n * - Card order and hidden property persistence\r\n *\r\n * @Usages\r\n * <appfx-card-container\r\n * [containerId]=\"example-container\"\r\n * [cards]=\"container cards\"\r\n * [persistenceStore]=\"AppfxContainerPersistenceStore\"> // optional if none provided local storage is used\r\n * </<appfx-card-container>\r\n */\r\n@Component({\r\n selector: 'appfx-card-container',\r\n standalone: false,\r\n templateUrl: 'appfx-card-container.component.html',\r\n styleUrls: ['appfx-card-container.component.scss'],\r\n providers: [A11yService, ContainerService, DragDropService, LayoutService, PersistenceService],\r\n})\r\nexport class AppfxCardContainerComponent implements OnInit, DoCheck {\r\n @Input() containerId: string;\r\n\r\n @Input() cards: AppfxCardInternal[] = [];\r\n\r\n @Input() persistenceStore?: AppfxContainerPersistenceStore;\r\n\r\n @Input() showCardContainerSettings: boolean = true;\r\n\r\n @Input() dragDropEnabled: boolean = true;\r\n\r\n containerCards: AppfxCardInternal[] = [];\r\n\r\n @ViewChild('cardContainer', { read: ViewContainerRef, static: true }) private cardContainer: ViewContainerRef;\r\n\r\n private readonly differ: IterableDiffer<AppfxCardInternal>;\r\n\r\n constructor(\r\n private containerService: ContainerService,\r\n private persistenceService: PersistenceService,\r\n private iterableDiffers: IterableDiffers\r\n ) {\r\n // iterable differ to track added/removed cards\r\n this.differ = iterableDiffers.find(this.cards).create(this.trackByFn);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.containerId) {\r\n throw new Error('Missing Input property - containerId');\r\n }\r\n this.initialize();\r\n }\r\n\r\n ngDoCheck() {\r\n const changes = this.differ.diff(this.cards);\r\n if (changes) {\r\n // insert card into container\r\n changes.forEachAddedItem((record: IterableChangeRecord<AppfxCardInternal>) => this.addDynamicCard(record.item));\r\n // remove card from container\r\n changes.forEachRemovedItem((record: IterableChangeRecord<AppfxCardInternal>) =>\r\n this.removeCardFromContainer(record.item)\r\n );\r\n }\r\n }\r\n\r\n onToggleCardVisibility(cardId: string): void {\r\n const card = this.containerService.toggleCardVisibility(cardId);\r\n // if card is no more inside container\r\n if (!card) {\r\n return;\r\n }\r\n // remove card from container view but not from available list of cards\r\n if (card.hidden) {\r\n this.removeCardFromContainer(card, true);\r\n this.containerService.updateCardsOrder();\r\n this.updateContainerCards();\r\n return;\r\n }\r\n // get card order, hidden property from store then update hidden to false and insert card into container\r\n this.containerService\r\n .getCardWithOrder(card)\r\n .pipe(\r\n take(1),\r\n map((cardWithOrder: AppfxCardInternal) => ({\r\n ...cardWithOrder,\r\n hidden: false,\r\n })),\r\n tap((cardWithOrder: AppfxCardInternal) => {\r\n this.insertCardToContainer(cardWithOrder);\r\n this.containerService.updateCardsOrder();\r\n this.updateContainerCards();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private initialize(): void {\r\n // initialize persistence store service with provided or local store\r\n this.persistenceService.initialize(\r\n this.persistenceStore || new AppfxCardContainerStore().getLocalStore(this.containerId)\r\n );\r\n\r\n // initialize container service\r\n this.containerService.initialize(this.cardContainer, this.cards);\r\n\r\n // get cards with order from store and accordingly insert into container\r\n this.containerService\r\n .getCardsWithOrder()\r\n .pipe(\r\n take(1),\r\n tap((cards: AppfxCardInternal[]) => {\r\n cards.forEach((card: AppfxCardInternal) => this.insertCardToContainer(card));\r\n this.containerService.updateCardsOrder();\r\n this.updateContainerCards();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private addDynamicCard(card: AppfxCardInternal): void {\r\n if (this.containerService.getCardById(card.id)) {\r\n return;\r\n }\r\n this.containerService.addCard(card); // add card to the list of container cards\r\n this.updateContainerCards(); // update container list cards\r\n\r\n // get order, hidden property from store and accordingly insert card into container\r\n this.containerService\r\n .getCardWithOrder(card)\r\n .pipe(\r\n take(1),\r\n filter((cardWithOrder: AppfxCardInternal) => !cardWithOrder.hidden),\r\n tap((cardWithOrder: AppfxCardInternal) => {\r\n this.insertCardToContainer(cardWithOrder);\r\n this.containerService.updateCardsOrder();\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private insertCardToContainer(card: AppfxCardInternal): void {\r\n const containerCard = this.containerService.getCardById(card.id);\r\n if (containerCard) {\r\n // check if card is currently in ViewContainer angular returns -1 if card is not inside container\r\n const index = this.cardContainer.indexOf(containerCard.view);\r\n if (index !== -1) {\r\n console.warn('Container Card already visualized, id = ' + card.id);\r\n return;\r\n }\r\n }\r\n const numCards = this.cardContainer.length;\r\n // if order of card is out of current container cards insert card in end\r\n card.order = card.order < 0 || card.order > numCards ? numCards : card.order;\r\n const cr = this.cardContainer.createComponent(AppfxCardComponent, { index: card.order });\r\n cr.instance.card = card; // set input properties\r\n cr.instance.dropGroup = this.containerId; // card drag and drop should happen inside this container only\r\n cr.instance.dragDropEnabled = this.dragDropEnabled;\r\n // set view to retrieve order of card from view to use later\r\n card.view = this.cardContainer.get(card.order) as EmbeddedViewRef<void>;\r\n this.containerService.updateCard(card);\r\n }\r\n\r\n private removeCardFromContainer(card: AppfxCardInternal, hideOnly: boolean = false): void {\r\n const containerCard = this.containerService.getCardById(card.id);\r\n if (!containerCard) {\r\n return;\r\n }\r\n\r\n // check if card is currently in ViewContainer angular returns -1 if card is not inside container\r\n const index = this.cardContainer.indexOf(containerCard.view);\r\n if (index !== -1) {\r\n this.cardContainer.remove(index);\r\n }\r\n\r\n // remove from list of available cards if its not hidden or card view is not available\r\n if (!hideOnly || !containerCard.view) {\r\n this.containerService.removeCard(containerCard.id);\r\n this.updateContainerCards();\r\n }\r\n }\r\n\r\n private updateContainerCards() {\r\n this.containerCards = [...this.containerService.getContainerCards()];\r\n }\r\n\r\n private trackByFn(index: number, item: AppfxCardInternal): string {\r\n return item.id;\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<div class=\"content-container hermes-flex-row\">\r\n <div class=\"card-container hermes-flex-grow-1\">\r\n <ng-template #cardContainer> </ng-template>\r\n </div>\r\n <appfx-card-container-settings\r\n *ngIf=\"showCardContainerSettings\"\r\n [containerCards]=\"containerCards\"\r\n (toggleCardVisibility)=\"onToggleCardVisibility($event)\"\r\n ></appfx-card-container-settings>\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 { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AppfxTranslateModule } from '@hermes-ui/angular/addons/translate';\r\nimport { HermesCheckboxModule } from '@hermes-ui/angular/forms/checkbox';\r\nimport { HermesDropdownModule } from '@hermes-ui/angular/popover/dropdown';\r\n\r\nimport { AppfxCardComponent } from './card/appfx-card.component';\r\nimport { AppfxCardContainerComponent } from './container/appfx-card-container.component';\r\nimport { AppfxCardContainerSettingsComponent } from './settings/appfx-card-container-settings.component';\r\n\r\n/**\r\n * AppFx Card Container module\r\n * declaration and exports of needed components\r\n */\r\n@NgModule({\r\n imports: [AppfxTranslateModule, HermesCheckboxModule, HermesDropdownModule, CommonModule, DragDropModule],\r\n declarations: [AppfxCardComponent, AppfxCardContainerComponent, AppfxCardContainerSettingsComponent],\r\n exports: [AppfxCardComponent, AppfxCardContainerComponent, AppfxCardContainerSettingsComponent],\r\n})\r\nexport class AppfxCardContainerModule {}\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 { AppfxCard, AppfxCardSettings, AppfxContainerPersistenceStore } from './appfx-card-container.interface';\r\nexport { AppfxCardContainerModule } from './appfx-card-container.module';\r\nexport { AppfxCardComponent } from './card/appfx-card.component';\r\nexport { AppfxCardContainerComponent } from './container/appfx-card-container.component';\r\nexport { AppfxCardContainerSettingsComponent } from './settings/appfx-card-container-settings.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.PersistenceService","i1.ContainerService","i2.LayoutService","i3.DragDropService","i4.A11yService","i1","i2","i5","i6","i7","i2.PersistenceService","i3","i4.AppfxCardContainerSettingsComponent"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { RouterModule } from '@angular/router';
6
6
  import * as i1 from '@hermes-ui/angular/addons/translate';
7
7
  import { HourFormat, DateTimeKind, defaultMissingTranslationHandler, AppfxTranslateService, appfxMissingTranslationToken, appfxTranslationsToken, AppfxTranslateModule } from '@hermes-ui/angular/addons/translate';
8
8
  import * as i1$1 from '@hermes-ui/angular';
9
- import { ClarityIcons, angleIcon, HermesAlertModule, HermesSpinnerModule, HermesTabsModule, HermesTreeViewModule } from '@hermes-ui/angular';
9
+ import { HermesIcons, angleIcon, HermesAlertModule, HermesSpinnerModule, HermesTabsModule, HermesTreeViewModule } from '@hermes-ui/angular';
10
10
  import { fromBER } from 'asn1js';
11
11
  import { RelativeDistinguishedNames, Certificate as Certificate$1, RSAPublicKey, ECPublicKey } from 'pkijs';
12
12
  import * as i2 from '@hermes-ui/angular/utils';
@@ -2462,7 +2462,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
2462
2462
  */
2463
2463
  class AppfxCertificateViewerModule {
2464
2464
  constructor() {
2465
- ClarityIcons.addIcons(angleIcon);
2465
+ HermesIcons.addIcons(angleIcon);
2466
2466
  }
2467
2467
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxCertificateViewerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
2468
2468
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: AppfxCertificateViewerModule, declarations: [CertificateViewerComponent,