@fundamental-ngx/platform 0.55.4 → 0.55.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +2 -2
  2. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +2 -2
  3. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  4. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -2
  5. package/fesm2022/fundamental-ngx-platform-form.mjs +11 -11
  6. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +7 -3
  8. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  10. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-platform-list.mjs +10 -10
  12. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-platform-menu.mjs +4 -4
  14. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +3 -3
  16. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -2
  18. package/fesm2022/fundamental-ngx-platform-panel.mjs +1 -1
  19. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  20. package/fesm2022/fundamental-ngx-platform-search-field.mjs +2 -2
  21. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  22. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +3 -3
  23. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  24. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -2
  25. package/fesm2022/fundamental-ngx-platform-table.mjs +10 -10
  26. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +2 -2
  28. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  29. package/icon-tab-bar/icon-tab-bar.component.d.ts +3 -1
  30. package/package.json +4 -4
  31. package/schematics/ng-add/index.js +1 -1
@@ -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 } from '@fundamental-ngx/cdk/utils';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { IconComponent } 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 { merge } from 'lodash-es';\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: IconComponent['glyph'];\n /** user's custom classes */\n class: IconComponent['class'] = '';\n /**\n * The icon font\n * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n */\n font: IconComponent['font'] = 'SAP-icons';\n /** Aria-label for Icon. */\n ariaLabel: IconComponent['ariaLabel'];\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})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\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: 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 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@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@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 { 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 Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n forwardRef\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 firstValueFrom,\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, RepeatDirective } 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, FdLanguage, 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}\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 RepeatDirective,\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 /**\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 _language: FdLanguage;\n\n /** @hidden */\n private _afterViewInit$ = new BehaviorSubject(false);\n\n /** @hidden */\n constructor(\n private readonly _liveAnnouncer: LiveAnnouncer,\n @Inject(FD_LANGUAGE) private readonly _language$: Observable<FdLanguage>\n ) {\n super();\n this._init();\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 return this._language$.pipe(\n map((language) => this._translationResolver.resolve(language, 'platformList.loadingAriaLabel'))\n );\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.pipe(takeUntilDestroyed(this._destroyed)).subscribe(() => {\n this.selectedItems = this._selectionModel.selected;\n const event = new SelectionChangeEvent();\n event.selectedItems = this.selectedItems;\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 this.loadingLabel = this._translationResolver.resolve(\n this._language,\n 'platformList.loadingAriaLabel'\n );\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 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 /** @hidden */\n private async _init(): Promise<void> {\n this._language = await firstValueFrom(this._language$);\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 <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton\n [style.margin]=\"'auto 0'\"\n type=\"text\"\n textLines=\"1\"\n width=\"40%\"\n ></fd-skeleton>\n </li>\n } @else {\n <li fd-list-item *fdkRepeat=\"3\">\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 <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 <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton [style.margin]=\"'auto 0'\" type=\"text\" textLines=\"1\" width=\"40%\"></fd-skeleton>\n </li>\n } @else {\n <li fd-list-item *fdkRepeat=\"3\">\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 <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=\"detail\"\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=\"delete\"\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@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@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@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 } from '@fundamental-ngx/cdk/utils';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { IconComponent } 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 { merge } from 'lodash-es';\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: IconComponent['glyph'];\n /** user's custom classes */\n class: IconComponent['class'] = '';\n /**\n * The icon font\n * Options include: 'SAP-icons', 'BusinessSuiteInAppSymbols' and 'SAP-icons-TNT'\n */\n font: IconComponent['font'] = 'SAP-icons';\n /** Aria-label for Icon. */\n ariaLabel: IconComponent['ariaLabel'];\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})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\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: 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 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@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@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 { 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 Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n forwardRef\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 firstValueFrom,\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, RepeatDirective } 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, FdLanguage, 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}\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 RepeatDirective,\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 /**\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 _language: FdLanguage;\n\n /** @hidden */\n private _afterViewInit$ = new BehaviorSubject(false);\n\n /** @hidden */\n constructor(\n private readonly _liveAnnouncer: LiveAnnouncer,\n @Inject(FD_LANGUAGE) private readonly _language$: Observable<FdLanguage>\n ) {\n super();\n this._init();\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 return this._language$.pipe(\n map((language) => this._translationResolver.resolve(language, 'platformList.loadingAriaLabel'))\n );\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.pipe(takeUntilDestroyed(this._destroyed)).subscribe(() => {\n this.selectedItems = this._selectionModel.selected;\n const event = new SelectionChangeEvent();\n event.selectedItems = this.selectedItems;\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 this.loadingLabel = this._translationResolver.resolve(\n this._language,\n 'platformList.loadingAriaLabel'\n );\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 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 /** @hidden */\n private async _init(): Promise<void> {\n this._language = await firstValueFrom(this._language$);\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 <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton\n [style.margin]=\"'auto 0'\"\n type=\"text\"\n textLines=\"1\"\n width=\"40%\"\n ></fd-skeleton>\n </li>\n } @else {\n <li fd-list-item *fdkRepeat=\"3\">\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 <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 <li fd-list-item *fdkRepeat=\"3\">\n <fd-skeleton [style.margin]=\"'auto 0'\" type=\"text\" textLines=\"1\" width=\"40%\"></fd-skeleton>\n </li>\n } @else {\n <li fd-list-item *fdkRepeat=\"3\">\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 <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=\"detail\"\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=\"delete\"\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@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@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@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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"}