UNPKG

@anglr/grid

Version:
806 lines (725 loc) 60.9 kB
# 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