@fundamental-ngx/core 0.35.2-rc.12 → 0.35.2-rc.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/avatar.component.d.ts +5 -4
  5. package/avatar/esm2020/avatar.component.mjs +21 -11
  6. package/avatar/fesm2015/fundamental-ngx-core-avatar.mjs +22 -10
  7. package/avatar/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
  8. package/avatar/fesm2020/fundamental-ngx-core-avatar.mjs +20 -10
  9. package/avatar/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
  10. package/avatar/package.json +1 -1
  11. package/avatar-group/package.json +1 -1
  12. package/bar/package.json +1 -1
  13. package/breadcrumb/package.json +1 -1
  14. package/busy-indicator/package.json +1 -1
  15. package/button/package.json +1 -1
  16. package/calendar/package.json +1 -1
  17. package/card/package.json +1 -1
  18. package/carousel/package.json +1 -1
  19. package/checkbox/package.json +1 -1
  20. package/combobox/package.json +1 -1
  21. package/content-density/package.json +3 -3
  22. package/date-picker/package.json +1 -1
  23. package/datetime/package.json +1 -1
  24. package/datetime-picker/package.json +1 -1
  25. package/dialog/package.json +1 -1
  26. package/dynamic-page/package.json +1 -1
  27. package/dynamic-side-content/package.json +1 -1
  28. package/esm2020/avatar/avatar.component.mjs +21 -11
  29. package/esm2020/grid-list/components/grid-list-item/grid-list-item.component.mjs +12 -8
  30. package/esm2020/input-group/input-group.component.mjs +7 -6
  31. package/esm2020/list/list-item/list-item.component.mjs +12 -7
  32. package/esm2020/multi-input/multi-input.component.mjs +3 -3
  33. package/esm2020/tests/when-stable.mjs +11 -3
  34. package/esm2020/token/token.component.mjs +15 -3
  35. package/esm2020/token/tokenizer.component.mjs +16 -39
  36. package/facets/package.json +1 -1
  37. package/feed-input/package.json +1 -1
  38. package/feed-list-item/package.json +1 -1
  39. package/fesm2015/fundamental-ngx-core-avatar.mjs +22 -10
  40. package/fesm2015/fundamental-ngx-core-avatar.mjs.map +1 -1
  41. package/fesm2015/fundamental-ngx-core-grid-list.mjs +11 -7
  42. package/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
  43. package/fesm2015/fundamental-ngx-core-input-group.mjs +6 -5
  44. package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
  45. package/fesm2015/fundamental-ngx-core-list.mjs +12 -7
  46. package/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  47. package/fesm2015/fundamental-ngx-core-multi-input.mjs +2 -2
  48. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  49. package/fesm2015/fundamental-ngx-core-tests.mjs +10 -2
  50. package/fesm2015/fundamental-ngx-core-tests.mjs.map +1 -1
  51. package/fesm2015/fundamental-ngx-core-token.mjs +29 -40
  52. package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
  53. package/fesm2020/fundamental-ngx-core-avatar.mjs +20 -10
  54. package/fesm2020/fundamental-ngx-core-avatar.mjs.map +1 -1
  55. package/fesm2020/fundamental-ngx-core-grid-list.mjs +11 -7
  56. package/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
  57. package/fesm2020/fundamental-ngx-core-input-group.mjs +6 -5
  58. package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
  59. package/fesm2020/fundamental-ngx-core-list.mjs +11 -6
  60. package/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  61. package/fesm2020/fundamental-ngx-core-multi-input.mjs +2 -2
  62. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  63. package/fesm2020/fundamental-ngx-core-tests.mjs +10 -2
  64. package/fesm2020/fundamental-ngx-core-tests.mjs.map +1 -1
  65. package/fesm2020/fundamental-ngx-core-token.mjs +29 -40
  66. package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
  67. package/file-uploader/package.json +1 -1
  68. package/fixed-card-layout/package.json +1 -1
  69. package/flexible-column-layout/package.json +1 -1
  70. package/form/package.json +1 -1
  71. package/formatted-text/package.json +1 -1
  72. package/grid-list/components/grid-list-item/grid-list-item.component.d.ts +5 -3
  73. package/grid-list/esm2020/components/grid-list-item/grid-list-item.component.mjs +12 -8
  74. package/grid-list/fesm2015/fundamental-ngx-core-grid-list.mjs +11 -7
  75. package/grid-list/fesm2015/fundamental-ngx-core-grid-list.mjs.map +1 -1
  76. package/grid-list/fesm2020/fundamental-ngx-core-grid-list.mjs +11 -7
  77. package/grid-list/fesm2020/fundamental-ngx-core-grid-list.mjs.map +1 -1
  78. package/grid-list/package.json +1 -1
  79. package/icon/package.json +1 -1
  80. package/illustrated-message/package.json +1 -1
  81. package/infinite-scroll/package.json +1 -1
  82. package/info-label/package.json +1 -1
  83. package/inline-help/package.json +1 -1
  84. package/input-group/esm2020/input-group.component.mjs +7 -6
  85. package/input-group/fesm2015/fundamental-ngx-core-input-group.mjs +6 -5
  86. package/input-group/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
  87. package/input-group/fesm2020/fundamental-ngx-core-input-group.mjs +6 -5
  88. package/input-group/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
  89. package/input-group/package.json +1 -1
  90. package/layout-grid/package.json +1 -1
  91. package/layout-panel/package.json +1 -1
  92. package/link/package.json +1 -1
  93. package/list/esm2020/list-item/list-item.component.mjs +12 -7
  94. package/list/fesm2015/fundamental-ngx-core-list.mjs +12 -7
  95. package/list/fesm2015/fundamental-ngx-core-list.mjs.map +1 -1
  96. package/list/fesm2020/fundamental-ngx-core-list.mjs +11 -6
  97. package/list/fesm2020/fundamental-ngx-core-list.mjs.map +1 -1
  98. package/list/list-item/list-item.component.d.ts +2 -0
  99. package/list/package.json +1 -1
  100. package/menu/package.json +1 -1
  101. package/message-box/package.json +1 -1
  102. package/message-strip/package.json +1 -1
  103. package/message-toast/package.json +1 -1
  104. package/micro-process-flow/package.json +1 -1
  105. package/mobile-mode/package.json +1 -1
  106. package/multi-input/esm2020/multi-input.component.mjs +3 -3
  107. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs +2 -2
  108. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  109. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs +2 -2
  110. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  111. package/multi-input/package.json +1 -1
  112. package/nested-list/package.json +1 -1
  113. package/notification/package.json +1 -1
  114. package/object-identifier/package.json +1 -1
  115. package/object-marker/package.json +1 -1
  116. package/object-number/package.json +1 -1
  117. package/object-status/package.json +1 -1
  118. package/overflow-layout/package.json +13 -13
  119. package/package.json +1 -1
  120. package/pagination/package.json +1 -1
  121. package/panel/package.json +1 -1
  122. package/popover/package.json +1 -1
  123. package/product-switch/package.json +1 -1
  124. package/progress-indicator/package.json +1 -1
  125. package/quick-view/package.json +1 -1
  126. package/radio/package.json +1 -1
  127. package/rating-indicator/package.json +1 -1
  128. package/resizable-card-layout/package.json +1 -1
  129. package/scroll-spy/package.json +1 -1
  130. package/scrollbar/package.json +1 -1
  131. package/segmented-button/package.json +1 -1
  132. package/select/package.json +1 -1
  133. package/shared/package.json +1 -1
  134. package/shellbar/package.json +1 -1
  135. package/side-navigation/package.json +1 -1
  136. package/slider/package.json +1 -1
  137. package/split-button/package.json +1 -1
  138. package/splitter/package.json +1 -1
  139. package/status-indicator/package.json +1 -1
  140. package/step-input/package.json +1 -1
  141. package/switch/package.json +1 -1
  142. package/table/package.json +1 -1
  143. package/tabs/package.json +1 -1
  144. package/text/package.json +1 -1
  145. package/theming/package.json +1 -1
  146. package/tile/package.json +1 -1
  147. package/time/package.json +1 -1
  148. package/time-picker/package.json +1 -1
  149. package/timeline/package.json +1 -1
  150. package/title/package.json +1 -1
  151. package/token/esm2020/token.component.mjs +15 -3
  152. package/token/esm2020/tokenizer.component.mjs +16 -39
  153. package/token/fesm2015/fundamental-ngx-core-token.mjs +29 -40
  154. package/token/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
  155. package/token/fesm2020/fundamental-ngx-core-token.mjs +29 -40
  156. package/token/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
  157. package/token/package.json +1 -1
  158. package/token/token.component.d.ts +8 -2
  159. package/token/tokenizer.component.d.ts +5 -9
  160. package/toolbar/package.json +1 -1
  161. package/tree/package.json +1 -1
  162. package/upload-collection/package.json +1 -1
  163. package/utils/package.json +1 -1
  164. package/vertical-navigation/package.json +1 -1
  165. package/wizard/package.json +1 -1
@@ -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\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/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\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 /**\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;\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 get gridLayoutClasses(): string[] {\n return this._gridLayoutClasses;\n }\n\n set gridLayoutClasses(value: string[]) {\n this._removeClassesNames(this._gridLayoutClasses);\n this._gridLayoutClasses = value;\n this._addClassesNames(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 get selectionMode(): GridListSelectionMode | undefined {\n return this._selectionMode;\n }\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\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 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(): void {\n this._gridListItem?.nativeElement.focus();\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 if (\n !KeyUtil.isKeyCode(event, [ENTER, SPACE]) ||\n this.selectionMode === 'none' ||\n !target.classList.contains('fd-grid-list__item')\n ) {\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 (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 i18n-aria-label=\"coreGridList.Item.Status|Status aria-label attribute\"\n [attr.aria-label]=\"'Item has status. 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 i18n-aria-label=\"@@coreGridList.Item.Counter|Count aria-label attribute\"\n [attr.aria-label]=\"'Item has ' + counter + ' children'\"\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 i18n-aria-label=\"coreGridList.Item.Btn.Details|Button aria-label attribute\"\n aria-label=\"Details\"\n i18n-title=\"coreGridList.Item.Btn.Details|Button title attribute\"\n title=\"Details\"\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 i18n-aria-label=\"coreGridList.Item.Btn.Delete|Button aria-label attribute\"\n aria-label=\"Delete\"\n i18n-title=\"coreGridList.Item.Btn.Delete|Button title attribute\"\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 fd-radio--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 [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 fd-checkbox--compact fd-grid-list__checkbox-input\"\n [id]=\"id + '-checkbox'\"\n [attr.aria-label]=\"ariaLabel\"\n [ngModel]=\"_selectedItem\"\n (click)=\"_checkboxClick($event)\"\n />\n <label\n class=\"fd-checkbox__label fd-checkbox__label--compact fd-grid-list__checkbox-label\"\n [for]=\"id + '-checkbox'\"\n tabindex=\"-1\"\n ></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 i18n-label=\"coreGridList.Item.Status.ContainsErrors|Error label attribute\"\n label=\"Contains errors\"\n i18n-title=\"coreGridList.Item.Status.ContainsErrors|Error title attribute\"\n title=\"Contains errors\"\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 i18n-aria-label=\"coreGridList.Item.Status.Locked|Button aria-label attribute\"\n aria-label=\"Locked\"\n i18n-label=\"coreGridList.Item.Status.Locked|Button label attribute\"\n label=\"Locked\"\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 i18n-aria-label=\"coreGridList.Item.Status.Draft|Button aria-label attribute\"\n aria-label=\"Draft\"\n i18n-label=\"coreGridList.Item.Status.Draft|Button label attribute\"\n label=\"Draft\"\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/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\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', '../../../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 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 aria-label=\"Cancel\"\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/core/shared';\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/core/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';\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: [CommonModule, FormsModule, ButtonModule, IconModule, TitleModule, ToolbarModule, ObjectStatusModule],\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":[],"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\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/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\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 get gridLayoutClasses(): string[] {\n return this._gridLayoutClasses;\n }\n\n set gridLayoutClasses(value: string[]) {\n this._removeClassesNames(this._gridLayoutClasses);\n this._gridLayoutClasses = value;\n this._addClassesNames(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 get selectionMode(): GridListSelectionMode | undefined {\n return this._selectionMode;\n }\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\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 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 i18n-aria-label=\"coreGridList.Item.Status|Status aria-label attribute\"\n [attr.aria-label]=\"'Item has status. 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 i18n-aria-label=\"@@coreGridList.Item.Counter|Count aria-label attribute\"\n [attr.aria-label]=\"'Item has ' + counter + ' children'\"\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 i18n-aria-label=\"coreGridList.Item.Btn.Details|Button aria-label attribute\"\n aria-label=\"Details\"\n i18n-title=\"coreGridList.Item.Btn.Details|Button title attribute\"\n title=\"Details\"\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 i18n-aria-label=\"coreGridList.Item.Btn.Delete|Button aria-label attribute\"\n aria-label=\"Delete\"\n i18n-title=\"coreGridList.Item.Btn.Delete|Button title attribute\"\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 fd-radio--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 fd-checkbox--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\n class=\"fd-checkbox__label fd-checkbox__label--compact fd-grid-list__checkbox-label\"\n [for]=\"id + '-checkbox'\"\n tabindex=\"-1\"\n ></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 i18n-label=\"coreGridList.Item.Status.ContainsErrors|Error label attribute\"\n label=\"Contains errors\"\n i18n-title=\"coreGridList.Item.Status.ContainsErrors|Error title attribute\"\n title=\"Contains errors\"\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 i18n-aria-label=\"coreGridList.Item.Status.Locked|Button aria-label attribute\"\n aria-label=\"Locked\"\n i18n-label=\"coreGridList.Item.Status.Locked|Button label attribute\"\n label=\"Locked\"\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 i18n-aria-label=\"coreGridList.Item.Status.Draft|Button aria-label attribute\"\n aria-label=\"Draft\"\n i18n-label=\"coreGridList.Item.Status.Draft|Button label attribute\"\n label=\"Draft\"\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/core/utils';\nimport { Nullable } from '@fundamental-ngx/core/shared';\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', '../../../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 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 aria-label=\"Cancel\"\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/core/shared';\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/core/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';\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: [CommonModule, FormsModule, ButtonModule, IconModule, TitleModule, ToolbarModule, ObjectStatusModule],\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":[],"mappings":"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"}