@fundamental-ngx/platform 0.62.0-rc.2 → 0.62.0-rc.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +3 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +37 -3
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +24 -38
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +51 -30
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/types/fundamental-ngx-platform-icon-tab-bar.d.ts +1 -1
- package/types/fundamental-ngx-platform-list.d.ts +11 -0
- package/types/fundamental-ngx-platform-table-helpers.d.ts +0 -4
- package/types/fundamental-ngx-platform-table.d.ts +30 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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 { 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 standalone: true,\n host: {\n role: 'none'\n }\n})\nexport class ListFooterComponent extends BaseComponent {\n /** @hidden */\n _type = LIST_ITEM_TYPE.FOOTER;\n}\n","import { 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 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 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 if (this.listItems.length !== 0) {\n this.listItems.first.listItem.nativeElement.setAttribute('tabindex', '0');\n }\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 /** @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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"}
|
|
1
|
+
{"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 { 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 standalone: true,\n host: {\n role: 'none'\n }\n})\nexport class ListFooterComponent extends BaseComponent {\n /** @hidden */\n _type = LIST_ITEM_TYPE.FOOTER;\n}\n","import { 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 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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"}
|