@fundamental-ngx/core 0.62.0-rc.65 → 0.62.0-rc.67

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 (33) hide show
  1. package/fesm2022/fundamental-ngx-core-avatar-group.mjs +1 -1
  2. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-core-bar.mjs +46 -80
  4. package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +25 -3
  6. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-carousel.mjs +1 -1
  8. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-date-picker.mjs +1 -1
  10. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +1 -1
  12. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-dialog.mjs +3 -3
  14. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-form.mjs +1 -1
  16. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-inline-help.mjs +33 -14
  18. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
  20. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-popover.mjs +34 -2
  22. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
  24. package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-core-settings.mjs +1 -1
  26. package/fesm2022/fundamental-ngx-core-settings.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-core-user-menu.mjs +2 -2
  28. package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
  29. package/package.json +3 -3
  30. package/types/fundamental-ngx-core-bar.d.ts +37 -54
  31. package/types/fundamental-ngx-core-busy-indicator.d.ts +6 -1
  32. package/types/fundamental-ngx-core-inline-help.d.ts +19 -14
  33. package/types/fundamental-ngx-core-popover.d.ts +28 -3
@@ -441,7 +441,7 @@ class DefaultAvatarGroupOverflowBodyComponent {
441
441
  this._changeDetectorRef.detectChanges();
442
442
  }
443
443
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: DefaultAvatarGroupOverflowBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
444
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: DefaultAvatarGroupOverflowBodyComponent, isStandalone: true, selector: "fd-default-avatar-group-overflow-body", inputs: { avatars: "avatars", overflowPopoverTitle: "overflowPopoverTitle" }, host: { properties: { "style.max-width.rem": "20" }, classAttribute: "fd-popover__wrapper" }, viewQueries: [{ propertyName: "_avatarGroupItemPortals", predicate: AvatarGroupItemRendererDirective, descendants: true }], ngImport: i0, template: "<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 {{ _isDetailStage ? _selectedItem.title : overflowPopoverTitle }}\n </fd-bar-element>\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 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 >\n </ng-template>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"_selectedItem.details\"></ng-template>\n }\n</div>\n", styles: ["fd-default-avatar-group-overflow-body{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: AvatarGroupItemRendererDirective, selector: "[fdAvatarGroupItemPortal]", inputs: ["avatarGroupItem", "forceVisibility"], exportAs: ["fdAvatarGroupItemPortal"] }, { kind: "directive", type: FocusableListDirective, selector: "[fdkFocusableList]", inputs: ["focusable", "navigationDirection", "contentDirection", "wrap", "listFocusedEventAnnouncer"], outputs: ["navigationDirectionChange", "contentDirectionChange", "itemFocused"], exportAs: ["fdkFocusableList"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "clear", "size", "initialSuggestionTitle", "initialSuggestionSubline", "role"] }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]", inputs: ["stackContentsVertically"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
444
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.0", type: DefaultAvatarGroupOverflowBodyComponent, isStandalone: true, selector: "fd-default-avatar-group-overflow-body", inputs: { avatars: "avatars", overflowPopoverTitle: "overflowPopoverTitle" }, host: { properties: { "style.max-width.rem": "20" }, classAttribute: "fd-popover__wrapper" }, viewQueries: [{ propertyName: "_avatarGroupItemPortals", predicate: AvatarGroupItemRendererDirective, descendants: true }], ngImport: i0, template: "<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 {{ _isDetailStage ? _selectedItem.title : overflowPopoverTitle }}\n </fd-bar-element>\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 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 >\n </ng-template>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"_selectedItem.details\"></ng-template>\n }\n</div>\n", styles: ["fd-default-avatar-group-overflow-body{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: AvatarGroupItemRendererDirective, selector: "[fdAvatarGroupItemPortal]", inputs: ["avatarGroupItem", "forceVisibility"], exportAs: ["fdAvatarGroupItemPortal"] }, { kind: "directive", type: FocusableListDirective, selector: "[fdkFocusableList]", inputs: ["focusable", "navigationDirection", "contentDirection", "wrap", "listFocusedEventAnnouncer"], outputs: ["navigationDirectionChange", "contentDirectionChange", "itemFocused"], exportAs: ["fdkFocusableList"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: PopoverBodyHeaderDirective, selector: "[fdPopoverBodyHeader], [fd-popover-body-header]" }, { kind: "component", type: BarComponent, selector: "[fd-bar]", inputs: ["barDesign", "inPage", "inHomePage", "clear", "size", "initialSuggestionTitle", "initialSuggestionSubline", "role"] }, { kind: "component", type: ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "directive", type: BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "directive", type: BarLeftDirective, selector: "[fd-bar-left]", inputs: ["stackContentsVertically"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
445
445
  }
446
446
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: DefaultAvatarGroupOverflowBodyComponent, decorators: [{
447
447
  type: Component,
@@ -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\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 _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 }\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 /** @hidden */\n focus(): void {\n this.element?.focus();\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 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 },\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 Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation,\n computed,\n inject\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';\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 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 /** @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 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._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 });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this._itemClickSubscription) {\n this._itemClickSubscription.unsubscribe();\n }\n }\n\n /** @hidden */\n protected openOverflowMain(): void {\n this._overflowPopoverStage = 'main';\n this._changeDetectorRef.detectChanges();\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 {{ _isDetailStage ? _selectedItem.title : overflowPopoverTitle }}\n </fd-bar-element>\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 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 >\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 { 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} from '@angular/core';\nimport {\n FocusableItemDirective,\n FocusableListDirective,\n ResizeObserverDirective,\n RtlService\n} from '@fundamental-ngx/cdk/utils';\nimport { PopoverBodyDirective, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\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 FocusableItemDirective,\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 /** @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 /** @hidden */\n protected readonly contentDirection = computed<Direction>(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n _detectChanges(): void {\n this._cdr.detectChanges();\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 (resized)=\"_detectChanges()\"\n >\n @for (item of _avatars; track item) {\n <fd-popover [noArrow]=\"false\" [focusAutoCapture]=\"true\">\n <fd-popover-control tabindex=\"-1\" (click)=\"outletItem.element.focus()\">\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 <fd-popover\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n *fdAvatarGroupInternalOverflowButton=\"avatarGroupHostComponent._hiddenItems(); let hiddenItems\"\n >\n <fd-popover-control tabindex=\"-1\">\n <ng-template\n [ngTemplateOutlet]=\"overflowButtonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </fd-popover-control>\n <ng-template fdPopoverBody>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </ng-template>\n </fd-popover>\n </fd-avatar-group-host>\n} @else {\n <fd-popover [noArrow]=\"false\" [focusAutoCapture]=\"true\" fdkResizeObserver (resized)=\"_detectChanges()\">\n <fd-popover-control>\n <fd-avatar-group-host\n #avatarGroupHostComponent\n [type]=\"type\"\n [size]=\"size\"\n [orientation]=\"orientation\"\n [fdkFocusableItem]=\"true\"\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 }\"\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\">\n +{{ hiddenItems.length }}\n </fd-avatar-group-overflow-button>\n }\n</ng-template>\n<ng-template #avatarGroupOverflowBodyTemplate let-hiddenItems>\n @if (_avatarGroupPopoverBody) {\n <ng-template\n [ngTemplateOutlet]=\"_avatarGroupPopoverBody._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-default-avatar-group-overflow-body [avatars]=\"hiddenItems\" [overflowPopoverTitle]=\"overflowPopoverTitle\" />\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\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 _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 }\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 /** @hidden */\n focus(): void {\n this.element?.focus();\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 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 },\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 Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation,\n computed,\n inject\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';\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 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 /** @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 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._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 });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this._itemClickSubscription) {\n this._itemClickSubscription.unsubscribe();\n }\n }\n\n /** @hidden */\n protected openOverflowMain(): void {\n this._overflowPopoverStage = 'main';\n this._changeDetectorRef.detectChanges();\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 {{ _isDetailStage ? _selectedItem.title : overflowPopoverTitle }}\n </fd-bar-element>\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 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 >\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 { 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} from '@angular/core';\nimport {\n FocusableItemDirective,\n FocusableListDirective,\n ResizeObserverDirective,\n RtlService\n} from '@fundamental-ngx/cdk/utils';\nimport { PopoverBodyDirective, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\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 FocusableItemDirective,\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 /** @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 /** @hidden */\n protected readonly contentDirection = computed<Direction>(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n _detectChanges(): void {\n this._cdr.detectChanges();\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 (resized)=\"_detectChanges()\"\n >\n @for (item of _avatars; track item) {\n <fd-popover [noArrow]=\"false\" [focusAutoCapture]=\"true\">\n <fd-popover-control tabindex=\"-1\" (click)=\"outletItem.element.focus()\">\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 <fd-popover\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n *fdAvatarGroupInternalOverflowButton=\"avatarGroupHostComponent._hiddenItems(); let hiddenItems\"\n >\n <fd-popover-control tabindex=\"-1\">\n <ng-template\n [ngTemplateOutlet]=\"overflowButtonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </fd-popover-control>\n <ng-template fdPopoverBody>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </ng-template>\n </fd-popover>\n </fd-avatar-group-host>\n} @else {\n <fd-popover [noArrow]=\"false\" [focusAutoCapture]=\"true\" fdkResizeObserver (resized)=\"_detectChanges()\">\n <fd-popover-control>\n <fd-avatar-group-host\n #avatarGroupHostComponent\n [type]=\"type\"\n [size]=\"size\"\n [orientation]=\"orientation\"\n [fdkFocusableItem]=\"true\"\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 }\"\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\">\n +{{ hiddenItems.length }}\n </fd-avatar-group-overflow-button>\n }\n</ng-template>\n<ng-template #avatarGroupOverflowBodyTemplate let-hiddenItems>\n @if (_avatarGroupPopoverBody) {\n <ng-template\n [ngTemplateOutlet]=\"_avatarGroupPopoverBody._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-default-avatar-group-overflow-body [avatars]=\"hiddenItems\" [overflowPopoverTitle]=\"overflowPopoverTitle\" />\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,10 +1,7 @@
1
- import { __decorate, __metadata } from 'tslib';
2
1
  import * as i0 from '@angular/core';
3
- import { input, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, InjectionToken, booleanAttribute, viewChild, HostBinding, Directive, NgModule } from '@angular/core';
4
- import { applyCssClass } from '@fundamental-ngx/cdk/utils';
2
+ import { input, booleanAttribute, computed, ChangeDetectionStrategy, ViewEncapsulation, Component, InjectionToken, viewChild, Directive, NgModule } from '@angular/core';
5
3
  import * as i1 from '@fundamental-ngx/core/content-density';
6
4
  import { contentDensityObserverProviders, ContentDensityMode } from '@fundamental-ngx/core/content-density';
7
- import { Subscription } from 'rxjs';
8
5
  import { BaseButton, ButtonComponent } from '@fundamental-ngx/core/button';
9
6
 
10
7
  /**
@@ -17,65 +14,58 @@ class BarComponent {
17
14
  constructor(elementRef, _contentDensityObserver) {
18
15
  this.elementRef = elementRef;
19
16
  this._contentDensityObserver = _contentDensityObserver;
17
+ /** Whether the Bar component is used as a header, subheader, header-with-subheader,
18
+ * footer or floating-footer.
19
+ * Types available: 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer' */
20
+ this.barDesign = input(...(ngDevMode ? [undefined, { debugName: "barDesign" }] : []));
21
+ /** Whether the Bar component is used in Page Layout. */
22
+ this.inPage = input(false, { ...(ngDevMode ? { debugName: "inPage" } : {}), transform: booleanAttribute });
23
+ /** Whether the Bar component is used in Home Page Layout. */
24
+ this.inHomePage = input(false, { ...(ngDevMode ? { debugName: "inHomePage" } : {}), transform: booleanAttribute });
25
+ /** Whether the Bar component should remove the box-shadow on the bottom. */
26
+ this.clear = input(false, { ...(ngDevMode ? { debugName: "clear" } : {}), transform: booleanAttribute });
20
27
  /** The size of the Page in Page responsive design.
21
28
  * Available sizes: 's' | 'm_l' | 'xl'
22
29
  */
23
- this.size = '';
30
+ this.size = input('', ...(ngDevMode ? [{ debugName: "size" }] : []));
24
31
  /** Whether this bar is to be used for the search results initial suggestion title. */
25
- this.initialSuggestionTitle = false;
32
+ this.initialSuggestionTitle = input(false, { ...(ngDevMode ? { debugName: "initialSuggestionTitle" } : {}), transform: booleanAttribute });
26
33
  /** Whether this bar is to be used for the search results initial suggestion subline. */
27
- this.initialSuggestionSubline = false;
34
+ this.initialSuggestionSubline = input(false, { ...(ngDevMode ? { debugName: "initialSuggestionSubline" } : {}), transform: booleanAttribute });
28
35
  /** Aria role for the Bar
29
36
  * default is toolbar
30
37
  */
31
38
  this.role = input('toolbar', ...(ngDevMode ? [{ debugName: "role" }] : []));
32
39
  /** @hidden */
33
- this._subscriptions = new Subscription();
40
+ this.cssClass = computed(() => {
41
+ const barDesign = this.barDesign();
42
+ const inPage = this.inPage();
43
+ const inHomePage = this.inHomePage();
44
+ const size = this.size();
45
+ return [
46
+ 'fd-bar',
47
+ this._contentDensityObserver.isCompactSignal() || this._contentDensityObserver.isCondensedSignal()
48
+ ? ''
49
+ : 'fd-bar--cozy', // TODO: fix in styles
50
+ barDesign && `fd-bar--${barDesign}`,
51
+ inPage && `fd-bar--page${size ? `-${size}` : ''}`,
52
+ inHomePage && `fd-bar--home-page${size ? `-${size}` : ''}`,
53
+ this.clear() && 'fd-bar--clear',
54
+ this.initialSuggestionTitle() && 'fd-bar--initial-suggestion-title',
55
+ this.initialSuggestionSubline() && 'fd-bar--initial-suggestion-subline'
56
+ ]
57
+ .filter(Boolean)
58
+ .join(' ');
59
+ }, ...(ngDevMode ? [{ debugName: "cssClass" }] : []));
34
60
  this._contentDensityObserver.subscribe();
35
61
  }
36
- /** @hidden
37
- * CssClassBuilder interface implementation
38
- * function must return single string
39
- * function is responsible for order which css classes are applied
40
- */
41
- buildComponentCssClass() {
42
- return [
43
- 'fd-bar',
44
- this._contentDensityObserver.isCompact || this._contentDensityObserver.isCondensed ? '' : 'fd-bar--cozy', // TODO: fix in styles
45
- this.barDesign ? `fd-bar--${this.barDesign}` : '',
46
- this.inPage && !this.size ? 'fd-bar--page' : '',
47
- this.inPage && this.size ? `fd-bar--page-${this.size}` : '',
48
- this.inHomePage && !this.size ? 'fd-bar--home-page' : '',
49
- this.inHomePage && this.size ? `fd-bar--home-page-${this.size}` : '',
50
- this.clear ? 'fd-bar--clear' : '',
51
- this.class
52
- ];
53
- }
54
- /** @hidden */
55
- ngOnInit() {
56
- this.buildComponentCssClass();
57
- }
58
- /** @hidden */
59
- ngOnDestroy() {
60
- this._subscriptions.unsubscribe();
61
- }
62
- /** @hidden */
63
- ngOnChanges() {
64
- this.buildComponentCssClass();
65
- }
66
62
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BarComponent, deps: [{ token: i0.ElementRef }, { token: i1.ContentDensityObserver }], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.0", type: BarComponent, isStandalone: true, selector: "[fd-bar]", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: false, isRequired: false, transformFunction: null }, barDesign: { classPropertyName: "barDesign", publicName: "barDesign", isSignal: false, isRequired: false, transformFunction: null }, inPage: { classPropertyName: "inPage", publicName: "inPage", isSignal: false, isRequired: false, transformFunction: null }, inHomePage: { classPropertyName: "inHomePage", publicName: "inHomePage", isSignal: false, isRequired: false, transformFunction: null }, clear: { classPropertyName: "clear", publicName: "clear", isSignal: false, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, initialSuggestionTitle: { classPropertyName: "initialSuggestionTitle", publicName: "initialSuggestionTitle", isSignal: false, isRequired: false, transformFunction: null }, initialSuggestionSubline: { classPropertyName: "initialSuggestionSubline", publicName: "initialSuggestionSubline", isSignal: false, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "role()", "class.fd-bar--initial-suggestion-title": "initialSuggestionTitle", "class.fd-bar--initial-suggestion-subline": "initialSuggestionSubline" } }, providers: [
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.0", type: BarComponent, isStandalone: true, selector: "[fd-bar]", inputs: { barDesign: { classPropertyName: "barDesign", publicName: "barDesign", isSignal: true, isRequired: false, transformFunction: null }, inPage: { classPropertyName: "inPage", publicName: "inPage", isSignal: true, isRequired: false, transformFunction: null }, inHomePage: { classPropertyName: "inHomePage", publicName: "inHomePage", isSignal: true, isRequired: false, transformFunction: null }, clear: { classPropertyName: "clear", publicName: "clear", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, initialSuggestionTitle: { classPropertyName: "initialSuggestionTitle", publicName: "initialSuggestionTitle", isSignal: true, isRequired: false, transformFunction: null }, initialSuggestionSubline: { classPropertyName: "initialSuggestionSubline", publicName: "initialSuggestionSubline", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "role()", "class": "cssClass()" } }, providers: [
68
64
  contentDensityObserverProviders({
69
65
  defaultContentDensity: ContentDensityMode.COMPACT
70
66
  })
71
- ], usesOnChanges: true, ngImport: i0, template: "<ng-content select=\"[fd-bar-left]\"></ng-content>\n<ng-content select=\"[fd-bar-middle]\"></ng-content>\n<ng-content select=\"[fd-bar-right]\"></ng-content>\n<ng-content></ng-content>\n", styles: [".fd-bar{--fdBar_Z_Index:1;--fdBar_Height:2.75rem;--fdBar_Padding_X:1rem;--fdBar_Padding_Top:0;--fdBar_Padding_Bottom:0;--fdBar_Border_Radius:0;--fdBar_Floating_Footer_Offset_X:.5rem;--fdBar_Floating_Footer_Offset_Y:.5rem;--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;gap:.5rem;-webkit-box-pack:justify;-ms-flex-pack:justify;background:var(--fdBar_Background);border-radius:var(--fdBar_Border_Radius);-webkit-box-shadow:var(--fdBar_Shadow);box-shadow:var(--fdBar_Shadow);justify-content:space-between;min-height:var(--fdBar_Height);padding-block:var(--fdBar_Padding_Top) var(--fdBar_Padding_Bottom);padding-inline:var(--fdBar_Padding_X);z-index:var(--fdBar_Z_Index)}.fd-bar:after,.fd-bar:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar .fd-bar__header{color:var(--sapPageHeader_TextColor);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontHeader5Size)}.fd-bar__left,.fd-bar__middle,.fd-bar__right{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;max-width:100%;width:100%}.fd-bar__left:after,.fd-bar__left:before,.fd-bar__middle:after,.fd-bar__middle:before,.fd-bar__right:after,.fd-bar__right:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar__left--stack-contents-vertically,.fd-bar__middle--stack-contents-vertically,.fd-bar__right--stack-contents-vertically{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-bar__middle{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.fd-bar__right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-bar__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--fdBar_Element_Text_Color,var(--sapTextColor));font-family:var(--fdBar_Element_Text_Font_Family,var(--sapFontFamily));font-size:var(--fdBar_Element_Text_Font_Size,var(--sapFontSize));max-height:100%;max-width:100%;text-wrap:auto}.fd-bar__element:after,.fd-bar__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar__element--full-width{width:100%}.fd-bar__element--full-width>:first-child{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}@media(width<=599px){.fd-bar--responsive-paddings{padding-inline:1rem}}@media(width>=600px)and (width<=1023px){.fd-bar--responsive-paddings{padding-inline:2rem}}@media(width>=1024px)and (width<=1439px){.fd-bar--responsive-paddings{padding-inline:2rem}}@media(width>=1440px){.fd-bar--responsive-paddings{padding-inline:3rem}}.fd-bar--header{--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background);--fdBar_Element_Text_Color:var(sapPageHeader_TextColor);--fdBar_Element_Text_Font_Family:var(--sapFontHeaderFamily);--fdBar_Element_Text_Font_Size:var(--sapFontHeader5Size)}.fd-bar--header:has(+.fd-bar--subheader){--fdBar_Shadow:none}.fd-bar--subheader{--fdBar_Height:3rem;--fdBar_Padding_Bottom:.25rem;--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background)}.fd-bar--header-with-subheader{--fdBar_Z_Index:2;--fdBar_Shadow:none;--fdBar_Background:var(--sapPageHeader_Background);position:relative}.fd-bar--footer{--fdBar_Shadow:none;--fdBar_Background:var(--sapPageFooter_Background);--fdBar_Element_Text_Color:var(--sapPageFooter_TextColor);border-top:var(--sapGroup_TitleBorderWidth) solid var(--sapPageFooter_BorderColor)}.fd-bar--floating-footer{--fdBar_Shadow:var(--sapContent_Shadow1);--fdBar_Z_Index:map.get($fd-z-index-levels,\"top\");--fdBar_Background:var(--sapPageFooter_Background);--fdBar_Element_Text_Color:var(--sapPageFooter_TextColor);--fdBar_Border_Radius:var(--sapElement_BorderCornerRadius);bottom:var(--fdBar_Floating_Footer_Offset_Y);left:var(--fdBar_Floating_Footer_Offset_X);opacity:1;position:absolute;right:var(--fdBar_Floating_Footer_Offset_X)}.fd-bar--growing{--fdBar_Height:auto;--fdBar_Padding_Top:.25rem;--fdBar_Padding_Bottom:.25rem;min-height:2.5rem}.fd-bar--growing.fd-bar--header{--fdBar_Padding_Top:.375rem}.fd-bar--home-page,.fd-bar--page{--fdBar_Padding_X:1rem}.fd-bar--home-page.fd-bar--floating-footer,.fd-bar--page.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--page-s,.fd-bar--page-sm{--fdBar_Padding_X:1rem}.fd-bar--page-s.fd-bar--floating-footer,.fd-bar--page-sm.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--home-page-s,.fd-bar--home-page-sm{--fdBar_Padding_X:.5rem}.fd-bar--home-page-s.fd-bar--floating-footer,.fd-bar--home-page-sm.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--home-page-m_l,.fd-bar--home-page-md_lg,.fd-bar--page-m_l,.fd-bar--page-md_lg{--fdBar_Padding_X:2rem}.fd-bar--home-page-m_l.fd-bar--floating-footer,.fd-bar--home-page-md_lg.fd-bar--floating-footer,.fd-bar--page-m_l.fd-bar--floating-footer,.fd-bar--page-md_lg.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:2rem}.fd-bar--home-page-xl,.fd-bar--page-xl{--fdBar_Padding_X:3rem}.fd-bar--home-page-xl.fd-bar--floating-footer,.fd-bar--page-xl.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:3rem}.fd-bar--initial-suggestion-subline,.fd-bar--initial-suggestion-title{height:auto}.fd-bar--initial-suggestion-title{-webkit-padding-before:.5rem;padding-block-start:.5rem}.fd-bar--initial-suggestion-subline{--fdBar_Padding_Bottom:.5rem;-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-bar[class*=-compact],.fd-bar[class*=-condensed],[class*=-compact] .fd-bar:not([class*=-cozy]),[class*=-condensed] .fd-bar:not([class*=-cozy]){--fdBar_Height:2.5rem}.fd-bar[class*=-compact].fd-bar--subheader,.fd-bar[class*=-condensed].fd-bar--subheader,[class*=-compact] .fd-bar:not([class*=-cozy]).fd-bar--subheader,[class*=-condensed] .fd-bar:not([class*=-cozy]).fd-bar--subheader{--fdBar_Height:2.25rem}.fd-bar__left:has(.fd-bar__element>*:is(:empty,[style*=\"display: none\"])){gap:0}.fd-bar--clear{--fdBar_Shadow: none}\n/*! Bundled license information:\n\nfundamental-styles/dist/bar.css:\n (*!\n * Fundamental Library Styles v0.41.1\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
67
+ ], ngImport: i0, template: "<ng-content select=\"[fd-bar-left]\"></ng-content>\n<ng-content select=\"[fd-bar-middle]\"></ng-content>\n<ng-content select=\"[fd-bar-right]\"></ng-content>\n<ng-content></ng-content>\n", styles: [".fd-bar{--fdBar_Z_Index:1;--fdBar_Height:2.75rem;--fdBar_Padding_X:1rem;--fdBar_Padding_Top:0;--fdBar_Padding_Bottom:0;--fdBar_Border_Radius:0;--fdBar_Floating_Footer_Offset_X:.5rem;--fdBar_Floating_Footer_Offset_Y:.5rem;--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;gap:.5rem;-webkit-box-pack:justify;-ms-flex-pack:justify;background:var(--fdBar_Background);border-radius:var(--fdBar_Border_Radius);-webkit-box-shadow:var(--fdBar_Shadow);box-shadow:var(--fdBar_Shadow);justify-content:space-between;min-height:var(--fdBar_Height);padding-block:var(--fdBar_Padding_Top) var(--fdBar_Padding_Bottom);padding-inline:var(--fdBar_Padding_X);z-index:var(--fdBar_Z_Index)}.fd-bar:after,.fd-bar:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar .fd-bar__header{color:var(--sapPageHeader_TextColor);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontHeader5Size)}.fd-bar__left,.fd-bar__middle,.fd-bar__right{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;max-width:100%;width:100%}.fd-bar__left:after,.fd-bar__left:before,.fd-bar__middle:after,.fd-bar__middle:before,.fd-bar__right:after,.fd-bar__right:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar__left--stack-contents-vertically,.fd-bar__middle--stack-contents-vertically,.fd-bar__right--stack-contents-vertically{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-bar__middle{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.fd-bar__right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-bar__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--fdBar_Element_Text_Color,var(--sapTextColor));font-family:var(--fdBar_Element_Text_Font_Family,var(--sapFontFamily));font-size:var(--fdBar_Element_Text_Font_Size,var(--sapFontSize));max-height:100%;max-width:100%;text-wrap:auto}.fd-bar__element:after,.fd-bar__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar__element--full-width{width:100%}.fd-bar__element--full-width>:first-child{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}@media(width<=599px){.fd-bar--responsive-paddings{padding-inline:1rem}}@media(width>=600px)and (width<=1023px){.fd-bar--responsive-paddings{padding-inline:2rem}}@media(width>=1024px)and (width<=1439px){.fd-bar--responsive-paddings{padding-inline:2rem}}@media(width>=1440px){.fd-bar--responsive-paddings{padding-inline:3rem}}.fd-bar--header{--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background);--fdBar_Element_Text_Color:var(sapPageHeader_TextColor);--fdBar_Element_Text_Font_Family:var(--sapFontHeaderFamily);--fdBar_Element_Text_Font_Size:var(--sapFontHeader5Size)}.fd-bar--header:has(+.fd-bar--subheader){--fdBar_Shadow:none}.fd-bar--subheader{--fdBar_Height:3rem;--fdBar_Padding_Bottom:.25rem;--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background)}.fd-bar--header-with-subheader{--fdBar_Z_Index:2;--fdBar_Shadow:none;--fdBar_Background:var(--sapPageHeader_Background);position:relative}.fd-bar--footer{--fdBar_Shadow:none;--fdBar_Background:var(--sapPageFooter_Background);--fdBar_Element_Text_Color:var(--sapPageFooter_TextColor);border-top:var(--sapGroup_TitleBorderWidth) solid var(--sapPageFooter_BorderColor)}.fd-bar--floating-footer{--fdBar_Shadow:var(--sapContent_Shadow1);--fdBar_Z_Index:map.get($fd-z-index-levels,\"top\");--fdBar_Background:var(--sapPageFooter_Background);--fdBar_Element_Text_Color:var(--sapPageFooter_TextColor);--fdBar_Border_Radius:var(--sapElement_BorderCornerRadius);bottom:var(--fdBar_Floating_Footer_Offset_Y);left:var(--fdBar_Floating_Footer_Offset_X);opacity:1;position:absolute;right:var(--fdBar_Floating_Footer_Offset_X)}.fd-bar--growing{--fdBar_Height:auto;--fdBar_Padding_Top:.25rem;--fdBar_Padding_Bottom:.25rem;min-height:2.5rem}.fd-bar--growing.fd-bar--header{--fdBar_Padding_Top:.375rem}.fd-bar--home-page,.fd-bar--page{--fdBar_Padding_X:1rem}.fd-bar--home-page.fd-bar--floating-footer,.fd-bar--page.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--page-s,.fd-bar--page-sm{--fdBar_Padding_X:1rem}.fd-bar--page-s.fd-bar--floating-footer,.fd-bar--page-sm.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--home-page-s,.fd-bar--home-page-sm{--fdBar_Padding_X:.5rem}.fd-bar--home-page-s.fd-bar--floating-footer,.fd-bar--home-page-sm.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--home-page-m_l,.fd-bar--home-page-md_lg,.fd-bar--page-m_l,.fd-bar--page-md_lg{--fdBar_Padding_X:2rem}.fd-bar--home-page-m_l.fd-bar--floating-footer,.fd-bar--home-page-md_lg.fd-bar--floating-footer,.fd-bar--page-m_l.fd-bar--floating-footer,.fd-bar--page-md_lg.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:2rem}.fd-bar--home-page-xl,.fd-bar--page-xl{--fdBar_Padding_X:3rem}.fd-bar--home-page-xl.fd-bar--floating-footer,.fd-bar--page-xl.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:3rem}.fd-bar--initial-suggestion-subline,.fd-bar--initial-suggestion-title{height:auto}.fd-bar--initial-suggestion-title{-webkit-padding-before:.5rem;padding-block-start:.5rem}.fd-bar--initial-suggestion-subline{--fdBar_Padding_Bottom:.5rem;-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-bar[class*=-compact],.fd-bar[class*=-condensed],[class*=-compact] .fd-bar:not([class*=-cozy]),[class*=-condensed] .fd-bar:not([class*=-cozy]){--fdBar_Height:2.5rem}.fd-bar[class*=-compact].fd-bar--subheader,.fd-bar[class*=-condensed].fd-bar--subheader,[class*=-compact] .fd-bar:not([class*=-cozy]).fd-bar--subheader,[class*=-condensed] .fd-bar:not([class*=-cozy]).fd-bar--subheader{--fdBar_Height:2.25rem}.fd-bar__left:has(.fd-bar__element>*:is(:empty,[style*=\"display: none\"])){gap:0}.fd-bar--clear{--fdBar_Shadow: none}\n/*! Bundled license information:\n\nfundamental-styles/dist/bar.css:\n (*!\n * Fundamental Library Styles v0.41.1\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
72
68
  }
73
- __decorate([
74
- applyCssClass,
75
- __metadata("design:type", Function),
76
- __metadata("design:paramtypes", []),
77
- __metadata("design:returntype", Array)
78
- ], BarComponent.prototype, "buildComponentCssClass", null);
79
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BarComponent, decorators: [{
80
70
  type: Component,
81
71
  args: [{ selector: '[fd-bar]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
@@ -84,26 +74,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
84
74
  })
85
75
  ], host: {
86
76
  '[attr.role]': 'role()',
87
- '[class.fd-bar--initial-suggestion-title]': 'initialSuggestionTitle',
88
- '[class.fd-bar--initial-suggestion-subline]': 'initialSuggestionSubline'
89
- }, standalone: true, template: "<ng-content select=\"[fd-bar-left]\"></ng-content>\n<ng-content select=\"[fd-bar-middle]\"></ng-content>\n<ng-content select=\"[fd-bar-right]\"></ng-content>\n<ng-content></ng-content>\n", styles: [".fd-bar{--fdBar_Z_Index:1;--fdBar_Height:2.75rem;--fdBar_Padding_X:1rem;--fdBar_Padding_Top:0;--fdBar_Padding_Bottom:0;--fdBar_Border_Radius:0;--fdBar_Floating_Footer_Offset_X:.5rem;--fdBar_Floating_Footer_Offset_Y:.5rem;--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;gap:.5rem;-webkit-box-pack:justify;-ms-flex-pack:justify;background:var(--fdBar_Background);border-radius:var(--fdBar_Border_Radius);-webkit-box-shadow:var(--fdBar_Shadow);box-shadow:var(--fdBar_Shadow);justify-content:space-between;min-height:var(--fdBar_Height);padding-block:var(--fdBar_Padding_Top) var(--fdBar_Padding_Bottom);padding-inline:var(--fdBar_Padding_X);z-index:var(--fdBar_Z_Index)}.fd-bar:after,.fd-bar:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar .fd-bar__header{color:var(--sapPageHeader_TextColor);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontHeader5Size)}.fd-bar__left,.fd-bar__middle,.fd-bar__right{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;max-width:100%;width:100%}.fd-bar__left:after,.fd-bar__left:before,.fd-bar__middle:after,.fd-bar__middle:before,.fd-bar__right:after,.fd-bar__right:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar__left--stack-contents-vertically,.fd-bar__middle--stack-contents-vertically,.fd-bar__right--stack-contents-vertically{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-bar__middle{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.fd-bar__right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-bar__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--fdBar_Element_Text_Color,var(--sapTextColor));font-family:var(--fdBar_Element_Text_Font_Family,var(--sapFontFamily));font-size:var(--fdBar_Element_Text_Font_Size,var(--sapFontSize));max-height:100%;max-width:100%;text-wrap:auto}.fd-bar__element:after,.fd-bar__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar__element--full-width{width:100%}.fd-bar__element--full-width>:first-child{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}@media(width<=599px){.fd-bar--responsive-paddings{padding-inline:1rem}}@media(width>=600px)and (width<=1023px){.fd-bar--responsive-paddings{padding-inline:2rem}}@media(width>=1024px)and (width<=1439px){.fd-bar--responsive-paddings{padding-inline:2rem}}@media(width>=1440px){.fd-bar--responsive-paddings{padding-inline:3rem}}.fd-bar--header{--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background);--fdBar_Element_Text_Color:var(sapPageHeader_TextColor);--fdBar_Element_Text_Font_Family:var(--sapFontHeaderFamily);--fdBar_Element_Text_Font_Size:var(--sapFontHeader5Size)}.fd-bar--header:has(+.fd-bar--subheader){--fdBar_Shadow:none}.fd-bar--subheader{--fdBar_Height:3rem;--fdBar_Padding_Bottom:.25rem;--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background)}.fd-bar--header-with-subheader{--fdBar_Z_Index:2;--fdBar_Shadow:none;--fdBar_Background:var(--sapPageHeader_Background);position:relative}.fd-bar--footer{--fdBar_Shadow:none;--fdBar_Background:var(--sapPageFooter_Background);--fdBar_Element_Text_Color:var(--sapPageFooter_TextColor);border-top:var(--sapGroup_TitleBorderWidth) solid var(--sapPageFooter_BorderColor)}.fd-bar--floating-footer{--fdBar_Shadow:var(--sapContent_Shadow1);--fdBar_Z_Index:map.get($fd-z-index-levels,\"top\");--fdBar_Background:var(--sapPageFooter_Background);--fdBar_Element_Text_Color:var(--sapPageFooter_TextColor);--fdBar_Border_Radius:var(--sapElement_BorderCornerRadius);bottom:var(--fdBar_Floating_Footer_Offset_Y);left:var(--fdBar_Floating_Footer_Offset_X);opacity:1;position:absolute;right:var(--fdBar_Floating_Footer_Offset_X)}.fd-bar--growing{--fdBar_Height:auto;--fdBar_Padding_Top:.25rem;--fdBar_Padding_Bottom:.25rem;min-height:2.5rem}.fd-bar--growing.fd-bar--header{--fdBar_Padding_Top:.375rem}.fd-bar--home-page,.fd-bar--page{--fdBar_Padding_X:1rem}.fd-bar--home-page.fd-bar--floating-footer,.fd-bar--page.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--page-s,.fd-bar--page-sm{--fdBar_Padding_X:1rem}.fd-bar--page-s.fd-bar--floating-footer,.fd-bar--page-sm.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--home-page-s,.fd-bar--home-page-sm{--fdBar_Padding_X:.5rem}.fd-bar--home-page-s.fd-bar--floating-footer,.fd-bar--home-page-sm.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--home-page-m_l,.fd-bar--home-page-md_lg,.fd-bar--page-m_l,.fd-bar--page-md_lg{--fdBar_Padding_X:2rem}.fd-bar--home-page-m_l.fd-bar--floating-footer,.fd-bar--home-page-md_lg.fd-bar--floating-footer,.fd-bar--page-m_l.fd-bar--floating-footer,.fd-bar--page-md_lg.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:2rem}.fd-bar--home-page-xl,.fd-bar--page-xl{--fdBar_Padding_X:3rem}.fd-bar--home-page-xl.fd-bar--floating-footer,.fd-bar--page-xl.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:3rem}.fd-bar--initial-suggestion-subline,.fd-bar--initial-suggestion-title{height:auto}.fd-bar--initial-suggestion-title{-webkit-padding-before:.5rem;padding-block-start:.5rem}.fd-bar--initial-suggestion-subline{--fdBar_Padding_Bottom:.5rem;-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-bar[class*=-compact],.fd-bar[class*=-condensed],[class*=-compact] .fd-bar:not([class*=-cozy]),[class*=-condensed] .fd-bar:not([class*=-cozy]){--fdBar_Height:2.5rem}.fd-bar[class*=-compact].fd-bar--subheader,.fd-bar[class*=-condensed].fd-bar--subheader,[class*=-compact] .fd-bar:not([class*=-cozy]).fd-bar--subheader,[class*=-condensed] .fd-bar:not([class*=-cozy]).fd-bar--subheader{--fdBar_Height:2.25rem}.fd-bar__left:has(.fd-bar__element>*:is(:empty,[style*=\"display: none\"])){gap:0}.fd-bar--clear{--fdBar_Shadow: none}\n/*! Bundled license information:\n\nfundamental-styles/dist/bar.css:\n (*!\n * Fundamental Library Styles v0.41.1\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
90
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ContentDensityObserver }], propDecorators: { class: [{
91
- type: Input
92
- }], barDesign: [{
93
- type: Input
94
- }], inPage: [{
95
- type: Input
96
- }], inHomePage: [{
97
- type: Input
98
- }], clear: [{
99
- type: Input
100
- }], size: [{
101
- type: Input
102
- }], initialSuggestionTitle: [{
103
- type: Input
104
- }], initialSuggestionSubline: [{
105
- type: Input
106
- }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], buildComponentCssClass: [] } });
77
+ '[class]': 'cssClass()'
78
+ }, template: "<ng-content select=\"[fd-bar-left]\"></ng-content>\n<ng-content select=\"[fd-bar-middle]\"></ng-content>\n<ng-content select=\"[fd-bar-right]\"></ng-content>\n<ng-content></ng-content>\n", styles: [".fd-bar{--fdBar_Z_Index:1;--fdBar_Height:2.75rem;--fdBar_Padding_X:1rem;--fdBar_Padding_Top:0;--fdBar_Padding_Bottom:0;--fdBar_Border_Radius:0;--fdBar_Floating_Footer_Offset_X:.5rem;--fdBar_Floating_Footer_Offset_Y:.5rem;--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background);border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;gap:.5rem;-webkit-box-pack:justify;-ms-flex-pack:justify;background:var(--fdBar_Background);border-radius:var(--fdBar_Border_Radius);-webkit-box-shadow:var(--fdBar_Shadow);box-shadow:var(--fdBar_Shadow);justify-content:space-between;min-height:var(--fdBar_Height);padding-block:var(--fdBar_Padding_Top) var(--fdBar_Padding_Bottom);padding-inline:var(--fdBar_Padding_X);z-index:var(--fdBar_Z_Index)}.fd-bar:after,.fd-bar:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar .fd-bar__header{color:var(--sapPageHeader_TextColor);font-family:var(--sapFontHeaderFamily);font-size:var(--sapFontHeader5Size)}.fd-bar__left,.fd-bar__middle,.fd-bar__right{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;max-width:100%;width:100%}.fd-bar__left:after,.fd-bar__left:before,.fd-bar__middle:after,.fd-bar__middle:before,.fd-bar__right:after,.fd-bar__right:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar__left--stack-contents-vertically,.fd-bar__middle--stack-contents-vertically,.fd-bar__right--stack-contents-vertically{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-bar__middle{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.fd-bar__right{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.fd-bar__element{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:var(--fdBar_Element_Text_Color,var(--sapTextColor));font-family:var(--fdBar_Element_Text_Font_Family,var(--sapFontFamily));font-size:var(--fdBar_Element_Text_Font_Size,var(--sapFontSize));max-height:100%;max-width:100%;text-wrap:auto}.fd-bar__element:after,.fd-bar__element:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-bar__element--full-width{width:100%}.fd-bar__element--full-width>:first-child{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}@media(width<=599px){.fd-bar--responsive-paddings{padding-inline:1rem}}@media(width>=600px)and (width<=1023px){.fd-bar--responsive-paddings{padding-inline:2rem}}@media(width>=1024px)and (width<=1439px){.fd-bar--responsive-paddings{padding-inline:2rem}}@media(width>=1440px){.fd-bar--responsive-paddings{padding-inline:3rem}}.fd-bar--header{--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background);--fdBar_Element_Text_Color:var(sapPageHeader_TextColor);--fdBar_Element_Text_Font_Family:var(--sapFontHeaderFamily);--fdBar_Element_Text_Font_Size:var(--sapFontHeader5Size)}.fd-bar--header:has(+.fd-bar--subheader){--fdBar_Shadow:none}.fd-bar--subheader{--fdBar_Height:3rem;--fdBar_Padding_Bottom:.25rem;--fdBar_Shadow:var(--sapContent_HeaderShadow);--fdBar_Background:var(--sapPageHeader_Background)}.fd-bar--header-with-subheader{--fdBar_Z_Index:2;--fdBar_Shadow:none;--fdBar_Background:var(--sapPageHeader_Background);position:relative}.fd-bar--footer{--fdBar_Shadow:none;--fdBar_Background:var(--sapPageFooter_Background);--fdBar_Element_Text_Color:var(--sapPageFooter_TextColor);border-top:var(--sapGroup_TitleBorderWidth) solid var(--sapPageFooter_BorderColor)}.fd-bar--floating-footer{--fdBar_Shadow:var(--sapContent_Shadow1);--fdBar_Z_Index:map.get($fd-z-index-levels,\"top\");--fdBar_Background:var(--sapPageFooter_Background);--fdBar_Element_Text_Color:var(--sapPageFooter_TextColor);--fdBar_Border_Radius:var(--sapElement_BorderCornerRadius);bottom:var(--fdBar_Floating_Footer_Offset_Y);left:var(--fdBar_Floating_Footer_Offset_X);opacity:1;position:absolute;right:var(--fdBar_Floating_Footer_Offset_X)}.fd-bar--growing{--fdBar_Height:auto;--fdBar_Padding_Top:.25rem;--fdBar_Padding_Bottom:.25rem;min-height:2.5rem}.fd-bar--growing.fd-bar--header{--fdBar_Padding_Top:.375rem}.fd-bar--home-page,.fd-bar--page{--fdBar_Padding_X:1rem}.fd-bar--home-page.fd-bar--floating-footer,.fd-bar--page.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--page-s,.fd-bar--page-sm{--fdBar_Padding_X:1rem}.fd-bar--page-s.fd-bar--floating-footer,.fd-bar--page-sm.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--home-page-s,.fd-bar--home-page-sm{--fdBar_Padding_X:.5rem}.fd-bar--home-page-s.fd-bar--floating-footer,.fd-bar--home-page-sm.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:1rem}.fd-bar--home-page-m_l,.fd-bar--home-page-md_lg,.fd-bar--page-m_l,.fd-bar--page-md_lg{--fdBar_Padding_X:2rem}.fd-bar--home-page-m_l.fd-bar--floating-footer,.fd-bar--home-page-md_lg.fd-bar--floating-footer,.fd-bar--page-m_l.fd-bar--floating-footer,.fd-bar--page-md_lg.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:2rem}.fd-bar--home-page-xl,.fd-bar--page-xl{--fdBar_Padding_X:3rem}.fd-bar--home-page-xl.fd-bar--floating-footer,.fd-bar--page-xl.fd-bar--floating-footer{--fdBar_Padding_X:.5rem;--fdBar_Floating_Footer_Offset_X:3rem}.fd-bar--initial-suggestion-subline,.fd-bar--initial-suggestion-title{height:auto}.fd-bar--initial-suggestion-title{-webkit-padding-before:.5rem;padding-block-start:.5rem}.fd-bar--initial-suggestion-subline{--fdBar_Padding_Bottom:.5rem;-webkit-padding-before:.25rem;padding-block-start:.25rem}.fd-bar[class*=-compact],.fd-bar[class*=-condensed],[class*=-compact] .fd-bar:not([class*=-cozy]),[class*=-condensed] .fd-bar:not([class*=-cozy]){--fdBar_Height:2.5rem}.fd-bar[class*=-compact].fd-bar--subheader,.fd-bar[class*=-condensed].fd-bar--subheader,[class*=-compact] .fd-bar:not([class*=-cozy]).fd-bar--subheader,[class*=-condensed] .fd-bar:not([class*=-cozy]).fd-bar--subheader{--fdBar_Height:2.25rem}.fd-bar__left:has(.fd-bar__element>*:is(:empty,[style*=\"display: none\"])){gap:0}.fd-bar--clear{--fdBar_Shadow: none}\n/*! Bundled license information:\n\nfundamental-styles/dist/bar.css:\n (*!\n * Fundamental Library Styles v0.41.1\n * Copyright (c) 2026 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
79
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ContentDensityObserver }], propDecorators: { barDesign: [{ type: i0.Input, args: [{ isSignal: true, alias: "barDesign", required: false }] }], inPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "inPage", required: false }] }], inHomePage: [{ type: i0.Input, args: [{ isSignal: true, alias: "inHomePage", required: false }] }], clear: [{ type: i0.Input, args: [{ isSignal: true, alias: "clear", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], initialSuggestionTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialSuggestionTitle", required: false }] }], initialSuggestionSubline: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialSuggestionSubline", required: false }] }], role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }] } });
107
80
 
108
81
  const FD_BUTTON_BAR_COMPONENT = new InjectionToken('FdButtonBarComponent');
109
82
 
@@ -194,29 +167,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
194
167
  class BarElementDirective {
195
168
  constructor() {
196
169
  /** Whether the element should take the whole width of the container. */
197
- this.fullWidth = false;
198
- /** @hidden */
199
- this.barElement = true;
170
+ this.fullWidth = input(false, { ...(ngDevMode ? { debugName: "fullWidth" } : {}), transform: booleanAttribute });
200
171
  }
201
172
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BarElementDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
202
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: BarElementDirective, isStandalone: true, selector: "fd-bar-element", inputs: { fullWidth: "fullWidth" }, host: { properties: { "class.fd-bar__element--full-width": "this.fullWidth", "class.fd-bar__element": "this.barElement" } }, ngImport: i0 }); }
173
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.0", type: BarElementDirective, isStandalone: true, selector: "fd-bar-element", inputs: { fullWidth: { classPropertyName: "fullWidth", publicName: "fullWidth", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.fd-bar__element--full-width": "fullWidth()" }, classAttribute: "fd-bar__element" }, ngImport: i0 }); }
203
174
  }
204
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BarElementDirective, decorators: [{
205
176
  type: Directive,
206
177
  args: [{
207
178
  // eslint-disable-next-line @angular-eslint/directive-selector
208
179
  selector: 'fd-bar-element',
209
- standalone: true
180
+ host: {
181
+ class: 'fd-bar__element',
182
+ '[class.fd-bar__element--full-width]': 'fullWidth()'
183
+ }
210
184
  }]
211
- }], propDecorators: { fullWidth: [{
212
- type: Input
213
- }, {
214
- type: HostBinding,
215
- args: ['class.fd-bar__element--full-width']
216
- }], barElement: [{
217
- type: HostBinding,
218
- args: ['class.fd-bar__element']
219
- }] } });
185
+ }], propDecorators: { fullWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullWidth", required: false }] }] } });
220
186
 
221
187
  /**
222
188
  * The left side area of the Bar component.