0.42.0 Breaking Changes - SAP/fundamental-ngx GitHub Wiki
- platform: Components that rely on
HasElementRef
interface:
HasElementRef
interface has been changed. Now instead ofelementRef()
method, components should haveelementRef: ElementRef
property. This can include getters too;
Core table:
TableCellDirective
now directly extends fromFocusableItemDirective
. Previously it hadFocusableItemDirective
as a host directive applied to itself;
Platform table:
- All directives, services, models, data source classes are moved from
@fundamental-ngx/platform/table
into a separate package@fundamental-ngx/platform/table-helpers
. To keep backwards compatibility,@fundamental-ngx/platform/table
re-exports@fundamental-ngx/platform/table-helpers
so that the import paths are the same as before; - Platform table directives are standalone now;
- Platform table data-source related functionality has been moved to
TableDataSourceDirective
standalone directive. Input properties are preserved; - Platform table drag&drop related functionality has been moved to
TableDraggableDirective
standalone directive. Input properties are preserved; - Platform table initial state related functionality has been moved to
TableInitialStateDirective
standalone directive. Input properties are preserved; - Platform table virtual scroll related functionality has been moved to
TableVirtualScrollDirective
standalone directive. Input properties are preserved; - Platform table data source has been refactored to utilize
@fundamental-ngx/cdk/data-source
implementation. Backwards compatibility is preserved for classes that extend from data-source/data-provider. More complex classes may need to be refactored according to new class signature; - Platform table now uses
TableRowImpl
class as implementation ofTableRow
interface instead of simple object; - Helper methods from TableComponent has been moved to a standalone functions;
SearchInput
type is now not re-exported from@fundamental-ngx/platform/table
. Instead use@fundamental-ngx/platform/search-field
;- Table component html is now split between logical parts: table, table header rows, table content rows. Resulting markup is not changed, but the business logic parts are being moved to appropriate components;
- Platform table rows now try to reuse the html element they bounded to. This means that if developers use reference to elementRef of the row, and rows array changes, they need to manually recalculate the reference to the element;
- Platform table group row: text pattern changed from {{ column.name }} : {{ column.value }} to {{ column.name }}: {{ column.value }}. Space before colon has been removed;
- Platform table input properties recalculation now more efficient. Previously we checked property value on every
mousemove
, now, only when something inside the table itself is changed. This may require additional detectChanges calls from developers who are using Platform Table. - Such input properties has been removed from platform table class:
dataSource
- setter available viafdp-table[dataSource]
but class property now accessible from_dataSourceDirective
property of Table component;state
,initialVisibleColumns
,initialSortBy
,initialFilterBy
,initialGroupBy
,initialPage
setters available viafdp-table[property]
but the class property now accessible frominitialState
property of Table component;isTreeTable
,enableRowReordering
,dropMode
setters available viafdp-table[property]
but the class property now accessible via_dndTableDirective
property of Table component;virtualScroll
,renderAhead
setter available viafdp-table[virtualScroll]
, but the class property now accessible via_virtualScrollDirective
property of Table component;
- Such events has been removed from Platform Table class:
rowsRearrange
- listener still available viafdp-table(rowsRearrange)
, but actual eventEmitter is now located in_dndTableDirective
property of Table component;onDataRequested
,onDataReceived
- listeners still available viafdp-table(event)
, but actual eventEmitters are now located in_dataSourceDirective
property of Table component;
- Private API changed. For more information refer to this PR
- cdk,platform: Moved async-strategy from @fundamental-ngx/platform/shared to @fundamental-ngx/cdk/utils;