@fundamental-ngx/core 0.62.2-rc.9 → 0.62.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/fundamental-ngx-core-action-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-avatar-group.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-avatar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-breadcrumb.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-busy-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-calendar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-card.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-carousel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-checkbox.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-combobox.mjs +2 -8
- package/fesm2022/fundamental-ngx-core-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dynamic-page.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-dynamic-side-content.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-facets.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-list-item.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-file-uploader.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-fixed-card-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-flexible-column-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-form.mjs +16 -16
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-generic-tag.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-grid-list.mjs +22 -6
- package/fesm2022/fundamental-ngx-core-grid-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-icon.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-info-label.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-input-group.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-layout-grid.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-layout-panel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-list.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-message-box.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-page.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-strip.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-message-toast.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-micro-process-flow.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-notification.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-attribute.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-identifier.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-marker.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-object-status.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-pagination.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-panel.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-popover.mjs +8 -5
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-product-switch.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-progress-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-quick-view.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-radio.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-rating-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-select.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-settings.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-shellbar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-side-navigation.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-skeleton.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-slider.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-split-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-status-indicator.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-step-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-switch.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-switch.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-table.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-tabs.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-text.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-tile.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-time.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-title.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-token.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-toolbar.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-tree.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-upload-collection.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-vertical-navigation.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-wizard.mjs +2 -2
- package/package.json +4 -4
- package/types/fundamental-ngx-core-grid-list.d.ts +10 -1
- package/types/fundamental-ngx-core-popover.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-grid-list.mjs","sources":["../../../../libs/core/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.ts","../../../../libs/core/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.html","../../../../libs/core/grid-list/components/grid-list-footer/grid-list-footer.component.ts","../../../../libs/core/grid-list/components/grid-list-footer/grid-list-footer.component.html","../../../../libs/core/grid-list/components/grid-list-group-header/grid-list-group-header.component.ts","../../../../libs/core/grid-list/components/grid-list-group-header/grid-list-group-header.component.html","../../../../libs/core/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.ts","../../../../libs/core/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.html","../../../../libs/core/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.ts","../../../../libs/core/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.html","../../../../libs/core/grid-list/directives/grid-list-item-body.directive.ts","../../../../libs/core/grid-list/helpers/parse-layout-pattern.ts","../../../../libs/core/grid-list/models/grid-list-selection.models.ts","../../../../libs/core/grid-list/components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component.ts","../../../../libs/core/grid-list/components/grid-list/grid-list-base.component.ts","../../../../libs/core/grid-list/components/grid-list-item/grid-list-item.component.ts","../../../../libs/core/grid-list/components/grid-list-item/grid-list-item.component.html","../../../../libs/core/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.ts","../../../../libs/core/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.html","../../../../libs/core/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.ts","../../../../libs/core/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.html","../../../../libs/core/grid-list/components/grid-list-title-bar/grid-list-title-bar.directive.ts","../../../../libs/core/grid-list/components/grid-list/grid-list.component.ts","../../../../libs/core/grid-list/components/grid-list/grid-list.component.html","../../../../libs/core/grid-list/directives/grid-list-item-image.directive.ts","../../../../libs/core/grid-list/grid-list.module.ts","../../../../libs/core/grid-list/fundamental-ngx-core-grid-list.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { ToolbarComponent, ToolbarSpacerDirective } from '@fundamental-ngx/core/toolbar';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\n@Component({\n selector: 'fd-grid-list-filter-bar',\n templateUrl: './grid-list-filter-bar.component.html',\n host: {\n class: 'fd-col fd-col--12'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ToolbarComponent, ToolbarSpacerDirective, IconComponent, FdTranslatePipe]\n})\nexport class GridListFilterBarComponent {\n /** Event is thrown, when the control button is clicked */\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly close = new EventEmitter<void>();\n}\n","<fd-toolbar\n fdType=\"info\"\n [active]=\"true\"\n [tabindex]=\"0\"\n class=\"fd-grid-list__filter\"\n [attr.aria-label]=\"('coreGridList.filterBarCancelButtonTitle' | fdTranslate)()\"\n (click)=\"close.emit()\"\n (keydown.space)=\"$event.preventDefault()\"\n (keyup.space)=\"close.emit()\"\n (keydown.enter)=\"close.emit()\"\n>\n <ng-content></ng-content>\n\n <fd-toolbar-spacer></fd-toolbar-spacer>\n\n <fd-icon glyph=\"decline\"></fd-icon>\n</fd-toolbar>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'fd-grid-list-footer',\n templateUrl: './grid-list-footer.component.html',\n host: {\n class: 'fd-col fd-col--12'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class GridListFooterComponent {}\n","<div tabindex=\"0\" class=\"fd-grid-list__footer\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n@Component({\n selector: 'fd-grid-list-group-header',\n templateUrl: './grid-list-group-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-col fd-col--12'\n },\n standalone: true\n})\nexport class GridListGroupHeaderComponent {\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel: Nullable<string>;\n}\n","<div class=\"fd-grid-list__group-header fd-grid-list__group-header--no-margin\" [attr.aria-label]=\"ariaLabel\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'fd-grid-list-item-footer-bar',\n templateUrl: './grid-list-item-footer-bar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class GridListItemFooterBarComponent {\n /** @hidden */\n @ViewChild(TemplateRef)\n contentTemplateRef: TemplateRef<any>;\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'fd-grid-list-item-toolbar',\n templateUrl: './grid-list-item-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class GridListItemToolbarComponent {\n /** @hidden */\n @ViewChild(TemplateRef)\n contentTemplateRef: TemplateRef<any>;\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-grid-list-item-body]',\n standalone: true\n})\nexport class GridListItemBodyDirective {\n /** @hidden */\n constructor(public readonly templateRef: TemplateRef<any>) {}\n}\n","interface ParseLayout {\n [key: string]: {\n pattern: string;\n value: number;\n size: string;\n };\n}\n\n/** Parse layout pattern */\nexport function parseLayoutPattern(pattern: string | undefined, isBaseLayout = true): string[] {\n const parseLayout = pattern && validateAndParseLayoutPattern(pattern, isBaseLayout);\n\n if (!parseLayout) {\n throw new Error('Invalid layoutPattern.');\n }\n\n return generateLayoutClasses(parseLayout);\n}\n\nfunction validateAndParseLayoutPattern(pattern: string, isBaseLayout: boolean): ParseLayout | undefined {\n const columnsNames = 'XL|L|M|S';\n const columnNumbers = isBaseLayout ? '12|6|4|3|2|1' : '12|11|10|9|8|7|6|5|4|3|2|1';\n const reg = new RegExp(`(?!-)((${columnsNames})(${columnNumbers}))`, 'gi');\n const match = pattern.match(reg);\n if (!match) {\n return;\n }\n\n return match.reduce((res, item) => {\n const size = item.replace(reg, '$2').toLocaleLowerCase();\n const num = +item.replace(reg, '$3');\n\n res[size] = {\n pattern: item,\n size,\n value: isBaseLayout ? 12 / num : num\n };\n\n return res;\n }, {});\n}\n\nfunction generateLayoutClasses({ xl, l, m, s }: ParseLayout): string[] {\n const classes: string[] = ['fd-col'];\n\n if (s) {\n classes.push(`fd-col--${s.value}`);\n }\n\n if (m) {\n classes.push(`fd-col-md--${m.value}`);\n }\n\n if (l) {\n classes.push(`fd-col-lg--${l.value}`);\n }\n\n if (xl) {\n classes.push(`fd-col-xl--${xl.value}`);\n }\n\n return classes;\n}\n","export type GridListSelectionMode =\n | 'none'\n | 'delete'\n | 'singleSelect'\n | 'singleSelectLeft'\n | 'singleSelectRight'\n | 'multiSelect';\n\nexport enum GridListSelectionActions {\n ADD = 'add',\n REMOVE = 'remove'\n}\n\nexport enum GridListSelectionModeEnum {\n NONE = 'none',\n DELETE = 'delete',\n SINGLE_SELECT = 'singleSelect',\n SINGLE_SELECT_LEFT = 'singleSelectLeft',\n SINGLE_SELECT_RIGHT = 'singleSelectRight',\n MULTI_SELECT = 'multiSelect'\n}\n\nexport interface GridListSelectionEvent<T> {\n /** currently selected items */\n selection: T[];\n /** items added */\n added: T[];\n /** items removed */\n removed: T[];\n /** indexes location of additions or removals */\n index: number[];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ToolbarSpacerDirective } from '@fundamental-ngx/core/toolbar';\n\n@Component({\n selector: 'fd-grid-list-title-bar-spacer',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class GridListTitleBarSpacerComponent extends ToolbarSpacerDirective {}\n","import { Directive } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GridListSelectionActions, GridListSelectionEvent } from '../../models/grid-list-selection.models';\n\n@Directive()\nexport abstract class GridList<T> {\n /** an observable of selection state event */\n abstract _selectedItems$: Observable<GridListSelectionEvent<T>>;\n /** method to be used by list items to register the selection */\n abstract setSelectedItem(\n item: T,\n componentIndex: number,\n action?: GridListSelectionActions | null,\n event?: MouseEvent\n ): void;\n}\n","import { ENTER, ESCAPE, F2, F7, MAC_ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n signal\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { KeyUtil, Nullable, TabbableElementService } from '@fundamental-ngx/cdk/utils';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n ContentDensityModule,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\n\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { GridListItemBodyDirective } from '../../directives/grid-list-item-body.directive';\nimport { parseLayoutPattern } from '../../helpers/parse-layout-pattern';\nimport {\n GridListSelectionActions,\n GridListSelectionMode,\n GridListSelectionModeEnum\n} from '../../models/grid-list-selection.models';\nimport { GridListItemFooterBarComponent } from '../grid-list-item-footer-bar/grid-list-item-footer-bar.component';\nimport { GridListItemToolbarComponent } from '../grid-list-item-toolbar/grid-list-item-toolbar.component';\nimport { GridListTitleBarSpacerComponent } from '../grid-list-title-bar-spacer/grid-list-title-bar-spacer.component';\nimport { GridList } from '../grid-list/grid-list-base.component';\n\nlet gridListItemUniqueId = 0;\n\nexport interface GridListItemOutputEvent<T> {\n index?: number;\n value?: T;\n}\n\nexport type GridListItemType = 'inactive' | 'active' | 'detail' | 'detailsAndActive' | 'navigation';\nexport type GridListItemState = 'unread' | 'locked' | 'error' | 'draft';\nexport type GridListItemStatus = 'success' | 'warning' | 'error' | 'neutral';\n\n@Component({\n selector: 'fd-grid-list-item',\n templateUrl: './grid-list-item.component.html',\n styleUrl: './grid-list-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n GridListTitleBarSpacerComponent,\n ButtonComponent,\n IconComponent,\n FormsModule,\n ObjectStatusComponent,\n FdTranslatePipe,\n ContentDensityModule\n ],\n providers: [contentDensityObserverProviders()]\n})\nexport class GridListItemComponent<T> implements AfterViewInit, OnDestroy {\n /** id for the Element */\n @Input()\n id = `fd-grid-list-item-${gridListItemUniqueId++}`;\n\n /** width of the element */\n @Input()\n @HostBinding('style.max-width')\n @HostBinding('style.min-width')\n width: string;\n\n /**\n * specify the cell layout in the format `XLn-Ln-Mn-Sn` where n is\n * the number of occupied columns and n can be different for each size.\n */\n @Input()\n set layoutItemPattern(value: Nullable<string>) {\n this.gridLayoutClasses = value ? parseLayoutPattern(value, false) : [];\n }\n\n /**\n * Defines the status of Grid List Item\n * (Statuses: success | warning | error | neutral)\n */\n @Input()\n status?: GridListItemStatus;\n\n /** Sets number of sub items */\n @Input()\n counter: Nullable<number>;\n\n /**\n * Value field stores information for radio button value, checkbox button and for GridListSelectionEvent\n * The field is mandatory for modes like singleSelect, singleSelectLeft, singleSelectRight or multiSelect\n */\n @Input()\n value?: T;\n\n /** Whether click on the custom toolbar is disabled */\n @Input()\n disableToolbarClick = false;\n\n /** Allows an item to be selected programmatically */\n @Input({ transform: booleanAttribute })\n selected = false;\n\n /** Remove the padding from the Item body */\n @Input()\n noPadding = false;\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /**\n * Defines the type of Grid List Item\n * Types:\n * - active: indicates that the item is clickable via active feedback when item is pressed\n * - detail: enables detail button of the list item that fires event.\n * - detailsAndActive: enables \"detail\" and \"active\" enumerations together\n * - inactive: indicates the list item does not have any active feedback when item is pressed\n * - navigation: indicates the list item is navigable to show extra information about the item\n * Default: inactive\n */\n @Input()\n set type(value: Nullable<GridListItemType>) {\n this._type = value ?? 'inactive';\n }\n\n get type(): GridListItemType {\n return this._type;\n }\n\n /**\n * Sets the state of Grid List Item\n * (States: unread | error | locked | draft)\n */\n @Input()\n state?: GridListItemState;\n\n /**\n * The navigated state of the list item.\n * If set to true, a navigation indicator is displayed at the end of the list item.\n */\n @Input()\n isNavigated = false;\n\n /** Title of the item */\n @Input()\n title: string;\n\n /**\n * Aria-level of the title\n * Available options: 1, 2, 3, 4, 5, 6\n * Default: 4\n */\n @Input()\n titleLevel: 1 | 2 | 3 | 4 | 5 | 6 = 4;\n\n /** Description of the item */\n @Input()\n description: string;\n\n /** When set to true the grid list item's height will be set to auto */\n @Input()\n autoHeight = false;\n\n /**\n * Event is thrown, when type is active\n * and item is pressed\n */\n @Output()\n press = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown, when type is detail or detailsAndActive\n * and Detail button was pressed\n */\n @Output()\n detail = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown, when mode delete\n * and Delete button was pressed\n */\n @Output()\n delete = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown, when type is navigation\n * and Navigate button was pressed\n */\n @Output()\n navigate = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown on grid list item click.\n */\n @Output()\n cardClick = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown, when state is error, not used GridListItemFooterBarComponent\n * and Draft button was pressed\n */\n @Output()\n draft = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown, when state is locked, not used GridListItemFooterBarComponent\n * and Locked button was pressed\n */\n @Output()\n locked = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /** @hidden */\n @ViewChild('gridListItem')\n _gridListItem: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n @ContentChild(GridListItemFooterBarComponent)\n footerBarComponent: Nullable<GridListItemFooterBarComponent>;\n /** @hidden */\n @ContentChild(GridListItemToolbarComponent)\n itemToolbarComponent: Nullable<GridListItemToolbarComponent>;\n\n /** @hidden */\n @ContentChild(GridListItemBodyDirective)\n body: Nullable<GridListItemBodyDirective>;\n\n /** @hidden\n * The active state of the list item.\n * If set to true, the whole card has active state. Becomes false only when the Edit button is clicked.\n */\n _isActive = true;\n\n /** @hidden */\n set gridLayoutClasses(value: string[]) {\n this._removeClassesNames(this._gridLayoutClasses);\n this._gridLayoutClasses = value;\n this._addClassesNames(this._gridLayoutClasses);\n }\n\n get gridLayoutClasses(): string[] {\n return this._gridLayoutClasses;\n }\n\n /** @hidden */\n _selectedItem?: T;\n\n /** @hidden */\n set selectionMode(mode: GridListSelectionMode | undefined) {\n this._selectionMode = mode;\n\n if (mode !== GridListSelectionModeEnum.DELETE && mode !== GridListSelectionModeEnum.NONE && !this.value) {\n throw new Error('Grid List Item must have [value] attribute.');\n }\n\n if (this.selected && this.value && this._index != null) {\n const action =\n this.selectionMode !== GridListSelectionModeEnum.MULTI_SELECT ? null : GridListSelectionActions.ADD;\n\n this._gridList.setSelectedItem(this.value, this._index, action);\n }\n\n this._cd.detectChanges();\n }\n\n get selectionMode(): GridListSelectionMode | undefined {\n return this._selectionMode;\n }\n\n /** @hidden */\n _index?: number;\n\n /** tabIndex of the element */\n tabIndex = signal(-1);\n\n /** @hidden */\n private _type: GridListItemType = 'inactive';\n\n /** @hidden */\n private _selectionMode?: GridListSelectionMode;\n\n /** @hidden */\n private _gridLayoutClasses: string[] = [];\n\n /** @hidden */\n private readonly subscription = new Subscription();\n\n /** @hidden */\n private _innerElementFocused = signal<boolean>(false);\n\n /** @hidden */\n constructor(\n private readonly _cd: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _render: Renderer2,\n private readonly _gridList: GridList<T>,\n readonly _contentDensityObserver: ContentDensityObserver,\n private readonly _tabbableElementService: TabbableElementService\n ) {\n const selectedItemsSub = this._gridList._selectedItems$.subscribe((items) => {\n this._selectedItem = items.selection.find((item) => item === this.value);\n this._cd.markForCheck();\n });\n this.subscription.add(selectedItemsSub);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._cd.detectChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n /** Focus grid list item programmatically */\n focus(options?: FocusOptions): void {\n this._gridListItem?.nativeElement.focus(options);\n }\n\n /** @hidden */\n _setActive(event: MouseEvent, isActive: boolean): void {\n if (this._isElementCanBeClicked(event)) {\n return;\n }\n\n this._isActive = isActive;\n }\n\n /** @hidden */\n _singleSelect(event: Event): void {\n this._preventDefault(event);\n\n if (typeof this._selectedItem !== 'undefined' || !this.value || this._index == null) {\n return;\n }\n\n this._gridList.setSelectedItem(this.value, this._index);\n }\n\n /** @hidden */\n _checkboxClick(event: MouseEvent): void {\n const checked = (<HTMLInputElement>event.target).checked;\n this._selectionItem(checked, event);\n }\n\n /** @hidden */\n _checkboxEscape(): void {\n this._gridListItem.nativeElement.focus();\n }\n\n /** @hidden */\n _selectionItem(value: boolean | number | T, event?: MouseEvent): void {\n if (!this.value || this._index == null) {\n return;\n }\n const action =\n this.selectionMode !== GridListSelectionModeEnum.MULTI_SELECT\n ? null\n : value || value === 0\n ? GridListSelectionActions.ADD\n : GridListSelectionActions.REMOVE;\n\n this._gridList.setSelectedItem(this.value, this._index, action, event);\n }\n\n /** @hidden */\n _onDetail(event: MouseEvent): void {\n this._preventDefault(event);\n\n this.detail.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _onNavigate(event: MouseEvent): void {\n this._preventDefault(event);\n\n this.navigate.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _onDelete(event: MouseEvent): void {\n this._preventDefault(event);\n\n this.delete.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _clickOnDraft(event: MouseEvent): void {\n this._preventDefault(event);\n\n this.draft.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _clickOnLocked(event: MouseEvent): void {\n this._preventDefault(event);\n\n this.locked.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _onClick(event: MouseEvent): void {\n if (!this._isElementCanBeClicked(event)) {\n return;\n }\n\n if (this.type !== 'active' && this.type !== 'detailsAndActive' && this.type !== 'navigation') {\n this.cardClick.emit(this._outputEventValue);\n return;\n }\n\n if (this.type === 'navigation') {\n this._onNavigate(event);\n return;\n }\n this.press.emit(this._outputEventValue);\n this.cardClick.emit(this._outputEventValue);\n }\n /** @hidden */\n _onKeyDown(event: KeyboardEvent): void {\n const activeElement = document.activeElement as HTMLElement;\n const isFocused = activeElement === this._gridListItem.nativeElement;\n const shouldFocusChild = KeyUtil.isKeyCode(event, [ENTER, MAC_ENTER, F2, F7]) && !event.shiftKey && isFocused;\n if (shouldFocusChild) {\n event.stopPropagation();\n const interactiveElements = this._gridListItem.nativeElement.querySelectorAll(\n 'a, button, input, select, textarea'\n );\n\n const firstInteractiveElement = interactiveElements[0] as HTMLElement;\n firstInteractiveElement.focus();\n interactiveElements.forEach((element) => {\n element.setAttribute('tabindex', '0');\n });\n this._innerElementFocused.set(true);\n return;\n } else if (this._innerElementFocused() && KeyUtil.isKeyCode(event, [F2, F7, ESCAPE])) {\n event.stopPropagation();\n this._gridListItem.nativeElement.focus();\n this._innerElementFocused.set(false);\n return;\n }\n const target = event.target as HTMLDivElement;\n\n const isSelectionKeyDown = KeyUtil.isKeyCode(event, [ENTER, SPACE]);\n\n if (isSelectionKeyDown && this.selectionMode === GridListSelectionModeEnum.NONE) {\n this.press.emit(this._outputEventValue);\n }\n\n if (\n !isSelectionKeyDown ||\n this.selectionMode === GridListSelectionModeEnum.NONE ||\n !target.classList.contains('fd-grid-list__item')\n ) {\n return;\n }\n\n this._preventDefault(event);\n\n if (this.selectionMode === GridListSelectionModeEnum.MULTI_SELECT) {\n this._selectionItem(!this._selectedItem);\n\n return;\n }\n\n if (typeof this._selectedItem === 'undefined') {\n this._singleSelect(event);\n }\n }\n\n /** @hidden */\n private _isElementCanBeClicked(event: MouseEvent): boolean {\n if (!event?.target) {\n return false;\n }\n\n const element = event.target as HTMLElement;\n const { classList } = element;\n\n return (\n !(this._isToolbarElement(element) && this.disableToolbarClick) &&\n !classList.contains('fd-grid-list__action-button') &&\n !classList.contains('fd-grid-list__radio-label') &&\n !classList.contains('fd-grid-list__radio-input') &&\n !classList.contains('fd-grid-list__checkbox-label') &&\n !classList.contains('fd-grid-list__checkbox-input') &&\n !classList.contains('fd-checkbox__checkmark')\n );\n }\n\n /** @hidden */\n private _isToolbarElement(element: HTMLElement): boolean {\n if (!this.itemToolbarComponent) {\n return false;\n }\n\n while (element.parentElement && !element.parentElement.classList.contains('fd-grid-list__item')) {\n if (element.classList.contains('fd-toolbar--extra-content')) {\n return true;\n }\n\n element = element.parentElement;\n }\n\n return false;\n }\n\n /** @hidden */\n private _preventDefault(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n /** @hidden */\n private get _outputEventValue(): GridListItemOutputEvent<T> {\n return {\n value: this.value,\n index: this._index\n };\n }\n\n /** @hidden */\n private _addClassesNames(classesNames: string[]): void {\n for (const className of classesNames) {\n this._render.addClass(this._elementRef.nativeElement, className);\n }\n }\n\n /** @hidden */\n private _removeClassesNames(classesNames: string[]): void {\n for (const className of classesNames) {\n this._render.removeClass(this._elementRef.nativeElement, className);\n }\n }\n}\n","<div\n #gridListItem\n [id]=\"id\"\n [tabindex]=\"tabIndex()\"\n class=\"fd-grid-list__item\"\n role=\"option\"\n [class.is-navigated]=\"isNavigated\"\n [class.is-selected]=\"!!_selectedItem\"\n [class.fd-grid-list__item--link]=\"\n _isActive && (type === 'active' || type === 'detailsAndActive' || type === 'navigation')\n \"\n [class.fd-grid-list__item--unread]=\"state === 'unread'\"\n [class.fd-grid-list__item--locked]=\"state === 'locked'\"\n [class.fd-grid-list__item--draft]=\"state === 'draft'\"\n [class.fd-grid-list__item--error]=\"state === 'error'\"\n [class.fd-grid-list__item--height-auto]=\"autoHeight\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"selectionMode === 'singleSelect' && _singleSelect($event); _onClick($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n [attr.aria-selected]=\"selectionMode === 'none' ? null : !!_selectedItem\"\n>\n @if (status) {\n <span\n class=\"fd-grid-list__highlight\"\n [class.fd-grid-list__highlight--positive]=\"status === 'success'\"\n [class.fd-grid-list__highlight--critical]=\"status === 'warning'\"\n [class.fd-grid-list__highlight--negative]=\"status === 'error'\"\n [class.fd-grid-list__highlight--neutral]=\"status === 'neutral'\"\n [attr.aria-label]=\"('coreGridList.listItemStatusAriaLabel' | fdTranslate: { status: status })()\"\n ></span>\n }\n @if (selectionMode === 'singleSelect') {\n <ng-template [ngTemplateOutlet]=\"radio\"></ng-template>\n }\n @if (\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n ) {\n <div class=\"fd-toolbar fd-grid-list__item-toolbar\">\n @if (selectionMode === 'singleSelectLeft') {\n <ng-template [ngTemplateOutlet]=\"radio\"></ng-template>\n }\n @if (selectionMode === 'multiSelect') {\n <ng-template [ngTemplateOutlet]=\"checkbox\"></ng-template>\n }\n @if (itemToolbarComponent?.contentTemplateRef) {\n <div class=\"fd-toolbar--extra-content\">\n <ng-template [ngTemplateOutlet]=\"itemToolbarComponent!.contentTemplateRef\"></ng-template>\n </div>\n }\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n @if (counter) {\n <span\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"('coreGridList.listItemCounterAriaLabel' | fdTranslate: { count: counter })()\"\n >{{ counter }}</span\n >\n }\n @if (type === 'detail' || type === 'detailsAndActive') {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"('coreGridList.listItemButtonDetailsTitle' | fdTranslate)()\"\n [title]=\"('coreGridList.listItemButtonDetailsTitle' | fdTranslate)()\"\n fdCompact\n (click)=\"_onDetail($event)\"\n ></button>\n }\n @if (selectionMode === 'delete') {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"('coreGridList.listItemButtonDeleteTitle' | fdTranslate)()\"\n [title]=\"('coreGridList.listItemButtonDeleteTitle' | fdTranslate)()\"\n title=\"Delete\"\n fdCompact\n (click)=\"_onDelete($event)\"\n ></button>\n }\n @if (type === 'navigation') {\n <span class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n }\n @if (selectionMode === 'singleSelectRight') {\n <ng-template [ngTemplateOutlet]=\"radio\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-grid-list__item-body\" [class.fd-grid-list__item-body--no-padding]=\"noPadding\">\n <ng-content select=\"[fd-grid-list-item-image]\"></ng-content>\n @if (title || description) {\n <div class=\"fd-grid-list__item-header\">\n @if (title) {\n <div\n role=\"heading\"\n [attr.aria-level]=\"titleLevel\"\n class=\"fd-title fd-title--h4 fd-grid-list__item-title\"\n >\n {{ title }}\n </div>\n }\n @if (description) {\n <span class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n }\n </div>\n }\n @if (body?.templateRef) {\n <div class=\"fd-grid-list__item-content\">\n <ng-template [ngTemplateOutlet]=\"body!.templateRef\"></ng-template>\n </div>\n }\n @if (state || footerBarComponent?.contentTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"itemFooter\"></ng-template>\n }\n </div>\n</div>\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio fd-grid-list__radio-input\"\n [style.display]=\"selectionMode === 'singleSelect' ? 'none' : ''\"\n [id]=\"id + '-radio'\"\n [name]=\"'fd-grid-list-item-toolbar-' + selectionMode\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [value]=\"value\"\n [ngModel]=\"_selectedItem\"\n (ngModelChange)=\"$event && _selectionItem($event)\"\n />\n <label\n class=\"fd-radio__label fd-grid-list__radio-label\"\n [for]=\"id + '-radio'\"\n tabindex=\"-1\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n ></label>\n</ng-template>\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox fd-grid-list__checkbox-input\"\n [id]=\"id + '-checkbox'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngModel]=\"_selectedItem\"\n (click)=\"_checkboxClick($event)\"\n (keydown.escape)=\"_checkboxEscape()\"\n (keydown.shift)=\"_checkboxEscape()\"\n />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\">\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n </label>\n</ng-template>\n<ng-template #itemFooter>\n @if (footerBarComponent || state) {\n <div class=\"fd-grid-list__item-body-actions\">\n @if (footerBarComponent?.contentTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"footerBarComponent!.contentTemplateRef\"></ng-template>\n }\n @if (!footerBarComponent?.contentTemplateRef && state) {\n @if (state === 'error') {\n <span\n fd-object-status\n status=\"negative\"\n [label]=\"('coreGridList.listItemStatusContainsErrors' | fdTranslate)()\"\n [attr.aria-label]=\"('coreGridList.listItemStatusContainsErrors' | fdTranslate)()\"\n ></span>\n }\n @if (state === 'locked') {\n <button\n class=\"fd-grid-list__action-button\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"('coreGridList.listItemStatusLocked' | fdTranslate)()\"\n [attr.aria-label]=\"('coreGridList.listItemStatusLocked' | fdTranslate)()\"\n [attr.data-test-id]=\"('coreGridList.listItemStatusLocked' | fdTranslate)()\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n }\n @if (state === 'draft') {\n <button\n class=\"fd-grid-list__action-button\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"('coreGridList.listItemStatusDraft' | fdTranslate)()\"\n [label]=\"('coreGridList.listItemStatusDraft' | fdTranslate)()\"\n [attr.data-test-id]=\"('coreGridList.listItemStatusDraft' | fdTranslate)()\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n }\n }\n </div>\n }\n</ng-template>\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\n@Component({\n selector: 'fd-grid-list-more-btn',\n templateUrl: './grid-list-more-btn.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-col fd-col--12'\n },\n standalone: true\n})\nexport class GridListMoreBtnComponent {\n /** Sets title of the button */\n @Input()\n title: string;\n\n /** Sets the number of total items. */\n @Input()\n totalCount: number;\n\n /** Sets the number of display items. */\n @Input()\n displayCount: number;\n\n /** Event is thrown, when the control button is clicked */\n @Output()\n showMore = new EventEmitter<void>();\n\n /** @hidden */\n _onKeyDown(event: KeyboardEvent): void {\n if (!KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n return;\n }\n\n event.preventDefault();\n\n this.showMore.emit();\n }\n}\n","<div tabindex=\"0\" role=\"button\" class=\"fd-grid-list__more\" (keydown)=\"_onKeyDown($event)\" (click)=\"showMore.emit()\">\n <h5 class=\"fd-title fd-title--h6 fd-grid-list__more-title\">{{ title }}</h5>\n <p class=\"fd-grid-list__more-description\">{{ '[ ' + displayCount + ' / ' + totalCount + ' ]' }}</p>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ToolbarComponent, ToolbarLabelDirective } from '@fundamental-ngx/core/toolbar';\n\n@Component({\n selector: 'fd-grid-list-title-bar',\n templateUrl: './grid-list-title-bar.component.html',\n host: {\n class: 'fd-col fd-col--12'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ToolbarComponent, ToolbarLabelDirective]\n})\nexport class GridListTitleBarComponent {\n /** Sets title of the Grid List */\n @Input()\n title: string;\n}\n","<fd-toolbar fdType=\"solid\">\n <label fd-toolbar-label>\n {{ title }}\n <ng-content select=\"[fd-grid-list-title-bar-additional-title-item]\"></ng-content>\n </label>\n\n <ng-content></ng-content>\n</fd-toolbar>\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-grid-list-title-bar-additional-title-item]',\n standalone: true\n})\nexport class GridListTitleBarAdditionalTitleItemDirective {}\n","import { DOWN_ARROW, END, HOME, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n SimpleChanges,\n ViewEncapsulation,\n computed,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n KeyUtil,\n KeyboardSupportService,\n Nullable,\n RangeSelector,\n RtlService,\n range\n} from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Observable, Subscription, filter } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { parseLayoutPattern } from '../../helpers/parse-layout-pattern';\nimport {\n GridListSelectionActions,\n GridListSelectionEvent,\n GridListSelectionMode\n} from '../../models/grid-list-selection.models';\nimport { GridListItemComponent } from '../grid-list-item/grid-list-item.component';\nimport { GridList } from './grid-list-base.component';\n\nlet gridListUniqueId = 0;\n\n@Component({\n selector: 'fd-grid-list',\n templateUrl: './grid-list.component.html',\n styleUrls: ['./grid-list.component.scss', '../../../../cdk/utils/drag-and-drop/drag-and-drop.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [KeyboardSupportService, { provide: GridList, useExisting: GridListComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class GridListComponent<T> extends GridList<T> implements OnChanges, AfterContentInit, OnDestroy {\n /** id for the Element */\n @Input()\n id = `fd-grid-list-${gridListUniqueId++}`;\n\n /** width of the element */\n @Input()\n width: string;\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /**\n * Defines the mode of Grid List\n * Modes:\n * - none: Default mode (no selection)\n * - delete: Delete mode (only one list item can be deleted via provided delete button)\n * - singleSelect: Selected item is highlighted but no selection control is visible (only one list item can be selected)\n * - singleSelectLeft: Left-positioned single selection mode (only one list item can be selected)\n * - singleSelectRight: Right-positioned single selection mode (only one list item can be selected)\n * - multiSelect: Multi-selection mode (more than one list item can be selected)\n * */\n @Input()\n selectionMode: GridListSelectionMode = 'none';\n\n /**\n * specify the column layout in the format `XLn-Ln-Mn-Sn` where n is the number of columns and can be different for each size.\n * eg: XL2-L2-M2-S1 would create 2-column layouts for XL, L, and M sizes and single-column layout for S size.\n */\n @Input()\n layoutPattern: string;\n\n /** Event is thrown, when mode is singleSelect, singleSelectLeft, singleSelectRight or multiSelect and item was selected */\n @Output()\n selectionChange = new EventEmitter<GridListSelectionEvent<T>>();\n\n /** @hidden */\n @ContentChildren(GridListItemComponent, { descendants: true })\n set gridListItems(components: QueryList<GridListItemComponent<T>>) {\n this._gridListItems = components;\n this._updateGridListItemsProperties(components);\n }\n\n get gridListItems(): QueryList<GridListItemComponent<T>> {\n return this._gridListItems;\n }\n\n /** @hidden */\n readonly _selectedItems$: Observable<GridListSelectionEvent<T>>;\n\n /** @hidden */\n private _gridListItems: QueryList<GridListItemComponent<T>>;\n\n /** @hidden */\n private readonly _rangeSelector = new RangeSelector();\n\n /** @hidden */\n private readonly _selectedItems: GridListSelectionEvent<T> = {\n added: [],\n index: [],\n removed: [],\n selection: []\n };\n\n /** @hidden */\n private readonly _selectedItemsSubject$ = new BehaviorSubject<GridListSelectionEvent<T>>(this._selectedItems);\n\n /** @hidden */\n private readonly subscription = new Subscription();\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _cd = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _elRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _isRtl = computed<boolean>(() => this._rtlService?.rtl() ?? false);\n\n /** @hidden */\n constructor() {\n super();\n this._selectedItems$ = this._selectedItemsSubject$.asObservable();\n const selectedItemsSub = this._selectedItems$\n .pipe(filter(() => !!this._gridListItems))\n .subscribe(this.selectionChange);\n\n this.subscription.add(selectedItemsSub);\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.layoutPattern &&\n !changes.layoutPattern.firstChange &&\n changes.layoutPattern.previousValue !== changes.layoutPattern.currentValue\n ) {\n const baseLayoutItemPattern = parseLayoutPattern(this.layoutPattern);\n this._updateGridListItemsProperty('gridLayoutClasses', baseLayoutItemPattern);\n }\n\n if (\n changes.selectionMode &&\n !changes.selectionMode.firstChange &&\n changes.selectionMode.previousValue !== changes.selectionMode.currentValue\n ) {\n this._updateGridListItemsProperty('selectionMode', this.selectionMode);\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setFirstFocusableItem();\n this._listenOnQueryChange();\n this._cd.detectChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n /**\n * Clears previous selection of the items.\n */\n clearSelection(): void {\n this._selectedItems.added = [];\n this._selectedItems.index = [];\n this._selectedItems.removed = this._selectedItems.selection;\n this._selectedItems.selection = [];\n\n this._selectedItemsSubject$.next(this._selectedItems);\n }\n\n /** @hidden */\n setSelectedItem(\n item: T,\n componentIndex: number,\n action?: GridListSelectionActions | null,\n event?: PointerEvent\n ): void {\n if (!action) {\n this._selectedItems.added = [item];\n const selectedItem = this._selectedItems.selection[0];\n if (selectedItem) {\n this._selectedItems.removed = [selectedItem];\n }\n\n this._selectedItems.selection = [item];\n this._selectedItems.index = [componentIndex];\n\n this._selectedItemsSubject$.next(this._selectedItems);\n\n return;\n }\n\n this._rangeSelector.onRangeElementToggled(componentIndex, event);\n const state = this._rangeSelector.lastRangeSelectionState;\n if (!state) {\n return;\n }\n const itemIndexes = range(state.to - state.from + 1, (i) => state.from + i);\n const selectedItems = itemIndexes.map((idx) => this.gridListItems.get(idx)?.value).filter((v): v is T => !!v);\n const itemsSet = new Set<T>(selectedItems);\n\n if (action === GridListSelectionActions.ADD) {\n this._selectedItems.added = [...itemsSet.values()];\n this._selectedItems.index = [...itemIndexes];\n this._selectedItems.removed = [];\n\n // remove \"itemsSet\" values from selection and add them back from \"itemsSet\"\n // this is needed to avoid duplicates as some of the items can be already selected\n this._selectedItems.selection = this._selectedItems.selection.filter((e) => !itemsSet.has(e));\n this._selectedItems.selection.push(...itemsSet.values());\n }\n\n if (action === GridListSelectionActions.REMOVE) {\n this._selectedItems.added = [];\n this._selectedItems.index = [...itemIndexes];\n this._selectedItems.removed = [...itemsSet.values()];\n\n this._selectedItems.selection = this._selectedItems.selection.filter(\n (selectedItem) => !itemsSet.has(selectedItem)\n );\n }\n\n this._selectedItemsSubject$.next(this._selectedItems);\n }\n\n /** @hidden */\n handleKeydown(event: KeyboardEvent): void {\n this._handleTabKeydown(event);\n if (KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n if (event.shiftKey && this.selectionMode === 'multiSelect') {\n this._handleShiftArrowKeydown(event);\n } else {\n this._handleArrowKeydown(event);\n }\n } else if (event.shiftKey && this.selectionMode === 'multiSelect' && KeyUtil.isKeyCode(event, [HOME, END])) {\n this._handleHomeEndKeydown(event);\n }\n }\n /** @hidden */\n private _handleHomeEndKeydown(event: KeyboardEvent): void {\n event.preventDefault();\n let shouldSelect = false;\n let selectionAction;\n const isEndKeydown = KeyUtil.isKeyCode(event, END);\n const loopStartingIndex = isEndKeydown ? 0 : this._gridListItems.length - 1;\n /**\n * Ternary loop - if isEndKeydown is true, loop iterates from zero to the end of the grid list items.\n * If isEndKeydown is false, loop iterates backwards\n **/\n for (\n let index = loopStartingIndex;\n isEndKeydown ? index < this._gridListItems.length : index >= 0;\n isEndKeydown ? index++ : index--\n ) {\n const currentItem = this._gridListItems.toArray()[index];\n if (document.activeElement === currentItem._gridListItem.nativeElement) {\n shouldSelect = true;\n selectionAction = currentItem._selectedItem\n ? GridListSelectionActions.ADD\n : GridListSelectionActions.REMOVE;\n }\n if (shouldSelect) {\n this.setSelectedItem(currentItem as any, index, selectionAction);\n }\n }\n const itemToFocus = isEndKeydown\n ? this._gridListItems.last._gridListItem\n : this._gridListItems.first._gridListItem;\n itemToFocus.nativeElement.focus();\n }\n\n /** @hidden */\n private _handleTabKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, TAB) && !event.shiftKey) {\n const isFocused = this._gridListItems\n .toArray()\n .some((item) => item._gridListItem.nativeElement.contains(document.activeElement));\n const isChildFocused = this._gridListItems\n .toArray()\n .some((item) => item._gridListItem.nativeElement.querySelector(':focus'));\n if (isFocused && !isChildFocused) {\n this._gridListItems.forEach((item) => {\n const interactiveElements = item._gridListItem.nativeElement.querySelectorAll(\n 'a, button, input, select, textarea'\n );\n\n // Set tabindex to -1 for all interactive elements in the grid\n interactiveElements.forEach((element) => {\n element.setAttribute('tabindex', '-1');\n });\n });\n return;\n } else {\n this._gridListItems.forEach((item) => {\n const interactiveElements = item._gridListItem.nativeElement.querySelectorAll(\n 'a, button, input, select, textarea'\n );\n interactiveElements.forEach((element) => {\n element.setAttribute('tabindex', '0');\n });\n });\n return;\n }\n }\n }\n\n /** @hidden */\n private _handleShiftArrowKeydown(event: KeyboardEvent): void {\n event.preventDefault();\n const activeElement = document.activeElement as HTMLElement;\n\n const currentItemIndex = this._getCurrentItemIndex(activeElement);\n if (currentItemIndex === -1) {\n return;\n }\n\n const indexToFocus = this._calculateIndexToFocus(event, currentItemIndex);\n if (indexToFocus === undefined) {\n return;\n }\n\n // Persist the selection state from the current item to the next item\n this._persistSelectionState(currentItemIndex, indexToFocus);\n\n // Focus the new item\n this._focusItemAtIndex(indexToFocus, activeElement);\n }\n\n /** @hidden */\n private _handleArrowKeydown(event: KeyboardEvent, isShiftPressed = false): void {\n event.preventDefault();\n const activeElement = document.activeElement as HTMLElement;\n\n const currentItemIndex = this._getCurrentItemIndex(activeElement);\n if (currentItemIndex === -1) {\n return;\n }\n\n const indexToFocus = this._calculateIndexToFocus(event, currentItemIndex);\n if (indexToFocus === undefined) {\n return;\n }\n\n if (isShiftPressed) {\n this._toggleSelection(indexToFocus);\n }\n\n this._focusItemAtIndex(indexToFocus, activeElement);\n }\n\n /** hidden */\n private _calculateIndexToFocus(event: KeyboardEvent, currentItemIndex: number): number | undefined {\n const itemsPerRow = this._getItemsPerRow(\n this._gridListItems.toArray()[currentItemIndex]._gridListItem.nativeElement\n );\n if (KeyUtil.isKeyCode(event, LEFT_ARROW) || (this._isRtl() && KeyUtil.isKeyCode(event, [RIGHT_ARROW]))) {\n return currentItemIndex - 1;\n } else if (KeyUtil.isKeyCode(event, RIGHT_ARROW) || (this._isRtl() && KeyUtil.isKeyCode(event, [LEFT_ARROW]))) {\n return currentItemIndex + 1;\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n return currentItemIndex - itemsPerRow;\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n return currentItemIndex + itemsPerRow;\n }\n return undefined;\n }\n\n /** hidden */\n private _persistSelectionState(currentIndex: number, indexToFocus: number): void {\n const currentItem = this._gridListItems.toArray()[currentIndex];\n const nextItem = this._gridListItems.toArray()[indexToFocus];\n\n // Persist the selection state from the current item to the next item\n if (currentItem._selectedItem) {\n // If the current item is selected, ensure the next item is selected as well\n if (!nextItem._selectedItem) {\n this.setSelectedItem(nextItem as any, indexToFocus, GridListSelectionActions.ADD);\n }\n } else {\n // If the current item is not selected, ensure the next item remains not selected\n if (nextItem._selectedItem) {\n this.setSelectedItem(nextItem as any, indexToFocus, GridListSelectionActions.REMOVE);\n }\n }\n }\n\n /** hidden */\n private _getCurrentItemIndex(activeElement: HTMLElement): number {\n return this._gridListItems\n .toArray()\n .findIndex((item) => item._gridListItem.nativeElement.contains(activeElement));\n }\n\n /** hidden */\n private _focusItemAtIndex(indexToFocus: number, activeElement: HTMLElement): void {\n if (indexToFocus >= 0 && indexToFocus < this._gridListItems.length) {\n const itemToFocus = this._gridListItems.toArray()[indexToFocus];\n if (itemToFocus && itemToFocus._gridListItem) {\n const elementToFocus = itemToFocus._gridListItem.nativeElement?.parentElement?.querySelector(\n activeElement.tagName\n ) as HTMLElement;\n if (elementToFocus) {\n elementToFocus.focus();\n }\n }\n }\n }\n\n /** hidden */\n private _toggleSelection(indexToFocus: number): void {\n const currentItem = this._gridListItems.toArray()[indexToFocus];\n const selectionAction = currentItem._selectedItem\n ? GridListSelectionActions.REMOVE\n : GridListSelectionActions.ADD;\n\n this.setSelectedItem(currentItem as any, indexToFocus, selectionAction);\n }\n\n /** @hidden */\n private _listenOnQueryChange(): void {\n this._gridListItems.changes.pipe(startWith(0), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n setTimeout(() => {\n this._setFirstFocusableItem();\n });\n });\n }\n\n /** @hidden */\n private _setFirstFocusableItem(): void {\n this._gridListItems.toArray().forEach((item, index) => {\n item.tabIndex.set(index === 0 ? 0 : -1);\n });\n }\n\n /** @hidden */\n private _getItemsPerRow(activeElement: HTMLDivElement): number {\n const itemWidth = activeElement.getBoundingClientRect().width;\n const containerWidth = this._elRef.nativeElement.getBoundingClientRect().width;\n return Math.floor(containerWidth / itemWidth);\n }\n\n /** @hidden */\n private _updateGridListItemsProperties(components: QueryList<GridListItemComponent<T>>): void {\n const layoutPattern = this.layoutPattern ? this.layoutPattern : 'XL4-L3-M2-S1';\n const baseLayoutItemPattern = parseLayoutPattern(layoutPattern);\n\n components.forEach((component, index) => {\n if (component._index !== index) {\n component._index = index;\n }\n\n if (!component.selectionMode) {\n component.selectionMode = this.selectionMode;\n }\n\n if (!component.layoutItemPattern) {\n component.gridLayoutClasses = baseLayoutItemPattern;\n }\n });\n }\n\n /** @hidden */\n private _updateGridListItemsProperty(key: string, value: string | string[]): void {\n this._gridListItems.forEach((componenet) => {\n componenet[key] = value;\n });\n }\n}\n","<div\n [id]=\"id\"\n [style.width]=\"width\"\n class=\"fd-grid-list\"\n [attr.aria-label]=\"ariaLabel\"\n [class.fd-grid-list--mode-delete]=\"selectionMode === 'delete'\"\n [class.fd-grid-list--mode-single-select]=\"selectionMode === 'singleSelect'\"\n [class.fd-grid-list--mode-single-select-left]=\"selectionMode === 'singleSelectLeft'\"\n [class.fd-grid-list--mode-single-select-right]=\"selectionMode === 'singleSelectRight'\"\n [class.fd-grid-list--mode-multi-select]=\"selectionMode === 'multiSelect'\"\n (keydown)=\"handleKeydown($event)\"\n>\n <div class=\"fd-container\" role=\"listbox\">\n <div class=\"fd-row\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-grid-list-item-image]',\n host: {\n class: 'fd-grid-list__item-image'\n },\n standalone: true\n})\nexport class GridListItemImageDirective {}\n","import { NgModule } from '@angular/core';\nimport { AvatarModule } from '@fundamental-ngx/core/avatar';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { ToolbarModule } from '@fundamental-ngx/core/toolbar';\nimport { GridListFilterBarComponent } from './components/grid-list-filter-bar/grid-list-filter-bar.component';\nimport { GridListFooterComponent } from './components/grid-list-footer/grid-list-footer.component';\nimport { GridListGroupHeaderComponent } from './components/grid-list-group-header/grid-list-group-header.component';\nimport { GridListItemFooterBarComponent } from './components/grid-list-item-footer-bar/grid-list-item-footer-bar.component';\nimport { GridListItemToolbarComponent } from './components/grid-list-item-toolbar/grid-list-item-toolbar.component';\nimport { GridListItemComponent } from './components/grid-list-item/grid-list-item.component';\nimport { GridListMoreBtnComponent } from './components/grid-list-more-btn/grid-list-more-btn.component';\nimport { GridListTitleBarSpacerComponent } from './components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component';\nimport { GridListTitleBarComponent } from './components/grid-list-title-bar/grid-list-title-bar.component';\nimport { GridListTitleBarAdditionalTitleItemDirective } from './components/grid-list-title-bar/grid-list-title-bar.directive';\nimport { GridListComponent } from './components/grid-list/grid-list.component';\nimport { GridListItemBodyDirective } from './directives/grid-list-item-body.directive';\nimport { GridListItemImageDirective } from './directives/grid-list-item-image.directive';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n ToolbarModule,\n ButtonModule,\n AvatarModule,\n GridListComponent,\n GridListItemComponent,\n GridListTitleBarComponent,\n GridListFilterBarComponent,\n GridListMoreBtnComponent,\n GridListFooterComponent,\n GridListItemFooterBarComponent,\n GridListItemToolbarComponent,\n GridListGroupHeaderComponent,\n GridListTitleBarSpacerComponent,\n GridListTitleBarAdditionalTitleItemDirective,\n GridListItemImageDirective,\n GridListItemBodyDirective\n ],\n exports: [\n GridListComponent,\n GridListItemComponent,\n GridListTitleBarComponent,\n GridListFilterBarComponent,\n GridListMoreBtnComponent,\n GridListFooterComponent,\n GridListItemFooterBarComponent,\n GridListItemToolbarComponent,\n GridListGroupHeaderComponent,\n GridListTitleBarSpacerComponent,\n GridListTitleBarAdditionalTitleItemDirective,\n GridListItemImageDirective,\n GridListItemBodyDirective\n ]\n})\nexport class GridListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.GridList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-grid-list.mjs","sources":["../../../../libs/core/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.ts","../../../../libs/core/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.html","../../../../libs/core/grid-list/components/grid-list-footer/grid-list-footer.component.ts","../../../../libs/core/grid-list/components/grid-list-footer/grid-list-footer.component.html","../../../../libs/core/grid-list/components/grid-list-group-header/grid-list-group-header.component.ts","../../../../libs/core/grid-list/components/grid-list-group-header/grid-list-group-header.component.html","../../../../libs/core/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.ts","../../../../libs/core/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.html","../../../../libs/core/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.ts","../../../../libs/core/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.html","../../../../libs/core/grid-list/directives/grid-list-item-body.directive.ts","../../../../libs/core/grid-list/helpers/parse-layout-pattern.ts","../../../../libs/core/grid-list/models/grid-list-selection.models.ts","../../../../libs/core/grid-list/components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component.ts","../../../../libs/core/grid-list/components/grid-list/grid-list-base.component.ts","../../../../libs/core/grid-list/components/grid-list-item/grid-list-item.component.ts","../../../../libs/core/grid-list/components/grid-list-item/grid-list-item.component.html","../../../../libs/core/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.ts","../../../../libs/core/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.html","../../../../libs/core/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.ts","../../../../libs/core/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.html","../../../../libs/core/grid-list/components/grid-list-title-bar/grid-list-title-bar.directive.ts","../../../../libs/core/grid-list/components/grid-list/grid-list.component.ts","../../../../libs/core/grid-list/components/grid-list/grid-list.component.html","../../../../libs/core/grid-list/directives/grid-list-item-image.directive.ts","../../../../libs/core/grid-list/grid-list.module.ts","../../../../libs/core/grid-list/fundamental-ngx-core-grid-list.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { ToolbarComponent, ToolbarSpacerDirective } from '@fundamental-ngx/core/toolbar';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\n\n@Component({\n selector: 'fd-grid-list-filter-bar',\n templateUrl: './grid-list-filter-bar.component.html',\n host: {\n class: 'fd-col fd-col--12'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ToolbarComponent, ToolbarSpacerDirective, IconComponent, FdTranslatePipe]\n})\nexport class GridListFilterBarComponent {\n /** Event is thrown, when the control button is clicked */\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() readonly close = new EventEmitter<void>();\n}\n","<fd-toolbar\n fdType=\"info\"\n [active]=\"true\"\n [tabindex]=\"0\"\n class=\"fd-grid-list__filter\"\n [attr.aria-label]=\"('coreGridList.filterBarCancelButtonTitle' | fdTranslate)()\"\n (click)=\"close.emit()\"\n (keydown.space)=\"$event.preventDefault()\"\n (keyup.space)=\"close.emit()\"\n (keydown.enter)=\"close.emit()\"\n>\n <ng-content></ng-content>\n\n <fd-toolbar-spacer></fd-toolbar-spacer>\n\n <fd-icon glyph=\"decline\"></fd-icon>\n</fd-toolbar>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'fd-grid-list-footer',\n templateUrl: './grid-list-footer.component.html',\n host: {\n class: 'fd-col fd-col--12'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class GridListFooterComponent {}\n","<div tabindex=\"0\" class=\"fd-grid-list__footer\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n@Component({\n selector: 'fd-grid-list-group-header',\n templateUrl: './grid-list-group-header.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-col fd-col--12'\n },\n standalone: true\n})\nexport class GridListGroupHeaderComponent {\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel: Nullable<string>;\n}\n","<div class=\"fd-grid-list__group-header fd-grid-list__group-header--no-margin\" [attr.aria-label]=\"ariaLabel\">\n <ng-content></ng-content>\n</div>\n","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'fd-grid-list-item-footer-bar',\n templateUrl: './grid-list-item-footer-bar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class GridListItemFooterBarComponent {\n /** @hidden */\n @ViewChild(TemplateRef)\n contentTemplateRef: TemplateRef<any>;\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'fd-grid-list-item-toolbar',\n templateUrl: './grid-list-item-toolbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class GridListItemToolbarComponent {\n /** @hidden */\n @ViewChild(TemplateRef)\n contentTemplateRef: TemplateRef<any>;\n}\n","<ng-template>\n <ng-content></ng-content>\n</ng-template>\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-grid-list-item-body]',\n standalone: true\n})\nexport class GridListItemBodyDirective {\n /** @hidden */\n constructor(public readonly templateRef: TemplateRef<any>) {}\n}\n","interface ParseLayout {\n [key: string]: {\n pattern: string;\n value: number;\n size: string;\n };\n}\n\n/** Parse layout pattern */\nexport function parseLayoutPattern(pattern: string | undefined, isBaseLayout = true): string[] {\n const parseLayout = pattern && validateAndParseLayoutPattern(pattern, isBaseLayout);\n\n if (!parseLayout) {\n throw new Error('Invalid layoutPattern.');\n }\n\n return generateLayoutClasses(parseLayout);\n}\n\nfunction validateAndParseLayoutPattern(pattern: string, isBaseLayout: boolean): ParseLayout | undefined {\n const columnsNames = 'XL|L|M|S';\n const columnNumbers = isBaseLayout ? '12|6|4|3|2|1' : '12|11|10|9|8|7|6|5|4|3|2|1';\n const reg = new RegExp(`(?!-)((${columnsNames})(${columnNumbers}))`, 'gi');\n const match = pattern.match(reg);\n if (!match) {\n return;\n }\n\n return match.reduce((res, item) => {\n const size = item.replace(reg, '$2').toLocaleLowerCase();\n const num = +item.replace(reg, '$3');\n\n res[size] = {\n pattern: item,\n size,\n value: isBaseLayout ? 12 / num : num\n };\n\n return res;\n }, {});\n}\n\nfunction generateLayoutClasses({ xl, l, m, s }: ParseLayout): string[] {\n const classes: string[] = ['fd-col'];\n\n if (s) {\n classes.push(`fd-col--${s.value}`);\n }\n\n if (m) {\n classes.push(`fd-col-md--${m.value}`);\n }\n\n if (l) {\n classes.push(`fd-col-lg--${l.value}`);\n }\n\n if (xl) {\n classes.push(`fd-col-xl--${xl.value}`);\n }\n\n return classes;\n}\n","export type GridListSelectionMode =\n | 'none'\n | 'delete'\n | 'singleSelect'\n | 'singleSelectLeft'\n | 'singleSelectRight'\n | 'multiSelect';\n\nexport enum GridListSelectionActions {\n ADD = 'add',\n REMOVE = 'remove'\n}\n\nexport enum GridListSelectionModeEnum {\n NONE = 'none',\n DELETE = 'delete',\n SINGLE_SELECT = 'singleSelect',\n SINGLE_SELECT_LEFT = 'singleSelectLeft',\n SINGLE_SELECT_RIGHT = 'singleSelectRight',\n MULTI_SELECT = 'multiSelect'\n}\n\nexport interface GridListSelectionEvent<T> {\n /** currently selected items */\n selection: T[];\n /** items added */\n added: T[];\n /** items removed */\n removed: T[];\n /** indexes location of additions or removals */\n index: number[];\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ToolbarSpacerDirective } from '@fundamental-ngx/core/toolbar';\n\n@Component({\n selector: 'fd-grid-list-title-bar-spacer',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class GridListTitleBarSpacerComponent extends ToolbarSpacerDirective {}\n","import { Directive } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { GridListSelectionActions, GridListSelectionEvent } from '../../models/grid-list-selection.models';\n\n@Directive()\nexport abstract class GridList<T> {\n /** an observable of selection state event */\n abstract _selectedItems$: Observable<GridListSelectionEvent<T>>;\n /** method to be used by list items to register the selection */\n abstract setSelectedItem(\n item: T,\n componentIndex: number,\n action?: GridListSelectionActions | null,\n event?: MouseEvent\n ): void;\n}\n","import { ENTER, ESCAPE, F2, F7, MAC_ENTER, SPACE } from '@angular/cdk/keycodes';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n signal\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { KeyUtil, Nullable, TabbableElementService } from '@fundamental-ngx/cdk/utils';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n ContentDensityModule,\n ContentDensityObserver,\n contentDensityObserverProviders\n} from '@fundamental-ngx/core/content-density';\n\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { ObjectStatusComponent } from '@fundamental-ngx/core/object-status';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { GridListItemBodyDirective } from '../../directives/grid-list-item-body.directive';\nimport { parseLayoutPattern } from '../../helpers/parse-layout-pattern';\nimport {\n GridListSelectionActions,\n GridListSelectionMode,\n GridListSelectionModeEnum\n} from '../../models/grid-list-selection.models';\nimport { GridListItemFooterBarComponent } from '../grid-list-item-footer-bar/grid-list-item-footer-bar.component';\nimport { GridListItemToolbarComponent } from '../grid-list-item-toolbar/grid-list-item-toolbar.component';\nimport { GridListTitleBarSpacerComponent } from '../grid-list-title-bar-spacer/grid-list-title-bar-spacer.component';\nimport { GridList } from '../grid-list/grid-list-base.component';\n\nlet gridListItemUniqueId = 0;\n\nexport interface GridListItemOutputEvent<T> {\n index?: number;\n value?: T;\n}\n\nexport type GridListItemType = 'inactive' | 'active' | 'detail' | 'detailsAndActive' | 'navigation';\nexport type GridListItemState = 'unread' | 'locked' | 'error' | 'draft';\nexport type GridListItemStatus = 'success' | 'warning' | 'error' | 'neutral';\n\n@Component({\n selector: 'fd-grid-list-item',\n templateUrl: './grid-list-item.component.html',\n styleUrl: './grid-list-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n GridListTitleBarSpacerComponent,\n ButtonComponent,\n IconComponent,\n FormsModule,\n ObjectStatusComponent,\n FdTranslatePipe,\n ContentDensityModule\n ],\n providers: [contentDensityObserverProviders()]\n})\nexport class GridListItemComponent<T> implements AfterViewInit, OnDestroy {\n /** id for the Element */\n @Input()\n id = `fd-grid-list-item-${gridListItemUniqueId++}`;\n\n /** width of the element */\n @Input()\n @HostBinding('style.max-width')\n @HostBinding('style.min-width')\n width: string;\n\n /**\n * specify the cell layout in the format `XLn-Ln-Mn-Sn` where n is\n * the number of occupied columns and n can be different for each size.\n */\n @Input()\n set layoutItemPattern(value: Nullable<string>) {\n this.gridLayoutClasses = value ? parseLayoutPattern(value, false) : [];\n }\n\n /**\n * Defines the status of Grid List Item\n * (Statuses: success | warning | error | neutral)\n */\n @Input()\n status?: GridListItemStatus;\n\n /** Sets number of sub items */\n @Input()\n counter: Nullable<number>;\n\n /**\n * Value field stores information for radio button value, checkbox button and for GridListSelectionEvent\n * The field is mandatory for modes like singleSelect, singleSelectLeft, singleSelectRight or multiSelect\n */\n @Input()\n value?: T;\n\n /** Whether click on the custom toolbar is disabled */\n @Input()\n disableToolbarClick = false;\n\n /** Allows an item to be selected programmatically */\n @Input({ transform: booleanAttribute })\n selected = false;\n\n /** Remove the padding from the Item body */\n @Input()\n noPadding = false;\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabelledBy: Nullable<string>;\n\n /**\n * Defines the type of Grid List Item\n * Types:\n * - active: indicates that the item is clickable via active feedback when item is pressed\n * - detail: enables detail button of the list item that fires event.\n * - detailsAndActive: enables \"detail\" and \"active\" enumerations together\n * - inactive: indicates the list item does not have any active feedback when item is pressed\n * - navigation: indicates the list item is navigable to show extra information about the item\n * Default: inactive\n */\n @Input()\n set type(value: Nullable<GridListItemType>) {\n this._type = value ?? 'inactive';\n }\n\n get type(): GridListItemType {\n return this._type;\n }\n\n /**\n * Sets the state of Grid List Item\n * (States: unread | error | locked | draft)\n */\n @Input()\n state?: GridListItemState;\n\n /**\n * The navigated state of the list item.\n * If set to true, a navigation indicator is displayed at the end of the list item.\n */\n @Input()\n isNavigated = false;\n\n /** Title of the item */\n @Input()\n title: string;\n\n /**\n * Aria-level of the title\n * Available options: 1, 2, 3, 4, 5, 6\n * Default: 4\n */\n @Input()\n titleLevel: 1 | 2 | 3 | 4 | 5 | 6 = 4;\n\n /** Description of the item */\n @Input()\n description: string;\n\n /** When set to true the grid list item's height will be set to auto */\n @Input()\n autoHeight = false;\n\n /**\n * Event is thrown, when type is active\n * and item is pressed\n */\n @Output()\n press = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown, when type is detail or detailsAndActive\n * and Detail button was pressed\n */\n @Output()\n detail = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown, when mode delete\n * and Delete button was pressed\n */\n @Output()\n delete = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown, when type is navigation\n * and Navigate button was pressed\n */\n @Output()\n navigate = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown on grid list item click.\n */\n @Output()\n cardClick = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown, when state is error, not used GridListItemFooterBarComponent\n * and Draft button was pressed\n */\n @Output()\n draft = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /**\n * Event is thrown, when state is locked, not used GridListItemFooterBarComponent\n * and Locked button was pressed\n */\n @Output()\n locked = new EventEmitter<GridListItemOutputEvent<T>>();\n\n /** @hidden */\n @ViewChild('gridListItem')\n _gridListItem: ElementRef<HTMLDivElement>;\n\n /** @hidden */\n @ContentChild(GridListItemFooterBarComponent)\n footerBarComponent: Nullable<GridListItemFooterBarComponent>;\n /** @hidden */\n @ContentChild(GridListItemToolbarComponent)\n itemToolbarComponent: Nullable<GridListItemToolbarComponent>;\n\n /** @hidden */\n @ContentChild(GridListItemBodyDirective)\n body: Nullable<GridListItemBodyDirective>;\n\n /** @hidden\n * The active state of the list item.\n * If set to true, the whole card has active state. Becomes false only when the Edit button is clicked.\n */\n _isActive = true;\n\n /** @hidden */\n set gridLayoutClasses(value: string[]) {\n this._removeClassesNames(this._gridLayoutClasses);\n this._gridLayoutClasses = value;\n this._addClassesNames(this._gridLayoutClasses);\n }\n\n get gridLayoutClasses(): string[] {\n return this._gridLayoutClasses;\n }\n\n /** @hidden */\n _selectedItem?: T;\n\n /** @hidden */\n set selectionMode(mode: GridListSelectionMode | undefined) {\n this._selectionMode = mode;\n\n if (mode !== GridListSelectionModeEnum.DELETE && mode !== GridListSelectionModeEnum.NONE && !this.value) {\n throw new Error('Grid List Item must have [value] attribute.');\n }\n\n if (this.selected && this.value && this._index != null) {\n const action =\n this.selectionMode !== GridListSelectionModeEnum.MULTI_SELECT ? null : GridListSelectionActions.ADD;\n\n this._gridList.setSelectedItem(this.value, this._index, action);\n }\n\n this._cd.detectChanges();\n }\n\n get selectionMode(): GridListSelectionMode | undefined {\n return this._selectionMode;\n }\n\n /** @hidden */\n _index?: number;\n\n /** tabIndex of the element */\n tabIndex = signal(-1);\n\n /** @hidden */\n private _type: GridListItemType = 'inactive';\n\n /** @hidden */\n private _selectionMode?: GridListSelectionMode;\n\n /** @hidden */\n private _gridLayoutClasses: string[] = [];\n\n /** @hidden */\n private readonly subscription = new Subscription();\n\n /** @hidden */\n private _innerElementFocused = signal<boolean>(false);\n\n /** @hidden */\n constructor(\n private readonly _cd: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _render: Renderer2,\n private readonly _gridList: GridList<T>,\n readonly _contentDensityObserver: ContentDensityObserver,\n private readonly _tabbableElementService: TabbableElementService\n ) {\n const selectedItemsSub = this._gridList._selectedItems$.subscribe((items) => {\n this._selectedItem = items.selection.find((item) => item === this.value);\n this._cd.markForCheck();\n });\n this.subscription.add(selectedItemsSub);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._cd.detectChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n /** Focus grid list item programmatically */\n focus(options?: FocusOptions): void {\n this._gridListItem?.nativeElement.focus(options);\n }\n\n /** @hidden */\n _setActive(event: MouseEvent, isActive: boolean): void {\n if (this._isElementCanBeClicked(event)) {\n return;\n }\n\n this._isActive = isActive;\n }\n\n /** @hidden */\n _singleSelect(event: Event): void {\n this._preventDefault(event);\n\n if (typeof this._selectedItem !== 'undefined' || !this.value || this._index == null) {\n return;\n }\n\n this._gridList.setSelectedItem(this.value, this._index);\n }\n\n /** @hidden */\n _checkboxClick(event: MouseEvent): void {\n const checked = (<HTMLInputElement>event.target).checked;\n this._selectionItem(checked, event);\n }\n\n /** @hidden */\n _checkboxEscape(): void {\n this._gridListItem.nativeElement.focus();\n }\n\n /** @hidden */\n _selectionItem(value: boolean | number | T, event?: MouseEvent): void {\n if (!this.value || this._index == null) {\n return;\n }\n const action =\n this.selectionMode !== GridListSelectionModeEnum.MULTI_SELECT\n ? null\n : value || value === 0\n ? GridListSelectionActions.ADD\n : GridListSelectionActions.REMOVE;\n\n this._gridList.setSelectedItem(this.value, this._index, action, event);\n }\n\n /** @hidden */\n _onDetail(event: MouseEvent): void {\n this._preventDefault(event);\n\n this.detail.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _onNavigate(event: MouseEvent): void {\n this._preventDefault(event);\n\n this.navigate.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _onDelete(event: MouseEvent): void {\n this._preventDefault(event);\n\n this.delete.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _clickOnDraft(event: MouseEvent): void {\n this._preventDefault(event);\n\n this.draft.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _clickOnLocked(event: MouseEvent): void {\n this._preventDefault(event);\n\n this.locked.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _onClick(event: MouseEvent): void {\n if (!this._isElementCanBeClicked(event)) {\n return;\n }\n\n if (this.type !== 'active' && this.type !== 'detailsAndActive' && this.type !== 'navigation') {\n this.cardClick.emit(this._outputEventValue);\n return;\n }\n\n if (this.type === 'navigation') {\n this._onNavigate(event);\n return;\n }\n this.press.emit(this._outputEventValue);\n this.cardClick.emit(this._outputEventValue);\n }\n /** @hidden */\n _onKeyDown(event: KeyboardEvent): void {\n const activeElement = document.activeElement as HTMLElement;\n const isFocused = activeElement === this._gridListItem.nativeElement;\n const shouldFocusChild = KeyUtil.isKeyCode(event, [ENTER, MAC_ENTER, F2, F7]) && !event.shiftKey && isFocused;\n if (shouldFocusChild) {\n event.stopPropagation();\n const interactiveElements = this._gridListItem.nativeElement.querySelectorAll(\n 'a, button, input, select, textarea'\n );\n\n const firstInteractiveElement = interactiveElements[0] as HTMLElement;\n firstInteractiveElement.focus();\n interactiveElements.forEach((element) => {\n element.setAttribute('tabindex', '0');\n });\n this._innerElementFocused.set(true);\n return;\n } else if (this._innerElementFocused() && KeyUtil.isKeyCode(event, [F2, F7, ESCAPE])) {\n event.stopPropagation();\n this._gridListItem.nativeElement.focus();\n this._innerElementFocused.set(false);\n return;\n }\n const target = event.target as HTMLDivElement;\n\n const isSelectionKeyDown = KeyUtil.isKeyCode(event, [ENTER, SPACE]);\n\n if (isSelectionKeyDown && this.selectionMode === GridListSelectionModeEnum.NONE) {\n this.press.emit(this._outputEventValue);\n }\n\n if (\n !isSelectionKeyDown ||\n this.selectionMode === GridListSelectionModeEnum.NONE ||\n !target.classList.contains('fd-grid-list__item')\n ) {\n return;\n }\n\n this._preventDefault(event);\n\n if (this.selectionMode === GridListSelectionModeEnum.MULTI_SELECT) {\n this._selectionItem(!this._selectedItem);\n\n return;\n }\n\n if (typeof this._selectedItem === 'undefined') {\n this._singleSelect(event);\n }\n }\n\n /** @hidden */\n private _isElementCanBeClicked(event: MouseEvent): boolean {\n if (!event?.target) {\n return false;\n }\n\n const element = event.target as HTMLElement;\n const { classList } = element;\n\n return (\n !(this._isToolbarElement(element) && this.disableToolbarClick) &&\n !classList.contains('fd-grid-list__action-button') &&\n !classList.contains('fd-grid-list__radio-label') &&\n !classList.contains('fd-grid-list__radio-input') &&\n !classList.contains('fd-grid-list__checkbox-label') &&\n !classList.contains('fd-grid-list__checkbox-input') &&\n !classList.contains('fd-checkbox__checkmark')\n );\n }\n\n /** @hidden */\n private _isToolbarElement(element: HTMLElement): boolean {\n if (!this.itemToolbarComponent) {\n return false;\n }\n\n while (element.parentElement && !element.parentElement.classList.contains('fd-grid-list__item')) {\n if (element.classList.contains('fd-toolbar--extra-content')) {\n return true;\n }\n\n element = element.parentElement;\n }\n\n return false;\n }\n\n /** @hidden */\n private _preventDefault(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n }\n\n /** @hidden */\n private get _outputEventValue(): GridListItemOutputEvent<T> {\n return {\n value: this.value,\n index: this._index\n };\n }\n\n /** @hidden */\n private _addClassesNames(classesNames: string[]): void {\n for (const className of classesNames) {\n this._render.addClass(this._elementRef.nativeElement, className);\n }\n }\n\n /** @hidden */\n private _removeClassesNames(classesNames: string[]): void {\n for (const className of classesNames) {\n this._render.removeClass(this._elementRef.nativeElement, className);\n }\n }\n}\n","<div\n #gridListItem\n [id]=\"id\"\n [tabindex]=\"tabIndex()\"\n class=\"fd-grid-list__item\"\n role=\"option\"\n [class.is-navigated]=\"isNavigated\"\n [class.is-selected]=\"!!_selectedItem\"\n [class.fd-grid-list__item--link]=\"\n _isActive && (type === 'active' || type === 'detailsAndActive' || type === 'navigation')\n \"\n [class.fd-grid-list__item--unread]=\"state === 'unread'\"\n [class.fd-grid-list__item--locked]=\"state === 'locked'\"\n [class.fd-grid-list__item--draft]=\"state === 'draft'\"\n [class.fd-grid-list__item--error]=\"state === 'error'\"\n [class.fd-grid-list__item--height-auto]=\"autoHeight\"\n (keydown)=\"_onKeyDown($event)\"\n (click)=\"selectionMode === 'singleSelect' && _singleSelect($event); _onClick($event)\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n [attr.aria-selected]=\"selectionMode === 'none' ? null : !!_selectedItem\"\n>\n @if (status) {\n <span\n class=\"fd-grid-list__highlight\"\n [class.fd-grid-list__highlight--positive]=\"status === 'success'\"\n [class.fd-grid-list__highlight--critical]=\"status === 'warning'\"\n [class.fd-grid-list__highlight--negative]=\"status === 'error'\"\n [class.fd-grid-list__highlight--neutral]=\"status === 'neutral'\"\n [attr.aria-label]=\"('coreGridList.listItemStatusAriaLabel' | fdTranslate: { status: status })()\"\n ></span>\n }\n @if (selectionMode === 'singleSelect') {\n <ng-template [ngTemplateOutlet]=\"radio\"></ng-template>\n }\n @if (\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n ) {\n <div class=\"fd-toolbar fd-grid-list__item-toolbar\">\n @if (selectionMode === 'singleSelectLeft') {\n <ng-template [ngTemplateOutlet]=\"radio\"></ng-template>\n }\n @if (selectionMode === 'multiSelect') {\n <ng-template [ngTemplateOutlet]=\"checkbox\"></ng-template>\n }\n @if (itemToolbarComponent?.contentTemplateRef) {\n <div class=\"fd-toolbar--extra-content\">\n <ng-template [ngTemplateOutlet]=\"itemToolbarComponent!.contentTemplateRef\"></ng-template>\n </div>\n }\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n @if (counter) {\n <span\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"('coreGridList.listItemCounterAriaLabel' | fdTranslate: { count: counter })()\"\n >{{ counter }}</span\n >\n }\n @if (type === 'detail' || type === 'detailsAndActive') {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"edit\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"('coreGridList.listItemButtonDetailsTitle' | fdTranslate)()\"\n [title]=\"('coreGridList.listItemButtonDetailsTitle' | fdTranslate)()\"\n fdCompact\n (click)=\"_onDetail($event)\"\n ></button>\n }\n @if (selectionMode === 'delete') {\n <button\n fd-button\n fdType=\"transparent\"\n glyph=\"decline\"\n class=\"fd-grid-list__action-button\"\n [attr.aria-label]=\"('coreGridList.listItemButtonDeleteTitle' | fdTranslate)()\"\n [title]=\"('coreGridList.listItemButtonDeleteTitle' | fdTranslate)()\"\n title=\"Delete\"\n fdCompact\n (click)=\"_onDelete($event)\"\n ></button>\n }\n @if (type === 'navigation') {\n <span class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n }\n @if (selectionMode === 'singleSelectRight') {\n <ng-template [ngTemplateOutlet]=\"radio\"></ng-template>\n }\n </div>\n }\n <div class=\"fd-grid-list__item-body\" [class.fd-grid-list__item-body--no-padding]=\"noPadding\">\n <ng-content select=\"[fd-grid-list-item-image]\"></ng-content>\n @if (title || description) {\n <div class=\"fd-grid-list__item-header\">\n @if (title) {\n <div\n role=\"heading\"\n [attr.aria-level]=\"titleLevel\"\n class=\"fd-title fd-title--h4 fd-grid-list__item-title\"\n >\n {{ title }}\n </div>\n }\n @if (description) {\n <span class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n }\n </div>\n }\n @if (body?.templateRef) {\n <div class=\"fd-grid-list__item-content\">\n <ng-template [ngTemplateOutlet]=\"body!.templateRef\"></ng-template>\n </div>\n }\n @if (state || footerBarComponent?.contentTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"itemFooter\"></ng-template>\n }\n </div>\n</div>\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio fd-grid-list__radio-input\"\n [style.display]=\"selectionMode === 'singleSelect' ? 'none' : ''\"\n [id]=\"id + '-radio'\"\n [name]=\"'fd-grid-list-item-toolbar-' + selectionMode\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [value]=\"value\"\n [ngModel]=\"_selectedItem\"\n (ngModelChange)=\"$event && _selectionItem($event)\"\n />\n <label\n class=\"fd-radio__label fd-grid-list__radio-label\"\n [for]=\"id + '-radio'\"\n tabindex=\"-1\"\n (mouseover)=\"_setActive($event, false)\"\n (mouseout)=\"_setActive($event, true)\"\n ></label>\n</ng-template>\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox fd-grid-list__checkbox-input\"\n [id]=\"id + '-checkbox'\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [ngModel]=\"_selectedItem\"\n (click)=\"_checkboxClick($event)\"\n (keydown.escape)=\"_checkboxEscape()\"\n (keydown.shift)=\"_checkboxEscape()\"\n />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\">\n <span class=\"fd-checkbox__checkmark\" aria-hidden=\"true\"></span>\n </label>\n</ng-template>\n<ng-template #itemFooter>\n @if (footerBarComponent || state) {\n <div class=\"fd-grid-list__item-body-actions\">\n @if (footerBarComponent?.contentTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"footerBarComponent!.contentTemplateRef\"></ng-template>\n }\n @if (!footerBarComponent?.contentTemplateRef && state) {\n @if (state === 'error') {\n <span\n fd-object-status\n status=\"negative\"\n [label]=\"('coreGridList.listItemStatusContainsErrors' | fdTranslate)()\"\n [attr.aria-label]=\"('coreGridList.listItemStatusContainsErrors' | fdTranslate)()\"\n ></span>\n }\n @if (state === 'locked') {\n <button\n class=\"fd-grid-list__action-button\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"('coreGridList.listItemStatusLocked' | fdTranslate)()\"\n [attr.aria-label]=\"('coreGridList.listItemStatusLocked' | fdTranslate)()\"\n [attr.data-test-id]=\"('coreGridList.listItemStatusLocked' | fdTranslate)()\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n }\n @if (state === 'draft') {\n <button\n class=\"fd-grid-list__action-button\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"('coreGridList.listItemStatusDraft' | fdTranslate)()\"\n [label]=\"('coreGridList.listItemStatusDraft' | fdTranslate)()\"\n [attr.data-test-id]=\"('coreGridList.listItemStatusDraft' | fdTranslate)()\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n }\n }\n </div>\n }\n</ng-template>\n","import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\n\n@Component({\n selector: 'fd-grid-list-more-btn',\n templateUrl: './grid-list-more-btn.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'fd-col fd-col--12'\n },\n standalone: true\n})\nexport class GridListMoreBtnComponent {\n /** Sets title of the button */\n @Input()\n title: string;\n\n /** Sets the number of total items. */\n @Input()\n totalCount: number;\n\n /** Sets the number of display items. */\n @Input()\n displayCount: number;\n\n /** Event is thrown, when the control button is clicked */\n @Output()\n showMore = new EventEmitter<void>();\n\n /** @hidden */\n _onKeyDown(event: KeyboardEvent): void {\n if (!KeyUtil.isKeyCode(event, [ENTER, SPACE])) {\n return;\n }\n\n event.preventDefault();\n\n this.showMore.emit();\n }\n}\n","<div tabindex=\"0\" role=\"button\" class=\"fd-grid-list__more\" (keydown)=\"_onKeyDown($event)\" (click)=\"showMore.emit()\">\n <h5 class=\"fd-title fd-title--h6 fd-grid-list__more-title\">{{ title }}</h5>\n <p class=\"fd-grid-list__more-description\">{{ '[ ' + displayCount + ' / ' + totalCount + ' ]' }}</p>\n</div>\n","import { ChangeDetectionStrategy, Component, computed, Input, input } from '@angular/core';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\nimport { ToolbarComponent, ToolbarLabelDirective } from '@fundamental-ngx/core/toolbar';\n\n@Component({\n selector: 'fd-grid-list-title-bar',\n templateUrl: './grid-list-title-bar.component.html',\n host: {\n class: 'fd-col fd-col--12'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ToolbarComponent, ToolbarLabelDirective]\n})\nexport class GridListTitleBarComponent {\n /** Sets title of the Grid List */\n @Input()\n title: string;\n\n /**\n * Sets the semantic heading level for the title bar.\n * Renders `role=\"heading\"` with the corresponding `aria-level` attribute.\n * Accepts values 1–6 (as numbers or strings).\n * @default 2\n */\n readonly headingLevel = input<HeadingLevel>(2);\n\n protected readonly normalizedLevel = computed(() => {\n const level = this.headingLevel();\n if (typeof level === 'string') {\n return parseInt(level.replace(/^h/i, ''), 10) || 2;\n }\n return level;\n });\n}\n","<fd-toolbar fdType=\"solid\">\n <span fd-toolbar-label role=\"heading\" [attr.aria-level]=\"normalizedLevel()\">\n {{ title }}\n <ng-content select=\"[fd-grid-list-title-bar-additional-title-item]\"></ng-content>\n </span>\n\n <ng-content></ng-content>\n</fd-toolbar>\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-grid-list-title-bar-additional-title-item]',\n standalone: true\n})\nexport class GridListTitleBarAdditionalTitleItemDirective {}\n","import { DOWN_ARROW, END, HOME, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n SimpleChanges,\n ViewEncapsulation,\n computed,\n inject\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n KeyUtil,\n KeyboardSupportService,\n Nullable,\n RangeSelector,\n RtlService,\n range\n} from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Observable, Subscription, filter } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { parseLayoutPattern } from '../../helpers/parse-layout-pattern';\nimport {\n GridListSelectionActions,\n GridListSelectionEvent,\n GridListSelectionMode\n} from '../../models/grid-list-selection.models';\nimport { GridListItemComponent } from '../grid-list-item/grid-list-item.component';\nimport { GridList } from './grid-list-base.component';\n\nlet gridListUniqueId = 0;\n\n@Component({\n selector: 'fd-grid-list',\n templateUrl: './grid-list.component.html',\n styleUrls: ['./grid-list.component.scss', '../../../../cdk/utils/drag-and-drop/drag-and-drop.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [KeyboardSupportService, { provide: GridList, useExisting: GridListComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class GridListComponent<T> extends GridList<T> implements OnChanges, AfterContentInit, OnDestroy {\n /** id for the Element */\n @Input()\n id = `fd-grid-list-${gridListUniqueId++}`;\n\n /** width of the element */\n @Input()\n width: string;\n\n /** Sets the `aria-label` attribute to the element. */\n @Input()\n ariaLabel: Nullable<string>;\n\n /**\n * Defines the mode of Grid List\n * Modes:\n * - none: Default mode (no selection)\n * - delete: Delete mode (only one list item can be deleted via provided delete button)\n * - singleSelect: Selected item is highlighted but no selection control is visible (only one list item can be selected)\n * - singleSelectLeft: Left-positioned single selection mode (only one list item can be selected)\n * - singleSelectRight: Right-positioned single selection mode (only one list item can be selected)\n * - multiSelect: Multi-selection mode (more than one list item can be selected)\n * */\n @Input()\n selectionMode: GridListSelectionMode = 'none';\n\n /**\n * specify the column layout in the format `XLn-Ln-Mn-Sn` where n is the number of columns and can be different for each size.\n * eg: XL2-L2-M2-S1 would create 2-column layouts for XL, L, and M sizes and single-column layout for S size.\n */\n @Input()\n layoutPattern: string;\n\n /** Event is thrown, when mode is singleSelect, singleSelectLeft, singleSelectRight or multiSelect and item was selected */\n @Output()\n selectionChange = new EventEmitter<GridListSelectionEvent<T>>();\n\n /** @hidden */\n @ContentChildren(GridListItemComponent, { descendants: true })\n set gridListItems(components: QueryList<GridListItemComponent<T>>) {\n this._gridListItems = components;\n this._updateGridListItemsProperties(components);\n }\n\n get gridListItems(): QueryList<GridListItemComponent<T>> {\n return this._gridListItems;\n }\n\n /** @hidden */\n readonly _selectedItems$: Observable<GridListSelectionEvent<T>>;\n\n /** @hidden */\n private _gridListItems: QueryList<GridListItemComponent<T>>;\n\n /** @hidden */\n private readonly _rangeSelector = new RangeSelector();\n\n /** @hidden */\n private readonly _selectedItems: GridListSelectionEvent<T> = {\n added: [],\n index: [],\n removed: [],\n selection: []\n };\n\n /** @hidden */\n private readonly _selectedItemsSubject$ = new BehaviorSubject<GridListSelectionEvent<T>>(this._selectedItems);\n\n /** @hidden */\n private readonly subscription = new Subscription();\n\n /** An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing) */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _cd = inject(ChangeDetectorRef);\n\n /** @hidden */\n private readonly _elRef = inject(ElementRef);\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n private readonly _isRtl = computed<boolean>(() => this._rtlService?.rtl() ?? false);\n\n /** @hidden */\n constructor() {\n super();\n this._selectedItems$ = this._selectedItemsSubject$.asObservable();\n const selectedItemsSub = this._selectedItems$\n .pipe(filter(() => !!this._gridListItems))\n .subscribe(this.selectionChange);\n\n this.subscription.add(selectedItemsSub);\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes.layoutPattern &&\n !changes.layoutPattern.firstChange &&\n changes.layoutPattern.previousValue !== changes.layoutPattern.currentValue\n ) {\n const baseLayoutItemPattern = parseLayoutPattern(this.layoutPattern);\n this._updateGridListItemsProperty('gridLayoutClasses', baseLayoutItemPattern);\n }\n\n if (\n changes.selectionMode &&\n !changes.selectionMode.firstChange &&\n changes.selectionMode.previousValue !== changes.selectionMode.currentValue\n ) {\n this._updateGridListItemsProperty('selectionMode', this.selectionMode);\n }\n }\n\n /** @hidden */\n ngAfterContentInit(): void {\n this._setFirstFocusableItem();\n this._listenOnQueryChange();\n this._cd.detectChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n /**\n * Clears previous selection of the items.\n */\n clearSelection(): void {\n this._selectedItems.added = [];\n this._selectedItems.index = [];\n this._selectedItems.removed = this._selectedItems.selection;\n this._selectedItems.selection = [];\n\n this._selectedItemsSubject$.next(this._selectedItems);\n }\n\n /** @hidden */\n setSelectedItem(\n item: T,\n componentIndex: number,\n action?: GridListSelectionActions | null,\n event?: PointerEvent\n ): void {\n if (!action) {\n this._selectedItems.added = [item];\n const selectedItem = this._selectedItems.selection[0];\n if (selectedItem) {\n this._selectedItems.removed = [selectedItem];\n }\n\n this._selectedItems.selection = [item];\n this._selectedItems.index = [componentIndex];\n\n this._selectedItemsSubject$.next(this._selectedItems);\n\n return;\n }\n\n this._rangeSelector.onRangeElementToggled(componentIndex, event);\n const state = this._rangeSelector.lastRangeSelectionState;\n if (!state) {\n return;\n }\n const itemIndexes = range(state.to - state.from + 1, (i) => state.from + i);\n const selectedItems = itemIndexes.map((idx) => this.gridListItems.get(idx)?.value).filter((v): v is T => !!v);\n const itemsSet = new Set<T>(selectedItems);\n\n if (action === GridListSelectionActions.ADD) {\n this._selectedItems.added = [...itemsSet.values()];\n this._selectedItems.index = [...itemIndexes];\n this._selectedItems.removed = [];\n\n // remove \"itemsSet\" values from selection and add them back from \"itemsSet\"\n // this is needed to avoid duplicates as some of the items can be already selected\n this._selectedItems.selection = this._selectedItems.selection.filter((e) => !itemsSet.has(e));\n this._selectedItems.selection.push(...itemsSet.values());\n }\n\n if (action === GridListSelectionActions.REMOVE) {\n this._selectedItems.added = [];\n this._selectedItems.index = [...itemIndexes];\n this._selectedItems.removed = [...itemsSet.values()];\n\n this._selectedItems.selection = this._selectedItems.selection.filter(\n (selectedItem) => !itemsSet.has(selectedItem)\n );\n }\n\n this._selectedItemsSubject$.next(this._selectedItems);\n }\n\n /** @hidden */\n handleKeydown(event: KeyboardEvent): void {\n this._handleTabKeydown(event);\n if (KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW])) {\n if (event.shiftKey && this.selectionMode === 'multiSelect') {\n this._handleShiftArrowKeydown(event);\n } else {\n this._handleArrowKeydown(event);\n }\n } else if (event.shiftKey && this.selectionMode === 'multiSelect' && KeyUtil.isKeyCode(event, [HOME, END])) {\n this._handleHomeEndKeydown(event);\n }\n }\n /** @hidden */\n private _handleHomeEndKeydown(event: KeyboardEvent): void {\n event.preventDefault();\n let shouldSelect = false;\n let selectionAction;\n const isEndKeydown = KeyUtil.isKeyCode(event, END);\n const loopStartingIndex = isEndKeydown ? 0 : this._gridListItems.length - 1;\n /**\n * Ternary loop - if isEndKeydown is true, loop iterates from zero to the end of the grid list items.\n * If isEndKeydown is false, loop iterates backwards\n **/\n for (\n let index = loopStartingIndex;\n isEndKeydown ? index < this._gridListItems.length : index >= 0;\n isEndKeydown ? index++ : index--\n ) {\n const currentItem = this._gridListItems.toArray()[index];\n if (document.activeElement === currentItem._gridListItem.nativeElement) {\n shouldSelect = true;\n selectionAction = currentItem._selectedItem\n ? GridListSelectionActions.ADD\n : GridListSelectionActions.REMOVE;\n }\n if (shouldSelect) {\n this.setSelectedItem(currentItem as any, index, selectionAction);\n }\n }\n const itemToFocus = isEndKeydown\n ? this._gridListItems.last._gridListItem\n : this._gridListItems.first._gridListItem;\n itemToFocus.nativeElement.focus();\n }\n\n /** @hidden */\n private _handleTabKeydown(event: KeyboardEvent): void {\n if (KeyUtil.isKeyCode(event, TAB) && !event.shiftKey) {\n const isFocused = this._gridListItems\n .toArray()\n .some((item) => item._gridListItem.nativeElement.contains(document.activeElement));\n const isChildFocused = this._gridListItems\n .toArray()\n .some((item) => item._gridListItem.nativeElement.querySelector(':focus'));\n if (isFocused && !isChildFocused) {\n this._gridListItems.forEach((item) => {\n const interactiveElements = item._gridListItem.nativeElement.querySelectorAll(\n 'a, button, input, select, textarea'\n );\n\n // Set tabindex to -1 for all interactive elements in the grid\n interactiveElements.forEach((element) => {\n element.setAttribute('tabindex', '-1');\n });\n });\n return;\n } else {\n this._gridListItems.forEach((item) => {\n const interactiveElements = item._gridListItem.nativeElement.querySelectorAll(\n 'a, button, input, select, textarea'\n );\n interactiveElements.forEach((element) => {\n element.setAttribute('tabindex', '0');\n });\n });\n return;\n }\n }\n }\n\n /** @hidden */\n private _handleShiftArrowKeydown(event: KeyboardEvent): void {\n event.preventDefault();\n const activeElement = document.activeElement as HTMLElement;\n\n const currentItemIndex = this._getCurrentItemIndex(activeElement);\n if (currentItemIndex === -1) {\n return;\n }\n\n const indexToFocus = this._calculateIndexToFocus(event, currentItemIndex);\n if (indexToFocus === undefined) {\n return;\n }\n\n // Persist the selection state from the current item to the next item\n this._persistSelectionState(currentItemIndex, indexToFocus);\n\n // Focus the new item\n this._focusItemAtIndex(indexToFocus, activeElement);\n }\n\n /** @hidden */\n private _handleArrowKeydown(event: KeyboardEvent, isShiftPressed = false): void {\n event.preventDefault();\n const activeElement = document.activeElement as HTMLElement;\n\n const currentItemIndex = this._getCurrentItemIndex(activeElement);\n if (currentItemIndex === -1) {\n return;\n }\n\n const indexToFocus = this._calculateIndexToFocus(event, currentItemIndex);\n if (indexToFocus === undefined) {\n return;\n }\n\n if (isShiftPressed) {\n this._toggleSelection(indexToFocus);\n }\n\n this._focusItemAtIndex(indexToFocus, activeElement);\n }\n\n /** hidden */\n private _calculateIndexToFocus(event: KeyboardEvent, currentItemIndex: number): number | undefined {\n const itemsPerRow = this._getItemsPerRow(\n this._gridListItems.toArray()[currentItemIndex]._gridListItem.nativeElement\n );\n if (KeyUtil.isKeyCode(event, LEFT_ARROW) || (this._isRtl() && KeyUtil.isKeyCode(event, [RIGHT_ARROW]))) {\n return currentItemIndex - 1;\n } else if (KeyUtil.isKeyCode(event, RIGHT_ARROW) || (this._isRtl() && KeyUtil.isKeyCode(event, [LEFT_ARROW]))) {\n return currentItemIndex + 1;\n } else if (KeyUtil.isKeyCode(event, UP_ARROW)) {\n return currentItemIndex - itemsPerRow;\n } else if (KeyUtil.isKeyCode(event, DOWN_ARROW)) {\n return currentItemIndex + itemsPerRow;\n }\n return undefined;\n }\n\n /** hidden */\n private _persistSelectionState(currentIndex: number, indexToFocus: number): void {\n const currentItem = this._gridListItems.toArray()[currentIndex];\n const nextItem = this._gridListItems.toArray()[indexToFocus];\n\n // Persist the selection state from the current item to the next item\n if (currentItem._selectedItem) {\n // If the current item is selected, ensure the next item is selected as well\n if (!nextItem._selectedItem) {\n this.setSelectedItem(nextItem as any, indexToFocus, GridListSelectionActions.ADD);\n }\n } else {\n // If the current item is not selected, ensure the next item remains not selected\n if (nextItem._selectedItem) {\n this.setSelectedItem(nextItem as any, indexToFocus, GridListSelectionActions.REMOVE);\n }\n }\n }\n\n /** hidden */\n private _getCurrentItemIndex(activeElement: HTMLElement): number {\n return this._gridListItems\n .toArray()\n .findIndex((item) => item._gridListItem.nativeElement.contains(activeElement));\n }\n\n /** hidden */\n private _focusItemAtIndex(indexToFocus: number, activeElement: HTMLElement): void {\n if (indexToFocus >= 0 && indexToFocus < this._gridListItems.length) {\n const itemToFocus = this._gridListItems.toArray()[indexToFocus];\n if (itemToFocus && itemToFocus._gridListItem) {\n const elementToFocus = itemToFocus._gridListItem.nativeElement?.parentElement?.querySelector(\n activeElement.tagName\n ) as HTMLElement;\n if (elementToFocus) {\n elementToFocus.focus();\n }\n }\n }\n }\n\n /** hidden */\n private _toggleSelection(indexToFocus: number): void {\n const currentItem = this._gridListItems.toArray()[indexToFocus];\n const selectionAction = currentItem._selectedItem\n ? GridListSelectionActions.REMOVE\n : GridListSelectionActions.ADD;\n\n this.setSelectedItem(currentItem as any, indexToFocus, selectionAction);\n }\n\n /** @hidden */\n private _listenOnQueryChange(): void {\n this._gridListItems.changes.pipe(startWith(0), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n setTimeout(() => {\n this._setFirstFocusableItem();\n });\n });\n }\n\n /** @hidden */\n private _setFirstFocusableItem(): void {\n this._gridListItems.toArray().forEach((item, index) => {\n item.tabIndex.set(index === 0 ? 0 : -1);\n });\n }\n\n /** @hidden */\n private _getItemsPerRow(activeElement: HTMLDivElement): number {\n const itemWidth = activeElement.getBoundingClientRect().width;\n const containerWidth = this._elRef.nativeElement.getBoundingClientRect().width;\n return Math.floor(containerWidth / itemWidth);\n }\n\n /** @hidden */\n private _updateGridListItemsProperties(components: QueryList<GridListItemComponent<T>>): void {\n const layoutPattern = this.layoutPattern ? this.layoutPattern : 'XL4-L3-M2-S1';\n const baseLayoutItemPattern = parseLayoutPattern(layoutPattern);\n\n components.forEach((component, index) => {\n if (component._index !== index) {\n component._index = index;\n }\n\n if (!component.selectionMode) {\n component.selectionMode = this.selectionMode;\n }\n\n if (!component.layoutItemPattern) {\n component.gridLayoutClasses = baseLayoutItemPattern;\n }\n });\n }\n\n /** @hidden */\n private _updateGridListItemsProperty(key: string, value: string | string[]): void {\n this._gridListItems.forEach((componenet) => {\n componenet[key] = value;\n });\n }\n}\n","<div\n [id]=\"id\"\n [style.width]=\"width\"\n class=\"fd-grid-list\"\n [attr.aria-label]=\"ariaLabel\"\n [class.fd-grid-list--mode-delete]=\"selectionMode === 'delete'\"\n [class.fd-grid-list--mode-single-select]=\"selectionMode === 'singleSelect'\"\n [class.fd-grid-list--mode-single-select-left]=\"selectionMode === 'singleSelectLeft'\"\n [class.fd-grid-list--mode-single-select-right]=\"selectionMode === 'singleSelectRight'\"\n [class.fd-grid-list--mode-multi-select]=\"selectionMode === 'multiSelect'\"\n (keydown)=\"handleKeydown($event)\"\n>\n <div class=\"fd-container\" role=\"listbox\">\n <div class=\"fd-row\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fd-grid-list-item-image]',\n host: {\n class: 'fd-grid-list__item-image'\n },\n standalone: true\n})\nexport class GridListItemImageDirective {}\n","import { NgModule } from '@angular/core';\nimport { AvatarModule } from '@fundamental-ngx/core/avatar';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { ToolbarModule } from '@fundamental-ngx/core/toolbar';\nimport { GridListFilterBarComponent } from './components/grid-list-filter-bar/grid-list-filter-bar.component';\nimport { GridListFooterComponent } from './components/grid-list-footer/grid-list-footer.component';\nimport { GridListGroupHeaderComponent } from './components/grid-list-group-header/grid-list-group-header.component';\nimport { GridListItemFooterBarComponent } from './components/grid-list-item-footer-bar/grid-list-item-footer-bar.component';\nimport { GridListItemToolbarComponent } from './components/grid-list-item-toolbar/grid-list-item-toolbar.component';\nimport { GridListItemComponent } from './components/grid-list-item/grid-list-item.component';\nimport { GridListMoreBtnComponent } from './components/grid-list-more-btn/grid-list-more-btn.component';\nimport { GridListTitleBarSpacerComponent } from './components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component';\nimport { GridListTitleBarComponent } from './components/grid-list-title-bar/grid-list-title-bar.component';\nimport { GridListTitleBarAdditionalTitleItemDirective } from './components/grid-list-title-bar/grid-list-title-bar.directive';\nimport { GridListComponent } from './components/grid-list/grid-list.component';\nimport { GridListItemBodyDirective } from './directives/grid-list-item-body.directive';\nimport { GridListItemImageDirective } from './directives/grid-list-item-image.directive';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n ToolbarModule,\n ButtonModule,\n AvatarModule,\n GridListComponent,\n GridListItemComponent,\n GridListTitleBarComponent,\n GridListFilterBarComponent,\n GridListMoreBtnComponent,\n GridListFooterComponent,\n GridListItemFooterBarComponent,\n GridListItemToolbarComponent,\n GridListGroupHeaderComponent,\n GridListTitleBarSpacerComponent,\n GridListTitleBarAdditionalTitleItemDirective,\n GridListItemImageDirective,\n GridListItemBodyDirective\n ],\n exports: [\n GridListComponent,\n GridListItemComponent,\n GridListTitleBarComponent,\n GridListFilterBarComponent,\n GridListMoreBtnComponent,\n GridListFooterComponent,\n GridListItemFooterBarComponent,\n GridListItemToolbarComponent,\n GridListGroupHeaderComponent,\n GridListTitleBarSpacerComponent,\n GridListTitleBarAdditionalTitleItemDirective,\n GridListItemImageDirective,\n GridListItemBodyDirective\n ]\n})\nexport class GridListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.GridList"],"mappings":"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"}
|