Skip to content

Latest commit

 

History

History
1227 lines (841 loc) · 45 KB

File metadata and controls

1227 lines (841 loc) · 45 KB

26.0.0 (2026-03-17)

Features

  • replace scss @import with @use (14073de)
  • update to Angular 21 (70c50a3)

Bug Fixes

  • always maintain proportional column sizes (d69957c), closes #617
  • detect tree changes after treeAction emit (6645fb0)
  • do not announce non‑draggable headers as clickable (55f6021), closes #583
  • gracefully ignore non-sortable rows when sorting (b6dfdcf), closes #578 #611
  • only use trackByProp on row level with strict type (9bdf3f2)
  • sync header and body horizontal scroll via direct DOM scrollLeft (54a4132)

BREAKING CHANGES

  • DatatableComponent.trackByProp input now enforce strict type check as key of row.

    Before:

    // Even though name is not a valid prop on rows it is allowed to be used with trackByProp.

    <ngx-datatable
     trackByProp="'name'"
     [rows]="[{id: 1}, {id: 2}]"
    >
    

    After: Typescript would give compilation error as name is not known property in rows.

  • Renamed SCSS variables:

    • $disable-row-text-color to $datatable-disable-row-text-color
    • $datatble-ghost-cell-animation-duration to $datatable-ghost-cell-animation-duration

    This only affects the material and bootstrap theme.

  • Angular 21+ is required. Follow the Angular update guide to update your app: https://angular.dev/update-guide?v=19.0-20.0;;

25.0.0 (2025-12-02)

Features

  • convert selected to signal model with two-way binding (85ed2ae)
  • convert sorts to signal model with two-way binding (e2f4928)
  • update to Angular 20 (327e91b)

Bug Fixes

  • always apply role="row" on summary row (59f9b09)
  • column compareFn should not use sort direction (208ac4a)
  • use actual buttons in pager (8ad98e9)
  • use existing row and cell class styles on ghost rows (a2cfbdd)

BREAKING CHANGES

  • The table no longer calls TableColumn.compareFn with the sort direction. The table already applies the proper direction. This change only removes the parameter, the sorting itself remains unchanged.

    Any usages of the direction in custom compareFn must be removed. Implementations which use this property can always return the value for direction='desc', to achieve the same result as before.

  • Angular 20+ is required. Follow the Angular update guide to update your app: https://angular.dev/update-guide?v=19.0-20.0;

  • The pager component now uses buttons instead of anchors. We did this change to properly reflect the nature of those buttons, which have never been anchors in terms of behavior.

    This change affects custom themes. Please adjust them accordingly:

    // Before
    .datatable-pager li a {
      // styling
    }
    
    // After
    .datatable-pager .page-button {
      // Override default button styles
      border: 0;
      background none;
      // previous styling
    }
  • The selected input no longer mutates the original array passed to the component. Applications that rely on the array being updated in place must switch to two-way binding with [(selected)] to maintain reactivity.

  • Ghost loader rows will now always use the existing datatable-body-row and datatable-body-cell classes for styling.

    This change ensures consistent styling between regular rows and ghost loader rows, improving visual consistency across the table. Previously, ghost loaders did not always apply these row styles, which caused ghost rows to not have the correct height, cell padding, and bottom border.

    To override or customize ghost loader styles, use the ghost-element and ghost-cell classes.

  • Several fields and methods are removed from the public API. Those fields were never intended to be exposed.

  • Previously, the groupedRows input was updated by the datatable, when groupRowsBy was used. This behavior was dropped. groupedRows will only contain application provided values. The table calculates internal the actual groupedRows without exposing them.

  • @siemens/ngx-datatable no longer contains an index.scss and index.css. Those files were empty, and its usages can be removed without further changes.

  • Migration to Angular signal inputs/outputs.

    All components now use Angular’s input(), model(), and output() functions instead of the @Input/@Output decorators. Consider the following implications for your code:

    Template bindings: No changes required! Continue using [inputName] and (outputName) in templates as before.

    Programmatic access: Use template binding whenever possible. If not possible, understand that setting input values programmatically is only possible for model() inputs. Reading input values programmatically also requires adjustments for the signal API:

    class Component {
      @ViewChild(DatatableComponent) private datatableComponent!: DatatableComponent;
      myFunction(): void {
        // Before
        const value = this.datatableComponent.rows;
        // After
        const value = this.datatableComponent.rows();
      }
    }

    If programmatically subscribing to outputs is needed, read the following guide: https://angular.dev/guide/components/outputs#subscribing-to-outputs-programmatically

DEPRECATIONS

  • The DatatableComponent.sort output is deprecated; use (sortsChange) or two-way binding instead.

    Before:

    <ngx-datatable [sorts]="mySorts" (sort)="onSort($event)"></ngx-datatable>

    After:

    <ngx-datatable [sorts]="mySorts" (sortsChange)="onSort({sorts: $event})"></ngx-datatable>
    <!-- or -->
    <ngx-datatable [(sorts)]="mySorts"></ngx-datatable>
  • The DatatableComponent.select output is deprecated; use (selectedChange) or two-way binding instead .

    Before:

    <ngx-datatable [selected]="mySelection" (select)="onSelect($event)"></ngx-datatable>

    After:

    <ngx-datatable [(selected)]="mySelection" (selectedChange)="onSelect({selected: $event})"></ngx-datatable>
    <!-- or -->
    <ngx-datatable [(selected)]="mySelection"></ngx-datatable>

24.3.3 (2025-10-31)

Bug Fixes

  • always call <ngx-datatable-row-detail [rowHeight]="function"> with correct index (4076829)

24.3.2 (2025-10-24)

Bug Fixes

  • headerHeight="auto" should be supported (a22f149), closes #473
  • support parallel usage of grouping and details (a4fabd7), closes #147

24.3.1 (2025-10-17)

  • Revert "feat(columns): support hidden columns" (de31669)

Bug Fixes

  • show the correct number of pages when using row grouping (7d1141c)

24.3.0 (2025-09-29)

Features

  • columns: support hidden columns (ea5a410)

Bug Fixes

  • column-pinning: hide vertical divider if no horizontal scroll (556e964)
  • sort: sort on grouped header column throws errors (dd86662)

24.2.0 (2025-08-21)

Features

  • support custom classes for tree toggle icons (117d24e)

Bug Fixes

  • pagination: allow space/enter event to paginate (714c5c0), closes #373
  • rows are not interactive when using disableRowCheck with grouped rows (c689f09)

24.1.0 (2025-07-16)

Features

  • export pager component for reuse in custom footer (d1bd9c0), closes #324

Bug Fixes

  • avoid duplicate row identity warnings (8f32d43)
  • make pager accessible with keyboard (de21d1b), closes #339
  • no error on undefined limit (12522dd), closes #349

Performance Improvements

  • optimize DraggableDirective with requestAnimationFrame for smoother updates (5dd8628)

24.0.0 (2025-07-02)

Features

  • add aria-labels to row selection checkboxes (ae8c946)
  • support using string values in previous enum locations (9033187)

Bug Fixes

  • add treeToggleTemplate property in toInternalColumn method to make custom tree template work (97e8529)
  • calculate correct column width in flex mode after resize (f6d6cf9), closes #155
  • never render a resize handle after the last column (51e3daf)
  • prevent column reordering between frozen and non-frozen columns (9c38292), closes #145

DEPRECATIONS

  • All constants that replaced the previous enums should no longer be used. Use the plain string value instead.

    Example:

    // Before
    @Component({template: `<ngx-datatable [columnMode]="ColumnMode.Force" />`})
    class MyComponent {
      ColumnMode = ColumnMode;
    }
    
    // After
    @Component({template: `<ngx-datatable [columnMode]="'force'" />`})
    class MyComponent { }

BREAKING CHANGES

  • All output properties are now readonly and cannot be reassigned.

23.0.0 (2025-06-24)

See our release announcement.

No changes since 23.0.0-rc.2.

See 23.0.0-rc.0, 23.0.0-rc.1, and 23.0.0-rc.2 for all changes since the last stable release.

23.0.0-rc.2 (2025-06-24)

  • Fix: fix keyboard interaction for cell selection mode

23.0.0-rc.1 (2025-06-22)

  • Feature: introduce a new providedNgxDatatableConfig for a standalone way to configure the datatable (#259)

  • Breaking: Previously the datatable applied box-sizing: border-box to all its elements. This is no longer the case. Custom themes that depend on this must set this behavior manually, using:

    *,
    *:before,
    *:after {
      box-sizing: border-box;
    }

23.0.0-rc.0 (2025-06-18)

  • Feature: include sorts in page event (#248)
  • Feature: include pager aria labels in text messages
  • Feature: add touch support for reorderable and resizable features (#181)
  • Feature: update project to Angular 19
  • Feature: add type for details toggle event (#173)
  • Feature: add type for context menu event (#174)
  • Feature: configurable defaultColumnWidth
  • Feature: introduce proper types for public API (#49)
  • Fix: prevent errors with row-specific ghost in combination with grouping, selection and trees (#241)
  • Fix: introduce a default value for rows
  • Fix: remove unwanted space below the rows (#214)
  • Fix: apply even/odd classes correctly when rows are grouped (#111)
  • Fix: add missing type to comparator (#167)
  • Fix: only run disabled check on rows
  • Fix: allow partial overrides of messages (#152)
  • Fix: allow partial overrides of CSS classes (#151)
  • Fix: add missing space before headerClass (#138)
  • Fix: do not bind content as innerHTML by default (#126)
  • Fix: update group checkbox state on child row selection state change
  • Fix: horizontal scroll
  • Fix: partial values for messages and cssClasses
  • Fix: hide rows when ghostLoading with no virtualization
  • Fix: calculate column widths only when table is visible
  • Fix: add missing type for header and cell style classes
  • Fix: resetting table with empty array
  • Fix: align TableColumn directive and interface types
  • Fix: improve ActivateEvent
  • Fix: type cell context
  • Fix: improve types for row grouping
  • Fix: datatable-scroller width should update on recalculate (#79)
  • Breaking: All inputs except template of DatatableFooterDirective have been dropped from the footer directive. Those were unused. Remove any usages without replacement.
  • Breaking: Angular v19 or higher is required.
  • Breaking: The datatable no longer accepts undefined as a value of the count input.
  • Breaking: The datatable body no longer has spacing below the last row. If needed for whatever reason, this must be added manually. Workarounds removing this extra space must be dropped.
  • Breaking: Previously CellContext.rowIndex was a string if the row was inside a group. Now CellContext.rowIndex is always a number. Either containing the index of the row or if the row is inside a group, the index of the group. To access the index value of a row within a group, use the new CellContext.rowInGroupIndex.
  • Breaking: Removed ResizeableDirective. This directive was intended for internal use to handle column resizing, which is now managed directly in the DataTableHeaderCellComponent.
  • Breaking: The row detail context (RowDetailContext) no longer contains disableRow$?: Observable<boolean>. Use the new disabled: boolean value instead.
  • Breaking: The cell context (CellContext) no longer contains disableRow$?: Observable<boolean>. Use the new disabled: boolean value instead.
  • Breaking: disableRowCheck will only be called with actual rows. Although documented otherwise, in the case of groups, the disableRowCheck was only called for groups instead of each row inside that group. This allows disabling single rows inside a group and not only entire groups. To update the disabled state of a row just update the row itself instead of using the previous disableRow$ subject.
  • Breaking: Removed several symbols from the public API that were intended to be internal.
  • Breaking: Removed polyfill for elementsFromPoint since elementsFromPoint is now supported by all major browsers.
  • Breaking: Previously, cell values were bound using innerHTML. With this change they are now bound using normal data binding. This means that any html markup will no longer be rendered. To restore the previous behavior set bindAsUnsafeHtml on columns where needed. We decided to change this behavior, as binding innerHTML can lead to HTML injection. Especially in table content which are often untrusted user generated content.
  • Breaking: Header cell names are now bound using data binding instead of innerHTML. Use a headerTemplate to provide custom html markup.
  • Breaking: Changed Keys enum to use key value instead of keyCode. keyCode is deprecated from KeyBoardEvent and should be replaced with key.
  • Breaking: Vendor prefixes are no longer applied for css transform. The related helpers are removed from the public api.
  • Breaking: Change signature from onBodyPage({ offset }: any): void to onBodyPage(offset: number): void.
  • Breaking: Almost every public API has now proper types. While this should in theory not affect applications it will now fail compilation if the APIs were used in an incorrect manner.

22.4.1 (2024-07-26)

  • Fix: recalculate only if row differs (#73)
  • Fix: tree grouping breaks if rows are assigned statically (#77)

22.4.0

  • Feature: support removing sort on column (#64)
  • Feature: support row group checkbox (#62)
  • Fix: correct expanding all row groups (#60)
  • Fix: support changing row group height (#61)
  • Fix: correct table width on empty table (#63)

22.3.0

  • Feature: support row wrapper for adding custom directives, like CDK Drag and Drop
  • Fix: horizontal scroll on grouped rows had infinite width
  • Fix: support sorting with grouped rows
  • Fix: remove right spacing on fixed column when no vertical scroll is needed
  • Fix: keep horizontal scrolling in empty tables, if columns do not fit on screen
  • Fix: support grouped row selection
  • Fix: support tabbing over header cells

22.2.2

  • Fix: prefer un-prefixed style attributes over prefixed one

    Fixes an issue on Firefox 126 (released May 2024), which no longer support -moz-transform but transform. But when we get style attributes from an element, -moz-transform is still available, which makes our testStyle fails. So to resolve this issue, we want to use un-prefixed attribute if available.

22.2.1

  • Fix: revert add types for table rows

    We introduced a breaking change, as undefined was not allowed as row input any more. Reverting the change and will re-introduce as the typing later.

22.2.0

  • Feature: add types for table rows
  • Fix: move footer outside of aria role table

22.1.1

  • Fix: emit page objects when changing page offset

22.1.0

  • Feature: support keyboard shortcuts for all rows selection

22.0.2

  • Fix: adjust for overflow when scaling columns in flex mode

22.0.1

  • Fix: allow row disabling through side effects

22.0.0

  • Feature: upgrade project to Angular 17
  • Breaking Change: update to Angular 17

21.6.0

  • Feature: upgrade project to Angular 15

21.5.0

  • Feature: add cssClasses, headerHeight, footerHeight and rowHeight to global configuration

21.4.1

  • Fix: emit missing dragleave drag-and-drop event

21.4.0

  • Feature: add row drag and drop capability

21.3.1

  • Fix: remove ghost placeholder cells after data load

21.3.0

  • Feature: allow support to mark complete row as disable
  • Fix: increase style compilation budget

21.2.1

  • Fix: correct dynamic vertical scrolling

21.2.0

  • Feature: Add on-demand vertical scrolling support

21.1.3

  • Fix: add missing aria-label to tree icons

21.1.2

  • Fix: only show ghost loading indicator when active

21.1.1

  • Fix: add ghost loading indicator support
  • Fix: scroll bar re-draw issue and enabled DOM virtualization
  • Fix: loading indicator memory leak
  • Fix: redraw issue with virtual scrolling while dragging scrollbar

21.1.0

  • Feature: decouple checkboxable and headerCheckboxable from SelectionType.checkbox
  • Feature: update to Angular 13 and ivy
  • Chore: switch from TSLint/Prettier to ESLint

21.0.0

  • Feature: support custom loading indicator
  • Fix: prevent internal sorting if externalSorting is set
  • Breaking: emptyCustomContent input no longer required/supported

20.1.0

  • Feature: support custom content for empty table
  • Fix: tabindex on datatable body
  • Fix: orderable directive
  • Fix: column resizing cases
  • Fix: refresh virtual grid after scroll
  • Fix: clearTimeout/_destroySubscription race
  • Fix: CSP script-src 'self'
  • Fix: emit page event on page size change for virtual paging

20.0.0

  • Breaking: Update to angular 12
  • Breaking: fork into @siemens scope

19.0.0

  • Breaking: Update to angular 11

18.0.0

  • Breaking: Update to angular 10

17.1.0

  • Feature: Add sorting: unset icon

17.0.0

  • Chore: explicitly only suppot ng9

16.1.1

  • Chore: Patch release to override 16.1.0

16.1.0

16.0.3

  • Bug: Fix disappearing rows with vertical scrollbar, virtual scrolling & rowdetail auto height (swimlane#1799)
  • Bug: Fix memory leak due to created element not cleaned up (swimlane#1792)
  • Bug: do not collapse row details when row updated (swimlane#1778)

16.0.2

  • Bug: Remove barrel files because ng-packagr doesn't work well with them

16.0.1

  • Bug: Include styles, assets and themes in release

16.0.0

  • Breaking: the release files are not under the /release folder any more. Also, paths to themes and assets have changed. If you are importing any assets or styles from the release folder, you would need to update the paths.
  • Chore: Migrates the project to angular-cli, making it compatible with Ivy (swimlane#1738)
  • Feature: Implements global module config via forRoot (swimlane#1688)
  • Feature: Colors of material style can be modified by target application (swimlane#1651)
  • Bug: Fixes Exception in scoller component destroy (swimlane#1685)
  • Bug: Fixes issue 1686: column resizing issue in force columns mode (no horizontal scroll) when container get smaller (swimlane#1687)
  • Docs: Updates demo pages (swimlane#1738)

15.0.2

  • Fix: Fixes issue where footer pagination does not work when virtual scrolling is enabled (swimlane#1704)

15.0.1

  • Fix: Fixes issue where using conditional templates would not render them (swimlane#1701)

15.0.0

14.0.0

  • Breaking: Upgrade to angular 7
  • Fix: Fix compile error when using TemplateTypeCheck set to true (swimlane#1520)

13.1.0

13.0.1

  • Fix: Run scroll event listeners inside angular zone (swimlane#1375)

13.0.0

12.0.0

11.3.0

11.2.0

11.1.7

  • Fix: Fix error w/ rows undefined on init

11.1.6

11.1.5

  • Compat: Fix Angular 4.x Compat

11.1.4

  • Bug: Fix column templates not updating with loops/ifs
  • Bug: Fix sorting on cross browser
  • Chore: Switch to lettable operators

11.1.3

11.1.2

11.1.1

  • Bug: Fix race case with rows

11.1.0

  • Perf: Better performance on scrolling y and x
  • Feature: Select All on Current Page (swimlane#1132)
  • Bug: Don't show empty on loading (swimlane#1139)

11.0.4

  • Bug: Fix Angular5 Aot Issue
  • Bug: Fix Vendor Prefix Error

11.0.1, 11.0.2, 11.0.3

  • Bug: Angular 5 bugs

11.0.0

  • Chore: Upgrade to Angular5

10.4.0

10.3.0

10.2.3

10.2.2

10.2.1

  • Bug: Detail Row Broken

10.2.0

  • Feature: Row Grouping

10.1.0

  • Feature: Row Hover Event
  • Bug: Columns are no longer mutated!
  • Bug: Fixes for Angular v5!
  • Bug: Fix expand all row detail not working (swimlane#917)
  • Chore: Remove useless jsdoc comments

10.0.5

  • Style: Material styles closer to spec
  • Bug: Non-sortable header showing pointer cursor

10.0.4

  • Perf: Changed everything internal to OnPush
  • Perf: Fixed header cell outlet cd
  • Bug: Fixed sort mutating original rows

10.0.3

  • Perf: Better performance in cells

10.0.2

  • Enhancement: Add rowIndex to row-detail template
  • Bug: Add index.css back to build

10.0.1

  • Bug: Fix old references to $$index and $$expanded
  • Bug: Add $$index in cell templates as rowIndex
  • Bug: Fix MouseEvent undefined in JIT (swimlane#893)

10.0.0

  • BREAKING: $$expanded is no longer on row of detail templates, use let-expanded to get pop now
  • Feature: Always center activated page on pager
  • Bug: Remove row mutations of $$index and $$expanded
  • Bug: Pagination broken on large number of rows
  • Bug: Strip HTML from title tags (swimlane#892)

9.3.1

  • Bug: More Universal Rendering Fixes (swimlane#795)
  • Chore: Build optimizations from new webpack version

9.3.0

9.2.0

  • Enhancement: Add header context menu event
  • Bug: Fix sort blowing up when undefined and adding new sort
  • Bug: Fix multi-selection key with Mac

9.1.0

  • Enhancement: Add more context to cells (swimlane#720)
  • Enhancement: Export Pager component (swimlane#735)
  • Bug: Header checkbox when row selection is changed (swimlane#659)
  • Bug: When rowClass() returns a string, the class is not properly added (swimlane#710)
  • Bug: Rename icons so don't conflict with other libs (swimlane#729)

9.0.0

  • BREAKING: Fixes for external pagination fixes. Index calculation change being last page = 0 + pageSize (swimlane#714, swimlane#138, swimlane#391)
  • Feature: Server-side virtual scrolling pagination
  • Demos: Deep linking of demo pages

8.2.1

  • Bug: Fix footer styles

8.2.0

  • Feature: Footer Templates

8.1.0

  • Feature: Dark Theme

8.0.1

  • Bug: Fix memory leak (swimlane#702)
  • Bug: Don't add column header title attribute when custom template provided (swimlane#643)
  • Bug: Only apply pointer to header text (swimlane#682)
  • Bug: Fix prop field name with dots (swimlane#596)
  • Bug: Virtual scroll + dynamic height in cell detail not working right (swimlane#703)
  • Bug: Fix dynamic row height not working right if using server-side pagination
  • Chore: Implement noImplicitAny (swimlane#671)

8.0.0

  • Breaking: Removed cssClass from columns in favor of explicit
  • Feature: Added explicit headerClass and cellClass
  • Feature: Add ability to have callback for those class getters
  • Bug: Fix checkbox select all not updating ui correctly

7.3.1

  • Bug: Fix resize handle drag triggering long press
  • Bug: Fix dragging trigging column sorting
  • Bug: Fix column re-ordering not working on FF

7.3.0

  • Feature: Dynamic row heights for virtual scrolling
  • Bug: Do not use document for universal support (swimlane#668)

7.2.1

  • Bug: Fix missing type

7.2.0

  • Feature: Allow for dynamic Detail Row heights (swimlane#653)
  • Feature: Numeric prop support via support array rows (swimlane#494)
  • Perf: Optimize sort code by caching valueGetter and compareFn outside loop.
  • Perf: Set ValueGetter on TableColumn.$$valueGetter
  • Bug: Alter setColumnDefaults to work with numeric prop values.

7.1.1

  • Perf: Fix memory leaks with templates (swimlane#464)
  • Bug: Fix row detail expanded and then collapsed not showing anything until scroll

7.1.0

  • Bug: Fix title not set on cell template (swimlane#629)
  • Chore: Update to official Angular4
  • Chore: Misc build dep updates

7.0.0

NOTE: If you need support for ~Angular2, use version 6.x.

6.3.0

  • Bug: Perform sort when sort icon is clicked (swimlane#536)
  • Bug: Fix resize handle overlaped by label (swimlane#521)
  • Chore: Fix relative imports for rollup (swimlane#542)
  • Chore: Linting

6.2.1

6.2.0

  • Bug: Fix AoT builds with SCSS (swimlane#534)
  • Bug: Fix offset incorrect when filtering (swimlane#516)
  • Bug: Fix mouse press subscription cleanups (swimlane#522)
  • Bug: Fix header cell wrapper empty span (swimlane#504)
  • Bug: Fix selected count undefined in footer template (swimlane#537)
  • Bug: Fix orderable unsubscribe listeners (swimlane#538)
  • Chore: Update Angular and ZoneJS

6.1.2

6.1.1

6.1.0

6.0.2

6.0.1

  • Bug: Fix CSS not working with AoT (swimlane#459)
  • Chore: Fix ExtractText plugin causing build issue
  • Chore: Upgrade Angular 2.4.5

6.0.0 (2017-01-25)

  • BREAKING: Renamed datatable css class to ngx-datatable
  • BREAKING: Embedded core css file with Angular styleUrls
  • Enhancement: Allow sorting from inline templates (swimlane#431)
  • Enhancement: Fix re-ordering columns throwing errors (swimlane#438)
  • Enhancement: Add nice drag indicator to material theme
  • Chore: Update Depedencies

5.0.0

  • BREAKING: Re-worked all inputs, methods and outputs of row detail to its own container
  • Enhancement: Implement Finder/Explorer shift selection behavior
  • Bug: Fix reverse selection de-selecting first index in reverse
  • Bug: Fix row detail not rendering

4.2.0

  • Enhancement: Ability to add CSS Classes on Header/Column
  • Bug: Fix CPU Perf on Resort (swimlane#409)
  • Chore: Upgrade to Angular ^2.4.3
  • Chore: Correct RxJS Imports

4.1.0

  • Feature: Adding multi-click selection
  • Bug: Use tracking fn vs inline (swimlane#388)
  • Bug: Fix AoT header issue (swimlane#389)
  • Bug: Fix reorderable not being honored (swimlane#387)
  • Bug: Fix multi-select CTRL not working (swimlane#381)
  • Chore: Upgrade Angular to ^2.4.1
  • Docs: Multi-select

4.0.0

  • BREAKING!!!! - Renamed project from angular2-datatable to ngx-datatable and updated components from <swui-datatable> to <ngx-datatable>

3.0.0

  • BREAKING: Removed shiftMulti option, its not useful and creates odd scenarios
  • Bug: Permanently high CPU utilization after sorting (swimlane#359)
  • Bug: Fix checkbox showing in header if defined but not using checkbox select
  • Bug: Fix AoT errors (swimlane#370)
  • Bug: Fix build not outputing AoT files in correct directory
  • Bug: Fix checkbox selection not working w/ shift key
  • Chore: Upgrade Angular/Webpack

2.2.3

  • Bug: Fix header checkbox mutating selection array

2.2.2

  • Bug: Fix default selections and don't mutate selection arrow now

2.2.1

  • Bug: Fix AoT by reverting TypeScript upgrade until CLI is updated

2.2.0

  • Bug: Fix AoT private props (swimlane#352)
  • Bug: Added null chk to selection getter (swimlane#340)
  • Bug: multiShift not working after first page (swimlane#294)
  • Chore: Update Angular to 2.3.0
  • Chore: Update TypeScript to 2.1.x
  • Chore: Update RxJS to 5.0.0-rc.4
  • Chore: Update ZoneJS to 0.7.2
  • Demo: Add templates for Webpack plugin for Google Analytics

2.1.3

  • Bug: Fix footer not updating when all removes removed
  • Bug: Fix Add/Remove items in array not updating (swimlane#255)

2.1.2

  • Bug: Fix sizing method being debounced on view inits rather than just window resize.

2.1.1

  • Bug: Fix memory leak with visibility observer

2.1.0

  • Feature: Checkbox selection mode
  • Enhancement: Selection mode auto added to host class for easier styling
  • Style: Remove row active/select state when in cell mode of material theme
  • Bug: Force fill column mode w/ scrollbarH false allowing bleed when resized
  • Perf: Faster render time by adding css class via host
  • Perf: Debounce window resize calcs

2.0.0

  • BREAKING: Rename from datatable to swui-datatable (swimlane#320)
  • BREAKING: Redo how row-detail/cell/header templates are described in markup (swimlane#304)
  • BREAKING: Change Detection switched back to normal
  • Enhancement: Row Context Menu Event rowContextmenu (swimlane#331)
  • Bug: Set default value for selected (swimlane#314)
  • Bug: Fix widths being int vs float (swimlane#309)
  • Bug: Fix column resize not setting widths to the right (swimlane#308)
  • Bug: Fix row object mutations (swimlane#255)
  • Bug: Async Problem when using @Input (swimlane#253)
  • Bug: Sort doesn't work on the first click (swimlane#254)
  • Bug: Pagination "skip to last page" is not selected after click (swimlane#324)
  • Bug: ngFor Not working in the datatable-row-detail-template (swimlane#274)
  • Chore: Resolve all implicit anys (swimlane#330)
  • Chore: Bump Angular to latest 2.2.4

1.7.0

  • Enhancement: Add RxJS Support
  • Chore: Fix builds on windows

1.6.0

  • Bug: Column headers not re-ordering (swimlane#238)
  • Bug: Datatable doesn't sort data correctly when data changed (swimlane#284)
  • BREAKING: comparator now is a normal sort function arguments of propA, propB.

1.5.1

1.5.0

  • Enhancement: externalSorting input for simpler server-sorting usage (swimlane#281)
  • Enhancement: Add trackByProp for change detection with mutation of row data
  • Bug: Row height variable access protection (swimlane#280)
  • Chore: Upgrade to Angular 2.2.0
  • Demo: Inline editing updates
  • Demo: Live data refresh demo
  • Breaking: Remove refresh method per recommendation by @robwormald

1.4.1

  • Bug: Ignore next page when already at last (swimlane#223)
  • Chore: Redid Webpack Config to be clean
  • Chore: TESTS! TRAVIS BUILDS! COVERAGE REPORTING!

1.4.0

  • Enhancement: Added refresh API for updating table (swimlane#255)
  • Bug: Fix intersection observer type errors (swimlane#268)

1.3.1

  • Bug: Fix force column width distribution overriding new resize (swimlane#245)

1.3.0

  • Enhancement: selectCheck fn to prevent selection
  • Bug: Fix columns leaking event handlers
  • Bug: Fix column toggling errors (swimlane#245)
  • Bug: Fix AoT Metadata not creating

1.2.0

  • Bug: Fix columns loosing templates on resize (swimlane#252)
  • Bug: Fix pager not having right pages when hidden by default
  • Bug: Fix expressive column width as attribute with standard column distribution
  • Bug: Fix body columns not readjusting after window resize (swimlane#251)
  • Enhancement: Refactor emptyMessage and totalMessage to messages object
  • Enhancement: Huge perf improvement for tables hidden by default

1.1.0

  • Feature: NGC Complation
  • Bug: Null value in deepValueGetter (swimlane#243)
  • Chore: Update Depedencies

1.0.0

  • Feature: Cell Selection and Keyboard Navigation
  • Feature: activation events
  • Enhancement: OnPush all the things!
  • Enhancement: Add totalMessage option for localization
  • Enhancement: Demo Page
  • Enhancement: Page Count Formatted
  • Enhancement: Automatically format column prop when no name passed
  • Enhancement: Add ability to pass false to comparator for sort handling via event
  • Bug: Window resize not updating rows in virtual scrolling
  • Chore: Switch to SemVer
  • BREAKING: TableOptions has been removed and options are Input on component now
  • BREAKING: TableColumn class has been removed, just pass normal objects
  • BREAKING: Event names has been renamed using Angular2 standards
  • BREAKING: Components have been renamed to Angular2 standards
  • BREAKING: Removed StateService

0.12.0

  • Bug: Return empty string on undefined deep values (swimlane#232)
  • Bug: Fix force fill alog (swimlane#218)
  • Enhancement: Support for other icon types (swimlane#235)
  • Enhancement: Add ability to identify rows for proper selection (swimlane#154)

0.11.2

  • Enhancement: Add ability to define css icon classes for pager / header
  • Chore: Uprade to Angular 2.1.1

0.11.1

  • Chore: Polish on new build

0.11.0

  • Chore: New build process
  • Bug: Fix detail row bug (swimlane#212)

0.10.1

  • Bug: Fix $$expanded undefined with server paging (swimlane#210)

0.10.0

0.9.3

  • Column resize sometimes gives weird behaviour on mouse resize/click (swimlane#155)
  • Fix order of setters in DataTable ngOnChanges (swimlane#179)
  • Remove document event listener subscription leak in draggable & resizeable
  • Fix setScrollTop undefined error (swimlane#182)

0.9.2

  • Fix name being undefined introduced in 0.9.0 release

0.9.1

  • Export component references for external consumption (swimlane#176)

0.9.0

  • Fix accidental breaking change of renaming HeaderCell column property to model. See commit.
  • Ensure minWidth and maxWidth values are specified saved as numbers (swimlane#167)
  • Add row double click option (swimlane#168)

0.8.0

  • Added the ability to define header templates expressively Breaking Change! Renamed template to cellTemplate in column options

0.7.4

  • Removed swimlane#142 in favor of style height
  • Fixed issue with height + scrollbarV not sizing right
  • Fix limit not applied (swimlane#133)
  • Fix sort not resetting to top of page (swimlane#136)
  • Added option validation

0.7.3

0.7.2

  • Build fixes

0.7.1

  • Removed template wrapper in favor of native template outlet

0.7.0

0.6.1

0.6.0

  • Update to Angular 2.0.0!
  • Fix horizontal header issue (swimlane#129)

0.5.1

0.5.0

  • Upgrade to Angular2 RC7