{"version":3,"file":"fundamental-ngx-platform-list.mjs","sources":["../../../../libs/platform/list/fdpListComponent.token.ts","../../../../libs/platform/list/list.config.ts","../../../../libs/platform/list/base-list-item.ts","../../../../libs/platform/list/action-list-item/action-list-item.component.ts","../../../../libs/platform/list/action-list-item/action-list-item.component.html","../../../../libs/platform/list/action-list-item/action-list-item.module.ts","../../../../libs/platform/list/display-list-item/display-list-item.component.ts","../../../../libs/platform/list/display-list-item/display-list-item.component.html","../../../../libs/platform/list/display-list-item/display-list-item.module.ts","../../../../libs/platform/list/free-content-list-item/free-content-list-item.component.ts","../../../../libs/platform/list/free-content-list-item/free-content-list-item.component.html","../../../../libs/platform/list/list-group-footer.component.ts","../../../../libs/platform/list/list-group-header.component.ts","../../../../libs/platform/list/load-more-content.directive.ts","../../../../libs/platform/list/list.component.ts","../../../../libs/platform/list/list.component.html","../../../../libs/platform/list/object-list-item/object-list-item-row.component.ts","../../../../libs/platform/list/object-list-item/object-list-item.component.ts","../../../../libs/platform/list/object-list-item/object-list-item.component.html","../../../../libs/platform/list/object-list-item/object-list-item.module.ts","../../../../libs/platform/list/standard-list-item/standard-list-item.component.ts","../../../../libs/platform/list/standard-list-item/standard-list-item.component.html","../../../../libs/platform/list/standard-list-item/standard-list-item.module.ts","../../../../libs/platform/list/list.module.ts","../../../../libs/platform/list/fundamental-ngx-platform-list.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const FdpListComponent = new InjectionToken('List Component');\n","import { Injectable } from '@angular/core';\n\nimport { ContentDensity } from '@fundamental-ngx/cdk/utils';\nimport { DataProvider } from '@fundamental-ngx/platform/shared';\n\n/**\n * Default options for platform List\n */\n@Injectable({ providedIn: 'root' })\nexport class ListConfig {\n    /**\n     * Content Density of element. 'cozy' | 'compact'\n     */\n    contentDensity: ContentDensity = 'cozy';\n\n    /**\n     * Maps data providers\n     */\n    providers: Map<string, DataProvider<any>> | null = new Map();\n\n    /**\n     * Create Provider factory function\n     */\n    static createProviderFactory(obj: Partial<ListConfig>): () => ListConfig {\n        const useFactory = (): ListConfig => Object.assign(new ListConfig(), obj);\n        return useFactory;\n    }\n}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n    AfterViewChecked,\n    AfterViewInit,\n    Directive,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Inject,\n    Input,\n    OnDestroy,\n    Optional,\n    Output,\n    TemplateRef,\n    ViewChild,\n    inject\n} from '@angular/core';\n\nimport { ColorAccent, KeyUtil, Nullable, Size, merge } from '@fundamental-ngx/cdk/utils';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { FD_DEFAULT_ICON_FONT_FAMILY, IconFont } from '@fundamental-ngx/core/icon';\nimport { FD_LIST_UNREAD_INDICATOR, ListUnreadIndicator } from '@fundamental-ngx/core/list';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { BaseComponent, isPresent } from '@fundamental-ngx/platform/shared';\nimport { Observable } from 'rxjs';\nimport { FdpListComponent } from './fdpListComponent.token';\nimport { ListConfig } from './list.config';\nimport { FdpList, ListType, SelectionType } from './models/list';\n\nexport const IS_ACTIVE_CLASS = 'is-active';\nlet nextListItemId = 0;\nexport type StatusType = 'negative' | 'critical' | 'positive' | 'informative';\n\nexport class ListIconConfig {\n    /** The icon name to display. See the icon page for the list of icons\n     * here: https://sap.github.io/fundamental-ngx/icon\n     * */\n    glyph: string;\n    /** user's custom classes */\n    class: string;\n    /**\n     * The icon font\n     * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n     */\n    font: IconFont = FD_DEFAULT_ICON_FONT_FAMILY;\n    /** Aria-label for Icon. */\n    ariaLabel: Nullable<string>;\n}\n\nexport class ListAvatarConfig {\n    /** @hidden */\n    class = '';\n    /** @hidden */\n    ariaLabel: Nullable<string> = null;\n    /** @hidden */\n    ariaLabelledby: Nullable<string> = null;\n    /** @hidden */\n    label: Nullable<string> = null;\n    /** @hidden */\n    size: Size = 's';\n    /** @hidden */\n    glyph: Nullable<string> = null;\n    /** @hidden */\n    zoomGlyph: Nullable<string> = null;\n    /** @hidden */\n    circle = false;\n    /** @hidden */\n    transparent = false;\n    /** @hidden */\n    contain = false;\n    /** @hidden */\n    placeholder = false;\n    /** @hidden */\n    tile = false;\n    /** @hidden */\n    border = false;\n    /** @hidden */\n    colorAccent: Nullable<ColorAccent> = null;\n    /** @hidden */\n    random = false;\n    /** @hidden */\n    clickable = false;\n    /** @hidden */\n    image: Nullable<string> = null;\n    /** @hidden */\n    alterIcon: Nullable<string> = null;\n    /** @hidden */\n    backupImage: Nullable<string> = null;\n}\n\n/**\n * Base interface for a list variant definition.\n * Captures a list item template definition.\n */\nexport interface ItemDef {\n    templateRef: TemplateRef<any>;\n}\n\nexport interface ListAdvancedDescription {\n    text: string;\n    ariaLabel?: string;\n    title?: string;\n}\n\nexport type ListDescription = string | ListAdvancedDescription;\n\nexport enum LIST_ITEM_TYPE {\n    ITEM = 'item',\n    GROUP = 'group',\n    FOOTER = 'footer',\n    HEADER = 'header'\n}\n\nexport class ModifyItemEvent {\n    /** List Item component */\n    source: BaseListItem;\n    /** Action */\n    action: 'delete' | 'edit';\n}\n\n@Directive({\n    selector: '[fdpItemDef]',\n    standalone: true\n})\nexport class ListItemDef implements ItemDef {\n    /** @hidden */\n    constructor(/** @docs-private */ public templateRef: TemplateRef<any>) {}\n}\n\n/**\n * This class contains common properties used across list Item components.\n * this can be extended to reduce the code duplication across list Item components.\n */\n@Directive()\nexport class BaseListItem extends BaseComponent implements AfterViewInit, AfterViewChecked, OnDestroy {\n    /** ID of the list item */\n    @Input()\n    id = `fdp-list-item-${nextListItemId++}`;\n\n    /** define level of item for screen reader */\n    @Input()\n    ariaLevel: number;\n\n    /** define position of item for screen reader */\n    @Input()\n    ariaPosinset: number;\n\n    /** Avatar component properties. @see AvatarComponent for more details */\n    @Input()\n    set avatar(value: Nullable<Partial<ListAvatarConfig> | string>) {\n        if (!value) {\n            return;\n        }\n        value = typeof value === 'string' ? { image: value } : value;\n        this._avatarConfig = merge(new ListAvatarConfig(), value);\n    }\n\n    get avatar(): ListAvatarConfig {\n        return this._avatarConfig;\n    }\n\n    /** attribute to hold counter value */\n    @Input()\n    counter?: string;\n\n    /** Description of the title */\n    @Input()\n    description: Nullable<ListDescription>;\n\n    /** To invert the status of secondary text */\n    @Input()\n    inverted = false;\n\n    /** Whether there is no data inside list item */\n    @Input()\n    noDataText: string;\n\n    /**\n     * The type of the secondary text.fd-list__byline-right--*\n     * Can be one of *positive*, *negative*, *informative*, *critical*, *neutral\n     */\n    @Input()\n    statusType?: StatusType;\n\n    /** attribute to hold secondary text*/\n    @Input()\n    secondary: Nullable<ListDescription>;\n\n    /**\n     * Enabling this flag causes forcing secondary item directive to not wrap text,\n     * instead of wrapping there will be text truncation\n     */\n    @Input()\n    secondaryWrap?: boolean;\n\n    /** Tooltip text to show when focused for more than timeout value*/\n    @Input()\n    title?: string;\n\n    /** Used for placeing navigation Link */\n    @Input()\n    link: Nullable<string>;\n\n    /**\n     * Enabling this flag causes forcing title directive to not wrap text,\n     * instead of wrapping there will be text truncation\n     */\n    @Input()\n    titleWrap?: boolean;\n\n    /**\n     * List item icon configuration.\n     */\n    @Input()\n    set icon(value: Partial<ListIconConfig>) {\n        this._iconConfig = merge(new ListIconConfig(), value);\n    }\n\n    get icon(): ListIconConfig {\n        return this._iconConfig;\n    }\n\n    /**\n     * sets the list item in bold text\n     * which respresents unread data\n     */\n    @Input()\n    unRead: boolean;\n\n    /**\n     * Whether to display unread notification circle.\n     */\n    get displayUnreadNotification(): boolean {\n        return !!this._list?.unreadIndicator;\n    }\n\n    /** radio button value */\n    @Input()\n    value: string;\n\n    /** By default selection mode is 'none' */\n    @Input()\n    set selectionMode(value: SelectionType) {\n        this._selectionMode = value;\n        this._setAttrRole();\n    }\n\n    get selectionMode(): SelectionType {\n        return this._selectionMode;\n    }\n\n    /** By default selection mode is 'active' */\n    @Input()\n    listType: ListType = 'active';\n\n    /**\n     * Whether Navigation mode is included to list component\n     * for all the items\n     */\n    @Input()\n    navigated = false;\n\n    /**\n     * Whether Navigation mode is included to list component\n     * only a subset of the list items are navigable\n     * you should indicate those by displaying a navigation arrow\n     */\n    @Input()\n    navigationIndicator = false;\n\n    /** role */\n    @Input()\n    role: Nullable<string>;\n\n    /**\n     * event emitter for selected item\n     * seprate PR for custom event\n     */\n    @Output()\n    itemSelected = new EventEmitter<ModifyItemEvent>();\n\n    /**\n     * Event emitted for selected item through the checkbox.\n     */\n    @Output()\n    itemCheckboxSelected = new EventEmitter<ModifyItemEvent>();\n\n    /** Event sent when delete, details or any other action buttons are clicked */\n    @Output()\n    buttonClicked = new EventEmitter<ModifyItemEvent>();\n\n    /** @hidden */\n    @ViewChild('listItem', { read: ElementRef })\n    listItem: ElementRef<HTMLLIElement>;\n\n    /** Access child element, for checking link content*/\n    @ViewChild('linkElement', { read: ElementRef })\n    anchor: ElementRef<HTMLLinkElement>;\n\n    /** Access edit button*/\n    @ViewChild('edit', { read: ElementRef })\n    edit: ElementRef<HTMLButtonElement>;\n\n    /** Access delete button*/\n    @ViewChild('delete', { read: ElementRef })\n    delete: ElementRef<HTMLButtonElement>;\n\n    /** @hidden */\n    @ViewChild(CheckboxComponent)\n    checkboxComponent: CheckboxComponent;\n\n    /** @hidden */\n    @ViewChild(RadioButtonComponent)\n    radioButtonComponent: RadioButtonComponent;\n\n    /** @hidden */\n    _type: LIST_ITEM_TYPE = LIST_ITEM_TYPE.ITEM;\n\n    /**\n     * @hidden\n     * Whether By line mode is included to list component, by which\n     * list item will accomdate the data in 2 column\n     */\n    _hasByLine = false;\n\n    /**\n     * @hidden\n     * Whether listitem has row level selection enabled\n     */\n    set rowSelection(value: boolean) {\n        this._rowSelection = value;\n        this._setAttrRole();\n    }\n\n    get rowSelection(): boolean {\n        return this._rowSelection;\n    }\n\n    /**\n     * @hidden\n     * Whether listitem is selected binded to template\n     */\n    _selected = false;\n\n    /** @hidden */\n    get _selectedAttr(): boolean | null {\n        return !this.rowSelection && this.selectionMode === 'none' ? null : this._selected;\n    }\n\n    /**\n     * @hidden\n     * get the focused element for key manager\n     */\n    _focused: boolean;\n\n    /** @hidden */\n    get _listItemRole(): string {\n        return this.role || this._defaultRole;\n    }\n\n    /** @hidden */\n    ariaSetSize: Observable<number>;\n\n    /** @hidden */\n    private _rowSelection = false;\n\n    /** @hidden */\n    private _defaultRole = 'listitem';\n\n    /** @hidden */\n    private _listComponent = inject<FdpList>(FdpListComponent);\n\n    /** @hidden */\n    private _avatarConfig: ListAvatarConfig = new ListAvatarConfig();\n\n    /** @hidden */\n    private _iconConfig: ListIconConfig = new ListIconConfig();\n\n    /**\n     * @hidden\n     * radio button selected value binded to template\n     */\n    private _selectionValue: Nullable<string>;\n\n    /** @hidden */\n    private _selectionMode: SelectionType = 'none';\n\n    /** @hidden */\n    constructor(\n        public itemEl: ElementRef<HTMLElement>,\n        protected _listConfig: ListConfig,\n        @Optional() @Inject(FD_LIST_UNREAD_INDICATOR) private readonly _list: ListUnreadIndicator\n    ) {\n        super();\n    }\n\n    /** Selection value */\n    @Input()\n    set selectionValue(value: Nullable<string>) {\n        this._selected = false;\n        this._selectionValue = value;\n        if (this._selectionValue !== undefined && this.selectionValue !== null) {\n            this._selected = this.value === this._selectionValue;\n        }\n    }\n    get selectionValue(): Nullable<string> {\n        return this._selectionValue;\n    }\n\n    /**\n     * @hidden\n     * On item click event will be emitted\n     */\n    @HostListener('click')\n    _onItemClick(): void {\n        if (this.rowSelection && this.selectionMode === 'multi') {\n            this._selected = !this._selected;\n        }\n\n        const event = new ModifyItemEvent();\n        event.source = this;\n        this._focused = !this._focused;\n        this.itemSelected.emit(event);\n        this.markForCheck();\n    }\n\n    /** @hidden */\n    @HostListener('keydown', ['$event'])\n    _handleKeyboardEvent(event: KeyboardEvent): void {\n        if (!KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n            return;\n        }\n\n        if (this.checkboxComponent || this.radioButtonComponent) {\n            this._onKeyboardClick(event);\n        }\n\n        this.anchor?.nativeElement.click();\n\n        if (this.rowSelection) {\n            this._selected = !this._selected;\n        }\n\n        const $event = new ModifyItemEvent();\n        $event.source = this;\n        this.itemSelected.emit($event);\n        this.markForCheck();\n    }\n\n    /**\n     * @hidden\n     * Handler for mouse events\n     */\n    @HostListener('click', ['$event'])\n    _onClick(event: MouseEvent): void {\n        if (this.checkboxComponent && !this.anchor) {\n            if (!this.checkboxComponent.elementRef.nativeElement.contains(event.target as Node)) {\n                // clicking on the checkbox is not suppressed\n                // so we should only process clicks if clicked on the list-item, not checkbox itself\n                this.checkboxComponent.nextValue();\n            }\n\n            this.radioButtonComponent?.valueChange(event);\n        }\n\n        this.markForCheck();\n        const $event = new ModifyItemEvent();\n        $event.source = this;\n        this.itemSelected.emit($event);\n    }\n\n    /**\n     * @hidden\n     * helps to avoid multi rows active class with navigation\n     */\n    @HostListener('focusout', ['$event'])\n    _onBlur(event: FocusEvent): void {\n        if (isPresent(this.anchor) && !KeyUtil.isKeyCode(event as unknown as KeyboardEvent, [ENTER, SPACE])) {\n            this.anchor.nativeElement.classList.remove(IS_ACTIVE_CLASS);\n        }\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n        this.itemSelected.complete();\n    }\n\n    /** @hidden */\n    ngAfterViewInit(): void {\n        this._listComponent._setupListItem(this);\n    }\n\n    /**\n     * @hidden\n     * To detect changes from parent-listbox to list item\n     * for example single, multi option selection those details\n     * will be deducted in list item\n     */\n    ngAfterViewChecked(): void {\n        const currentItem: Nullable<HTMLElement> =\n            this.itemEl.nativeElement.querySelector<HTMLElement>('.fd-list__item');\n        if (!currentItem) {\n            return;\n        }\n\n        const parentNode = currentItem.parentNode instanceof HTMLElement && currentItem.parentNode;\n        if (parentNode) {\n            parentNode.removeAttribute('title');\n            parentNode.removeAttribute('aria-label');\n        }\n        this.detectChanges();\n    }\n\n    /**\n     * @hidden\n     * Created focus on list item on mouseclick,\n     * Up,down arrow press\n     */\n    focus(): void {\n        this.listItem.nativeElement.focus();\n    }\n\n    /**\n     * Programmatically set selected state of the list item.\n     * @param selected Whether the list item is selected\n     */\n    setSelected(selected: boolean): void {\n        if (selected === this._selected) {\n            return;\n        }\n        const event = new ModifyItemEvent();\n        event.source = this;\n        this._selected = selected;\n        this.detectChanges();\n    }\n\n    /**\n     * @hidden\n     * on keydown append active styles on actionable item\n     */\n    _onKeyDown(event: KeyboardEvent): void {\n        if (isPresent(this.anchor) && KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n            this.anchor.nativeElement.classList.add(IS_ACTIVE_CLASS);\n        }\n    }\n\n    /**\n     * @hidden\n     * on keyup remove active styles from actionable item\n     */\n    _onKeyUp(event: KeyboardEvent): void {\n        if (isPresent(this.anchor) && KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n            this.anchor.nativeElement.classList.remove(IS_ACTIVE_CLASS);\n        }\n    }\n\n    /** @hidden */\n    _onCheckboxModelChange(): void {\n        const event = new ModifyItemEvent();\n        event.source = this;\n        this.itemCheckboxSelected.emit(event);\n    }\n\n    /**\n     * @hidden\n     * Handles action button click\n     */\n    _onActionButtonClick(action: 'delete' | 'edit'): void {\n        const event = new ModifyItemEvent();\n        event.source = this;\n        event.action = action;\n        this.buttonClicked.emit(event);\n    }\n\n    /**\n     * @hidden\n     * Handles action button click on key press\n     */\n    _onKeyButtonClick(event: KeyboardEvent, action: 'delete' | 'edit'): void {\n        if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n            this._onActionButtonClick(action);\n        }\n    }\n\n    /** @hidden */\n    _isAdvancedText(text: ListDescription): text is ListAdvancedDescription {\n        return typeof text !== 'string' && !!text.text;\n    }\n\n    /** @hidden */\n    private _onKeyboardClick(event: KeyboardEvent): void {\n        this.checkboxComponent?.nextValue();\n        this.radioButtonComponent?.valueChange(event);\n\n        this.markForCheck();\n        const $event = new ModifyItemEvent();\n        $event.source = this;\n        this.itemSelected.emit($event);\n    }\n\n    /** @hidden */\n    private _setAttrRole(): void {\n        this._defaultRole =\n            this.rowSelection || this.selectionMode === 'single' || this.selectionMode === 'multi'\n                ? 'option'\n                : 'listitem';\n        this.markForCheck();\n    }\n}\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    EventEmitter,\n    Output,\n    ViewChild,\n    forwardRef\n} from '@angular/core';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\nimport { AsyncPipe } from '@angular/common';\nimport { ListItemComponent } from '@fundamental-ngx/core/list';\nimport { BaseListItem, IS_ACTIVE_CLASS } from '../base-list-item';\n\nexport class ActionChangeEvent {\n    /** Action List Item component */\n    source: ActionListItemComponent;\n}\n\n@Component({\n    selector: 'fdp-action-list-item',\n    templateUrl: './action-list-item.component.html',\n    providers: [{ provide: BaseListItem, useExisting: forwardRef(() => ActionListItemComponent) }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        role: 'none'\n    },\n    imports: [ListItemComponent, AsyncPipe]\n})\nexport class ActionListItemComponent extends BaseListItem {\n    /** Access button element*/\n    @ViewChild('action', { read: ElementRef })\n    button: ElementRef<HTMLButtonElement>;\n\n    /** Event sent when action in clicked */\n    @Output()\n    actionClicked = new EventEmitter<ActionChangeEvent>();\n\n    /**\n     * @hidden\n     * Handles action click\n     */\n    _onActionClick(): void {\n        const event = new ActionChangeEvent();\n        event.source = this;\n        this.actionClicked.emit(event);\n    }\n\n    /**\n     * @hidden\n     * on keydown append active styles on actionable item\n     */\n    _onKeyDown(event: KeyboardEvent): void {\n        if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n            this.button.nativeElement.classList.add(IS_ACTIVE_CLASS);\n        }\n    }\n\n    /**\n     * @hidden\n     * on keyup remove active styles from actionable item\n     */\n    _onKeyUp(event: KeyboardEvent): void {\n        if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n            this.button.nativeElement.classList.remove(IS_ACTIVE_CLASS);\n            this._onActionClick();\n        }\n    }\n}\n","<div\n    #listItem\n    fd-list-item\n    class=\"fd-list__item--action\"\n    [id]=\"id\"\n    [tabindex]=\"-1\"\n    (keydown)=\"_onKeyDown($event)\"\n    (keyup)=\"_onKeyUp($event)\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-level]=\"ariaLevel\"\n    [attr.aria-posinset]=\"ariaPosinset\"\n    [attr.aria-setsize]=\"ariaSetSize | async\"\n    [ariaRole]=\"_listItemRole\"\n    [attr.aria-selected]=\"_selectedAttr\"\n>\n    <button #action class=\"fd-list__title\" [attr.aria-label]=\"title\" [attr.title]=\"title\" (click)=\"_onActionClick()\">\n        {{ title }}\n    </button>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { ActionListItemComponent } from './action-list-item.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [ActionListItemComponent],\n    exports: [ActionListItemComponent]\n})\nexport class ActionListItemModule {}\n","import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';\n\nimport { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport {\n    ListItemComponent,\n    ListLinkDirective,\n    ListSecondaryDirective,\n    ListTitleDirective\n} from '@fundamental-ngx/core/list';\nimport { BaseListItem } from '../base-list-item';\n\n@Component({\n    selector: 'fdp-display-list-item',\n    templateUrl: './display-list-item.component.html',\n    providers: [{ provide: BaseListItem, useExisting: forwardRef(() => DisplayListItemComponent) }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        role: 'none'\n    },\n    imports: [\n        ListItemComponent,\n        ListLinkDirective,\n        RouterLink,\n        NgTemplateOutlet,\n        ListTitleDirective,\n        NgClass,\n        ListSecondaryDirective,\n        AsyncPipe\n    ]\n})\nexport class DisplayListItemComponent extends BaseListItem {}\n","<!--  list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n    <div\n        #listItem\n        fd-list-item\n        [id]=\"id\"\n        [selected]=\"_selected\"\n        [tabindex]=\"-1\"\n        (keydown)=\"_onKeyDown($event)\"\n        (keyup)=\"_onKeyUp($event)\"\n        class=\"fd-list__item--link\"\n        [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n        [attr.aria-label]=\"ariaLabel\"\n        [attr.aria-level]=\"ariaLevel\"\n        [attr.aria-posinset]=\"ariaPosinset\"\n        [attr.aria-setsize]=\"ariaSetSize | async\"\n        [ariaRole]=\"_listItemRole\"\n        [attr.aria-selected]=\"_selectedAttr\"\n    >\n        <a\n            #linkElement\n            fd-list-link\n            [routerLink]=\"link\"\n            [navigationIndicator]=\"navigationIndicator\"\n            [navigated]=\"navigated\"\n        >\n            <ng-template [ngTemplateOutlet]=\"commonTemplate\"></ng-template>\n        </a>\n    </div>\n}\n<!--  list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n    <div\n        #listItem\n        fd-list-item\n        [id]=\"id\"\n        [selected]=\"_selected\"\n        (keydown)=\"_onKeyDown($event)\"\n        [tabindex]=\"-1\"\n        (keyup)=\"_onKeyUp($event)\"\n        [attr.aria-label]=\"ariaLabel\"\n        [attr.aria-level]=\"ariaLevel\"\n        [attr.aria-posinset]=\"ariaPosinset\"\n        [attr.aria-setsize]=\"ariaSetSize | async\"\n        [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n        [ariaRole]=\"_listItemRole\"\n        [attr.aria-selected]=\"_selectedAttr\"\n    >\n        <ng-template [ngTemplateOutlet]=\"commonTemplate\"></ng-template>\n    </div>\n}\n<ng-template #commonTemplate>\n    @if (title) {\n        <span fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">{{ title }}</span>\n    }\n    @if (secondary) {\n        <ng-template\n            [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n            [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n        ></ng-template>\n    }\n</ng-template>\n<ng-template #simpleSecondary let-secondary>\n    <span fd-list-secondary [attr.aria-label]=\"secondary\" [attr.title]=\"secondary\" [attr.nowrap]=\"secondaryWrap\">\n        {{ secondary }}\n    </span>\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n    <span\n        fd-list-secondary\n        [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n        [attr.title]=\"secondary.title ?? secondary.text\"\n        [attr.nowrap]=\"secondaryWrap\"\n    >\n        {{ secondary.text }}\n    </span>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { DisplayListItemComponent } from './display-list-item.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [DisplayListItemComponent],\n    exports: [DisplayListItemComponent]\n})\nexport class DisplayListItemModule {}\n","import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { ListItemComponent } from '@fundamental-ngx/core/list';\nimport { BaseListItem } from '../base-list-item';\n\n@Component({\n    selector: 'fdp-free-content-list-item, li[fdp-free-content-list-item]',\n    templateUrl: './free-content-list-item.component.html',\n    styleUrl: './free-content-list-item.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [{ provide: BaseListItem, useExisting: forwardRef(() => FreeContentListItemComponent) }],\n    host: {\n        role: 'listitem'\n    },\n    imports: [ListItemComponent, AsyncPipe]\n})\nexport class FreeContentListItemComponent extends BaseListItem {}\n","<div\n    #listItem\n    [class.fd-list__item--unread]=\"unRead\"\n    fd-list-item\n    [id]=\"id\"\n    [selected]=\"_selected\"\n    [tabindex]=\"-1\"\n    (click)=\"_onItemClick()\"\n    (keydown)=\"_onKeyDown($event)\"\n    (keyup)=\"_onKeyUp($event)\"\n    class=\"fd-list__item--link\"\n    [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-describedby]=\"ariaDescribedBy\"\n    [attr.aria-level]=\"ariaLevel\"\n    [attr.aria-posinset]=\"ariaPosinset\"\n    [attr.aria-setsize]=\"ariaSetSize | async\"\n    [ariaRole]=\"_listItemRole\"\n    [attr.aria-selected]=\"_selectedAttr\"\n>\n    <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { BaseComponent } from '@fundamental-ngx/platform/shared';\nimport { LIST_ITEM_TYPE } from './base-list-item';\n\n@Component({\n    selector: 'fdp-list-footer',\n    template: `<div #listFooter class=\"fd-list__footer\" [attr.id]=\"id\" role=\"option\"><ng-content></ng-content></div>`,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        role: 'none'\n    }\n})\nexport class ListFooterComponent extends BaseComponent {\n    /** @hidden */\n    _type = LIST_ITEM_TYPE.FOOTER;\n}\n","import { ChangeDetectionStrategy, Component, forwardRef, Input, OnInit } from '@angular/core';\nimport { ListGroupHeaderDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { BaseListItem, LIST_ITEM_TYPE } from './base-list-item';\n\nlet nextListGrpHeaderId = 0;\n\n@Component({\n    selector: 'fdp-list-group-header',\n    template: ` <div\n        #listItem\n        fd-list-group-header\n        [attr.aria-labelledby]=\"ariaLabelledBy\"\n        [attr.aria-label]=\"ariaLabel\"\n        [attr.id]=\"id\"\n        role=\"group\"\n        [tabindex]=\"0\"\n    >\n        <span fd-list-title>{{ groupHeaderTitle }}</span>\n        <ng-content></ng-content>\n    </div>`,\n    providers: [{ provide: BaseListItem, useExisting: forwardRef(() => ListGroupHeaderComponent) }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        role: 'none'\n    },\n    imports: [ListGroupHeaderDirective, ListTitleDirective]\n})\nexport class ListGroupHeaderComponent extends BaseListItem implements OnInit {\n    /** Displays list group header title */\n    @Input()\n    groupHeaderTitle?: string;\n\n    /** @hidden */\n    _type = LIST_ITEM_TYPE.HEADER;\n\n    /**\n     * @hidden\n     * Initialization of the list header component\n     */\n    ngOnInit(): void {\n        this.id = `fdp-list-${nextListGrpHeaderId++}`;\n    }\n}\n","import { Directive, TemplateRef } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Directive({\n    selector: '[fdpListLoadMoreContent]',\n    standalone: true\n})\nexport class LoadMoreContentDirective {\n    /** @hidden */\n    constructor(readonly templateRef: TemplateRef<LoadMoreContentContext>) {}\n}\n\ninterface _LoadMoreContentContext {\n    loadTitle: string;\n    loading: boolean;\n    loadingLabel: Observable<string>;\n    lastChunk: {\n        start: number;\n        end: number;\n    };\n    total: number;\n}\n\nexport interface LoadMoreContentContext extends _LoadMoreContentContext {\n    $implicit: _LoadMoreContentContext;\n}\n","import { FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { SelectionChange, SelectionModel } from '@angular/cdk/collections';\nimport { DOWN_ARROW, ENTER, SPACE, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    Component,\n    ContentChild,\n    ContentChildren,\n    ElementRef,\n    EventEmitter,\n    HostListener,\n    Input,\n    OnDestroy,\n    OnInit,\n    Output,\n    QueryList,\n    ViewChild,\n    ViewEncapsulation,\n    forwardRef,\n    inject\n} from '@angular/core';\nimport { FD_FORM_FIELD_CONTROL } from '@fundamental-ngx/cdk/forms';\nimport {\n    BehaviorSubject,\n    Observable,\n    Subscription,\n    asyncScheduler,\n    filter,\n    isObservable,\n    map,\n    observeOn,\n    of,\n    startWith,\n    switchMap\n} from 'rxjs';\nimport { delay, tap } from 'rxjs/operators';\n\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { KeyUtil, Nullable, range } from '@fundamental-ngx/cdk/utils';\nimport { BusyIndicatorComponent } from '@fundamental-ngx/core/busy-indicator';\nimport { InfiniteScrollDirective } from '@fundamental-ngx/core/infinite-scroll';\nimport {\n    ListComponent as CoreListComponent,\n    FD_LIST_UNREAD_INDICATOR,\n    ListItemComponent,\n    ListUnreadIndicator\n} from '@fundamental-ngx/core/list';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { FD_LANGUAGE_SIGNAL, FdTranslatePipe, TranslationResolver } from '@fundamental-ngx/i18n';\nimport {\n    ArrayListDataSource,\n    CollectionBaseInput,\n    ListDataSource,\n    ObservableListDataSource,\n    isBlank,\n    isDataSource,\n    isPresent\n} from '@fundamental-ngx/platform/shared';\nimport { BaseListItem, LIST_ITEM_TYPE, ListItemDef } from './base-list-item';\nimport { FdpListComponent } from './fdpListComponent.token';\nimport { LoadMoreContentContext, LoadMoreContentDirective } from './load-more-content.directive';\nimport { FdpList, FdpListDataSource, ListType, SelectionType } from './models/list';\n\nexport class SelectionChangeEvent {\n    /** Selected items */\n    selectedItems: BaseListItem[];\n    /** Index */\n    index: number;\n    /** Selected item */\n    added?: BaseListItem[];\n    /** Deselected item */\n    removed?: BaseListItem[];\n}\n\nlet nextListId = 0;\n\n/**\n * The List component represents a container for list item types.\n * It is used to display a list features.\n */\n@Component({\n    selector: 'fdp-list',\n    templateUrl: './list.component.html',\n    encapsulation: ViewEncapsulation.None,\n    styleUrl: './list.component.scss',\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        { provide: FD_FORM_FIELD_CONTROL, useExisting: ListComponent, multi: true },\n        { provide: FdpListComponent, useExisting: ListComponent },\n        {\n            provide: FD_LIST_UNREAD_INDICATOR,\n            useExisting: ListComponent\n        }\n    ],\n    host: {\n        '[attr.tabindex]': '-1'\n    },\n    imports: [\n        CoreListComponent,\n        BusyIndicatorComponent,\n        InfiniteScrollDirective,\n        ListItemComponent,\n        NgTemplateOutlet,\n        SkeletonComponent,\n        FdTranslatePipe,\n        AsyncPipe\n    ]\n})\nexport class ListComponent<T>\n    extends CollectionBaseInput\n    implements ListUnreadIndicator, OnInit, AfterViewInit, OnDestroy, FdpList<BaseListItem>\n{\n    /**  An array that holds a list of all selected items. **/\n    @Input()\n    selectedItems: BaseListItem[];\n\n    /** define size of items for screen reader. */\n    @Input()\n    ariaSetsize: number;\n\n    /** Defines whether items are multiselectable for screen reader. */\n    @Input()\n    ariaMultiselectable: boolean;\n\n    /** Title used on button when data loads on button click. */\n    @Input()\n    loadTitle: string;\n\n    /** Label used on announce message of data was loaded for screen readers. */\n    @Input()\n    loadingLabel = '';\n\n    /** Wait time for new items. */\n    @Input()\n    delayTime: number;\n\n    /** Items to be loaded at once. Intinity (no limit) by default. */\n    @Input()\n    itemSize = Infinity;\n\n    /** Enables lazy loadMore of data. */\n    @Input()\n    loadMore: boolean;\n\n    /**\n     * Enables data load on scroll for true\n     * false: enables data loading on button click.\n     */\n    @Input()\n    loadOnScroll: boolean;\n\n    /** define the role to custom requirement. */\n    @Input()\n    role = 'list';\n\n    /** ListType 'inactive' | 'active' | 'navigation' | 'detail' */\n    @Input()\n    listType: ListType = 'active';\n\n    /** Max height for viewport to display scroll. */\n    @Input()\n    maxHeight: string;\n\n    /** Whether list component has removed borders. */\n    @Input()\n    noBorder = false;\n\n    /** Scroll offset percentage to trigger scroll event. */\n    @Input()\n    scrollOffsetPercentage: number;\n\n    /** Eenables selection styles. */\n    @Input()\n    selection = false;\n\n    /**\n     * The type of the selection. Types include:\n     * 'none'| 'multi' | 'single'|'delete'.\n     * Leave empty for default ().'\n     * Default value is set to 'none'.\n     */\n    @Input()\n    selectionMode: SelectionType = 'none';\n\n    /** setter and getter for radio button and checkbox. */\n    @Input()\n    set value(value: any) {\n        super.setValue(value);\n    }\n\n    get value(): any {\n        return super.getValue();\n    }\n\n    /** setter and getter for row level Selection. */\n    @Input()\n    set rowSelection(value: boolean) {\n        this._rowSelection = value;\n        if (this._rowSelection) {\n            this.selection = true;\n            this._ulElement?.classList.add('fd-list--selection-row');\n            if (this.navigated && this.hasObject) {\n                this._ulElement?.classList.remove('fd-list--selection-row');\n            }\n        }\n    }\n\n    get rowSelection(): boolean {\n        return this._rowSelection;\n    }\n\n    /** Datasource for suggestion list. */\n    @Input()\n    set dataSource(value: FdpListDataSource<T>) {\n        if (value) {\n            this._initializeDS(value);\n        }\n    }\n\n    get dataSource(): FdpListDataSource<T> {\n        return this._dataSource;\n    }\n\n    /** setter and getter for _navigated. */\n    @Input()\n    set navigated(value: boolean) {\n        this._navigated = value;\n\n        const classList = ['fd-list--navigation'];\n        if (this.hasObject) {\n            classList.push('fd-list--navigation-object');\n        }\n\n        this._ulElement?.classList.add(...classList);\n    }\n\n    get navigated(): boolean {\n        return this._navigated;\n    }\n\n    /** setter and getter for _navigationIndicator. */\n    @Input()\n    set navigationIndicator(value: boolean) {\n        this._navigationIndicator = value;\n        this._ulElement?.classList.add('fd-list--navigation-indication');\n    }\n\n    get navigationIndicator(): boolean {\n        return this._navigationIndicator;\n    }\n\n    /** setter and getter for hasByLine. */\n    @Input()\n    set hasByLine(value: boolean) {\n        this._hasByLine = value;\n        this._ulElement?.classList.add('fd-list--byline');\n    }\n\n    get hasByLine(): boolean {\n        return this._hasByLine;\n    }\n\n    /** setter and getter for hasObject. */\n    @Input()\n    set hasObject(value: boolean) {\n        this._hasObject = value;\n        this._ulElement?.classList.add('fd-object-list');\n    }\n\n    get hasObject(): boolean {\n        return this._hasObject;\n    }\n\n    /** Whether to display unread notification indicator. */\n    @Input()\n    unreadIndicator = false;\n\n    /** Whether to intercept tab key navigation. */\n    @Input()\n    interceptTabKey = true;\n\n    /** Event thrown, when selected item is changed */\n    @Output()\n    selectedItemChange: EventEmitter<SelectionChangeEvent> = new EventEmitter<SelectionChangeEvent>();\n\n    /** Access child element, for checking link content */\n    @ViewChild('link', { read: ElementRef })\n    anchor: ElementRef<HTMLLinkElement>;\n\n    /** @hidden */\n    @ContentChild(forwardRef(() => ListItemDef))\n    listItemDef: ListItemDef;\n\n    /** Show More List item content */\n    @ContentChild(LoadMoreContentDirective)\n    loadMoreContent: LoadMoreContentDirective;\n\n    /** Child items of the List. */\n    @ContentChildren(forwardRef(() => BaseListItem), { descendants: true })\n    listItems: QueryList<BaseListItem>;\n\n    /** @hidden */\n    get _ulElement(): Nullable<HTMLUListElement> {\n        return this.elementRef.nativeElement.querySelector('.fd-list');\n    }\n\n    /**\n     * @hidden\n     * To display loading symbol\n     */\n    _loading = false;\n\n    /** @hidden\n     * To differentiate between first loading when skeletons be shown and subsequent loadings when busy indicator be shown\n     */\n    _firstLoadingDone = false;\n\n    /** @hidden */\n    readonly loadingRange = range(3);\n\n    /**\n     * @hidden\n     * keyManger to handle keybord events used in template\n     */\n    _keyManager: Nullable<FocusKeyManager<BaseListItem>>;\n\n    /** @hidden */\n    _items: T[] = [];\n\n    /** @hidden */\n    _ariaSetSize: Observable<number> = new Observable();\n\n    /** @hidden */\n    protected _dataSource: ListDataSource<T>;\n\n    /**\n     * @hidden\n     * Verfies partial navigation enabled\n     */\n    protected _partialNavigation = false;\n\n    /** @hidden */\n    private _translationResolver = new TranslationResolver();\n\n    /**\n     * @hidden\n     * Whether Navigation mode is included to list component\n     * for all the items\n     */\n    private _navigated: boolean;\n\n    /**\n     * @hidden\n     * Whether By line is present in list item\n     */\n    private _hasByLine: boolean;\n\n    /**\n     * @hidden\n     * Whether Navigation mode is included to list component\n     * only a subset of the list items are navigable\n     * you should indicate those by displaying a navigation arrow\n     */\n    private _navigationIndicator: boolean;\n\n    /**\n     * @hidden\n     * Whether object present in list item\n     */\n    private _hasObject: boolean;\n\n    /**\n     * @hidden\n     * The model backing of the component.\n     */\n    private _selectionModel: SelectionModel<BaseListItem>;\n\n    /**\n     * @hidden\n     * Whether list component has multiselection\n     * binding in tempate to append class\n     */\n    private _multiSelect = false;\n\n    /** @hidden */\n    private _selectedvalue: Nullable<string>;\n\n    /**\n     * @hidden\n     * Whether row level selection mode is enabled to list component\n     * for all the items\n     */\n    private _rowSelection: boolean;\n\n    /** @hidden To store */\n    private _tempItems: T[] = [];\n\n    /** @hidden */\n    private _startIndex = 0;\n\n    /** @hidden */\n    private _lastIndex = this.itemSize;\n\n    /** @hidden */\n    private _dsItems: T[] = [];\n\n    /**\n     * @hidden\n     * for data source handling\n     */\n    private _dsSubscription: Nullable<Subscription>;\n\n    /** @hidden */\n    private readonly _langSignal = inject(FD_LANGUAGE_SIGNAL);\n\n    /** @hidden */\n    private _afterViewInit$ = new BehaviorSubject(false);\n\n    /** @hidden */\n    constructor(private readonly _liveAnnouncer: LiveAnnouncer) {\n        super();\n    }\n\n    /**\n     * @hidden\n     * on Update navgiation styles for non navigated items\n     * event:any to avoid code duplication\n     * seprate PR for custom event\n     */\n    @HostListener('click', ['$event'])\n    _updateNavigation(event: Event): void {\n        let selectedItemId: Nullable<string> = '0';\n        const element: Nullable<HTMLElement> = event.target instanceof HTMLElement ? event.target : null;\n        const parent = element?.closest('.fd-list__item');\n        if (isPresent(parent)) {\n            selectedItemId = parent?.getAttribute('id');\n        }\n\n        this.listItems.forEach((item, index) => {\n            item.anchor?.nativeElement.classList.remove('is-navigated');\n\n            if (item._focused) {\n                this._keyManager?.updateActiveItem(index);\n            }\n        });\n\n        const el = event.target instanceof HTMLElement && event.target;\n        if (!el) {\n            return;\n        }\n\n        const linkElement = el.querySelector('a');\n        if (el.tagName.toLowerCase() === 'a') {\n            el.classList.add('is-navigated');\n        } else if (el.classList.contains('fd-list__item') && !!linkElement) {\n            linkElement.classList.add('is-navigated');\n        }\n\n        // TODO: selection management should be completely changed https://github.com/SAP/fundamental-ngx/issues/8008\n        if (this.rowSelection) {\n            this._handleRowSelect(selectedItemId);\n        } else if (this.selectionMode === 'single') {\n            this._handleSingleSelect(event, selectedItemId);\n        } else if (this.selectionMode === 'multi') {\n            this._handleMultiSelect(selectedItemId);\n        }\n    }\n\n    /** Get context for load more button */\n    getLoadMoreContentContext(): LoadMoreContentContext {\n        const $implicit = {\n            loadTitle: this.loadTitle,\n            loading: this._loading,\n            loadingLabel: (() => {\n                if (this._loading) {\n                    const lang = this._langSignal();\n                    return of(this._translationResolver.resolve(lang, 'platformList.loadingAriaLabel'));\n                }\n                return of(this.loadingLabel);\n            })(),\n            lastChunk: {\n                start: this._startIndex,\n                end: this._lastIndex\n            },\n            total: this._dsItems.length\n        };\n        return {\n            $implicit,\n            ...$implicit\n        };\n    }\n\n    /**\n     * @hidden\n     * Initialization of the lis component with selection mode\n     */\n    ngOnInit(): void {\n        this._setItems();\n\n        this.stateChanges.next(this._items);\n        this.id = `fdp-list-${nextListId++}`;\n\n        // using selection Model for multiselect\n        if (this.selectionMode === 'multi') {\n            this._multiSelect = true;\n            this.ariaMultiselectable = true;\n        } else {\n            this._multiSelect = false;\n        }\n\n        this._selectionModel = new SelectionModel<BaseListItem>(this._multiSelect, this.selectedItems);\n\n        this._selectionModel.changed\n            .pipe(takeUntilDestroyed(this._destroyed))\n            .subscribe((selection: SelectionChange<BaseListItem>) => {\n                this.selectedItems = this._selectionModel.selected;\n                const event = new SelectionChangeEvent();\n                event.selectedItems = this.selectedItems;\n                if (selection.added?.length) {\n                    event.added = [...selection.added];\n                }\n                if (selection.removed?.length) {\n                    event.removed = [...selection.removed];\n                }\n                this.stateChanges.next(event);\n                this.selectedItemChange.emit(event);\n            });\n    }\n\n    /**\n     * @hidden\n     * Keyboard manager on list items, set values when passed via array\n     */\n    ngAfterViewInit(): void {\n        this._afterViewInit$.next(true);\n        this._keyManager = new FocusKeyManager<BaseListItem>(this.listItems).withWrap();\n\n        this._subscriptions.add(\n            this.listItems.changes\n                .pipe(startWith(this.listItems), observeOn(asyncScheduler))\n                .subscribe(() => this._updateListItems())\n        );\n\n        // Listen for active item changes to update roving tabindex\n        this._subscriptions.add(this._keyManager.change.subscribe(() => this._updateTabIndexes()));\n\n        const indicator = this.elementRef.nativeElement.querySelector('fd-busy-indicator');\n        indicator?.setAttribute('aria-label', '');\n    }\n\n    /** @hidden */\n    ngOnDestroy(): void {\n        super.ngOnDestroy();\n\n        if (isDataSource(this.dataSource)) {\n            this.dataSource.close();\n        }\n\n        this._dsSubscription?.unsubscribe();\n\n        this._keyManager?.destroy();\n    }\n\n    /**\n     * @hidden\n     * handline keyboard operations\n     * in template on list and list items\n     */\n    _handleKeyDown(event: KeyboardEvent): Nullable<boolean> {\n        if (!this._keyManager) {\n            return;\n        }\n\n        if (KeyUtil.isKeyCode(event, TAB) && !this.interceptTabKey) {\n            return;\n        }\n\n        event.stopImmediatePropagation();\n\n        if (KeyUtil.isKeyCode(event, DOWN_ARROW) || KeyUtil.isKeyCode(event, UP_ARROW)) {\n            return false;\n        } else if (KeyUtil.isKeyCode(event, ENTER) || KeyUtil.isKeyCode(event, SPACE)) {\n            this._updateNavigation(event);\n            return false;\n        }\n    }\n\n    /** @hidden */\n    _setCurrentActiveItemIndex(activeItemIndex: number): void {\n        this._keyManager?.setActiveItem(activeItemIndex);\n    }\n\n    /**\n     * @hidden\n     * binded in template on scroll\n     */\n    _scrollHandler(): void {\n        if (!this._loading && this.loadOnScroll) {\n            this._getMoreData();\n        }\n    }\n\n    /**\n     * @hidden\n     * show more on enter or space press\n     */\n    _loadOnKeyPress(event: KeyboardEvent): void {\n        if (KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n            this._getMoreData();\n        }\n    }\n\n    /**\n     * @hidden\n     * Handles lazy loading data\n     * used in template\n     * onscroll and on more button click\n     */\n    _getMoreData(): void {\n        this._loading = true;\n        of(this._loadNewItems())\n            .pipe(\n                tap(async (data) => {\n                    if (isBlank(data)) {\n                        console.error('===Invalid Response received===');\n                    }\n                    const lang = this._langSignal();\n                    this.loadingLabel = this._translationResolver.resolve(lang, 'platformList.loadingAriaLabel');\n                    await this._liveAnnouncer.announce(this.loadingLabel, 'assertive');\n                }),\n                delay(this.delayTime),\n                takeUntilDestroyed(this._destroyed)\n            )\n            .subscribe((result) => {\n                if (isPresent(result)) {\n                    for (let i = this._items.length, j = 0; j < result.length; ++i, ++j) {\n                        this._items[i] = result[j];\n                    }\n                }\n                this._loading = false;\n                this.stateChanges.next(this._items);\n                this.markForCheck();\n            });\n    }\n\n    /**\n     * @hidden\n     * used in tempate to get Selected items from a list\n     * event:any to avoid code duplication\n     */\n    _onSelectionChanged(event: Event): void {\n        this._updateNavigation(event);\n    }\n\n    /** @hidden */\n    _setupListItem(item: BaseListItem): void {\n        item.selectionMode = this.selectionMode;\n        item.rowSelection = this.rowSelection;\n        item._hasByLine = this.hasByLine;\n        item.itemSelected.subscribe(() => {\n            this._keyManager?.setActiveItem(this.listItems.toArray().indexOf(item));\n        });\n\n        this.stateChanges.next(item);\n    }\n\n    /** @hidden */\n    _selectItem(item: BaseListItem): void {\n        this._selectionModel.select(item);\n        this.stateChanges.next(item);\n    }\n\n    /** @hidden */\n    _clearSelection(): void {\n        this._selectionModel.clear();\n    }\n\n    /** @hidden */\n    private _setItems(): void {\n        if (this._dsItems.length !== null && this.itemSize !== 0) {\n            this._startIndex = 0;\n            this._lastIndex = this.itemSize;\n            this._items = this._dsItems.slice(this._startIndex, this._lastIndex);\n        } else {\n            this._items = this._dsItems;\n        }\n\n        this.stateChanges.next(this._items);\n    }\n\n    /** @hidden */\n    private _initializeDS(ds: FdpListDataSource<T>): void {\n        this._dsItems = [];\n        if (isDataSource(this.dataSource)) {\n            this.dataSource.close();\n            if (this._dsSubscription) {\n                this._dsSubscription.unsubscribe();\n                this._dsSubscription = null;\n            }\n        }\n        // Convert ListDataSource<T> | Observable<T[]> | T[] as DataSource\n        this._dataSource = this._openDataStream(ds);\n    }\n\n    /** @hidden */\n    private _toDataStream(source: FdpListDataSource<T>): ListDataSource<T> | undefined {\n        if (isDataSource(source)) {\n            return <ListDataSource<T>>source;\n        }\n\n        if (Array.isArray(source)) {\n            // default implementation to work on top of arrays\n            return new ArrayListDataSource<T>(source);\n        }\n\n        if (isObservable(source)) {\n            return new ObservableListDataSource<T>(source);\n        }\n\n        return undefined;\n    }\n\n    /** @hidden */\n    private _openDataStream(ds: FdpListDataSource<T>): ListDataSource<T> {\n        const initDataSource = this._toDataStream(ds);\n        if (initDataSource === undefined) {\n            throw new Error(`[dataSource] source did not match an array, Observable, or DataSource`);\n        }\n\n        /**\n         * This is single point of data entry to the component. We dont want to set data on different\n         * places. If any new data comes in either you do a search and you want to pass initial data\n         * its here.\n         */\n        this._dsSubscription = initDataSource\n            .open()\n            .pipe(\n                // Set new items when component is fully initiated and all child components are available.\n                this._waitForViewInit(),\n                takeUntilDestroyed(this._destroyed)\n            )\n            .subscribe((data) => {\n                this._dsItems = data || [];\n                this.stateChanges.next(this._dsItems);\n                this._setItems();\n                // Trigger change detection when queue is empty.\n                setTimeout(() => {\n                    this.detectChanges();\n                });\n            });\n\n        this._dsSubscription.add(initDataSource.onDataRequested().subscribe(() => (this._loading = true)));\n\n        this._dsSubscription.add(\n            initDataSource.onDataReceived().subscribe(() => {\n                this._loading = false;\n                this._firstLoadingDone = true;\n            })\n        );\n\n        const matchParams = new Map();\n\n        matchParams.set('query', '*');\n        matchParams.set('limit', this.itemSize);\n\n        // initial data fetch\n        initDataSource.match(matchParams);\n\n        return initDataSource;\n    }\n\n    /** @hidden */\n    private _loadNewItems(): T[] {\n        this._startIndex = this._startIndex + this.itemSize;\n        this._lastIndex = this._lastIndex + this.itemSize;\n        this._tempItems = this._dsItems.slice(this._startIndex, this._lastIndex);\n\n        return this._tempItems;\n    }\n\n    /**\n     * @hidden\n     * List item with radio button styles, check, uncheckupdates\n     * event:any to avoid code duplication\n     */\n    private _handleSingleSelect(event: Event, selectedItemId: Nullable<string>): void {\n        const parent = event.target instanceof HTMLElement && event.target.closest('.fd-list__item');\n        const radio = parent ? parent.querySelector('input') : null;\n        this._selectedvalue = radio ? (<HTMLInputElement>radio).value : null;\n\n        this.listItems.forEach((item) => {\n            if (isPresent(item.radioButtonComponent)) {\n                item._selected = false;\n                item.listItem.nativeElement.setAttribute('aria-checked', 'false');\n            }\n\n            this.stateChanges.next(item);\n        });\n\n        this._selectionModel.clear();\n\n        this.listItems.forEach((item) => {\n            item.selectionValue = this._selectedvalue;\n            const { nativeElement } = item.listItem;\n            if (nativeElement.getAttribute('id') === selectedItemId) {\n                nativeElement.setAttribute('_selected', 'true');\n                nativeElement.setAttribute('aria-checked', 'true');\n\n                this._selectItem(item);\n            }\n        });\n    }\n\n    /** @hidden */\n    private _handleRowSelect(selectedItemId: Nullable<string>): void {\n        // handles mutli select on row level without checkbox\n        if (this.selectionMode === 'multi') {\n            this.listItems.forEach((item) => {\n                if (item._selected) {\n                    this._selectionModel.select(item);\n                } else {\n                    this._selectionModel.deselect(item);\n                }\n\n                this.stateChanges.next(item);\n            });\n        }\n\n        // handles single select on row level without radiobutton\n        if (this.selectionMode === 'single') {\n            this.listItems.forEach((item) => {\n                if (!item.anchor) {\n                    return;\n                }\n\n                const { nativeElement } = item.listItem;\n                nativeElement.setAttribute('_selected', 'false');\n                nativeElement.setAttribute('aria-selected', 'false');\n                nativeElement.classList.remove('is-selected');\n                item.anchor.nativeElement.classList.remove('is-selected');\n                this.stateChanges.next(item);\n            });\n\n            this._selectionModel.clear();\n\n            this.listItems.forEach((item) => {\n                const { nativeElement } = item.listItem;\n                if (nativeElement.getAttribute('id') !== selectedItemId) {\n                    return;\n                }\n\n                nativeElement.setAttribute('_selected', 'true');\n                item.anchor?.nativeElement.classList.add('is-selected');\n\n                this._selectItem(item);\n            });\n\n            selectedItemId = '0';\n        }\n    }\n\n    /**\n     * @hidden\n     * List item with checkbox styles,check,uncheckupdates\n     * event:any to avoid code duplication\n     */\n    private _handleMultiSelect(selectedItemId: Nullable<string>): void {\n        this.listItems.forEach((item) => {\n            const { nativeElement } = item.listItem;\n            if (nativeElement.getAttribute('id') !== selectedItemId) {\n                return;\n            }\n\n            const select = nativeElement.getAttribute('_selected');\n            nativeElement.setAttribute('_selected', `${!select}`);\n            if (item._selected) {\n                nativeElement.setAttribute('aria-selected', 'true');\n                this._selectionModel.select(item);\n            } else {\n                nativeElement.setAttribute('aria-selected', 'false');\n                this._selectionModel.deselect(item);\n            }\n\n            this.stateChanges.next(item);\n        });\n    }\n\n    /**\n     * @hidden\n     * Setting values from list to list items\n     * example:\n     * Does list item has navigation,\n     * should show arrows,\n     * will it be compact mode,\n     * should be in which selection mode\n     * set values when passed via datasource\n     */\n    private _updateListItems(): void {\n        // Update roving tabindex\n        this._updateTabIndexes();\n\n        this._ariaSetSize = this.ariaSetsize\n            ? of(this.ariaSetsize)\n            : this._dataSource && this._dataSource.dataProvider?.getTotalItems\n              ? this._dataSource.dataProvider.getTotalItems()\n              : of(this.listItems.length);\n\n        this._partialNavigation = this.listItems.some((item) => item.navigationIndicator || item.listType === 'detail');\n\n        let currentGroup: BaseListItem | null = null;\n        let currentGroupItemIds: string[] = [];\n        // Since we cannot use index from the iteration due to possible group item existence, we need to track it manually.\n        let itemIndex = 0;\n\n        this.listItems.forEach((item) => {\n            if (!this._partialNavigation) {\n                item.navigated = this.navigated;\n                item.navigationIndicator = this.navigationIndicator;\n                item.listType = this.listType;\n            }\n            if (item._type === LIST_ITEM_TYPE.HEADER) {\n                currentGroup?.listItem.nativeElement.setAttribute('aria-owns', currentGroupItemIds.join(' '));\n                currentGroupItemIds = [];\n                currentGroup = item;\n                return;\n            }\n            if (item._type !== LIST_ITEM_TYPE.ITEM) {\n                return;\n            }\n\n            item.ariaSetSize = this._ariaSetSize;\n\n            item.ariaPosinset = ++itemIndex;\n\n            if (currentGroup) {\n                currentGroupItemIds.push(item.listItem.nativeElement.id);\n            }\n\n            if (item === this.listItems.last) {\n                currentGroup?.listItem.nativeElement.setAttribute('aria-owns', currentGroupItemIds.join(' '));\n            }\n        });\n\n        this.markForCheck();\n    }\n\n    /**\n     * @hidden\n     * Updates tabindex on all list items based on the current tabbable index.\n     */\n    private _updateTabIndexes(): void {\n        if (this.listItems.length === 0) {\n            return;\n        }\n\n        const tabbableIndex = this._getTabbableItemIndex();\n\n        this.listItems.forEach((item, index) => {\n            item.listItem.nativeElement.setAttribute('tabindex', index === tabbableIndex ? '0' : '-1');\n        });\n    }\n\n    /**\n     * @hidden\n     * Determines which item should have tabindex=\"0\".\n     * Priority: 1) Active item (keyboard focused), 2) First selected item, 3) First item\n     */\n    private _getTabbableItemIndex(): number {\n        // If keyManager has an active item, use that\n        const activeIndex = this._keyManager?.activeItemIndex;\n        if (activeIndex != null && activeIndex >= 0) {\n            return activeIndex;\n        }\n\n        // Otherwise, find the first selected item\n        const listItemsArray = this.listItems.toArray();\n        const firstSelectedIndex = listItemsArray.findIndex((item) => item._selected);\n        if (firstSelectedIndex >= 0) {\n            return firstSelectedIndex;\n        }\n\n        // Default to first item\n        return 0;\n    }\n\n    /** @hidden */\n    private _waitForViewInit<SourceDataType>() {\n        return (source: Observable<SourceDataType>): Observable<SourceDataType> =>\n            source.pipe(\n                switchMap((src) =>\n                    this._afterViewInit$.pipe(\n                        filter((afterViewInit) => afterViewInit),\n                        map(() => src)\n                    )\n                )\n            );\n    }\n}\n","<ng-content select=\"fd-toolbar\"></ng-content>\n<div\n    fd-list\n    [attr.id]=\"id\"\n    [noBorder]=\"noBorder\"\n    [selection]=\"selection\"\n    [byline]=\"hasByLine\"\n    [class.fd-list--navigation]=\"navigated || navigationIndicator\"\n    [navigationIndicator]=\"navigationIndicator\"\n    [style.outline]=\"'none'\"\n    (keydown)=\"_keyManager?.onKeydown($event); _handleKeyDown($event)\"\n    (change)=\"_onSelectionChanged($event)\"\n    [attr.aria-setsize]=\"_ariaSetSize | async\"\n    [attr.aria-label]=\"ariaLabel\"\n    [attr.aria-labelledby]=\"ariaLabelledBy\"\n    [attr.aria-multiselectable]=\"ariaMultiselectable\"\n    [role]=\"role\"\n    [unreadIndicator]=\"unreadIndicator\"\n>\n    @if (loadMore && loadOnScroll) {\n        <fd-busy-indicator\n            size=\"l\"\n            class=\"fd-busy-indicator-custom fd-list__item--growing\"\n            [block]=\"true\"\n            [loading]=\"_loading && _firstLoadingDone\"\n            role=\"alert\"\n            [attr.aria-busy]=\"_loading\"\n            [attr.aria-label]=\"_loading ? ('platformList.loadingAriaLabel' | fdTranslate)() : null\"\n        >\n            <div\n                fd-list\n                fdInfiniteScroll\n                class=\"fd-list__infinite-scroll\"\n                [style.max-height]=\"maxHeight\"\n                (onScrollAction)=\"_scrollHandler()\"\n                [scrollPercent]=\"scrollOffsetPercentage\"\n                [role]=\"role\"\n            >\n                @if (_items.length !== 0) {\n                    @for (item of _items; track item; let i = $index) {\n                        <ng-template\n                            [ngTemplateOutlet]=\"listItemDef.templateRef\"\n                            [ngTemplateOutletContext]=\"{ $implicit: item }\"\n                        >\n                        </ng-template>\n                    }\n                } @else {\n                    @if (!listItems.length && !_firstLoadingDone) {\n                        @if (!hasByLine) {\n                            @for (_ of loadingRange; track $index) {\n                                <li fd-list-item>\n                                    <fd-skeleton\n                                        [style.margin]=\"'auto 0'\"\n                                        type=\"text\"\n                                        textLines=\"1\"\n                                        width=\"40%\"\n                                    ></fd-skeleton>\n                                </li>\n                            }\n                        } @else {\n                            @for (_ of loadingRange; track $index) {\n                                <li fd-list-item>\n                                    <fd-skeleton width=\"100%\" height=\"48px\" [style.margin]=\"'auto 0'\">\n                                        <svg:rect x=\"0\" y=\"0\" width=\"48\" height=\"48\" rx=\"4\" />\n                                        <svg:rect x=\"60\" y=\"0\" width=\"40%\" height=\"12\" rx=\"4\" />\n                                        <svg:rect x=\"60\" y=\"20\" width=\"30%\" height=\"8\" rx=\"4\" />\n                                    </fd-skeleton>\n                                </li>\n                            }\n                        }\n                    }\n                    <ng-content></ng-content>\n                }\n            </div>\n        </fd-busy-indicator>\n    }\n    @if (!loadOnScroll) {\n        @if (_items.length !== 0) {\n            @for (item of _items; track item; let i = $index) {\n                <ng-template\n                    [ngTemplateOutlet]=\"listItemDef.templateRef\"\n                    [ngTemplateOutletContext]=\"{ $implicit: item }\"\n                >\n                </ng-template>\n            }\n        } @else {\n            @if (!listItems.length && !_firstLoadingDone) {\n                @if (!hasByLine) {\n                    @for (_ of loadingRange; track $index) {\n                        <li fd-list-item>\n                            <fd-skeleton [style.margin]=\"'auto 0'\" type=\"text\" textLines=\"1\" width=\"40%\"></fd-skeleton>\n                        </li>\n                    }\n                } @else {\n                    @for (_ of loadingRange; track $index) {\n                        <li fd-list-item>\n                            <fd-skeleton width=\"100%\" height=\"48px\" [style.margin]=\"'auto 0'\">\n                                <svg:rect x=\"0\" y=\"0\" width=\"48\" height=\"48\" rx=\"4\" />\n                                <svg:rect x=\"60\" y=\"0\" width=\"40%\" height=\"12\" rx=\"4\" />\n                                <svg:rect x=\"60\" y=\"20\" width=\"30%\" height=\"8\" rx=\"4\" />\n                            </fd-skeleton>\n                        </li>\n                    }\n                }\n            }\n            <ng-content></ng-content>\n        }\n        @if (loadMore && !loadOnScroll && _firstLoadingDone) {\n            <li\n                #listItem\n                (click)=\"_getMoreData()\"\n                fd-list-item\n                (keydown)=\"_loadOnKeyPress($event)\"\n                [class.fd-list__item--custom-content]=\"loadMoreContent\"\n                class=\"fd-list__item fd-list__item--growing fd-list__item--action\"\n                [tabindex]=\"0\"\n                role=\"button\"\n            >\n                <ng-template [ngTemplateOutlet]=\"loadMoreElementContent\"></ng-template>\n            </li>\n        }\n    }\n    <ng-template #loadMoreElementContent>\n        @if (loadMoreContent) {\n            <div class=\"fd-list__title\">\n                <ng-template\n                    [ngTemplateOutlet]=\"loadMoreContent.templateRef\"\n                    [ngTemplateOutletContext]=\"getLoadMoreContentContext()\"\n                >\n                </ng-template>\n            </div>\n        } @else {\n            <button class=\"fd-list__title\">\n                <fd-busy-indicator\n                    size=\"m\"\n                    class=\"fd-busy-indicator-custom\"\n                    [block]=\"true\"\n                    [loading]=\"_loading\"\n                    role=\"alert\"\n                    [attr.aria-label]=\"_loading ? ('platformList.loadingAriaLabel' | fdTranslate)() : loadTitle\"\n                >\n                </fd-busy-indicator>\n                {{ loadTitle }}\n                <ng-content select=\"#load\"></ng-content>\n            </button>\n        }\n    </ng-template>\n</div>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { ObjectAttributeComponent } from '@fundamental-ngx/core/object-attribute';\n\n@Component({\n    selector: 'fdp-object-list-item-row',\n    template: ` <div class=\"fd-object-list__row\">\n        <div class=\"fd-object-list__row-left\">\n            <fd-object-attribute\n                class=\"fd-object-list__object-attribute\"\n                [islink]=\"islink\"\n                [label]=\"attributeLabel\"\n                [linkText]=\"linkedText\"\n            >\n                <ng-content select=\".attribute\"></ng-content>\n            </fd-object-attribute>\n        </div>\n        <div class=\"fd-object-list__row-right\">\n            <ng-content></ng-content>\n        </div>\n    </div>`,\n    styleUrl: './object-list-item.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [ObjectAttributeComponent]\n})\nexport class ObjectListItemRowComponent {\n    /** object attribute label */\n    @Input()\n    attributeLabel: string;\n\n    /** object attribute link text */\n    @Input()\n    linkedText: string;\n\n    /** object attribute is a link */\n    @Input()\n    islink = false;\n}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    ContentChildren,\n    forwardRef,\n    Input,\n    QueryList,\n    ViewEncapsulation\n} from '@angular/core';\nimport { ColorAccent } from '@fundamental-ngx/cdk/utils';\n\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { FormItemComponent } from '@fundamental-ngx/core/form';\nimport { ListItemComponent, ListLinkDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { ObjectIdentifierComponent } from '@fundamental-ngx/core/object-identifier';\nimport { ObjectNumberComponent } from '@fundamental-ngx/core/object-number';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { BaseListItem, StatusType } from '../base-list-item';\nimport { ObjectListItemRowComponent } from './object-list-item-row.component';\n\n@Component({\n    selector: 'fdp-object-list-item',\n    templateUrl: './object-list-item.component.html',\n    styleUrl: './object-list-item.component.scss',\n    encapsulation: ViewEncapsulation.None,\n    providers: [{ provide: BaseListItem, useExisting: forwardRef(() => ObjectListItemComponent) }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    host: {\n        role: 'none'\n    },\n    imports: [\n        ListItemComponent,\n        NgTemplateOutlet,\n        ListLinkDirective,\n        RouterLink,\n        ListTitleDirective,\n        AvatarComponent,\n        ObjectIdentifierComponent,\n        ObjectNumberComponent,\n        FormItemComponent,\n        CheckboxComponent,\n        FormsModule,\n        RadioButtonComponent,\n        ButtonComponent,\n        FdTranslatePipe,\n        AsyncPipe\n    ]\n})\nexport class ObjectListItemComponent extends BaseListItem {\n    /** define label for screen reader */\n    @Input()\n    introductionText: string;\n\n    /** holds object number */\n    @Input()\n    amount: number;\n\n    /** holds object number unit */\n    @Input()\n    currency: string;\n\n    /** object number amount decimal limitation */\n    @Input()\n    decimal: number;\n\n    /** object number status */\n    @Input()\n    numberStatus: StatusType;\n\n    /** holds avatar label */\n    @Input()\n    label: string;\n\n    /** holds avatar icon as image */\n    @Input()\n    glyph: string;\n\n    /** Avatar to be circle or not */\n    @Input()\n    circle: boolean;\n\n    /** Is avatar has placeholder */\n    @Input()\n    placeholder: boolean;\n\n    /** Is avatar has tile */\n    @Input()\n    tile: boolean;\n\n    /** Is avatar has colorAccent */\n    @Input()\n    colorAccent: ColorAccent;\n\n    /** Avatar image path */\n    @Input()\n    image: string;\n\n    /** Avatar is transparent */\n    @Input()\n    transparent: boolean;\n\n    /** @hidden */\n    @ContentChildren(ObjectListItemRowComponent)\n    children: QueryList<ObjectListItemRowComponent>;\n}\n","<!--  list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n    <div\n        #listItem\n        fd-list-item\n        [id]=\"id\"\n        [selected]=\"_selected\"\n        [tabindex]=\"-1\"\n        (click)=\"_onItemClick()\"\n        (keydown)=\"_onKeyDown($event)\"\n        (keyup)=\"_onKeyUp($event)\"\n        class=\"fd-object-list__item fd-list__item--link\"\n        [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n        [attr.aria-label]=\"ariaLabel\"\n        [attr.aria-level]=\"ariaLevel\"\n        [attr.aria-posinset]=\"ariaPosinset\"\n        [attr.aria-setsize]=\"ariaSetSize | async\"\n        [ariaRole]=\"_listItemRole\"\n        [attr.aria-selected]=\"_selectedAttr\"\n    >\n        <ng-template [ngTemplateOutlet]=\"selectionTemplate\"> </ng-template>\n        <a\n            #linkElement\n            fd-list-link\n            [routerLink]=\"link\"\n            [attr.href]=\"link\"\n            [attr.aria-label]=\"title\"\n            [navigationIndicator]=\"navigationIndicator\"\n            [navigated]=\"navigated\"\n            tabindex=\"-1\"\n        >\n            <ng-template [ngTemplateOutlet]=\"objectTemplate\"></ng-template>\n        </a>\n    </div>\n}\n<!--  list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n    <div\n        #listItem\n        fd-list-item\n        [id]=\"id\"\n        [selected]=\"_selected\"\n        (keydown)=\"_onKeyDown($event)\"\n        [tabindex]=\"-1\"\n        class=\"fd-object-list__item\"\n        (keyup)=\"_onKeyUp($event)\"\n        [attr.aria-label]=\"ariaLabel\"\n        [attr.aria-level]=\"ariaLevel\"\n        [attr.aria-posinset]=\"ariaPosinset\"\n        [attr.aria-setsize]=\"ariaSetSize | async\"\n        [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n        (click)=\"_onItemClick()\"\n        [ariaRole]=\"role\"\n        [attr.aria-selected]=\"_selectedAttr\"\n    >\n        <ng-template [ngTemplateOutlet]=\"selectionTemplate\"></ng-template>\n        <ng-template [ngTemplateOutlet]=\"objectTemplate\"></ng-template>\n    </div>\n}\n@if (noDataText !== null && noDataText !== undefined) {\n    <div\n        #listItem\n        fd-list-item\n        [id]=\"id\"\n        [tabindex]=\"0\"\n        [attr.aria-label]=\"ariaLabel\"\n        class=\"fd-object-list__item\"\n        [attr.aria-level]=\"ariaLevel\"\n        [attr.aria-posinset]=\"ariaPosinset\"\n        [attr.aria-setsize]=\"ariaSetSize | async\"\n    >\n        <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n    </div>\n}\n<ng-template #objectTemplate>\n    <div class=\"fd-object-list__container\">\n        <!--Optional text-->\n        @if (introductionText) {\n            <div class=\"fd-object-list__intro\">{{ introductionText }}</div>\n        }\n        <!--header content-->\n        <div class=\"fd-object-list__header\">\n            @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n                <fd-avatar\n                    [size]=\"avatar.size\"\n                    [glyph]=\"avatar.glyph\"\n                    [zoomGlyph]=\"avatar.zoomGlyph\"\n                    [label]=\"avatar.label\"\n                    [circle]=\"avatar.circle\"\n                    [placeholder]=\"avatar.placeholder\"\n                    [tile]=\"avatar.tile\"\n                    [colorAccent]=\"avatar.colorAccent\"\n                    [image]=\"avatar.image\"\n                    [transparent]=\"avatar.transparent\"\n                    [random]=\"avatar.random\"\n                    [class]=\"avatar.class\"\n                    [ariaLabel]=\"avatar.ariaLabel\"\n                    [ariaLabelledby]=\"avatar.ariaLabelledby\"\n                    [contain]=\"avatar.contain\"\n                    [border]=\"avatar.border\"\n                    [alterIcon]=\"avatar.alterIcon\"\n                    [backupImage]=\"avatar.backupImage\"\n                    [clickable]=\"avatar.clickable\"\n                ></fd-avatar>\n            }\n            <!--left side header content-->\n            <div class=\"fd-object-list__header-left\">\n                <fd-object-identifier class=\"fd-object-list__object-identifier\">{{ title }}</fd-object-identifier>\n            </div>\n            <!--right side header content-->\n            <div class=\"fd-object-list__header-right\">\n                <fd-object-number\n                    class=\"fd-object-list__object-number\"\n                    [number]=\"amount\"\n                    [unit]=\"currency\"\n                    [status]=\"numberStatus\"\n                    [decimal]=\"decimal\"\n                >\n                </fd-object-number>\n            </div>\n        </div>\n        <!--body content-->\n        <div class=\"fd-object-list__content\">\n            <ng-content select=\"fdp-object-list-item-row\"></ng-content>\n        </div>\n    </div>\n    <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #selectionTemplate>\n    @if ((selectionMode === 'multi' || selectionMode === 'single') && !rowSelection) {\n        <div fd-form-item class=\"fd-list__form-item\">\n            @if (selectionMode === 'multi') {\n                <fd-checkbox role=\"checkbox\" [(ngModel)]=\"_selected\" tabIndexValue=\"-1\"> </fd-checkbox>\n            }\n            @if (selectionMode === 'single') {\n                <fd-radio-button [value]=\"value\" [name]=\"name\" role=\"radio\" [(ngModel)]=\"selectionValue\">\n                </fd-radio-button>\n            }\n        </div>\n    }\n</ng-template>\n<ng-template #actionsTemplate>\n    <ng-content select=\"#secondaryAction\"></ng-content>\n    @if (listType === 'detail') {\n        <button\n            fd-button\n            role=\"button\"\n            fdType=\"transparent\"\n            glyph=\"edit\"\n            [title]=\"('platformObjectListItem.detailsActionAriaLabel' | fdTranslate)()\"\n            [attr.aria-label]=\"('platformObjectListItem.detailsActionAriaLabel' | fdTranslate)()\"\n            (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n            (click)=\"_onActionButtonClick('edit')\"\n            [attr.id]=\"'detail-' + id\"\n        ></button>\n    }\n    @if (selectionMode === 'delete') {\n        <button\n            fd-button\n            role=\"button\"\n            [attr.aria-label]=\"('platformObjectListItem.deleteActionAriaLabel' | fdTranslate)()\"\n            [title]=\"('platformObjectListItem.deleteActionAriaLabel' | fdTranslate)()\"\n            fdType=\"transparent\"\n            glyph=\"decline\"\n            (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n            (click)=\"_onActionButtonClick('delete')\"\n            [attr.id]=\"'delete-' + id\"\n        ></button>\n    }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { ObjectListItemRowComponent } from './object-list-item-row.component';\nimport { ObjectListItemComponent } from './object-list-item.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [ObjectListItemComponent, ObjectListItemRowComponent, ContentDensityModule],\n    exports: [ObjectListItemComponent, ObjectListItemRowComponent, ContentDensityModule]\n})\nexport class ObjectListItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef } from '@angular/core';\n\nimport { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { RouterLink } from '@angular/router';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { FormItemComponent } from '@fundamental-ngx/core/form';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport {\n    ListItemComponent,\n    ListLinkDirective,\n    ListSecondaryDirective,\n    ListThumbnailDirective,\n    ListTitleDirective\n} from '@fundamental-ngx/core/list';\nimport { RadioButtonComponent } from '@fundamental-ngx/core/radio';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { ObjectStatusComponent } from '@fundamental-ngx/platform/object-status';\nimport { BaseListItem } from '../base-list-item';\n\n@Component({\n    selector: 'fdp-standard-list-item',\n    templateUrl: './standard-list-item.component.html',\n    providers: [{ provide: BaseListItem, useExisting: forwardRef(() => StandardListItemComponent) }],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    host: {\n        role: 'none'\n    },\n    imports: [\n        ListItemComponent,\n        NgTemplateOutlet,\n        ListLinkDirective,\n        RouterLink,\n        ListTitleDirective,\n        IconComponent,\n        AvatarComponent,\n        NgClass,\n        ListSecondaryDirective,\n        ListThumbnailDirective,\n        FormItemComponent,\n        CheckboxComponent,\n        FormsModule,\n        RadioButtonComponent,\n        ButtonComponent,\n        ObjectStatusComponent,\n        FdTranslatePipe,\n        AsyncPipe\n    ]\n})\nexport class StandardListItemComponent extends BaseListItem {}\n","<!--  list item navigation with Arrow-->\n@if (navigationIndicator || (navigated && !(noDataText !== null && noDataText !== undefined))) {\n    <div\n        #listItem\n        [unread]=\"unRead\"\n        fd-list-item\n        [id]=\"id\"\n        [selected]=\"_selected\"\n        [tabindex]=\"-1\"\n        (keydown)=\"_onKeyDown($event)\"\n        (keyup)=\"_onKeyUp($event)\"\n        class=\"fd-list__item--link\"\n        [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n        [attr.aria-label]=\"ariaLabel\"\n        [attr.aria-describedby]=\"ariaDescribedBy\"\n        [attr.aria-level]=\"ariaLevel\"\n        [attr.aria-posinset]=\"ariaPosinset\"\n        [ariaRole]=\"_listItemRole\"\n        [attr.aria-selected]=\"_selectedAttr\"\n        [attr.aria-setsize]=\"ariaSetSize | async\"\n    >\n        <ng-template [ngTemplateOutlet]=\"selectionTemplate\"> </ng-template>\n        <a\n            #linkElement\n            fd-list-link\n            [routerLink]=\"link\"\n            [navigationIndicator]=\"navigationIndicator\"\n            [navigated]=\"navigated\"\n        >\n            <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n        </a>\n    </div>\n}\n<!--  list item without navigation and used for simple list display-->\n@if (!navigationIndicator && !navigated && !(noDataText !== null && noDataText !== undefined)) {\n    <div\n        #listItem\n        [unread]=\"unRead\"\n        fd-list-item\n        [id]=\"id\"\n        [selected]=\"_selected\"\n        (keydown)=\"_onKeyDown($event)\"\n        [tabindex]=\"-1\"\n        (keyup)=\"_onKeyUp($event)\"\n        [attr.aria-label]=\"ariaLabel\"\n        [attr.aria-describedby]=\"ariaDescribedBy\"\n        [attr.aria-level]=\"ariaLevel\"\n        [attr.aria-posinset]=\"ariaPosinset\"\n        [class.fd-list__item--inactive]=\"listType === 'inactive'\"\n        [ariaRole]=\"_listItemRole\"\n        [attr.aria-selected]=\"_selectedAttr\"\n        [attr.aria-setsize]=\"ariaSetSize | async\"\n    >\n        <ng-template [ngTemplateOutlet]=\"selectionTemplate\"></ng-template>\n        <ng-template [ngTemplateOutlet]=\"_hasByLine ? byLineTemplate : commonTemplate\"></ng-template>\n    </div>\n}\n@if (noDataText !== null && noDataText !== undefined) {\n    <div\n        #listItem\n        fd-list-item\n        [id]=\"id\"\n        [tabindex]=\"0\"\n        [attr.aria-label]=\"ariaLabel\"\n        [attr.aria-level]=\"ariaLevel\"\n        [attr.aria-posinset]=\"ariaPosinset\"\n        [attr.aria-setsize]=\"ariaSetSize | async\"\n    >\n        <span fd-list-title [attr.aria-label]=\"noDataText\" [attr.title]=\"noDataText\">{{ noDataText }}</span>\n    </div>\n}\n<ng-template #commonTemplate>\n    @if (icon.glyph) {\n        <fd-icon\n            class=\"fd-list__icon\"\n            [glyph]=\"icon.glyph\"\n            [font]=\"icon.font\"\n            [ariaLabel]=\"icon.ariaLabel\"\n            [attr.alt]=\"icon.ariaLabel\"\n            role=\"img\"\n        >\n        </fd-icon>\n    }\n    @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n        <fd-avatar\n            [size]=\"avatar.size\"\n            [glyph]=\"avatar.glyph\"\n            [zoomGlyph]=\"avatar.zoomGlyph\"\n            [label]=\"avatar.label\"\n            [circle]=\"avatar.circle\"\n            [placeholder]=\"avatar.placeholder\"\n            [tile]=\"avatar.tile\"\n            [colorAccent]=\"avatar.colorAccent\"\n            [image]=\"avatar.image\"\n            [transparent]=\"avatar.transparent\"\n            [random]=\"avatar.random\"\n            [class]=\"'fd-list__icon ' + avatar.class\"\n            [ariaLabel]=\"avatar.ariaLabel\"\n            [ariaLabelledby]=\"avatar.ariaLabelledby\"\n            [contain]=\"avatar.contain\"\n            [border]=\"avatar.border\"\n            [alterIcon]=\"avatar.alterIcon\"\n            [backupImage]=\"avatar.backupImage\"\n            [clickable]=\"avatar.clickable\"\n            [attr.alt]=\"avatar.ariaLabel\"\n            role=\"img\"\n        ></fd-avatar>\n    }\n    @if (title) {\n        <span fd-list-title [attr.aria-label]=\"ariaLabel\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n            {{ title }}\n        </span>\n    }\n    @if (secondary !== null && secondary !== undefined) {\n        <span fd-list-secondary [attr.aria-label]=\"secondary\" [attr.title]=\"secondary\" [attr.nowrap]=\"secondaryWrap\">\n            {{ secondary }}\n        </span>\n    }\n    @if (counter !== null && counter !== undefined) {\n        <span fd-list-secondary class=\"fd-list__item-counter\" [attr.aria-label]=\"counter\" [attr.title]=\"counter\">\n            {{ counter }}\n        </span>\n    }\n    <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #byLineTemplate>\n    <div fdListThumbnail>\n        @if (icon.glyph) {\n            <fd-icon\n                class=\"fd-list__icon\"\n                [glyph]=\"icon.glyph\"\n                [font]=\"icon.font\"\n                [ariaLabel]=\"icon.ariaLabel\"\n                [attr.alt]=\"icon.ariaLabel\"\n                role=\"img\"\n            >\n            </fd-icon>\n        }\n        @if (avatar.label || avatar.image || avatar.glyph || avatar.zoomGlyph) {\n            <fd-avatar\n                [size]=\"avatar.size\"\n                [glyph]=\"avatar.glyph\"\n                [zoomGlyph]=\"avatar.zoomGlyph\"\n                [label]=\"avatar.label\"\n                [circle]=\"avatar.circle\"\n                [placeholder]=\"avatar.placeholder\"\n                [tile]=\"avatar.tile\"\n                [colorAccent]=\"avatar.colorAccent\"\n                [image]=\"avatar.image\"\n                [transparent]=\"avatar.transparent\"\n                [random]=\"avatar.random\"\n                [class]=\"avatar.class\"\n                [ariaLabel]=\"avatar.ariaLabel\"\n                [ariaLabelledby]=\"avatar.ariaLabelledby\"\n                [contain]=\"avatar.contain\"\n                [border]=\"avatar.border\"\n                [alterIcon]=\"avatar.alterIcon\"\n                [backupImage]=\"avatar.backupImage\"\n                [clickable]=\"avatar.clickable\"\n                [attr.alt]=\"avatar.ariaLabel\"\n                role=\"img\"\n            ></fd-avatar>\n        }\n    </div>\n    <div class=\"fd-list__content\">\n        @if (title) {\n            <div fd-list-title [attr.aria-label]=\"title\" [attr.nowrap]=\"titleWrap\" [attr.title]=\"title\">\n                {{ title }}\n            </div>\n        }\n        <div class=\"fd-list__byline fd-list__byline--2-col\">\n            @if (description) {\n                <ng-template\n                    [ngTemplateOutlet]=\"_isAdvancedText(description) ? advancedDescription : simpleDescription\"\n                    [ngTemplateOutletContext]=\"{ $implicit: description }\"\n                ></ng-template>\n            }\n            @if (secondary) {\n                <ng-template\n                    [ngTemplateOutlet]=\"_isAdvancedText(secondary) ? advancedSecondary : simpleSecondary\"\n                    [ngTemplateOutletContext]=\"{ $implicit: secondary }\"\n                ></ng-template>\n            }\n        </div>\n    </div>\n    <ng-template [ngTemplateOutlet]=\"actionsTemplate\"></ng-template>\n</ng-template>\n<ng-template #selectionTemplate>\n    @if ((selectionMode === 'multi' || selectionMode === 'single') && !rowSelection) {\n        <div fd-form-item class=\"fd-list__form-item\">\n            @if (selectionMode === 'multi') {\n                <fd-checkbox\n                    (click)=\"$event.stopPropagation()\"\n                    [(ngModel)]=\"_selected\"\n                    [ariaLabel]=\"ariaLabel\"\n                    tabIndexValue=\"-1\"\n                    (ngModelChange)=\"_onCheckboxModelChange()\"\n                    [attr.aria-selected]=\"_selected\"\n                >\n                </fd-checkbox>\n            }\n            @if (selectionMode === 'single') {\n                <fd-radio-button\n                    [value]=\"value\"\n                    [name]=\"name\"\n                    role=\"radio\"\n                    [(ngModel)]=\"selectionValue\"\n                    [attr.aria-selected]=\"_selected\"\n                >\n                </fd-radio-button>\n            }\n        </div>\n    }\n</ng-template>\n<ng-template #actionsTemplate>\n    <ng-content select=\"#secondaryAction\"></ng-content>\n    @if (listType === 'detail') {\n        <button\n            fd-button\n            #edit\n            [attr.id]=\"'detail-' + id\"\n            role=\"button\"\n            fdType=\"transparent\"\n            glyph=\"edit\"\n            (click)=\"_onActionButtonClick('edit')\"\n            [attr.aria-label]=\"('platformStandardListItem.detailsActionAriaLabel' | fdTranslate)()\"\n            [attr.title]=\"('platformStandardListItem.detailsActionAriaLabel' | fdTranslate)()\"\n            (keydown)=\"_onKeyButtonClick($event, 'edit')\"\n        ></button>\n    }\n    @if (selectionMode === 'delete') {\n        <button\n            fd-button\n            #delete\n            [attr.id]=\"'delete-' + id\"\n            role=\"button\"\n            [attr.aria-label]=\"('platformStandardListItem.deleteActionAriaLabel' | fdTranslate)()\"\n            [attr.title]=\"('platformStandardListItem.deleteActionAriaLabel' | fdTranslate)()\"\n            fdType=\"transparent\"\n            glyph=\"decline\"\n            (click)=\"_onActionButtonClick('delete')\"\n            (keydown)=\"_onKeyButtonClick($event, 'delete')\"\n        ></button>\n    }\n</ng-template>\n<ng-template #simpleDescription let-description>\n    <span\n        class=\"fd-list__byline-left\"\n        [attr.aria-label]=\"description\"\n        [attr.title]=\"description\"\n        [attr.nowrap]=\"titleWrap\"\n    >\n        {{ description }}\n    </span>\n</ng-template>\n<ng-template #advancedDescription let-description>\n    <span\n        class=\"fd-list__byline-left\"\n        [attr.aria-label]=\"description.ariaLabel ?? description.text\"\n        [attr.title]=\"description.title ?? description.text\"\n        [attr.nowrap]=\"titleWrap\"\n    >\n        {{ description.text }}\n    </span>\n</ng-template>\n<ng-template #simpleSecondary let-secondary>\n    @if (!inverted) {\n        <span\n            [attr.aria-label]=\"secondary\"\n            class=\"fd-list__byline-right\"\n            [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n            [attr.title]=\"secondary\"\n            [attr.nowrap]=\"secondaryWrap\"\n        >\n            {{ secondary }}\n        </span>\n    } @else {\n        <span\n            class=\"fd-list__byline-right\"\n            [attr.aria-label]=\"secondary\"\n            [attr.title]=\"secondary\"\n            [attr.nowrap]=\"secondaryWrap\"\n        >\n            <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary\"></fdp-object-status>\n        </span>\n    }\n</ng-template>\n<ng-template #advancedSecondary let-secondary>\n    @if (!inverted) {\n        <span\n            [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n            class=\"fd-list__byline-right\"\n            [class]=\"statusType ? 'fd-list__byline-right--' + statusType : ''\"\n            [attr.title]=\"secondary.title ?? secondary.text\"\n            [attr.nowrap]=\"secondaryWrap\"\n        >\n            {{ secondary.text }}\n        </span>\n    } @else {\n        <span\n            class=\"fd-list__byline-right\"\n            [attr.aria-label]=\"secondary.ariaLabel ?? secondary.text\"\n            [attr.title]=\"secondary.title ?? secondary.text\"\n            [attr.nowrap]=\"secondaryWrap\"\n        >\n            <fdp-object-status [status]=\"statusType\" [inverted]=\"inverted\" [label]=\"secondary.text\"></fdp-object-status>\n        </span>\n    }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { StandardListItemComponent } from './standard-list-item.component';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [StandardListItemComponent, ContentDensityModule],\n    exports: [StandardListItemComponent, ContentDensityModule]\n})\nexport class StandardListItemModule {}\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { ActionListItemModule } from './action-list-item/action-list-item.module';\nimport { ListItemDef } from './base-list-item';\nimport { DisplayListItemModule } from './display-list-item/display-list-item.module';\nimport { FreeContentListItemComponent } from './free-content-list-item/free-content-list-item.component';\nimport { ListFooterComponent } from './list-group-footer.component';\nimport { ListGroupHeaderComponent } from './list-group-header.component';\nimport { ListComponent } from './list.component';\nimport { LoadMoreContentDirective } from './load-more-content.directive';\nimport { ObjectListItemModule } from './object-list-item/object-list-item.module';\nimport { StandardListItemModule } from './standard-list-item/standard-list-item.module';\n\nconst components = [\n    ListComponent,\n    ListFooterComponent,\n    ListGroupHeaderComponent,\n    ListItemDef,\n    ContentDensityModule,\n    StandardListItemModule,\n    ObjectListItemModule,\n    DisplayListItemModule,\n    ActionListItemModule,\n    FreeContentListItemComponent,\n    LoadMoreContentDirective\n];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [...components],\n    exports: [...components]\n})\nexport class PlatformListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["CoreListComponent","i1"],"mappings":"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"}