@skyux/ag-grid 6.0.0-beta.8 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -268,20 +268,10 @@ class SkyAgGridDataManagerAdapterDirective {
268
268
  .subscribe((value) => {
269
269
  this.updateColumnsInCurrentDataState(value.columnApi);
270
270
  });
271
- let currentColumns;
272
- agGrid.dragStarted
273
- .pipe(takeUntil(this.ngUnsubscribe))
274
- .subscribe((value) => {
275
- currentColumns = this.getColumnOrder(value.columnApi);
276
- });
277
271
  agGrid.dragStopped
278
272
  .pipe(takeUntil(this.ngUnsubscribe))
279
273
  .subscribe((value) => {
280
- const newColumns = this.getColumnOrder(value.columnApi);
281
- const hasChanged = currentColumns.findIndex((colId, i) => colId !== newColumns[i]);
282
- if (hasChanged > -1) {
283
- this.updateColumnsInCurrentDataState(value.columnApi);
284
- }
274
+ this.updateColumnsInCurrentDataState(value.columnApi);
285
275
  });
286
276
  agGrid.rowSelected
287
277
  .pipe(takeUntil(this.ngUnsubscribe))
@@ -324,14 +314,17 @@ class SkyAgGridDataManagerAdapterDirective {
324
314
  updateColumnsInCurrentDataState(columnApi) {
325
315
  const columnOrder = this.getColumnOrder(columnApi);
326
316
  const viewState = this.currentDataState.getViewStateById(this.viewConfig.id);
327
- viewState.displayedColumnIds = columnOrder;
328
- this.dataManagerSvc.updateDataState(this.currentDataState.addOrUpdateView(this.viewConfig.id, viewState), this.viewConfig.id);
317
+ if (viewState.displayedColumnIds.length !== columnOrder.length ||
318
+ viewState.displayedColumnIds.some((col, i) => col !== columnOrder[i])) {
319
+ viewState.displayedColumnIds = columnOrder;
320
+ this.dataManagerSvc.updateDataState(this.currentDataState.addOrUpdateView(this.viewConfig.id, viewState), this.viewConfig.id);
321
+ }
329
322
  }
330
323
  getColumnOrder(columnApi) {
331
324
  return columnApi
332
- .getAllGridColumns()
333
- .filter((col) => col.isVisible())
334
- .map((col) => col.getColDef().colId);
325
+ .getColumnState()
326
+ .filter((state) => !state.hide)
327
+ .map((state) => state.colId);
335
328
  }
336
329
  displayColumns(dataState) {
337
330
  const agGrid = this.currentAgGrid;
@@ -341,12 +334,16 @@ class SkyAgGridDataManagerAdapterDirective {
341
334
  if (viewState.displayedColumnIds) {
342
335
  displayedColumnIds = viewState.displayedColumnIds;
343
336
  }
344
- const columns = agGrid.columnApi.getAllColumns();
345
- for (const column of columns) {
346
- const colId = column.getColId();
347
- const colIndex = displayedColumnIds.indexOf(colId);
348
- agGrid.columnApi.setColumnVisible(colId, colIndex !== -1);
349
- agGrid.columnApi.moveColumn(colId, colIndex);
337
+ const columnOrder = this.getColumnOrder(agGrid.columnApi);
338
+ if (displayedColumnIds.length !== columnOrder.length ||
339
+ displayedColumnIds.some((col, i) => col !== columnOrder[i])) {
340
+ const hideColumns = agGrid.columnApi
341
+ .getColumnState()
342
+ .map((col) => col.colId)
343
+ .filter((colId) => !displayedColumnIds.includes(colId));
344
+ agGrid.columnApi.setColumnsVisible(hideColumns, false);
345
+ agGrid.columnApi.setColumnsVisible(displayedColumnIds, true);
346
+ agGrid.columnApi.moveColumns(displayedColumnIds, 0);
350
347
  }
351
348
  }
352
349
  selectAll() {