@fundamental-ngx/core 0.63.0-rc.2 → 0.63.0-rc.21

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 (119) hide show
  1. package/fesm2022/fundamental-ngx-core-action-bar.mjs +2 -2
  2. package/fesm2022/fundamental-ngx-core-action-sheet.mjs +2 -2
  3. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  4. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +2 -2
  5. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  6. package/fesm2022/fundamental-ngx-core-avatar.mjs +2 -2
  7. package/fesm2022/fundamental-ngx-core-bar.mjs +2 -2
  8. package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +2 -2
  10. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +2 -2
  11. package/fesm2022/fundamental-ngx-core-button.mjs +2 -2
  12. package/fesm2022/fundamental-ngx-core-calendar.mjs +52 -47
  13. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  14. package/fesm2022/fundamental-ngx-core-card.mjs +2 -2
  15. package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
  16. package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
  17. package/fesm2022/fundamental-ngx-core-checkbox.mjs +2 -2
  18. package/fesm2022/fundamental-ngx-core-combobox.mjs +1 -1
  19. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  20. package/fesm2022/fundamental-ngx-core-date-picker.mjs +7 -6
  21. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  22. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +14 -13
  23. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  24. package/fesm2022/fundamental-ngx-core-datetime.mjs +295 -100
  25. package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
  26. package/fesm2022/fundamental-ngx-core-dialog.mjs +2 -2
  27. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +2 -2
  28. package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +2 -2
  29. package/fesm2022/fundamental-ngx-core-facets.mjs +2 -2
  30. package/fesm2022/fundamental-ngx-core-feed-input.mjs +2 -2
  31. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
  32. package/fesm2022/fundamental-ngx-core-file-uploader.mjs +2 -2
  33. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +2 -2
  34. package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs +2 -2
  35. package/fesm2022/fundamental-ngx-core-form.mjs +19 -16
  36. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  37. package/fesm2022/fundamental-ngx-core-generic-tag.mjs +2 -2
  38. package/fesm2022/fundamental-ngx-core-grid-list.mjs +2 -2
  39. package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
  40. package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
  41. package/fesm2022/fundamental-ngx-core-input-group.mjs +2 -2
  42. package/fesm2022/fundamental-ngx-core-layout-grid.mjs +2 -2
  43. package/fesm2022/fundamental-ngx-core-layout-panel.mjs +2 -2
  44. package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
  45. package/fesm2022/fundamental-ngx-core-list.mjs +4 -4
  46. package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
  47. package/fesm2022/fundamental-ngx-core-message-page.mjs +2 -2
  48. package/fesm2022/fundamental-ngx-core-message-strip.mjs +2 -2
  49. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  50. package/fesm2022/fundamental-ngx-core-message-toast.mjs +2 -2
  51. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +2 -2
  52. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +2 -2
  53. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  54. package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -1
  55. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  56. package/fesm2022/fundamental-ngx-core-nested-list.mjs +1 -1
  57. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  58. package/fesm2022/fundamental-ngx-core-notification.mjs +2 -2
  59. package/fesm2022/fundamental-ngx-core-object-attribute.mjs +2 -2
  60. package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
  61. package/fesm2022/fundamental-ngx-core-object-marker.mjs +2 -2
  62. package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
  63. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +1 -1
  64. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  65. package/fesm2022/fundamental-ngx-core-pagination.mjs +2 -2
  66. package/fesm2022/fundamental-ngx-core-panel.mjs +2 -2
  67. package/fesm2022/fundamental-ngx-core-popover.mjs +110 -6
  68. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  69. package/fesm2022/fundamental-ngx-core-product-switch.mjs +3 -3
  70. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  71. package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +2 -2
  72. package/fesm2022/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
  73. package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
  74. package/fesm2022/fundamental-ngx-core-radio.mjs +2 -2
  75. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +2 -2
  76. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  77. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +4 -4
  78. package/fesm2022/fundamental-ngx-core-segmented-button.mjs +2 -2
  79. package/fesm2022/fundamental-ngx-core-select.mjs +2 -2
  80. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  81. package/fesm2022/fundamental-ngx-core-settings.mjs +4 -4
  82. package/fesm2022/fundamental-ngx-core-shellbar.mjs +2 -2
  83. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  84. package/fesm2022/fundamental-ngx-core-side-navigation.mjs +2 -2
  85. package/fesm2022/fundamental-ngx-core-skeleton.mjs +2 -2
  86. package/fesm2022/fundamental-ngx-core-slider.mjs +2 -2
  87. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  88. package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
  89. package/fesm2022/fundamental-ngx-core-status-indicator.mjs +2 -2
  90. package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
  91. package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
  92. package/fesm2022/fundamental-ngx-core-table.mjs +4 -4
  93. package/fesm2022/fundamental-ngx-core-tabs.mjs +4 -4
  94. package/fesm2022/fundamental-ngx-core-text.mjs +2 -2
  95. package/fesm2022/fundamental-ngx-core-tile.mjs +2 -2
  96. package/fesm2022/fundamental-ngx-core-time-picker.mjs +8 -17
  97. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  98. package/fesm2022/fundamental-ngx-core-time.mjs +8 -16
  99. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  100. package/fesm2022/fundamental-ngx-core-title.mjs +2 -2
  101. package/fesm2022/fundamental-ngx-core-token.mjs +4 -4
  102. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  103. package/fesm2022/fundamental-ngx-core-toolbar.mjs +2 -2
  104. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  105. package/fesm2022/fundamental-ngx-core-tree.mjs +2 -2
  106. package/fesm2022/fundamental-ngx-core-upload-collection.mjs +2 -2
  107. package/fesm2022/fundamental-ngx-core-user-menu.mjs +25 -4
  108. package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
  109. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +4 -4
  110. package/fesm2022/fundamental-ngx-core-wizard.mjs +2 -2
  111. package/package.json +4 -4
  112. package/types/fundamental-ngx-core-calendar.d.ts +5 -12
  113. package/types/fundamental-ngx-core-datetime-picker.d.ts +0 -2
  114. package/types/fundamental-ngx-core-datetime.d.ts +109 -68
  115. package/types/fundamental-ngx-core-form.d.ts +2 -0
  116. package/types/fundamental-ngx-core-popover.d.ts +378 -319
  117. package/types/fundamental-ngx-core-time-picker.d.ts +2 -8
  118. package/types/fundamental-ngx-core-time.d.ts +1 -7
  119. package/types/fundamental-ngx-core-user-menu.d.ts +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-avatar-group.mjs","sources":["../../../../libs/core/avatar-group/tokens.ts","../../../../libs/core/avatar-group/directives/avatar-group-item.directive.ts","../../../../libs/core/avatar-group/directives/avatar-group-item-renderer.directive.ts","../../../../libs/core/avatar-group/components/avatar-group-host.component.ts","../../../../libs/core/avatar-group/components/avatar-group-overflow-button.component.ts","../../../../libs/core/avatar-group/components/default-avatar-group-overflow-body/default-avatar-group-overflow-body.component.ts","../../../../libs/core/avatar-group/components/default-avatar-group-overflow-body/default-avatar-group-overflow-body.component.html","../../../../libs/core/avatar-group/directives/avatar-group-internal-overflow-button.directive.ts","../../../../libs/core/avatar-group/directives/avatar-group-overflow-body.directive.ts","../../../../libs/core/avatar-group/directives/avatar-group-overflow-button.directive.ts","../../../../libs/core/avatar-group/avatar-group.component.ts","../../../../libs/core/avatar-group/avatar-group.component.html","../../../../libs/core/avatar-group/components/avatar-group-overflow-body/avatar-group-overflow-body.component.ts","../../../../libs/core/avatar-group/components/avatar-group-overflow-body/avatar-group-overflow-body.component.html","../../../../libs/core/avatar-group/avatar-group.module.ts","../../../../libs/core/avatar-group/fundamental-ngx-core-avatar-group.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AvatarGroupHostConfig } from './types';\n\nexport const AVATAR_GROUP_HOST_CONFIG = new InjectionToken<AvatarGroupHostConfig>(\n 'AvatarGroup host configuration. Is provided by AvatarGroupComponent.'\n);\n","import { Directive, inject, Input, TemplateRef } from '@angular/core';\n\n/**\n * Avatar group item directive, used to provide a template for the avatar group item.\n */\n@Directive({\n selector: '[fdAvatarGroupItem]',\n standalone: true\n})\nexport class AvatarGroupItemDirective {\n /**\n * Text, which will be displayed when in overflow popover and activated\n * */\n @Input('fdAvatarGroupItemTitle')\n title: string;\n\n /**\n * If set to true, item will never be hidden in overflow popover\n * */\n @Input('fdAvatarGroupItemForceVisibility')\n forceVisibility = false;\n\n /** @hidden */\n _templateRef: TemplateRef<void> = inject(TemplateRef);\n\n /**\n * Template for the details of the avatar group item.\n * This template it used to render additional information in the overflow popover.\n * */\n @Input('fdAvatarGroupItem')\n set details(detailsTemplate: TemplateRef<void> | string) {\n if (typeof detailsTemplate === 'string') {\n return;\n }\n this._details = detailsTemplate;\n }\n\n get details(): TemplateRef<void> {\n return this._details;\n }\n\n /** @hidden */\n private _details: TemplateRef<void>;\n}\n","import { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { Directive, EmbeddedViewRef, Input, OnInit, ViewContainerRef, inject } from '@angular/core';\nimport { FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableItem, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Observable, fromEvent } from 'rxjs';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { AVATAR_GROUP_HOST_CONFIG } from '../tokens';\nimport { AvatarGroupItemDirective } from './avatar-group-item.directive';\n@Directive({\n selector: '[fdAvatarGroupItemPortal]',\n exportAs: 'fdAvatarGroupItemPortal',\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,\n useExisting: AvatarGroupItemRendererDirective\n },\n CdkPortalOutlet\n ]\n})\nexport class AvatarGroupItemRendererDirective implements OnInit, FocusableItem {\n /**\n * Avatar group item to be rendered.\n **/\n @Input() avatarGroupItem: AvatarGroupItemDirective;\n\n /**\n * Whether the item should be forced to be visible.\n **/\n @Input()\n forceVisibility = false;\n\n /**\n * HTML element of the item.\n **/\n element$: Observable<Nullable<HTMLElement>>;\n\n /** @hidden */\n keydown: Observable<KeyboardEvent>;\n\n /**\n * Whether the item is visible.\n **/\n get visible(): boolean {\n return this._portalOutlet.hasAttached();\n }\n\n /**\n * Currently rendered element's HTMLElement.\n **/\n get element(): HTMLElement {\n return this._embeddedViewRef?.rootNodes[0] as HTMLElement;\n }\n\n /**\n * Rendered element's width or it's last saved width.\n **/\n get width(): number {\n if (this.visible) {\n const rect = this.element.getBoundingClientRect();\n const style = getComputedStyle(this.element);\n const width = rect.width;\n const marginLeft = parseFloat(style.marginLeft);\n const marginRight = parseFloat(style.marginRight);\n\n if (!isNaN(width) && !isNaN(marginLeft) && !isNaN(marginRight)) {\n this._lastSavedWidth = width + marginLeft + marginRight;\n }\n }\n return this._lastSavedWidth;\n }\n\n /**\n * Rendered element's height or it's last saved height.\n **/\n get height(): number {\n if (this.visible) {\n this._lastSavedHeight =\n this.element.getBoundingClientRect().height +\n parseFloat(getComputedStyle(this.element).marginTop) +\n parseFloat(getComputedStyle(this.element).marginBottom);\n }\n return this._lastSavedHeight;\n }\n\n /** @hidden */\n private _portalOutlet = inject(CdkPortalOutlet, { host: true });\n\n /** @hidden */\n private _viewContainerRef = inject(ViewContainerRef);\n\n /**\n * @hidden\n **/\n private _element$ = new BehaviorSubject<Nullable<HTMLElement>>(null);\n\n /** @hidden */\n private _templatePortal?: TemplatePortal<void>;\n\n /** @hidden */\n private _isFocusable = true;\n\n /** @hidden */\n private _embeddedViewRef: EmbeddedViewRef<void>;\n\n /** @hidden */\n private _lastSavedWidth = 0;\n\n /** @hidden */\n private _lastSavedHeight = 0;\n\n /** @hidden */\n private _posInSet = 0;\n\n /** @hidden */\n private _setSize = 0;\n\n /** @hidden */\n private _hostConfig = inject(AVATAR_GROUP_HOST_CONFIG);\n\n /** @hidden */\n constructor() {\n this.element$ = this._element$.asObservable();\n this.keydown = this._element$.pipe(\n filter((element) => !!element),\n switchMap((element) => fromEvent(element as unknown as HTMLElement, 'keydown') as Observable<KeyboardEvent>)\n );\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.show();\n }\n\n /**\n * Hides the item.\n **/\n hide(): void {\n this._portalOutlet.detach();\n this.setTabbable(false);\n this._isFocusable = false;\n }\n\n /**\n * Shows the item.\n **/\n show(): void {\n if (this.visible) {\n return;\n }\n if (!this._templatePortal) {\n this._templatePortal = new TemplatePortal(this.avatarGroupItem._templateRef, this._viewContainerRef);\n }\n this._embeddedViewRef = this._portalOutlet.attach(this._templatePortal);\n this._embeddedViewRef.detectChanges();\n this._element$.next(this.element);\n this.setTabbable(this._hostConfig.type === 'individual');\n this._isFocusable = this._hostConfig.type === 'individual';\n this._applyAriaPosition();\n }\n\n /**\n * Whether the item is focusable.\n **/\n isFocusable = (): boolean => this._isFocusable && this.visible;\n\n /**\n * Sets the tabbable state of the item.\n **/\n setTabbable(tabbable: boolean): void {\n this.element.tabIndex = tabbable ? 0 : -1;\n }\n\n /**\n * Sets aria-posinset and aria-setsize on the rendered element.\n * Stored values are applied immediately if the item is visible,\n * and re-applied on the next show() call otherwise.\n **/\n @Input()\n set posInSet(value: number) {\n this._posInSet = value;\n if (this.visible) {\n this._applyAriaPosition();\n }\n }\n\n get posInSet(): number {\n return this._posInSet;\n }\n\n /** @hidden */\n @Input()\n set setSize(value: number) {\n this._setSize = value;\n if (this.visible) {\n this._applyAriaPosition();\n }\n }\n\n get setSize(): number {\n return this._setSize;\n }\n\n /** @hidden */\n focus(): void {\n this.element?.focus();\n }\n\n /** @hidden */\n private _applyAriaPosition(): void {\n const el = this.element;\n if (!el || !this._posInSet || !this._setSize) {\n return;\n }\n el.setAttribute('aria-posinset', String(this._posInSet));\n el.setAttribute('aria-setsize', String(this._setSize));\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n Input,\n OnChanges,\n OnInit,\n QueryList,\n signal,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n applyCssClass,\n CssClassBuilder,\n HasElementRef,\n Nullable,\n ResizeObserverDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { animationFrames, combineLatest, delayWhen, map, Observable, startWith, Subject } from 'rxjs';\nimport { AvatarGroupItemRendererDirective } from '../directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from '../directives/avatar-group-item.directive';\nimport { AvatarGroupHostConfig } from '../types';\n\n@Component({\n selector: 'fd-avatar-group-host',\n template: '<ng-content></ng-content>',\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrl: './avatar-group-host.component.scss'\n})\nexport class AvatarGroupHostComponent\n implements OnInit, AfterViewInit, OnChanges, HasElementRef, AvatarGroupHostConfig, CssClassBuilder\n{\n /**\n * The class to apply to the host element.\n **/\n @Input()\n class: Nullable<string>;\n\n /**\n * The type of the avatar group.\n * Options include 'individual' and 'group'.\n **/\n @Input()\n type: AvatarGroupHostConfig['type'];\n\n /**\n * The orientation of the avatar group.\n * Options include 'horizontal' and 'vertical'.\n **/\n @Input()\n orientation: AvatarGroupHostConfig['orientation'];\n\n /**\n * The size of the avatar group.\n * Options include 'xs', 's', 'm', 'l', and 'xl'.\n **/\n @Input()\n size: AvatarGroupHostConfig['size'];\n\n /**\n * The items to be rendered in the avatar group.\n **/\n @Input()\n items: QueryList<AvatarGroupItemDirective>;\n\n /**\n * @hidden\n * The portals to be rendered in the avatar group.\n **/\n @ContentChildren(AvatarGroupItemRendererDirective, { descendants: true })\n _portals: QueryList<AvatarGroupItemRendererDirective>;\n\n /** @hidden */\n _resizeEmitter: Observable<ResizeObserverEntry[]> = inject(ResizeObserverDirective).resizeEvents$;\n\n /** The reference to the host element */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n _hiddenItems = signal<AvatarGroupItemRendererDirective[]>([]);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _onChanges$ = new Subject<SimpleChanges>();\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class || '',\n 'fd-avatar-group',\n this.type === 'individual' ? 'fd-avatar-group--individual-type' : '',\n this.type === 'group' ? 'fd-avatar-group--group-type' : '',\n this.orientation ? 'fd-avatar-group--' + this.orientation : '',\n this.size ? 'fd-avatar-group--' + this.size : ''\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this.buildComponentCssClass();\n this._onChanges$.next(changes);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n combineLatest([\n this._resizeEmitter.pipe(map((entries) => entries[0].contentRect.width)),\n this._portals.changes.pipe(\n startWith(this._portals),\n map((r) => r.toArray())\n ),\n this._onChanges$.pipe(startWith({}))\n ])\n .pipe(\n map(([containerWidth, items]) => this._calculateVisibility(containerWidth, items)),\n delayWhen(() => animationFrames()),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(({ hiddenItems, visibleItems }) => {\n const allItems = this._portals.toArray();\n const total = allItems.length;\n allItems.forEach((item, index) => {\n item.posInSet = index + 1;\n item.setSize = total;\n });\n visibleItems.forEach((item) => item.show());\n hiddenItems.forEach((item) => item.hide());\n this._cdr.detectChanges();\n this._hiddenItems.set(hiddenItems);\n });\n }\n\n /** @hidden */\n private _calculateVisibility(\n containerWidth: number,\n items: AvatarGroupItemRendererDirective[]\n ): {\n hiddenItems: AvatarGroupItemRendererDirective[];\n visibleItems: AvatarGroupItemRendererDirective[];\n } {\n if (this.orientation === 'vertical') {\n return {\n visibleItems: items,\n hiddenItems: []\n };\n }\n const visibleItems = items.filter((i) => i.forceVisibility);\n const hiddenItems: AvatarGroupItemRendererDirective[] = [];\n let accWidth = items.reduce((acc, item) => (item.forceVisibility ? acc + item.width : acc), 0);\n for (const item of items) {\n if (item.forceVisibility) {\n continue;\n }\n accWidth += item.width;\n if (accWidth <= containerWidth) {\n visibleItems.push(item);\n } else if (!item.forceVisibility) {\n hiddenItems.push(item);\n }\n }\n /* take last item from the visibleItems which is not forced to be visible and push it to the hiddenItems\n * This is done to free up the space for the overflow button\n */\n if (hiddenItems.length > 0) {\n const lastAllowedToBeHidden = visibleItems.reverse().findIndex((item) => !item.forceVisibility);\n hiddenItems.push(...visibleItems.splice(lastAllowedToBeHidden * -1, 1));\n }\n return {\n visibleItems,\n hiddenItems\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n HostBinding,\n inject,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n applyCssClass,\n ColorAccent,\n CssClassBuilder,\n FDK_FOCUSABLE_ITEM_DIRECTIVE,\n FocusableItemDirective,\n Nullable,\n Size\n} from '@fundamental-ngx/cdk/utils';\nimport { AVATAR_GROUP_HOST_CONFIG } from '../tokens';\n\n/**\n * Avatar group overflow button component.\n * This is used for the overflow button template.\n * Although any content can be projected as the overflow button, this component provides some styling and accessibility features.\n */\n@Component({\n selector: 'fd-avatar-group-overflow-button',\n template: ` <ng-content></ng-content>`,\n host: {\n role: 'button',\n '(keydown.enter)': 'elementRef.nativeElement.click()',\n '(keydown.space)': 'elementRef.nativeElement.click(); $event.preventDefault()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,\n useExisting: forwardRef(() => AvatarGroupOverflowButtonComponent)\n }\n ]\n})\nexport class AvatarGroupOverflowButtonComponent\n extends FocusableItemDirective\n implements OnChanges, OnInit, CssClassBuilder\n{\n /**\n * Size of the overflow button.\n */\n @Input()\n size: Size = 'l';\n\n /**\n * Whether the overflow button should be displayed as a circle.\n */\n @Input()\n @HostBinding('class.fd-avatar--circle')\n circle = false;\n\n /**\n * A number from 1 to 10 representing the background color of the Avatar.\n */\n @Input() colorAccent: Nullable<ColorAccent> = null;\n\n /**\n * The class to apply to the host element.\n **/\n @Input()\n class: Nullable<string>;\n\n /** @hidden */\n constructor() {\n super();\n this.setFocusable(inject(AVATAR_GROUP_HOST_CONFIG).type === 'individual');\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class || '',\n 'fd-avatar fd-avatar--overflow',\n 'fd-avatar--' + this.size,\n this.colorAccent ? 'fd-avatar--' + this.colorAccent : ''\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation,\n computed,\n inject,\n input,\n output\n} from '@angular/core';\nimport { FocusableListDirective, RtlService, elementClick$ } from '@fundamental-ngx/cdk/utils';\nimport { BarComponent, BarElementDirective, BarLeftDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { PopoverBodyHeaderDirective } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Subscription, map, merge, startWith } from 'rxjs';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { AvatarGroupItemRendererDirective } from '../../directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from '../../directives/avatar-group-item.directive';\nimport { AVATAR_GROUP_HOST_CONFIG } from '../../tokens';\nimport { AvatarGroupHostConfig } from '../../types';\n\n@Component({\n selector: 'fd-default-avatar-group-overflow-body',\n templateUrl: './default-avatar-group-overflow-body.component.html',\n imports: [\n PortalModule,\n AvatarGroupItemRendererDirective,\n FocusableListDirective,\n NgTemplateOutlet,\n PopoverBodyHeaderDirective,\n BarComponent,\n ButtonBarComponent,\n BarElementDirective,\n BarLeftDirective,\n FdTranslatePipe\n ],\n host: {\n class: 'fd-popover__wrapper',\n '[style.max-width.rem]': '20'\n },\n providers: [\n {\n // Override the parent group config so that items inside the overflow popup are always\n // rendered as individually focusable. Without this, a group-type parent would set\n // tabindex=-1 and isFocusable=false on each avatar via AvatarGroupItemRendererDirective,\n // making them invisible to fdkFocusableList and unreachable by keyboard.\n provide: AVATAR_GROUP_HOST_CONFIG,\n useValue: { type: 'individual', orientation: 'horizontal', size: 's' } as AvatarGroupHostConfig\n }\n ],\n styleUrl: './default-avatar-group-overflow-body.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultAvatarGroupOverflowBodyComponent implements AfterViewInit, OnDestroy {\n /**\n * List of avatars to be rendered in the overflow popover.\n **/\n @Input()\n avatars: Iterable<AvatarGroupItemRendererDirective> = [];\n\n /**\n * Title of the overflow popover.\n * */\n @Input()\n overflowPopoverTitle: string;\n\n /** @hidden */\n @ViewChildren(AvatarGroupItemRendererDirective)\n _avatarGroupItemPortals: QueryList<AvatarGroupItemRendererDirective>;\n\n /** Emitted when the Escape key is pressed inside the overflow body. */\n readonly escapePressed = output<void>();\n\n /**\n * Heading level for the overflow popover title.\n * @default 5\n */\n readonly overflowHeadingLevel = input<1 | 2 | 3 | 4 | 5 | 6>(5);\n\n /** @hidden */\n _overflowPopoverStage: 'main' | 'details' = 'main';\n\n /** @hidden */\n _selectedItem: AvatarGroupItemDirective;\n\n /** @hidden */\n get _isDetailStage(): boolean {\n return this._overflowPopoverStage === 'details';\n }\n\n /** @hidden */\n protected readonly navigationArrow = computed(() =>\n this._rtlService?.rtl() ? 'navigation-right-arrow' : 'navigation-left-arrow'\n );\n\n /** @hidden */\n private _itemClickSubscription: Subscription;\n\n /** @hidden */\n private _escapeUnlisten: () => void;\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._registerEscapeListener();\n this._avatarGroupItemPortals.changes\n .pipe(\n startWith(this._avatarGroupItemPortals),\n map((avatarGroupItemPortals) => avatarGroupItemPortals.toArray())\n )\n .subscribe((items: AvatarGroupItemRendererDirective[]) => {\n if (this._itemClickSubscription) {\n this._itemClickSubscription.unsubscribe();\n }\n this._itemClickSubscription = merge(\n ...items.map((item) =>\n item.element$.pipe(\n filter(Boolean),\n switchMap((el) => elementClick$(el, this._renderer).pipe(map(() => item)))\n )\n )\n ).subscribe((item: AvatarGroupItemRendererDirective) => {\n this._overflowPopoverStage = 'details';\n this._selectedItem = item.avatarGroupItem;\n this._changeDetectorRef.detectChanges();\n this._focusFirstTabbableElement();\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._itemClickSubscription?.unsubscribe();\n this._escapeUnlisten();\n }\n\n /** @hidden */\n protected openOverflowMain(): void {\n this._overflowPopoverStage = 'main';\n this._changeDetectorRef.detectChanges();\n const target = this._avatarGroupItemPortals.find((r) => r.avatarGroupItem === this._selectedItem);\n if (target?.element) {\n target.element.focus();\n } else {\n this._focusFirstTabbableElement();\n }\n }\n\n /** @hidden */\n private _focusFirstTabbableElement(): void {\n requestAnimationFrame(() => {\n const el: HTMLElement | null = this._elementRef.nativeElement.querySelector(\n '[tabindex=\"0\"], button, a, input'\n );\n el?.focus();\n });\n }\n\n /** @hidden */\n private _registerEscapeListener(): void {\n const el = this._elementRef.nativeElement;\n const escapeHandler = (event: KeyboardEvent): void => {\n if (event.key === 'Escape') {\n this.escapePressed.emit();\n }\n };\n // Capture phase is required: child elements (e.g. fdkFocusableList items) call\n // stopPropagation() on keydown, which would prevent the event from bubbling up.\n el.addEventListener('keydown', escapeHandler, true);\n this._escapeUnlisten = () => el.removeEventListener('keydown', escapeHandler, true);\n }\n}\n","<div fd-popover-body-header>\n <div fd-bar barDesign=\"header\">\n <div fd-bar-left>\n @if (_isDetailStage) {\n <fd-button-bar\n (click)=\"openOverflowMain()\"\n [glyph]=\"navigationArrow()\"\n fdType=\"transparent\"\n [attr.aria-label]=\"('coreAvatarGroup.backButton' | fdTranslate)()\"\n [title]=\"('coreAvatarGroup.backButton' | fdTranslate)()\"\n ></fd-button-bar>\n }\n <fd-bar-element\n ><span\n class=\"fd-title\"\n [class]=\"'fd-title--h' + overflowHeadingLevel()\"\n role=\"heading\"\n [attr.aria-level]=\"overflowHeadingLevel()\"\n >\n {{ _isDetailStage ? _selectedItem.title : overflowPopoverTitle }}\n </span></fd-bar-element\n >\n @if (_isDetailStage) {\n <fd-bar-element>&nbsp;</fd-bar-element>\n }\n </div>\n </div>\n</div>\n<div\n class=\"fd-avatar-group__overflow-body\"\n [class.fd-avatar-group__overflow-body--no-padding]=\"_isDetailStage\"\n [class.fd-avatar-group__overflow-body--no-horizontal-scroll]=\"_isDetailStage\"\n fdkFocusableList\n role=\"list\"\n navigationDirection=\"horizontal\"\n>\n @if (_overflowPopoverStage === 'main') {\n @for (item of avatars; track item) {\n <ng-template\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [avatarGroupItem]=\"item.avatarGroupItem\"\n [forceVisibility]=\"true\"\n [posInSet]=\"item.posInSet\"\n [setSize]=\"item.setSize\"\n >\n </ng-template>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"_selectedItem.details\"></ng-template>\n }\n</div>\n","import { Directive, EmbeddedViewRef, inject, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n@Directive({\n selector: '[fdAvatarGroupInternalOverflowButton]',\n standalone: true\n})\nexport class AvatarGroupInternalOverflowButtonDirective implements OnDestroy {\n /**\n * List of hidden items to be rendered in the overflow popover.\n **/\n @Input('fdAvatarGroupInternalOverflowButton')\n set hiddenItems(value: AvatarGroupItemRendererDirective[] | null) {\n const hiddenItems = value || [];\n if (hiddenItems.length > 0) {\n this._show(hiddenItems);\n } else {\n this._hide();\n }\n }\n\n /** @hidden */\n private readonly _templateContext: { $implicit: AvatarGroupItemRendererDirective[] } = { $implicit: [] };\n /** @hidden */\n private readonly _templateRef: TemplateRef<{ $implicit: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n /** @hidden */\n private readonly _viewContainerRef = inject(ViewContainerRef);\n /** @hidden */\n private _embeddedView?: EmbeddedViewRef<any>;\n\n /** @hidden */\n static ngTemplateContextGuard(\n _directive: AvatarGroupInternalOverflowButtonDirective,\n context: unknown\n ): context is { $implicit: AvatarGroupItemRendererDirective[] } {\n return true;\n }\n /** @hidden */\n ngOnDestroy(): void {\n this._hide();\n }\n\n /** @hidden */\n private _show(hiddenItems: AvatarGroupItemRendererDirective[]): void {\n this._templateContext.$implicit = hiddenItems;\n if (this._embeddedView) {\n this._embeddedView.detectChanges();\n return;\n }\n this._viewContainerRef.clear();\n this._embeddedView = this._viewContainerRef.createEmbeddedView(this._templateRef, this._templateContext);\n this._embeddedView.detectChanges();\n }\n\n /** @hidden */\n private _hide(): void {\n this._viewContainerRef.clear();\n this._embeddedView = undefined;\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n/**\n * Avatar group overflow body directive, used to provide a template for the avatar group overflow body.\n * If nothing is provided, default overflow body will be used.\n */\n@Directive({\n selector: '[fdAvatarGroupOverflowBody]',\n standalone: true\n})\nexport class AvatarGroupOverflowBodyDirective {\n /** @hidden */\n readonly _templateRef: TemplateRef<{ hiddenItems: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n/**\n * Avatar group overflow button directive, used to provide a template for the avatar group overflow button.\n * If nothing is provided, default overflow button will be used.\n */\n@Directive({\n selector: '[fdAvatarGroupOverflowButton]',\n standalone: true\n})\nexport class AvatarGroupOverflowButtonDirective {\n /** @hidden */\n readonly _templateRef: TemplateRef<{ hiddenItems: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n QueryList,\n ViewChildren,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal,\n viewChild\n} from '@angular/core';\nimport {\n FocusableListDirective,\n FocusableListItemFocusedEvent,\n ResizeObserverDirective,\n RtlService\n} from '@fundamental-ngx/cdk/utils';\nimport { PopoverBodyDirective, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { resolveTranslationSignalFn } from '@fundamental-ngx/i18n';\nimport { AvatarGroupHostComponent } from './components/avatar-group-host.component';\nimport { AvatarGroupOverflowButtonComponent } from './components/avatar-group-overflow-button.component';\nimport { DefaultAvatarGroupOverflowBodyComponent } from './components/default-avatar-group-overflow-body/default-avatar-group-overflow-body.component';\nimport { AvatarGroupInternalOverflowButtonDirective } from './directives/avatar-group-internal-overflow-button.directive';\nimport { AvatarGroupItemRendererDirective } from './directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupOverflowBodyDirective } from './directives/avatar-group-overflow-body.directive';\nimport { AvatarGroupOverflowButtonDirective } from './directives/avatar-group-overflow-button.directive';\nimport { AVATAR_GROUP_HOST_CONFIG } from './tokens';\nimport { AvatarGroupHostConfig } from './types';\n\n@Component({\n selector: 'fd-avatar-group',\n templateUrl: './avatar-group.component.html',\n styleUrl: './avatar-group.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AVATAR_GROUP_HOST_CONFIG,\n useExisting: AvatarGroupComponent\n }\n ],\n imports: [\n AvatarGroupHostComponent,\n PopoverComponent,\n PopoverControlComponent,\n PopoverBodyDirective,\n NgTemplateOutlet,\n FocusableListDirective,\n AvatarGroupItemRendererDirective,\n AvatarGroupOverflowButtonComponent,\n DefaultAvatarGroupOverflowBodyComponent,\n AvatarGroupInternalOverflowButtonDirective,\n ResizeObserverDirective\n ]\n})\nexport class AvatarGroupComponent implements AvatarGroupHostConfig {\n /**\n * The AvatarGroup control has two group types:\n *\n * `group`: The avatars are displayed as partially overlapped on top of each other and the entire group has one click/tap area.\n * `individual`: The avatars are displayed side-by-side and each avatar has its own click/tap area.\n * */\n @Input()\n type: AvatarGroupHostConfig['type'] = 'individual';\n\n /**\n * Orientation of the AvatarGroup control.\n *\n * `horizontal`: The avatars are displayed horizontally.\n * `vertical`: The avatars are displayed vertically.\n */\n @Input()\n orientation: AvatarGroupHostConfig['orientation'] = 'horizontal';\n\n /**\n * The spacing between the items depends on the size of the avatars in the group.\n * The size is also used for the default overflow button.\n * `xs`, `s`, `m`, `l`, `xl`\n */\n @Input()\n size: AvatarGroupHostConfig['size'] = 'l';\n\n /**\n * The title which is displayed when user opens the overflow popover.\n * This takes effect only when default overflow popover body is used,\n * otherwise the title should be set on the custom overflow popover body component.\n */\n @Input()\n overflowPopoverTitle: string;\n\n /**\n * Aria label for the avatar group container.\n * When not provided, a default label is generated from the i18n `coreAvatarGroup.ariaLabelGroup` key\n * for group type, or `coreAvatarGroup.ariaLabelIndividual` for individual type,\n * using the current displayed and hidden avatar counts as context.\n */\n @Input()\n ariaLabel: string;\n\n /** @hidden */\n @ViewChildren(AvatarGroupItemRendererDirective)\n _avatarRenderers: QueryList<AvatarGroupItemRendererDirective>;\n\n /** @hidden */\n @ContentChildren(AvatarGroupItemDirective)\n _avatars: QueryList<AvatarGroupItemDirective>;\n\n /** @hidden */\n @ContentChild(AvatarGroupOverflowButtonDirective)\n _overflowButton: AvatarGroupOverflowButtonDirective;\n\n /** @hidden */\n @ContentChild(AvatarGroupOverflowBodyDirective)\n _avatarGroupPopoverBody: AvatarGroupOverflowBodyDirective;\n\n /**\n * Heading level for the overflow popover title.\n * @default 5\n */\n readonly overflowHeadingLevel = input<1 | 2 | 3 | 4 | 5 | 6>(5);\n\n /** @hidden */\n readonly _avatarGroupHost = viewChild(AvatarGroupHostComponent);\n\n /** @hidden */\n protected readonly contentDirection = computed<Direction>(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n /** @hidden */\n protected readonly _defaultAriaLabelGroup = computed(() =>\n this._translate('coreAvatarGroup.ariaLabelGroup', this._ariaLabelContext)()\n );\n\n /** @hidden */\n protected readonly _defaultAriaLabelIndividual = computed(() =>\n this._translate('coreAvatarGroup.ariaLabelIndividual', this._ariaLabelContext)()\n );\n\n /** @hidden */\n private readonly _translate = resolveTranslationSignalFn();\n\n /** @hidden */\n private readonly _ariaLabelContext = computed(() => {\n const hiddenItems = this._avatarGroupHost()?._hiddenItems() ?? [];\n const hiddenCount = hiddenItems.length;\n const count = (this._avatars?.length ?? 0) - hiddenCount;\n return { count, hiddenCount };\n });\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n private readonly _liveAnnouncer = inject(LiveAnnouncer);\n\n /** @hidden */\n _detectChanges(): void {\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n protected _onItemFocused(event: FocusableListItemFocusedEvent): void {\n this._liveAnnouncer.announce(`${event.index + 1} of ${event.total}`);\n }\n\n /** @hidden */\n protected _popupBodyAriaLabel(count: number): string {\n return this._translate('coreAvatarGroup.popupBodyAriaLabel', signal({ count }))();\n }\n}\n","<ng-content></ng-content>\n@if (type === 'individual') {\n <fd-avatar-group-host\n #avatarGroupHostComponent\n [type]=\"type\"\n [size]=\"size\"\n [orientation]=\"orientation\"\n fdkResizeObserver\n fdkFocusableList\n [contentDirection]=\"contentDirection()\"\n [wrap]=\"true\"\n [navigationDirection]=\"orientation\"\n [items]=\"_avatars\"\n [attr.aria-label]=\"ariaLabel || _defaultAriaLabelIndividual()\"\n (resized)=\"_detectChanges()\"\n (itemFocused)=\"_onItemFocused($event)\"\n >\n @for (item of _avatars; track item) {\n <fd-popover [noArrow]=\"false\" [focusAutoCapture]=\"true\">\n <fd-popover-control\n class=\"fd-avatar-group__popover-control\"\n tabindex=\"-1\"\n (click)=\"outletItem.element.focus()\"\n >\n <ng-template\n #outletItem=\"fdAvatarGroupItemPortal\"\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [forceVisibility]=\"item.forceVisibility\"\n [avatarGroupItem]=\"item\"\n >\n </ng-template>\n </fd-popover-control>\n @if (item.details) {\n <ng-template fdPopoverBody>\n <ng-template [ngTemplateOutlet]=\"item.details\"></ng-template>\n </ng-template>\n }\n </fd-popover>\n }\n <ng-template [fdAvatarGroupInternalOverflowButton]=\"avatarGroupHostComponent._hiddenItems()\" let-hiddenItems>\n <fd-popover\n #overflowPopover\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [bodyAriaLabel]=\"_popupBodyAriaLabel(hiddenItems.length)\"\n >\n <fd-popover-control class=\"fd-avatar-group__popover-control\" tabindex=\"-1\">\n @if (_overflowButton) {\n <ng-template\n [ngTemplateOutlet]=\"_overflowButton._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-avatar-group-overflow-button [size]=\"size\" [colorAccent]=\"1\">\n +{{ hiddenItems.length }}\n </fd-avatar-group-overflow-button>\n }\n </fd-popover-control>\n <ng-template fdPopoverBody>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems, popoverRef: overflowPopover }\"\n ></ng-template>\n </ng-template>\n </fd-popover>\n </ng-template>\n </fd-avatar-group-host>\n} @else {\n <fd-popover\n #groupPopover\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [bodyAriaLabel]=\"_popupBodyAriaLabel(_avatars.length)\"\n fdkResizeObserver\n (resized)=\"_detectChanges()\"\n >\n <fd-popover-control class=\"fd-avatar-group__popover-control\">\n <fd-avatar-group-host\n #avatarGroupHostComponent\n [type]=\"type\"\n [size]=\"size\"\n [orientation]=\"orientation\"\n [attr.aria-label]=\"ariaLabel || _defaultAriaLabelGroup()\"\n role=\"button\"\n tabindex=\"0\"\n >\n @for (item of _avatars; track item) {\n <ng-template\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [forceVisibility]=\"item.forceVisibility\"\n [avatarGroupItem]=\"item\"\n >\n </ng-template>\n }\n <ng-template\n [fdAvatarGroupInternalOverflowButton]=\"avatarGroupHostComponent._hiddenItems()\"\n let-hiddenItems\n >\n <ng-template\n [ngTemplateOutlet]=\"overflowButtonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </ng-template>\n </fd-avatar-group-host>\n </fd-popover-control>\n <ng-template fdPopoverBody>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: _avatarRenderers, popoverRef: groupPopover }\"\n ></ng-template>\n </ng-template>\n </fd-popover>\n}\n<ng-template #overflowButtonTemplate let-hiddenItems>\n @if (_overflowButton) {\n <ng-template\n [ngTemplateOutlet]=\"_overflowButton._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-avatar-group-overflow-button [size]=\"size\" [colorAccent]=\"1\" [fdkFocusableItem]=\"false\">\n +{{ hiddenItems.length }}\n </fd-avatar-group-overflow-button>\n }\n</ng-template>\n<ng-template #avatarGroupOverflowBodyTemplate let-hiddenItems let-popoverRef=\"popoverRef\">\n @if (_avatarGroupPopoverBody) {\n <ng-template\n [ngTemplateOutlet]=\"_avatarGroupPopoverBody._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-default-avatar-group-overflow-body\n [avatars]=\"hiddenItems\"\n [overflowPopoverTitle]=\"overflowPopoverTitle\"\n [overflowHeadingLevel]=\"overflowHeadingLevel()\"\n (escapePressed)=\"popoverRef?.close()\"\n />\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * Avatar group overflow body component, used to provide a template for the avatar group overflow body.\n */\n@Component({\n selector: 'fd-avatar-group-overflow-body',\n templateUrl: './avatar-group-overflow-body.component.html',\n host: {\n class: 'fd-popover__wrapper'\n },\n styleUrl: './avatar-group-overflow-body.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class AvatarGroupOverflowBodyComponent {\n /** Remove the padding from the overflow body. */\n @Input()\n noPadding = false;\n\n /** Hide horizontal scrollbar from the overflow body. */\n @Input()\n noHorizontalScroll = true;\n\n /** Hide vertical scrollbar from the overflow body. */\n @Input()\n noVerticalScroll = true;\n\n /** Additional popover body class */\n @Input()\n additionalPopoverBodyClass = '';\n}\n","<ng-content select=\"[fd-popover-body-header]\"></ng-content>\n<div\n class=\"fd-avatar-group__overflow-body\"\n [class.fd-avatar-group__overflow-body--no-padding]=\"noPadding\"\n [class.fd-avatar-group__overflow-body--no-horizontal-scroll]=\"noHorizontalScroll\"\n [class.fd-avatar-group__overflow-body--no-vertical-scroll]=\"noVerticalScroll\"\n>\n <ng-content select=\"[fd-avatar-group-overflow-body-content]\"></ng-content>\n</div>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\nimport { AvatarGroupComponent } from './avatar-group.component';\nimport { AvatarGroupOverflowBodyComponent } from './components/avatar-group-overflow-body/avatar-group-overflow-body.component';\nimport { AvatarGroupOverflowButtonComponent } from './components/avatar-group-overflow-button.component';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupOverflowBodyDirective } from './directives/avatar-group-overflow-body.directive';\nimport { AvatarGroupOverflowButtonDirective } from './directives/avatar-group-overflow-button.directive';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupOverflowButtonComponent,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowBodyComponent,\n AvatarGroupOverflowBodyDirective,\n PortalModule\n ],\n exports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupOverflowButtonComponent,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowBodyComponent,\n AvatarGroupOverflowBodyDirective\n ]\n})\nexport class AvatarGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-avatar-group.mjs","sources":["../../../../libs/core/avatar-group/tokens.ts","../../../../libs/core/avatar-group/directives/avatar-group-item.directive.ts","../../../../libs/core/avatar-group/directives/avatar-group-item-renderer.directive.ts","../../../../libs/core/avatar-group/components/avatar-group-host.component.ts","../../../../libs/core/avatar-group/components/avatar-group-overflow-button.component.ts","../../../../libs/core/avatar-group/components/default-avatar-group-overflow-body/default-avatar-group-overflow-body.component.ts","../../../../libs/core/avatar-group/components/default-avatar-group-overflow-body/default-avatar-group-overflow-body.component.html","../../../../libs/core/avatar-group/directives/avatar-group-internal-overflow-button.directive.ts","../../../../libs/core/avatar-group/directives/avatar-group-overflow-body.directive.ts","../../../../libs/core/avatar-group/directives/avatar-group-overflow-button.directive.ts","../../../../libs/core/avatar-group/avatar-group.component.ts","../../../../libs/core/avatar-group/avatar-group.component.html","../../../../libs/core/avatar-group/components/avatar-group-overflow-body/avatar-group-overflow-body.component.ts","../../../../libs/core/avatar-group/components/avatar-group-overflow-body/avatar-group-overflow-body.component.html","../../../../libs/core/avatar-group/avatar-group.module.ts","../../../../libs/core/avatar-group/fundamental-ngx-core-avatar-group.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AvatarGroupHostConfig } from './types';\n\nexport const AVATAR_GROUP_HOST_CONFIG = new InjectionToken<AvatarGroupHostConfig>(\n 'AvatarGroup host configuration. Is provided by AvatarGroupComponent.'\n);\n","import { Directive, inject, Input, TemplateRef } from '@angular/core';\n\n/**\n * Avatar group item directive, used to provide a template for the avatar group item.\n */\n@Directive({\n selector: '[fdAvatarGroupItem]',\n standalone: true\n})\nexport class AvatarGroupItemDirective {\n /**\n * Text, which will be displayed when in overflow popover and activated\n * */\n @Input('fdAvatarGroupItemTitle')\n title: string;\n\n /**\n * If set to true, item will never be hidden in overflow popover\n * */\n @Input('fdAvatarGroupItemForceVisibility')\n forceVisibility = false;\n\n /** @hidden */\n _templateRef: TemplateRef<void> = inject(TemplateRef);\n\n /**\n * Template for the details of the avatar group item.\n * This template it used to render additional information in the overflow popover.\n * */\n @Input('fdAvatarGroupItem')\n set details(detailsTemplate: TemplateRef<void> | string) {\n if (typeof detailsTemplate === 'string') {\n return;\n }\n this._details = detailsTemplate;\n }\n\n get details(): TemplateRef<void> {\n return this._details;\n }\n\n /** @hidden */\n private _details: TemplateRef<void>;\n}\n","import { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { Directive, EmbeddedViewRef, Input, OnInit, ViewContainerRef, inject } from '@angular/core';\nimport { FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableItem, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Observable, fromEvent } from 'rxjs';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { AVATAR_GROUP_HOST_CONFIG } from '../tokens';\nimport { AvatarGroupItemDirective } from './avatar-group-item.directive';\n@Directive({\n selector: '[fdAvatarGroupItemPortal]',\n exportAs: 'fdAvatarGroupItemPortal',\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,\n useExisting: AvatarGroupItemRendererDirective\n },\n CdkPortalOutlet\n ]\n})\nexport class AvatarGroupItemRendererDirective implements OnInit, FocusableItem {\n /**\n * Avatar group item to be rendered.\n **/\n @Input() avatarGroupItem: AvatarGroupItemDirective;\n\n /**\n * Whether the item should be forced to be visible.\n **/\n @Input()\n forceVisibility = false;\n\n /**\n * HTML element of the item.\n **/\n element$: Observable<Nullable<HTMLElement>>;\n\n /** @hidden */\n keydown: Observable<KeyboardEvent>;\n\n /**\n * Whether the item is visible.\n **/\n get visible(): boolean {\n return this._portalOutlet.hasAttached();\n }\n\n /**\n * Currently rendered element's HTMLElement.\n **/\n get element(): HTMLElement {\n return this._embeddedViewRef?.rootNodes[0] as HTMLElement;\n }\n\n /**\n * Rendered element's width or it's last saved width.\n **/\n get width(): number {\n if (this.visible) {\n const rect = this.element.getBoundingClientRect();\n const style = getComputedStyle(this.element);\n const width = rect.width;\n const marginLeft = parseFloat(style.marginLeft);\n const marginRight = parseFloat(style.marginRight);\n\n if (!isNaN(width) && !isNaN(marginLeft) && !isNaN(marginRight)) {\n this._lastSavedWidth = width + marginLeft + marginRight;\n }\n }\n return this._lastSavedWidth;\n }\n\n /**\n * Rendered element's height or it's last saved height.\n **/\n get height(): number {\n if (this.visible) {\n this._lastSavedHeight =\n this.element.getBoundingClientRect().height +\n parseFloat(getComputedStyle(this.element).marginTop) +\n parseFloat(getComputedStyle(this.element).marginBottom);\n }\n return this._lastSavedHeight;\n }\n\n /** @hidden */\n private _portalOutlet = inject(CdkPortalOutlet, { host: true });\n\n /** @hidden */\n private _viewContainerRef = inject(ViewContainerRef);\n\n /**\n * @hidden\n **/\n private _element$ = new BehaviorSubject<Nullable<HTMLElement>>(null);\n\n /** @hidden */\n private _templatePortal?: TemplatePortal<void>;\n\n /** @hidden */\n private _isFocusable = true;\n\n /** @hidden */\n private _embeddedViewRef: EmbeddedViewRef<void>;\n\n /** @hidden */\n private _lastSavedWidth = 0;\n\n /** @hidden */\n private _lastSavedHeight = 0;\n\n /** @hidden */\n private _posInSet = 0;\n\n /** @hidden */\n private _setSize = 0;\n\n /** @hidden */\n private _hostConfig = inject(AVATAR_GROUP_HOST_CONFIG);\n\n /** @hidden */\n constructor() {\n this.element$ = this._element$.asObservable();\n this.keydown = this._element$.pipe(\n filter((element) => !!element),\n switchMap((element) => fromEvent(element as unknown as HTMLElement, 'keydown') as Observable<KeyboardEvent>)\n );\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.show();\n }\n\n /**\n * Hides the item.\n **/\n hide(): void {\n this._portalOutlet.detach();\n this.setTabbable(false);\n this._isFocusable = false;\n }\n\n /**\n * Shows the item.\n **/\n show(): void {\n if (this.visible) {\n return;\n }\n if (!this._templatePortal) {\n this._templatePortal = new TemplatePortal(this.avatarGroupItem._templateRef, this._viewContainerRef);\n }\n this._embeddedViewRef = this._portalOutlet.attach(this._templatePortal);\n this._embeddedViewRef.detectChanges();\n this._element$.next(this.element);\n this.setTabbable(this._hostConfig.type === 'individual');\n this._isFocusable = this._hostConfig.type === 'individual';\n this._applyAriaPosition();\n }\n\n /**\n * Whether the item is focusable.\n **/\n isFocusable = (): boolean => this._isFocusable && this.visible;\n\n /**\n * Sets the tabbable state of the item.\n **/\n setTabbable(tabbable: boolean): void {\n this.element.tabIndex = tabbable ? 0 : -1;\n }\n\n /**\n * Sets aria-posinset and aria-setsize on the rendered element.\n * Stored values are applied immediately if the item is visible,\n * and re-applied on the next show() call otherwise.\n **/\n @Input()\n set posInSet(value: number) {\n this._posInSet = value;\n if (this.visible) {\n this._applyAriaPosition();\n }\n }\n\n get posInSet(): number {\n return this._posInSet;\n }\n\n /** @hidden */\n @Input()\n set setSize(value: number) {\n this._setSize = value;\n if (this.visible) {\n this._applyAriaPosition();\n }\n }\n\n get setSize(): number {\n return this._setSize;\n }\n\n /** @hidden */\n focus(): void {\n this.element?.focus();\n }\n\n /** @hidden */\n private _applyAriaPosition(): void {\n const el = this.element;\n if (!el || !this._posInSet || !this._setSize) {\n return;\n }\n el.setAttribute('aria-posinset', String(this._posInSet));\n el.setAttribute('aria-setsize', String(this._setSize));\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n Input,\n OnChanges,\n OnInit,\n QueryList,\n signal,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n applyCssClass,\n CssClassBuilder,\n HasElementRef,\n Nullable,\n ResizeObserverDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { animationFrames, combineLatest, delayWhen, map, Observable, startWith, Subject } from 'rxjs';\nimport { AvatarGroupItemRendererDirective } from '../directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from '../directives/avatar-group-item.directive';\nimport { AvatarGroupHostConfig } from '../types';\n\n@Component({\n selector: 'fd-avatar-group-host',\n template: '<ng-content></ng-content>',\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrl: './avatar-group-host.component.scss'\n})\nexport class AvatarGroupHostComponent\n implements OnInit, AfterViewInit, OnChanges, HasElementRef, AvatarGroupHostConfig, CssClassBuilder\n{\n /**\n * The class to apply to the host element.\n **/\n @Input()\n class: Nullable<string>;\n\n /**\n * The type of the avatar group.\n * Options include 'individual' and 'group'.\n **/\n @Input()\n type: AvatarGroupHostConfig['type'];\n\n /**\n * The orientation of the avatar group.\n * Options include 'horizontal' and 'vertical'.\n **/\n @Input()\n orientation: AvatarGroupHostConfig['orientation'];\n\n /**\n * The size of the avatar group.\n * Options include 'xs', 's', 'm', 'l', and 'xl'.\n **/\n @Input()\n size: AvatarGroupHostConfig['size'];\n\n /**\n * The items to be rendered in the avatar group.\n **/\n @Input()\n items: QueryList<AvatarGroupItemDirective>;\n\n /**\n * @hidden\n * The portals to be rendered in the avatar group.\n **/\n @ContentChildren(AvatarGroupItemRendererDirective, { descendants: true })\n _portals: QueryList<AvatarGroupItemRendererDirective>;\n\n /** @hidden */\n _resizeEmitter: Observable<ResizeObserverEntry[]> = inject(ResizeObserverDirective).resizeEvents$;\n\n /** The reference to the host element */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n _hiddenItems = signal<AvatarGroupItemRendererDirective[]>([]);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _onChanges$ = new Subject<SimpleChanges>();\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class || '',\n 'fd-avatar-group',\n this.type === 'individual' ? 'fd-avatar-group--individual-type' : '',\n this.type === 'group' ? 'fd-avatar-group--group-type' : '',\n this.orientation ? 'fd-avatar-group--' + this.orientation : '',\n this.size ? 'fd-avatar-group--' + this.size : ''\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this.buildComponentCssClass();\n this._onChanges$.next(changes);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n combineLatest([\n this._resizeEmitter.pipe(map((entries) => entries[0].contentRect.width)),\n this._portals.changes.pipe(\n startWith(this._portals),\n map((r) => r.toArray())\n ),\n this._onChanges$.pipe(startWith({}))\n ])\n .pipe(\n map(([containerWidth, items]) => this._calculateVisibility(containerWidth, items)),\n delayWhen(() => animationFrames()),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(({ hiddenItems, visibleItems }) => {\n const allItems = this._portals.toArray();\n const total = allItems.length;\n allItems.forEach((item, index) => {\n item.posInSet = index + 1;\n item.setSize = total;\n });\n visibleItems.forEach((item) => item.show());\n hiddenItems.forEach((item) => item.hide());\n this._cdr.detectChanges();\n this._hiddenItems.set(hiddenItems);\n });\n }\n\n /** @hidden */\n private _calculateVisibility(\n containerWidth: number,\n items: AvatarGroupItemRendererDirective[]\n ): {\n hiddenItems: AvatarGroupItemRendererDirective[];\n visibleItems: AvatarGroupItemRendererDirective[];\n } {\n if (this.orientation === 'vertical') {\n return {\n visibleItems: items,\n hiddenItems: []\n };\n }\n const visibleItems = items.filter((i) => i.forceVisibility);\n const hiddenItems: AvatarGroupItemRendererDirective[] = [];\n let accWidth = items.reduce((acc, item) => (item.forceVisibility ? acc + item.width : acc), 0);\n for (const item of items) {\n if (item.forceVisibility) {\n continue;\n }\n accWidth += item.width;\n if (accWidth <= containerWidth) {\n visibleItems.push(item);\n } else if (!item.forceVisibility) {\n hiddenItems.push(item);\n }\n }\n /* take last item from the visibleItems which is not forced to be visible and push it to the hiddenItems\n * This is done to free up the space for the overflow button\n */\n if (hiddenItems.length > 0) {\n const lastAllowedToBeHidden = visibleItems.reverse().findIndex((item) => !item.forceVisibility);\n hiddenItems.push(...visibleItems.splice(lastAllowedToBeHidden * -1, 1));\n }\n return {\n visibleItems,\n hiddenItems\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n HostBinding,\n inject,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n applyCssClass,\n ColorAccent,\n CssClassBuilder,\n FDK_FOCUSABLE_ITEM_DIRECTIVE,\n FocusableItemDirective,\n Nullable,\n Size\n} from '@fundamental-ngx/cdk/utils';\nimport { AVATAR_GROUP_HOST_CONFIG } from '../tokens';\n\n/**\n * Avatar group overflow button component.\n * This is used for the overflow button template.\n * Although any content can be projected as the overflow button, this component provides some styling and accessibility features.\n */\n@Component({\n selector: 'fd-avatar-group-overflow-button',\n template: ` <ng-content></ng-content>`,\n host: {\n role: 'button',\n '(keydown.enter)': 'elementRef.nativeElement.click()',\n '(keydown.space)': 'elementRef.nativeElement.click(); $event.preventDefault()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,\n useExisting: forwardRef(() => AvatarGroupOverflowButtonComponent)\n }\n ]\n})\nexport class AvatarGroupOverflowButtonComponent\n extends FocusableItemDirective\n implements OnChanges, OnInit, CssClassBuilder\n{\n /**\n * Size of the overflow button.\n */\n @Input()\n size: Size = 'l';\n\n /**\n * Whether the overflow button should be displayed as a circle.\n */\n @Input()\n @HostBinding('class.fd-avatar--circle')\n circle = false;\n\n /**\n * A number from 1 to 10 representing the background color of the Avatar.\n */\n @Input() colorAccent: Nullable<ColorAccent> = null;\n\n /**\n * The class to apply to the host element.\n **/\n @Input()\n class: Nullable<string>;\n\n /** @hidden */\n constructor() {\n super();\n this.setFocusable(inject(AVATAR_GROUP_HOST_CONFIG).type === 'individual');\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class || '',\n 'fd-avatar fd-avatar--overflow',\n 'fd-avatar--' + this.size,\n this.colorAccent ? 'fd-avatar--' + this.colorAccent : ''\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation,\n computed,\n inject,\n input,\n output\n} from '@angular/core';\nimport { FocusableListDirective, RtlService, elementClick$ } from '@fundamental-ngx/cdk/utils';\nimport { BarComponent, BarElementDirective, BarLeftDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { PopoverBodyHeaderDirective } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Subscription, map, merge, startWith } from 'rxjs';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { AvatarGroupItemRendererDirective } from '../../directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from '../../directives/avatar-group-item.directive';\nimport { AVATAR_GROUP_HOST_CONFIG } from '../../tokens';\nimport { AvatarGroupHostConfig } from '../../types';\n\n@Component({\n selector: 'fd-default-avatar-group-overflow-body',\n templateUrl: './default-avatar-group-overflow-body.component.html',\n imports: [\n PortalModule,\n AvatarGroupItemRendererDirective,\n FocusableListDirective,\n NgTemplateOutlet,\n PopoverBodyHeaderDirective,\n BarComponent,\n ButtonBarComponent,\n BarElementDirective,\n BarLeftDirective,\n FdTranslatePipe\n ],\n host: {\n class: 'fd-popover__wrapper',\n '[style.max-width.rem]': '20'\n },\n providers: [\n {\n // Override the parent group config so that items inside the overflow popup are always\n // rendered as individually focusable. Without this, a group-type parent would set\n // tabindex=-1 and isFocusable=false on each avatar via AvatarGroupItemRendererDirective,\n // making them invisible to fdkFocusableList and unreachable by keyboard.\n provide: AVATAR_GROUP_HOST_CONFIG,\n useValue: { type: 'individual', orientation: 'horizontal', size: 's' } as AvatarGroupHostConfig\n }\n ],\n styleUrl: './default-avatar-group-overflow-body.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultAvatarGroupOverflowBodyComponent implements AfterViewInit, OnDestroy {\n /**\n * List of avatars to be rendered in the overflow popover.\n **/\n @Input()\n avatars: Iterable<AvatarGroupItemRendererDirective> = [];\n\n /**\n * Title of the overflow popover.\n * */\n @Input()\n overflowPopoverTitle: string;\n\n /** @hidden */\n @ViewChildren(AvatarGroupItemRendererDirective)\n _avatarGroupItemPortals: QueryList<AvatarGroupItemRendererDirective>;\n\n /** Emitted when the Escape key is pressed inside the overflow body. */\n readonly escapePressed = output<void>();\n\n /**\n * Heading level for the overflow popover title.\n * @default 5\n */\n readonly overflowHeadingLevel = input<1 | 2 | 3 | 4 | 5 | 6>(5);\n\n /** @hidden */\n _overflowPopoverStage: 'main' | 'details' = 'main';\n\n /** @hidden */\n _selectedItem: AvatarGroupItemDirective;\n\n /** @hidden */\n get _isDetailStage(): boolean {\n return this._overflowPopoverStage === 'details';\n }\n\n /** @hidden */\n protected readonly navigationArrow = computed(() =>\n this._rtlService?.rtl() ? 'navigation-right-arrow' : 'navigation-left-arrow'\n );\n\n /** @hidden */\n private _itemClickSubscription: Subscription;\n\n /** @hidden */\n private _escapeUnlisten: () => void;\n\n /** @hidden */\n private readonly _elementRef = inject(ElementRef<HTMLElement>);\n\n /** @hidden */\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._registerEscapeListener();\n this._avatarGroupItemPortals.changes\n .pipe(\n startWith(this._avatarGroupItemPortals),\n map((avatarGroupItemPortals) => avatarGroupItemPortals.toArray())\n )\n .subscribe((items: AvatarGroupItemRendererDirective[]) => {\n if (this._itemClickSubscription) {\n this._itemClickSubscription.unsubscribe();\n }\n this._itemClickSubscription = merge(\n ...items.map((item) =>\n item.element$.pipe(\n filter(Boolean),\n switchMap((el) => elementClick$(el, this._renderer).pipe(map(() => item)))\n )\n )\n ).subscribe((item: AvatarGroupItemRendererDirective) => {\n this._overflowPopoverStage = 'details';\n this._selectedItem = item.avatarGroupItem;\n this._changeDetectorRef.detectChanges();\n this._focusFirstTabbableElement();\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._itemClickSubscription?.unsubscribe();\n this._escapeUnlisten();\n }\n\n /** @hidden */\n protected openOverflowMain(): void {\n this._overflowPopoverStage = 'main';\n this._changeDetectorRef.detectChanges();\n const target = this._avatarGroupItemPortals.find((r) => r.avatarGroupItem === this._selectedItem);\n if (target?.element) {\n target.element.focus();\n } else {\n this._focusFirstTabbableElement();\n }\n }\n\n /** @hidden */\n private _focusFirstTabbableElement(): void {\n requestAnimationFrame(() => {\n const el: HTMLElement | null = this._elementRef.nativeElement.querySelector(\n '[tabindex=\"0\"], button, a, input'\n );\n el?.focus();\n });\n }\n\n /** @hidden */\n private _registerEscapeListener(): void {\n const el = this._elementRef.nativeElement;\n const escapeHandler = (event: KeyboardEvent): void => {\n if (event.key === 'Escape') {\n this.escapePressed.emit();\n }\n };\n // Capture phase is required: child elements (e.g. fdkFocusableList items) call\n // stopPropagation() on keydown, which would prevent the event from bubbling up.\n el.addEventListener('keydown', escapeHandler, true);\n this._escapeUnlisten = () => el.removeEventListener('keydown', escapeHandler, true);\n }\n}\n","<div fd-popover-body-header>\n <div fd-bar barDesign=\"header\">\n <div fd-bar-left>\n @if (_isDetailStage) {\n <fd-button-bar\n (click)=\"openOverflowMain()\"\n [glyph]=\"navigationArrow()\"\n fdType=\"transparent\"\n [attr.aria-label]=\"('coreAvatarGroup.backButton' | fdTranslate)()\"\n [title]=\"('coreAvatarGroup.backButton' | fdTranslate)()\"\n ></fd-button-bar>\n }\n <fd-bar-element\n ><span\n class=\"fd-title\"\n [class]=\"'fd-title--h' + overflowHeadingLevel()\"\n role=\"heading\"\n [attr.aria-level]=\"overflowHeadingLevel()\"\n >\n {{ _isDetailStage ? _selectedItem.title : overflowPopoverTitle }}\n </span></fd-bar-element\n >\n @if (_isDetailStage) {\n <fd-bar-element>&nbsp;</fd-bar-element>\n }\n </div>\n </div>\n</div>\n<div\n class=\"fd-avatar-group__overflow-body\"\n [class.fd-avatar-group__overflow-body--no-padding]=\"_isDetailStage\"\n [class.fd-avatar-group__overflow-body--no-horizontal-scroll]=\"_isDetailStage\"\n fdkFocusableList\n role=\"list\"\n navigationDirection=\"horizontal\"\n>\n @if (_overflowPopoverStage === 'main') {\n @for (item of avatars; track item) {\n <ng-template\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [avatarGroupItem]=\"item.avatarGroupItem\"\n [forceVisibility]=\"true\"\n [posInSet]=\"item.posInSet\"\n [setSize]=\"item.setSize\"\n >\n </ng-template>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"_selectedItem.details\"></ng-template>\n }\n</div>\n","import { Directive, EmbeddedViewRef, inject, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n@Directive({\n selector: '[fdAvatarGroupInternalOverflowButton]',\n standalone: true\n})\nexport class AvatarGroupInternalOverflowButtonDirective implements OnDestroy {\n /**\n * List of hidden items to be rendered in the overflow popover.\n **/\n @Input('fdAvatarGroupInternalOverflowButton')\n set hiddenItems(value: AvatarGroupItemRendererDirective[] | null) {\n const hiddenItems = value || [];\n if (hiddenItems.length > 0) {\n this._show(hiddenItems);\n } else {\n this._hide();\n }\n }\n\n /** @hidden */\n private readonly _templateContext: { $implicit: AvatarGroupItemRendererDirective[] } = { $implicit: [] };\n /** @hidden */\n private readonly _templateRef: TemplateRef<{ $implicit: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n /** @hidden */\n private readonly _viewContainerRef = inject(ViewContainerRef);\n /** @hidden */\n private _embeddedView?: EmbeddedViewRef<any>;\n\n /** @hidden */\n static ngTemplateContextGuard(\n _directive: AvatarGroupInternalOverflowButtonDirective,\n context: unknown\n ): context is { $implicit: AvatarGroupItemRendererDirective[] } {\n return true;\n }\n /** @hidden */\n ngOnDestroy(): void {\n this._hide();\n }\n\n /** @hidden */\n private _show(hiddenItems: AvatarGroupItemRendererDirective[]): void {\n this._templateContext.$implicit = hiddenItems;\n if (this._embeddedView) {\n this._embeddedView.detectChanges();\n return;\n }\n this._viewContainerRef.clear();\n this._embeddedView = this._viewContainerRef.createEmbeddedView(this._templateRef, this._templateContext);\n this._embeddedView.detectChanges();\n }\n\n /** @hidden */\n private _hide(): void {\n this._viewContainerRef.clear();\n this._embeddedView = undefined;\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n/**\n * Avatar group overflow body directive, used to provide a template for the avatar group overflow body.\n * If nothing is provided, default overflow body will be used.\n */\n@Directive({\n selector: '[fdAvatarGroupOverflowBody]',\n standalone: true\n})\nexport class AvatarGroupOverflowBodyDirective {\n /** @hidden */\n readonly _templateRef: TemplateRef<{ hiddenItems: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n/**\n * Avatar group overflow button directive, used to provide a template for the avatar group overflow button.\n * If nothing is provided, default overflow button will be used.\n */\n@Directive({\n selector: '[fdAvatarGroupOverflowButton]',\n standalone: true\n})\nexport class AvatarGroupOverflowButtonDirective {\n /** @hidden */\n readonly _templateRef: TemplateRef<{ hiddenItems: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n}\n","import { LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n QueryList,\n ViewChildren,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal,\n viewChild\n} from '@angular/core';\nimport {\n FocusableListDirective,\n FocusableListItemFocusedEvent,\n ResizeObserverDirective,\n RtlService\n} from '@fundamental-ngx/cdk/utils';\nimport { PopoverBodyDirective, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { resolveTranslationSignalFn } from '@fundamental-ngx/i18n';\nimport { AvatarGroupHostComponent } from './components/avatar-group-host.component';\nimport { AvatarGroupOverflowButtonComponent } from './components/avatar-group-overflow-button.component';\nimport { DefaultAvatarGroupOverflowBodyComponent } from './components/default-avatar-group-overflow-body/default-avatar-group-overflow-body.component';\nimport { AvatarGroupInternalOverflowButtonDirective } from './directives/avatar-group-internal-overflow-button.directive';\nimport { AvatarGroupItemRendererDirective } from './directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupOverflowBodyDirective } from './directives/avatar-group-overflow-body.directive';\nimport { AvatarGroupOverflowButtonDirective } from './directives/avatar-group-overflow-button.directive';\nimport { AVATAR_GROUP_HOST_CONFIG } from './tokens';\nimport { AvatarGroupHostConfig } from './types';\n\n@Component({\n selector: 'fd-avatar-group',\n templateUrl: './avatar-group.component.html',\n styleUrl: './avatar-group.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AVATAR_GROUP_HOST_CONFIG,\n useExisting: AvatarGroupComponent\n }\n ],\n imports: [\n AvatarGroupHostComponent,\n PopoverComponent,\n PopoverControlComponent,\n PopoverBodyDirective,\n NgTemplateOutlet,\n FocusableListDirective,\n AvatarGroupItemRendererDirective,\n AvatarGroupOverflowButtonComponent,\n DefaultAvatarGroupOverflowBodyComponent,\n AvatarGroupInternalOverflowButtonDirective,\n ResizeObserverDirective\n ]\n})\nexport class AvatarGroupComponent implements AvatarGroupHostConfig {\n /**\n * The AvatarGroup control has two group types:\n *\n * `group`: The avatars are displayed as partially overlapped on top of each other and the entire group has one click/tap area.\n * `individual`: The avatars are displayed side-by-side and each avatar has its own click/tap area.\n * */\n @Input()\n type: AvatarGroupHostConfig['type'] = 'individual';\n\n /**\n * Orientation of the AvatarGroup control.\n *\n * `horizontal`: The avatars are displayed horizontally.\n * `vertical`: The avatars are displayed vertically.\n */\n @Input()\n orientation: AvatarGroupHostConfig['orientation'] = 'horizontal';\n\n /**\n * The spacing between the items depends on the size of the avatars in the group.\n * The size is also used for the default overflow button.\n * `xs`, `s`, `m`, `l`, `xl`\n */\n @Input()\n size: AvatarGroupHostConfig['size'] = 'l';\n\n /**\n * The title which is displayed when user opens the overflow popover.\n * This takes effect only when default overflow popover body is used,\n * otherwise the title should be set on the custom overflow popover body component.\n */\n @Input()\n overflowPopoverTitle: string;\n\n /**\n * Aria label for the avatar group container.\n * When not provided, a default label is generated from the i18n `coreAvatarGroup.ariaLabelGroup` key\n * for group type, or `coreAvatarGroup.ariaLabelIndividual` for individual type,\n * using the current displayed and hidden avatar counts as context.\n */\n @Input()\n ariaLabel: string;\n\n /** @hidden */\n @ViewChildren(AvatarGroupItemRendererDirective)\n _avatarRenderers: QueryList<AvatarGroupItemRendererDirective>;\n\n /** @hidden */\n @ContentChildren(AvatarGroupItemDirective)\n _avatars: QueryList<AvatarGroupItemDirective>;\n\n /** @hidden */\n @ContentChild(AvatarGroupOverflowButtonDirective)\n _overflowButton: AvatarGroupOverflowButtonDirective;\n\n /** @hidden */\n @ContentChild(AvatarGroupOverflowBodyDirective)\n _avatarGroupPopoverBody: AvatarGroupOverflowBodyDirective;\n\n /**\n * Heading level for the overflow popover title.\n * @default 5\n */\n readonly overflowHeadingLevel = input<1 | 2 | 3 | 4 | 5 | 6>(5);\n\n /** @hidden */\n readonly _avatarGroupHost = viewChild(AvatarGroupHostComponent);\n\n /** @hidden */\n protected readonly contentDirection = computed<Direction>(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n /** @hidden */\n protected readonly _defaultAriaLabelGroup = computed(() =>\n this._translate('coreAvatarGroup.ariaLabelGroup', this._ariaLabelContext)()\n );\n\n /** @hidden */\n protected readonly _defaultAriaLabelIndividual = computed(() =>\n this._translate('coreAvatarGroup.ariaLabelIndividual', this._ariaLabelContext)()\n );\n\n /** @hidden */\n private readonly _translate = resolveTranslationSignalFn();\n\n /** @hidden */\n private readonly _ariaLabelContext = computed(() => {\n const hiddenItems = this._avatarGroupHost()?._hiddenItems() ?? [];\n const hiddenCount = hiddenItems.length;\n const count = (this._avatars?.length ?? 0) - hiddenCount;\n return { count, hiddenCount };\n });\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n private readonly _liveAnnouncer = inject(LiveAnnouncer);\n\n /** @hidden */\n _detectChanges(): void {\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n protected _onItemFocused(event: FocusableListItemFocusedEvent): void {\n this._liveAnnouncer.announce(`${event.index + 1} of ${event.total}`);\n }\n\n /** @hidden */\n protected _popupBodyAriaLabel(count: number): string {\n return this._translate('coreAvatarGroup.popupBodyAriaLabel', signal({ count }))();\n }\n}\n","<ng-content></ng-content>\n@if (type === 'individual') {\n <fd-avatar-group-host\n #avatarGroupHostComponent\n [type]=\"type\"\n [size]=\"size\"\n [orientation]=\"orientation\"\n fdkResizeObserver\n fdkFocusableList\n [contentDirection]=\"contentDirection()\"\n [wrap]=\"true\"\n [navigationDirection]=\"orientation\"\n [items]=\"_avatars\"\n [attr.aria-label]=\"ariaLabel || _defaultAriaLabelIndividual()\"\n (resized)=\"_detectChanges()\"\n (itemFocused)=\"_onItemFocused($event)\"\n >\n @for (item of _avatars; track item) {\n <fd-popover [noArrow]=\"false\" [focusAutoCapture]=\"true\">\n <fd-popover-control\n class=\"fd-avatar-group__popover-control\"\n tabindex=\"-1\"\n (click)=\"outletItem.element.focus()\"\n >\n <ng-template\n #outletItem=\"fdAvatarGroupItemPortal\"\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [forceVisibility]=\"item.forceVisibility\"\n [avatarGroupItem]=\"item\"\n >\n </ng-template>\n </fd-popover-control>\n @if (item.details) {\n <ng-template fdPopoverBody>\n <ng-template [ngTemplateOutlet]=\"item.details\"></ng-template>\n </ng-template>\n }\n </fd-popover>\n }\n <ng-template [fdAvatarGroupInternalOverflowButton]=\"avatarGroupHostComponent._hiddenItems()\" let-hiddenItems>\n <fd-popover\n #overflowPopover\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [bodyAriaLabel]=\"_popupBodyAriaLabel(hiddenItems.length)\"\n >\n <fd-popover-control class=\"fd-avatar-group__popover-control\" tabindex=\"-1\">\n @if (_overflowButton) {\n <ng-template\n [ngTemplateOutlet]=\"_overflowButton._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-avatar-group-overflow-button [size]=\"size\" [colorAccent]=\"1\">\n +{{ hiddenItems.length }}\n </fd-avatar-group-overflow-button>\n }\n </fd-popover-control>\n <ng-template fdPopoverBody>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems, popoverRef: overflowPopover }\"\n ></ng-template>\n </ng-template>\n </fd-popover>\n </ng-template>\n </fd-avatar-group-host>\n} @else {\n <fd-popover\n #groupPopover\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n [bodyAriaLabel]=\"_popupBodyAriaLabel(_avatars.length)\"\n fdkResizeObserver\n (resized)=\"_detectChanges()\"\n >\n <fd-popover-control class=\"fd-avatar-group__popover-control\">\n <fd-avatar-group-host\n #avatarGroupHostComponent\n [type]=\"type\"\n [size]=\"size\"\n [orientation]=\"orientation\"\n [attr.aria-label]=\"ariaLabel || _defaultAriaLabelGroup()\"\n role=\"button\"\n tabindex=\"0\"\n >\n @for (item of _avatars; track item) {\n <ng-template\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [forceVisibility]=\"item.forceVisibility\"\n [avatarGroupItem]=\"item\"\n >\n </ng-template>\n }\n <ng-template\n [fdAvatarGroupInternalOverflowButton]=\"avatarGroupHostComponent._hiddenItems()\"\n let-hiddenItems\n >\n <ng-template\n [ngTemplateOutlet]=\"overflowButtonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </ng-template>\n </fd-avatar-group-host>\n </fd-popover-control>\n <ng-template fdPopoverBody>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: _avatarRenderers, popoverRef: groupPopover }\"\n ></ng-template>\n </ng-template>\n </fd-popover>\n}\n<ng-template #overflowButtonTemplate let-hiddenItems>\n @if (_overflowButton) {\n <ng-template\n [ngTemplateOutlet]=\"_overflowButton._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-avatar-group-overflow-button [size]=\"size\" [colorAccent]=\"1\" [fdkFocusableItem]=\"false\">\n +{{ hiddenItems.length }}\n </fd-avatar-group-overflow-button>\n }\n</ng-template>\n<ng-template #avatarGroupOverflowBodyTemplate let-hiddenItems let-popoverRef=\"popoverRef\">\n @if (_avatarGroupPopoverBody) {\n <ng-template\n [ngTemplateOutlet]=\"_avatarGroupPopoverBody._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-default-avatar-group-overflow-body\n [avatars]=\"hiddenItems\"\n [overflowPopoverTitle]=\"overflowPopoverTitle\"\n [overflowHeadingLevel]=\"overflowHeadingLevel()\"\n (escapePressed)=\"popoverRef?.close()\"\n />\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * Avatar group overflow body component, used to provide a template for the avatar group overflow body.\n */\n@Component({\n selector: 'fd-avatar-group-overflow-body',\n templateUrl: './avatar-group-overflow-body.component.html',\n host: {\n class: 'fd-popover__wrapper'\n },\n styleUrl: './avatar-group-overflow-body.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class AvatarGroupOverflowBodyComponent {\n /** Remove the padding from the overflow body. */\n @Input()\n noPadding = false;\n\n /** Hide horizontal scrollbar from the overflow body. */\n @Input()\n noHorizontalScroll = true;\n\n /** Hide vertical scrollbar from the overflow body. */\n @Input()\n noVerticalScroll = true;\n\n /** Additional popover body class */\n @Input()\n additionalPopoverBodyClass = '';\n}\n","<ng-content select=\"[fd-popover-body-header]\"></ng-content>\n<div\n class=\"fd-avatar-group__overflow-body\"\n [class.fd-avatar-group__overflow-body--no-padding]=\"noPadding\"\n [class.fd-avatar-group__overflow-body--no-horizontal-scroll]=\"noHorizontalScroll\"\n [class.fd-avatar-group__overflow-body--no-vertical-scroll]=\"noVerticalScroll\"\n>\n <ng-content select=\"[fd-avatar-group-overflow-body-content]\"></ng-content>\n</div>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\nimport { AvatarGroupComponent } from './avatar-group.component';\nimport { AvatarGroupOverflowBodyComponent } from './components/avatar-group-overflow-body/avatar-group-overflow-body.component';\nimport { AvatarGroupOverflowButtonComponent } from './components/avatar-group-overflow-button.component';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupOverflowBodyDirective } from './directives/avatar-group-overflow-body.directive';\nimport { AvatarGroupOverflowButtonDirective } from './directives/avatar-group-overflow-button.directive';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupOverflowButtonComponent,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowBodyComponent,\n AvatarGroupOverflowBodyDirective,\n PortalModule\n ],\n exports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupOverflowButtonComponent,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowBodyComponent,\n AvatarGroupOverflowBodyDirective\n ]\n})\nexport class AvatarGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}