@fundamental-ngx/core 0.40.2-rc.6 → 0.40.2-rc.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-grid-list.mjs","sources":["../../../../libs/core/src/lib/grid-list/helpers/parse-layout-pattern.ts","../../../../libs/core/src/lib/grid-list/directives/grid-list-item-body.directive.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.html","../../../../libs/core/src/lib/grid-list/models/grid-list-selection.models.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list/grid-list-base.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item/grid-list-item.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item/grid-list-item.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list/grid-list.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list/grid-list.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-footer/grid-list-footer.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-footer/grid-list-footer.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-group-header/grid-list-group-header.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-group-header/grid-list-group-header.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-title-bar/grid-list-title-bar.directive.ts","../../../../libs/core/src/lib/grid-list/directives/grid-list-item-image.directive.ts","../../../../libs/core/src/lib/grid-list/grid-list.module.ts","../../../../libs/core/src/lib/grid-list/fundamental-ngx-core-grid-list.ts"],"sourcesContent":["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","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})\nexport class GridListItemBodyDirective {\n /** @hidden */\n constructor(public readonly templateRef: TemplateRef<any>) {}\n}\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})\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","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 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 { Component, ViewChild, TemplateRef, ChangeDetectionStrategy } 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})\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 { 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 { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ToolbarSpacerComponent } from '@fundamental-ngx/core/toolbar';\n\n@Component({\n selector: 'fd-grid-list-title-bar-spacer',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GridListTitleBarSpacerComponent extends ToolbarSpacerComponent {}\n","import {\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} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { GridListItemBodyDirective } from '../../directives/grid-list-item-body.directive';\nimport { parseLayoutPattern } from '../../helpers/parse-layout-pattern';\nimport { GridListItemToolbarComponent } from '../grid-list-item-toolbar/grid-list-item-toolbar.component';\nimport { GridListSelectionMode, GridListSelectionActions } from '../../models/grid-list-selection.models';\nimport { GridListItemFooterBarComponent } from '../grid-list-item-footer-bar/grid-list-item-footer-bar.component';\nimport { GridList } from './../grid-list/grid-list-base.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\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 styleUrls: ['./grid-list-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\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()\n set selected(value: Nullable<boolean>) {\n this._selected = coerceBooleanProperty(value);\n }\n\n get selected(): boolean {\n return this._selected;\n }\n\n /** @hidden */\n private _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 get type(): GridListItemType {\n return this._type;\n }\n\n /** @hidden */\n private _type: GridListItemType = 'inactive';\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 /** Description of the item */\n @Input()\n description: string;\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, 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 * 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 get gridLayoutClasses(): string[] {\n return this._gridLayoutClasses;\n }\n\n /** @hidden */\n @ContentChild(GridListItemFooterBarComponent)\n footerBarComponent: GridListItemFooterBarComponent;\n\n /** @hidden */\n @ContentChild(GridListItemToolbarComponent)\n itemToolbarComponent: GridListItemToolbarComponent;\n\n /** @hidden */\n @ContentChild(GridListItemBodyDirective)\n body: GridListItemBodyDirective;\n\n /** @hidden */\n _selectedItem?: T;\n\n /** @hidden */\n set selectionMode(mode: GridListSelectionMode | undefined) {\n this._selectionMode = mode;\n\n if (mode !== 'delete' && mode !== '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 = this.selectionMode !== 'multiSelect' ? null : GridListSelectionActions.ADD;\n\n this._gridList.setSelectedItem(this.value, this._index, action);\n }\n\n this._cd.detectChanges();\n }\n get selectionMode(): GridListSelectionMode | undefined {\n return this._selectionMode;\n }\n\n /** @hidden */\n _index?: number;\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 constructor(\n private readonly _cd: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _render: Renderer2,\n private readonly _gridList: GridList<T>\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 _selectionItem(value: boolean | number | T, event?: MouseEvent): void {\n if (!this.value || this._index == null) {\n return;\n }\n const action =\n this.selectionMode !== 'multiSelect'\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 return;\n }\n\n if (this.type === 'navigation') {\n this._onNavigate(event);\n return;\n }\n\n this.press.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _onKeyDown(event: KeyboardEvent): void {\n const target = event.target as HTMLDivElement;\n\n const isSelectionKeyDown = KeyUtil.isKeyCode(event, [ENTER, SPACE]);\n\n if (isSelectionKeyDown && this.selectionMode === 'none') {\n this.press.emit(this._outputEventValue);\n }\n\n if (!isSelectionKeyDown || this.selectionMode === 'none' || !target.classList.contains('fd-grid-list__item')) {\n return;\n }\n\n this._preventDefault(event);\n\n if (this.selectionMode === 'multiSelect') {\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 );\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=\"0\"\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 (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 <span\n *ngIf=\"status\"\n class=\"fd-grid-list__highlight\"\n [class.fd-grid-list__highlight--positive]=\"status === 'success'\"\n [class.fd-grid-list__highlight--negative]=\"status === 'warning'\"\n [class.fd-grid-list__highlight--critical]=\"status === 'error'\"\n [class.fd-grid-list__highlight--neutral]=\"status === 'neutral'\"\n [attr.aria-label]=\"'coreGridList.listItemStatusAriaLabel' | fdTranslate : { status: status }\"\n ></span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelect'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-toolbar fd-grid-list__item-toolbar\"\n *ngIf=\"\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n \"\n >\n <ng-container *ngIf=\"selectionMode === 'singleSelectLeft'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"selectionMode === 'multiSelect'\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"itemToolbarComponent?.contentTemplateRef\">\n <div class=\"fd-toolbar--extra-content\">\n <ng-container *ngTemplateOutlet=\"itemToolbarComponent.contentTemplateRef\"></ng-container>\n </div>\n </ng-container>\n\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n\n <span\n *ngIf=\"counter\"\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"'coreGridList.listItemCounterAriaLabel' | fdTranslate : { count: counter }\"\n [innerText]=\"counter\"\n ></span>\n\n <button\n *ngIf=\"type === 'detail' || type === 'detailsAndActive'\"\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 <button\n *ngIf=\"selectionMode === 'delete'\"\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 <span *ngIf=\"type === 'navigation'\" class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelectRight'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\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\n <div *ngIf=\"title || description\" class=\"fd-grid-list__item-header\">\n <h4 *ngIf=\"title\" fd-title>{{ title }}</h4>\n <span *ngIf=\"description\" class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n </div>\n\n <div *ngIf=\"body?.templateRef\" class=\"fd-grid-list__item-content\">\n <ng-container [ngTemplateOutlet]=\"body.templateRef\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"state || footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"itemFooter\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio is-compact 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\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox is-compact 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 />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\"></label>\n</ng-template>\n\n<ng-template #itemFooter>\n <div class=\"fd-grid-list__item-body-actions\" *ngIf=\"footerBarComponent || state\">\n <ng-container *ngIf=\"footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"footerBarComponent.contentTemplateRef\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!footerBarComponent?.contentTemplateRef && state\">\n <span\n *ngIf=\"state === 'error'\"\n fd-object-status\n status=\"negative\"\n [label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n ></span>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'locked'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'draft'\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n [label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n </ng-container>\n </div>\n</ng-template>\n","import {\n Component,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n Input,\n OnChanges,\n SimpleChanges,\n ChangeDetectorRef,\n EventEmitter,\n Output,\n AfterContentInit,\n OnDestroy,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { BehaviorSubject, filter, Subscription } from 'rxjs';\nimport { parseLayoutPattern } from '../../helpers/parse-layout-pattern';\nimport { GridListItemComponent } from '../grid-list-item/grid-list-item.component';\nimport {\n GridListSelectionMode,\n GridListSelectionActions,\n GridListSelectionEvent\n} from './../../models/grid-list-selection.models';\nimport { RangeSelector } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\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/src/lib/utils/drag-and-drop/drag-and-drop.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: GridList, useExisting: GridListComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush\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 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 readonly _selectedItems$ = this._selectedItemsSubject$.asObservable();\n\n /** @hidden */\n private readonly subscription = new Subscription();\n\n /** @hidden */\n constructor(private readonly _cd: ChangeDetectorRef) {\n super();\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._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 = new Array(state.to - state.from + 1).fill(null).map((e, 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 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>\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 { Component, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\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})\nexport class GridListFilterBarComponent {\n /** Event is thrown, when the control button is clicked */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n 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})\nexport class GridListFooterComponent {}\n","<div tabindex=\"0\" class=\"fd-grid-list__footer\">\n <ng-content></ng-content>\n</div>\n","import { Component, Input, ChangeDetectionStrategy } 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})\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 { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\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})\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\" [innerText]=\"title\"></h5>\n <p class=\"fd-grid-list__more-description\" [innerText]=\"'[ ' + displayCount + ' / ' + totalCount + ' ]'\"></p>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\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})\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})\nexport class GridListTitleBarAdditionalTitleItemDirective {}\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})\nexport class GridListItemImageDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { ObjectStatusModule } from '@fundamental-ngx/core/object-status';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { TitleModule } from '@fundamental-ngx/core/title';\nimport { ToolbarModule } from '@fundamental-ngx/core/toolbar';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { I18nModule } from '@fundamental-ngx/i18n';\n\nimport { GridListComponent } from './components/grid-list/grid-list.component';\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 { GridListItemComponent } from './components/grid-list-item/grid-list-item.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 { GridListMoreBtnComponent } from './components/grid-list-more-btn/grid-list-more-btn.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 { GridListTitleBarSpacerComponent } from './components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component';\nimport { GridListItemBodyDirective } from './directives/grid-list-item-body.directive';\nimport { GridListItemImageDirective } from './directives/grid-list-item-image.directive';\n\n@NgModule({\n declarations: [\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 imports: [\n CommonModule,\n FormsModule,\n ButtonModule,\n IconModule,\n TitleModule,\n ToolbarModule,\n ObjectStatusModule,\n I18nModule\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 './public_api';\n"],"names":["i1.GridList","i9.GridListTitleBarSpacerComponent","i1","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-core-grid-list.mjs","sources":["../../../../libs/core/src/lib/grid-list/helpers/parse-layout-pattern.ts","../../../../libs/core/src/lib/grid-list/directives/grid-list-item-body.directive.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item-toolbar/grid-list-item-toolbar.component.html","../../../../libs/core/src/lib/grid-list/models/grid-list-selection.models.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item-footer-bar/grid-list-item-footer-bar.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list/grid-list-base.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item/grid-list-item.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-item/grid-list-item.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list/grid-list.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list/grid-list.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-filter-bar/grid-list-filter-bar.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-footer/grid-list-footer.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-footer/grid-list-footer.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-group-header/grid-list-group-header.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-group-header/grid-list-group-header.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-more-btn/grid-list-more-btn.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.ts","../../../../libs/core/src/lib/grid-list/components/grid-list-title-bar/grid-list-title-bar.component.html","../../../../libs/core/src/lib/grid-list/components/grid-list-title-bar/grid-list-title-bar.directive.ts","../../../../libs/core/src/lib/grid-list/directives/grid-list-item-image.directive.ts","../../../../libs/core/src/lib/grid-list/grid-list.module.ts","../../../../libs/core/src/lib/grid-list/fundamental-ngx-core-grid-list.ts"],"sourcesContent":["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","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})\nexport class GridListItemBodyDirective {\n /** @hidden */\n constructor(public readonly templateRef: TemplateRef<any>) {}\n}\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})\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","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 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 { Component, ViewChild, TemplateRef, ChangeDetectionStrategy } 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})\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 { 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 { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ToolbarSpacerComponent } from '@fundamental-ngx/core/toolbar';\n\n@Component({\n selector: 'fd-grid-list-title-bar-spacer',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GridListTitleBarSpacerComponent extends ToolbarSpacerComponent {}\n","import {\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} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\n\nimport { KeyUtil } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\n\nimport { GridListItemBodyDirective } from '../../directives/grid-list-item-body.directive';\nimport { parseLayoutPattern } from '../../helpers/parse-layout-pattern';\nimport { GridListItemToolbarComponent } from '../grid-list-item-toolbar/grid-list-item-toolbar.component';\nimport { GridListSelectionMode, GridListSelectionActions } from '../../models/grid-list-selection.models';\nimport { GridListItemFooterBarComponent } from '../grid-list-item-footer-bar/grid-list-item-footer-bar.component';\nimport { GridList } from './../grid-list/grid-list-base.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\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 styleUrls: ['./grid-list-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\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()\n set selected(value: Nullable<boolean>) {\n this._selected = coerceBooleanProperty(value);\n }\n\n get selected(): boolean {\n return this._selected;\n }\n\n /** @hidden */\n private _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 get type(): GridListItemType {\n return this._type;\n }\n\n /** @hidden */\n private _type: GridListItemType = 'inactive';\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 /** Description of the item */\n @Input()\n description: string;\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, 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 * 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 get gridLayoutClasses(): string[] {\n return this._gridLayoutClasses;\n }\n\n /** @hidden */\n @ContentChild(GridListItemFooterBarComponent)\n footerBarComponent: GridListItemFooterBarComponent;\n\n /** @hidden */\n @ContentChild(GridListItemToolbarComponent)\n itemToolbarComponent: GridListItemToolbarComponent;\n\n /** @hidden */\n @ContentChild(GridListItemBodyDirective)\n body: GridListItemBodyDirective;\n\n /** @hidden */\n _selectedItem?: T;\n\n /** @hidden */\n set selectionMode(mode: GridListSelectionMode | undefined) {\n this._selectionMode = mode;\n\n if (mode !== 'delete' && mode !== '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 = this.selectionMode !== 'multiSelect' ? null : GridListSelectionActions.ADD;\n\n this._gridList.setSelectedItem(this.value, this._index, action);\n }\n\n this._cd.detectChanges();\n }\n get selectionMode(): GridListSelectionMode | undefined {\n return this._selectionMode;\n }\n\n /** @hidden */\n _index?: number;\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 constructor(\n private readonly _cd: ChangeDetectorRef,\n private readonly _elementRef: ElementRef,\n private readonly _render: Renderer2,\n private readonly _gridList: GridList<T>\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 _selectionItem(value: boolean | number | T, event?: MouseEvent): void {\n if (!this.value || this._index == null) {\n return;\n }\n const action =\n this.selectionMode !== 'multiSelect'\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 return;\n }\n\n if (this.type === 'navigation') {\n this._onNavigate(event);\n return;\n }\n\n this.press.emit(this._outputEventValue);\n }\n\n /** @hidden */\n _onKeyDown(event: KeyboardEvent): void {\n const target = event.target as HTMLDivElement;\n\n const isSelectionKeyDown = KeyUtil.isKeyCode(event, [ENTER, SPACE]);\n\n if (isSelectionKeyDown && this.selectionMode === 'none') {\n this.press.emit(this._outputEventValue);\n }\n\n if (!isSelectionKeyDown || this.selectionMode === 'none' || !target.classList.contains('fd-grid-list__item')) {\n return;\n }\n\n this._preventDefault(event);\n\n if (this.selectionMode === 'multiSelect') {\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 );\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=\"0\"\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 (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 <span\n *ngIf=\"status\"\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 <ng-container *ngIf=\"selectionMode === 'singleSelect'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <div\n class=\"fd-toolbar fd-grid-list__item-toolbar\"\n *ngIf=\"\n counter ||\n itemToolbarComponent?.contentTemplateRef ||\n (type && type !== 'inactive' && type !== 'active') ||\n (selectionMode !== 'none' && selectionMode !== 'singleSelect')\n \"\n >\n <ng-container *ngIf=\"selectionMode === 'singleSelectLeft'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"selectionMode === 'multiSelect'\">\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"itemToolbarComponent?.contentTemplateRef\">\n <div class=\"fd-toolbar--extra-content\">\n <ng-container *ngTemplateOutlet=\"itemToolbarComponent.contentTemplateRef\"></ng-container>\n </div>\n </ng-container>\n\n <fd-grid-list-title-bar-spacer></fd-grid-list-title-bar-spacer>\n\n <span\n *ngIf=\"counter\"\n class=\"fd-grid-list__item-counter\"\n [attr.aria-label]=\"'coreGridList.listItemCounterAriaLabel' | fdTranslate : { count: counter }\"\n [innerText]=\"counter\"\n ></span>\n\n <button\n *ngIf=\"type === 'detail' || type === 'detailsAndActive'\"\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 <button\n *ngIf=\"selectionMode === 'delete'\"\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 <span *ngIf=\"type === 'navigation'\" class=\"fd-grid-list__item-navigation-indicator\">\n <fd-icon glyph=\"navigation-right-arrow\"></fd-icon>\n </span>\n\n <ng-container *ngIf=\"selectionMode === 'singleSelectRight'\">\n <ng-container *ngTemplateOutlet=\"radio\"></ng-container>\n </ng-container>\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\n <div *ngIf=\"title || description\" class=\"fd-grid-list__item-header\">\n <h4 *ngIf=\"title\" fd-title>{{ title }}</h4>\n <span *ngIf=\"description\" class=\"fd-grid-list__item-subtitle\">{{ description }}</span>\n </div>\n\n <div *ngIf=\"body?.templateRef\" class=\"fd-grid-list__item-content\">\n <ng-container [ngTemplateOutlet]=\"body.templateRef\"></ng-container>\n </div>\n\n <ng-container *ngIf=\"state || footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"itemFooter\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #radio>\n <input\n [attr.tabindex]=\"selectionMode === 'singleSelect' ? -1 : 0\"\n type=\"radio\"\n class=\"fd-radio is-compact 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\n<ng-template #checkbox>\n <input\n type=\"checkbox\"\n class=\"fd-checkbox is-compact 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 />\n <label class=\"fd-checkbox__label fd-grid-list__checkbox-label\" [for]=\"id + '-checkbox'\" tabindex=\"-1\"></label>\n</ng-template>\n\n<ng-template #itemFooter>\n <div class=\"fd-grid-list__item-body-actions\" *ngIf=\"footerBarComponent || state\">\n <ng-container *ngIf=\"footerBarComponent?.contentTemplateRef\">\n <ng-container *ngTemplateOutlet=\"footerBarComponent.contentTemplateRef\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"!footerBarComponent?.contentTemplateRef && state\">\n <span\n *ngIf=\"state === 'error'\"\n fd-object-status\n status=\"negative\"\n [label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusContainsErrors' | fdTranslate\"\n ></span>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'locked'\"\n fd-button\n fdType=\"transparent\"\n glyph=\"private\"\n [label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n [attr.aria-label]=\"'coreGridList.listItemStatusLocked' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnLocked($event)\"\n ></button>\n\n <button\n class=\"fd-grid-list__action-button\"\n *ngIf=\"state === 'draft'\"\n fd-button\n fdType=\"transparent\"\n [attr.aria-label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n [label]=\"'coreGridList.listItemStatusDraft' | fdTranslate\"\n fdCompact\n (click)=\"_clickOnDraft($event)\"\n ></button>\n </ng-container>\n </div>\n</ng-template>\n","import {\n Component,\n ContentChildren,\n QueryList,\n ViewEncapsulation,\n Input,\n OnChanges,\n SimpleChanges,\n ChangeDetectorRef,\n EventEmitter,\n Output,\n AfterContentInit,\n OnDestroy,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { BehaviorSubject, filter, Subscription } from 'rxjs';\nimport { parseLayoutPattern } from '../../helpers/parse-layout-pattern';\nimport { GridListItemComponent } from '../grid-list-item/grid-list-item.component';\nimport {\n GridListSelectionMode,\n GridListSelectionActions,\n GridListSelectionEvent\n} from './../../models/grid-list-selection.models';\nimport { RangeSelector } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\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/src/lib/utils/drag-and-drop/drag-and-drop.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: GridList, useExisting: GridListComponent }],\n changeDetection: ChangeDetectionStrategy.OnPush\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 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 readonly _selectedItems$ = this._selectedItemsSubject$.asObservable();\n\n /** @hidden */\n private readonly subscription = new Subscription();\n\n /** @hidden */\n constructor(private readonly _cd: ChangeDetectorRef) {\n super();\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._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 = new Array(state.to - state.from + 1).fill(null).map((e, 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 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>\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 { Component, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\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})\nexport class GridListFilterBarComponent {\n /** Event is thrown, when the control button is clicked */\n @Output()\n // eslint-disable-next-line @angular-eslint/no-output-native\n 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})\nexport class GridListFooterComponent {}\n","<div tabindex=\"0\" class=\"fd-grid-list__footer\">\n <ng-content></ng-content>\n</div>\n","import { Component, Input, ChangeDetectionStrategy } 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})\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 { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { ENTER, SPACE } from '@angular/cdk/keycodes';\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})\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\" [innerText]=\"title\"></h5>\n <p class=\"fd-grid-list__more-description\" [innerText]=\"'[ ' + displayCount + ' / ' + totalCount + ' ]'\"></p>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\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})\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})\nexport class GridListTitleBarAdditionalTitleItemDirective {}\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})\nexport class GridListItemImageDirective {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { ObjectStatusModule } from '@fundamental-ngx/core/object-status';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { TitleModule } from '@fundamental-ngx/core/title';\nimport { ToolbarModule } from '@fundamental-ngx/core/toolbar';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { I18nModule } from '@fundamental-ngx/i18n';\n\nimport { GridListComponent } from './components/grid-list/grid-list.component';\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 { GridListItemComponent } from './components/grid-list-item/grid-list-item.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 { GridListMoreBtnComponent } from './components/grid-list-more-btn/grid-list-more-btn.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 { GridListTitleBarSpacerComponent } from './components/grid-list-title-bar-spacer/grid-list-title-bar-spacer.component';\nimport { GridListItemBodyDirective } from './directives/grid-list-item-body.directive';\nimport { GridListItemImageDirective } from './directives/grid-list-item-image.directive';\n\n@NgModule({\n declarations: [\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 imports: [\n CommonModule,\n FormsModule,\n ButtonModule,\n IconModule,\n TitleModule,\n ToolbarModule,\n ObjectStatusModule,\n I18nModule\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 './public_api';\n"],"names":["i1.GridList","i9.GridListTitleBarSpacerComponent","i1","i2","i3"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, PLATFORM_ID, Directive, Input, HostBinding, NgModule } from '@angular/core';
2
+ import { inject, PLATFORM_ID, Directive, Input, HostBinding, HostListener, NgModule } from '@angular/core';
3
3
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
4
4
  import { DOCUMENT, isPlatformBrowser } from '@angular/common';
5
5
  import scrollbarStyles from 'fundamental-styles/dist/js/scrollbar';
@@ -60,6 +60,10 @@ class ScrollbarDirective {
60
60
  }
61
61
  return this._overflow;
62
62
  }
63
+ /** @hidden */
64
+ onScroll(event) {
65
+ event.stopPropagation();
66
+ }
63
67
  /**
64
68
  * @hidden
65
69
  */
@@ -103,7 +107,7 @@ class ScrollbarDirective {
103
107
  }
104
108
  }
105
109
  ScrollbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ScrollbarDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
106
- ScrollbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: ScrollbarDirective, isStandalone: true, selector: "[fdScrollbar], [fd-scrollbar]", inputs: { noHorizontalScroll: "noHorizontalScroll", noVerticalScroll: "noVerticalScroll", alwaysVisible: "alwaysVisible", overrideTabindex: "overrideTabindex" }, host: { properties: { "attr.tabindex": "this._tabindex", "style.overflow-x": "this._overflowX", "style.overflow-y": "this._overflowY" }, classAttribute: "fd-scrollbar" }, hostDirectives: [{ directive: i1.CdkScrollable }], ngImport: i0 });
110
+ ScrollbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.1", type: ScrollbarDirective, isStandalone: true, selector: "[fdScrollbar], [fd-scrollbar]", inputs: { noHorizontalScroll: "noHorizontalScroll", noVerticalScroll: "noVerticalScroll", alwaysVisible: "alwaysVisible", overrideTabindex: "overrideTabindex" }, host: { listeners: { "scroll": "onScroll($event)" }, properties: { "attr.tabindex": "this._tabindex", "style.overflow-x": "this._overflowX", "style.overflow-y": "this._overflowY" }, classAttribute: "fd-scrollbar" }, hostDirectives: [{ directive: i1.CdkScrollable }], ngImport: i0 });
107
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ScrollbarDirective, decorators: [{
108
112
  type: Directive,
109
113
  args: [{
@@ -131,6 +135,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
131
135
  }], _overflowY: [{
132
136
  type: HostBinding,
133
137
  args: ['style.overflow-y']
138
+ }], onScroll: [{
139
+ type: HostListener,
140
+ args: ['scroll', ['$event']]
134
141
  }] } });
135
142
 
136
143
  class ScrollbarModule {
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-core-scrollbar.mjs","sources":["../../../../libs/core/src/lib/scrollbar/scrollbar.directive.ts","../../../../libs/core/src/lib/scrollbar/scrollbar.module.ts","../../../../libs/core/src/lib/scrollbar/fundamental-ngx-core-scrollbar.ts"],"sourcesContent":["import { Directive, ElementRef, HostBinding, inject, Input, OnDestroy, PLATFORM_ID, Renderer2 } from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport scrollbarStyles from 'fundamental-styles/dist/js/scrollbar';\nimport { CdkScrollable } from '@angular/cdk/overlay';\n\nexport type ScrollbarOverflowOptions = 'auto' | 'scroll' | 'hidden';\n\nlet scrollbarElementsQuantity = 0;\nlet styleSheet: HTMLStyleElement | null = null;\n\n/**\n * The scrollbar directive.\n *\n * Children usage:\n * ```html\n * <div fd-scrollbar>\n * <div fd-scrollbar noVerticalScroll>\n * <div fd-scrollbar [noVerticalScroll]=\"true\">\n * <div fd-scrollbar noHorizontalScroll>\n * <div fd-scrollbar [noHorizontalScroll]=\"true\">\n * ```\n */\n@Directive({\n selector: '[fdScrollbar], [fd-scrollbar]',\n host: {\n class: 'fd-scrollbar'\n },\n hostDirectives: [CdkScrollable],\n standalone: true\n})\nexport class ScrollbarDirective implements OnDestroy {\n /** Whether overflow horizontal content should be hidden. */\n @Input()\n set noHorizontalScroll(value: BooleanInput) {\n this._noHorizontalScroll = coerceBooleanProperty(value);\n }\n\n get noHorizontalScroll(): boolean {\n return this._noHorizontalScroll;\n }\n\n /** Whether overflow vertical content should be hidden. */\n @Input()\n set noVerticalScroll(value: BooleanInput) {\n this._noVerticalScroll = coerceBooleanProperty(value);\n }\n\n get noVerticalScroll(): boolean {\n return this._noVerticalScroll;\n }\n\n /** Whether scrollbars should be visible even if content fits. */\n @Input()\n set alwaysVisible(value: BooleanInput) {\n this._alwaysVisible = coerceBooleanProperty(value);\n }\n\n get alwaysVisible(): boolean {\n return this._alwaysVisible;\n }\n\n /** Whether to force apply tabindex attribute. */\n @Input()\n overrideTabindex = true;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n get _tabindex(): number | null {\n return this.overrideTabindex ? 0 : null;\n }\n\n /** @hidden */\n @HostBinding('style.overflow-x')\n get _overflowX(): ScrollbarOverflowOptions {\n if (this.noHorizontalScroll) {\n return 'hidden';\n }\n\n return this._overflow;\n }\n\n /** @hidden */\n @HostBinding('style.overflow-y')\n get _overflowY(): ScrollbarOverflowOptions {\n if (this.noVerticalScroll) {\n return 'hidden';\n }\n\n return this._overflow;\n }\n\n /** @hidden */\n private _document: Document = inject(DOCUMENT);\n /** @hidden */\n private _noHorizontalScroll = false;\n\n /** @hidden */\n private _noVerticalScroll = false;\n\n /** @hidden */\n private _alwaysVisible = false;\n\n /**\n * @hidden\n */\n constructor(private _elementRef: ElementRef<HTMLElement>, renderer2: Renderer2) {\n scrollbarElementsQuantity++;\n const platform = inject(PLATFORM_ID);\n if (!styleSheet && isPlatformBrowser(platform)) {\n styleSheet = renderer2.createElement('style');\n styleSheet!.innerHTML = scrollbarStyles.cssSource;\n renderer2.appendChild(this._document.head, styleSheet);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (--scrollbarElementsQuantity === 0) {\n styleSheet?.remove();\n styleSheet = null;\n }\n }\n\n /** method to invoke scroll */\n scroll(options: ScrollToOptions): void {\n this._elementRef.nativeElement.scroll(options);\n }\n\n /** @hidden */\n private get _overflow(): ScrollbarOverflowOptions {\n if (this.alwaysVisible) {\n return 'scroll';\n }\n\n return 'auto';\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ScrollbarDirective } from './scrollbar.directive';\n\n@NgModule({\n imports: [ScrollbarDirective],\n exports: [ScrollbarDirective]\n})\nexport class ScrollbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;AAQA,IAAI,yBAAyB,GAAG,CAAC,CAAC;AAClC,IAAI,UAAU,GAA4B,IAAI,CAAC;AAE/C;;;;;;;;;;;AAWG;MASU,kBAAkB,CAAA;;IAE3B,IACI,kBAAkB,CAAC,KAAmB,EAAA;AACtC,QAAA,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC3D;AAED,IAAA,IAAI,kBAAkB,GAAA;QAClB,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACnC;;IAGD,IACI,gBAAgB,CAAC,KAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACzD;AAED,IAAA,IAAI,gBAAgB,GAAA;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;;IAGD,IACI,aAAa,CAAC,KAAmB,EAAA;AACjC,QAAA,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACtD;AAED,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;;AAOD,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,CAAC;KAC3C;;AAGD,IAAA,IACI,UAAU,GAAA;QACV,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,OAAO,QAAQ,CAAC;AACnB,SAAA;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;AAGD,IAAA,IACI,UAAU,GAAA;QACV,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,OAAO,QAAQ,CAAC;AACnB,SAAA;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;AAaD;;AAEG;IACH,WAAoB,CAAA,WAAoC,EAAE,SAAoB,EAAA;AAA1D,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;;AA1CxD,QAAA,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;;AA6BhB,QAAA,IAAA,CAAA,SAAS,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;;AAEvC,QAAA,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;;AAG5B,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;;AAG1B,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAM3B,QAAA,yBAAyB,EAAE,CAAC;AAC5B,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE;AAC5C,YAAA,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,YAAA,UAAW,CAAC,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC;YAClD,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC1D,SAAA;KACJ;;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,EAAE,yBAAyB,KAAK,CAAC,EAAE;AACnC,YAAA,UAAU,aAAV,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAV,UAAU,CAAE,MAAM,EAAE,CAAC;YACrB,UAAU,GAAG,IAAI,CAAC;AACrB,SAAA;KACJ;;AAGD,IAAA,MAAM,CAAC,OAAwB,EAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAClD;;AAGD,IAAA,IAAY,SAAS,GAAA;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,OAAO,QAAQ,CAAC;AACnB,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;;+GAzGQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,IAAI,EAAE;AACF,wBAAA,KAAK,EAAE,cAAc;AACxB,qBAAA;oBACD,cAAc,EAAE,CAAC,aAAa,CAAC;AAC/B,oBAAA,UAAU,EAAE,IAAI;iBACnB,CAAA;yHAIO,kBAAkB,EAAA,CAAA;sBADrB,KAAK;gBAWF,gBAAgB,EAAA,CAAA;sBADnB,KAAK;gBAWF,aAAa,EAAA,CAAA;sBADhB,KAAK;gBAWN,gBAAgB,EAAA,CAAA;sBADf,KAAK;gBAKF,SAAS,EAAA,CAAA;sBADZ,WAAW;uBAAC,eAAe,CAAA;gBAOxB,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,kBAAkB,CAAA;gBAW3B,UAAU,EAAA,CAAA;sBADb,WAAW;uBAAC,kBAAkB,CAAA;;;MC3EtB,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAf,eAAe,EAAA,OAAA,EAAA,CAHd,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAClB,kBAAkB,CAAA,EAAA,CAAA,CAAA;6GAEnB,eAAe,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,kBAAkB,CAAC;oBAC7B,OAAO,EAAE,CAAC,kBAAkB,CAAC;iBAChC,CAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-core-scrollbar.mjs","sources":["../../../../libs/core/src/lib/scrollbar/scrollbar.directive.ts","../../../../libs/core/src/lib/scrollbar/scrollbar.module.ts","../../../../libs/core/src/lib/scrollbar/fundamental-ngx-core-scrollbar.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n inject,\n Input,\n OnDestroy,\n PLATFORM_ID,\n Renderer2\n} from '@angular/core';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport scrollbarStyles from 'fundamental-styles/dist/js/scrollbar';\nimport { CdkScrollable } from '@angular/cdk/overlay';\n\nexport type ScrollbarOverflowOptions = 'auto' | 'scroll' | 'hidden';\n\nlet scrollbarElementsQuantity = 0;\nlet styleSheet: HTMLStyleElement | null = null;\n\n/**\n * The scrollbar directive.\n *\n * Children usage:\n * ```html\n * <div fd-scrollbar>\n * <div fd-scrollbar noVerticalScroll>\n * <div fd-scrollbar [noVerticalScroll]=\"true\">\n * <div fd-scrollbar noHorizontalScroll>\n * <div fd-scrollbar [noHorizontalScroll]=\"true\">\n * ```\n */\n@Directive({\n selector: '[fdScrollbar], [fd-scrollbar]',\n host: {\n class: 'fd-scrollbar'\n },\n hostDirectives: [CdkScrollable],\n standalone: true\n})\nexport class ScrollbarDirective implements OnDestroy {\n /** Whether overflow horizontal content should be hidden. */\n @Input()\n set noHorizontalScroll(value: BooleanInput) {\n this._noHorizontalScroll = coerceBooleanProperty(value);\n }\n\n get noHorizontalScroll(): boolean {\n return this._noHorizontalScroll;\n }\n\n /** Whether overflow vertical content should be hidden. */\n @Input()\n set noVerticalScroll(value: BooleanInput) {\n this._noVerticalScroll = coerceBooleanProperty(value);\n }\n\n get noVerticalScroll(): boolean {\n return this._noVerticalScroll;\n }\n\n /** Whether scrollbars should be visible even if content fits. */\n @Input()\n set alwaysVisible(value: BooleanInput) {\n this._alwaysVisible = coerceBooleanProperty(value);\n }\n\n get alwaysVisible(): boolean {\n return this._alwaysVisible;\n }\n\n /** Whether to force apply tabindex attribute. */\n @Input()\n overrideTabindex = true;\n\n /** @hidden */\n @HostBinding('attr.tabindex')\n get _tabindex(): number | null {\n return this.overrideTabindex ? 0 : null;\n }\n\n /** @hidden */\n @HostBinding('style.overflow-x')\n get _overflowX(): ScrollbarOverflowOptions {\n if (this.noHorizontalScroll) {\n return 'hidden';\n }\n\n return this._overflow;\n }\n\n /** @hidden */\n @HostBinding('style.overflow-y')\n get _overflowY(): ScrollbarOverflowOptions {\n if (this.noVerticalScroll) {\n return 'hidden';\n }\n\n return this._overflow;\n }\n\n /** @hidden */\n private _document: Document = inject(DOCUMENT);\n /** @hidden */\n private _noHorizontalScroll = false;\n\n /** @hidden */\n private _noVerticalScroll = false;\n\n /** @hidden */\n private _alwaysVisible = false;\n\n /** @hidden */\n @HostListener('scroll', ['$event'])\n onScroll(event: Event): void {\n event.stopPropagation();\n }\n\n /**\n * @hidden\n */\n constructor(private _elementRef: ElementRef<HTMLElement>, renderer2: Renderer2) {\n scrollbarElementsQuantity++;\n const platform = inject(PLATFORM_ID);\n if (!styleSheet && isPlatformBrowser(platform)) {\n styleSheet = renderer2.createElement('style');\n styleSheet!.innerHTML = scrollbarStyles.cssSource;\n renderer2.appendChild(this._document.head, styleSheet);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n if (--scrollbarElementsQuantity === 0) {\n styleSheet?.remove();\n styleSheet = null;\n }\n }\n\n /** method to invoke scroll */\n scroll(options: ScrollToOptions): void {\n this._elementRef.nativeElement.scroll(options);\n }\n\n /** @hidden */\n private get _overflow(): ScrollbarOverflowOptions {\n if (this.alwaysVisible) {\n return 'scroll';\n }\n\n return 'auto';\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ScrollbarDirective } from './scrollbar.directive';\n\n@NgModule({\n imports: [ScrollbarDirective],\n exports: [ScrollbarDirective]\n})\nexport class ScrollbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}