Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce? (check one with "x")
What is the current behavior? (You can also link to an open issue here)
reproducable on https://swimlane.github.io/ngx-datatable/#
When toggling the Name column to off and then clicking the 'Company' column, a stacktrace pops up in the console.
Error: object unsubscribed at t.h (polyfills.js:1651) at new t (polyfills.js:1616) at t.next (polyfills.js:1609) ...
Problem
The KeyValueDiffer is used with an Array, which means it will use the index of the array to check for diffs.
When the Name column is removed the column-array us spliced, so no gaps occure.
This will cause the differ to think that the actual removed column was on the last index, since it went from [0, 1, 2] to [0,1]. The Company column was on this index, so it unsubscribed from the dragStart and dragEnd event emitters of the Company column, instead of the Name column.
Fix
By transforming the QueryElement Array into a map with the column.$$id as key, the KeyValueDiffer uses the column.$$id to diff the objects.
What is the new behavior?
The Company column does not lose its subscription to the draggable directive.
Does this PR introduce a breaking change? (check one with "x")
If this PR contains a breaking change, please describe the impact and migration path for existing applications: ...
Other information: