@firestitch/list 12.1.3 → 12.2.0

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 (37) hide show
  1. package/app/classes/data-controller.d.ts +1 -0
  2. package/app/components/body/row/row.component.d.ts +3 -0
  3. package/app/directives/column/column.directive.d.ts +5 -3
  4. package/app/directives/group-footer/group-footer.directive.d.ts +6 -0
  5. package/app/directives/group-header/group-header.directive.d.ts +6 -0
  6. package/app/enums/row-type.enum.d.ts +2 -1
  7. package/app/fs-list.module.d.ts +26 -25
  8. package/app/interfaces/column-config.interface.d.ts +1 -1
  9. package/app/interfaces/listconfig.interface.d.ts +7 -1
  10. package/app/models/column.model.d.ts +6 -3
  11. package/app/models/row/group-footer-row.d.ts +10 -0
  12. package/app/models/row/group-row.d.ts +2 -1
  13. package/app/models/row.d.ts +3 -1
  14. package/bundles/firestitch-list.umd.js +169 -33
  15. package/bundles/firestitch-list.umd.js.map +1 -1
  16. package/esm2015/app/classes/columns-controller.js +3 -2
  17. package/esm2015/app/classes/data-controller.js +18 -2
  18. package/esm2015/app/components/body/row/cell/cell.component.js +9 -4
  19. package/esm2015/app/components/body/row/row.component.js +21 -3
  20. package/esm2015/app/directives/column/column.directive.js +14 -7
  21. package/esm2015/app/directives/group-footer/group-footer.directive.js +14 -0
  22. package/esm2015/app/directives/group-header/group-header.directive.js +14 -0
  23. package/esm2015/app/enums/row-type.enum.js +3 -2
  24. package/esm2015/app/fs-list.module.js +11 -6
  25. package/esm2015/app/interfaces/column-config.interface.js +1 -1
  26. package/esm2015/app/interfaces/listconfig.interface.js +1 -1
  27. package/esm2015/app/models/column.model.js +15 -8
  28. package/esm2015/app/models/row/group-footer-row.js +21 -0
  29. package/esm2015/app/models/row/group-row.js +1 -1
  30. package/esm2015/app/models/row.js +5 -1
  31. package/esm2015/public_api.js +3 -2
  32. package/fesm2015/firestitch-list.js +120 -30
  33. package/fesm2015/firestitch-list.js.map +1 -1
  34. package/package.json +1 -1
  35. package/public_api.d.ts +3 -2
  36. package/app/directives/group-cell/group-cell.directive.d.ts +0 -6
  37. package/esm2015/app/directives/group-cell/group-cell.directive.js +0 -14
@@ -25,7 +25,8 @@ export { FsListCellDirective } from './app/directives/cell/cell.directive';
25
25
  export { FsListHeaderDirective } from './app/directives/header/header.directive';
26
26
  export { FsListEmptyStateDirective } from './app/directives/empty-state/empty-state.directive';
27
27
  export { FsListContentDirective } from './app/directives/content/content.directive';
28
- export { FsListGroupCellDirective } from './app/directives/group-cell/group-cell.directive';
28
+ export { FsListGroupHeaderDirective } from './app/directives/group-header/group-header.directive';
29
+ export { FsListGroupFooterDirective } from './app/directives/group-footer/group-footer.directive';
29
30
  export { FsListGroupExpandTriggerDirective } from './app/directives/group-expand-trigger/group-expand-trigger.directive';
30
31
  // Models
31
32
  export { Column, SortingDirection } from './app/models/column.model';
@@ -41,4 +42,4 @@ export { ActionType } from './app/enums/button-type.enum';
41
42
  export { PaginationStrategy } from './app/enums/pagination-strategy.enum';
42
43
  export { RowType } from './app/enums/row-type.enum';
43
44
  export { FsListState } from './app/enums/state.enum';
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsVUFBVTtBQUNWLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxZQUFZO0FBQ1osT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpGLGFBQWE7QUFDYixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQy9GLE9BQU8sRUFDTCxxQkFBcUIsRUFDdEIsTUFBSyxzRUFBc0UsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixhQUFhO0FBQ2IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDNUYsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQ3JDLHNFQUFzRSxDQUFDO0FBRTlFLFNBQVM7QUFDVCxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxpQkFBaUIsRUFBc0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUE0QzdELFFBQVE7QUFDUixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZnMtbWVudVxuICovXG5cbi8vIE1vZHVsZXNcbmV4cG9ydCB7IEZzTGlzdE1vZHVsZSB9IGZyb20gJy4vYXBwL2ZzLWxpc3QubW9kdWxlJztcblxuLy8gUHJvdmlkZXJzXG5leHBvcnQgeyBGU19MSVNUX0NPTkZJRywgRlNfTElTVF9ERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4vYXBwL2ZzLWxpc3QucHJvdmlkZXJzJztcblxuLy8gQ29tcG9uZW50c1xuZXhwb3J0IHsgRnNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9saXN0L2xpc3QuY29tcG9uZW50JztcbmV4cG9ydCB7IEZzQm9keUNvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYm9keS9ib2R5LmNvbXBvbmVudCc7XG5leHBvcnQgeyBGc1Jvd0NvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvcm93LmNvbXBvbmVudCc7XG5leHBvcnQgeyBGc0NlbGxDb21wb25lbnQgfSBmcm9tICcuL2FwcC9jb21wb25lbnRzL2JvZHkvcm93L2NlbGwvY2VsbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgRnNIZWFkQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9oZWFkL2hlYWQuY29tcG9uZW50JztcbmV4cG9ydCB7IEZzSGVhZENlbGxDb21wb25lbnQgfSBmcm9tICcuL2FwcC9jb21wb25lbnRzL2hlYWQvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgRnNGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL2FwcC9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IEZzRm9vdGVyUm93Q29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLXJvdy9mb290ZXItcm93LmNvbXBvbmVudCc7XG5leHBvcnQge1xuICBGc0Zvb3RlckNlbGxDb21wb25lbnRcbn1mcm9tICcuL2FwcC9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXItcm93L2Zvb3Rlci1jZWxsL2Zvb3Rlci1jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBGc1N0YXR1c0NvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvc3RhdHVzL3N0YXR1cy5jb21wb25lbnQnO1xuZXhwb3J0IHsgRnNQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7IEZzTGlzdExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgeyBGc0xpc3RGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2FwcC9kaXJlY3RpdmVzL2Zvb3Rlci9mb290ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEZzTGlzdENvbHVtbkRpcmVjdGl2ZSB9IGZyb20gJy4vYXBwL2RpcmVjdGl2ZXMvY29sdW1uL2NvbHVtbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgRnNMaXN0Q2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vYXBwL2RpcmVjdGl2ZXMvY2VsbC9jZWxsLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBGc0xpc3RIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2FwcC9kaXJlY3RpdmVzL2hlYWRlci9oZWFkZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEZzTGlzdEVtcHR5U3RhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2FwcC9kaXJlY3RpdmVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBGc0xpc3RDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9hcHAvZGlyZWN0aXZlcy9jb250ZW50L2NvbnRlbnQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEZzTGlzdEdyb3VwQ2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vYXBwL2RpcmVjdGl2ZXMvZ3JvdXAtY2VsbC9ncm91cC1jZWxsLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBGc0xpc3RHcm91cEV4cGFuZFRyaWdnZXJEaXJlY3RpdmUgfVxuICBmcm9tICcuL2FwcC9kaXJlY3RpdmVzL2dyb3VwLWV4cGFuZC10cmlnZ2VyL2dyb3VwLWV4cGFuZC10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5cbi8vIE1vZGVsc1xuZXhwb3J0IHsgQ29sdW1uLCBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi9hcHAvbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5leHBvcnQgeyBMaXN0IH0gZnJvbSAnLi9hcHAvY2xhc3Nlcy9saXN0LWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgUGFnaW5hdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuL2FwcC9jbGFzc2VzL3BhZ2luYXRpb24tY29udHJvbGxlcic7XG5leHBvcnQgeyBSZW9yZGVyU3RyYXRlZ3ksIFJlb3JkZXJQb3NpdGlvbiwgUmVvcmRlckNvbnRyb2xsZXIgfSBmcm9tICcuL2FwcC9jbGFzc2VzL3Jlb3JkZXItY29udHJvbGxlcic7XG5leHBvcnQgeyBSb3dBY3Rpb24gfSBmcm9tICcuL2FwcC9tb2RlbHMvcm93LWFjdGlvbi5tb2RlbCc7XG5leHBvcnQgeyBTZWxlY3Rpb25Db250cm9sbGVyLCBTZWxlY3Rpb25DaGFuZ2VUeXBlIH0gZnJvbSAnLi9hcHAvY2xhc3Nlcy9zZWxlY3Rpb24tY29udHJvbGxlcic7XG5leHBvcnQgeyBTb3J0aW5nQ29udHJvbGxlciwgU29ydGluZ0NoYW5nZUV2ZW50IH0gZnJvbSAnLi9hcHAvY2xhc3Nlcy9zb3J0aW5nLWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgU3R5bGVDb25maWcgfSBmcm9tICcuL2FwcC9tb2RlbHMvc3R5bGVDb25maWcubW9kZWwnO1xuXG4vLyBJbnRlcmZhY2VzXG5leHBvcnQgeyBDZWxsQ29uZmlnIH0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9jZWxsY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQge1xuICBGc0xpc3RBYnN0cmFjdFJvdyxcbiAgRnNMaXN0U2Nyb2xsYWJsZUNvbmZpZyxcbiAgRnNMaXN0U2VsZWN0aW9uQ29uZmlnLFxuICBGc0xpc3RTb3J0c0NvbmZpZyxcbiAgRnNMaXN0QWN0aW9uLFxuICBGc0xpc3RDZWxsQ29uZmlnLFxuICBGc0xpc3RGZXRjaFN1YnNjcmlwdGlvbixcbiAgRnNMaXN0Q29uZmlnLFxuICBGc0xpc3RGb290ZXJDb25maWcsXG4gIEZzTGlzdEhlYWRlckNvbmZpZyxcbiAgRnNMaXN0Tm9SZXN1bHRzQ29uZmlnLFxuICBGc0xpc3RSZW9yZGVyQ29uZmlnLFxuICBGc0xpc3RSZW9yZGVyTW92ZWRDYWxsYmFjayxcbiAgRnNMaXN0UmVvcmRlckRvbmVDYWxsYmFjayxcbiAgRnNMaXN0UmVvcmRlckRhdGEsXG4gIEZzTGlzdFJlc3RvcmVDb25maWcsXG4gIEZzTGlzdFJlb3JkZXJNb3ZlSW5Hcm91cENhbGxiYWNrLFxuICBGc0xpc3RSb3dBY3Rpb24sXG4gIEZzTGlzdFRyYWNrQnlGbixcbiAgRnNMaXN0VHJhY2tCeVRhcmdldFJvd0ZuLFxuICBGc1BhZ2luZyxcbiAgRnNMaXN0Q29sdW1uTG9hZEZuLFxuICBGc0xpc3RDb2x1bW5DaGFuZ2VGbixcbiAgRnNMaXN0Q29sdW1uLFxuICBGc0xpc3RDb2x1bW5Db25maWcsXG4gIEZzTGlzdEFjdGlvblNlbGVjdGVkLFxuICBGc0xpc3RHcm91cENvbmZpZyxcbiAgRnNMaXN0Um93QWN0aW9uTGluayxcbiAgRnNMaXN0Um93QWN0aW9uTGlua0ZuLFxuICBGc0xpc3RSb3dBY3Rpb25Hcm91cCxcbiAgRnNMaXN0RW1wdHlTdGF0ZUNvbmZpZyxcbiAgRnNMaXN0U3RhdGVWYWxpZGF0aW9uRm4sXG4gIEZzTGlzdEZldGNoT3B0aW9ucyxcbiAgRnNMaXN0RmV0Y2hGbixcbiAgRnNMaXN0Um93QWN0aW9uRmlsZUZuLFxuICBGc0xpc3RSb3dBY3Rpb25GaWxlLFxufSBmcm9tICcuL2FwcC9pbnRlcmZhY2VzL2xpc3Rjb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCB7IFF1ZXJ5T2Zmc2V0U3RyYXRlZ3ksIFF1ZXJ5UGFnZVN0cmF0ZWd5IH0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9wYWdpbmF0aW9uLmludGVyZmFjZSc7XG5cbi8vIEVudW1zXG5leHBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi9hcHAvZW51bXMvYnV0dG9uLXR5cGUuZW51bSc7XG5leHBvcnQgeyBQYWdpbmF0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2FwcC9lbnVtcy9wYWdpbmF0aW9uLXN0cmF0ZWd5LmVudW0nO1xuZXhwb3J0IHsgUm93VHlwZSB9IGZyb20gJy4vYXBwL2VudW1zL3Jvdy10eXBlLmVudW0nO1xuZXhwb3J0IHsgRnNMaXN0U3RhdGUgfSBmcm9tICcuL2FwcC9lbnVtcy9zdGF0ZS5lbnVtJztcbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsVUFBVTtBQUNWLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxZQUFZO0FBQ1osT0FBTyxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpGLGFBQWE7QUFDYixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQy9GLE9BQU8sRUFDTCxxQkFBcUIsRUFDdEIsTUFBSyxzRUFBc0UsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixhQUFhO0FBQ2IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDL0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDbEcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQ3JDLHNFQUFzRSxDQUFDO0FBRTlFLFNBQVM7QUFDVCxPQUFPLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxpQkFBaUIsRUFBc0IsTUFBTSxrQ0FBa0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUE2QzdELFFBQVE7QUFDUixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZnMtbWVudVxuICovXG5cbi8vIE1vZHVsZXNcbmV4cG9ydCB7IEZzTGlzdE1vZHVsZSB9IGZyb20gJy4vYXBwL2ZzLWxpc3QubW9kdWxlJztcblxuLy8gUHJvdmlkZXJzXG5leHBvcnQgeyBGU19MSVNUX0NPTkZJRywgRlNfTElTVF9ERUZBVUxUX0NPTkZJRyB9IGZyb20gJy4vYXBwL2ZzLWxpc3QucHJvdmlkZXJzJztcblxuLy8gQ29tcG9uZW50c1xuZXhwb3J0IHsgRnNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9saXN0L2xpc3QuY29tcG9uZW50JztcbmV4cG9ydCB7IEZzQm9keUNvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYm9keS9ib2R5LmNvbXBvbmVudCc7XG5leHBvcnQgeyBGc1Jvd0NvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvcm93LmNvbXBvbmVudCc7XG5leHBvcnQgeyBGc0NlbGxDb21wb25lbnQgfSBmcm9tICcuL2FwcC9jb21wb25lbnRzL2JvZHkvcm93L2NlbGwvY2VsbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgRnNIZWFkQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9oZWFkL2hlYWQuY29tcG9uZW50JztcbmV4cG9ydCB7IEZzSGVhZENlbGxDb21wb25lbnQgfSBmcm9tICcuL2FwcC9jb21wb25lbnRzL2hlYWQvaGVhZC1jZWxsL2hlYWQtY2VsbC5jb21wb25lbnQnO1xuZXhwb3J0IHsgRnNGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL2FwcC9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IEZzRm9vdGVyUm93Q29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLXJvdy9mb290ZXItcm93LmNvbXBvbmVudCc7XG5leHBvcnQge1xuICBGc0Zvb3RlckNlbGxDb21wb25lbnRcbn1mcm9tICcuL2FwcC9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXItcm93L2Zvb3Rlci1jZWxsL2Zvb3Rlci1jZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgeyBGc1N0YXR1c0NvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvc3RhdHVzL3N0YXR1cy5jb21wb25lbnQnO1xuZXhwb3J0IHsgRnNQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCB7IEZzTGlzdExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYXBwL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgeyBGc0xpc3RGb290ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2FwcC9kaXJlY3RpdmVzL2Zvb3Rlci9mb290ZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEZzTGlzdENvbHVtbkRpcmVjdGl2ZSB9IGZyb20gJy4vYXBwL2RpcmVjdGl2ZXMvY29sdW1uL2NvbHVtbi5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgRnNMaXN0Q2VsbERpcmVjdGl2ZSB9IGZyb20gJy4vYXBwL2RpcmVjdGl2ZXMvY2VsbC9jZWxsLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBGc0xpc3RIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2FwcC9kaXJlY3RpdmVzL2hlYWRlci9oZWFkZXIuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEZzTGlzdEVtcHR5U3RhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2FwcC9kaXJlY3RpdmVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBGc0xpc3RDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9hcHAvZGlyZWN0aXZlcy9jb250ZW50L2NvbnRlbnQuZGlyZWN0aXZlJztcbmV4cG9ydCB7IEZzTGlzdEdyb3VwSGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9hcHAvZGlyZWN0aXZlcy9ncm91cC1oZWFkZXIvZ3JvdXAtaGVhZGVyLmRpcmVjdGl2ZSc7XG5leHBvcnQgeyBGc0xpc3RHcm91cEZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vYXBwL2RpcmVjdGl2ZXMvZ3JvdXAtZm9vdGVyL2dyb3VwLWZvb3Rlci5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgRnNMaXN0R3JvdXBFeHBhbmRUcmlnZ2VyRGlyZWN0aXZlIH1cbiAgZnJvbSAnLi9hcHAvZGlyZWN0aXZlcy9ncm91cC1leHBhbmQtdHJpZ2dlci9ncm91cC1leHBhbmQtdHJpZ2dlci5kaXJlY3RpdmUnO1xuXG4vLyBNb2RlbHNcbmV4cG9ydCB7IENvbHVtbiwgU29ydGluZ0RpcmVjdGlvbiB9IGZyb20gJy4vYXBwL21vZGVscy9jb2x1bW4ubW9kZWwnO1xuZXhwb3J0IHsgTGlzdCB9IGZyb20gJy4vYXBwL2NsYXNzZXMvbGlzdC1jb250cm9sbGVyJztcbmV4cG9ydCB7IFBhZ2luYXRpb25Db250cm9sbGVyIH0gZnJvbSAnLi9hcHAvY2xhc3Nlcy9wYWdpbmF0aW9uLWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgUmVvcmRlclN0cmF0ZWd5LCBSZW9yZGVyUG9zaXRpb24sIFJlb3JkZXJDb250cm9sbGVyIH0gZnJvbSAnLi9hcHAvY2xhc3Nlcy9yZW9yZGVyLWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgUm93QWN0aW9uIH0gZnJvbSAnLi9hcHAvbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwnO1xuZXhwb3J0IHsgU2VsZWN0aW9uQ29udHJvbGxlciwgU2VsZWN0aW9uQ2hhbmdlVHlwZSB9IGZyb20gJy4vYXBwL2NsYXNzZXMvc2VsZWN0aW9uLWNvbnRyb2xsZXInO1xuZXhwb3J0IHsgU29ydGluZ0NvbnRyb2xsZXIsIFNvcnRpbmdDaGFuZ2VFdmVudCB9IGZyb20gJy4vYXBwL2NsYXNzZXMvc29ydGluZy1jb250cm9sbGVyJztcbmV4cG9ydCB7IFN0eWxlQ29uZmlnIH0gZnJvbSAnLi9hcHAvbW9kZWxzL3N0eWxlQ29uZmlnLm1vZGVsJztcblxuLy8gSW50ZXJmYWNlc1xuZXhwb3J0IHsgQ2VsbENvbmZpZyB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvY2VsbGNvbmZpZy5pbnRlcmZhY2UnO1xuZXhwb3J0IHtcbiAgRnNMaXN0QWJzdHJhY3RSb3csXG4gIEZzTGlzdFNjcm9sbGFibGVDb25maWcsXG4gIEZzTGlzdFNlbGVjdGlvbkNvbmZpZyxcbiAgRnNMaXN0U29ydHNDb25maWcsXG4gIEZzTGlzdEFjdGlvbixcbiAgRnNMaXN0Q2VsbENvbmZpZyxcbiAgRnNMaXN0RmV0Y2hTdWJzY3JpcHRpb24sXG4gIEZzTGlzdENvbmZpZyxcbiAgRnNMaXN0Rm9vdGVyQ29uZmlnLFxuICBGc0xpc3RIZWFkZXJDb25maWcsXG4gIEZzTGlzdE5vUmVzdWx0c0NvbmZpZyxcbiAgRnNMaXN0UmVvcmRlckNvbmZpZyxcbiAgRnNMaXN0UmVvcmRlck1vdmVkQ2FsbGJhY2ssXG4gIEZzTGlzdFJlb3JkZXJEb25lQ2FsbGJhY2ssXG4gIEZzTGlzdFJlb3JkZXJEYXRhLFxuICBGc0xpc3RSZXN0b3JlQ29uZmlnLFxuICBGc0xpc3RSZW9yZGVyTW92ZUluR3JvdXBDYWxsYmFjayxcbiAgRnNMaXN0Um93QWN0aW9uLFxuICBGc0xpc3RUcmFja0J5Rm4sXG4gIEZzTGlzdFRyYWNrQnlUYXJnZXRSb3dGbixcbiAgRnNQYWdpbmcsXG4gIEZzTGlzdENvbHVtbkxvYWRGbixcbiAgRnNMaXN0Q29sdW1uQ2hhbmdlRm4sXG4gIEZzTGlzdENvbHVtbixcbiAgRnNMaXN0Q29sdW1uQ29uZmlnLFxuICBGc0xpc3RBY3Rpb25TZWxlY3RlZCxcbiAgRnNMaXN0R3JvdXBDb25maWcsXG4gIEZzTGlzdFJvd0FjdGlvbkxpbmssXG4gIEZzTGlzdFJvd0FjdGlvbkxpbmtGbixcbiAgRnNMaXN0Um93QWN0aW9uR3JvdXAsXG4gIEZzTGlzdEVtcHR5U3RhdGVDb25maWcsXG4gIEZzTGlzdFN0YXRlVmFsaWRhdGlvbkZuLFxuICBGc0xpc3RGZXRjaE9wdGlvbnMsXG4gIEZzTGlzdEZldGNoRm4sXG4gIEZzTGlzdFJvd0FjdGlvbkZpbGVGbixcbiAgRnNMaXN0Um93QWN0aW9uRmlsZSxcbiAgRnNMaXN0Um93Q2xhc3NPcHRpb25zLFxufSBmcm9tICcuL2FwcC9pbnRlcmZhY2VzL2xpc3Rjb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCB7IFF1ZXJ5T2Zmc2V0U3RyYXRlZ3ksIFF1ZXJ5UGFnZVN0cmF0ZWd5IH0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9wYWdpbmF0aW9uLmludGVyZmFjZSc7XG5cbi8vIEVudW1zXG5leHBvcnQgeyBBY3Rpb25UeXBlIH0gZnJvbSAnLi9hcHAvZW51bXMvYnV0dG9uLXR5cGUuZW51bSc7XG5leHBvcnQgeyBQYWdpbmF0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2FwcC9lbnVtcy9wYWdpbmF0aW9uLXN0cmF0ZWd5LmVudW0nO1xuZXhwb3J0IHsgUm93VHlwZSB9IGZyb20gJy4vYXBwL2VudW1zL3Jvdy10eXBlLmVudW0nO1xuZXhwb3J0IHsgRnNMaXN0U3RhdGUgfSBmcm9tICcuL2FwcC9lbnVtcy9zdGF0ZS5lbnVtJztcbiJdfQ==
@@ -139,11 +139,13 @@ const ALLOWED_DEFAULTS = [
139
139
  class Column {
140
140
  constructor(colConfig, colDefaults = false) {
141
141
  this.headerConfigs = new StyleConfig();
142
- this.groupCellConfigs = new StyleConfig();
142
+ this.groupHeaderConfigs = new StyleConfig();
143
+ this.groupFooterConfigs = new StyleConfig();
143
144
  this.cellConfigs = new StyleConfig();
144
145
  this.footerConfigs = new StyleConfig();
145
146
  this.headerColspanned = false;
146
- this.groupCellColspanned = false;
147
+ this.groupHeaderColspanned = false;
148
+ this.groupFooterColspanned = false;
147
149
  this.cellColspanned = false;
148
150
  this.footerColspanned = false;
149
151
  this._ordered = false;
@@ -235,7 +237,8 @@ class Column {
235
237
  case 'class':
236
238
  {
237
239
  this.headerConfigs.mergeClassByPriority(this.colStyles, defaults.header);
238
- this.groupCellConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
240
+ this.groupHeaderConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
241
+ this.groupFooterConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
239
242
  this.cellConfigs.mergeClassByPriority(this.colStyles, defaults.cell);
240
243
  this.footerConfigs.mergeClassByPriority(this.colStyles, defaults.footer);
241
244
  }
@@ -243,7 +246,8 @@ class Column {
243
246
  case 'align':
244
247
  {
245
248
  this.headerConfigs.mergeAlignByPriority(this.colStyles, defaults.header);
246
- this.groupCellConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
249
+ this.groupHeaderConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
250
+ this.groupFooterConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
247
251
  this.cellConfigs.mergeAlignByPriority(this.colStyles, defaults.cell);
248
252
  this.footerConfigs.mergeAlignByPriority(this.colStyles, defaults.footer);
249
253
  }
@@ -251,7 +255,8 @@ class Column {
251
255
  }
252
256
  });
253
257
  this.headerConfigs.updateClasesArray();
254
- this.groupCellConfigs.updateClasesArray();
258
+ this.groupHeaderConfigs.updateClasesArray();
259
+ this.groupFooterConfigs.updateClasesArray();
255
260
  this.cellConfigs.updateClasesArray();
256
261
  this.footerConfigs.updateClasesArray();
257
262
  }
@@ -272,11 +277,13 @@ class Column {
272
277
  _parseConfig(config) {
273
278
  this._attributes = config.attributes;
274
279
  this.headerTemplate = config.headerTemplate;
275
- this.groupCellTemplate = config.groupCellTemplate;
280
+ this.groupHeaderTemplate = config.groupHeaderTemplate;
281
+ this.groupFooterTemplate = config.groupFooterTemplate;
276
282
  this.cellTemplate = config.cellTemplate;
277
283
  this.footerTemplate = config.footerTemplate;
278
284
  this.headerConfigs = new StyleConfig(config.headerConfigs);
279
- this.groupCellConfigs = new StyleConfig(config.groupCellConfigs);
285
+ this.groupHeaderConfigs = new StyleConfig(config.groupHeaderConfigs);
286
+ this.groupFooterConfigs = new StyleConfig(config.groupFooterConfigs);
280
287
  this.cellConfigs = new StyleConfig(config.cellConfigs);
281
288
  this.footerConfigs = new StyleConfig(config.footerConfigs);
282
289
  this.expandTrigger = config.expandTrigger;
@@ -557,7 +564,8 @@ class ColumnsController {
557
564
  });
558
565
  this._theadClass = this.hasHeader ? 'has-header' : '';
559
566
  this._updateColspans('headerConfigs', 'headerColspanned');
560
- this._updateColspans('groupCellConfigs', 'groupCellColspanned');
567
+ this._updateColspans('groupHeaderConfigs', 'groupHeaderColspanned');
568
+ this._updateColspans('groupFooterConfigs', 'groupFooterColspanned');
561
569
  this._updateColspans('cellConfigs', 'cellColspanned');
562
570
  this._updateColspans('footerConfigs', 'footerColspanned');
563
571
  this.updateVisibleColumns();
@@ -707,7 +715,8 @@ var RowType;
707
715
  (function (RowType) {
708
716
  RowType[RowType["Simple"] = 0] = "Simple";
709
717
  RowType[RowType["Group"] = 1] = "Group";
710
- RowType[RowType["Child"] = 2] = "Child";
718
+ RowType[RowType["GroupFooter"] = 2] = "GroupFooter";
719
+ RowType[RowType["Child"] = 3] = "Child";
711
720
  })(RowType || (RowType = {}));
712
721
 
713
722
  class BaseRow {
@@ -804,6 +813,25 @@ class SimpleRow extends BaseRow {
804
813
  }
805
814
  }
806
815
 
816
+ class GroupFooterRow extends BaseRow {
817
+ constructor(data = {}, parent = null) {
818
+ super(data, RowType.GroupFooter);
819
+ this.visible = true;
820
+ this._parent = parent;
821
+ if (this.parent) {
822
+ this.visible = this._parent.expanded;
823
+ this.index = this.parent.children.length;
824
+ }
825
+ }
826
+ get parent() {
827
+ return this._parent;
828
+ }
829
+ get isFooter() {
830
+ return true;
831
+ }
832
+ destroy() { }
833
+ }
834
+
807
835
  class Row {
808
836
  constructor(data = {}, rowType = RowType.Simple, { parent, initialExpand } = {}) {
809
837
  switch (rowType) {
@@ -851,6 +879,9 @@ class Row {
851
879
  get isChild() {
852
880
  return this._row instanceof ChildRow;
853
881
  }
882
+ get isFooter() {
883
+ return this._row instanceof GroupFooterRow;
884
+ }
854
885
  get parent() {
855
886
  return this._row.parent;
856
887
  }
@@ -938,6 +969,7 @@ class DataController {
938
969
  if (group) {
939
970
  this._groupByFn = group.groupBy;
940
971
  this._compareByFn = group.compareBy;
972
+ this._footerRowFn = group.footer || (() => false);
941
973
  this._initialExpand = (_a = group.initialExpand) !== null && _a !== void 0 ? _a : true;
942
974
  // group mode enabled by default
943
975
  this._groupEnabled = (group.enabled !== void 0)
@@ -1081,6 +1113,7 @@ class DataController {
1081
1113
  const row = this.visibleRows.find((visibleRow) => visibleRow.data === rowData);
1082
1114
  row.toggleRowExpandStatus();
1083
1115
  this._updateVisibleRows();
1116
+ console.log(this._rowsStack);
1084
1117
  }
1085
1118
  _updateRowsStack(rows) {
1086
1119
  this._destroyRowsStack();
@@ -1112,7 +1145,7 @@ class DataController {
1112
1145
  _updateVisibleRows() {
1113
1146
  this.visibleRows = this._rowsStack
1114
1147
  .filter((row) => {
1115
- return !row.isChild || row.visible;
1148
+ return (!row.isChild && !row.isFooter) || row.visible;
1116
1149
  });
1117
1150
  }
1118
1151
  updateRow(targetRow, trackBy) {
@@ -1157,9 +1190,15 @@ class DataController {
1157
1190
  return rows;
1158
1191
  }
1159
1192
  let numberOfGroups = 0;
1193
+ const footerRows = new Map();
1160
1194
  rows.forEach((row) => {
1161
1195
  const mainGroup = this._groupByFn(row);
1196
+ const isFooterRow = this._footerRowFn(row);
1162
1197
  const mainGroupKey = this._compareByFn(mainGroup);
1198
+ if (isFooterRow) {
1199
+ footerRows.set(mainGroupKey, row);
1200
+ return;
1201
+ }
1163
1202
  if (!this._store.has(mainGroupKey)) {
1164
1203
  const group = new GroupRow(mainGroup, this._initialExpand);
1165
1204
  group.index = numberOfGroups;
@@ -1174,6 +1213,13 @@ class DataController {
1174
1213
  group.children.push(childRow);
1175
1214
  }
1176
1215
  });
1216
+ for (const [key, value] of footerRows) {
1217
+ const group = this._store.get(key);
1218
+ if (group) {
1219
+ const footerRow = new GroupFooterRow(value, group);
1220
+ group.children.push(footerRow);
1221
+ }
1222
+ }
1177
1223
  return Array.from(this._store.values())
1178
1224
  .reduce((acc, item) => {
1179
1225
  if (item.isGroup) {
@@ -3524,14 +3570,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
3524
3570
  args: ['class']
3525
3571
  }] } });
3526
3572
 
3527
- class FsListGroupCellDirective extends FsListCellDirective {
3573
+ class FsListGroupHeaderDirective extends FsListCellDirective {
3528
3574
  }
3529
- FsListGroupCellDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupCellDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3530
- FsListGroupCellDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListGroupCellDirective, selector: "[fs-list-group-cell]", usesInheritance: true, ngImport: i0 });
3531
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupCellDirective, decorators: [{
3575
+ FsListGroupHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupHeaderDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3576
+ FsListGroupHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListGroupHeaderDirective, selector: "[fs-list-group-cell],[fs-list-group-header]", usesInheritance: true, ngImport: i0 });
3577
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupHeaderDirective, decorators: [{
3532
3578
  type: Directive,
3533
3579
  args: [{
3534
- selector: '[fs-list-group-cell]'
3580
+ selector: '[fs-list-group-cell],[fs-list-group-header]'
3581
+ }]
3582
+ }] });
3583
+
3584
+ class FsListGroupFooterDirective extends FsListCellDirective {
3585
+ }
3586
+ FsListGroupFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupFooterDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3587
+ FsListGroupFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListGroupFooterDirective, selector: "[fs-list-group-footer]", usesInheritance: true, ngImport: i0 });
3588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListGroupFooterDirective, decorators: [{
3589
+ type: Directive,
3590
+ args: [{
3591
+ selector: '[fs-list-group-footer]'
3535
3592
  }]
3536
3593
  }] });
3537
3594
 
@@ -3618,7 +3675,7 @@ class FsListColumnDirective {
3618
3675
  }
3619
3676
  }
3620
3677
  FsListColumnDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
3621
- FsListColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListColumnDirective, selector: "fs-list-column", inputs: { visible: ["show", "visible"], title: "title", name: "name", customize: "customize", sortable: "sortable", sortableDefault: "sortableDefault", direction: "direction", align: "align", width: "width", className: ["class", "className"] }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsListHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "headerConfigs", first: true, predicate: FsListHeaderDirective, descendants: true, static: true }, { propertyName: "groupCellTemplate", first: true, predicate: FsListGroupCellDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "groupCellConfigs", first: true, predicate: FsListGroupCellDirective, descendants: true, static: true }, { propertyName: "cellTemplate", first: true, predicate: FsListCellDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "cellConfigs", first: true, predicate: FsListCellDirective, descendants: true, static: true }, { propertyName: "footerTemplate", first: true, predicate: FsListFooterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "footerConfigs", first: true, predicate: FsListFooterDirective, descendants: true, static: true }, { propertyName: "expandTrigger", predicate: FsListGroupExpandTriggerDirective, descendants: true }], ngImport: i0 });
3678
+ FsListColumnDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: FsListColumnDirective, selector: "fs-list-column", inputs: { visible: ["show", "visible"], title: "title", name: "name", customize: "customize", sortable: "sortable", sortableDefault: "sortableDefault", direction: "direction", align: "align", width: "width", className: ["class", "className"] }, queries: [{ propertyName: "headerTemplate", first: true, predicate: FsListHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "headerConfigs", first: true, predicate: FsListHeaderDirective, descendants: true, static: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: FsListGroupHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "groupHeaderConfigs", first: true, predicate: FsListGroupHeaderDirective, descendants: true, static: true }, { propertyName: "groupFooterTemplate", first: true, predicate: FsListGroupFooterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "groupFooterConfigs", first: true, predicate: FsListGroupFooterDirective, descendants: true, static: true }, { propertyName: "cellTemplate", first: true, predicate: FsListCellDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "cellConfigs", first: true, predicate: FsListCellDirective, descendants: true, static: true }, { propertyName: "footerTemplate", first: true, predicate: FsListFooterDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "footerConfigs", first: true, predicate: FsListFooterDirective, descendants: true, static: true }, { propertyName: "expandTrigger", predicate: FsListGroupExpandTriggerDirective, descendants: true }], ngImport: i0 });
3622
3679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsListColumnDirective, decorators: [{
3623
3680
  type: Directive,
3624
3681
  args: [{
@@ -3630,12 +3687,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
3630
3687
  }], headerConfigs: [{
3631
3688
  type: ContentChild,
3632
3689
  args: [FsListHeaderDirective, { static: true }]
3633
- }], groupCellTemplate: [{
3690
+ }], groupHeaderTemplate: [{
3691
+ type: ContentChild,
3692
+ args: [FsListGroupHeaderDirective, { read: TemplateRef, static: true }]
3693
+ }], groupHeaderConfigs: [{
3694
+ type: ContentChild,
3695
+ args: [FsListGroupHeaderDirective, { static: true }]
3696
+ }], groupFooterTemplate: [{
3634
3697
  type: ContentChild,
3635
- args: [FsListGroupCellDirective, { read: TemplateRef, static: true }]
3636
- }], groupCellConfigs: [{
3698
+ args: [FsListGroupFooterDirective, { read: TemplateRef, static: true }]
3699
+ }], groupFooterConfigs: [{
3637
3700
  type: ContentChild,
3638
- args: [FsListGroupCellDirective, { static: true }]
3701
+ args: [FsListGroupFooterDirective, { static: true }]
3639
3702
  }], expandTrigger: [{
3640
3703
  type: ContentChildren,
3641
3704
  args: [FsListGroupExpandTriggerDirective, { descendants: true }]
@@ -3880,8 +3943,9 @@ class FsCellComponent {
3880
3943
  if (this.row.isGroup) {
3881
3944
  this.cellContext.groupIndex = this.row.index;
3882
3945
  }
3883
- else if (this.row.isChild) {
3946
+ else if (this.row.isChild || this.row.isFooter) {
3884
3947
  this.cellContext.groupChildIndex = this.row.index;
3948
+ this.cellContext.groupRow = this.row.parent.data;
3885
3949
  }
3886
3950
  }
3887
3951
  this.cellContext.column = this.column;
@@ -3893,8 +3957,12 @@ class FsCellComponent {
3893
3957
  }
3894
3958
  }
3895
3959
  _initCellTemplate() {
3896
- if (this.row && this.row.isGroup) {
3897
- this.cellTemplate = this.column.groupCellTemplate || this.column.cellTemplate;
3960
+ var _a, _b;
3961
+ if ((_a = this.row) === null || _a === void 0 ? void 0 : _a.isGroup) {
3962
+ this.cellTemplate = this.column.groupHeaderTemplate || this.column.cellTemplate;
3963
+ }
3964
+ else if ((_b = this.row) === null || _b === void 0 ? void 0 : _b.isFooter) {
3965
+ this.cellTemplate = this.column.groupFooterTemplate || this.column.cellTemplate;
3898
3966
  }
3899
3967
  else {
3900
3968
  this.cellTemplate = this.column.cellTemplate;
@@ -4459,6 +4527,15 @@ class FsRowComponent {
4459
4527
  this._destroy$ = new Subject();
4460
4528
  this._rowDiffer = _differs.find({}).create();
4461
4529
  }
4530
+ get isGroupRow() {
4531
+ return this.row.isGroup;
4532
+ }
4533
+ get isChildRow() {
4534
+ return this.row.isChild;
4535
+ }
4536
+ get isGroupFooterRow() {
4537
+ return this.row.isFooter;
4538
+ }
4462
4539
  get rowCssClass() {
4463
4540
  let cls = 'fs-list-row';
4464
4541
  if (this.rowIndex % 2 !== 0)
@@ -4468,7 +4545,16 @@ class FsRowComponent {
4468
4545
  if (this.row && this.row.isGroup)
4469
4546
  cls += ' fs-list-row-group';
4470
4547
  if (this.rowClass) {
4471
- const resultClass = this.rowClass(this.row.data);
4548
+ const options = {
4549
+ index: this.rowIndex,
4550
+ };
4551
+ if (this.row.isGroup) {
4552
+ options.groupIndex = this.row.index;
4553
+ }
4554
+ else if (this.row.isChild) {
4555
+ options.groupChildIndex = this.row.index;
4556
+ }
4557
+ const resultClass = this.rowClass(this.row.data, options);
4472
4558
  if (typeof resultClass === 'string') {
4473
4559
  cls += ` ${resultClass}`;
4474
4560
  }
@@ -4613,7 +4699,7 @@ class FsRowComponent {
4613
4699
  }
4614
4700
  }
4615
4701
  FsRowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowComponent, deps: [{ token: i0.ElementRef }, { token: ReorderController }, { token: i0.ChangeDetectorRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }, { token: FsListDraggableListDirective }], target: i0.ɵɵFactoryTarget.Component });
4616
- FsRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsRowComponent, selector: "[fs-list-row]", inputs: { row: "row", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", hasRowActions: "hasRowActions", rowEvents: "rowEvents", rowClass: "rowClass", restoreMode: "restoreMode", rowIndex: "rowIndex", columns: "columns", selection: "selection", rowRemoved: "rowRemoved" }, host: { properties: { "attr.role": "this.role", "class": "this.rowCssClass" } }, viewQueries: [{ propertyName: "cellRefs", predicate: ["td"], descendants: true }], ngImport: i0, template: "<!-- Drag -->\n<ng-container *ngIf=\"reorderController.leftReorderActivated$ | async\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Selection -->\n<ng-container *ngIf=\"selection\">\n <td class=\"fs-list-col fs-list-col-selection\">\n <mat-checkbox (change)=\"selectRow($event)\"\n [checked]=\"selected\"\n [indeterminate]=\"indeterminateSelected\">\n </mat-checkbox>\n </td>\n</ng-container>\n\n<!-- Content -->\n<ng-container *ngFor=\"let column of columns; trackBy: trackByFn; let isFirst = first\">\n <td fs-cell\n *ngIf=\"(row.isGroup && !column.groupCellColspanned) || (!row.isGroup && !column.cellColspanned)\"\n [column]=\"column\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [class]=\"column.cellConfigs.classesString\"\n [ngClass]=\"{ 'primary-col': isFirst }\"\n [attr.colspan]=\"(row.isGroup && column.groupCellConfigs.colspan) || column.cellConfigs.colspan\"\n [attr.width]=\"column.width\"\n >\n </td>\n</ng-container>\n\n<!-- Drag -->\n<ng-container *ngIf=\"reorderController.rightReorderActivated$ | async\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Row Actions -->\n<td *ngIf=\"hasRowActions && !(reorderController.manualReorderActivated$ | async)\" class=\"fs-list-col row-actions\">\n <fs-list-row-actions [row]=\"row\"\n [index]=\"rowIndex\"\n [rowActions]=\"rowActions\"\n [menuRowActions]=\"menuRowActions\"\n [inlineRowActions]=\"inlineRowActions\"\n [restoreAction]=\"restoreAction\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n ></fs-list-row-actions>\n</td>\n\n<ng-template #dragCell>\n <ng-container *ngIf=\"dragCellVisible; else emptyCell\">\n <td class=\"fs-list-col drag-col\"\n (mousedown)=\"dragStart($event)\"\n (touchstart)=\"dragStart($event)\"\n >\n <mat-icon>drag_handle</mat-icon>\n </td>\n </ng-container>\n <ng-template #emptyCell>\n <td class=\"fs-list-col drag-col\"></td>\n </ng-template>\n</ng-template>\n", components: [{ type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: FsCellComponent, selector: "[fs-cell]", inputs: ["column", "row", "rowIndex"] }, { type: FsRowActionsComponent, selector: "fs-list-row-actions", inputs: ["row", "index", "restoreMode", "rowActions", "rowRemoved", "menuRowActions", "inlineRowActions", "restoreAction"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
4702
+ FsRowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FsRowComponent, selector: "[fs-list-row]", inputs: { row: "row", rowActionsRaw: "rowActionsRaw", groupActionsRaw: "groupActionsRaw", hasRowActions: "hasRowActions", rowEvents: "rowEvents", rowClass: "rowClass", restoreMode: "restoreMode", rowIndex: "rowIndex", columns: "columns", selection: "selection", rowRemoved: "rowRemoved" }, host: { properties: { "attr.role": "this.role", "class": "this.rowCssClass" } }, viewQueries: [{ propertyName: "cellRefs", predicate: ["td"], descendants: true }], ngImport: i0, template: "<!-- Drag -->\n<ng-container *ngIf=\"reorderController.leftReorderActivated$ | async\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Selection -->\n<ng-container *ngIf=\"selection\">\n <td class=\"fs-list-col fs-list-col-selection\">\n <ng-container *ngIf=\"!row.isFooter\">\n <mat-checkbox (change)=\"selectRow($event)\"\n [checked]=\"selected\"\n [indeterminate]=\"indeterminateSelected\">\n </mat-checkbox>\n </ng-container>\n </td>\n</ng-container>\n\n<!-- Content -->\n<ng-container *ngFor=\"let column of columns; trackBy: trackByFn; let isFirst = first\">\n <td fs-cell\n *ngIf=\"(isGroupRow && !column.groupHeaderColspanned)\n || (isGroupFooterRow && !column.groupFooterColspanned)\n || (!isGroupRow && !isGroupFooterRow && !column.cellColspanned)\"\n [column]=\"column\"\n [row]=\"row\"\n [rowIndex]=\"rowIndex\"\n [class]=\"column.cellConfigs.classesString\"\n [ngClass]=\"{ 'primary-col': isFirst }\"\n [attr.colspan]=\"(isGroupRow && column.groupHeaderConfigs.colspan)\n || (isGroupFooterRow && column.groupFooterConfigs.colspan)\n || column.cellConfigs.colspan\"\n [attr.width]=\"column.width\"\n >\n </td>\n</ng-container>\n\n<!-- Drag -->\n<ng-container *ngIf=\"reorderController.rightReorderActivated$ | async\">\n <ng-container *ngTemplateOutlet=\"dragCell\"></ng-container>\n</ng-container>\n\n<!-- Row Actions -->\n<td *ngIf=\"hasRowActions && !(reorderController.manualReorderActivated$ | async)\" class=\"fs-list-col row-actions\">\n <ng-container *ngIf=\"!isGroupFooterRow\">\n <fs-list-row-actions [row]=\"row\"\n [index]=\"rowIndex\"\n [rowActions]=\"rowActions\"\n [menuRowActions]=\"menuRowActions\"\n [inlineRowActions]=\"inlineRowActions\"\n [restoreAction]=\"restoreAction\"\n [restoreMode]=\"restoreMode\"\n [rowRemoved]=\"rowRemoved\"\n ></fs-list-row-actions>\n </ng-container>\n</td>\n\n<ng-template #dragCell>\n <ng-container *ngIf=\"dragCellVisible && !isGroupFooterRow; else emptyCell\">\n <td class=\"fs-list-col drag-col\"\n (mousedown)=\"dragStart($event)\"\n (touchstart)=\"dragStart($event)\"\n >\n <mat-icon>drag_handle</mat-icon>\n </td>\n </ng-container>\n <ng-template #emptyCell>\n <td class=\"fs-list-col drag-col\"></td>\n </ng-template>\n</ng-template>\n", components: [{ type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: FsCellComponent, selector: "[fs-cell]", inputs: ["column", "row", "rowIndex"] }, { type: FsRowActionsComponent, selector: "fs-list-row-actions", inputs: ["row", "index", "restoreMode", "rowActions", "rowRemoved", "menuRowActions", "inlineRowActions", "restoreAction"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }], pipes: { "async": i3$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
4617
4703
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsRowComponent, decorators: [{
4618
4704
  type: Component,
4619
4705
  args: [{
@@ -5378,7 +5464,8 @@ FsListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
5378
5464
  FsListCellDirective,
5379
5465
  FsListHeaderDirective,
5380
5466
  FsListFooterDirective,
5381
- FsListGroupCellDirective,
5467
+ FsListGroupHeaderDirective,
5468
+ FsListGroupFooterDirective,
5382
5469
  FsListGroupExpandTriggerDirective,
5383
5470
  FsListDraggableListDirective,
5384
5471
  FsListDraggableRowDirective,
@@ -5409,7 +5496,8 @@ FsListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "
5409
5496
  FsListCellDirective,
5410
5497
  FsListHeaderDirective,
5411
5498
  FsListFooterDirective,
5412
- FsListGroupCellDirective,
5499
+ FsListGroupHeaderDirective,
5500
+ FsListGroupFooterDirective,
5413
5501
  FsListGroupExpandTriggerDirective,
5414
5502
  FsListEmptyStateDirective,
5415
5503
  FsListContentDirective] });
@@ -5477,7 +5565,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
5477
5565
  FsListCellDirective,
5478
5566
  FsListHeaderDirective,
5479
5567
  FsListFooterDirective,
5480
- FsListGroupCellDirective,
5568
+ FsListGroupHeaderDirective,
5569
+ FsListGroupFooterDirective,
5481
5570
  FsListGroupExpandTriggerDirective,
5482
5571
  FsListDraggableListDirective,
5483
5572
  FsListDraggableRowDirective,
@@ -5497,7 +5586,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
5497
5586
  FsListCellDirective,
5498
5587
  FsListHeaderDirective,
5499
5588
  FsListFooterDirective,
5500
- FsListGroupCellDirective,
5589
+ FsListGroupHeaderDirective,
5590
+ FsListGroupFooterDirective,
5501
5591
  FsListGroupExpandTriggerDirective,
5502
5592
  FsListEmptyStateDirective,
5503
5593
  FsListContentDirective,
@@ -5516,5 +5606,5 @@ function FsListConfigFactory(config) {
5516
5606
  * Generated bundle index. Do not edit.
5517
5607
  */
5518
5608
 
5519
- export { ActionType, Column, FS_LIST_CONFIG, FS_LIST_DEFAULT_CONFIG, FsBodyComponent, FsCellComponent, FsFooterCellComponent, FsFooterComponent, FsFooterRowComponent, FsHeadCellComponent, FsHeadComponent, FsListCellDirective, FsListColumnDirective, FsListComponent, FsListContentDirective, FsListEmptyStateDirective, FsListFooterDirective, FsListGroupCellDirective, FsListGroupExpandTriggerDirective, FsListHeaderDirective, FsListLoaderComponent, FsListModule, FsListState, FsPaginationComponent, FsRowComponent, FsStatusComponent, List, PaginationController, PaginationStrategy, ReorderController, ReorderPosition, ReorderStrategy, RowAction, RowType, SelectionChangeType, SelectionController, SortingController, SortingDirection, StyleConfig };
5609
+ export { ActionType, Column, FS_LIST_CONFIG, FS_LIST_DEFAULT_CONFIG, FsBodyComponent, FsCellComponent, FsFooterCellComponent, FsFooterComponent, FsFooterRowComponent, FsHeadCellComponent, FsHeadComponent, FsListCellDirective, FsListColumnDirective, FsListComponent, FsListContentDirective, FsListEmptyStateDirective, FsListFooterDirective, FsListGroupExpandTriggerDirective, FsListGroupFooterDirective, FsListGroupHeaderDirective, FsListHeaderDirective, FsListLoaderComponent, FsListModule, FsListState, FsPaginationComponent, FsRowComponent, FsStatusComponent, List, PaginationController, PaginationStrategy, ReorderController, ReorderPosition, ReorderStrategy, RowAction, RowType, SelectionChangeType, SelectionController, SortingController, SortingDirection, StyleConfig };
5520
5610
  //# sourceMappingURL=firestitch-list.js.map