@fundamental-ngx/core 0.61.2-rc.9 → 0.61.3
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.
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs +2 -3
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs +4 -6
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +13 -11
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +7 -5
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-calendar.mjs +31 -35
- package/fesm2022/fundamental-ngx-core-calendar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-carousel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-combobox.mjs +3 -5
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-date-picker.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-date-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-datetime.mjs +13 -7
- package/fesm2022/fundamental-ngx-core-datetime.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +16 -11
- package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +13 -13
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-grid-list.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-info-label.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-inline-help.mjs +65 -59
- package/fesm2022/fundamental-ngx-core-inline-help.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +5 -5
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs +7 -7
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +49 -44
- package/fesm2022/fundamental-ngx-core-message-strip.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +20 -25
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs +8 -6
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs +21 -22
- package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-notification.mjs +16 -13
- package/fesm2022/fundamental-ngx-core-notification.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-number.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-number.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-status.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-pagination.mjs +14 -11
- package/fesm2022/fundamental-ngx-core-pagination.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs +9 -3
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-product-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +7 -4
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs +11 -10
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +6 -7
- package/fesm2022/fundamental-ngx-core-select.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +6 -6
- package/fesm2022/fundamental-ngx-core-shellbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-slider.mjs +6 -6
- package/fesm2022/fundamental-ngx-core-slider.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-split-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-step-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-text.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-text.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs +29 -4
- package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-token.mjs +15 -12
- package/fesm2022/fundamental-ngx-core-token.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +3 -5
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-user-menu.mjs +3 -5
- package/fesm2022/fundamental-ngx-core-user-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs.map +1 -1
- package/package.json +3 -3
- package/types/fundamental-ngx-core-breadcrumb.d.ts +5 -5
- package/types/fundamental-ngx-core-busy-indicator.d.ts +3 -3
- package/types/fundamental-ngx-core-combobox.d.ts +2 -4
- package/types/fundamental-ngx-core-datetime.d.ts +5 -1
- package/types/fundamental-ngx-core-dialog.d.ts +1 -1
- package/types/fundamental-ngx-core-dynamic-page.d.ts +2 -1
- package/types/fundamental-ngx-core-inline-help.d.ts +45 -24
- package/types/fundamental-ngx-core-menu.d.ts +0 -2
- package/types/fundamental-ngx-core-message-box.d.ts +1 -1
- package/types/fundamental-ngx-core-message-strip.d.ts +12 -3
- package/types/fundamental-ngx-core-multi-combobox.d.ts +1 -1
- package/types/fundamental-ngx-core-nested-list.d.ts +10 -10
- package/types/fundamental-ngx-core-notification.d.ts +7 -5
- package/types/fundamental-ngx-core-pagination.d.ts +4 -3
- package/types/fundamental-ngx-core-rating-indicator.d.ts +2 -3
- package/types/fundamental-ngx-core-segmented-button.d.ts +5 -3
- package/types/fundamental-ngx-core-slider.d.ts +1 -1
- package/types/fundamental-ngx-core-time-picker.d.ts +17 -1
- package/types/fundamental-ngx-core-token.d.ts +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 CdkPortalOutlet\n ]\n})\nexport class AvatarGroupItemRendererDirective implements OnInit, FocusableItem {\n /**\n * Avatar group item to be rendered.\n **/\n @Input() avatarGroupItem: AvatarGroupItemDirective;\n\n /**\n * Whether the item should be forced to be visible.\n **/\n @Input()\n forceVisibility = false;\n\n /**\n * HTML element of the item.\n **/\n element$: Observable<Nullable<HTMLElement>>;\n\n /** @hidden */\n keydown: Observable<KeyboardEvent>;\n\n /**\n * Whether the item is visible.\n **/\n get visible(): boolean {\n return this._portalOutlet.hasAttached();\n }\n\n /**\n * Currently rendered element's HTMLElement.\n **/\n get element(): HTMLElement {\n return this._embeddedViewRef?.rootNodes[0] as HTMLElement;\n }\n\n /**\n * Rendered element's width or it's last saved width.\n **/\n get width(): number {\n if (this.visible) {\n const rect = this.element.getBoundingClientRect();\n const style = getComputedStyle(this.element);\n const width = rect.width;\n const marginLeft = parseFloat(style.marginLeft);\n const marginRight = parseFloat(style.marginRight);\n\n if (!isNaN(width) && !isNaN(marginLeft) && !isNaN(marginRight)) {\n this._lastSavedWidth = width + marginLeft + marginRight;\n }\n }\n return this._lastSavedWidth;\n }\n\n /**\n * Rendered element's height or it's last saved height.\n **/\n get height(): number {\n if (this.visible) {\n this._lastSavedHeight =\n this.element.getBoundingClientRect().height +\n parseFloat(getComputedStyle(this.element).marginTop) +\n parseFloat(getComputedStyle(this.element).marginBottom);\n }\n return this._lastSavedHeight;\n }\n\n /** @hidden */\n private _portalOutlet = inject(CdkPortalOutlet, { host: true });\n\n /** @hidden */\n private _viewContainerRef = inject(ViewContainerRef);\n\n /**\n * @hidden\n **/\n private _element$ = new BehaviorSubject<Nullable<HTMLElement>>(null);\n\n /** @hidden */\n private _templatePortal?: TemplatePortal<void>;\n\n /** @hidden */\n private _isFocusable = true;\n\n /** @hidden */\n private _embeddedViewRef: EmbeddedViewRef<void>;\n\n /** @hidden */\n private _lastSavedWidth = 0;\n\n /** @hidden */\n private _lastSavedHeight = 0;\n\n /** @hidden */\n private _hostConfig = inject(AVATAR_GROUP_HOST_CONFIG);\n\n /** @hidden */\n constructor() {\n this.element$ = this._element$.asObservable();\n this.keydown = this._element$.pipe(\n filter((element) => !!element),\n switchMap((element) => fromEvent(element as unknown as HTMLElement, 'keydown') as Observable<KeyboardEvent>)\n );\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.show();\n }\n\n /**\n * Hides the item.\n **/\n hide(): void {\n this._portalOutlet.detach();\n this.setTabbable(false);\n this._isFocusable = false;\n }\n\n /**\n * Shows the item.\n **/\n show(): void {\n if (this.visible) {\n return;\n }\n if (!this._templatePortal) {\n this._templatePortal = new TemplatePortal(this.avatarGroupItem._templateRef, this._viewContainerRef);\n }\n this._embeddedViewRef = this._portalOutlet.attach(this._templatePortal);\n this._embeddedViewRef.detectChanges();\n this._element$.next(this.element);\n this.setTabbable(this._hostConfig.type === 'individual');\n this._isFocusable = this._hostConfig.type === 'individual';\n }\n\n /**\n * Whether the item is focusable.\n **/\n isFocusable = (): boolean => this._isFocusable && this.visible;\n\n /**\n * Sets the tabbable state of the item.\n **/\n setTabbable(tabbable: boolean): void {\n this.element.tabIndex = tabbable ? 0 : -1;\n }\n\n /** @hidden */\n focus(): void {\n this.element?.focus();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n Input,\n OnChanges,\n OnInit,\n QueryList,\n signal,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n applyCssClass,\n CssClassBuilder,\n HasElementRef,\n Nullable,\n ResizeObserverDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { animationFrames, combineLatest, delayWhen, map, Observable, startWith, Subject } from 'rxjs';\nimport { AvatarGroupItemRendererDirective } from '../directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from '../directives/avatar-group-item.directive';\nimport { AvatarGroupHostConfig } from '../types';\n\n@Component({\n selector: 'fd-avatar-group-host',\n template: '<ng-content></ng-content>',\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrl: './avatar-group-host.component.scss'\n})\nexport class AvatarGroupHostComponent\n implements OnInit, AfterViewInit, OnChanges, HasElementRef, AvatarGroupHostConfig, CssClassBuilder\n{\n /**\n * The class to apply to the host element.\n **/\n @Input()\n class: Nullable<string>;\n\n /**\n * The type of the avatar group.\n * Options include 'individual' and 'group'.\n **/\n @Input()\n type: AvatarGroupHostConfig['type'];\n\n /**\n * The orientation of the avatar group.\n * Options include 'horizontal' and 'vertical'.\n **/\n @Input()\n orientation: AvatarGroupHostConfig['orientation'];\n\n /**\n * The size of the avatar group.\n * Options include 'xs', 's', 'm', 'l', and 'xl'.\n **/\n @Input()\n size: AvatarGroupHostConfig['size'];\n\n /**\n * The items to be rendered in the avatar group.\n **/\n @Input()\n items: QueryList<AvatarGroupItemDirective>;\n\n /**\n * @hidden\n * The portals to be rendered in the avatar group.\n **/\n @ContentChildren(AvatarGroupItemRendererDirective, { descendants: true })\n _portals: QueryList<AvatarGroupItemRendererDirective>;\n\n /** @hidden */\n _resizeEmitter: Observable<ResizeObserverEntry[]> = inject(ResizeObserverDirective).resizeEvents$;\n\n /** The reference to the host element */\n readonly elementRef = inject(ElementRef);\n\n /** @hidden */\n _hiddenItems = signal<AvatarGroupItemRendererDirective[]>([]);\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _onChanges$ = new Subject<SimpleChanges>();\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class || '',\n 'fd-avatar-group',\n this.type === 'individual' ? 'fd-avatar-group--individual-type' : '',\n this.type === 'group' ? 'fd-avatar-group--group-type' : '',\n this.orientation ? 'fd-avatar-group--' + this.orientation : '',\n this.size ? 'fd-avatar-group--' + this.size : ''\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n this.buildComponentCssClass();\n this._onChanges$.next(changes);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n combineLatest([\n this._resizeEmitter.pipe(map((entries) => entries[0].contentRect.width)),\n this._portals.changes.pipe(\n startWith(this._portals),\n map((r) => r.toArray())\n ),\n this._onChanges$.pipe(startWith({}))\n ])\n .pipe(\n map(([containerWidth, items]) => this._calculateVisibility(containerWidth, items)),\n delayWhen(() => animationFrames()),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(({ hiddenItems, visibleItems }) => {\n visibleItems.forEach((item) => item.show());\n hiddenItems.forEach((item) => item.hide());\n this._cdr.detectChanges();\n this._hiddenItems.set(hiddenItems);\n });\n }\n\n /** @hidden */\n private _calculateVisibility(\n containerWidth: number,\n items: AvatarGroupItemRendererDirective[]\n ): {\n hiddenItems: AvatarGroupItemRendererDirective[];\n visibleItems: AvatarGroupItemRendererDirective[];\n } {\n if (this.orientation === 'vertical') {\n return {\n visibleItems: items,\n hiddenItems: []\n };\n }\n const visibleItems = items.filter((i) => i.forceVisibility);\n const hiddenItems: AvatarGroupItemRendererDirective[] = [];\n let accWidth = items.reduce((acc, item) => (item.forceVisibility ? acc + item.width : acc), 0);\n for (const item of items) {\n if (item.forceVisibility) {\n continue;\n }\n accWidth += item.width;\n if (accWidth <= containerWidth) {\n visibleItems.push(item);\n } else if (!item.forceVisibility) {\n hiddenItems.push(item);\n }\n }\n /* take last item from the visibleItems which is not forced to be visible and push it to the hiddenItems\n * This is done to free up the space for the overflow button\n */\n if (hiddenItems.length > 0) {\n const lastAllowedToBeHidden = visibleItems.reverse().findIndex((item) => !item.forceVisibility);\n hiddenItems.push(...visibleItems.splice(lastAllowedToBeHidden * -1, 1));\n }\n return {\n visibleItems,\n hiddenItems\n };\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n HostBinding,\n inject,\n Input,\n OnChanges,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n applyCssClass,\n ColorAccent,\n CssClassBuilder,\n FDK_FOCUSABLE_ITEM_DIRECTIVE,\n FocusableItemDirective,\n Nullable,\n Size\n} from '@fundamental-ngx/cdk/utils';\nimport { AVATAR_GROUP_HOST_CONFIG } from '../tokens';\n\n/**\n * Avatar group overflow button component.\n * This is used for the overflow button template.\n * Although any content can be projected as the overflow button, this component provides some styling and accessibility features.\n */\n@Component({\n selector: 'fd-avatar-group-overflow-button',\n template: ` <ng-content></ng-content>`,\n host: {\n role: 'button'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,\n useExisting: forwardRef(() => AvatarGroupOverflowButtonComponent)\n }\n ]\n})\nexport class AvatarGroupOverflowButtonComponent\n extends FocusableItemDirective\n implements OnChanges, OnInit, CssClassBuilder\n{\n /**\n * Size of the overflow button.\n */\n @Input()\n size: Size = 'l';\n\n /**\n * Whether the overflow button should be displayed as a circle.\n */\n @Input()\n @HostBinding('class.fd-avatar--circle')\n circle = false;\n\n /**\n * A number from 1 to 10 representing the background color of the Avatar.\n */\n @Input() colorAccent: Nullable<ColorAccent> = null;\n\n /**\n * The class to apply to the host element.\n **/\n @Input()\n class: Nullable<string>;\n\n /** @hidden */\n constructor() {\n super();\n this.setFocusable(inject(AVATAR_GROUP_HOST_CONFIG).type === 'individual');\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class || '',\n 'fd-avatar fd-avatar--overflow',\n 'fd-avatar--' + this.size,\n this.colorAccent ? 'fd-avatar--' + this.colorAccent : ''\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation,\n computed,\n inject\n} from '@angular/core';\nimport { FocusableListDirective, RtlService, elementClick$ } from '@fundamental-ngx/cdk/utils';\nimport { BarComponent, BarElementDirective, BarLeftDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { PopoverBodyHeaderDirective } from '@fundamental-ngx/core/popover';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { Subscription, map, merge, startWith } from 'rxjs';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { AvatarGroupItemRendererDirective } from '../../directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from '../../directives/avatar-group-item.directive';\n\n@Component({\n selector: 'fd-default-avatar-group-overflow-body',\n templateUrl: './default-avatar-group-overflow-body.component.html',\n imports: [\n PortalModule,\n AvatarGroupItemRendererDirective,\n FocusableListDirective,\n NgTemplateOutlet,\n PopoverBodyHeaderDirective,\n BarComponent,\n ButtonBarComponent,\n BarElementDirective,\n BarLeftDirective,\n FdTranslatePipe\n ],\n host: {\n class: 'fd-popover__wrapper',\n '[style.max-width.rem]': '20'\n },\n styleUrl: './default-avatar-group-overflow-body.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultAvatarGroupOverflowBodyComponent implements AfterViewInit, OnDestroy {\n /**\n * List of avatars to be rendered in the overflow popover.\n **/\n @Input()\n avatars: Iterable<AvatarGroupItemRendererDirective> = [];\n\n /**\n * Title of the overflow popover.\n * */\n @Input()\n overflowPopoverTitle: string;\n\n /** @hidden */\n @ViewChildren(AvatarGroupItemRendererDirective)\n _avatarGroupItemPortals: QueryList<AvatarGroupItemRendererDirective>;\n\n /** @hidden */\n _overflowPopoverStage: 'main' | 'details' = 'main';\n\n /** @hidden */\n _selectedItem: AvatarGroupItemDirective;\n\n /** @hidden */\n get _isDetailStage(): boolean {\n return this._overflowPopoverStage === 'details';\n }\n\n /** @hidden */\n protected readonly navigationArrow = computed(() =>\n this._rtlService?.rtl() ? 'navigation-right-arrow' : 'navigation-left-arrow'\n );\n\n /** @hidden */\n private _itemClickSubscription: Subscription;\n\n /** @hidden */\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._avatarGroupItemPortals.changes\n .pipe(\n startWith(this._avatarGroupItemPortals),\n map((avatarGroupItemPortals) => avatarGroupItemPortals.toArray())\n )\n .subscribe((items: AvatarGroupItemRendererDirective[]) => {\n if (this._itemClickSubscription) {\n this._itemClickSubscription.unsubscribe();\n }\n this._itemClickSubscription = merge(\n ...items.map((item) =>\n item.element$.pipe(\n filter(Boolean),\n switchMap((el) => elementClick$(el, this._renderer).pipe(map(() => item)))\n )\n )\n ).subscribe((item: AvatarGroupItemRendererDirective) => {\n this._overflowPopoverStage = 'details';\n this._selectedItem = item.avatarGroupItem;\n this._changeDetectorRef.detectChanges();\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this._itemClickSubscription) {\n this._itemClickSubscription.unsubscribe();\n }\n }\n\n /** @hidden */\n protected openOverflowMain(): void {\n this._overflowPopoverStage = 'main';\n this._changeDetectorRef.detectChanges();\n }\n}\n","<div fd-popover-body-header>\n <div fd-bar barDesign=\"header\">\n <div fd-bar-left>\n @if (_isDetailStage) {\n <fd-button-bar\n (click)=\"openOverflowMain()\"\n [glyph]=\"navigationArrow()\"\n fdType=\"transparent\"\n [attr.aria-label]=\"('coreAvatarGroup.backButton' | fdTranslate)()\"\n [title]=\"('coreAvatarGroup.backButton' | fdTranslate)()\"\n ></fd-button-bar>\n }\n <fd-bar-element>\n {{ _isDetailStage ? _selectedItem.title : overflowPopoverTitle }}\n </fd-bar-element>\n @if (_isDetailStage) {\n <fd-bar-element> </fd-bar-element>\n }\n </div>\n </div>\n</div>\n<div\n class=\"fd-avatar-group__overflow-body\"\n [class.fd-avatar-group__overflow-body--no-padding]=\"_isDetailStage\"\n [class.fd-avatar-group__overflow-body--no-horizontal-scroll]=\"_isDetailStage\"\n fdkFocusableList\n navigationDirection=\"horizontal\"\n>\n @if (_overflowPopoverStage === 'main') {\n @for (item of avatars; track item) {\n <ng-template\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [avatarGroupItem]=\"item.avatarGroupItem\"\n [forceVisibility]=\"true\"\n >\n </ng-template>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"_selectedItem.details\"></ng-template>\n }\n</div>\n","import { Directive, EmbeddedViewRef, inject, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n@Directive({\n selector: '[fdAvatarGroupInternalOverflowButton]',\n standalone: true\n})\nexport class AvatarGroupInternalOverflowButtonDirective implements OnDestroy {\n /**\n * List of hidden items to be rendered in the overflow popover.\n **/\n @Input('fdAvatarGroupInternalOverflowButton')\n set hiddenItems(value: AvatarGroupItemRendererDirective[] | null) {\n const hiddenItems = value || [];\n if (hiddenItems.length > 0) {\n this._show(hiddenItems);\n } else {\n this._hide();\n }\n }\n\n /** @hidden */\n private readonly _templateContext: { $implicit: AvatarGroupItemRendererDirective[] } = { $implicit: [] };\n /** @hidden */\n private readonly _templateRef: TemplateRef<{ $implicit: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n /** @hidden */\n private readonly _viewContainerRef = inject(ViewContainerRef);\n /** @hidden */\n private _embeddedView?: EmbeddedViewRef<any>;\n\n /** @hidden */\n static ngTemplateContextGuard(\n _directive: AvatarGroupInternalOverflowButtonDirective,\n context: unknown\n ): context is { $implicit: AvatarGroupItemRendererDirective[] } {\n return true;\n }\n /** @hidden */\n ngOnDestroy(): void {\n this._hide();\n }\n\n /** @hidden */\n private _show(hiddenItems: AvatarGroupItemRendererDirective[]): void {\n this._templateContext.$implicit = hiddenItems;\n if (this._embeddedView) {\n this._embeddedView.detectChanges();\n return;\n }\n this._viewContainerRef.clear();\n this._embeddedView = this._viewContainerRef.createEmbeddedView(this._templateRef, this._templateContext);\n this._embeddedView.detectChanges();\n }\n\n /** @hidden */\n private _hide(): void {\n this._viewContainerRef.clear();\n this._embeddedView = undefined;\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n/**\n * Avatar group overflow body directive, used to provide a template for the avatar group overflow body.\n * If nothing is provided, default overflow body will be used.\n */\n@Directive({\n selector: '[fdAvatarGroupOverflowBody]',\n standalone: true\n})\nexport class AvatarGroupOverflowBodyDirective {\n /** @hidden */\n readonly _templateRef: TemplateRef<{ hiddenItems: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n/**\n * Avatar group overflow button directive, used to provide a template for the avatar group overflow button.\n * If nothing is provided, default overflow button will be used.\n */\n@Directive({\n selector: '[fdAvatarGroupOverflowButton]',\n standalone: true\n})\nexport class AvatarGroupOverflowButtonDirective {\n /** @hidden */\n readonly _templateRef: TemplateRef<{ hiddenItems: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n}\n","import { Direction } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n QueryList,\n ViewChildren,\n ViewEncapsulation,\n computed,\n inject\n} from '@angular/core';\nimport {\n FocusableItemDirective,\n FocusableListDirective,\n ResizeObserverDirective,\n RtlService\n} from '@fundamental-ngx/cdk/utils';\nimport { PopoverBodyDirective, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { AvatarGroupHostComponent } from './components/avatar-group-host.component';\nimport { AvatarGroupOverflowButtonComponent } from './components/avatar-group-overflow-button.component';\nimport { DefaultAvatarGroupOverflowBodyComponent } from './components/default-avatar-group-overflow-body/default-avatar-group-overflow-body.component';\nimport { AvatarGroupInternalOverflowButtonDirective } from './directives/avatar-group-internal-overflow-button.directive';\nimport { AvatarGroupItemRendererDirective } from './directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupOverflowBodyDirective } from './directives/avatar-group-overflow-body.directive';\nimport { AvatarGroupOverflowButtonDirective } from './directives/avatar-group-overflow-button.directive';\nimport { AVATAR_GROUP_HOST_CONFIG } from './tokens';\nimport { AvatarGroupHostConfig } from './types';\n\n@Component({\n selector: 'fd-avatar-group',\n templateUrl: './avatar-group.component.html',\n styleUrl: './avatar-group.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AVATAR_GROUP_HOST_CONFIG,\n useExisting: AvatarGroupComponent\n }\n ],\n imports: [\n AvatarGroupHostComponent,\n PopoverComponent,\n PopoverControlComponent,\n PopoverBodyDirective,\n NgTemplateOutlet,\n FocusableItemDirective,\n FocusableListDirective,\n AvatarGroupItemRendererDirective,\n AvatarGroupOverflowButtonComponent,\n DefaultAvatarGroupOverflowBodyComponent,\n AvatarGroupInternalOverflowButtonDirective,\n ResizeObserverDirective\n ]\n})\nexport class AvatarGroupComponent implements AvatarGroupHostConfig {\n /**\n * The AvatarGroup control has two group types:\n *\n * `group`: The avatars are displayed as partially overlapped on top of each other and the entire group has one click/tap area.\n * `individual`: The avatars are displayed side-by-side and each avatar has its own click/tap area.\n * */\n @Input()\n type: AvatarGroupHostConfig['type'] = 'individual';\n\n /**\n * Orientation of the AvatarGroup control.\n *\n * `horizontal`: The avatars are displayed horizontally.\n * `vertical`: The avatars are displayed vertically.\n */\n @Input()\n orientation: AvatarGroupHostConfig['orientation'] = 'horizontal';\n\n /**\n * The spacing between the items depends on the size of the avatars in the group.\n * The size is also used for the default overflow button.\n * `xs`, `s`, `m`, `l`, `xl`\n */\n @Input()\n size: AvatarGroupHostConfig['size'] = 'l';\n\n /**\n * The title which is displayed when user opens the overflow popover.\n * This takes effect only when default overflow popover body is used,\n * otherwise the title should be set on the custom overflow popover body component.\n */\n @Input()\n overflowPopoverTitle: string;\n\n /** @hidden */\n @ViewChildren(AvatarGroupItemRendererDirective)\n _avatarRenderers: QueryList<AvatarGroupItemRendererDirective>;\n\n /** @hidden */\n @ContentChildren(AvatarGroupItemDirective)\n _avatars: QueryList<AvatarGroupItemDirective>;\n\n /** @hidden */\n @ContentChild(AvatarGroupOverflowButtonDirective)\n _overflowButton: AvatarGroupOverflowButtonDirective;\n\n /** @hidden */\n @ContentChild(AvatarGroupOverflowBodyDirective)\n _avatarGroupPopoverBody: AvatarGroupOverflowBodyDirective;\n\n /** @hidden */\n protected readonly contentDirection = computed<Direction>(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n _detectChanges(): void {\n this._cdr.detectChanges();\n }\n}\n","<ng-content></ng-content>\n@if (type === 'individual') {\n <fd-avatar-group-host\n #avatarGroupHostComponent\n [type]=\"type\"\n [size]=\"size\"\n [orientation]=\"orientation\"\n fdkResizeObserver\n fdkFocusableList\n [contentDirection]=\"contentDirection()\"\n [wrap]=\"true\"\n [navigationDirection]=\"orientation\"\n [items]=\"_avatars\"\n (resized)=\"_detectChanges()\"\n >\n @for (item of _avatars; track item) {\n <fd-popover [noArrow]=\"false\" [focusAutoCapture]=\"true\">\n <fd-popover-control tabindex=\"-1\" (click)=\"outletItem.element.focus()\">\n <ng-template\n #outletItem=\"fdAvatarGroupItemPortal\"\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [forceVisibility]=\"item.forceVisibility\"\n [avatarGroupItem]=\"item\"\n >\n </ng-template>\n </fd-popover-control>\n @if (item.details) {\n <ng-template fdPopoverBody>\n <ng-template [ngTemplateOutlet]=\"item.details\"></ng-template>\n </ng-template>\n }\n </fd-popover>\n }\n <fd-popover\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n *fdAvatarGroupInternalOverflowButton=\"avatarGroupHostComponent._hiddenItems(); let hiddenItems\"\n >\n <fd-popover-control tabindex=\"-1\">\n <ng-template\n [ngTemplateOutlet]=\"overflowButtonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </fd-popover-control>\n <ng-template fdPopoverBody>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </ng-template>\n </fd-popover>\n </fd-avatar-group-host>\n} @else {\n <fd-popover [noArrow]=\"false\" [focusAutoCapture]=\"true\" fdkResizeObserver (resized)=\"_detectChanges()\">\n <fd-popover-control>\n <fd-avatar-group-host\n #avatarGroupHostComponent\n [type]=\"type\"\n [size]=\"size\"\n [orientation]=\"orientation\"\n [fdkFocusableItem]=\"true\"\n >\n @for (item of _avatars; track item) {\n <ng-template\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [forceVisibility]=\"item.forceVisibility\"\n [avatarGroupItem]=\"item\"\n >\n </ng-template>\n }\n <ng-template\n [fdAvatarGroupInternalOverflowButton]=\"avatarGroupHostComponent._hiddenItems()\"\n let-hiddenItems\n >\n <ng-template\n [ngTemplateOutlet]=\"overflowButtonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </ng-template>\n </fd-avatar-group-host>\n </fd-popover-control>\n <ng-template fdPopoverBody>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: _avatarRenderers }\"\n ></ng-template>\n </ng-template>\n </fd-popover>\n}\n<ng-template #overflowButtonTemplate let-hiddenItems>\n @if (_overflowButton) {\n <ng-template\n [ngTemplateOutlet]=\"_overflowButton._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-avatar-group-overflow-button [size]=\"size\" [colorAccent]=\"1\">\n +{{ hiddenItems.length }}\n </fd-avatar-group-overflow-button>\n }\n</ng-template>\n<ng-template #avatarGroupOverflowBodyTemplate let-hiddenItems>\n @if (_avatarGroupPopoverBody) {\n <ng-template\n [ngTemplateOutlet]=\"_avatarGroupPopoverBody._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-default-avatar-group-overflow-body [avatars]=\"hiddenItems\" [overflowPopoverTitle]=\"overflowPopoverTitle\" />\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * Avatar group overflow body component, used to provide a template for the avatar group overflow body.\n */\n@Component({\n selector: 'fd-avatar-group-overflow-body',\n templateUrl: './avatar-group-overflow-body.component.html',\n host: {\n class: 'fd-popover__wrapper'\n },\n styleUrl: './avatar-group-overflow-body.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class AvatarGroupOverflowBodyComponent {\n /** Remove the padding from the overflow body. */\n @Input()\n noPadding = false;\n\n /** Hide horizontal scrollbar from the overflow body. */\n @Input()\n noHorizontalScroll = true;\n\n /** Hide vertical scrollbar from the overflow body. */\n @Input()\n noVerticalScroll = true;\n\n /** Additional popover body class */\n @Input()\n additionalPopoverBodyClass = '';\n}\n","<ng-content select=\"[fd-popover-body-header]\"></ng-content>\n<div\n class=\"fd-avatar-group__overflow-body\"\n [class.fd-avatar-group__overflow-body--no-padding]=\"noPadding\"\n [class.fd-avatar-group__overflow-body--no-horizontal-scroll]=\"noHorizontalScroll\"\n [class.fd-avatar-group__overflow-body--no-vertical-scroll]=\"noVerticalScroll\"\n>\n <ng-content select=\"[fd-avatar-group-overflow-body-content]\"></ng-content>\n</div>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\nimport { AvatarGroupComponent } from './avatar-group.component';\nimport { AvatarGroupOverflowBodyComponent } from './components/avatar-group-overflow-body/avatar-group-overflow-body.component';\nimport { AvatarGroupOverflowButtonComponent } from './components/avatar-group-overflow-button.component';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupOverflowBodyDirective } from './directives/avatar-group-overflow-body.directive';\nimport { AvatarGroupOverflowButtonDirective } from './directives/avatar-group-overflow-button.directive';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupOverflowButtonComponent,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowBodyComponent,\n AvatarGroupOverflowBodyDirective,\n PortalModule\n ],\n exports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupOverflowButtonComponent,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowBodyComponent,\n AvatarGroupOverflowBodyDirective\n ]\n})\nexport class AvatarGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MAGa,wBAAwB,GAAG,IAAI,cAAc,CACtD,sEAAsE;;ACF1E;;AAEG;MAKU,wBAAwB,CAAA;AAJrC,IAAA,WAAA,GAAA;AAWI;;AAEK;QAEL,IAAA,CAAA,eAAe,GAAG,KAAK;;AAGvB,QAAA,IAAA,CAAA,YAAY,GAAsB,MAAM,CAAC,WAAW,CAAC;AAoBxD,IAAA;AAlBG;;;AAGK;IACL,IACI,OAAO,CAAC,eAA2C,EAAA;AACnD,QAAA,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;YACrC;QACJ;AACA,QAAA,IAAI,CAAC,QAAQ,GAAG,eAAe;IACnC;AAEA,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ;IACxB;8GA9BS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,wBAAA,EAAA,OAAA,CAAA,EAAA,eAAA,EAAA,CAAA,kCAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE;AACf,iBAAA;;sBAKI,KAAK;uBAAC,wBAAwB;;sBAM9B,KAAK;uBAAC,kCAAkC;;sBAUxC,KAAK;uBAAC,mBAAmB;;;MCTjB,gCAAgC,CAAA;AAoBzC;;AAEI;AACJ,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;IAC3C;AAEA;;AAEI;AACJ,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAgB;IAC7D;AAEA;;AAEI;AACJ,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE;YACjD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5C,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;YACxB,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;YAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;AAEjD,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;gBAC5D,IAAI,CAAC,eAAe,GAAG,KAAK,GAAG,UAAU,GAAG,WAAW;YAC3D;QACJ;QACA,OAAO,IAAI,CAAC,eAAe;IAC/B;AAEA;;AAEI;AACJ,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,YAAA,IAAI,CAAC,gBAAgB;AACjB,gBAAA,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM;oBAC3C,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC;oBACpD,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC;QAC/D;QACA,OAAO,IAAI,CAAC,gBAAgB;IAChC;;AAgCA,IAAA,WAAA,GAAA;AAzFA;;AAEI;QAEJ,IAAA,CAAA,eAAe,GAAG,KAAK;;QAwDf,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;AAGvD,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEpD;;AAEI;AACI,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAwB,IAAI,CAAC;;QAM5D,IAAA,CAAA,YAAY,GAAG,IAAI;;QAMnB,IAAA,CAAA,eAAe,GAAG,CAAC;;QAGnB,IAAA,CAAA,gBAAgB,GAAG,CAAC;;AAGpB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,wBAAwB,CAAC;AA0CtD;;AAEI;QACJ,IAAA,CAAA,WAAW,GAAG,MAAe,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,OAAO;QAzC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;AAC7C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAC9B,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,EAC9B,SAAS,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,OAAiC,EAAE,SAAS,CAA8B,CAAC,CAC/G;IACL;;IAGA,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE;IACf;AAEA;;AAEI;IACJ,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC3B,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;IAC7B;AAEA;;AAEI;IACJ,IAAI,GAAA;AACA,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;YACd;QACJ;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC;QACxG;AACA,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;AACvE,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;QACrC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY,CAAC;QACxD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY;IAC9D;AAOA;;AAEI;AACJ,IAAA,WAAW,CAAC,QAAiB,EAAA;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7C;;IAGA,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE;IACzB;8GArJS,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAR9B;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,WAAW,EAAE;AAChB,aAAA;YACD;AACH,SAAA,EAAA,QAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEQ,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAZ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAA;AACd,yBAAA;wBACD;AACH;AACJ,iBAAA;;sBAKI;;sBAKA;;;MCSQ,wBAAwB,CAAA;AARrC,IAAA,WAAA,GAAA;;AAoDI,QAAA,IAAA,CAAA,cAAc,GAAsC,MAAM,CAAC,uBAAuB,CAAC,CAAC,aAAa;;AAGxF,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;;AAGxC,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAqC,EAAE,wDAAC;;AAG5C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;;AAGzC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;;AAGhC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAiB;AAyFrD,IAAA;;IArFG,sBAAsB,GAAA;QAClB,OAAO;YACH,IAAI,CAAC,KAAK,IAAI,EAAE;YAChB,iBAAiB;YACjB,IAAI,CAAC,IAAI,KAAK,YAAY,GAAG,kCAAkC,GAAG,EAAE;YACpE,IAAI,CAAC,IAAI,KAAK,OAAO,GAAG,6BAA6B,GAAG,EAAE;AAC1D,YAAA,IAAI,CAAC,WAAW,GAAG,mBAAmB,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE;AAC9D,YAAA,IAAI,CAAC,IAAI,GAAG,mBAAmB,GAAG,IAAI,CAAC,IAAI,GAAG;SACjD;IACL;;IAGA,QAAQ,GAAA;QACJ,IAAI,CAAC,sBAAsB,EAAE;IACjC;;AAGA,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,CAAC,sBAAsB,EAAE;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC;;IAGA,eAAe,GAAA;AACX,QAAA,aAAa,CAAC;YACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CACtB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAC1B;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;SACtC;AACI,aAAA,IAAI,CACD,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,KAAK,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,EAClF,SAAS,CAAC,MAAM,eAAe,EAAE,CAAC,EAClC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aAEvC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,KAAI;AACzC,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;AAC3C,YAAA,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;AAC1C,YAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC;AACtC,QAAA,CAAC,CAAC;IACV;;IAGQ,oBAAoB,CACxB,cAAsB,EACtB,KAAyC,EAAA;AAKzC,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;YACjC,OAAO;AACH,gBAAA,YAAY,EAAE,KAAK;AACnB,gBAAA,WAAW,EAAE;aAChB;QACL;AACA,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC;QAC3D,MAAM,WAAW,GAAuC,EAAE;AAC1D,QAAA,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;AAC9F,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AACtB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB;YACJ;AACA,YAAA,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAA,IAAI,QAAQ,IAAI,cAAc,EAAE;AAC5B,gBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3B;AAAO,iBAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AAC9B,gBAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1B;QACJ;AACA;;AAEG;AACH,QAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,YAAA,MAAM,qBAAqB,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;AAC/F,YAAA,WAAW,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3E;QACA,OAAO;YACH,YAAY;YACZ;SACH;IACL;8GAnJS,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAwChB,gCAAgC,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA9CvC,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;AAqErC,UAAA,CAAA;IADC,aAAa;;;;AAUb,CAAA,EAAA,wBAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA;2FAxEQ,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBARpC,SAAS;+BACI,sBAAsB,EAAA,QAAA,EACtB,2BAA2B,EAAA,OAAA,EAC5B,EAAE,EAAA,eAAA,EACM,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,2CAAA,CAAA,EAAA;;sBASpC;;sBAOA;;sBAOA;;sBAOA;;sBAMA;;sBAOA,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,gCAAgC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;ACxD5E;;;;AAIG;AAiBG,MAAO,kCACT,SAAQ,sBAAsB,CAAA;;AA4B9B,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AA1BX;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAS,GAAG;AAEhB;;AAEG;QAGH,IAAA,CAAA,MAAM,GAAG,KAAK;AAEd;;AAEG;QACM,IAAA,CAAA,WAAW,GAA0B,IAAI;AAW9C,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC;IAC7E;;IAIA,sBAAsB,GAAA;QAClB,OAAO;YACH,IAAI,CAAC,KAAK,IAAI,EAAE;YAChB,+BAA+B;YAC/B,aAAa,GAAG,IAAI,CAAC,IAAI;AACzB,YAAA,IAAI,CAAC,WAAW,GAAG,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG;SACzD;IACL;;IAGA,QAAQ,GAAA;QACJ,IAAI,CAAC,sBAAsB,EAAE;IACjC;;IAGA,WAAW,GAAA;QACP,IAAI,CAAC,sBAAsB,EAAE;IACjC;8GArDS,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,SAAA,EAPhC;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kCAAkC;AACnE;AACJ,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAZS,CAAA,0BAAA,CAA4B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;AAkDtC,UAAA,CAAA;IADC,aAAa;;;;AAQb,CAAA,EAAA,kCAAA,CAAA,SAAA,EAAA,wBAAA,EAAA,IAAA,CAAA;2FA3CQ,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAhB9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,QAAQ,EAAE,CAAA,0BAAA,CAA4B;AACtC,oBAAA,IAAI,EAAE;AACF,wBAAA,IAAI,EAAE;AACT,qBAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACrC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,WAAW,EAAE,UAAU,CAAC,wCAAwC;AACnE;AACJ;AACJ,iBAAA;;sBAQI;;sBAMA;;sBACA,WAAW;uBAAC,yBAAyB;;sBAMrC;;sBAKA;;;MCpBQ,uCAAuC,CAAA;AAvBpD,IAAA,WAAA,GAAA;AAwBI;;AAEI;QAEJ,IAAA,CAAA,OAAO,GAA+C,EAAE;;QAaxD,IAAA,CAAA,qBAAqB,GAAuB,MAAM;;QAW/B,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAC1C,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,wBAAwB,GAAG,uBAAuB,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC/E;;AAMgB,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;;AAG9C,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;;QAG7B,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAwCxE,IAAA;;AA3DG,IAAA,IAAI,cAAc,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,qBAAqB,KAAK,SAAS;IACnD;;IAoBA,eAAe,GAAA;QACX,IAAI,CAAC,uBAAuB,CAAC;aACxB,IAAI,CACD,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,EACvC,GAAG,CAAC,CAAC,sBAAsB,KAAK,sBAAsB,CAAC,OAAO,EAAE,CAAC;AAEpE,aAAA,SAAS,CAAC,CAAC,KAAyC,KAAI;AACrD,YAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,gBAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;YAC7C;AACA,YAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAC/B,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KACd,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,MAAM,CAAC,OAAO,CAAC,EACf,SAAS,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAC7E,CACJ,CACJ,CAAC,SAAS,CAAC,CAAC,IAAsC,KAAI;AACnD,gBAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS;AACtC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe;AACzC,gBAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;AAC3C,YAAA,CAAC,CAAC;AACN,QAAA,CAAC,CAAC;IACV;;IAGA,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;QAC7C;IACJ;;IAGU,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,qBAAqB,GAAG,MAAM;AACnC,QAAA,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE;IAC3C;8GAlFS,uCAAuC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvC,uCAAuC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,SAAA,EAclC,gCAAgC,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9DlD,whDA0CA,oIDbQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,gCAAgC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChC,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,2BAAA,EAAA,wBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,0BAA0B,EAAA,QAAA,EAAA,iDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC1B,YAAY,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,QAAA,EAAA,YAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,kBAAkB,4HAClB,mBAAmB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,gBAAgB,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAChB,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAUV,uCAAuC,EAAA,UAAA,EAAA,CAAA;kBAvBnD,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uCAAuC,EAAA,OAAA,EAExC;wBACL,YAAY;wBACZ,gCAAgC;wBAChC,sBAAsB;wBACtB,gBAAgB;wBAChB,0BAA0B;wBAC1B,YAAY;wBACZ,kBAAkB;wBAClB,mBAAmB;wBACnB,gBAAgB;wBAChB;qBACH,EAAA,IAAA,EACK;AACF,wBAAA,KAAK,EAAE,qBAAqB;AAC5B,wBAAA,uBAAuB,EAAE;AAC5B,qBAAA,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,whDAAA,EAAA,MAAA,EAAA,CAAA,6EAAA,CAAA,EAAA;;sBAM9C;;sBAMA;;sBAIA,YAAY;uBAAC,gCAAgC;;;MEvDrC,0CAA0C,CAAA;AAJvD,IAAA,WAAA,GAAA;;AAmBqB,QAAA,IAAA,CAAA,gBAAgB,GAAsD,EAAE,SAAS,EAAE,EAAE,EAAE;;AAEvF,QAAA,IAAA,CAAA,YAAY,GAAmE,MAAM,CAAC,WAAW,CAAC;;AAElG,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAiChE,IAAA;AAnDG;;AAEI;IACJ,IACI,WAAW,CAAC,KAAgD,EAAA;AAC5D,QAAA,MAAM,WAAW,GAAG,KAAK,IAAI,EAAE;AAC/B,QAAA,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAC3B;aAAO;YACH,IAAI,CAAC,KAAK,EAAE;QAChB;IACJ;;AAYA,IAAA,OAAO,sBAAsB,CACzB,UAAsD,EACtD,OAAgB,EAAA;AAEhB,QAAA,OAAO,IAAI;IACf;;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,KAAK,EAAE;IAChB;;AAGQ,IAAA,KAAK,CAAC,WAA+C,EAAA;AACzD,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,WAAW;AAC7C,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;YAClC;QACJ;AACA,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC;AACxG,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;IACtC;;IAGQ,KAAK,GAAA;AACT,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS;IAClC;8GAnDS,0CAA0C,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA1C,0CAA0C,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,qCAAA,EAAA,aAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA1C,0CAA0C,EAAA,UAAA,EAAA,CAAA;kBAJtD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,UAAU,EAAE;AACf,iBAAA;;sBAKI,KAAK;uBAAC,qCAAqC;;;ACRhD;;;AAGG;MAKU,gCAAgC,CAAA;AAJ7C,IAAA,WAAA,GAAA;;AAMa,QAAA,IAAA,CAAA,YAAY,GAAqE,MAAM,CAAC,WAAW,CAAC;AAChH,IAAA;8GAHY,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAJ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACPD;;;AAGG;MAKU,kCAAkC,CAAA;AAJ/C,IAAA,WAAA,GAAA;;AAMa,QAAA,IAAA,CAAA,YAAY,GAAqE,MAAM,CAAC,WAAW,CAAC;AAChH,IAAA;8GAHY,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlC,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAlC,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAJ9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCkDY,oBAAoB,CAAA;AA3BjC,IAAA,WAAA,GAAA;AA4BI;;;;;AAKK;QAEL,IAAA,CAAA,IAAI,GAAkC,YAAY;AAElD;;;;;AAKG;QAEH,IAAA,CAAA,WAAW,GAAyC,YAAY;AAEhE;;;;AAIG;QAEH,IAAA,CAAA,IAAI,GAAkC,GAAG;;QA2BtB,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAY,OAAO,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;AAGzF,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;;QAGhC,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAMxE,IAAA;;IAHG,cAAc,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;IAC7B;8GA/DS,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EArBlB;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,WAAW,EAAE;AAChB;AACJ,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EA4Da,kCAAkC,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIlC,gCAAgC,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAR7B,wBAAwB,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EAJ3B,gCAAgC,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChGlD,8kJAiHA,EAAA,MAAA,EAAA,CAAA,4voCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDnEQ,wBAAwB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,gBAAgB,6lBAChB,uBAAuB,EAAA,QAAA,EAAA,wCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,oBAAoB,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,8BAAA,EAAA,6BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,2BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,2BAAA,EAAA,wBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,gCAAgC,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChC,kCAAkC,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClC,uCAAuC,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,sBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvC,0CAA0C,mIAC1C,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAGlB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA3BhC,SAAS;+BACI,iBAAiB,EAAA,aAAA,EAGZ,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,WAAW,EAAA;AACd;qBACJ,EAAA,OAAA,EACQ;wBACL,wBAAwB;wBACxB,gBAAgB;wBAChB,uBAAuB;wBACvB,oBAAoB;wBACpB,gBAAgB;wBAChB,sBAAsB;wBACtB,sBAAsB;wBACtB,gCAAgC;wBAChC,kCAAkC;wBAClC,uCAAuC;wBACvC,0CAA0C;wBAC1C;AACH,qBAAA,EAAA,QAAA,EAAA,8kJAAA,EAAA,MAAA,EAAA,CAAA,4voCAAA,CAAA,EAAA;;sBASA;;sBASA;;sBAQA;;sBAQA;;sBAIA,YAAY;uBAAC,gCAAgC;;sBAI7C,eAAe;uBAAC,wBAAwB;;sBAIxC,YAAY;uBAAC,kCAAkC;;sBAI/C,YAAY;uBAAC,gCAAgC;;;AE1GlD;;AAEG;MAYU,gCAAgC,CAAA;AAX7C,IAAA,WAAA,GAAA;;QAcI,IAAA,CAAA,SAAS,GAAG,KAAK;;QAIjB,IAAA,CAAA,kBAAkB,GAAG,IAAI;;QAIzB,IAAA,CAAA,gBAAgB,GAAG,IAAI;;QAIvB,IAAA,CAAA,0BAA0B,GAAG,EAAE;AAClC,IAAA;8GAhBY,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,wTChB7C,scASA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FDOa,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAX5C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAAA,IAAA,EAEnC;AACF,wBAAA,KAAK,EAAE;qBACV,EAAA,aAAA,EAEc,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,QAAA,EAAA,scAAA,EAAA,MAAA,EAAA,CAAA,qEAAA,CAAA,EAAA;;sBAIf;;sBAIA;;sBAIA;;sBAIA;;;AErBL;;;AAGG;MAoBU,iBAAiB,CAAA;8GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAjBtB,oBAAoB;YACpB,wBAAwB;YACxB,kCAAkC;YAClC,kCAAkC;YAClC,gCAAgC;YAChC,gCAAgC;AAChC,YAAA,YAAY,aAGZ,oBAAoB;YACpB,wBAAwB;YACxB,kCAAkC;YAClC,kCAAkC;YAClC,gCAAgC;YAChC,gCAAgC,CAAA,EAAA,CAAA,CAAA;AAG3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAjBtB,oBAAoB;YAMpB,YAAY,CAAA,EAAA,CAAA,CAAA;;2FAWP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAnB7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,oBAAoB;wBACpB,wBAAwB;wBACxB,kCAAkC;wBAClC,kCAAkC;wBAClC,gCAAgC;wBAChC,gCAAgC;wBAChC;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,oBAAoB;wBACpB,wBAAwB;wBACxB,kCAAkC;wBAClC,kCAAkC;wBAClC,gCAAgC;wBAChC;AACH;AACJ,iBAAA;;;AC/BD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-avatar-group.mjs","sources":["../../../../libs/core/avatar-group/tokens.ts","../../../../libs/core/avatar-group/directives/avatar-group-item.directive.ts","../../../../libs/core/avatar-group/directives/avatar-group-item-renderer.directive.ts","../../../../libs/core/avatar-group/components/avatar-group-host.component.ts","../../../../libs/core/avatar-group/components/avatar-group-overflow-button.component.ts","../../../../libs/core/avatar-group/components/default-avatar-group-overflow-body/default-avatar-group-overflow-body.component.ts","../../../../libs/core/avatar-group/components/default-avatar-group-overflow-body/default-avatar-group-overflow-body.component.html","../../../../libs/core/avatar-group/directives/avatar-group-internal-overflow-button.directive.ts","../../../../libs/core/avatar-group/directives/avatar-group-overflow-body.directive.ts","../../../../libs/core/avatar-group/directives/avatar-group-overflow-button.directive.ts","../../../../libs/core/avatar-group/avatar-group.component.ts","../../../../libs/core/avatar-group/avatar-group.component.html","../../../../libs/core/avatar-group/components/avatar-group-overflow-body/avatar-group-overflow-body.component.ts","../../../../libs/core/avatar-group/components/avatar-group-overflow-body/avatar-group-overflow-body.component.html","../../../../libs/core/avatar-group/avatar-group.module.ts","../../../../libs/core/avatar-group/fundamental-ngx-core-avatar-group.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AvatarGroupHostConfig } from './types';\n\nexport const AVATAR_GROUP_HOST_CONFIG = new InjectionToken<AvatarGroupHostConfig>(\n 'AvatarGroup host configuration. Is provided by AvatarGroupComponent.'\n);\n","import { Directive, inject, Input, TemplateRef } from '@angular/core';\n\n/**\n * Avatar group item directive, used to provide a template for the avatar group item.\n */\n@Directive({\n selector: '[fdAvatarGroupItem]',\n standalone: true\n})\nexport class AvatarGroupItemDirective {\n /**\n * Text, which will be displayed when in overflow popover and activated\n * */\n @Input('fdAvatarGroupItemTitle')\n title: string;\n\n /**\n * If set to true, item will never be hidden in overflow popover\n * */\n @Input('fdAvatarGroupItemForceVisibility')\n forceVisibility = false;\n\n /** @hidden */\n _templateRef: TemplateRef<void> = inject(TemplateRef);\n\n /**\n * Template for the details of the avatar group item.\n * This template it used to render additional information in the overflow popover.\n * */\n @Input('fdAvatarGroupItem')\n set details(detailsTemplate: TemplateRef<void> | string) {\n if (typeof detailsTemplate === 'string') {\n return;\n }\n this._details = detailsTemplate;\n }\n\n get details(): TemplateRef<void> {\n return this._details;\n }\n\n /** @hidden */\n private _details: TemplateRef<void>;\n}\n","import { CdkPortalOutlet, TemplatePortal } from '@angular/cdk/portal';\nimport { Directive, EmbeddedViewRef, Input, OnInit, ViewContainerRef, inject } from '@angular/core';\nimport { FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableItem, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Observable, fromEvent } from 'rxjs';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { AVATAR_GROUP_HOST_CONFIG } from '../tokens';\nimport { AvatarGroupItemDirective } from './avatar-group-item.directive';\n\n@Directive({\n selector: '[fdAvatarGroupItemPortal]',\n exportAs: 'fdAvatarGroupItemPortal',\n standalone: true,\n providers: [\n {\n provide: FDK_FOCUSABLE_ITEM_DIRECTIVE,\n useExisting: AvatarGroupItemRendererDirective\n },\n CdkPortalOutlet\n ]\n})\nexport class AvatarGroupItemRendererDirective implements OnInit, FocusableItem {\n /**\n * Avatar group item to be rendered.\n **/\n @Input() avatarGroupItem: AvatarGroupItemDirective;\n\n /**\n * Whether the item should be forced to be visible.\n **/\n @Input()\n forceVisibility = false;\n\n /**\n * HTML element of the item.\n **/\n element$: Observable<Nullable<HTMLElement>>;\n\n /** @hidden */\n keydown: Observable<KeyboardEvent>;\n\n /**\n * Whether the item is visible.\n **/\n get visible(): boolean {\n return this._portalOutlet.hasAttached();\n }\n\n /**\n * Currently rendered element's HTMLElement.\n **/\n get element(): HTMLElement {\n return this._embeddedViewRef?.rootNodes[0] as HTMLElement;\n }\n\n /**\n * Rendered element's width or it's last saved width.\n **/\n get width(): number {\n if (this.visible) {\n const rect = this.element.getBoundingClientRect();\n const style = getComputedStyle(this.element);\n const width = rect.width;\n const marginLeft = parseFloat(style.marginLeft);\n const marginRight = parseFloat(style.marginRight);\n\n if (!isNaN(width) && !isNaN(marginLeft) && !isNaN(marginRight)) {\n this._lastSavedWidth = width + marginLeft + marginRight;\n }\n }\n return this._lastSavedWidth;\n }\n\n /**\n * Rendered element's height or it's last saved height.\n **/\n get height(): number {\n if (this.visible) {\n this._lastSavedHeight =\n this.element.getBoundingClientRect().height +\n parseFloat(getComputedStyle(this.element).marginTop) +\n parseFloat(getComputedStyle(this.element).marginBottom);\n }\n return this._lastSavedHeight;\n }\n\n /** @hidden */\n private _portalOutlet = inject(CdkPortalOutlet, { host: true });\n\n /** @hidden */\n private _viewContainerRef = inject(ViewContainerRef);\n\n /**\n * @hidden\n **/\n private _element$ = new BehaviorSubject<Nullable<HTMLElement>>(null);\n\n /** @hidden */\n private _templatePortal?: TemplatePortal<void>;\n\n /** @hidden */\n private _isFocusable = true;\n\n /** @hidden */\n private _embeddedViewRef: EmbeddedViewRef<void>;\n\n /** @hidden */\n private _lastSavedWidth = 0;\n\n /** @hidden */\n private _lastSavedHeight = 0;\n\n /** @hidden */\n private _hostConfig = inject(AVATAR_GROUP_HOST_CONFIG);\n\n /** @hidden */\n constructor() {\n this.element$ = this._element$.asObservable();\n this.keydown = this._element$.pipe(\n filter((element) => !!element),\n switchMap((element) => fromEvent(element as unknown as HTMLElement, 'keydown') as Observable<KeyboardEvent>)\n );\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.show();\n }\n\n /**\n * Hides the item.\n **/\n hide(): void {\n this._portalOutlet.detach();\n this.setTabbable(false);\n this._isFocusable = false;\n }\n\n /**\n * Shows the item.\n **/\n show(): void {\n if (this.visible) {\n return;\n }\n if (!this._templatePortal) {\n this._templatePortal = new TemplatePortal(this.avatarGroupItem._templateRef, this._viewContainerRef);\n }\n this._embeddedViewRef = this._portalOutlet.attach(this._templatePortal);\n this._embeddedViewRef.detectChanges();\n this._element$.next(this.element);\n this.setTabbable(this._hostConfig.type === 'individual');\n this._isFocusable = this._hostConfig.type === 'individual';\n }\n\n /**\n * Whether the item is focusable.\n **/\n isFocusable = (): boolean => this._isFocusable && this.visible;\n\n /**\n * Sets the tabbable state of the item.\n **/\n setTabbable(tabbable: boolean): void {\n this.element.tabIndex = tabbable ? 0 : -1;\n }\n\n /** @hidden */\n focus(): void {\n this.element?.focus();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n Input,\n OnChanges,\n OnInit,\n QueryList,\n signal,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n applyCssClass,\n CssClassBuilder,\n HasElementRef,\n Nullable,\n ResizeObserverDirective\n} from '@fundamental-ngx/cdk/utils';\nimport { animationFrames, combineLatest, delayWhen, map, Observable, startWith, Subject } from 'rxjs';\nimport { AvatarGroupItemRendererDirective } from '../directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from '../directives/avatar-group-item.directive';\nimport { AvatarGroupHostConfig } from '../types';\n\n@Component({\n selector: 'fd-avatar-group-host',\n template: '<ng-content></ng-content>',\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n styleUrl: './avatar-group-host.component.scss'\n})\nexport class AvatarGroupHostComponent\n implements OnInit, AfterViewInit, OnChanges, HasElementRef, AvatarGroupHostConfig, CssClassBuilder\n{\n /**\n * The class to apply to the host element.\n **/\n @Input()\n class: Nullable<string>;\n\n /**\n * The type of the avatar group.\n * Options include 'individual' and 'group'.\n **/\n @Input()\n type: AvatarGroupHostConfig['type'];\n\n /**\n * The orientation of the avatar group.\n * Options include 'horizontal' and 'vertical'.\n **/\n @Input()\n orientation: AvatarGroupHostConfig['orientation'];\n\n /**\n * The size of the avatar group.\n * Options include 'xs', 's', 'm', 'l', and 'xl'.\n **/\n @Input()\n size: AvatarGroupHostConfig['size'];\n\n /**\n * The items to be rendered in the avatar group.\n **/\n @Input()\n items: QueryList<AvatarGroupItemDirective>;\n\n /**\n * @hidden\n * The portals to be rendered in the avatar group.\n **/\n @ContentChildren(AvatarGroupItemRendererDirective, { descendants: true })\n _portals: QueryList<AvatarGroupItemRendererDirective>;\n\n /** @hidden */\n _resizeEmitter: Observable<ResizeObserverEntry[]> = inject(ResizeObserverDirective).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.setFocusable(inject(AVATAR_GROUP_HOST_CONFIG).type === 'individual');\n }\n\n /** @hidden */\n @applyCssClass\n buildComponentCssClass(): string[] {\n return [\n this.class || '',\n 'fd-avatar fd-avatar--overflow',\n 'fd-avatar--' + this.size,\n this.colorAccent ? 'fd-avatar--' + this.colorAccent : ''\n ];\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.buildComponentCssClass();\n }\n\n /** @hidden */\n ngOnChanges(): void {\n this.buildComponentCssClass();\n }\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n QueryList,\n Renderer2,\n ViewChildren,\n ViewEncapsulation,\n computed,\n inject\n} from '@angular/core';\nimport { FocusableListDirective, RtlService, elementClick$ } from '@fundamental-ngx/cdk/utils';\nimport { BarComponent, BarElementDirective, BarLeftDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport { PopoverBodyHeaderDirective } from '@fundamental-ngx/core/popover';\nimport { Subscription, map, merge, startWith } from 'rxjs';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { AvatarGroupItemRendererDirective } from '../../directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from '../../directives/avatar-group-item.directive';\n\n@Component({\n selector: 'fd-default-avatar-group-overflow-body',\n templateUrl: './default-avatar-group-overflow-body.component.html',\n imports: [\n PortalModule,\n AvatarGroupItemRendererDirective,\n FocusableListDirective,\n NgTemplateOutlet,\n PopoverBodyHeaderDirective,\n BarComponent,\n ButtonBarComponent,\n BarElementDirective,\n BarLeftDirective\n ],\n host: {\n class: 'fd-popover__wrapper',\n '[style.max-width.rem]': '20'\n },\n styleUrl: './default-avatar-group-overflow-body.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DefaultAvatarGroupOverflowBodyComponent implements AfterViewInit, OnDestroy {\n /**\n * List of avatars to be rendered in the overflow popover.\n **/\n @Input()\n avatars: Iterable<AvatarGroupItemRendererDirective> = [];\n\n /**\n * Title of the overflow popover.\n * */\n @Input()\n overflowPopoverTitle: string;\n\n /** @hidden */\n @ViewChildren(AvatarGroupItemRendererDirective)\n _avatarGroupItemPortals: QueryList<AvatarGroupItemRendererDirective>;\n\n /** @hidden */\n _overflowPopoverStage: 'main' | 'details' = 'main';\n\n /** @hidden */\n _selectedItem: AvatarGroupItemDirective;\n\n /** @hidden */\n get _isDetailStage(): boolean {\n return this._overflowPopoverStage === 'details';\n }\n\n /** @hidden */\n protected readonly navigationArrow = computed(() =>\n this._rtlService?.rtl() ? 'navigation-right-arrow' : 'navigation-left-arrow'\n );\n\n /** @hidden */\n private _itemClickSubscription: Subscription;\n\n /** @hidden */\n private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _renderer = inject(Renderer2);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._avatarGroupItemPortals.changes\n .pipe(\n startWith(this._avatarGroupItemPortals),\n map((avatarGroupItemPortals) => avatarGroupItemPortals.toArray())\n )\n .subscribe((items: AvatarGroupItemRendererDirective[]) => {\n if (this._itemClickSubscription) {\n this._itemClickSubscription.unsubscribe();\n }\n this._itemClickSubscription = merge(\n ...items.map((item) =>\n item.element$.pipe(\n filter(Boolean),\n switchMap((el) => elementClick$(el, this._renderer).pipe(map(() => item)))\n )\n )\n ).subscribe((item: AvatarGroupItemRendererDirective) => {\n this._overflowPopoverStage = 'details';\n this._selectedItem = item.avatarGroupItem;\n this._changeDetectorRef.detectChanges();\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (this._itemClickSubscription) {\n this._itemClickSubscription.unsubscribe();\n }\n }\n\n /** @hidden */\n protected openOverflowMain(): void {\n this._overflowPopoverStage = 'main';\n this._changeDetectorRef.detectChanges();\n }\n}\n","<div fd-popover-body-header>\n <div fd-bar barDesign=\"header\">\n <div fd-bar-left>\n @if (_isDetailStage) {\n <fd-button-bar\n (click)=\"openOverflowMain()\"\n [glyph]=\"navigationArrow()\"\n fdType=\"transparent\"\n 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> </fd-bar-element>\n }\n </div>\n </div>\n</div>\n<div\n class=\"fd-avatar-group__overflow-body\"\n [class.fd-avatar-group__overflow-body--no-padding]=\"_isDetailStage\"\n [class.fd-avatar-group__overflow-body--no-horizontal-scroll]=\"_isDetailStage\"\n fdkFocusableList\n navigationDirection=\"horizontal\"\n>\n @if (_overflowPopoverStage === 'main') {\n @for (item of avatars; track item) {\n <ng-template\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [avatarGroupItem]=\"item.avatarGroupItem\"\n [forceVisibility]=\"true\"\n >\n </ng-template>\n }\n } @else {\n <ng-template [ngTemplateOutlet]=\"_selectedItem.details\"></ng-template>\n }\n</div>\n","import { Directive, EmbeddedViewRef, inject, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n@Directive({\n selector: '[fdAvatarGroupInternalOverflowButton]',\n standalone: true\n})\nexport class AvatarGroupInternalOverflowButtonDirective implements OnDestroy {\n /**\n * List of hidden items to be rendered in the overflow popover.\n **/\n @Input('fdAvatarGroupInternalOverflowButton')\n set hiddenItems(value: AvatarGroupItemRendererDirective[] | null) {\n const hiddenItems = value || [];\n if (hiddenItems.length > 0) {\n this._show(hiddenItems);\n } else {\n this._hide();\n }\n }\n\n /** @hidden */\n private readonly _templateContext: { $implicit: AvatarGroupItemRendererDirective[] } = { $implicit: [] };\n /** @hidden */\n private readonly _templateRef: TemplateRef<{ $implicit: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n /** @hidden */\n private readonly _viewContainerRef = inject(ViewContainerRef);\n /** @hidden */\n private _embeddedView?: EmbeddedViewRef<any>;\n\n /** @hidden */\n static ngTemplateContextGuard(\n _directive: AvatarGroupInternalOverflowButtonDirective,\n context: unknown\n ): context is { $implicit: AvatarGroupItemRendererDirective[] } {\n return true;\n }\n /** @hidden */\n ngOnDestroy(): void {\n this._hide();\n }\n\n /** @hidden */\n private _show(hiddenItems: AvatarGroupItemRendererDirective[]): void {\n this._templateContext.$implicit = hiddenItems;\n if (this._embeddedView) {\n this._embeddedView.detectChanges();\n return;\n }\n this._viewContainerRef.clear();\n this._embeddedView = this._viewContainerRef.createEmbeddedView(this._templateRef, this._templateContext);\n this._embeddedView.detectChanges();\n }\n\n /** @hidden */\n private _hide(): void {\n this._viewContainerRef.clear();\n this._embeddedView = undefined;\n }\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n/**\n * Avatar group overflow body directive, used to provide a template for the avatar group overflow body.\n * If nothing is provided, default overflow body will be used.\n */\n@Directive({\n selector: '[fdAvatarGroupOverflowBody]',\n standalone: true\n})\nexport class AvatarGroupOverflowBodyDirective {\n /** @hidden */\n readonly _templateRef: TemplateRef<{ hiddenItems: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { AvatarGroupItemRendererDirective } from './avatar-group-item-renderer.directive';\n\n/**\n * Avatar group overflow button directive, used to provide a template for the avatar group overflow button.\n * If nothing is provided, default overflow button will be used.\n */\n@Directive({\n selector: '[fdAvatarGroupOverflowButton]',\n standalone: true\n})\nexport class AvatarGroupOverflowButtonDirective {\n /** @hidden */\n readonly _templateRef: TemplateRef<{ hiddenItems: AvatarGroupItemRendererDirective[] }> = inject(TemplateRef);\n}\n","import { Direction } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Input,\n QueryList,\n ViewChildren,\n ViewEncapsulation,\n computed,\n inject\n} from '@angular/core';\nimport {\n FocusableItemDirective,\n FocusableListDirective,\n ResizeObserverDirective,\n RtlService\n} from '@fundamental-ngx/cdk/utils';\nimport { PopoverBodyDirective, PopoverComponent, PopoverControlComponent } from '@fundamental-ngx/core/popover';\nimport { AvatarGroupHostComponent } from './components/avatar-group-host.component';\nimport { AvatarGroupOverflowButtonComponent } from './components/avatar-group-overflow-button.component';\nimport { DefaultAvatarGroupOverflowBodyComponent } from './components/default-avatar-group-overflow-body/default-avatar-group-overflow-body.component';\nimport { AvatarGroupInternalOverflowButtonDirective } from './directives/avatar-group-internal-overflow-button.directive';\nimport { AvatarGroupItemRendererDirective } from './directives/avatar-group-item-renderer.directive';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupOverflowBodyDirective } from './directives/avatar-group-overflow-body.directive';\nimport { AvatarGroupOverflowButtonDirective } from './directives/avatar-group-overflow-button.directive';\nimport { AVATAR_GROUP_HOST_CONFIG } from './tokens';\nimport { AvatarGroupHostConfig } from './types';\n\n@Component({\n selector: 'fd-avatar-group',\n templateUrl: './avatar-group.component.html',\n styleUrl: './avatar-group.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AVATAR_GROUP_HOST_CONFIG,\n useExisting: AvatarGroupComponent\n }\n ],\n imports: [\n AvatarGroupHostComponent,\n PopoverComponent,\n PopoverControlComponent,\n PopoverBodyDirective,\n NgTemplateOutlet,\n FocusableItemDirective,\n FocusableListDirective,\n AvatarGroupItemRendererDirective,\n AvatarGroupOverflowButtonComponent,\n DefaultAvatarGroupOverflowBodyComponent,\n AvatarGroupInternalOverflowButtonDirective,\n ResizeObserverDirective\n ]\n})\nexport class AvatarGroupComponent implements AvatarGroupHostConfig {\n /**\n * The AvatarGroup control has two group types:\n *\n * `group`: The avatars are displayed as partially overlapped on top of each other and the entire group has one click/tap area.\n * `individual`: The avatars are displayed side-by-side and each avatar has its own click/tap area.\n * */\n @Input()\n type: AvatarGroupHostConfig['type'] = 'individual';\n\n /**\n * Orientation of the AvatarGroup control.\n *\n * `horizontal`: The avatars are displayed horizontally.\n * `vertical`: The avatars are displayed vertically.\n */\n @Input()\n orientation: AvatarGroupHostConfig['orientation'] = 'horizontal';\n\n /**\n * The spacing between the items depends on the size of the avatars in the group.\n * The size is also used for the default overflow button.\n * `xs`, `s`, `m`, `l`, `xl`\n */\n @Input()\n size: AvatarGroupHostConfig['size'] = 'l';\n\n /**\n * The title which is displayed when user opens the overflow popover.\n * This takes effect only when default overflow popover body is used,\n * otherwise the title should be set on the custom overflow popover body component.\n */\n @Input()\n overflowPopoverTitle: string;\n\n /** @hidden */\n @ViewChildren(AvatarGroupItemRendererDirective)\n _avatarRenderers: QueryList<AvatarGroupItemRendererDirective>;\n\n /** @hidden */\n @ContentChildren(AvatarGroupItemDirective)\n _avatars: QueryList<AvatarGroupItemDirective>;\n\n /** @hidden */\n @ContentChild(AvatarGroupOverflowButtonDirective)\n _overflowButton: AvatarGroupOverflowButtonDirective;\n\n /** @hidden */\n @ContentChild(AvatarGroupOverflowBodyDirective)\n _avatarGroupPopoverBody: AvatarGroupOverflowBodyDirective;\n\n /** @hidden */\n protected readonly contentDirection = computed<Direction>(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, { optional: true });\n\n /** @hidden */\n _detectChanges(): void {\n this._cdr.detectChanges();\n }\n}\n","<ng-content></ng-content>\n@if (type === 'individual') {\n <fd-avatar-group-host\n #avatarGroupHostComponent\n [type]=\"type\"\n [size]=\"size\"\n [orientation]=\"orientation\"\n fdkResizeObserver\n fdkFocusableList\n [contentDirection]=\"contentDirection()\"\n [wrap]=\"true\"\n [navigationDirection]=\"orientation\"\n [items]=\"_avatars\"\n (resized)=\"_detectChanges()\"\n >\n @for (item of _avatars; track item) {\n <fd-popover [noArrow]=\"false\" [focusAutoCapture]=\"true\">\n <fd-popover-control tabindex=\"-1\" (click)=\"outletItem.element.focus()\">\n <ng-template\n #outletItem=\"fdAvatarGroupItemPortal\"\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [forceVisibility]=\"item.forceVisibility\"\n [avatarGroupItem]=\"item\"\n >\n </ng-template>\n </fd-popover-control>\n @if (item.details) {\n <ng-template fdPopoverBody>\n <ng-template [ngTemplateOutlet]=\"item.details\"></ng-template>\n </ng-template>\n }\n </fd-popover>\n }\n <fd-popover\n [noArrow]=\"false\"\n [focusAutoCapture]=\"true\"\n *fdAvatarGroupInternalOverflowButton=\"avatarGroupHostComponent._hiddenItems(); let hiddenItems\"\n >\n <fd-popover-control tabindex=\"-1\">\n <ng-template\n [ngTemplateOutlet]=\"overflowButtonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </fd-popover-control>\n <ng-template fdPopoverBody>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </ng-template>\n </fd-popover>\n </fd-avatar-group-host>\n} @else {\n <fd-popover [noArrow]=\"false\" [focusAutoCapture]=\"true\" fdkResizeObserver (resized)=\"_detectChanges()\">\n <fd-popover-control>\n <fd-avatar-group-host\n #avatarGroupHostComponent\n [type]=\"type\"\n [size]=\"size\"\n [orientation]=\"orientation\"\n [fdkFocusableItem]=\"true\"\n >\n @for (item of _avatars; track item) {\n <ng-template\n cdkPortalOutlet\n fdAvatarGroupItemPortal\n [forceVisibility]=\"item.forceVisibility\"\n [avatarGroupItem]=\"item\"\n >\n </ng-template>\n }\n <ng-template\n [fdAvatarGroupInternalOverflowButton]=\"avatarGroupHostComponent._hiddenItems()\"\n let-hiddenItems\n >\n <ng-template\n [ngTemplateOutlet]=\"overflowButtonTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: hiddenItems }\"\n ></ng-template>\n </ng-template>\n </fd-avatar-group-host>\n </fd-popover-control>\n <ng-template fdPopoverBody>\n <ng-template\n [ngTemplateOutlet]=\"avatarGroupOverflowBodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: _avatarRenderers }\"\n ></ng-template>\n </ng-template>\n </fd-popover>\n}\n<ng-template #overflowButtonTemplate let-hiddenItems>\n @if (_overflowButton) {\n <ng-template\n [ngTemplateOutlet]=\"_overflowButton._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-avatar-group-overflow-button [size]=\"size\" [colorAccent]=\"1\">\n +{{ hiddenItems.length }}\n </fd-avatar-group-overflow-button>\n }\n</ng-template>\n<ng-template #avatarGroupOverflowBodyTemplate let-hiddenItems>\n @if (_avatarGroupPopoverBody) {\n <ng-template\n [ngTemplateOutlet]=\"_avatarGroupPopoverBody._templateRef\"\n [ngTemplateOutletContext]=\"{ hiddenItems: hiddenItems }\"\n />\n } @else {\n <fd-default-avatar-group-overflow-body [avatars]=\"hiddenItems\" [overflowPopoverTitle]=\"overflowPopoverTitle\" />\n }\n</ng-template>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * Avatar group overflow body component, used to provide a template for the avatar group overflow body.\n */\n@Component({\n selector: 'fd-avatar-group-overflow-body',\n templateUrl: './avatar-group-overflow-body.component.html',\n host: {\n class: 'fd-popover__wrapper'\n },\n styleUrl: './avatar-group-overflow-body.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class AvatarGroupOverflowBodyComponent {\n /** Remove the padding from the overflow body. */\n @Input()\n noPadding = false;\n\n /** Hide horizontal scrollbar from the overflow body. */\n @Input()\n noHorizontalScroll = true;\n\n /** Hide vertical scrollbar from the overflow body. */\n @Input()\n noVerticalScroll = true;\n\n /** Additional popover body class */\n @Input()\n additionalPopoverBodyClass = '';\n}\n","<ng-content select=\"[fd-popover-body-header]\"></ng-content>\n<div\n class=\"fd-avatar-group__overflow-body\"\n [class.fd-avatar-group__overflow-body--no-padding]=\"noPadding\"\n [class.fd-avatar-group__overflow-body--no-horizontal-scroll]=\"noHorizontalScroll\"\n [class.fd-avatar-group__overflow-body--no-vertical-scroll]=\"noVerticalScroll\"\n>\n <ng-content select=\"[fd-avatar-group-overflow-body-content]\"></ng-content>\n</div>\n","import { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\nimport { AvatarGroupComponent } from './avatar-group.component';\nimport { AvatarGroupOverflowBodyComponent } from './components/avatar-group-overflow-body/avatar-group-overflow-body.component';\nimport { AvatarGroupOverflowButtonComponent } from './components/avatar-group-overflow-button.component';\nimport { AvatarGroupItemDirective } from './directives/avatar-group-item.directive';\nimport { AvatarGroupOverflowBodyDirective } from './directives/avatar-group-overflow-body.directive';\nimport { AvatarGroupOverflowButtonDirective } from './directives/avatar-group-overflow-button.directive';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupOverflowButtonComponent,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowBodyComponent,\n AvatarGroupOverflowBodyDirective,\n PortalModule\n ],\n exports: [\n AvatarGroupComponent,\n AvatarGroupItemDirective,\n AvatarGroupOverflowButtonComponent,\n AvatarGroupOverflowButtonDirective,\n AvatarGroupOverflowBodyComponent,\n AvatarGroupOverflowBodyDirective\n ]\n})\nexport class AvatarGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as i1 from '@angular/cdk/portal';
|
|
2
2
|
import { DomPortal, PortalModule } from '@angular/cdk/portal';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { InjectionToken, ContentChild, ChangeDetectionStrategy, ViewEncapsulation, Component, EventEmitter, input, signal, inject, ElementRef, computed, DestroyRef,
|
|
4
|
+
import { InjectionToken, ContentChild, ChangeDetectionStrategy, ViewEncapsulation, Component, EventEmitter, input, signal, inject, ElementRef, computed, DestroyRef, ViewChild, ContentChildren, Output, Input, NgModule } from '@angular/core';
|
|
5
5
|
import { FD_LINK_COMPONENT, LinkComponent } from '@fundamental-ngx/core/link';
|
|
6
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
7
|
import { RtlService } from '@fundamental-ngx/cdk/utils';
|
|
7
8
|
import { IconComponent } from '@fundamental-ngx/core/icon';
|
|
8
9
|
import { MenuComponent, MenuItemComponent, MenuInteractiveComponent, MenuAddonDirective, MenuTitleDirective, MenuTriggerDirective, GlyphMenuAddonDirective } from '@fundamental-ngx/core/menu';
|
|
9
10
|
import { OverflowLayoutComponent, OverflowItemRefDirective, OverflowLayoutItemDirective, OverflowExpandDirective } from '@fundamental-ngx/core/overflow-layout';
|
|
10
|
-
import {
|
|
11
|
+
import { FD_LANGUAGE, TranslationResolver, FdTranslatePipe } from '@fundamental-ngx/i18n';
|
|
11
12
|
import { ContentDensityModule } from '@fundamental-ngx/core/content-density';
|
|
12
13
|
|
|
13
14
|
const FD_BREADCRUMB_ITEM_COMPONENT = new InjectionToken('FdBreadcrumbItemComponent');
|
|
@@ -109,7 +110,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
109
110
|
* ```
|
|
110
111
|
*/
|
|
111
112
|
class BreadcrumbComponent {
|
|
112
|
-
/** @hidden */
|
|
113
113
|
constructor() {
|
|
114
114
|
/** Whether to append items to the overflow dropdown in reverse order. Default is true. */
|
|
115
115
|
this.reverse = false;
|
|
@@ -152,15 +152,11 @@ class BreadcrumbComponent {
|
|
|
152
152
|
optional: true
|
|
153
153
|
});
|
|
154
154
|
/** @hidden */
|
|
155
|
-
this.
|
|
155
|
+
this._lang$ = inject(FD_LANGUAGE);
|
|
156
156
|
/** @hidden */
|
|
157
157
|
this._translationResolver = new TranslationResolver();
|
|
158
158
|
/** @hidden */
|
|
159
159
|
this._destroyRef = inject(DestroyRef);
|
|
160
|
-
effect(() => {
|
|
161
|
-
const lang = this._langSignal();
|
|
162
|
-
this._ariaLabel = this._translationResolver.resolve(lang, 'coreBreadcrumb.breadcrumbTrailLabel');
|
|
163
|
-
});
|
|
164
160
|
}
|
|
165
161
|
/** @hidden */
|
|
166
162
|
onResize() {
|
|
@@ -174,6 +170,12 @@ class BreadcrumbComponent {
|
|
|
174
170
|
breadcrumbItem.breadcrumbLink.elementRef.nativeElement.click();
|
|
175
171
|
}
|
|
176
172
|
/** @hidden */
|
|
173
|
+
ngOnInit() {
|
|
174
|
+
this._lang$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((lang) => {
|
|
175
|
+
this._ariaLabel = this._translationResolver.resolve(lang, 'coreBreadcrumb.breadcrumbTrailLabel');
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
/** @hidden */
|
|
177
179
|
ngAfterViewInit() {
|
|
178
180
|
this._setItems();
|
|
179
181
|
this._contentItems.changes.subscribe(() => this._setItems());
|
|
@@ -214,7 +216,7 @@ class BreadcrumbComponent {
|
|
|
214
216
|
provide: FD_BREADCRUMB_COMPONENT,
|
|
215
217
|
useExisting: BreadcrumbComponent
|
|
216
218
|
}
|
|
217
|
-
], queries: [{ propertyName: "_contentItems", predicate: FD_BREADCRUMB_ITEM_COMPONENT }], viewQueries: [{ propertyName: "_menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowLayout", first: true, predicate: OverflowLayoutComponent, descendants: true }], ngImport: i0, template: "<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n ariaRole=\"list\"\n>\n @for (breadcrumb of _items$(); track breadcrumb) {\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n }\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items$()\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement()\">\n @for (breadcrumbItem of breadcrumbs; track breadcrumbItem) {\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a fd-menu-interactive (click)=\"itemClicked(breadcrumbItem.item, $event)\">\n @if (breadcrumbItem?.item.breadcrumbLink) {\n @if (breadcrumbItem.item.breadcrumbLink._prefixIconName) {\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n }\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n @if (breadcrumbItem.item.breadcrumbLink._postfixIconName) {\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n }\n } @else {\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n }\n </a>\n </li>\n }\n </fd-menu>\n @if (breadcrumbs.length > 0) {\n <span class=\"fd-breadcrumb__item\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n [attr.aria-label]=\"
|
|
219
|
+
], queries: [{ propertyName: "_contentItems", predicate: FD_BREADCRUMB_ITEM_COMPONENT }], viewQueries: [{ propertyName: "_menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "_overflowLayout", first: true, predicate: OverflowLayoutComponent, descendants: true }], ngImport: i0, template: "<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n ariaRole=\"list\"\n>\n @for (breadcrumb of _items$(); track breadcrumb) {\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n }\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items$()\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement()\">\n @for (breadcrumbItem of breadcrumbs; track breadcrumbItem) {\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a fd-menu-interactive (click)=\"itemClicked(breadcrumbItem.item, $event)\">\n @if (breadcrumbItem?.item.breadcrumbLink) {\n @if (breadcrumbItem.item.breadcrumbLink._prefixIconName) {\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n }\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n @if (breadcrumbItem.item.breadcrumbLink._postfixIconName) {\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n }\n } @else {\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n }\n </a>\n </li>\n }\n </fd-menu>\n @if (breadcrumbs.length > 0) {\n <span class=\"fd-breadcrumb__item\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n [attr.aria-label]=\"'coreBreadcrumb.overflowTitleMore' | fdTranslate\"\n aria-haspopup=\"menu\"\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n <fd-icon\n glyph=\"overflow\"\n [title]=\"'coreBreadcrumb.overflowTitleMore' | fdTranslate\"\n [ariaLabel]=\"'coreBreadcrumb.overflowTitleMore' | fdTranslate\"\n ></fd-icon>\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>\n </span>\n }\n </ng-container>\n</fd-overflow-layout>\n<ng-content></ng-content>\n", styles: [".fd-breadcrumb{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;--fdLink_Line_Height: 1.5rem;list-style:none;-webkit-margin-after:.5rem;margin-block-end:.5rem}.fd-breadcrumb:before,.fd-breadcrumb:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-block:.0625rem;color:var(--sapContent_LabelColor)}.fd-breadcrumb__item:before,.fd-breadcrumb__item:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:last-child:not(:has(a)){--fdBreadcrumb_Separator: none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb__separator{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0}.fd-breadcrumb__separator:before,.fd-breadcrumb__separator:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__separator:after{margin-inline:.25rem;color:var(--sapTextColor);content:var(--fdBreadcrumb_Separator, \"/\")}.fd-breadcrumb--backslash{--fdBreadcrumb_Separator: \"\\\\\"}.fd-breadcrumb--double-slash{--fdBreadcrumb_Separator: \"//\"}.fd-breadcrumb--double-backslash{--fdBreadcrumb_Separator: \"\\\\\\\\\"}.fd-breadcrumb--greater-than{--fdBreadcrumb_Separator: \">\"}.fd-breadcrumb--double-greater-than{--fdBreadcrumb_Separator: \">>\"}.fd-breadcrumb{display:flex;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}.fd-breadcrumb .fd-overflow-layout{justify-content:start}.fd-breadcrumb .fd-overflow-layout .fd-overflow-layout__more .fd-breadcrumb__item{height:26px;vertical-align:text-top}.fd-breadcrumb .fd-overflow-layout__item--last .fd-breadcrumb__item:after{content:none}\n"], dependencies: [{ kind: "component", type: OverflowLayoutComponent, selector: "fd-overflow-layout", inputs: ["maxVisibleItems", "navigationTrigger", "showMorePosition", "renderShowMoreButton", "reverseHiddenItems", "enableKeyboardNavigation", "ariaRole", "moreItemsButtonText"], outputs: ["visibleItemsCount", "hiddenItemsCount", "hiddenItemsChange"] }, { kind: "directive", type: OverflowItemRefDirective, selector: "[fdOverflowItemRef]", inputs: ["fdOverflowItemRef"] }, { kind: "directive", type: OverflowLayoutItemDirective, selector: "[fdOverflowLayoutItem]", inputs: ["forceVisibility"], outputs: ["hiddenChange"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: OverflowExpandDirective, selector: "[fdOverflowExpand]", inputs: ["fdOverflowExpandItems"] }, { kind: "component", type: MenuComponent, selector: "fd-menu", inputs: ["openOnHoverTime", "ariaLabel", "ariaLabelledby", "id", "config", "mobile", "mobileConfig", "placement", "closeOnEscapeKey", "focusAutoCapture", "disabled", "disableScrollbar", "triggers", "fillControlMode", "closeOnOutsideClick", "noArrow", "focusTrapped", "additionalBodyClass", "isOpen"], outputs: ["isOpenChange", "activePath", "beforeOpen"] }, { kind: "component", type: MenuItemComponent, selector: "li[fd-menu-item]", inputs: ["disabled", "itemId", "submenu", "parentSubmenu", "hasSeparator"], outputs: ["onSelect"], exportAs: ["fd-menu-item"] }, { kind: "component", type: MenuInteractiveComponent, selector: "[fd-menu-interactive]" }, { kind: "component", type: MenuAddonDirective, selector: "fd-menu-addon", inputs: ["position", "submenuIndicator", "ariaHidden"] }, { kind: "directive", type: MenuTitleDirective, selector: "[fd-menu-title]", inputs: ["truncate"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[fdMenuTrigger]", inputs: ["fdMenuTrigger"] }, { kind: "component", type: LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["emphasized", "disabled", "inverted", "subtle", "undecorated", "touchTarget"] }, { kind: "component", type: IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"], outputs: ["ariaHiddenChange"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
218
220
|
}
|
|
219
221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
220
222
|
type: Component,
|
|
@@ -243,8 +245,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
|
|
|
243
245
|
LinkComponent,
|
|
244
246
|
IconComponent,
|
|
245
247
|
FdTranslatePipe
|
|
246
|
-
], template: "<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n ariaRole=\"list\"\n>\n @for (breadcrumb of _items$(); track breadcrumb) {\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n }\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items$()\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement()\">\n @for (breadcrumbItem of breadcrumbs; track breadcrumbItem) {\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a fd-menu-interactive (click)=\"itemClicked(breadcrumbItem.item, $event)\">\n @if (breadcrumbItem?.item.breadcrumbLink) {\n @if (breadcrumbItem.item.breadcrumbLink._prefixIconName) {\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n }\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n @if (breadcrumbItem.item.breadcrumbLink._postfixIconName) {\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n }\n } @else {\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n }\n </a>\n </li>\n }\n </fd-menu>\n @if (breadcrumbs.length > 0) {\n <span class=\"fd-breadcrumb__item\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n [attr.aria-label]=\"
|
|
247
|
-
}],
|
|
248
|
+
], template: "<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n ariaRole=\"list\"\n>\n @for (breadcrumb of _items$(); track breadcrumb) {\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n }\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items$()\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement()\">\n @for (breadcrumbItem of breadcrumbs; track breadcrumbItem) {\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a fd-menu-interactive (click)=\"itemClicked(breadcrumbItem.item, $event)\">\n @if (breadcrumbItem?.item.breadcrumbLink) {\n @if (breadcrumbItem.item.breadcrumbLink._prefixIconName) {\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n }\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n @if (breadcrumbItem.item.breadcrumbLink._postfixIconName) {\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n }\n } @else {\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n }\n </a>\n </li>\n }\n </fd-menu>\n @if (breadcrumbs.length > 0) {\n <span class=\"fd-breadcrumb__item\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n [attr.aria-label]=\"'coreBreadcrumb.overflowTitleMore' | fdTranslate\"\n aria-haspopup=\"menu\"\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n <fd-icon\n glyph=\"overflow\"\n [title]=\"'coreBreadcrumb.overflowTitleMore' | fdTranslate\"\n [ariaLabel]=\"'coreBreadcrumb.overflowTitleMore' | fdTranslate\"\n ></fd-icon>\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>\n </span>\n }\n </ng-container>\n</fd-overflow-layout>\n<ng-content></ng-content>\n", styles: [".fd-breadcrumb{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;--fdLink_Line_Height: 1.5rem;list-style:none;-webkit-margin-after:.5rem;margin-block-end:.5rem}.fd-breadcrumb:before,.fd-breadcrumb:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-block:.0625rem;color:var(--sapContent_LabelColor)}.fd-breadcrumb__item:before,.fd-breadcrumb__item:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__item:last-child:not(:has(a)){--fdBreadcrumb_Separator: none}.fd-breadcrumb__item .fd-breadcrumb__popover-body{border:none;border-top-left-radius:.125rem;border-top-right-radius:.125rem}.fd-breadcrumb__separator{font-size:var(--sapFontSize);line-height:normal;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;-webkit-box-sizing:border-box;box-sizing:border-box;forced-color-adjust:none;padding-inline:0;padding-block:0;margin-inline:0;margin-block:0;border:0}.fd-breadcrumb__separator:before,.fd-breadcrumb__separator:after{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-breadcrumb__separator:after{margin-inline:.25rem;color:var(--sapTextColor);content:var(--fdBreadcrumb_Separator, \"/\")}.fd-breadcrumb--backslash{--fdBreadcrumb_Separator: \"\\\\\"}.fd-breadcrumb--double-slash{--fdBreadcrumb_Separator: \"//\"}.fd-breadcrumb--double-backslash{--fdBreadcrumb_Separator: \"\\\\\\\\\"}.fd-breadcrumb--greater-than{--fdBreadcrumb_Separator: \">\"}.fd-breadcrumb--double-greater-than{--fdBreadcrumb_Separator: \">>\"}.fd-breadcrumb{display:flex;white-space:nowrap}.fd-breadcrumb .fd-breadcrumb__collapsed{cursor:pointer}.fd-breadcrumb .fd-overflow-layout{justify-content:start}.fd-breadcrumb .fd-overflow-layout .fd-overflow-layout__more .fd-breadcrumb__item{height:26px;vertical-align:text-top}.fd-breadcrumb .fd-overflow-layout__item--last .fd-breadcrumb__item:after{content:none}\n"] }]
|
|
249
|
+
}], propDecorators: { reverse: [{
|
|
248
250
|
type: Input
|
|
249
251
|
}], tabIndex: [{
|
|
250
252
|
type: Input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-breadcrumb.mjs","sources":["../../../../libs/core/breadcrumb/tokens.ts","../../../../libs/core/breadcrumb/breadcrumb-item.component.ts","../../../../libs/core/breadcrumb/breadcrumb.component.ts","../../../../libs/core/breadcrumb/breadcrumb.component.html","../../../../libs/core/breadcrumb/breadcrumb.module.ts","../../../../libs/core/breadcrumb/fundamental-ngx-core-breadcrumb.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_BREADCRUMB_ITEM_COMPONENT = new InjectionToken('FdBreadcrumbItemComponent');\nexport const FD_BREADCRUMB_COMPONENT = new InjectionToken('FdBreadcrumbComponent');\n","import { DomPortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { FD_LINK_COMPONENT, LinkComponent } from '@fundamental-ngx/core/link';\nimport { FD_BREADCRUMB_ITEM_COMPONENT } from './tokens';\n\n/**\n * Breadcrumb item directive. Must have child breadcrumb link directives.\n *\n * ```html\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb-item',\n template: `<ng-content></ng-content> <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>`,\n host: {\n class: 'fd-breadcrumb__item'\n },\n providers: [\n {\n provide: FD_BREADCRUMB_ITEM_COMPONENT,\n useExisting: BreadcrumbItemComponent\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class BreadcrumbItemComponent implements AfterViewInit {\n /** @hidden */\n @ContentChild(FD_LINK_COMPONENT)\n breadcrumbLink: LinkComponent;\n\n /** In case there is no link in Item and breadcrumb item is non-interactive, we move whole item content to menu item title */\n breadcrumbItemPortal: DomPortal<Element>;\n\n /** When breadcrumb item has link in it, we are moving link content to menu item title */\n linkContentPortal: DomPortal;\n\n /**\n * Breadcrumb item dom portal.\n */\n portal: DomPortal;\n\n /** @hidden */\n private _attached = false;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._attach();\n }\n\n /**\n * Sets breadcrumb item dom portal.\n */\n setPortal(): void {\n if (!this.portal) {\n this.portal = new DomPortal(this.elementRef);\n }\n }\n\n /** @hidden */\n _detach(): void {\n if (!this._attached) {\n return;\n }\n\n if (this.linkContentPortal?.isAttached) {\n this.linkContentPortal?.detach();\n }\n\n if (this.breadcrumbItemPortal?.isAttached) {\n this.breadcrumbItemPortal?.detach();\n }\n\n this._attached = false;\n }\n\n /** @hidden */\n _attach(): void {\n if (this._attached) {\n return;\n }\n\n const contentSpan = this.breadcrumbLink?.contentSpan();\n if (this.breadcrumbLink && contentSpan) {\n this.linkContentPortal = new DomPortal<HTMLElement>(contentSpan.nativeElement);\n }\n\n this.breadcrumbItemPortal = new DomPortal(this.elementRef.nativeElement.firstElementChild as Element);\n this._attached = true;\n }\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n computed,\n effect,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { HasElementRef, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport {\n GlyphMenuAddonDirective,\n MenuAddonDirective,\n MenuComponent,\n MenuInteractiveComponent,\n MenuItemComponent,\n MenuTitleDirective,\n MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport {\n OverflowExpandDirective,\n OverflowItemRefDirective,\n OverflowLayoutComponent,\n OverflowLayoutItemDirective\n} from '@fundamental-ngx/core/overflow-layout';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { FD_LANGUAGE_SIGNAL, FdTranslatePipe, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { FD_BREADCRUMB_COMPONENT, FD_BREADCRUMB_ITEM_COMPONENT } from './tokens';\n\nexport type BreadcrumbSeparatorStyle =\n | ''\n | 'backslash'\n | 'double-slash'\n | 'double-backslash'\n | 'greater-than'\n | 'double-greater-than';\n\n/**\n * Breadcrumb parent wrapper directive. Must have breadcrumb item child directives.\n *\n * ```html\n * <fd-breadcrumb>\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * </fd-breadcrumb>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb',\n host: {\n role: 'navigation',\n '[class]': '_cssClass()',\n '[attr.aria-label]': '_ariaLabel'\n },\n templateUrl: './breadcrumb.component.html',\n styleUrl: './breadcrumb.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_BREADCRUMB_COMPONENT,\n useExisting: BreadcrumbComponent\n }\n ],\n imports: [\n OverflowLayoutComponent,\n OverflowItemRefDirective,\n OverflowLayoutItemDirective,\n PortalModule,\n OverflowExpandDirective,\n MenuComponent,\n MenuItemComponent,\n MenuInteractiveComponent,\n GlyphMenuAddonDirective,\n MenuAddonDirective,\n MenuTitleDirective,\n MenuTriggerDirective,\n LinkComponent,\n IconComponent,\n FdTranslatePipe\n ]\n})\nexport class BreadcrumbComponent implements AfterViewInit, HasElementRef {\n /** Whether to append items to the overflow dropdown in reverse order. Default is true. */\n @Input()\n reverse = false;\n\n /** Tabindex of the breadcrumb. */\n @Input()\n tabIndex = '0';\n\n /**\n * Event emitted when visible items count is changed.\n */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /**\n * Event emitted when hidden items count is changed.\n */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /** @hidden */\n @ContentChildren(FD_BREADCRUMB_ITEM_COMPONENT)\n private readonly _contentItems: QueryList<BreadcrumbItemComponent>;\n\n /** @hidden */\n @ViewChild(MenuComponent)\n private readonly _menuComponent: MenuComponent;\n\n /** @hidden */\n @ViewChild(OverflowLayoutComponent)\n private readonly _overflowLayout: OverflowLayoutComponent;\n\n /**\n * Separator style for the breadcrumb items.\n * Can be 'backslash' | 'double-slash' | 'double-backslash' | 'greater-than' | 'double-greater-than'\n * Omit for default (slash)\n */\n separatorStyle = input<BreadcrumbSeparatorStyle>('');\n\n /** @hidden */\n _ariaLabel: string;\n\n /**\n * @hidden\n * Array of breadcrumb items.\n */\n _items$ = signal<BreadcrumbItemComponent[]>([]);\n\n /** @hidden */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** @hidden */\n protected readonly placement = computed<Placement>(() => (this._rtlService?.rtl() ? 'bottom-end' : 'bottom-start'));\n\n /** @hidden */\n protected readonly _cssClass = computed(() => {\n const classes = ['fd-breadcrumb'];\n const style = this.separatorStyle();\n if (style) {\n classes.push(`fd-breadcrumb--${style}`);\n }\n return classes.join(' ');\n });\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _langSignal = inject(FD_LANGUAGE_SIGNAL);\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor() {\n effect(() => {\n const lang = this._langSignal();\n this._ariaLabel = this._translationResolver.resolve(lang, 'coreBreadcrumb.breadcrumbTrailLabel');\n });\n }\n\n /** @hidden */\n onResize(): void {\n this._overflowLayout.triggerRecalculation();\n }\n\n /**\n * Function that handles click, touch, enter and space events.\n */\n itemClicked(breadcrumbItem: BreadcrumbItemComponent, $event: Event): void {\n $event.preventDefault();\n breadcrumbItem.breadcrumbLink.elementRef.nativeElement.click();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setItems();\n\n this._contentItems.changes.subscribe(() => this._setItems());\n\n // Set menu roles for breadcrumb context\n (this._menuComponent as any)._navContainerRole = 'dialog';\n (this._menuComponent as any)._menuListContainerRole = 'menu';\n }\n\n /** @hidden */\n _keyDownHandle(event: Event): void {\n this._menuComponent.toggle();\n event.preventDefault();\n }\n\n /** @hidden */\n _onHiddenChange(isHidden: boolean, breadcrumb: BreadcrumbItemComponent): void {\n if (!isHidden) {\n breadcrumb._detach();\n } else {\n breadcrumb._attach();\n }\n }\n\n /** @hidden */\n _onVisibleItemsCountChange(visibleItemsCount: number): void {\n this.visibleItemsCount.emit(visibleItemsCount);\n }\n\n /** @hidden */\n _onHiddenItemsCountChange(hiddenItemsCount: number): void {\n this.hiddenItemsCount.emit(hiddenItemsCount);\n }\n\n /** @hidden */\n private _setItems(): void {\n this._contentItems.forEach((item) => item.setPortal());\n this._items$.set(this._contentItems.toArray());\n }\n}\n","<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n ariaRole=\"list\"\n>\n @for (breadcrumb of _items$(); track breadcrumb) {\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n }\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items$()\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement()\">\n @for (breadcrumbItem of breadcrumbs; track breadcrumbItem) {\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a fd-menu-interactive (click)=\"itemClicked(breadcrumbItem.item, $event)\">\n @if (breadcrumbItem?.item.breadcrumbLink) {\n @if (breadcrumbItem.item.breadcrumbLink._prefixIconName) {\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n }\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n @if (breadcrumbItem.item.breadcrumbLink._postfixIconName) {\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n }\n } @else {\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n }\n </a>\n </li>\n }\n </fd-menu>\n @if (breadcrumbs.length > 0) {\n <span class=\"fd-breadcrumb__item\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n [attr.aria-label]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n aria-haspopup=\"menu\"\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n <fd-icon\n glyph=\"overflow\"\n [title]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n [ariaLabel]=\"('coreBreadcrumb.overflowTitleMore' | fdTranslate)()\"\n ></fd-icon>\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>\n </span>\n }\n </ng-container>\n</fd-overflow-layout>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\nconst components = [BreadcrumbComponent, BreadcrumbItemComponent, LinkComponent, ContentDensityModule];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class BreadcrumbModule {}\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-breadcrumb.mjs","sources":["../../../../libs/core/breadcrumb/tokens.ts","../../../../libs/core/breadcrumb/breadcrumb-item.component.ts","../../../../libs/core/breadcrumb/breadcrumb.component.ts","../../../../libs/core/breadcrumb/breadcrumb.component.html","../../../../libs/core/breadcrumb/breadcrumb.module.ts","../../../../libs/core/breadcrumb/fundamental-ngx-core-breadcrumb.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FD_BREADCRUMB_ITEM_COMPONENT = new InjectionToken('FdBreadcrumbItemComponent');\nexport const FD_BREADCRUMB_COMPONENT = new InjectionToken('FdBreadcrumbComponent');\n","import { DomPortal } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { FD_LINK_COMPONENT, LinkComponent } from '@fundamental-ngx/core/link';\nimport { FD_BREADCRUMB_ITEM_COMPONENT } from './tokens';\n\n/**\n * Breadcrumb item directive. Must have child breadcrumb link directives.\n *\n * ```html\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb-item',\n template: `<ng-content></ng-content> <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>`,\n host: {\n class: 'fd-breadcrumb__item'\n },\n providers: [\n {\n provide: FD_BREADCRUMB_ITEM_COMPONENT,\n useExisting: BreadcrumbItemComponent\n }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class BreadcrumbItemComponent implements AfterViewInit {\n /** @hidden */\n @ContentChild(FD_LINK_COMPONENT)\n breadcrumbLink: LinkComponent;\n\n /** In case there is no link in Item and breadcrumb item is non-interactive, we move whole item content to menu item title */\n breadcrumbItemPortal: DomPortal<Element>;\n\n /** When breadcrumb item has link in it, we are moving link content to menu item title */\n linkContentPortal: DomPortal;\n\n /**\n * Breadcrumb item dom portal.\n */\n portal: DomPortal;\n\n /** @hidden */\n private _attached = false;\n\n /** @hidden */\n constructor(public readonly elementRef: ElementRef<HTMLElement>) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._attach();\n }\n\n /**\n * Sets breadcrumb item dom portal.\n */\n setPortal(): void {\n if (!this.portal) {\n this.portal = new DomPortal(this.elementRef);\n }\n }\n\n /** @hidden */\n _detach(): void {\n if (!this._attached) {\n return;\n }\n\n if (this.linkContentPortal?.isAttached) {\n this.linkContentPortal?.detach();\n }\n\n if (this.breadcrumbItemPortal?.isAttached) {\n this.breadcrumbItemPortal?.detach();\n }\n\n this._attached = false;\n }\n\n /** @hidden */\n _attach(): void {\n if (this._attached) {\n return;\n }\n\n const contentSpan = this.breadcrumbLink?.contentSpan();\n if (this.breadcrumbLink && contentSpan) {\n this.linkContentPortal = new DomPortal<HTMLElement>(contentSpan.nativeElement);\n }\n\n this.breadcrumbItemPortal = new DomPortal(this.elementRef.nativeElement.firstElementChild as Element);\n this._attached = true;\n }\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n computed,\n inject,\n input,\n signal\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HasElementRef, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport {\n GlyphMenuAddonDirective,\n MenuAddonDirective,\n MenuComponent,\n MenuInteractiveComponent,\n MenuItemComponent,\n MenuTitleDirective,\n MenuTriggerDirective\n} from '@fundamental-ngx/core/menu';\nimport {\n OverflowExpandDirective,\n OverflowItemRefDirective,\n OverflowLayoutComponent,\n OverflowLayoutItemDirective\n} from '@fundamental-ngx/core/overflow-layout';\nimport { Placement } from '@fundamental-ngx/core/shared';\nimport { FD_LANGUAGE, FdLanguage, FdTranslatePipe, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { FD_BREADCRUMB_COMPONENT, FD_BREADCRUMB_ITEM_COMPONENT } from './tokens';\n\nexport type BreadcrumbSeparatorStyle =\n | ''\n | 'backslash'\n | 'double-slash'\n | 'double-backslash'\n | 'greater-than'\n | 'double-greater-than';\n\n/**\n * Breadcrumb parent wrapper directive. Must have breadcrumb item child directives.\n *\n * ```html\n * <fd-breadcrumb>\n * <fd-breadcrumb-item>\n * <a fd-link [routerLink]=\"'#'\">Breadcrumb Link</a>\n * </fd-breadcrumb-item>\n * </fd-breadcrumb>\n * ```\n */\n@Component({\n selector: 'fd-breadcrumb',\n host: {\n role: 'navigation',\n '[class]': '_cssClass()',\n '[attr.aria-label]': '_ariaLabel'\n },\n templateUrl: './breadcrumb.component.html',\n styleUrl: './breadcrumb.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: FD_BREADCRUMB_COMPONENT,\n useExisting: BreadcrumbComponent\n }\n ],\n imports: [\n OverflowLayoutComponent,\n OverflowItemRefDirective,\n OverflowLayoutItemDirective,\n PortalModule,\n OverflowExpandDirective,\n MenuComponent,\n MenuItemComponent,\n MenuInteractiveComponent,\n GlyphMenuAddonDirective,\n MenuAddonDirective,\n MenuTitleDirective,\n MenuTriggerDirective,\n LinkComponent,\n IconComponent,\n FdTranslatePipe\n ]\n})\nexport class BreadcrumbComponent implements OnInit, AfterViewInit, HasElementRef {\n /** Whether to append items to the overflow dropdown in reverse order. Default is true. */\n @Input()\n reverse = false;\n\n /** Tabindex of the breadcrumb. */\n @Input()\n tabIndex = '0';\n\n /**\n * Event emitted when visible items count is changed.\n */\n @Output()\n visibleItemsCount = new EventEmitter<number>();\n\n /**\n * Event emitted when hidden items count is changed.\n */\n @Output()\n hiddenItemsCount = new EventEmitter<number>();\n\n /** @hidden */\n @ContentChildren(FD_BREADCRUMB_ITEM_COMPONENT)\n private readonly _contentItems: QueryList<BreadcrumbItemComponent>;\n\n /** @hidden */\n @ViewChild(MenuComponent)\n private readonly _menuComponent: MenuComponent;\n\n /** @hidden */\n @ViewChild(OverflowLayoutComponent)\n private readonly _overflowLayout: OverflowLayoutComponent;\n\n /**\n * Separator style for the breadcrumb items.\n * Can be 'backslash' | 'double-slash' | 'double-backslash' | 'greater-than' | 'double-greater-than'\n * Omit for default (slash)\n */\n separatorStyle = input<BreadcrumbSeparatorStyle>('');\n\n /** @hidden */\n _ariaLabel: string;\n\n /**\n * @hidden\n * Array of breadcrumb items.\n */\n _items$ = signal<BreadcrumbItemComponent[]>([]);\n\n /** @hidden */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /** @hidden */\n protected readonly placement = computed<Placement>(() => (this._rtlService?.rtl() ? 'bottom-end' : 'bottom-start'));\n\n /** @hidden */\n protected readonly _cssClass = computed(() => {\n const classes = ['fd-breadcrumb'];\n const style = this.separatorStyle();\n if (style) {\n classes.push(`fd-breadcrumb--${style}`);\n }\n return classes.join(' ');\n });\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _lang$ = inject(FD_LANGUAGE);\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n onResize(): void {\n this._overflowLayout.triggerRecalculation();\n }\n\n /**\n * Function that handles click, touch, enter and space events.\n */\n itemClicked(breadcrumbItem: BreadcrumbItemComponent, $event: Event): void {\n $event.preventDefault();\n breadcrumbItem.breadcrumbLink.elementRef.nativeElement.click();\n }\n\n /** @hidden */\n ngOnInit(): void {\n this._lang$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((lang: FdLanguage) => {\n this._ariaLabel = this._translationResolver.resolve(lang, 'coreBreadcrumb.breadcrumbTrailLabel');\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._setItems();\n\n this._contentItems.changes.subscribe(() => this._setItems());\n\n // Set menu roles for breadcrumb context\n (this._menuComponent as any)._navContainerRole = 'dialog';\n (this._menuComponent as any)._menuListContainerRole = 'menu';\n }\n\n /** @hidden */\n _keyDownHandle(event: Event): void {\n this._menuComponent.toggle();\n event.preventDefault();\n }\n\n /** @hidden */\n _onHiddenChange(isHidden: boolean, breadcrumb: BreadcrumbItemComponent): void {\n if (!isHidden) {\n breadcrumb._detach();\n } else {\n breadcrumb._attach();\n }\n }\n\n /** @hidden */\n _onVisibleItemsCountChange(visibleItemsCount: number): void {\n this.visibleItemsCount.emit(visibleItemsCount);\n }\n\n /** @hidden */\n _onHiddenItemsCountChange(hiddenItemsCount: number): void {\n this.hiddenItemsCount.emit(hiddenItemsCount);\n }\n\n /** @hidden */\n private _setItems(): void {\n this._contentItems.forEach((item) => item.setPortal());\n this._items$.set(this._contentItems.toArray());\n }\n}\n","<fd-overflow-layout\n [reverseHiddenItems]=\"!reverse\"\n showMorePosition=\"left\"\n [enableKeyboardNavigation]=\"false\"\n (visibleItemsCount)=\"_onVisibleItemsCountChange($event)\"\n (hiddenItemsCount)=\"_onHiddenItemsCountChange($event)\"\n ariaRole=\"list\"\n>\n @for (breadcrumb of _items$(); track breadcrumb) {\n <div\n *fdOverflowItemRef=\"breadcrumb; let hidden\"\n fdOverflowLayoutItem\n (hiddenChange)=\"_onHiddenChange($event, breadcrumb)\"\n >\n <ng-template [cdkPortalOutlet]=\"breadcrumb.portal\"></ng-template>\n </div>\n }\n <ng-container *fdOverflowExpand=\"let breadcrumbs; items: _items$()\">\n <fd-menu #menu [closeOnEscapeKey]=\"true\" [focusAutoCapture]=\"true\" [placement]=\"placement()\">\n @for (breadcrumbItem of breadcrumbs; track breadcrumbItem) {\n <li\n fd-menu-item\n [disabled]=\"\n breadcrumbItem.item.breadcrumbLink ? breadcrumbItem.item.breadcrumbLink.disabled : false\n \"\n >\n <a fd-menu-interactive (click)=\"itemClicked(breadcrumbItem.item, $event)\">\n @if (breadcrumbItem?.item.breadcrumbLink) {\n @if (breadcrumbItem.item.breadcrumbLink._prefixIconName) {\n <fd-menu-addon\n position=\"before\"\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._prefixIconName\"\n ></fd-menu-addon>\n }\n <span fd-menu-title>\n <ng-container [cdkPortalOutlet]=\"breadcrumbItem.item.linkContentPortal\"></ng-container>\n </span>\n @if (breadcrumbItem.item.breadcrumbLink._postfixIconName) {\n <fd-menu-addon\n [glyph]=\"breadcrumbItem.item.breadcrumbLink._postfixIconName\"\n ></fd-menu-addon>\n }\n } @else {\n <span fd-menu-title>\n <ng-container\n [cdkPortalOutlet]=\"breadcrumbItem.item.breadcrumbItemPortal\"\n ></ng-container>\n </span>\n }\n </a>\n </li>\n }\n </fd-menu>\n @if (breadcrumbs.length > 0) {\n <span class=\"fd-breadcrumb__item\" [fdMenuTrigger]=\"menu\">\n <a\n fd-link\n [attr.aria-label]=\"'coreBreadcrumb.overflowTitleMore' | fdTranslate\"\n aria-haspopup=\"menu\"\n tabindex=\"0\"\n class=\"fd-breadcrumb__collapsed\"\n (keydown.enter)=\"_keyDownHandle($event)\"\n (keydown.space)=\"_keyDownHandle($event)\"\n >\n <fd-icon\n glyph=\"overflow\"\n [title]=\"'coreBreadcrumb.overflowTitleMore' | fdTranslate\"\n [ariaLabel]=\"'coreBreadcrumb.overflowTitleMore' | fdTranslate\"\n ></fd-icon>\n <fd-icon glyph=\"slim-arrow-down\"></fd-icon>\n </a>\n <span class=\"fd-breadcrumb__separator\" aria-hidden=\"true\"></span>\n </span>\n }\n </ng-container>\n</fd-overflow-layout>\n<ng-content></ng-content>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { LinkComponent } from '@fundamental-ngx/core/link';\nimport { BreadcrumbItemComponent } from './breadcrumb-item.component';\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\nconst components = [BreadcrumbComponent, BreadcrumbItemComponent, LinkComponent, ContentDensityModule];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class BreadcrumbModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|