@anglr/grid
Version:
Angular module displaying grid
806 lines (725 loc) • 60.9 kB
Markdown
# Changelog
## Version 11.0.0 (2025-01-27)
### BREAKING CHANGES
- minimal supported version of `@angular` is `19.1.0`
- minimal supported version of `@jscrpt/common` is `7.0.0`
- minimal supported version of `@anglr/common` is `22.0.0`
- minimal supported version of `tslib` is `2.8.1`
- renamed `CellContextSAPipe` pipe to `CellContextPipe`
- renamed `CssGridTemplateColumnsSAPipe` pipe to `CssGridTemplateColumnsPipe`
- renamed `DataCellContextSAPipe` pipe to `DataCellContextPipe`
- renamed `InfinityNaNSAPipe` pipe to `InfinityNaNPipe`
- renamed `ReadValueSAPipe` pipe to `ReadValuePipe`
- renamed `ResolveForwardRefSAPipe` pipe to `ResolveForwardRefPipe`
- renamed `AttachPluginsSADirective` directive to `AttachPluginsDirective`
- renamed `ContentCellTemplateSADirective` directive to `ContentCellTemplateDirective`
- renamed `ContentContainerTemplateSADirective` directive to `ContentContainerTemplateDirective`
- renamed `ContentRowContainerTemplateSADirective` directive to `ContentRowContainerTemplateDirective`
- renamed `FooterCellTemplateSADirective` directive to `FooterCellTemplateDirective`
- renamed `FooterContainerTemplateSADirective` directive to `FooterContainerTemplateDirective`
- renamed `FooterRowContainerTemplateSADirective` directive to `FooterRowContainerTemplateDirective`
- renamed `GridContainerTemplateSADirective` directive to `GridContainerTemplateDirective`
- renamed `GridDataSADirective` directive to `GridDataDirective`
- renamed `HeaderCellTemplateSADirective` directive to `HeaderCellTemplateDirective`
- renamed `HeaderContainerTemplateSADirective` directive to `HeaderContainerTemplateDirective`
- renamed `HeaderRowContainerTemplateSADirective` directive to `HeaderRowContainerTemplateDirective`
- renamed `MatrixGridColumnSADirective` directive to `MatrixGridColumnDirective`
- renamed `OrderableSADirective` directive to `OrderableDirective`
- renamed `ShowMetadataSelectorForSADirective` directive to `ShowMetadataSelectorForDirective`
- renamed `TableGridBodyCellTemplateSADirective` directive to `TableGridBodyCellTemplateDirective`
- renamed `TableGridHeaderCellTemplateSADirective` directive to `TableGridHeaderCellTemplateDirective`
- renamed `UseTableSADirective` directive to `UseTableDirective`
- renamed `ContentContainerSAComponent` component to `ContentContainerComponent`
- renamed `ContentRowContainerSAComponent` component to `ContentRowContainerComponent`
- renamed `FooterContainerSAComponent` component to `FooterContainerComponent`
- renamed `FooterRowContainerSAComponent` component to `FooterRowContainerComponent`
- renamed `GridSAComponent` component to `GridComponent`
- renamed `GridContainerSAComponent` component to `GridContainerComponent`
- renamed `HeaderContainerSAComponent` component to `HeaderContainerComponent`
- renamed `HeaderRowContainerSAComponent` component to `HeaderRowContainerComponent`
- renamed `MatrixGridSAComponent` component to `MatrixGridComponent`
- renamed `TableGridColumnSAComponent` component to `TableGridColumnComponent`
- renamed `TableGridMetadataGathererSAComponent` component to `TableGridMetadataGathererComponent`
- renamed `VerticalDragNDropSelectionSAComponent` component to `VerticalDragNDropSelectionComponent`
- renamed `DialogMetadataSelectorSAComponent` component to `DialogMetadataSelectorComponent`
- renamed `CssDivsContentRendererSAComponent` component to `CssDivsContentRendererComponent`
- renamed `CssDivsBodyContentRendererSAComponent` component to `CssDivsBodyContentRendererComponent`
- renamed `CssDivsHeaderContentRendererSAComponent` component to `CssDivsHeaderContentRendererComponent`
- renamed `TableContentRendererSAComponent` component to `TableContentRendererComponent`
- renamed `TableContentRendererSAComponent` component to `TableContentRendererComponent`
- renamed `TableBodyContentRendererSAComponent` component to `TableBodyContentRendererComponent`
- renamed `TableHeaderContentRendererSAComponent` component to `TableHeaderContentRendererComponent`
- renamed `BaseDefaultTemplatesSAComponent` component to `BaseDefaultTemplatesComponent`
- renamed `CssGridDefaultTemplatesSAComponent` component to `CssGridDefaultTemplatesComponent`
- renamed `TableDefaultTemplatesSAComponent` component to `TableDefaultTemplatesComponent`
- renamed `AsyncDataLoaderSAComponent` component to `AsyncDataLoaderComponent`
- renamed `SyncDataLoaderSAComponent` component to `SyncDataLoaderComponent`
- renamed `NoGridInitializerSAComponent` component to `NoGridInitializerComponent`
- renamed `NoMetadataSelectorSAComponent` component to `NoMetadataSelectorComponent`
- renamed `NoOrderingSAComponent` component to `NoOrderingComponent`
- renamed `BasicPagingSAComponent` component to `BasicPagingComponent`
- renamed `LoadMorePagingSAComponent` component to `LoadMorePagingComponent`
- renamed `NoPagingSAComponent` component to `NoPagingComponent`
- renamed `PreviousNextPagingSAComponent` component to `PreviousNextPagingComponent`
- renamed `LimitedRowSelectorSAComponent` component to `LimitedRowSelectorComponent`
- renamed `NoRowSelectorSAComponent` component to `NoRowSelectorComponent`
- renamed `BasicRowSelectorSAComponent` component to `BasicRowSelectorComponent`
- renamed `SingleOrderingSAComponent` component to `SingleOrderingComponent`
- renamed `SimpleNoDataRendererSAComponent` component to `SimpleNoDataRendererComponent`
- renamed `QueryPermanentStorageGridInitializerSAComponent` component to `QueryPermanentStorageGridInitializerComponent`
- renamed `MatrixContentRendererSAComponent` component to `MatrixContentRendererComponent`
## Version 10.1.2 (2024-11-27)
### Bug Fixes
- fixed problem caused after upgrade to `Angular 19`, when grid without data does not display its columns (initialization order problem)
## Version 10.1.1 (2024-06-05)
### Bug Fixes
- fixed `BasicPagingSAComponent` component when in some cases does not render pages
- fixed `LoadMorePagingSAComponent` component when in some cases does not render button for loading more pages
- fixed `PreviousNextPagingSAComponent` component when in some cases does not render buttons for next previous correctly
## Version 10.1.0 (2024-05-17)
### Features
- new `DEFAULT_MATRIX_COLUMN_WIDTH` injection token, that is used for injecting default matrix column width
- new `provideDefaultMatrixColumnWidth` function, that provides default matrix column width
- new `GridDataSADirective` directive, that sets up static data for grid
- **implements**
- `onChanges`
- **inputs**
- `data` array of data that are displayed
- updated `MatrixContentRendererSAComponent` component
- now supports excluding of columns for row definition
- now supports rendering multiple grid containers with specifying columns and exclude
- updated `MatrixGridSAComponent` component
- now supports multipe `GridContainerTemplateSADirective`
- updated `HeaderRowContainerTemplateSADirective` directive
- **new inputs**
- `headerRowContainerTemplateExclude` indication whether list of columns will be excluded, not included in this row
- new `provideDefaultMatrixColumnWidth` function, that provides default matrix column width
- updated `ContentRowContainerTemplateSADirective` directive
- **new inputs**
- `contentRowContainerTemplateExclude` indication whether list of columns will be excluded, not included in this row
- new `provideDefaultMatrixColumnWidth` function, that provides default matrix column width
- updated `FooterRowContainerTemplateSADirective` directive
- **new inputs**
- `footerRowContainerTemplateExclude` indication whether list of columns will be excluded, not included in this row
- updated `GridContainerTemplateSADirective` directive
- **new inputs**
- `gridContainerTemplate` array of column ids to be rendered in this grid container, if not specified or null all available columns will be rendered
- `gridContainerTemplateExclude` indication whether list of columns will be excluded, not included in this grid container
- updated `GridContext` interface
- **new properties**
- `gridColumns` all currently available columns metadata for current grid container
- updated `MatrixGridModule` module,
- now exports also `CssGridTemplateColumnsSAPipe`
- updated `MatrixGridMetadata` interface
- **properties**
- `gridContainer` can now also be an array
- *subpackage* `@anglr/grid/material`
- new `SelectionStoreDirective` directive, that sets metadata selector storage name
- is `standalone`
- **attributes**
- `selectionStore` name of store to be set up
## Version 10.0.1 (2023-12-08)
### Bug Fixes
- fixed `DataLoaderAbstractComponent` not working `autoLoadData` option, which caused data loaders to automaticaly load data even when set to `false`
## Version 10.0.0 (2023-11-13)
### Bug Fixes
- all buttons now have `type="button"`
### Features
- new `GridPluginType` enum, that holds available plugin types
- **Values**
- `ContentRenderer` content renderer used for rendering content area of grid
- `DataLoader` data loader used for obtaining data for grid
- `GridInitializer` initializer that is used for obtaining stored initialization data for grid
- `MetadataSelector` allows selection of metadata that should be displayed
- `NoDataRenderer` renderer that is used for rendering content when no data are present
- `Ordering` enables and handles ordering of data
- `Paging` enables and handles paging of data
- `RowSelector` handles selection of rows
- new `TableGridBodyCellTemplateSADirective` directive, that is used for obtaining template for table grid body cell
- **properties**
- `template` template that is this structural directive used to
- new `TableGridHeaderCellTemplateSADirective` directive, that is used for obtaining template for table grid header cell
- **properties**
- `template` template that is this structural directive used to
- new `GridPluginType` enum, that represents available plugin types
- `ContentRenderer` content renderer used for rendering content area of grid
- `DataLoader` data loader used for obtaining data for grid
- `GridInitializer` initializer that is used for obtaining stored initialization data for grid
- `MetadataSelector` allows selection of metadata that should be displayed
- `NoDataRenderer` renderer that is used for rendering content when no data are present
- `Paging` enables paging of data
- `RowSelector` handles selection of rows
- new `Ordering` interface, that is public API for ordering
- **properties**
- `ordering` current ordering value
- `orderingChange` occurs when current ordering has changed
- **method**
- `orderByColumn` marks column for odering
- `setOrdering` sets ordering to ordering plugin
- `getCssClassesForColumn` obtains css classes for column
- new `OrderingOptions` interface, that represents ordering options allow configuring ordering plugin
- **properties**
- `indicatorRenderer` type of orderable indicator renderer
- new `CssClassesOrdering` interface, that represents css classes that are used for ordering
- **properties**
- `orderable` indication that column is orderable
- `none` no ordering
- `asc` ordering is ascending
- `desc` ordering is descending
- new `SingleOrderingOptions` interface, that are ordering options for single ordering
- new `SingleOrdering` interface, that is public API for single ordering
- new `SingleOrderingSAComponent` component, that is component used for single ordering, used for ordering using single column
- **implements**
- `SingleOrdering`
- new `NoOrderingOptions` interface, that is no ordering options for ordering
- new `NoOrdering` interface, that is public API for no ordering
- new `NoOrderingSAComponent` component, that is component used for no ordering
- **implements**
- `NoOrdering`
- new `ORDERING_TYPE` injection token for 'Ordering' implementation
- new `ORDERING_OPTIONS` injection token for injecting options for ordering
- new `ResolveForwardRefSAPipe` pipe, that resolves forwardRef type into type
- new `ReadValueSAPipe` pipe, that reads value from object and returns it, can address nested objects using '.' notation
- new `CellTemplateContext` interface, that is context for cell template
- **propertie**
- `column` object of column metadata itself
- new `CellContextFactoryFn` type, that represents factory function signature for obtaining cell context
- new `DataCellContextFactoryFn` type, that represents factory function signature for obtaining data cell context
- new `CELL_CONTEXT_FN` injection token for obtaining cell context factory function
- new `DATA_CELL_CONTEXT_FN` injection token for obtaining data cell context factory function
- new `GRID_INSTANCE` injection token for obtaining grid instance inside grid plugins and nested types
- new `DEFAULT_OPTIONS` injection token used for injecting default options
- new `CONTENT_RENDERER_CURRENT_VIEW_CONTAINER` injection token used for sharing content renderers current view container for rendering into 'container' elements
- new `ORDERABLE_CELL` injection token used for obtaining orderable directive from cell
- new `cellContextFactory` function, that creates context object for cell in grid
- new `dataCellContextFactory` function, that creates context object for data cell in grid
- new `CellContextSAPipe` pipe, that obtains cell context for template
- new `DataCellContextSAPipe` pipe, that obtains data cell context for template
- new `provideCellContextFactoryFn` function, that provides factory function for cell context
- new `provideDataCellContextFactoryFn` function, that provides factory function for data cell context
- new `OrderableSADirective` directive, that is used for handling ordering of column
- **inputs**
- `orderable` gets or sets indication whether is column orderable or not
- `orderById` id of column which should be used for order by
- new `MatrixGridSAComponent` component, that represents grid component used for rendering grid, configured with special content renderer and metadata gatherer
- **extends** `GridSAComponent`
- **implements**
- `Grid`
- `MetadataGatherer`
- `AfterContentInit`
- new `RenderableContentComponent` component, that is base class for all renderable content components
- **implements**
- `OnInit`
- new `GridContainerSAComponent` component, that represents grid container
- **extends** `RenderableContentComponent`
- new `HeaderContainerSAComponent` component, that represents header container
- **extends** `RenderableContentComponent`
- new `ContentContainerSAComponent` component, that represents content container
- **extends** `RenderableContentComponent`
- new `FooterContainerSAComponent` component, that represents footer container
- **extends** `RenderableContentComponent`
- new `HeaderRowContainerSAComponent` component, that represents header row container
- **extends** `RenderableContentComponent`
- new `ContentRowContainerSAComponent` component, that represents content row container
- **extends** `RenderableContentComponent`
- new `FooterRowContainerSAComponent` component, that represents footer row container
- **extends** `RenderableContentComponent`
- new `GridContainerTemplateSADirective` directive, that is used for obtaining template for grid content renderer container
- **properties**
- `template` obtained template by this directive
- new `HeaderContainerTemplateSADirective` directive, that is used for obtaining template for grid content renderer header container
- **properties**
- `template` obtained template by this directive
- new `ContentContainerTemplateSADirective` directive, that is used for obtaining template for grid content renderer content (body) container
- **properties**
- `template` obtained template by this directive
- new `FooterContainerTemplateSADirective` directive, that is used for obtaining template for grid content renderer footer container
- **properties**
- `template` obtained template by this directive
- new `HeaderRowContainerTemplateSADirective` directive, that is used for obtaining template for grid content renderer header row container
- **properties**
- `template` obtained template by this directive
- **inputs**
- `headerRowContainerTemplatePredicate` predicate which controls rendering of row template, if not specified row is rendered
- `headerRowContainerTemplate` array of column ids to be rendered in this row, if not specified or null all available columns will be rendered
- new `ContentRowContainerTemplateSADirective` directive, that is used for obtaining template for grid content renderer content (body) row container
- **properties**
- `template` obtained template by this directive
- **inputs**
- `contentRowContainerTemplatePredicate` predicate which controls rendering of row template, if not specified row is rendered
- `contentRowContainerTemplate` array of column ids to be rendered in this row, if not specified or null all available columns will be rendered
- new `FooterRowContainerTemplateSADirective` directive, that is used for obtaining template for grid content renderer footer row container
- **properties**
- `template` obtained template by this directive
- **inputs**
- `footerRowContainerTemplatePredicate` predicate which controls rendering of row template, if not specified row is rendered
- `footerRowContainerTemplate` array of column ids to be rendered in this row, if not specified or null all available columns will be rendered
- new `MatrixGridColumnSADirective` directive, that is used for gathering information about matrix grid column
- **implements**
`MatrixGridColumn`
- new `HeaderCellTemplateSADirective` directive, that is used for obtaining template for header cell
- **properties**
- `template` obtained template by this directive
- new `ContentCellTemplateSADirective` directive, that is used for obtaining template for content cell
- **properties**
- `template` obtained template by this directive
- new `FooterCellTemplateSADirective` directive, that is used for obtaining template for footer cell
- **properties**
- `template` obtained template by this directive
- new `CssClassesMatrixContentRenderer` interface, that are css classes for matrix content renderer
- **extends**
- `CssClassesContentRenderer`
- **properties**
- `gridContainerClass` css class for grid container
- `headerContainerClass` css class for header container
- `contentContainerClass` css class for content (body) container
- `footerContainerClass` css class for footer container
- `headerRowContainerClass` css class for header row containers
- `contentRowContainerClass` css class for content (body) row containers
- `footerRowContainerClass` css class for footer row containers
- new `MatrixContentRendererOptions` interface, that are matrix content renderer options
- **extends**
- `ContentRendererOptions`
- **properties**
- `defaults` type used for creating component containing default templates
- new `MatrixContentRenderer` interface, that is public API for matrix content renderer
- **extends**
- `ContentRenderer`
- new `MatrixGridMetadata` interface, that is matrix grid metadata, contains templates for each rendered element
- **extends**
- `TableGridMetadata`
- **properties**
- `gridContainer` template for grid container, with metadata
- `headerContainer` template for grid header, with metadata
- `contentContainer` template for grid content (body), with metadata
- `footerContainer` template for grid footer, with metadata
- `headerRowContainer` templates for header rows, with metadata
- `contentRowContainer` templates for content rows (each data row can be rendered as multiple rows), with metadata
- `footerRowContainer` templates for footer rows, with metadata
- new `MatrixContentRendererSAComponent` component, that is used for rendering content using new 'matrix' metadata gatherer
- **implements**
- `MatrixContentRenderer`
- `GridPlugin`
- `OnDestroy`
- new `CurrentViewContainer` interface, that is type that allows storing and sharing view container of 'container' element
- **properties**
- `viewContainer` view container that is used for rendering content of 'container' element
- new `GridContext` interface, that represents context that is available in content renderer top levels, outside of data scope
- **properties**
- `grid` instance of grid itself
- `plugins` instance of grid plugins
- `data` all data that are currently rendered
- `columns` all currently rendered columns metadata
- `contentCssClasses` css classes used for rendering content
- new `GridRowContext` interface, that represents context that is available in content renderer at row level (any type of row)
- **extends**
- `GridContext`
- **properties**
- `index` index of rendered low in current page
- `rowColumns` all currently rendered columns metadata
- new `GridDataRowContext` interface, that represents context that is available in content renderer at row level (content data rows only)
- **extends**
- `GridRowContext`
- **properties**
- `datum` instance of datum for current row
- `startingIndex` starting index of currently displayed items
- `rowIndex` row index of displayed item
- `isSelected` indication whether is row item selected
- new `GridCellContext` interface, that represents context that is available in content renderer at cell level (any type of cell)
- **extends**
- `GridRowContext`
- **properties**
- `metadata` metadata for current cell (column)
- `isSelected` indication whether is row item selected
- new `GridDataCellContext` interface, that represents context that is available in content renderer at cell level (content data cells only)
- **extends**
- `GridDataRowContext`
- **properties**
- `metadata` metadata for current cell (column)
- new `MatrixGridColumn` interface, that represents matrix grid column definition
- **extends**
- `GridColumn`
- **properties**
- `width` width as style string including units, not used in renderer, but can be used by user later for automation
- `headerTemplate` template that is used for rendering of cell in header row
- `bodyTemplate` template that is used for rendering of cell in content (body) row
- `footerTemplate` template that is used for rendering of cell in footer row
- new `MatrixContentRendererDefautTemplates` interface, that are default templates for matrix content renderer
- **properties**
- `gridContainer` default template for grid container
- `headerContainer` default template for grid header
- `contentContainer` default template for grid content (body)
- `footerContainer` default template for grid footer
- `headerRowContainer` default templates for header rows
- `contentRowContainer` default templates for content rows (each data row can be rendered as multiple rows)
- `footerRowContainer` default templates for footer rows
- new `BaseDefaultTemplatesSAComponent` component, that represents base component that stores default templates for content renderig
- **implements**
- `MatrixContentRendererDefautTemplates`
- new `CssGridDefaultTemplatesSAComponent` component, that represents component that stores default templates for css grid content renderig
- **extends** `BaseDefaultTemplatesSAComponent`
- **implements**
- `MatrixContentRendererDefautTemplates`
- new `TableDefaultTemplatesSAComponent` component, that represents component that stores default templates for table content renderig
- **extends** `BaseDefaultTemplatesSAComponent`
- **implements**
- `MatrixContentRendererDefautTemplates`
- new `NoRowSelectorOptions` interface, that is no row selector options
- **extends**
- `RowSelectorOptions`
- new `NoRowSelector` interface, that is public API for no row selector
- **extends**
- `RowSelector`
- new `NoRowSelectorSAComponent` component, that is component used for handling no row selection
- **implements**
- `NoRowSelector`
- `GridPlugin`
- new `GridOrderableCell` interface, that represents class used for storing orderable directive instance
- **properties**
- `orderable` instance of orderable directive
- new `rowColumnsAttribute` function, that transforms row columns attribute value into row columns value
- new `CssGridTemplateColumnsSAPipe` pipe, that creates css value for 'grid-template-columns' property
- new `OrderableIndicatorRenderer` interface, that represents definition of renderer that should render orderable indicator
- **methods**
- `create` creates indicator html
- `destroy` destroys indicator html
- `apply` applies css classes to orderable indicator
- new `DefaultOrderableIndicatorRenderer` class, that is default implementation of orderable indicator renderer
- **implements**
- `OrderableIndicatorRenderer`
- new `UseTableSADirective` directive, that configures MatrixContentRenderer to use TableDefaultTemplates
- new `MatrixGridModule` module for matrix grid components and directives
- new `GridPluginInstancesDef` class, that is implementation of GridPluginInstances
- new `InfinityNaNSAPipe` pipe, that transforms NaN value into inifinity symbol
- new `AttachPlugins` interface, that is definition of plugin instances that can be attached to grid
- **properties**
- `contentRenderer` instance of content renderer plugin
- `dataLoader` instance of data loader plugin
- `gridInitializer` instance of grid initializer plugin
- `metadataSelector` instance of metadata selector plugin
- `noDataRenderer` instance of no data renderer plugin
- `ordering` instance of ordering plugin
- `paging` instance of paging plugin
- `rowSelector` instance of row selector plugin
- new `AttachPluginsSADirective` directive, that is used for attaching external plugins to grid
- **implements**
- `OnChanges`
- **inputs**
- `attachPlugins` object storing external plugins
- `autoInitialize` automatically initialize grid after new instances are set
- `forceReinitialization` indication whether perform force reinitialization
- new `ShowMetadataSelectorForSADirective` directive, that shows metadata selector on click for provided grid
- **inputs**
- `showMetadataSelectorFor` grid which metadata selector will be displayed
- new `VerticalDragNDropSelectionOptions` interface, that represents options for vertical drag n drop selection
- **properties**
- `dragDisabled` indication whether is drag disabled
- new `provideGridOptions` function, that provides grid options
- new `providePagingType` function, that provides paging type
- new `provideOrderingType` function, that provides ordering type
- new `provideGridInitializerType` function, that provides grid initializer type
- new `provideDataLoaderType` function, that provides data loader type
- new `provideContentRendererType` function, that provides content renderer type
- new `provideMetadataSelectorType` function, that provides metadata selector type
- new `provideNoDataRendererType` function, that provides no data renderer type
- new `provideRowSelectorType` function, that provides row selector type
- new `provideContentRendererOptions` function, that provides content renderer options
- new `provideDataLoaderOptions` function, that provides data loader options
- new `provideGridInitializerOptions` function, that provides grid initializer options
- new `provideMetadataSelectorOptions` function, that provides metadata selector options
- new `provideNoDataRendererOptions` function, that provides no data renderer options
- new `providePagingOptions` function, that provides paging options
- new `provideOrderingOptions` function, that provides ordering options
- new `provideRowSelectorOptions` function, that provides row selector options
- updated `DialogMetadataSelectorComponentData` interface
- **new methods**
- `resetMetadata` resets metadata to default
- updated `MetadataSelector` interface
- **new methods**
- `resetMetadata` resets metadata to default
- updated `TableGridColumnSAComponent` component
- now supports also obtaining template using directives `TableGridBodyCellTemplateSADirective`, `TableGridHeaderCellTemplateSADirective`
- updated `Grid` interface
- **new properties**
- `pluginsOptionsInitialized` occurs everytime when plugins options initialization changes, if value is false plugins options were not initialized yet, or are being reinitialized
- updated `GridSAComponent` component
- updated implementation to correspond with new interface
- updated `BodyContentRendererOptions` interface
- **new properties**
- `rowClick` callback allows handle click on the row
- `rowCssClass` callback called for each row with data for row returning css class, that will be applied to row element
- updated `DataLoaderOptions` interface
- **new properties**
- `accumulateData` indication whether accumulate data with next paging result
- updated `GridPluginInstances` interface
- **new properties**
- `contentRenderer` instance of content renderer that renders obtained data
- `dataLoader` instance of data loader that is used for obtaining data that will be displayed
- `gridInitializer` instance of grid initializer that is used for obtaining stored grid data
- `metadataSelector` instance of metadata selector used for gathering and manipulation with metadata
- `noDataRenderer` instance of no data renderer used for rendering information that there are no data currently
- `ordering` instance of ordering used for applying ordering to data
- `paging` instance of paging used for applying paging to data
- `rowSelector` instance of row selector used for handling row selection
- updated `DialogMetadataSelectorOptions` interface
- **new properties**
- `dialogCompnentOptions` options for dialog component
- updated `DialogMetadataSelectorComponentData` interface
- **new properties**
- `options` options for dialog component
- *subpackage* `@anglr/grid/extensions`
- new `getSelectedIds` function, that gets currently selected ids
- new `invalidateContent` function, that invalidates content renderer view, redraws content
- new `isSelectedAnyOnPage` function, that gets indication whether is selected any row on current page
- new `areSelectedAllOnPageLimited` function, that gets indication whether are all currently displayed items on page selected or not, works with DataResponse DataLoader
- new `patchPluginsOptions` function, that is used to patch plugins options only
- new `reinitialize` function, that reinitializes grid
- updated `reinitializeOptions`, new signatures supporting `force` parameter
### BREAKING CHANGES
- minimal supported version of `node.js` is `18`
- minimal supported version of `@angular` is `17.0.1`
- minimal supported version of `@angular` material is `17.0.0`
- minimal supported version of `@jscrpt/common` is `5.0.0`
- minimal supported version of `@anglr/common` is `19.0.0`
- minimal supported version of `@rxjs` is `7.5.7`
- minimal supported version of `tslib` is `2.6.2`
- completely refatored styles
- no longer depends on `scrollmagic`
- removed `@anglr/grid/scrollmagic` subpackage, it was not used, can be implemented using pure css
- dropped support of `NodeJs` lower than `18.13`
- all `any` generic defaults changed to `unknown` or extended type
- all components, directives, pipes are now standalone
- strict null checks and types
- renamed `GatheredMetadata` to `GridMetadata`
- renamed `BasicTableColumn` to `TableGridColumn`
- renamed `BasicTableMetadata` to `TableGridMetadata`
- renamed `BasicTableMetadataGathererComponent` to `TableGridMetadataGathererSAComponent`
- renamed `BasicTableColumnComponent` to `TableGridColumnSAComponent`
- renamed `BasicTableColumnContext` to `DataCellTemplateContext` and changed to interface and extended with `rowSelected` inidication
- renamed `GridComponent` to `GridSAComponent`
- renamed `SimpleNoDataRendererComponent` to `SimpleNoDataRendererSAComponent`
- renamed `BasicRowSelectorComponent` to `BasicRowSelectorSAComponent`
- renamed `LimitedRowSelectorComponent` to `LimitedRowSelectorSAComponent`
- renamed `NoMetadataSelectorComponent` to `NoMetadataSelectorSAComponent`
- renamed `NoGridInitializerComponent` to `NoGridInitializerSAComponent`
- renamed `QueryGridInitializerComponent` to `QueryGridInitializerSAComponent`
- renamed `SyncDataLoaderComponent` to `SyncDataLoaderSAComponent`
- renamed `AsyncDataLoaderComponent` to `AsyncDataLoaderSAComponent`
- renamed `NoPagingComponent` to `NoPagingSAComponent`
- renamed `BasicPagingComponent` to `BasicPagingSAComponent`
- renamed `LoadMorePagingComponent` to `LoadMorePagingSAComponent`
- renamed `PreviousNextPagingComponent` to `PreviousNextPagingSAComponent`
- renamed `PageVirtualScrollPagingComponent` to `PageVirtualScrollPagingSAComponent`
- renamed `ContentVirtualScrollPagingComponent` to `ContentVirtualScrollPagingSAComponent`
- renamed `TableContentRendererComponent` to `TableContentRendererSAComponent`
- renamed `AdvancedTableBodyContentRendererComponent` to `AdvancedTableBodyContentRendererSAComponent`
- renamed `TableBodyContentRendererComponent` to `TableBodyContentRendererSAComponent`
- renamed `CssDivsContentRendererComponent` to `CssDivsContentRendererSAComponent`
- renamed `CssDivsBodyContentRendererComponent` to `CssDivsBodyContentRendererSAComponent`
- renamed `CssDivsHeaderContentRendererComponent` to `CssDivsHeaderContentRendererSAComponent`
- renamed `TableHeaderContentRendererComponent` to `TableHeaderContentRendererSAComponent`
- renamed `QueryPermanentStorageGridInitializerComponent` to `QueryPermanentStorageGridInitializerSAComponent`
- removed `GridPluginGeneric`, now `GridPlugin` is generic with default value
- removed `AdvancedTableBodyContentRendererSAComponent` component, now standard `TableBodyContentRendererSAComponent` has same functionality
- removed `AdvancedTableBodyContentRendererOptions` interface, now standard `TableBodyContentRendererOptions` has same functionality
- removed `AdvancedTableBodyContentRenderer` interface, now standard `BodyContentRenderer` has same functionality
- removed `BasicOrderableColumn` interface
- removed `VirtualScrollPagingAbstractComponent` component, not used, old implementation
- removed `PageVirtualScrollPagingSAComponent` component, not used, old implementation
- removed `ContentVirtualScrollPagingSAComponent` component, not used, old implementation
- removed `CdkVirtualScrollPagingComponent` component, not used, old implementation
- removed `VirtualScrollTableContentRendererComponent` component, not used, based on old renderer
- removed `VirtualScrollTableHeaderContentRendererComponent` component, not used, based on old renderer
- removed `VirtualScrollTableBodyContentRendererComponent` component, not used, based on old renderer
- removed `VirtualScrollPaging` interface, not used, old implementation
- removed `VirtualScrollPagingOptions` interface, not used, old implementation
- removed `CssClassesVirtualScrollPaging` interface, not used, old implementation
- removed `PageVirtualScrollPaging` interface, not used, old implementation
- removed `PageVirtualScrollPagingOptions` interface, not used, old implementation
- removed `ContentVirtualScrollPaging` interface, not used, old implementation
- removed `ContentVirtualScrollPagingOptions` interface, not used, old implementation
- removed `CdkVirtualScrollPaging` interface, not used, old implementation
- removed `CdkVirtualScrollPagingOptions` interface, not used, old implementation
- removed `CssClassesCdkVirtualScrollPaging` interface, not used, old implementation
- removed `VirtualScrollTableHeaderContentRenderer` interface, not used, based on old renderer
- removed `VirtualScrollTableHeaderContentRendererOptions` interface, not used, based on old renderer
- removed `CssClassesVirtualScrollTableHeaderContentRenderer` interface, not used, based on old renderer
- removed `VirtualScrollTableBodyContentRenderer` interface, not used, based on old renderer
- removed `VirtualScrollTableBodyContentRendererOptions` interface, not used, based on old renderer
- removed `VirtualScrollTableContentRenderer` interface, not used, based on old renderer
- removed `VirtualScrollTableContentRendererOptions` interface, not used, based on old renderer
- removed `CssClassesVirtualScrollTableContentRenderer` interface, not used, based on old renderer
- removed `AdvancedMetadataSelectorComponent` component, not used, no replacement
- removed `CssClassesAdvancedMetadataSelector` interface, not used, no replacement
- removed `AdvancedMetadataSelectorTexts` interface, not used, no replacement
- removed `AdvancedMetadataSelectorOptions` interface, not used, no replacement
- removed `AdvancedMetadataSelector` interface, not used, no replacement
- removed `AdvancedGridColumn` interface, not used, no replacement
- removed `DialogMetadataSelectorContentComponent` interface, not needed
- removed `PagingPosition` enum, not used, if you need to place paging above grid, just place it outside and use instance
- old `ContentRendererOptions` renamed to `HeaderBodyContentRendererOptions`
- new `ContentRendererOptions` without `plugins`
- removed grouped table definition, use new syntax to achieve grouped header columns
- removed `HeaderTableGroupColumn` interface
- removed `HeaderTableGroup` interface
- removed `GroupedTableMetadata` interface
- removed `HeaderTableGroupContext` class
- removed `GroupedTableMetadataGathererComponent` component
- removed `HeaderTableGroupComponent` component
- removed `HeaderTableGroupColumnComponent` component
- removed `GroupedTableHeaderContentRendererComponent` component
- removed `GroupedGridModule` module
- removed all plugin identifier contants, use `GridPluginType` enum instead
- ordering was completely refactored and moved into new plugin, removed from content renderer
- updated `Grid` interface
- no longer implements `Invalidatable`, no use for this method does nothing
- `initialize` has new `force` parameter
- updated `GridPlugin` interface
- `initialize` has new `force` parameter
- updated `GridOptions` interface
- removed `pagingPosition` property
- updated `Paging` interface
- now using signals for `page` and `itemsPerPage`
- now setting `page` and `itemsPerPage` using functions
- removed totalCount, paging obtains totalCount from `DataLoader`
- updated `MetadataGatherer` interface, now using signals
- updated `MetadataSelector` interface, now using signals
- updated `CssClassesBasicPaging` interface, completely refactored, incompatible with previous one
- updated `CssClassesPreviousNextPaging` interface, completely refactored, incompatible with previous one
- updated `CssClassesLoadMorePaging` interface, completely refactored, incompatible with previous one
- updated `CssClassesSimpleNoDataRenderer` interface, completely refactored, incompatible with previous one
- updated `CssClassesVerticalDragNDropSelection` interface, completely refactored, incompatible with previous one
- updated `CssClassesDialogMetadataSelector` interface, completely refactored, incompatible with previous one
- updated all paging plugins to correspond with new `Paging` interface
- updated all plugins to be in line with new `GridPlugin` interface
- *subpackage* `@anglr/grid/extensions`
- updated `setOrdering` function, is now async function and no longer refresh data
- updated `setPage` function, is now async function and no longer refresh data
- *subpackage* `@anglr/grid/material`
- renamed `VerticalDragNDropSelectionComponent` to `VerticalDragNDropSelectionSAComponent`
- renamed `DialogMetadataSelectorComponent` to `DialogMetadataSelectorSAComponent`
## Version 9.0.4 (2023-01-14)
### Bug Fixes
- fixed typings for metadata selectors, now correctly generic type extends `GatheredMetadata` also for material subpackage
## Version 9.0.3 (2023-01-14)
### Bug Fixes
- fixed typings for metadata selectors, now correctly generic type extends `GatheredMetadata`
## Version 9.0.2 (2022-02-28)
### Bug Fixes
- fixed check for changes in async loader
## Version 9.0.1 (2022-02-22)
### Bug Fixes
- fixed typings, not using rolled up typings for now
## Version 9.0.0 (2022-02-21)
### BREAKING CHANGES
- minimal supported version of *Angular* is `13.1.0`
- minimal supported version of `@jscrpt/common` is `2.2.0`
- minimal supported version of `@anglr/common` is `10.0.0`
- compiled as *Angular IVY* **only** with new *APF*
- removed support of *es5* target and using latest package.json features
- removed dependency `@anglr/types`, all mising types used directly here
- dropped support of `Node.js <= 12.20`
## Version 8.0.4 (2021-02-12)
### Bugfixes
- `TableHeaderContentRendererComponent` and `GroupedTableHeaderContentRendererComponent` now supports fallback for `undefined` title, now using column *title*
## Version 8.0.3 (2020-09-09)
### Bugfixes
- `serializeSimpleOrdering` and `deserializeSimpleOrdering` are now using uri *decoding/encoding*
## Version 8.0.2 (2020-06-17)
### Bugfixes
- `LoadMorePagingComponent` fixed static load more button text
## Version 8.0.1 (2020-06-17)
### Bugfixes
- `HeaderContentRendererAbstractComponent` fixed initial setup of ordering css classes when using stored ordering
## Version 8.0.0 (2020-04-08)
### Features
- `QueryPermanentStorageGridInitializerComponent` now using `PermanentStorage` to store state instead of `CookieService`
- `DialogMetadataSelectorComponent` now using `PermanentStorage` to store state instead of `CookieService`
- all generic types are now optional, all defaults to `any`
- moved logic from `PagingInitializer` to `GridInitializer`
- from `NoPagingInitializerComponent` to `NoGridInitializerComponent`
- from `QueryPagingInitializerComponent` to `QueryGridInitializerComponent`
- from `QueryCookiePagingInitializerComponent` to `QueryCookieGridInitializerComponent`
### BREAKING CHANGES
- removed deprecated `PagingInitializer` plugin
- renamend `QueryCookieGridInitializerComponent` to `QueryPermanentStorageGridInitializerComponent`
- renamend `QueryCookieGridInitializerOptions` to `QueryPermanentStorageGridInitializerOptions`
- `DialogMetadataSelectorOptions` property `cookieName` renamed to `storageName`
- `QueryPermanentStorageGridInitializerOptions` property `cookieIppName` renamed to `storageIppName`
- now depends on `@anglr/common` *7.3.0* version minimum
## Version 7.1.1
- fixed `NoGridInitializerComponent` which now using existing `PagingInitializer` to be backward compatible until next major version
## Version 7.1.0
- added new `CssDivsContentRendererComponent` as `ContentRenderer` plugin (using css grid)
- added new `CssDivsHeaderContentRendererComponent` as `HeaderContentRenderer` plugin (using css grid)
- added new `CssDivsBodyContentRendererComponent` as `BodyContentRenderer` plugin (using css grid)
- deprecated `PagingInitializer` plugin, use new `GridInitializer` (in next major version `PagingInitializer` will be removed)
- added new `GridInitializer` plugin allowing obtaining obtaining and storing state of grid to *external* storage
- for now `GridInitializer` is internally using `PagingInitializer` (in next major version this logic will be moved directly into `GridInitializer`)
- all built-in `Paging` plugins are using `GridInitializer`, custom `Paging` plugins should do same
- `GridInitializer` has same functionality as `PagingInitializer` extended with storing of *ordering*
- added new `NoGridInitializerComponent` as `GridInitializer` plugin that does nothing
- added new `QueryGridInitializerComponent` as `GridInitializer` plugin that is using query string for storing data
- added new `QueryCookieGridInitializerComponent` as `GridInitializer` plugin that extends `QueryGridInitializerComponent` and allows to store *items per page* also in cookie
- added `serializeSimpleOrdering`, `deserializeSimpleOrdering` helper functions for transformation of `SimpleOrdering` to and out of `string`
- added new `LimitedRowSelectorComponent` as `RowSelector` plugin that allows limitation of selected rows
- added `applyRowSelectionBlock` helper function that applies block of change event to *checkbox* inputs
- method `resetMetadata` of `HeaderContentRenderer` now have optional parameter `force` indicating whether forcibly reset metadata
- added extension method `setOrdering` which allows setting ordering from code
## Version 6.2.4
- fixed `BasicRowSelectorComponent` `selectItem` method, now correctly changes state of selected row
## Version 7.0.0
- added `CssClassesContentRenderer` for `ContentRenderer` that allows to use css class on content renderer
- updated to latest stable *Angular* 9
- added generating of API doc
## Version 6.2.3
- added extension method `patchOptions` which patches options without running initialization of grid, only initialize options
## Version 6.2.2
- extension method `areSelectedAllOnPage` extended with optional parameter `predicate` which allows conditionally return info whether selected all
## Version 6.2.1
- extension method `selectAllOnPage` extended with optional parameter `predicate` which allows conditionally select all
## Version 6.2.0
- `GridComponent` now renders without *wrapper* div around plugins
- *subpackage* `@anglr/grid/material`
- added new `VirtualScrollTableContentRendererModule` that allows usage of *VirtualScrollContentRenderer* (experimental, needs optimalization)
- added new `VirtualScrollTableContentRendererComponent` as `ContentRenderer` plugin (using angular cdk virtual scroll)
- added new `VirtualScrollTableHeaderContentRendererComponent` as `HeaderContentRenderer` plugin (using angular cdk virtual scroll)
- added new `VirtualScrollTableBodyContentRendererComponent` as `BodyContentRenderer` plugin (using angular cdk virtual scroll)
- refactored `DataLoader`, now holds information about its *state* and emits event when this *state* changes
- state `DataLoaderState` has 5 values
- `NoDataRenderer` now using these new *states* of `DataLoader` and displays more detail info about state
## Version 6.1.3
- added missing *title* with tooltip for `TableHeaderContentRendererComponent` and `GroupedTableHeaderContentRendererComponent`
## Version 6.1.2
- *subpackage* `@anglr/grid/material`
- fixed compilation error
## Version 6.1.1
- *subpackage* `@anglr/grid/material`
- fix `DialogMetadataSelectorComponent` export now correctly exported as stated
- added missing import `MatDialogModule` to `DialogMetadataSelectorModule`
- `VerticalDragNDropSelectionComponent`
- added padding to component
- added icon for dragging
## Version 6.1.0
- created *subpackage* `@anglr/grid/material` containing all `@angular/material` dependent code
- added new `DialogMetadataSelectorComponent` as `MetadataSelector` plugin (using angular material dialog)
- added new `VerticalDragNDropSelectionComponent` that is used as default content of `DialogMetadataSelectorComponent`
- created *subpackage* `@anglr/grid/extensions` containing all `extensions` methods (moved sources to this folder)
- added new extension method `showMetadataSelector` allowing to display metadata selector
- added method `show` to `MetadataSelector`
- removed `TextsLocator` plugin and everything about it, replaced with `@anglr/common` `StringLocalization`
- fixed `BasicPagingComponent`, `PreviousNextPagingComponent` initialization
## Version 6.0.0
- Angular IVY ready (APF compliant package)
- added support for ES2015 compilation
- Angular 8
- removed *deprecated* `LegacyGrid` and all its parts
- now if you want to use *Grouped Headers* you have to also use new `GroupedGridModule`
- now if you want to use *Css Grid* (grid composed of divs with css, not table) you have to also use new `CssDivsModule`
- moved functionality from `@anglr/grid-extensions` to subproject `@anglr/grid/scrollmagic`
## Version 5.1.0
- added support for *Grouped Headers*, allowing multiline header with grouping of columns
- added new `MetadataGatherer` => `GroupedTableMetadataGathererComponent` for obtaining information about header groups (using `<grouped-table-metadata>` html)
- added new `HeaderTableGroupColumnComponent` and `HeaderTableGroupComponent` allowing definition of header groups (using `<table-group>`, `<table-group-column>` html)
- added new `GroupedTableHeaderContentRendererComponent` used for rendering grouped headers
- supporting only one level of gr