@fundamental-ngx/core 0.53.2-rc.0 → 0.53.2-rc.10

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 (106) hide show
  1. package/esm2022/checkbox/checkbox/checkbox.component.mjs +3 -3
  2. package/esm2022/dynamic-page/dynamic-page-content/dynamic-page-content.component.mjs +2 -2
  3. package/esm2022/multi-input/multi-input.component.mjs +2 -4
  4. package/esm2022/wizard/wizard-content/wizard-content.component.mjs +3 -3
  5. package/fesm2022/fundamental-ngx-core-action-bar.mjs.map +1 -1
  6. package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-core-avatar-group-legacy.mjs.map +1 -1
  8. package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-core-avatar.mjs.map +1 -1
  10. package/fesm2022/fundamental-ngx-core-bar.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
  12. package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
  14. package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
  16. package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-core-checkbox.mjs +2 -2
  18. package/fesm2022/fundamental-ngx-core-checkbox.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
  20. package/fesm2022/fundamental-ngx-core-content-density.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
  22. package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
  24. package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +2 -2
  26. package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs.map +1 -1
  28. package/fesm2022/fundamental-ngx-core-facets.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
  30. package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-core-file-uploader.mjs.map +1 -1
  32. package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs.map +1 -1
  33. package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs.map +1 -1
  34. package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
  35. package/fesm2022/fundamental-ngx-core-formatted-text.mjs.map +1 -1
  36. package/fesm2022/fundamental-ngx-core-generic-tag.mjs.map +1 -1
  37. package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
  38. package/fesm2022/fundamental-ngx-core-icon.mjs.map +1 -1
  39. package/fesm2022/fundamental-ngx-core-illustrated-message.mjs.map +1 -1
  40. package/fesm2022/fundamental-ngx-core-infinite-scroll.mjs.map +1 -1
  41. package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
  42. package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
  44. package/fesm2022/fundamental-ngx-core-layout-grid.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-core-layout-panel.mjs.map +1 -1
  46. package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
  48. package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
  50. package/fesm2022/fundamental-ngx-core-message-page.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
  52. package/fesm2022/fundamental-ngx-core-message-toast.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs.map +1 -1
  54. package/fesm2022/fundamental-ngx-core-mobile-mode.mjs.map +1 -1
  55. package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  56. package/fesm2022/fundamental-ngx-core-multi-input.mjs +1 -3
  57. package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
  58. package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
  59. package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
  60. package/fesm2022/fundamental-ngx-core-object-attribute.mjs.map +1 -1
  61. package/fesm2022/fundamental-ngx-core-object-identifier.mjs.map +1 -1
  62. package/fesm2022/fundamental-ngx-core-object-marker.mjs.map +1 -1
  63. package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
  64. package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
  65. package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
  66. package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
  67. package/fesm2022/fundamental-ngx-core-panel.mjs.map +1 -1
  68. package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
  69. package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
  70. package/fesm2022/fundamental-ngx-core-progress-indicator.mjs.map +1 -1
  71. package/fesm2022/fundamental-ngx-core-quick-view.mjs.map +1 -1
  72. package/fesm2022/fundamental-ngx-core-radio.mjs.map +1 -1
  73. package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
  74. package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
  75. package/fesm2022/fundamental-ngx-core-scroll-spy.mjs.map +1 -1
  76. package/fesm2022/fundamental-ngx-core-scrollbar.mjs.map +1 -1
  77. package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
  78. package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
  79. package/fesm2022/fundamental-ngx-core-shared.mjs.map +1 -1
  80. package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
  81. package/fesm2022/fundamental-ngx-core-side-navigation.mjs.map +1 -1
  82. package/fesm2022/fundamental-ngx-core-skeleton.mjs.map +1 -1
  83. package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
  84. package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
  85. package/fesm2022/fundamental-ngx-core-status-indicator.mjs.map +1 -1
  86. package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
  87. package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
  88. package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
  89. package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
  90. package/fesm2022/fundamental-ngx-core-tests.mjs.map +1 -1
  91. package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
  92. package/fesm2022/fundamental-ngx-core-theming.mjs.map +1 -1
  93. package/fesm2022/fundamental-ngx-core-tile.mjs.map +1 -1
  94. package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
  95. package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
  96. package/fesm2022/fundamental-ngx-core-timeline.mjs.map +1 -1
  97. package/fesm2022/fundamental-ngx-core-title.mjs.map +1 -1
  98. package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
  99. package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
  100. package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
  101. package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  102. package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
  103. package/fesm2022/fundamental-ngx-core-wizard.mjs +2 -2
  104. package/fesm2022/fundamental-ngx-core-wizard.mjs.map +1 -1
  105. package/fesm2022/fundamental-ngx-core.mjs.map +1 -1
  106. package/package.json +4 -4
@@ -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 ]\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 standalone: true,\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\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).resized;\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.fdkFocusableItem = 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 inject\n} from '@angular/core';\nimport { FocusableListDirective, RtlService, elementClick$ } from '@fundamental-ngx/cdk/utils';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { PopoverBodyHeaderDirective } from '@fundamental-ngx/core/popover';\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 BarModule\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 standalone: true,\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 get isRtl(): boolean {\n return !!this._rtlService?.rtl.value;\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 _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]=\"isRtl ? 'navigation-right-arrow' : 'navigation-left-arrow'\"\n fdType=\"transparent\"\n aria-label=\"Back\"\n title=\"Back\"\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 { DialogModule } from '@angular/cdk/dialog';\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 DynamicPortalComponent,\n FocusableItemDirective,\n FocusableListDirective,\n ResizeObserverDirective,\n RtlService\n} from '@fundamental-ngx/cdk/utils';\nimport { PopoverModule } 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 standalone: true,\n providers: [\n {\n provide: AVATAR_GROUP_HOST_CONFIG,\n useExisting: AvatarGroupComponent\n }\n ],\n imports: [\n AvatarGroupHostComponent,\n PopoverModule,\n NgTemplateOutlet,\n FocusableItemDirective,\n DynamicPortalComponent,\n FocusableListDirective,\n DialogModule,\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 _contentDirection$ = computed<Direction>(() => (this._rtlService?.rtlSignal() ? '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 <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"item.details\"></ng-template>\n </fd-popover-body>\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 <fd-popover-body>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </fd-popover-body>\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 <fd-popover-body>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: _avatarRenderers }\"\n ></ng-template>\n </fd-popover-body>\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 { 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@NgModule({\n imports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupOverflowButtonComponent,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowBodyComponent,\n AvatarGroupOverflowBodyDirective\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":["i1","i2"],"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 ]\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 standalone: true,\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\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).resized;\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.fdkFocusableItem = 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 inject\n} from '@angular/core';\nimport { FocusableListDirective, RtlService, elementClick$ } from '@fundamental-ngx/cdk/utils';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { PopoverBodyHeaderDirective } from '@fundamental-ngx/core/popover';\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 BarModule\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 standalone: true,\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 get isRtl(): boolean {\n return !!this._rtlService?.rtl.value;\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 _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]=\"isRtl ? 'navigation-right-arrow' : 'navigation-left-arrow'\"\n fdType=\"transparent\"\n aria-label=\"Back\"\n title=\"Back\"\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 { DialogModule } from '@angular/cdk/dialog';\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 DynamicPortalComponent,\n FocusableItemDirective,\n FocusableListDirective,\n ResizeObserverDirective,\n RtlService\n} from '@fundamental-ngx/cdk/utils';\nimport { PopoverModule } 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 standalone: true,\n providers: [\n {\n provide: AVATAR_GROUP_HOST_CONFIG,\n useExisting: AvatarGroupComponent\n }\n ],\n imports: [\n AvatarGroupHostComponent,\n PopoverModule,\n NgTemplateOutlet,\n FocusableItemDirective,\n DynamicPortalComponent,\n FocusableListDirective,\n DialogModule,\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 _contentDirection$ = computed<Direction>(() => (this._rtlService?.rtlSignal() ? '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 <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"item.details\"></ng-template>\n </fd-popover-body>\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 <fd-popover-body>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </fd-popover-body>\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 <fd-popover-body>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: _avatarRenderers }\"\n ></ng-template>\n </fd-popover-body>\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 { 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@NgModule({\n imports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupOverflowButtonComponent,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowBodyComponent,\n AvatarGroupOverflowBodyDirective\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":["i1","i2"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-avatar.mjs","sources":["../../../../libs/core/avatar/avatar-icon.pipe.ts","../../../../libs/core/avatar/tokens.ts","../../../../libs/core/avatar/avatar.component.ts","../../../../libs/core/avatar/avatar.component.html","../../../../libs/core/avatar/avatar.module.ts","../../../../libs/core/avatar/fundamental-ngx-core-avatar.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { AvatarValueStates } from './avatar-value-states.type';\n\n@Pipe({\n name: 'fdAvatarIcon',\n pure: true,\n standalone: true\n})\nexport class AvatarIconPipe implements PipeTransform {\n /**\n * Selects appropriate Avatar icon based on Avatar Value state and fallback icon.\n */\n transform(valueState: Nullable<AvatarValueStates>, fallbackIcon: Nullable<string>): string {\n let computedIcon = '';\n if (!valueState) {\n computedIcon = fallbackIcon || '';\n }\n switch (valueState) {\n case 'positive':\n computedIcon = 'sys-enter-2';\n break;\n case 'caution':\n computedIcon = 'warning';\n break;\n case 'negative':\n computedIcon = 'error';\n break;\n case 'information':\n computedIcon = 'information';\n break;\n }\n\n return `sap-icon--${computedIcon} ${valueState ? 'fd-avatar__zoom-icon--' + valueState : ''}`;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_AVATAR_COMPONENT = new InjectionToken('FdAvatarComponent');\n","import {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ANY_LANGUAGE_LETTERS_REGEX,\n ColorAccent,\n CssClassBuilder,\n Nullable,\n Size,\n applyCssClass,\n getRandomColorAccent\n} from '@fundamental-ngx/cdk/utils';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent } from '@fundamental-ngx/core/icon';\nimport { AvatarIconPipe } from './avatar-icon.pipe';\nimport { AvatarValueStates } from './avatar-value-states.type';\nimport { FD_AVATAR_COMPONENT } from './tokens';\n\nlet avatarUniqueId = 0;\n\nconst ALTER_ICON_OPTIONS = {\n CONTENT: 'content',\n ALT: 'alt',\n BACKUP: 'backup',\n DEFAULT_ICON: 'default-icon'\n};\n\nexport type IndicationColor = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\n@Component({\n selector: 'fd-avatar',\n templateUrl: './avatar.component.html',\n styleUrl: './avatar.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_AVATAR_COMPONENT,\n useExisting: AvatarComponent\n }\n ],\n host: {\n '[attr.tabindex]': '_tabindex'\n },\n standalone: true,\n imports: [AvatarIconPipe, IconComponent]\n})\nexport class AvatarComponent implements OnChanges, OnInit, CssClassBuilder, OnChanges {\n /** User's custom classes */\n @Input()\n class: string;\n\n /** Id of the Avatar. */\n @Input()\n @HostBinding('attr.id')\n id = `fd-avatar-${avatarUniqueId++}`;\n\n /** Aria-label for Avatar. */\n @Input()\n @HostBinding('attr.aria-label')\n @HostBinding('attr.alt')\n ariaLabel: Nullable<string> = null;\n\n /** Aria-Labelledby for element describing Avatar. */\n @Input()\n @HostBinding('attr.aria-labelledby')\n ariaLabelledby: Nullable<string> = null;\n\n /** Localized text for label */\n @Input()\n set label(value: Nullable<string>) {\n this.ariaLabel = value || null;\n this.abbreviate = this._getAbbreviate(value);\n }\n\n /** The size of the Avatar. Options include: *xs*, *s*, *m*, *l* and *xl*. */\n @Input() size: Size = 'l';\n\n /** Font family of the icon. */\n @Input()\n font: IconComponent['font'] = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** The glyph name. */\n @Input() glyph: Nullable<string> = null;\n\n /** The glyph name for zoom icon. */\n @Input() zoomGlyph: Nullable<string> = null;\n\n /** Whether to apply a circle style to the Avatar. */\n @Input() circle = false;\n\n /** Whether to apply a transparent style to the Avatar. */\n @Input() transparent = false;\n\n /** Whether to apply background size contain style to the Avatar */\n @Input() contain = false;\n\n /** Whether to apply a placeholder background style to the Avatar. */\n @Input() placeholder = false;\n\n /** Whether to apply a tile background style to the Avatar. */\n @Input() tile = false;\n\n /** Whether to apply a border to the Avatar. */\n @Input() border = false;\n\n /** A number from 1 to 10 representing the background color of the Avatar.\n * This property will override the colorIndication property.\n */\n @Input() colorAccent: Nullable<ColorAccent> = null;\n\n /** A number from 1 to 10 representing the background color of the Avatar using the Indication Colors. */\n @Input() colorIndication: Nullable<IndicationColor> = null;\n\n /** Whether to apply random background color to the Avatar. */\n @Input() random = false;\n\n /** Whether component should be focusable & clicable */\n @Input() clickable = false;\n\n /** Value state of the Avatar. */\n @Input()\n valueState: Nullable<AvatarValueStates>;\n\n /** Background image resource: url or base64. */\n @Input()\n set image(value: Nullable<string>) {\n this._setImage(value);\n }\n get image(): Nullable<string> {\n return this._image;\n }\n\n /** Backup options to use when image hasn't been loaded successfully.\n * Options separated with \"|\" symbol.\n * Possible options: content, alt, backup, default-icon\n */\n @Input()\n set alterIcon(value: Nullable<string>) {\n this._alterIcon = value;\n }\n get alterIcon(): Nullable<string> {\n return this._alterIcon;\n }\n\n /** Backup image to load when image hasn't been loaded successfully.\n * Only applicable when using alterIcon input property.\n */\n @Input()\n set backupImage(value: Nullable<string>) {\n this._backupImage = value;\n }\n get backupImage(): Nullable<string> {\n return this._backupImage;\n }\n\n /** Event emitted when avatar clicked. Only fires if clickable input property set to true. */\n @Output() avatarClicked = new EventEmitter<Event>();\n\n /** Event emitted when zoom icon clicked. Only fires if zoomGlyph input property is set. */\n @Output() zoomGlyphClicked = new EventEmitter<void>();\n\n /**\n * @hidden\n */\n set bgImage(image: Nullable<string>) {\n this._bgImage = image;\n\n this._renderer.setStyle(this.elementRef.nativeElement, 'background-image', image);\n }\n\n get bgImage(): Nullable<string> {\n return this._bgImage;\n }\n\n /** @hidden */\n @HostBinding('attr.role')\n get role(): string {\n return this.zoomGlyph ? 'button' : 'img';\n }\n\n /** @hidden */\n @ViewChild('content')\n set content(value: ElementRef) {\n this._content = value;\n }\n\n /** @hidden */\n abbreviate: Nullable<string> = null;\n\n /** @hidden */\n private _image: Nullable<string> = null;\n\n /** @hidden */\n private _alterIcon: Nullable<string> = null;\n\n /** @hidden */\n private _content: Nullable<ElementRef> = null;\n\n /** @hidden */\n private _backupImage: Nullable<string> = null;\n\n /** @hidden */\n private _bgImage: Nullable<string> = null;\n\n /** @hidden */\n get _tabindex(): number | null {\n if (this.hostTabindex != null) {\n return this.hostTabindex;\n }\n return this.clickable ? 0 : null;\n }\n\n /** If a default placeholder should be displayed */\n get showDefault(): boolean {\n return !this.abbreviate && !this._image && !this.glyph;\n }\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _renderer: Renderer2,\n @Attribute('tabindex') private hostTabindex: number | null\n ) {}\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-avatar',\n this.size ? `fd-avatar--${this.size}` : '',\n this.colorAccent && !this.random ? `fd-avatar--accent-color-${this.colorAccent}` : '',\n this.random ? `fd-avatar--accent-color-${getRandomColorAccent()}` : '',\n this.colorIndication && this.colorAccent === null && !this.random\n ? `fd-avatar--indication-color-${this.colorIndication}`\n : '',\n this.circle ? 'fd-avatar--circle' : '',\n this.border ? 'fd-avatar--border' : '',\n this.transparent ? 'fd-avatar--transparent' : '',\n this.contain ? 'fd-avatar--background-contain' : '',\n this.placeholder ? 'fd-avatar--placeholder' : '',\n this.tile ? 'fd-avatar--tile' : '',\n this.class\n ];\n }\n\n /** @hidden */\n @HostListener('click', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n _onClick(event: Event): void {\n if (!this.clickable) {\n return;\n }\n event.preventDefault();\n this.avatarClicked.emit(event);\n if (this.zoomGlyph) {\n this.zoomGlyphClicked.next();\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n if (this.zoomGlyph) {\n this.clickable = true;\n }\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n zoomClicked(event: Event): void {\n event.preventDefault();\n this.elementRef.nativeElement.focus();\n this.zoomGlyphClicked.next();\n }\n\n /** @hidden Get an abbreviate from the label or return null if not fit requirements */\n private _getAbbreviate(label: Nullable<string>): string | null {\n if (!label || this._image) {\n return null;\n }\n\n return this._generateAbbreviation(label);\n }\n\n /** @hidden Get the abbreviation string */\n private _generateAbbreviation(label: Nullable<string>): string | null {\n if (!label) {\n return null;\n }\n const maxLettersCount = 3;\n const firstLetters = label.split(' ').map((word) => word.charAt(0));\n const abbreviate = firstLetters.join('');\n\n if (firstLetters.length > maxLettersCount || !abbreviate.match(ANY_LANGUAGE_LETTERS_REGEX)) {\n return null;\n }\n\n return abbreviate;\n }\n\n /** @hidden */\n private _setImage(value: Nullable<string>): void {\n this._image = value;\n\n if (value) {\n this._verifyImageUrl(value, (): void => {}, this._onErrorCallback);\n } else {\n this.bgImage = null;\n }\n }\n\n /** @hidden */\n private _verifyImageUrl(srcValue: string, onLoadCallback: () => void, onErrorCallback: () => void): void {\n // Don't load the same image all the time check happens\n if (srcValue === this.bgImage) {\n return;\n }\n const img = new Image();\n img.onload = onLoadCallback.bind(this);\n img.onerror = onErrorCallback.bind(this);\n img.src = srcValue;\n this._assignBgImage(srcValue);\n }\n\n /** @hidden */\n private _assignBgImage(srcValue: Nullable<string>): void {\n this.bgImage = srcValue ? `url(${srcValue})` : null;\n }\n\n /** @hidden */\n private _onErrorCallback(): void {\n if (!this._alterIcon) {\n this._showDefaultIcon();\n return;\n }\n\n const options = this._alterIcon.split('|');\n for (let i = 0; i < options.length; i++) {\n const option = options[i];\n\n if (option === ALTER_ICON_OPTIONS.CONTENT) {\n const contentValue = this._content?.nativeElement.textContent;\n if (contentValue) {\n this.abbreviate = this._generateAbbreviation(contentValue);\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.ALT) {\n const altValue = this.elementRef.nativeElement.getAttribute('alt');\n if (altValue) {\n this.abbreviate = this._generateAbbreviation(altValue);\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.BACKUP) {\n if (this._backupImage && this._backupImage !== '') {\n // Check if backupImage can be loaded successfully\n // If not, set default user icon\n this._verifyImageUrl(\n this._backupImage,\n () => {\n this._assignBgImage(this._backupImage);\n },\n () => {\n this._showDefaultIcon();\n }\n );\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.DEFAULT_ICON) {\n this._showDefaultIcon();\n break;\n }\n\n this._showDefaultIcon();\n }\n }\n\n /** @hidden */\n private _showDefaultIcon(): void {\n this.abbreviate = null;\n this._image = null;\n this.glyph = null;\n this._cdr.markForCheck();\n }\n}\n","@if (abbreviate) {\n {{ abbreviate }}\n}\n@if (zoomGlyph || valueState) {\n <i\n role=\"presentation\"\n class=\"fd-avatar__zoom-icon\"\n [class]=\"valueState | fdAvatarIcon: zoomGlyph\"\n (mousedown)=\"zoomClicked($event)\"\n >\n </i>\n}\n@if (glyph || showDefault) {\n <fd-icon\n class=\"fd-avatar__icon\"\n role=\"presentation\"\n [font]=\"font\"\n [glyph]=\"glyph || 'person-placeholder'\"\n ></fd-icon>\n}\n<div #content [style.display]=\"'none'\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { AvatarComponent } from './avatar.component';\n\n/**\n * @deprecated\n * Use `AvatarComponent` import instead.\n */\n@NgModule({\n imports: [AvatarComponent],\n exports: [AvatarComponent]\n})\nexport class AvatarModule {}\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.mjs","sources":["../../../../libs/core/avatar/avatar-icon.pipe.ts","../../../../libs/core/avatar/tokens.ts","../../../../libs/core/avatar/avatar.component.ts","../../../../libs/core/avatar/avatar.component.html","../../../../libs/core/avatar/avatar.module.ts","../../../../libs/core/avatar/fundamental-ngx-core-avatar.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { AvatarValueStates } from './avatar-value-states.type';\n\n@Pipe({\n name: 'fdAvatarIcon',\n pure: true,\n standalone: true\n})\nexport class AvatarIconPipe implements PipeTransform {\n /**\n * Selects appropriate Avatar icon based on Avatar Value state and fallback icon.\n */\n transform(valueState: Nullable<AvatarValueStates>, fallbackIcon: Nullable<string>): string {\n let computedIcon = '';\n if (!valueState) {\n computedIcon = fallbackIcon || '';\n }\n switch (valueState) {\n case 'positive':\n computedIcon = 'sys-enter-2';\n break;\n case 'caution':\n computedIcon = 'warning';\n break;\n case 'negative':\n computedIcon = 'error';\n break;\n case 'information':\n computedIcon = 'information';\n break;\n }\n\n return `sap-icon--${computedIcon} ${valueState ? 'fd-avatar__zoom-icon--' + valueState : ''}`;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const FD_AVATAR_COMPONENT = new InjectionToken('FdAvatarComponent');\n","import {\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnChanges,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n ANY_LANGUAGE_LETTERS_REGEX,\n ColorAccent,\n CssClassBuilder,\n Nullable,\n Size,\n applyCssClass,\n getRandomColorAccent\n} from '@fundamental-ngx/cdk/utils';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconComponent } from '@fundamental-ngx/core/icon';\nimport { AvatarIconPipe } from './avatar-icon.pipe';\nimport { AvatarValueStates } from './avatar-value-states.type';\nimport { FD_AVATAR_COMPONENT } from './tokens';\n\nlet avatarUniqueId = 0;\n\nconst ALTER_ICON_OPTIONS = {\n CONTENT: 'content',\n ALT: 'alt',\n BACKUP: 'backup',\n DEFAULT_ICON: 'default-icon'\n};\n\nexport type IndicationColor = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;\n\n@Component({\n selector: 'fd-avatar',\n templateUrl: './avatar.component.html',\n styleUrl: './avatar.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_AVATAR_COMPONENT,\n useExisting: AvatarComponent\n }\n ],\n host: {\n '[attr.tabindex]': '_tabindex'\n },\n standalone: true,\n imports: [AvatarIconPipe, IconComponent]\n})\nexport class AvatarComponent implements OnChanges, OnInit, CssClassBuilder, OnChanges {\n /** User's custom classes */\n @Input()\n class: string;\n\n /** Id of the Avatar. */\n @Input()\n @HostBinding('attr.id')\n id = `fd-avatar-${avatarUniqueId++}`;\n\n /** Aria-label for Avatar. */\n @Input()\n @HostBinding('attr.aria-label')\n @HostBinding('attr.alt')\n ariaLabel: Nullable<string> = null;\n\n /** Aria-Labelledby for element describing Avatar. */\n @Input()\n @HostBinding('attr.aria-labelledby')\n ariaLabelledby: Nullable<string> = null;\n\n /** Localized text for label */\n @Input()\n set label(value: Nullable<string>) {\n this.ariaLabel = value || null;\n this.abbreviate = this._getAbbreviate(value);\n }\n\n /** The size of the Avatar. Options include: *xs*, *s*, *m*, *l* and *xl*. */\n @Input() size: Size = 'l';\n\n /** Font family of the icon. */\n @Input()\n font: IconComponent['font'] = FD_DEFAULT_ICON_FONT_FAMILY;\n\n /** The glyph name. */\n @Input() glyph: Nullable<string> = null;\n\n /** The glyph name for zoom icon. */\n @Input() zoomGlyph: Nullable<string> = null;\n\n /** Whether to apply a circle style to the Avatar. */\n @Input() circle = false;\n\n /** Whether to apply a transparent style to the Avatar. */\n @Input() transparent = false;\n\n /** Whether to apply background size contain style to the Avatar */\n @Input() contain = false;\n\n /** Whether to apply a placeholder background style to the Avatar. */\n @Input() placeholder = false;\n\n /** Whether to apply a tile background style to the Avatar. */\n @Input() tile = false;\n\n /** Whether to apply a border to the Avatar. */\n @Input() border = false;\n\n /** A number from 1 to 10 representing the background color of the Avatar.\n * This property will override the colorIndication property.\n */\n @Input() colorAccent: Nullable<ColorAccent> = null;\n\n /** A number from 1 to 10 representing the background color of the Avatar using the Indication Colors. */\n @Input() colorIndication: Nullable<IndicationColor> = null;\n\n /** Whether to apply random background color to the Avatar. */\n @Input() random = false;\n\n /** Whether component should be focusable & clicable */\n @Input() clickable = false;\n\n /** Value state of the Avatar. */\n @Input()\n valueState: Nullable<AvatarValueStates>;\n\n /** Background image resource: url or base64. */\n @Input()\n set image(value: Nullable<string>) {\n this._setImage(value);\n }\n get image(): Nullable<string> {\n return this._image;\n }\n\n /** Backup options to use when image hasn't been loaded successfully.\n * Options separated with \"|\" symbol.\n * Possible options: content, alt, backup, default-icon\n */\n @Input()\n set alterIcon(value: Nullable<string>) {\n this._alterIcon = value;\n }\n get alterIcon(): Nullable<string> {\n return this._alterIcon;\n }\n\n /** Backup image to load when image hasn't been loaded successfully.\n * Only applicable when using alterIcon input property.\n */\n @Input()\n set backupImage(value: Nullable<string>) {\n this._backupImage = value;\n }\n get backupImage(): Nullable<string> {\n return this._backupImage;\n }\n\n /** Event emitted when avatar clicked. Only fires if clickable input property set to true. */\n @Output() avatarClicked = new EventEmitter<Event>();\n\n /** Event emitted when zoom icon clicked. Only fires if zoomGlyph input property is set. */\n @Output() zoomGlyphClicked = new EventEmitter<void>();\n\n /**\n * @hidden\n */\n set bgImage(image: Nullable<string>) {\n this._bgImage = image;\n\n this._renderer.setStyle(this.elementRef.nativeElement, 'background-image', image);\n }\n\n get bgImage(): Nullable<string> {\n return this._bgImage;\n }\n\n /** @hidden */\n @HostBinding('attr.role')\n get role(): string {\n return this.zoomGlyph ? 'button' : 'img';\n }\n\n /** @hidden */\n @ViewChild('content')\n set content(value: ElementRef) {\n this._content = value;\n }\n\n /** @hidden */\n abbreviate: Nullable<string> = null;\n\n /** @hidden */\n private _image: Nullable<string> = null;\n\n /** @hidden */\n private _alterIcon: Nullable<string> = null;\n\n /** @hidden */\n private _content: Nullable<ElementRef> = null;\n\n /** @hidden */\n private _backupImage: Nullable<string> = null;\n\n /** @hidden */\n private _bgImage: Nullable<string> = null;\n\n /** @hidden */\n get _tabindex(): number | null {\n if (this.hostTabindex != null) {\n return this.hostTabindex;\n }\n return this.clickable ? 0 : null;\n }\n\n /** If a default placeholder should be displayed */\n get showDefault(): boolean {\n return !this.abbreviate && !this._image && !this.glyph;\n }\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _renderer: Renderer2,\n @Attribute('tabindex') private hostTabindex: number | null\n ) {}\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-avatar',\n this.size ? `fd-avatar--${this.size}` : '',\n this.colorAccent && !this.random ? `fd-avatar--accent-color-${this.colorAccent}` : '',\n this.random ? `fd-avatar--accent-color-${getRandomColorAccent()}` : '',\n this.colorIndication && this.colorAccent === null && !this.random\n ? `fd-avatar--indication-color-${this.colorIndication}`\n : '',\n this.circle ? 'fd-avatar--circle' : '',\n this.border ? 'fd-avatar--border' : '',\n this.transparent ? 'fd-avatar--transparent' : '',\n this.contain ? 'fd-avatar--background-contain' : '',\n this.placeholder ? 'fd-avatar--placeholder' : '',\n this.tile ? 'fd-avatar--tile' : '',\n this.class\n ];\n }\n\n /** @hidden */\n @HostListener('click', ['$event'])\n @HostListener('keydown.enter', ['$event'])\n @HostListener('keydown.space', ['$event'])\n _onClick(event: Event): void {\n if (!this.clickable) {\n return;\n }\n event.preventDefault();\n this.avatarClicked.emit(event);\n if (this.zoomGlyph) {\n this.zoomGlyphClicked.next();\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n if (this.zoomGlyph) {\n this.clickable = true;\n }\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n zoomClicked(event: Event): void {\n event.preventDefault();\n this.elementRef.nativeElement.focus();\n this.zoomGlyphClicked.next();\n }\n\n /** @hidden Get an abbreviate from the label or return null if not fit requirements */\n private _getAbbreviate(label: Nullable<string>): string | null {\n if (!label || this._image) {\n return null;\n }\n\n return this._generateAbbreviation(label);\n }\n\n /** @hidden Get the abbreviation string */\n private _generateAbbreviation(label: Nullable<string>): string | null {\n if (!label) {\n return null;\n }\n const maxLettersCount = 3;\n const firstLetters = label.split(' ').map((word) => word.charAt(0));\n const abbreviate = firstLetters.join('');\n\n if (firstLetters.length > maxLettersCount || !abbreviate.match(ANY_LANGUAGE_LETTERS_REGEX)) {\n return null;\n }\n\n return abbreviate;\n }\n\n /** @hidden */\n private _setImage(value: Nullable<string>): void {\n this._image = value;\n\n if (value) {\n this._verifyImageUrl(value, (): void => {}, this._onErrorCallback);\n } else {\n this.bgImage = null;\n }\n }\n\n /** @hidden */\n private _verifyImageUrl(srcValue: string, onLoadCallback: () => void, onErrorCallback: () => void): void {\n // Don't load the same image all the time check happens\n if (srcValue === this.bgImage) {\n return;\n }\n const img = new Image();\n img.onload = onLoadCallback.bind(this);\n img.onerror = onErrorCallback.bind(this);\n img.src = srcValue;\n this._assignBgImage(srcValue);\n }\n\n /** @hidden */\n private _assignBgImage(srcValue: Nullable<string>): void {\n this.bgImage = srcValue ? `url(${srcValue})` : null;\n }\n\n /** @hidden */\n private _onErrorCallback(): void {\n if (!this._alterIcon) {\n this._showDefaultIcon();\n return;\n }\n\n const options = this._alterIcon.split('|');\n for (let i = 0; i < options.length; i++) {\n const option = options[i];\n\n if (option === ALTER_ICON_OPTIONS.CONTENT) {\n const contentValue = this._content?.nativeElement.textContent;\n if (contentValue) {\n this.abbreviate = this._generateAbbreviation(contentValue);\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.ALT) {\n const altValue = this.elementRef.nativeElement.getAttribute('alt');\n if (altValue) {\n this.abbreviate = this._generateAbbreviation(altValue);\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.BACKUP) {\n if (this._backupImage && this._backupImage !== '') {\n // Check if backupImage can be loaded successfully\n // If not, set default user icon\n this._verifyImageUrl(\n this._backupImage,\n () => {\n this._assignBgImage(this._backupImage);\n },\n () => {\n this._showDefaultIcon();\n }\n );\n break;\n }\n\n continue;\n }\n\n if (option === ALTER_ICON_OPTIONS.DEFAULT_ICON) {\n this._showDefaultIcon();\n break;\n }\n\n this._showDefaultIcon();\n }\n }\n\n /** @hidden */\n private _showDefaultIcon(): void {\n this.abbreviate = null;\n this._image = null;\n this.glyph = null;\n this._cdr.markForCheck();\n }\n}\n","@if (abbreviate) {\n {{ abbreviate }}\n}\n@if (zoomGlyph || valueState) {\n <i\n role=\"presentation\"\n class=\"fd-avatar__zoom-icon\"\n [class]=\"valueState | fdAvatarIcon: zoomGlyph\"\n (mousedown)=\"zoomClicked($event)\"\n >\n </i>\n}\n@if (glyph || showDefault) {\n <fd-icon\n class=\"fd-avatar__icon\"\n role=\"presentation\"\n [font]=\"font\"\n [glyph]=\"glyph || 'person-placeholder'\"\n ></fd-icon>\n}\n<div #content [style.display]=\"'none'\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { AvatarComponent } from './avatar.component';\n\n/**\n * @deprecated\n * Use `AvatarComponent` import instead.\n */\n@NgModule({\n imports: [AvatarComponent],\n exports: [AvatarComponent]\n})\nexport class AvatarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-bar.mjs","sources":["../../../../libs/core/bar/bar.component.ts","../../../../libs/core/bar/bar.component.html","../../../../libs/core/bar/tokens.ts","../../../../libs/core/bar/button-bar/button-bar.component.ts","../../../../libs/core/bar/directives/bar-element.directive.ts","../../../../libs/core/bar/directives/bar-left.directive.ts","../../../../libs/core/bar/directives/bar-middle.directive.ts","../../../../libs/core/bar/directives/bar-right.directive.ts","../../../../libs/core/bar/bar.module.ts","../../../../libs/core/bar/fundamental-ngx-core-bar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport {\n ContentDensityMode,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\nimport { Subscription } from 'rxjs';\n\nexport type SizeType = '' | 's' | 'm_l' | 'xl';\nexport type BarDesignType = 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer';\n\n/**\n * The Bar component is a container that holds titles, buttons and input controls.\n * Its content is distributed in three areas - left, middle and right.\n * The Bar has 2 modes - Desktop (default) and Tablet/Mobile (cozy).\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-bar]',\n templateUrl: './bar.component.html',\n styleUrl: './bar.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n contentDensityObserverProviders({\n defaultContentDensity: ContentDensityMode.COMPACT\n })\n ],\n standalone: true\n})\nexport class BarComponent implements OnChanges, OnInit, CssClassBuilder, OnDestroy {\n /** user's custom classes */\n @Input()\n class: string;\n\n /** Whether the Bar component is used as a header, subheader, header-with-subheader,\n * footer or floating-footer.\n * Types available: 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer' */\n @Input()\n barDesign: BarDesignType;\n\n /** Whether the Bar component is used in Page Layout. */\n @Input()\n inPage: boolean;\n\n /** Whether the Bar component is used in Home Page Layout. */\n @Input()\n inHomePage: boolean;\n\n /** The size of the Page in Page responsive design.\n * Available sizes: 's' | 'm_l' | 'xl'\n */\n @Input()\n size: SizeType = '';\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n this._contentDensityObserver.subscribe();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-bar',\n this._contentDensityObserver.isCompact || this._contentDensityObserver.isCondensed ? '' : 'fd-bar--cozy', // TODO: fix in styles\n this.barDesign ? `fd-bar--${this.barDesign}` : '',\n this.inPage && !this.size ? 'fd-bar--page' : '',\n this.inPage && this.size ? `fd-bar--page-${this.size}` : '',\n this.inHomePage && !this.size ? 'fd-bar--home-page' : '',\n this.inHomePage && this.size ? `fd-bar--home-page-${this.size}` : '',\n this.class\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n}\n","<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","import { InjectionToken } from '@angular/core';\n\nexport const FD_BUTTON_BAR_COMPONENT = new InjectionToken('FdButtonBarComponent');\n","import { Component, HostBinding, Input, ViewChild } from '@angular/core';\nimport { BaseButton, ButtonComponent, ButtonType } from '@fundamental-ngx/core/button';\nimport { FD_BUTTON_BAR_COMPONENT } from '../tokens';\n\nlet randomButtonBarId = 0;\n\n@Component({\n selector: 'fd-button-bar',\n template: `\n <button\n fd-button\n [id]=\"id\"\n [type]=\"type\"\n [glyphPosition]=\"glyphPosition\"\n [glyph]=\"glyph\"\n [fdType]=\"fdType\"\n [label]=\"label\"\n [attr.title]=\"title\"\n [ariaLabel]=\"ariaLabel\"\n [fdMenu]=\"fdMenu\"\n [disabled]=\"disabled\"\n >\n <ng-content></ng-content>\n </button>\n `,\n providers: [\n {\n provide: FD_BUTTON_BAR_COMPONENT,\n useExisting: ButtonBarComponent\n }\n ],\n standalone: true,\n imports: [ButtonComponent]\n})\nexport class ButtonBarComponent extends BaseButton {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** The type of the button. Types include:\n * 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu'.\n * Default value is set to 'transparent'\n */\n @Input()\n fdType: ButtonType = 'transparent';\n\n /** adding title to the button */\n @Input()\n title: string;\n\n /** the aria-labelledby ids to be associated with this element */\n @Input()\n ariaLabelledby: string;\n\n /** id for this element */\n @Input()\n set id(value: string | null | undefined) {\n this._id = value;\n }\n\n get id(): string {\n return this._id || this._defaultId;\n }\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n _barElement = true;\n\n /** @hidden */\n @HostBinding('style.pointer-events')\n get pointerEvents(): string {\n return this.disabled ? 'none' : 'auto';\n }\n\n /** @hidden */\n @ViewChild(ButtonComponent)\n _buttonComponent: ButtonComponent;\n /** @hidden */\n _id: string | null | undefined;\n\n /** @hidden */\n private readonly _defaultId = `fd-button-bar-id-${randomButtonBarId++}`;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n/**\n * An element of the Bar.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-bar-element',\n standalone: true\n})\nexport class BarElementDirective {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n barElement = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * The left side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-left]',\n host: {\n class: 'fd-bar__left'\n },\n standalone: true\n})\nexport class BarLeftDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The middle section of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-middle]',\n host: {\n class: 'fd-bar__middle'\n },\n standalone: true\n})\nexport class BarMiddleDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The right side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-right]',\n host: {\n class: 'fd-bar__right'\n },\n standalone: true\n})\nexport class BarRightDirective {}\n","import { NgModule } from '@angular/core';\n\nimport { BarComponent } from './bar.component';\nimport { ButtonBarComponent } from './button-bar/button-bar.component';\nimport { BarElementDirective } from './directives/bar-element.directive';\nimport { BarLeftDirective } from './directives/bar-left.directive';\nimport { BarMiddleDirective } from './directives/bar-middle.directive';\nimport { BarRightDirective } from './directives/bar-right.directive';\n\nconst components = [\n BarComponent,\n BarLeftDirective,\n BarMiddleDirective,\n BarRightDirective,\n BarElementDirective,\n ButtonBarComponent\n];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class BarModule {}\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-bar.mjs","sources":["../../../../libs/core/bar/bar.component.ts","../../../../libs/core/bar/bar.component.html","../../../../libs/core/bar/tokens.ts","../../../../libs/core/bar/button-bar/button-bar.component.ts","../../../../libs/core/bar/directives/bar-element.directive.ts","../../../../libs/core/bar/directives/bar-left.directive.ts","../../../../libs/core/bar/directives/bar-middle.directive.ts","../../../../libs/core/bar/directives/bar-right.directive.ts","../../../../libs/core/bar/bar.module.ts","../../../../libs/core/bar/fundamental-ngx-core-bar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { CssClassBuilder, applyCssClass } from '@fundamental-ngx/cdk/utils';\nimport {\n ContentDensityMode,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\nimport { Subscription } from 'rxjs';\n\nexport type SizeType = '' | 's' | 'm_l' | 'xl';\nexport type BarDesignType = 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer';\n\n/**\n * The Bar component is a container that holds titles, buttons and input controls.\n * Its content is distributed in three areas - left, middle and right.\n * The Bar has 2 modes - Desktop (default) and Tablet/Mobile (cozy).\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[fd-bar]',\n templateUrl: './bar.component.html',\n styleUrl: './bar.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n contentDensityObserverProviders({\n defaultContentDensity: ContentDensityMode.COMPACT\n })\n ],\n standalone: true\n})\nexport class BarComponent implements OnChanges, OnInit, CssClassBuilder, OnDestroy {\n /** user's custom classes */\n @Input()\n class: string;\n\n /** Whether the Bar component is used as a header, subheader, header-with-subheader,\n * footer or floating-footer.\n * Types available: 'header' | 'subheader' | 'header-with-subheader' | 'footer' | 'floating-footer' */\n @Input()\n barDesign: BarDesignType;\n\n /** Whether the Bar component is used in Page Layout. */\n @Input()\n inPage: boolean;\n\n /** Whether the Bar component is used in Home Page Layout. */\n @Input()\n inHomePage: boolean;\n\n /** The size of the Page in Page responsive design.\n * Available sizes: 's' | 'm_l' | 'xl'\n */\n @Input()\n size: SizeType = '';\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private _contentDensityObserver: ContentDensityObserver\n ) {\n this._contentDensityObserver.subscribe();\n }\n\n /** @hidden\n * CssClassBuilder interface implementation\n * function must return single string\n * function is responsible for order which css classes are applied\n */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n 'fd-bar',\n this._contentDensityObserver.isCompact || this._contentDensityObserver.isCondensed ? '' : 'fd-bar--cozy', // TODO: fix in styles\n this.barDesign ? `fd-bar--${this.barDesign}` : '',\n this.inPage && !this.size ? 'fd-bar--page' : '',\n this.inPage && this.size ? `fd-bar--page-${this.size}` : '',\n this.inHomePage && !this.size ? 'fd-bar--home-page' : '',\n this.inHomePage && this.size ? `fd-bar--home-page-${this.size}` : '',\n this.class\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n}\n","<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","import { InjectionToken } from '@angular/core';\n\nexport const FD_BUTTON_BAR_COMPONENT = new InjectionToken('FdButtonBarComponent');\n","import { Component, HostBinding, Input, ViewChild } from '@angular/core';\nimport { BaseButton, ButtonComponent, ButtonType } from '@fundamental-ngx/core/button';\nimport { FD_BUTTON_BAR_COMPONENT } from '../tokens';\n\nlet randomButtonBarId = 0;\n\n@Component({\n selector: 'fd-button-bar',\n template: `\n <button\n fd-button\n [id]=\"id\"\n [type]=\"type\"\n [glyphPosition]=\"glyphPosition\"\n [glyph]=\"glyph\"\n [fdType]=\"fdType\"\n [label]=\"label\"\n [attr.title]=\"title\"\n [ariaLabel]=\"ariaLabel\"\n [fdMenu]=\"fdMenu\"\n [disabled]=\"disabled\"\n >\n <ng-content></ng-content>\n </button>\n `,\n providers: [\n {\n provide: FD_BUTTON_BAR_COMPONENT,\n useExisting: ButtonBarComponent\n }\n ],\n standalone: true,\n imports: [ButtonComponent]\n})\nexport class ButtonBarComponent extends BaseButton {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** The type of the button. Types include:\n * 'standard' | 'positive' | 'negative' | 'attention' | 'half' | 'ghost' | 'transparent' | 'emphasized' | 'menu'.\n * Default value is set to 'transparent'\n */\n @Input()\n fdType: ButtonType = 'transparent';\n\n /** adding title to the button */\n @Input()\n title: string;\n\n /** the aria-labelledby ids to be associated with this element */\n @Input()\n ariaLabelledby: string;\n\n /** id for this element */\n @Input()\n set id(value: string | null | undefined) {\n this._id = value;\n }\n\n get id(): string {\n return this._id || this._defaultId;\n }\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n _barElement = true;\n\n /** @hidden */\n @HostBinding('style.pointer-events')\n get pointerEvents(): string {\n return this.disabled ? 'none' : 'auto';\n }\n\n /** @hidden */\n @ViewChild(ButtonComponent)\n _buttonComponent: ButtonComponent;\n /** @hidden */\n _id: string | null | undefined;\n\n /** @hidden */\n private readonly _defaultId = `fd-button-bar-id-${randomButtonBarId++}`;\n}\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n/**\n * An element of the Bar.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'fd-bar-element',\n standalone: true\n})\nexport class BarElementDirective {\n /** Whether the element should take the whole width of the container. */\n @Input()\n @HostBinding('class.fd-bar__element--full-width')\n fullWidth = false;\n\n /** @hidden */\n @HostBinding('class.fd-bar__element')\n barElement = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * The left side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-left]',\n host: {\n class: 'fd-bar__left'\n },\n standalone: true\n})\nexport class BarLeftDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The middle section of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-middle]',\n host: {\n class: 'fd-bar__middle'\n },\n standalone: true\n})\nexport class BarMiddleDirective {}\n","import { Directive } from '@angular/core';\n\n/**\n * The right side area of the Bar component.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-bar-right]',\n host: {\n class: 'fd-bar__right'\n },\n standalone: true\n})\nexport class BarRightDirective {}\n","import { NgModule } from '@angular/core';\n\nimport { BarComponent } from './bar.component';\nimport { ButtonBarComponent } from './button-bar/button-bar.component';\nimport { BarElementDirective } from './directives/bar-element.directive';\nimport { BarLeftDirective } from './directives/bar-left.directive';\nimport { BarMiddleDirective } from './directives/bar-middle.directive';\nimport { BarRightDirective } from './directives/bar-right.directive';\n\nconst components = [\n BarComponent,\n BarLeftDirective,\n BarMiddleDirective,\n BarRightDirective,\n BarElementDirective,\n ButtonBarComponent\n];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class BarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}