# 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 grouped headers and each column must be part of group *for now*

## Version 5.0.4
 - refactored `PaginingInitializer`, now used as `GridPlugin`, instead of Paging plugin

## Version 5.0.3
 - added new extension method `invalidateBodyContent`, used for invalidating body content

## Version 5.0.2
 - added new method `setGridPluginInstances` into `GridComponent`

## Version 5.0.1
 - added new extension method `refreshDataToDefaultPage`
 - added new `PagingInitializer` with support of query and cookie for items per page `QueryCookiePagingInitializerComponent`

## Version 5.0.0
 - `@anglr/grid` is now marked as *sideEffects* free
 - stabilized for angular v6

## Version 5.0.0-beta.25
 - aktualizácia balíčkov `Angular` na `6`
 - aktualizácia `Webpack` na verziu `4`
 - aktualizácia `rxjs` na verziu `6`

## Version 5.0.0-beta.24
- added isArray check into `setSyncData`

## Version 5.0.0-beta.23
- added `initText` option to `NoDataRenederer` that is displayed when grid is not initialized
- updated `PreviousNextPagingComponent` and `BasicPagingComponent`, now renders only if grid is initialized

## Version 5.0.0-beta.22
- refactored `MetadataGatherer`, now allows easier extending, returning object instead of array

## Version 5.0.0-beta.21
- changed `ValueProvider` to `FactoryProvider` for `GridComponent`s provider `GRID_PLUGIN_INSTANCES` value provider did not correctly created new instance for every grid
- fixed import paths in extensions moved to package root

## Version 5.0.0-beta.20
- changed path for importing extensions from `@anglr/grid/dist/extensions` to `@anglr/grid/extensions`
- updated `initOptions` method, now correctly initialize options even if only options and no type has changed
- updated all plugins constructors all `GridPluginInstances` are made `Optional` in constructors

## Version 5.0.0-beta.19
- reverted changes in `NoPagingInitializerComponent`

## Version 5.0.0-beta.18
- added default options into `NoPagingComponent` and removed from `PagingAbstractComponent`
- added `setSyncData` extension into index

## Version 5.0.0-beta.17
- bug fix in `SyncDataLoader` when `itemsPerPage` is set to NaN
- added new extension for grid `setSyncData`

## Version 5.0.0-beta.16
- all plugin components added to `exports` of `GridModule`, so can be instantiated outside of grid, allowing custom positioning of visual components

## Version 5.0.0-beta.15
- set default css class `table-container` for `TableContentRendererComponent` wrapping div

## Version 5.0.0-beta.14
- added generated documentation, added few samples, updated `@internal` flags
- added `ContentVirtualScrollPagingComponent` as paging for grid, that allows loading data when content of grid is scrolled passing treshold
- added `PageVirtualScrollPagingComponent` as paging for grid, that allows loading data when page is scrolled passing treshold
- changed `TableContentRendererComponent`, now renders wrapping `<div>` around `<table>`

## Version 5.0.0-beta.13
- added `LoadMorePagingComponent` as paging for new grid allowing click to load more content
- added `PreviousNextPagingComponent` as paging for new grid allowing change pages using next, previous buttons

## Version 5.0.0-beta.12
- added `initOptions` method to `Grid`
- added `invalidateVisuals` method to `Grid`
- changed way how is grid initialized, more consistent behavior, ctor => setOptions => initOptions => createPlugins => setPluginOptions => initPluginOptions => initialize => initializePlugins, same works for nested plugins
- added extension method for reinitialization of grid options `reinitializeOptions`
- all `GridPlugin` extended with method `initOptions`, to be more consistent with grid and plugins lifecycle

## Version 5.0.0-beta.11
- updated `PagingAbstractComponent` and `BasicPagingComponent`, all `private` members changed to `protected`

## Version 5.0.0-beta.10
- updated `Grid.initialized`, now its `Observable<boolean>` and returns true if is grid initialized otherwise false

## Version 5.0.0-beta.9
- added new feature for `Grid`, `EventEmitter` that is called every time grid is initialized called `initialized`

## Version 5.0.0-beta.8
- fixed `QueryPagingInitializerComponent` now correctly sets query string

## Version 5.0.0-beta.7
- changed `QueryPagingInitializerComponent`, now using `replaceState`

## Version 5.0.0-beta.6
- added new feature for paging `PagingInitializer`
- added two implementation of `PagingInitializer`: `QueryPagingInitializerComponent`, `NoPagingInitializerComponent`

## Version 5.0.0-beta.5
- added index.ts for extensions for easier import using `import {} from '@anglr/grid/dist/extesions'`

## Version 5.0.0-beta.4
- added new extensions for grid `areSelectedAllOnPage`, `getSelectedData`, `isSelectedAny`, `resetSelection`, `selectAllOnPage`
- fixed missing z-index for advanced metadata selector
- added title *tooltips* for selected columns in advanced metadata selector
- changed method signature `selectItem`, now second parameter is `select` instead of `deselect` and defaults to `true`
- `SimplenoDataRendererComponent` displayed text centered

## Version 5.0.0-beta.3
- added new tool that correctly updates components to use external html

## Version 5.0.0-beta.2
- added missing external html

## Version 5.0.0-beta.1
- added new `GridComponent`
- added new `GridModule`
- added new metadata gatherer `BasicTableMetadataGatherer`
- added grid extensions `refreshData`, `getPage`, `setPage`, `refreshDataToDefaults`
- added `TextsLocator` plugin, `NoTextsLocator`
- added `RowSelector` plugin, `BasicRowSelector`
- added `Paging` plugins, `NoPaging`, `BasicPaging`
- added `NoDataRenderer` plugin, `SimpleNoDataRenderer`
- added `MetadataSelector` plugins, `NoMetadataSelector`, `AdvancedMetadataSelector`
- added `DataLoader` plugins, `SyncDataLoader`, `AsyncDataLoader`
- added `ContentRenderer` plugins, `TableContentRenderer`, `TableBodyContentRenderer`, `TableHeaderContentRenderer`, `AdvancedTableBodyContentRenderer`, `CssDivsContentRenderer`, `CssDivsBodyContentRenderer`, `CssDivsHeaderContentRenderer`

## Version 5.0.0-beta.0
- old grid renamed to `ng-legacy-grid`, `GridLegacyComponent`
- old column component renamed to `ng-legacy-column`, `ColumnLegacyComponent`
- old column group component renamed to `ng-legacy-columnGroup`, `ColumnGroupLegacyComponent`
- old basic paging renamed to `basic-legacy-paging`, `BasicPagingLegacyComponent`
- old basic paging renamed to `load-more-legacy-paging`, `LoadMorePagingLegacyComponent`
- old basic paging renamed to `PagingAbstractLegacyComponent`
- old basic paging renamed to `next-previous-legacy-paging`, `PreviousNextPagingLegacyComponent`
- all classes used by *Legacy* grid are deprecated, will be removed in version 6

## Version 4.0.3
- fixed displaying of column selection for Google Chrome

## Version 3.1.4
- fixed displaying of column selection for Google Chrome

## Version 4.0.2
 - returned typescript version back to 2.4.2 and removed distJit

## Version 4.0.1
 - added compiled outputs for Angular JIT

## Version 4.0.0
 - updated angular to 5.0.0 (final)
 - changed dependencies of project to peerDependencies
 - more strict compilation
 - updated usage of rxjs, now using operators

## Version 4.0.0-beta.0
 - updated angular to >=5.0.0-rc.7

## Version 3.1.3
- fixed properly setting of initial page to paging
- added new method `uninitialize` for `PagingAbstractComponent`

## Version 3.1.2
- changed private methods accessed from template to public

## Version 3.1.1
- `PreviousNextPagingComponent` has been added

## Version 3.1.0
- added `PagingAbstractComponent` base class for paging components
- `PagingComponent` renamed to `BasicPagingComponent`
- `BasicPagingComponent` is now set to OnPush change detection
- `BasicPagingComponent` has new selector `'basic-paging'`
- grid now supports dynamic change of paging component using new `GridOptions`
- `GridOptions` added `pagingOptions` and `pagingType`
- `LoadMorePagingComponent` has been added

## Version 3.0.2
- grid added option for disabling automatic data loading on init

## Version 3.0.1
- grid change detection is set to OnPush
- added method for explicit change detection run `invalidateVisuals()`

## Version 3.0.0
- angular 4.0.0
- stabilized version for AOT and SSR

## Version 3.0.0-beta.5
- angular 4.0.0-rc.5
- cookieService that can be used with SSR


## Version 3.0.0-beta.4
- changes from 2.2.6

## Version 3.0.0-beta.3
- tree shaking enabled (es2015 module)
- angular 4.0.0-rc.2

## Version 3.0.0-beta.2
- all members accessed from templates are now public

## Version 3.0.0-beta.1
- making module angular AOT compliant

## Version 3.0.0-beta.0
- angular 4.0.0-beta.7
- renamed selectors ng2-grid, ng2-column to ng-grid and ng-column

## Version 2.2.6
- fix support to set 'no data found message'

## Version 2.2.5
- fix support to set 'no data found message' (hack)

## Version 2.2.4
- added support to set 'no data found message' (either with default or with custom template)
- fixed grid paging binding bug (page changed after it was checked)

## Version 2.2.3
- updated support for minimal and maximal visible columns

## Version 2.2.1
- added support for minimal and maximal visible columns

## Version 2.2.0
- angular version 2.3.0

## Version 2.1.2
- fixed problem with template rendering for column, different template after event

## Version 2.1.1
 - merge with version 2.0.3

## Version 2.1.0
 - angular version 2.2.0

## Version 2.0.3
 - added option for column selection title

## Version 2.0.2
 - template column header
 - possibility to disable column visibility selection

## Version 2.0.1
 - row selection
 - possibility to use grid without id
 - header tooltip
 - fix column selection

## Version 2.0.0
 - angular version 2.0.1
 - UMD module
 - webpack usage
 - typescript 2 usage

## Version 1.5.0
 - angular version 2.0.0

## Version 1.4.0
 - angular version 2.0.0-rc.6

## Version 1.3.1
 - added `GridModule`

## Version 1.3.0
 - angular version 2.0.0-rc.5

## Version 1.2.4
 - items count correct displaying
 - all items now has active class when clicked

## Version 1.2.3
 - items count not displayed if all items displayed

## Version 1.2.2
 - support for item row number in custom template

## Version 1.2.1
 - support for storing items per page in cookies
 - paging now allows displaying displayedItems/totalCount

## Version 1.2.0

- angular version 2.0.0-rc.4
- column template support
- ordering support
- paging support
- column selection
- column width
- header css class
- cell css class
- columng groups (simple)
- debounced data loading
- css class for whole table div
