@datorama/core 22.14.1 → 22.15.2

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.
Files changed (55) hide show
  1. package/bundle.scss +9987 -6561
  2. package/bundles/datorama-core.umd.js +242 -95
  3. package/bundles/datorama-core.umd.js.map +1 -1
  4. package/bundles/datorama-core.umd.min.js +60 -60
  5. package/bundles/datorama-core.umd.min.js.map +1 -1
  6. package/datorama-core.metadata.json +1 -1
  7. package/esm2015/lib/button/button.component.js +1 -1
  8. package/esm2015/lib/grid/dato-grid.js +4 -3
  9. package/esm2015/lib/grid/grid/grid.component.js +5 -9
  10. package/esm2015/lib/grid/grid-sort.utils.js +28 -0
  11. package/esm2015/lib/grid-v2/grid/grid-v2.component.js +10 -3
  12. package/esm2015/lib/grid-v2/grid/grid-v2.config.js +45 -14
  13. package/esm2015/lib/grid-v2/grid-column-header/grid-column-header.component.js +4 -1
  14. package/esm2015/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.js +4 -1
  15. package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +60 -26
  16. package/esm2015/lib/grid-v2/grid-header/grid-header.component.js +3 -2
  17. package/esm2015/lib/grid-v2/grid-on-hover/grid-on-hover.component.js +17 -14
  18. package/esm2015/lib/grid-v2/grid-store/grid.query.js +11 -6
  19. package/esm2015/lib/grid-v2/grid-store/grid.service.js +19 -5
  20. package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +23 -17
  21. package/esm2015/lib/radio/radio.component.js +1 -1
  22. package/esm2015/lib/utils/string.js +9 -11
  23. package/esm2015/lib/version.js +2 -2
  24. package/esm5/lib/button/button.component.js +1 -1
  25. package/esm5/lib/grid/dato-grid.js +4 -3
  26. package/esm5/lib/grid/grid/grid.component.js +5 -9
  27. package/esm5/lib/grid/grid-sort.utils.js +35 -0
  28. package/esm5/lib/grid-v2/grid/grid-v2.component.js +14 -3
  29. package/esm5/lib/grid-v2/grid/grid-v2.config.js +47 -15
  30. package/esm5/lib/grid-v2/grid-column-header/grid-column-header.component.js +4 -1
  31. package/esm5/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.js +4 -1
  32. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +64 -26
  33. package/esm5/lib/grid-v2/grid-header/grid-header.component.js +3 -2
  34. package/esm5/lib/grid-v2/grid-on-hover/grid-on-hover.component.js +17 -14
  35. package/esm5/lib/grid-v2/grid-store/grid.query.js +11 -6
  36. package/esm5/lib/grid-v2/grid-store/grid.service.js +19 -5
  37. package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +23 -17
  38. package/esm5/lib/radio/radio.component.js +1 -1
  39. package/esm5/lib/utils/string.js +9 -11
  40. package/esm5/lib/version.js +2 -2
  41. package/fesm2015/datorama-core.js +226 -96
  42. package/fesm2015/datorama-core.js.map +1 -1
  43. package/fesm5/datorama-core.js +243 -97
  44. package/fesm5/datorama-core.js.map +1 -1
  45. package/lib/grid/grid-sort.utils.d.ts +15 -0
  46. package/lib/grid-v2/grid/grid-v2.component.d.ts +4 -0
  47. package/lib/grid-v2/grid/grid-v2.config.d.ts +1 -0
  48. package/lib/grid-v2/grid-column-header/grid-column-header.component.d.ts +2 -1
  49. package/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.d.ts +1 -0
  50. package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +15 -0
  51. package/lib/grid-v2/grid-on-hover/grid-on-hover.component.d.ts +1 -3
  52. package/lib/grid-v2/grid-store/grid.service.d.ts +325 -281
  53. package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +1 -0
  54. package/package.json +4 -1
  55. package/testing/src/grid/rows.ts +1 -1
@@ -1241,7 +1241,7 @@
1241
1241
  selector: 'dato-button',
1242
1242
  template: "<button class=\"d-flex d-flex-row align-center\" [disabled]=\"_disabled\" [class.lightning]=\"lightning\">\n <ng-content></ng-content>\n</button>\n",
1243
1243
  changeDetection: core.ChangeDetectionStrategy.OnPush,
1244
- styles: [":host{display:inline-block}:host button.lightning{border-radius:4px;height:35px;padding:0 16px;font-weight:500;font-family:'Salesforce Sans','Open Sans',sans-serif!important;font-size:13px;letter-spacing:0;line-height:17px;cursor:pointer}:host button{border:none;overflow:visible;text-transform:none;-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer;border-radius:2px;height:35px;padding:0 10px;font-size:14px;font-weight:600;white-space:nowrap}:host[datoSize=lg] button{height:35px}:host[datoSize=sm] button{height:24px;font-size:12px}:host.disabled{pointer-events:none}:host button:focus{outline:0}:host[datoCircle] button{border-radius:50%}:host.dato-icon-button button,:host[datoCircle] button{padding:0;width:34px;height:34px}:host.dato-icon-button[datoSize=md] button,:host[datoCircle][datoSize=md] button{width:24px;height:24px}:host.dato-icon-button[datoSize=sm] button,:host[datoCircle][datoSize=sm] button{width:16px;height:16px}"]
1244
+ styles: [":host{display:inline-block}:host button.lightning{border-radius:4px;height:35px;padding:0 16px;font-weight:500;font-family:\"Salesforce Sans\",\"Open Sans\",sans-serif!important;font-size:13px;letter-spacing:0;line-height:17px;cursor:pointer}:host button{border:none;overflow:visible;text-transform:none;-webkit-appearance:button;-moz-appearance:button;appearance:button;cursor:pointer;border-radius:2px;height:35px;padding:0 10px;font-size:14px;font-weight:600;white-space:nowrap}:host[datoSize=lg] button{height:35px}:host[datoSize=sm] button{height:24px;font-size:12px}:host.disabled{pointer-events:none}:host button:focus{outline:0}:host[datoCircle] button{border-radius:50%}:host.dato-icon-button button,:host[datoCircle] button{padding:0;width:34px;height:34px}:host.dato-icon-button[datoSize=md] button,:host[datoCircle][datoSize=md] button{width:24px;height:24px}:host.dato-icon-button[datoSize=sm] button,:host[datoCircle][datoSize=sm] button{width:16px;height:16px}"]
1245
1245
  }),
1246
1246
  __param(1, core.Attribute('width')),
1247
1247
  __param(2, core.Attribute('height')),
@@ -1871,15 +1871,12 @@
1871
1871
  * @returns {string}
1872
1872
  */
1873
1873
  function camelCase(str) {
1874
- var camelCase = function (str) {
1875
- var string = str
1876
- .toLowerCase()
1877
- .replace(/[^A-Za-z0-9]/g, ' ')
1878
- .split(' ')
1879
- .reduce(function (result, word) { return result + capitalize(word.toLowerCase()); });
1880
- return string.charAt(0).toLowerCase() + string.slice(1);
1881
- };
1882
- return camelCase(str);
1874
+ var string = str
1875
+ .toLowerCase()
1876
+ .replace(/[^A-Za-z0-9]/g, ' ')
1877
+ .split(' ')
1878
+ .reduce(function (result, word) { return result + capitalize(word.toLowerCase()); });
1879
+ return string.charAt(0).toLowerCase() + string.slice(1);
1883
1880
  }
1884
1881
  /**
1885
1882
  *
@@ -1897,7 +1894,8 @@
1897
1894
  * @returns {string} - The GUID
1898
1895
  */
1899
1896
  function createGUID() {
1900
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
1897
+ var template = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
1898
+ return template.replace(/[xy]/g, function (c) {
1901
1899
  var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;
1902
1900
  return v.toString(16);
1903
1901
  });
@@ -5896,10 +5894,10 @@
5896
5894
  _this.onChange(selectedRows);
5897
5895
  },
5898
5896
  rowSelection: 'multiple',
5899
- rowDeselection: true,
5897
+ // rowDeselection removed: true by default in AG Grid 27 (suppress with suppressRowDeselection).
5900
5898
  unSortIcon: true,
5901
- animateRows: true,
5902
- rememberGroupStateWhenNewData: true
5899
+ animateRows: true
5900
+ // rememberGroupStateWhenNewData removed: no-op since AG Grid 24 (transaction updates keep group state).
5903
5901
  };
5904
5902
  _this.infinitePagination = false;
5905
5903
  _this.isRowsCollapsed = true;
@@ -5924,10 +5922,6 @@
5924
5922
  classFunc(this.hostElement, 'grid-pagination');
5925
5923
  if (this.gridOptions.rowModelType === 'infinite' || this.gridOptions.rowModelType === 'serverSide') {
5926
5924
  this.infinitePagination = true;
5927
- var defaultColDef = this.gridOptions.defaultColDef;
5928
- if (defaultColDef.filter) {
5929
- defaultColDef.filterParams = { newRowsAction: 'keep' };
5930
- }
5931
5925
  }
5932
5926
  },
5933
5927
  enumerable: true,
@@ -6066,7 +6060,7 @@
6066
6060
  changeDetection: core.ChangeDetectionStrategy.OnPush,
6067
6061
  encapsulation: core.ViewEncapsulation.None,
6068
6062
  providers: [valueAccessor$2],
6069
- styles: ["@font-face{font-family:agGridClassic;src:url(\"data:application/font-woff;charset=utf-8;base64,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\") format(\"woff\"),url(\"data:application/x-font-ttf;charset=utf-8;base64,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AAAAdAAAADoAAAB1AAAAdQAAAEkAAAB2AAAAdgAAAE4AAAB3AAAAdwAAAD4AAAB4AAAAeAAAAEUAAAB5AAAAeQAAAEsAAAB6AAAAegAAAE0AAPEBAADxAQAAAAEAAPECAADxAgAAAAIAAPEDAADxAwAAAAMAAPEEAADxBAAAAAQAAPEFAADxBQAAAAUAAPEGAADxBgAAAAYAAPEHAADxBwAAAAcAAPEIAADxCAAAAAgAAPEJAADxCQAAAAkAAPEKAADxCgAAAAoAAPELAADxCwAAAAsAAPEMAADxDAAAAAwAAPENAADxDQAAAA0AAPEOAADxDgAAAA4AAPEPAADxDwAAAA8AAPEQAADxEAAAABAAAPERAADxEQAAABEAAPESAADxEgAAABIAAPETAADxEwAAABMAAPEUAADxFAAAABUAAPEVAADxFQAAABYAAPEWAADxFgAAABcAAPEXAADxFwAAABgAAPEYAADxGAAAABkAAPEZAADxGQAAABoAAPEaAADxGgAAABsAAPEbAADxGwAAABwAAPEcAADxHAAAAB0AAPEdAADxHQAAAB4AAPEeAADxHgAAAB8AAPEfAADxHwAAACAAAPEgAADxIAAAACEAAPEhAADxIQAAACIAAPEiAADxIgAAACMAAPEjAADxIwAAACQAAPEkAADxJAAAACUAAPElAADxJQAAACYAAPEmAADxJgAAACcAAPEnAADxJwAAACgAAPEoAADxKAAAACkAAPEpAADxKQAAACoAAPEqAADxKgAAACsAAPErAADxKwAAACwAAPEsAADxLAAAAC0AAPEtAADxLQAAAC4AAPEuAADxLgAAAC8AAPEvAADxLwAAADAAAPEwAADxMAAAADEAAPExAADxMQAAADIAAPEyAADxMgAAADMAAPEzAADxMwAAADEAAPE0AADxNAAAACIAAPE1AADxNQAAAC8AAPE2AADxNgAAADQAAAAAABgAUgBqAIQA0AEUAVQBjAG+AdQCAAJIAmwCjgMUA2YDfgO+BCQEigTmBPwFFgViBaYF+AYQBigG0AcCB1QHcAfCB9AH4ggECFoIeAiUCPYJCgkcCWIJvAnUCf4KDAoaCigKNgpKCtQLXgteC14LXgteC14LXgteC14LXgteC14LXgteC14LXgteC14LXgteC14LXgteC14LXgteAAEAAAAAAzYDawAJ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AHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVAAC2FnZ3JlZ2F0aW9uBmFycm93cwNhc2MGY2FuY2VsBWNoYXJ0EGNoZWNrYm94LWNoZWNrZWQWY2hlY2tib3gtaW5kZXRlcm1pbmF0ZRJjaGVja2JveC11bmNoZWNrZWQMY29sb3ItcGlja2VyBmNvbHVtbgdjb2x1bW5zCmNvbnRyYWN0ZWQEY29weQVjcm9zcwNjdXQEZGF0YQRkZXNjCGV4cGFuZGVkCWV5ZS1zbGFzaAtleWUtc2xhc2gtMQNleWUGZmlsdGVyBWZpcnN0BGdyaXAFZ3JvdXANaW5kZXRlcm1pbmF0ZQRsYXN0BGxlZnQGbGlua2VkB2xvYWRpbmcIbWF4aW1pemUEbWVudQhtaW5pbWl6ZQVtaW51cwRuZXh0BG5vbmULbm90LWFsbG93ZWQFcGFzdGUDcGluBXBpdm90BHBsdXMIcHJldmlvdXMQcmFkaW8tYnV0dG9uLW9mZg9yYWRpby1idXR0b24tb24FcmlnaHQEc2F2ZQpzbWFsbC1kb3duCnNtYWxsLWxlZnQLc21hbGwtcmlnaHQIc21hbGwtdXAEdGljawh1bmxpbmtlZAp1bmxpbmtlZC0xAWEBZwFyAWUBdAFpAW8BbgF3AXMBYwFsAWgBawFiAXgBLQFkAW0BdQFwAXkBZgF6AXYAAAA=\") format(\"truetype\");font-weight:400;font-style:normal}dato-grid{display:block;width:100%;height:100%;overflow:hidden}dato-grid.grid-pagination{padding-bottom:0;display:flex;flex-direction:column}dato-grid.grid-pagination ag-grid-angular{margin-bottom:7px;height:calc(100% - 32px)}.ag-dato-core{width:100%;height:100%}.ag-dato-core .da-grid-icon{display:inline-block;line-height:31px;vertical-align:middle}.ag-dato-core .ag-menu .da-grid-icon svg{vertical-align:middle}.ag-dato-core .ag-header-cell-sortable .ag-sort-none-icon{opacity:0;transition:opacity .2s}.ag-dato-core .ag-header-cell-sortable:hover .ag-sort-none-icon{opacity:1}.ag-dato-core .sort-icon svg{width:14px;height:16px}.ag-dato-core .filter-icon svg{width:13px}.ag-dato-core .menu-icon svg{width:4px;height:14px}.ag-dato-core .menu-auto-size-icon svg,.ag-dato-core .menu-group-icon,.ag-dato-core .menu-pin-icon,.ag-dato-core .menu-un-group-icon{width:16px;height:16px}.ag-dato-core .menu-check-icon svg{width:15px;height:18px}.ag-dato-core .group-contracted-icon,.ag-dato-core .group-expanded-icon{width:7px}.ag-dato-core .group-expanded-icon{transform:rotate(90deg)}"]
6063
+ styles: ["dato-grid{display:block;width:100%;height:100%;overflow:hidden}dato-grid.grid-pagination{padding-bottom:0;display:flex;flex-direction:column}dato-grid.grid-pagination ag-grid-angular{margin-bottom:7px;height:calc(100% - 32px)}.ag-dato-core{width:100%;height:100%}.ag-dato-core .da-grid-icon{display:inline-block;line-height:31px;vertical-align:middle}.ag-dato-core .ag-menu .da-grid-icon svg{vertical-align:middle}.ag-dato-core .ag-header-cell-sortable .ag-sort-none-icon{opacity:0;transition:opacity .2s}.ag-dato-core .ag-header-cell-sortable:hover .ag-sort-none-icon{opacity:1}.ag-dato-core .sort-icon svg{width:14px;height:16px}.ag-dato-core .filter-icon svg{width:13px}.ag-dato-core .menu-icon svg{width:4px;height:14px}.ag-dato-core .menu-auto-size-icon svg,.ag-dato-core .menu-group-icon,.ag-dato-core .menu-pin-icon,.ag-dato-core .menu-un-group-icon{width:16px;height:16px}.ag-dato-core .menu-check-icon svg{width:15px;height:18px}.ag-dato-core .group-contracted-icon,.ag-dato-core .group-expanded-icon{width:7px}.ag-dato-core .group-expanded-icon{transform:rotate(90deg)}"]
6070
6064
  }),
6071
6065
  __metadata("design:paramtypes", [DatoGridHelper,
6072
6066
  core.ElementRef,
@@ -11356,6 +11350,41 @@
11356
11350
  };
11357
11351
  }
11358
11352
 
11353
+ /**
11354
+ * Returns the active sort model using the Column State API introduced as the
11355
+ * replacement for GridApi#getSortModel in AG Grid 24 and required in AG Grid 27.
11356
+ */
11357
+ function getSortModel(columnApi) {
11358
+ var sortIndexes = {};
11359
+ // AG Grid 27: getColumnState() returns undefined before the grid's columns are initialized.
11360
+ // getSortModel() is reached via getCurrentGridSettings()/onFilterSortChanged() on resize/data
11361
+ // events that can fire before that point, so guard against undefined to avoid
11362
+ // "Cannot read properties of undefined (reading 'filter')".
11363
+ var columnState = columnApi.getColumnState() || [];
11364
+ var sortedColumns = columnState.filter(function (state) { return state.sort != null; });
11365
+ sortedColumns.forEach(function (columnState) {
11366
+ sortIndexes[columnState.colId] = columnState.sortIndex;
11367
+ });
11368
+ return sortedColumns
11369
+ .map(function (_a) {
11370
+ var colId = _a.colId, sort = _a.sort;
11371
+ return ({ colId: colId, sort: sort });
11372
+ })
11373
+ .sort(function (left, right) { return sortIndexes[left.colId] - sortIndexes[right.colId]; });
11374
+ }
11375
+ /**
11376
+ * Applies the complete sort model and clears sorting from columns omitted from
11377
+ * the model, matching the behavior of the removed GridApi#setSortModel method.
11378
+ */
11379
+ function applySortModel(columnApi, sortModel) {
11380
+ if (sortModel === void 0) { sortModel = []; }
11381
+ var state = sortModel.map(function (_a, sortIndex) {
11382
+ var colId = _a.colId, sort = _a.sort;
11383
+ return ({ colId: colId, sort: sort, sortIndex: sortIndex });
11384
+ });
11385
+ return columnApi.applyColumnState({ state: state, defaultState: { sort: null } });
11386
+ }
11387
+
11359
11388
  /**
11360
11389
  * @license
11361
11390
  * Copyright Datorama. All Rights Reserved.
@@ -11423,7 +11452,7 @@
11423
11452
  */
11424
11453
  DatoGrid.prototype.onFilterSortChanged = function () {
11425
11454
  var filter = this.gridApi.getFilterModel();
11426
- var sort = this.gridApi.getSortModel();
11455
+ var sort = getSortModel(this.columnApi);
11427
11456
  // save grid's configuration
11428
11457
  setGridModel(this.gridName, {
11429
11458
  filter: filter,
@@ -11436,7 +11465,7 @@
11436
11465
  DatoGrid.prototype.setSavedModel = function () {
11437
11466
  var _a = getGridModel(this.gridName), sort = _a.sort, filter = _a.filter;
11438
11467
  if (sort) {
11439
- this.gridApi.setSortModel(sort);
11468
+ applySortModel(this.columnApi, sort);
11440
11469
  }
11441
11470
  if (filter) {
11442
11471
  this.gridApi.setFilterModel(filter);
@@ -11627,9 +11656,13 @@
11627
11656
  GridQuery.prototype.getCurrentGridSettings = function () {
11628
11657
  var toColId = function (column) { return column.getColId(); };
11629
11658
  var columns = this.api.columns;
11630
- var groupedColumns = columns.getRowGroupColumns();
11631
- var columnsOrder = columns.getAllColumns();
11632
- var allGridColumns = columns.getAllGridColumns();
11659
+ // AG Grid 27: getAllColumns() returns Column[] | null (and the grouped/grid column getters can
11660
+ // likewise be empty) before the grid's columns are initialized. getCurrentGridSettings() is
11661
+ // reached via fitGrid -> updateSettings on window resize, which can fire before that point, so
11662
+ // guard against null to avoid "Cannot read properties of undefined (reading 'filter')".
11663
+ var groupedColumns = columns.getRowGroupColumns() || [];
11664
+ var columnsOrder = columns.getAllColumns() || [];
11665
+ var allGridColumns = columns.getAllGridColumns() || [];
11633
11666
  var hiddenColumns = columnsOrder
11634
11667
  .filter(function (column) { return !column.isVisible() && !groupedColumns.includes(column); })
11635
11668
  .map(toColId);
@@ -11640,7 +11673,7 @@
11640
11673
  hiddenColumns: hiddenColumns,
11641
11674
  groupedColumns: groupedColumns.map(toColId),
11642
11675
  filter: this.getFilter(),
11643
- pinnedColumns: columns.getDisplayedLeftColumns().map(toColId),
11676
+ pinnedColumns: (columns.getDisplayedLeftColumns() || []).map(toColId),
11644
11677
  columnsOrder: allGridColumns.map(toColId),
11645
11678
  columnsSizes: null,
11646
11679
  searchTerm: null
@@ -11651,7 +11684,7 @@
11651
11684
  return settings;
11652
11685
  };
11653
11686
  GridQuery.prototype.getSortModel = function () {
11654
- return this.api.grid.getSortModel().pop();
11687
+ return getSortModel(this.api.columns).pop();
11655
11688
  };
11656
11689
  GridQuery.prototype.getSavedSort = function () {
11657
11690
  return this.getValue().settings.sort || this.getSortModel();
@@ -13615,6 +13648,9 @@
13615
13648
  this.filtersMenuOpen = false;
13616
13649
  }
13617
13650
  DatoGridColumnHeaderComponent.prototype.afterGuiAttached = function (params) { };
13651
+ DatoGridColumnHeaderComponent.prototype.refresh = function (_params) {
13652
+ return false;
13653
+ };
13618
13654
  DatoGridColumnHeaderComponent.prototype.agInit = function (params) {
13619
13655
  var _this = this;
13620
13656
  this.params = params;
@@ -13749,13 +13785,12 @@
13749
13785
  }
13750
13786
  var ROOT_NODE_ID = 'ROOT_NODE_ID';
13751
13787
  var ɵ0$2 = function (item) { return item[gridTreeFilePathKey]; };
13752
- var defaultTreeOptions = {
13788
+ var defaultTreeOptionsBase = {
13753
13789
  getDataPath: ɵ0$2,
13754
13790
  components: {
13755
13791
  fileCellRenderer: getGridTreeCellRenderer()
13756
13792
  },
13757
13793
  onRowDragMove: onRowDragMove,
13758
- onRowDragEnd: onRowDragEnd,
13759
13794
  onRowSelected: onRowSelected,
13760
13795
  onRowGroupOpened: rowGroupOpened,
13761
13796
  suppressRowClickSelection: true,
@@ -13764,6 +13799,11 @@
13764
13799
  rowDrag: '<dato-icon icon="drag" class="dato-icon-font-drag primary-400-color"></dato-icon>'
13765
13800
  }
13766
13801
  };
13802
+ function createDefaultTreeOptions(maxDepth) {
13803
+ if (maxDepth === void 0) { maxDepth = -1; }
13804
+ return __assign(__assign({}, defaultTreeOptionsBase), { onRowDragEnd: function (event) { return onRowDragEnd(event, maxDepth); } });
13805
+ }
13806
+ var defaultTreeOptions = createDefaultTreeOptions();
13767
13807
  var ɵ1$2 = function (a, b) { return (a || '').toLowerCase().localeCompare((b || '').toLowerCase()); };
13768
13808
  var stringColDef = {
13769
13809
  filter: exports.DatoGridFilterTypes.String,
@@ -13779,7 +13819,27 @@
13779
13819
  comparator: function (a, b) { return getTime$1(a) - getTime$1(b); }
13780
13820
  },
13781
13821
  _a$3[exports.DatoGridColumnTypes.Number] = {
13782
- filter: exports.DatoGridFilterTypes.Number
13822
+ filter: exports.DatoGridFilterTypes.Number,
13823
+ // AG Grid resolves a column's sort comparator only from its merged colDef.comparator.
13824
+ // Number columns had none, so they fell back to AG Grid's default comparator, which sorts
13825
+ // string-typed values lexicographically ("10" before "2"). Provide an explicit numeric
13826
+ // comparator. Map null/empty/non-numeric to -Infinity so we never return NaN (AG Grid's
13827
+ // sorter skips a NaN result). Ascending-sense only — AG Grid flips the sign for descending.
13828
+ comparator: function (a, b) {
13829
+ var toNum = function (v) {
13830
+ var n = v == null || v === '' ? NaN : Number(v);
13831
+ return isNaN(n) ? -Infinity : n;
13832
+ };
13833
+ var na = toNum(a);
13834
+ var nb = toNum(b);
13835
+ // Compare relationally (not by subtraction): two missing/non-numeric values both map to
13836
+ // -Infinity, and -Infinity - (-Infinity) === NaN, which AG Grid's sorter skips. Returning
13837
+ // 0 / -1 / 1 avoids NaN entirely. Ascending sense — AG Grid flips the sign for descending.
13838
+ if (na === nb) {
13839
+ return 0;
13840
+ }
13841
+ return na < nb ? -1 : 1;
13842
+ }
13783
13843
  },
13784
13844
  _a$3[exports.DatoGridColumnTypes.String] = stringColDef,
13785
13845
  _a$3[exports.DatoGridColumnTypes.Status] = __assign(__assign({}, stringColDef), { cellRenderer: 'DatoGridStatusCellComponent' }),
@@ -13787,14 +13847,20 @@
13787
13847
  _a$3[exports.DatoGridColumnTypes.ItemsCount] = __assign(__assign({}, stringColDef), { cellRenderer: 'DatoGridItemsCountCellComponent' }),
13788
13848
  _a$3[exports.DatoGridColumnTypes.Initials] = __assign(__assign({}, stringColDef), { cellRenderer: 'DatoGridInitialsCellComponent' }),
13789
13849
  _a$3[exports.DatoGridColumnTypes.Avatar] = __assign(__assign({}, stringColDef), { cellRenderer: 'DatoGridAvatarCellComponent' }),
13790
- _a$3), multiSortKey: 'ctrl', suppressPaginationPanel: true, pagination: true, paginateChildRows: true, deltaColumnMode: true, loadingOverlayComponentFramework: DatoGridV2LoaderComponent, noRowsOverlayComponentFramework: DatoGridV2NoDataOverlayComponent, defaultColDef: {
13850
+ _a$3), multiSortKey: 'ctrl', suppressPaginationPanel: true, pagination: true, paginateChildRows: true,
13851
+ // deltaColumnMode removed: deprecated in AG Grid 27, delta column updates are the default now.
13852
+ loadingOverlayComponentFramework: DatoGridV2LoaderComponent, noRowsOverlayComponentFramework: DatoGridV2NoDataOverlayComponent, defaultColDef: {
13791
13853
  minWidth: exports.GridMinWidths.Default,
13792
13854
  sortable: true,
13793
13855
  resizable: true,
13794
13856
  type: exports.DatoGridColumnTypes.String,
13795
13857
  menuTabs: ['filterMenuTab'],
13796
13858
  headerComponentFramework: DatoGridColumnHeaderComponent
13797
- }, suppressCellSelection: true, suppressPropertyNamesCheck: true, rowHeight: 35, headerHeight: 30, rowSelection: exports.GridRowSelectionType.MULTIPLE, rowDeselection: true, unSortIcon: true, animateRows: true, rememberGroupStateWhenNewData: true, groupMultiAutoColumn: true, groupDefaultExpanded: -1, usePivotGridStyle: false, disabledHTMLRenderingFields: [] }, (isTestEnv() ? { suppressColumnVirtualisation: true, rowBuffer: 99999 } : {}));
13859
+ }, suppressCellFocus: true, suppressPropertyNamesCheck: true, rowHeight: 35, headerHeight: 30, rowSelection: exports.GridRowSelectionType.MULTIPLE,
13860
+ // rowDeselection removed: true by default in AG Grid 27 (suppress with suppressRowDeselection).
13861
+ unSortIcon: true, animateRows: true,
13862
+ // rememberGroupStateWhenNewData removed: no-op since AG Grid 24 (transaction updates keep group state).
13863
+ groupDisplayType: 'multipleColumns', groupDefaultExpanded: -1, usePivotGridStyle: false, disabledHTMLRenderingFields: [] }, (isTestEnv() ? { suppressColumnVirtualisation: true, rowBuffer: 99999 } : {}));
13798
13864
  var DEFAULT_GRID_SEARCH_DEBOUNCE_TIME = {
13799
13865
  CLIENT: 200,
13800
13866
  SERVER: 250
@@ -13883,8 +13949,11 @@
13883
13949
  * relevant css style to it.
13884
13950
  * @param overNode
13885
13951
  */
13952
+ function getRootNode(api) {
13953
+ return api.getModel().getRootNode();
13954
+ }
13886
13955
  function onRowDragMove(_a) {
13887
- var overNode = _a.overNode, node = _a.node;
13956
+ var overNode = _a.overNode, node = _a.node, api = _a.api;
13888
13957
  var folderToDropInto;
13889
13958
  if (overNode) {
13890
13959
  // folder to drop into is where we are going to move the file/folder to
@@ -13895,7 +13964,7 @@
13895
13964
  overNode.parent;
13896
13965
  }
13897
13966
  else {
13898
- folderToDropInto = node.rowModel.rootNode;
13967
+ folderToDropInto = getRootNode(api);
13899
13968
  }
13900
13969
  if (potentialParent) {
13901
13970
  if (potentialParent.id === folderToDropInto.id) {
@@ -13916,8 +13985,8 @@
13916
13985
  folderToDropIntoElement && folderToDropIntoElement.classList.add(agRowHoverClassName);
13917
13986
  }
13918
13987
  }
13919
- function onRowDragEnd(_a) {
13920
- var overNode = _a.overNode, node = _a.node;
13988
+ function onRowDragEnd(_a, maxDepth) {
13989
+ var overNode = _a.overNode, node = _a.node, api = _a.api;
13921
13990
  var nodeParent;
13922
13991
  var folderToDropInto;
13923
13992
  if (overNode) {
@@ -13930,17 +13999,16 @@
13930
13999
  overNode.parent;
13931
14000
  }
13932
14001
  else {
13933
- nodeParent = node.rowModel.rootNode;
13934
- folderToDropInto = node.rowModel.rootNode;
14002
+ nodeParent = getRootNode(api);
14003
+ folderToDropInto = getRootNode(api);
13935
14004
  }
13936
14005
  // the data we want to move
13937
14006
  var movingData = node.data;
13938
- var treeMaxDepth = node.gridOptionsWrapper.gridOptions.maxDepth || -1;
13939
14007
  // Disable nested drag when tree depth is above the limit
13940
14008
  if (movingData.isFolder &&
13941
- treeMaxDepth !== -1 &&
14009
+ maxDepth !== -1 &&
13942
14010
  nodeParent.id !== ROOT_NODE_ID &&
13943
- overNode.data.agGridFilePath.length > treeMaxDepth) {
14011
+ overNode.data.agGridFilePath.length > maxDepth) {
13944
14012
  return;
13945
14013
  }
13946
14014
  // take new parent path from parent, if data is missing, means it's the root node,
@@ -14151,6 +14219,9 @@
14151
14219
  _this.toggleMultiSelection(isSelectAll);
14152
14220
  });
14153
14221
  };
14222
+ DatoGridMultiSelectColumnHeaderComponent.prototype.refresh = function (_params) {
14223
+ return false;
14224
+ };
14154
14225
  DatoGridMultiSelectColumnHeaderComponent.prototype.subscribeRowsSelectionData = function () {
14155
14226
  var _this = this;
14156
14227
  this.gridQuery.gridReady$
@@ -14485,8 +14556,21 @@
14485
14556
  gridOptions.enableSearchHighlight) {
14486
14557
  normalized.cellRenderer = function (params) {
14487
14558
  var allowHTML = isHtmlAllowedForCol(gridOptions, params.colDef);
14488
- var isEditable = (isFunction(normalized.editable) && normalized.editable(params)) ||
14489
- (!isFunction(normalized.editable) && normalized.editable);
14559
+ var column = params.column, colDef = params.colDef;
14560
+ var editableParams = column && colDef
14561
+ ? {
14562
+ api: params.api,
14563
+ columnApi: params.columnApi,
14564
+ context: params.context,
14565
+ node: params.node,
14566
+ data: params.data,
14567
+ column: column,
14568
+ colDef: colDef
14569
+ }
14570
+ : null;
14571
+ var isEditable = isFunction(normalized.editable)
14572
+ ? editableParams && normalized.editable(editableParams)
14573
+ : normalized.editable;
14490
14574
  return isEditable
14491
14575
  ? editableCellRendererWithSearchHighlight(params, _this.gridQuery.getSearchTerm(), allowHTML)
14492
14576
  : searchHighlightCellRenderer(params, _this.gridQuery.getSearchTerm(), allowHTML);
@@ -14688,7 +14772,7 @@
14688
14772
  }
14689
14773
  }
14690
14774
  this.updateSettings({ sort: sortToApply });
14691
- this.api.grid.setSortModel([sortToApply]);
14775
+ applySortModel(this.api.columns, [sortToApply]);
14692
14776
  if (this.gridRef.gridOptions.usePivotGridStyle) {
14693
14777
  this.api.grid.redrawRows();
14694
14778
  }
@@ -14929,7 +15013,7 @@
14929
15013
  columns.setColumnsVisible(removeGrouped, true);
14930
15014
  /* Apply sort */
14931
15015
  var gridSort = sort || this.initialSettings.sort;
14932
- grid.setSortModel(gridSort ? [gridSort] : null);
15016
+ applySortModel(columns, gridSort ? [gridSort] : []);
14933
15017
  /* Align grid */
14934
15018
  if (gridAlignment === 2 /* CUSTOM */) {
14935
15019
  /* Set column sizes */
@@ -15475,10 +15559,9 @@
15475
15559
  * found in the LICENSE file at https://github.com/datorama/client-core/blob/master/LICENSE
15476
15560
  */
15477
15561
  var DatoGridOnHoverComponent = /** @class */ (function () {
15478
- function DatoGridOnHoverComponent(host, gridService, gridQuery, cdr) {
15562
+ function DatoGridOnHoverComponent(host, gridService, cdr) {
15479
15563
  this.host = host;
15480
15564
  this.gridService = gridService;
15481
- this.gridQuery = gridQuery;
15482
15565
  this.cdr = cdr;
15483
15566
  this.displayedActions = [];
15484
15567
  this.setBgColorBound = this.setBackgroundColor.bind(this);
@@ -15513,13 +15596,22 @@
15513
15596
  });
15514
15597
  };
15515
15598
  DatoGridOnHoverComponent.prototype.openActionMenu = function (event) {
15516
- /* Hack to open the ag grid context menu */
15517
- /* https://github.com/ag-grid/ag-grid-enterprise/issues/72 */
15518
- var _a = this.params, rowIndex = _a.rowIndex, node = _a.node, column = _a.column, value = _a.value;
15519
- var cell = this.gridQuery.api.grid.rowRenderer.rowCompsByIndex[rowIndex].getRenderedCellForColumn(column);
15520
15599
  /* The actions menu is different from the regular menu, we use the grid's context to signal that this is the actions menu*/
15521
15600
  this.gridService.updateGridContext({ contextMenu: { fromOnHover: true } });
15522
- cell.beans.contextMenuFactory.showMenu(node, column, value, event);
15601
+ var target = this.params.event && this.params.event.target;
15602
+ if (!(target instanceof Element)) {
15603
+ return;
15604
+ }
15605
+ var cell = target.closest('.ag-cell');
15606
+ if (!cell) {
15607
+ return;
15608
+ }
15609
+ cell.dispatchEvent(new MouseEvent('contextmenu', {
15610
+ bubbles: true,
15611
+ cancelable: true,
15612
+ clientX: event.clientX,
15613
+ clientY: event.clientY
15614
+ }));
15523
15615
  };
15524
15616
  DatoGridOnHoverComponent.prototype.updateScrollPos = function (left) {
15525
15617
  var cellBorder = 1;
@@ -15573,7 +15665,6 @@
15573
15665
  DatoGridOnHoverComponent.ctorParameters = function () { return [
15574
15666
  { type: core.ElementRef },
15575
15667
  { type: GridService },
15576
- { type: GridQuery },
15577
15668
  { type: core.ChangeDetectorRef }
15578
15669
  ]; };
15579
15670
  DatoGridOnHoverComponent = __decorate([
@@ -15583,10 +15674,7 @@
15583
15674
  changeDetection: core.ChangeDetectionStrategy.OnPush,
15584
15675
  styles: [":host{display:flex;justify-content:flex-end;align-content:center;align-items:center;position:absolute;max-width:150px;transition:opacity .3s ease-in-out;opacity:0}:host .gradient{min-width:20px}"]
15585
15676
  }),
15586
- __metadata("design:paramtypes", [core.ElementRef,
15587
- GridService,
15588
- GridQuery,
15589
- core.ChangeDetectorRef])
15677
+ __metadata("design:paramtypes", [core.ElementRef, GridService, core.ChangeDetectorRef])
15590
15678
  ], DatoGridOnHoverComponent);
15591
15679
  return DatoGridOnHoverComponent;
15592
15680
  }());
@@ -15742,18 +15830,30 @@
15742
15830
  this.gridActions = [];
15743
15831
  this.gridReady$ = this.gridQuery.gridReady$;
15744
15832
  this.contentInit = new rxjs.Subject();
15833
+ // ngx-take-until-destroy patches ngOnDestroy on the instance, which Ivy never calls (it uses the
15834
+ // prototype hook), so listeners outlived the grid and hit the destroyed AG Grid API.
15835
+ this.destroy$ = new rxjs.Subject();
15836
+ this.hasGridOptions = new rxjs.BehaviorSubject(false);
15837
+ this.agGridReady = new rxjs.ReplaySubject(1);
15745
15838
  this.gridElements = {
15746
15839
  centerViewport: null,
15747
15840
  centerContainer: null,
15748
15841
  bodyViewport: null
15749
15842
  };
15750
15843
  this.treeGridClass = 'tree';
15844
+ this.hasGridOptions$ = this.hasGridOptions.asObservable();
15751
15845
  }
15752
15846
  Object.defineProperty(DatoGridControllerComponent.prototype, "gridOptions", {
15753
15847
  get: function () {
15754
15848
  return this._gridOptions;
15755
15849
  },
15756
15850
  set: function (gridOptions) {
15851
+ // The [gridOptions] binding can resolve to undefined during the host's initial change-detection
15852
+ // pass (before the consumer computes its options). Ignore it instead of throwing
15853
+ // "Cannot read properties of undefined" from initGridOptions() and aborting the view render.
15854
+ if (!gridOptions) {
15855
+ return;
15856
+ }
15757
15857
  this._gridOptions = this.gridService.initGridOptions(gridOptions);
15758
15858
  this.gridService.treeData = gridOptions.treeData;
15759
15859
  this.gridService.isPivotMode = gridOptions.pivotMode;
@@ -15765,16 +15865,37 @@
15765
15865
  this.agGridEl.classList.add(this.treeGridClass);
15766
15866
  }
15767
15867
  }
15868
+ !this.hasGridOptions.value && this.hasGridOptions.next(true);
15869
+ },
15870
+ enumerable: true,
15871
+ configurable: true
15872
+ });
15873
+ Object.defineProperty(DatoGridControllerComponent.prototype, "agGridOptions", {
15874
+ /* @internal */
15875
+ get: function () {
15876
+ if (!this._agGridOptions && this._gridOptions) {
15877
+ this.gridOptions = this.normalizeOptions();
15878
+ this._agGridOptions = this.gridOptions;
15879
+ }
15880
+ return this._agGridOptions;
15768
15881
  },
15769
15882
  enumerable: true,
15770
15883
  configurable: true
15771
15884
  });
15772
15885
  DatoGridControllerComponent.prototype.ngOnDestroy = function () {
15886
+ this.destroy$.next();
15887
+ this.destroy$.complete();
15773
15888
  this.contentInit.complete();
15889
+ this.hasGridOptions.complete();
15890
+ this.agGridReady.complete();
15774
15891
  this.clearTooltip();
15775
15892
  this.rowHoverComponent && this.rowHoverComponent.destroy();
15776
15893
  this.rowHoverComponent = null;
15777
15894
  };
15895
+ /* @internal */
15896
+ DatoGridControllerComponent.prototype.onAgGridReady = function (event) {
15897
+ this.agGridReady.next(event);
15898
+ };
15778
15899
  DatoGridControllerComponent.prototype.initializeGrid = function (agGrid, agGridEl) {
15779
15900
  if (!this.contentInit.isStopped) {
15780
15901
  this._initializeGrid(agGrid, agGridEl);
@@ -15789,11 +15910,13 @@
15789
15910
  this.contentInit
15790
15911
  .asObservable()
15791
15912
  .pipe(operators.switchMap(function () {
15792
- _this.gridOptions = _this.normalizeOptions();
15793
- agGrid.gridOptions = _this.gridOptions;
15913
+ // Already normalized when dato-grid-v2 bound them to <ag-grid-angular [gridOptions]>.
15914
+ if (!_this.agGridOptions) {
15915
+ return rxjs.EMPTY;
15916
+ }
15794
15917
  var settingsLoader = _this.gridOptions.saveSettings === false ? rxjs.of(null) : _this.storageAPI.get(_this.gridOptions.gridName);
15795
- return rxjs.combineLatest([agGrid.gridReady, settingsLoader]);
15796
- }), ngxTakeUntilDestroy.untilDestroyed(this))
15918
+ return rxjs.combineLatest([_this.agGridReady, settingsLoader]);
15919
+ }), operators.takeUntil(this.destroy$))
15797
15920
  .subscribe(function (_a) {
15798
15921
  var _b = __read(_a, 2), _c = _b[0], api = _c.api, columnApi = _c.columnApi, _d = _b[1], savedSettings = _d === void 0 ? {} : _d;
15799
15922
  if (!_this.gridOptions.rowData) {
@@ -15828,7 +15951,7 @@
15828
15951
  rowActions: this.rowActions
15829
15952
  };
15830
15953
  var normalized = this.gridService.normalizeOptions(params);
15831
- var defaults = __assign(__assign(__assign({}, defaultGridOptions), (this.gridOptions.treeData ? defaultTreeOptions : {})), { icons: this.getGridIcons(), disabledHTMLRenderingFields: normalized.disabledHTMLRenderingFields || defaultGridOptions.disabledHTMLRenderingFields });
15954
+ var defaults = __assign(__assign(__assign({}, defaultGridOptions), (this.gridOptions.treeData ? createDefaultTreeOptions(this.gridOptions.maxDepth) : {})), { icons: this.getGridIcons(), disabledHTMLRenderingFields: normalized.disabledHTMLRenderingFields || defaultGridOptions.disabledHTMLRenderingFields });
15832
15955
  return deepmerge(defaults, normalized);
15833
15956
  };
15834
15957
  DatoGridControllerComponent.prototype.setGridRows = function (data) {
@@ -15872,7 +15995,7 @@
15872
15995
  .pipe(operators.auditTime(100), operators.filter(function (_a) {
15873
15996
  var finished = _a.finished, source = _a.source;
15874
15997
  return finished && source === 'uiColumnDragged';
15875
- }), ngxTakeUntilDestroy.untilDestroyed(this))
15998
+ }), operators.takeUntil(this.destroy$))
15876
15999
  .subscribe(function (e) {
15877
16000
  var _a = __read(e.columns, 1), column = _a[0];
15878
16001
  var columnsSizes = __assign({}, _this.gridQuery.getColumnSizes());
@@ -15891,7 +16014,7 @@
15891
16014
  rxjs.merge(columnVisible, sortChanged, columnRowGroupChanged, columnPinned, dragStopped, filterChanged)
15892
16015
  .pipe(
15893
16016
  /* Skip the initial sorting event fired by the grid when adding rows */
15894
- operators.skip(1), ngxTakeUntilDestroy.untilDestroyed(this))
16017
+ operators.skip(1), operators.takeUntil(this.destroy$))
15895
16018
  .subscribe(function (_a) {
15896
16019
  var type = _a.type;
15897
16020
  var settingsDiff = _this.gridService.getSettingsDiff();
@@ -15909,7 +16032,7 @@
15909
16032
  var _this = this;
15910
16033
  this.gridQuery
15911
16034
  .select(function (state) { return state.settings; })
15912
- .pipe(operators.skip(1), operators.debounceTime(1000), ngxTakeUntilDestroy.untilDestroyed(this))
16035
+ .pipe(operators.skip(1), operators.debounceTime(1000), operators.takeUntil(this.destroy$))
15913
16036
  .subscribe(function () {
15914
16037
  var settingsDiff = _this.gridService.getSettingsDiff();
15915
16038
  _this.gridService.saveSettingsToServer(settingsDiff);
@@ -15939,7 +16062,7 @@
15939
16062
  var value = _a.value, node = _a.node;
15940
16063
  return value !== undefined && node.group === true;
15941
16064
  }));
15942
- }), ngxTakeUntilDestroy.untilDestroyed(this))
16065
+ }), operators.takeUntil(this.destroy$))
15943
16066
  .subscribe(function (_a) {
15944
16067
  var node = _a.node;
15945
16068
  node.setExpanded(!node.expanded);
@@ -15950,7 +16073,7 @@
15950
16073
  .pipe(operators.filter(function (_a) {
15951
16074
  var node = _a.node;
15952
16075
  return node.expanded === false;
15953
- }), ngxTakeUntilDestroy.untilDestroyed(this))
16076
+ }), operators.takeUntil(this.destroy$))
15954
16077
  .subscribe(function () {
15955
16078
  _this.lastHoveredRow = null;
15956
16079
  _this.setOnHoverState(false);
@@ -15965,7 +16088,7 @@
15965
16088
  rxjs.fromEvent(bodyViewport, 'click')
15966
16089
  .pipe(operators.filter(function (event) {
15967
16090
  return (event.target === bodyViewport || event.target === centerViewport) && api.getSelectedRows().length > 0;
15968
- }), ngxTakeUntilDestroy.untilDestroyed(this))
16091
+ }), operators.takeUntil(this.destroy$))
15969
16092
  .subscribe(function () { return api.deselectAll(); });
15970
16093
  };
15971
16094
  DatoGridControllerComponent.prototype.onHoverEnabled = function () {
@@ -15978,7 +16101,7 @@
15978
16101
  var onHoverEnabled = this.onHoverEnabled();
15979
16102
  if (onHoverEnabled) {
15980
16103
  rxjs.fromEvent(centerContainer, 'mouseleave')
15981
- .pipe(ngxTakeUntilDestroy.untilDestroyed(this))
16104
+ .pipe(operators.takeUntil(this.destroy$))
15982
16105
  .subscribe(function () {
15983
16106
  _this.toggleRowHoverClass(_this.lastHoveredRow);
15984
16107
  _this.lastHoveredRow = null;
@@ -15989,13 +16112,13 @@
15989
16112
  var direction = _a.direction;
15990
16113
  return direction === 'horizontal';
15991
16114
  })), agGrid.rowDataChanged)
15992
- .pipe(ngxTakeUntilDestroy.untilDestroyed(this))
16115
+ .pipe(operators.takeUntil(this.destroy$))
15993
16116
  .subscribe(function () {
15994
16117
  _this.updateOnHoverPos();
15995
16118
  });
15996
16119
  this.addOnHoverElement();
15997
16120
  }
15998
- agGrid.cellMouseOver.pipe(ngxTakeUntilDestroy.untilDestroyed(this)).subscribe(function (event) {
16121
+ agGrid.cellMouseOver.pipe(operators.takeUntil(this.destroy$)).subscribe(function (event) {
15999
16122
  var node = event.node, column = event.column;
16000
16123
  if (lastHoveredCell === node.id + "-" + column.getColId()) {
16001
16124
  clearTimeout(_this.cellMouseOutTimer);
@@ -16012,12 +16135,12 @@
16012
16135
  }
16013
16136
  });
16014
16137
  var onTooltipOut = rxjs.merge(rxjs.fromEvent(bodyViewport, 'scroll'), rxjs.fromEvent(this.agGridEl, 'mouseleave'));
16015
- onTooltipOut.pipe(ngxTakeUntilDestroy.untilDestroyed(this)).subscribe(function () {
16138
+ onTooltipOut.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
16016
16139
  lastHoveredCell = null;
16017
16140
  _this.clearTooltip();
16018
16141
  });
16019
16142
  agGrid.cellMouseOut
16020
- .pipe(operators.filter(function () { return !isNil(_this.tooltip); }), ngxTakeUntilDestroy.untilDestroyed(this))
16143
+ .pipe(operators.filter(function () { return !isNil(_this.tooltip); }), operators.takeUntil(this.destroy$))
16021
16144
  .subscribe(function () {
16022
16145
  _this.cellMouseOutTimer = window.setTimeout(function () { return _this.clearTooltip(); });
16023
16146
  });
@@ -16034,9 +16157,13 @@
16034
16157
  if (cell.tagName === 'SPAN' && cell.scrollWidth === 0) {
16035
16158
  cell = cell.parentElement;
16036
16159
  }
16037
- if (event.colDef.editable) {
16160
+ if (event.colDef.editable && cell) {
16038
16161
  cell = cell.querySelector('.value-wrapper') || cell;
16039
16162
  }
16163
+ // AG Grid 27 can fire cellMouseOver for an element that was already detached by a re-render.
16164
+ if (!cell) {
16165
+ return;
16166
+ }
16040
16167
  var textOverflow = cell.offsetWidth < cell.scrollWidth;
16041
16168
  if (textOverflow) {
16042
16169
  clearTimeout(this.cellMouseOutTimer);
@@ -16120,7 +16247,7 @@
16120
16247
  keys: 'meta.a',
16121
16248
  ignoreInEditable: true
16122
16249
  })
16123
- .pipe(ngxTakeUntilDestroy.untilDestroyed(this))
16250
+ .pipe(operators.takeUntil(this.destroy$))
16124
16251
  .subscribe(function () {
16125
16252
  _this.gridService.selectAllCurrentPageRows();
16126
16253
  });
@@ -16128,7 +16255,7 @@
16128
16255
  DatoGridControllerComponent.prototype.registerWindowResizeListener = function () {
16129
16256
  var _this = this;
16130
16257
  rxjs.fromEvent(window, 'resize')
16131
- .pipe(operators.debounceTime(100), operators.filter(function () { return _this.gridQuery.gridAlignment !== 2 /* CUSTOM */; }), ngxTakeUntilDestroy.untilDestroyed(this))
16258
+ .pipe(operators.debounceTime(100), operators.filter(function () { return _this.gridQuery.gridAlignment !== 2 /* CUSTOM */; }), operators.takeUntil(this.destroy$))
16132
16259
  .subscribe(function () {
16133
16260
  var fitTo = _this.gridQuery.gridAlignment === 0 /* FIT_TO_CONTAINER */ ? 'container' : 'content';
16134
16261
  _this.gridService.fitGrid(fitTo);
@@ -16152,7 +16279,7 @@
16152
16279
  var events$ = this.gridQuery.isServerSide
16153
16280
  ? rxjs.merge(agGrid.sortChanged, agGrid.filterChanged)
16154
16281
  : agGrid.filterChanged;
16155
- events$.pipe(ngxTakeUntilDestroy.untilDestroyed(this)).subscribe(function () {
16282
+ events$.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
16156
16283
  _this.gridService.deselectAllRows();
16157
16284
  });
16158
16285
  };
@@ -16161,7 +16288,7 @@
16161
16288
  if (!this.gridQuery.isServerSide) {
16162
16289
  return;
16163
16290
  }
16164
- agGrid.paginationChanged.pipe(ngxTakeUntilDestroy.untilDestroyed(this)).subscribe(function () {
16291
+ agGrid.paginationChanged.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
16165
16292
  if (_this.gridQuery.isServerSelectAllRowsEnabled) {
16166
16293
  _this.gridService.selectAllCurrentPageRows(true, true);
16167
16294
  }
@@ -16233,6 +16360,7 @@
16233
16360
  function DatoGridV2Component(controller, host) {
16234
16361
  this.controller = controller;
16235
16362
  this.host = host;
16363
+ this.hasGridOptions$ = this.controller.hasGridOptions$;
16236
16364
  }
16237
16365
  Object.defineProperty(DatoGridV2Component.prototype, "grid", {
16238
16366
  set: function (agGrid) {
@@ -16244,6 +16372,13 @@
16244
16372
  enumerable: true,
16245
16373
  configurable: true
16246
16374
  });
16375
+ Object.defineProperty(DatoGridV2Component.prototype, "agGridOptions", {
16376
+ get: function () {
16377
+ return this.controller.agGridOptions;
16378
+ },
16379
+ enumerable: true,
16380
+ configurable: true
16381
+ });
16247
16382
  Object.defineProperty(DatoGridV2Component.prototype, "gridOptions", {
16248
16383
  get: function () {
16249
16384
  return this.controller ? this.controller.gridOptions : null;
@@ -16272,6 +16407,9 @@
16272
16407
  enumerable: true,
16273
16408
  configurable: true
16274
16409
  });
16410
+ DatoGridV2Component.prototype.onGridReady = function (event) {
16411
+ this.controller.onAgGridReady(event);
16412
+ };
16275
16413
  DatoGridV2Component.ctorParameters = function () { return [
16276
16414
  { type: DatoGridControllerComponent },
16277
16415
  { type: core.ElementRef }
@@ -16284,10 +16422,10 @@
16284
16422
  DatoGridV2Component = __decorate([
16285
16423
  core.Component({
16286
16424
  selector: 'dato-grid-v2',
16287
- template: "<ag-grid-angular data-auto-id=\"grid\" class=\"dato-grid ag-theme-material\" [class.has-background]=\"enableBackground\" [class.enable-v2_1]=\"enableV2_1\"\n [class.with-multi-selection-col]=\"gridOptions?.showMultiSelectionCheckboxes\" [class.pivot-style]=\"isPivotStyle\">\n</ag-grid-angular>\n<dato-grid-pagination-v2 [class.has-background]=\"enableBackground\"></dato-grid-pagination-v2>\n",
16425
+ template: "<ag-grid-angular *ngIf=\"hasGridOptions$ | async\" [gridOptions]=\"agGridOptions\" (gridReady)=\"onGridReady($event)\"\n data-auto-id=\"grid\" class=\"dato-grid ag-theme-material\" [class.has-background]=\"enableBackground\" [class.enable-v2_1]=\"enableV2_1\"\n [class.with-multi-selection-col]=\"gridOptions?.showMultiSelectionCheckboxes\" [class.pivot-style]=\"isPivotStyle\">\n</ag-grid-angular>\n<dato-grid-pagination-v2 [class.has-background]=\"enableBackground\"></dato-grid-pagination-v2>\n",
16288
16426
  changeDetection: core.ChangeDetectionStrategy.OnPush,
16289
16427
  encapsulation: core.ViewEncapsulation.None,
16290
- styles: ["dato-grid-v2{flex-grow:1;display:flex;flex-direction:column;position:relative}dato-grid-v2 .dato-grid,dato-grid-v2 dato-grid-pagination-v2{position:absolute;left:0;right:0;bottom:0}dato-grid-v2 .dato-grid{top:0;bottom:50px}dato-grid-v2 .grid-hover-actions{position:absolute;z-index:2;transition:opacity .2s ease-in-out}dato-grid-v2 .ag-row-drag{width:initial!important;min-width:auto!important}dato-grid-v2 .da-grid-icon{display:inline-block;line-height:31px;vertical-align:middle;width:initial;height:initial}dato-grid-v2 .da-grid-icon.drag{width:14px;height:14px;margin-right:6px;opacity:0;transition:opacity .3s;transform:translateY(-50%)}dato-grid-v2 .da-grid-icon.folder{width:18px;height:35px;margin:0 8px}dato-grid-v2 .ag-row.ag-row-hover .da-grid-icon.drag{opacity:1}dato-grid-v2 ag-grid-angular.tree .ag-group-contracted,dato-grid-v2 ag-grid-angular.tree .ag-group-expanded{display:inline-block;width:18px;text-align:center}dato-grid-v2 ag-grid-angular.tree .ag-group-checkbox{display:none}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-empty-folder .folder{margin-left:26px}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-1 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 1)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-1{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-2 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 2)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-2{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-3 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 3)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-3{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-4 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 4)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-4{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row div[col-id=ag-Grid-AutoColumn]{padding-left:0}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell{display:flex;align-items:center}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell .ag-group-value>span{display:inline-block;vertical-align:middle}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell .initials{border-radius:50%;padding:4px;margin-right:8px;margin-left:20px;width:28px;height:28px;display:inline-block;text-align:center}dato-grid-v2 ag-grid-angular.tree .ag-row-group-leaf-indent{margin-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-selection-checkbox .ag-icon-checkbox-indeterminate:before{text-align:center;content:'-';display:inline-block;position:absolute;top:0;left:0;right:0;bottom:0;line-height:.5;color:#fff}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell{line-height:33px}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell.dato-editable-cell{line-height:29px}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell.ag-cell-inline-editing{height:35px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell{line-height:42px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell.dato-editable-cell{line-height:38px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell.ag-cell-inline-editing{height:44px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell{line-height:48px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell.dato-editable-cell{line-height:44px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell.ag-cell-inline-editing{height:50px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell{line-height:57px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell.dato-editable-cell{line-height:53px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell.ag-cell-inline-editing{height:59px}dato-grid-v2 ag-grid-angular .ag-cell.checkbox-selection-cell{display:flex;padding-right:0}dato-grid-v2 .ag-menu .da-grid-icon svg{vertical-align:middle}dato-grid-v2 .ag-header-cell-sortable .ag-sort-none-icon{opacity:0;transition:opacity .2s}dato-grid-v2 .ag-header-cell-sortable:hover .ag-sort-none-icon{opacity:1}dato-grid-v2 .group-contracted-icon,dato-grid-v2 .group-expanded-icon{width:7px}dato-grid-v2 .group-expanded-icon{transform:rotate(90deg)}dato-grid-v2 .dato-grid .ag-cell{border-top:0;border-bottom:0}dato-grid-v2 .ag-overlay-wrapper ng-component{display:flex}.ag-dnd-ghost{min-width:100px;border:none;display:flex;justify-content:flex-start;align-content:center;align-items:center;cursor:-webkit-grabbing;cursor:grabbing;z-index:10000000}.ag-dnd-ghost .da-grid-icon.column-move-hide svg{height:18px;width:18px}.ag-dnd-ghost .da-grid-icon.column-move svg,.ag-dnd-ghost .da-grid-icon.column-move-pin svg{height:16px;width:16px}"]
16428
+ styles: ["dato-grid-v2{flex-grow:1;display:flex;flex-direction:column;position:relative}dato-grid-v2 .dato-grid,dato-grid-v2 dato-grid-pagination-v2{position:absolute;left:0;right:0;bottom:0}dato-grid-v2 .dato-grid{top:0;bottom:50px}dato-grid-v2 .grid-hover-actions{position:absolute;z-index:2;transition:opacity .2s ease-in-out}dato-grid-v2 .ag-row-drag{width:initial!important;min-width:auto!important}dato-grid-v2 .da-grid-icon{display:inline-block;line-height:31px;vertical-align:middle;width:initial;height:initial}dato-grid-v2 .da-grid-icon.drag{width:14px;height:14px;margin-right:6px;opacity:0;transition:opacity .3s;transform:translateY(-50%)}dato-grid-v2 .da-grid-icon.folder{width:18px;height:35px;margin:0 8px}dato-grid-v2 .ag-row.ag-row-hover .da-grid-icon.drag{opacity:1}dato-grid-v2 ag-grid-angular.tree .ag-group-contracted,dato-grid-v2 ag-grid-angular.tree .ag-group-expanded{display:inline-block;width:18px;text-align:center}dato-grid-v2 ag-grid-angular.tree .ag-group-checkbox{display:none}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-empty-folder .folder{margin-left:26px}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-1 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 1)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-1{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-2 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 2)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-2{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-3 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 3)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-3{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-4 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 4)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-4{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row div[col-id=ag-Grid-AutoColumn]{padding-left:0}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell{display:flex;align-items:center}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell .ag-group-value>span{display:inline-block;vertical-align:middle}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell .initials{border-radius:50%;padding:4px;margin-right:8px;margin-left:20px;width:28px;height:28px;display:inline-block;text-align:center}dato-grid-v2 ag-grid-angular.tree .ag-row-group-leaf-indent{margin-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-selection-checkbox .ag-checkbox-input-wrapper.ag-indeterminate:before{text-align:center;content:\"-\";display:inline-block;position:absolute;top:0;left:0;right:0;bottom:0;line-height:.5;color:#fff}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell{line-height:33px}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell.dato-editable-cell{line-height:29px}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell.ag-cell-inline-editing{height:35px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell{line-height:42px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell.dato-editable-cell{line-height:38px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell.ag-cell-inline-editing{height:44px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell{line-height:48px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell.dato-editable-cell{line-height:44px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell.ag-cell-inline-editing{height:50px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell{line-height:57px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell.dato-editable-cell{line-height:53px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell.ag-cell-inline-editing{height:59px}dato-grid-v2 ag-grid-angular .ag-cell.checkbox-selection-cell{display:flex;padding-right:0}dato-grid-v2 .ag-menu .da-grid-icon svg{vertical-align:middle}dato-grid-v2 .ag-header-cell-sortable .ag-sort-none-icon{opacity:0;transition:opacity .2s}dato-grid-v2 .ag-header-cell-sortable:hover .ag-sort-none-icon{opacity:1}dato-grid-v2 .group-contracted-icon,dato-grid-v2 .group-expanded-icon{width:7px}dato-grid-v2 .group-expanded-icon{transform:rotate(90deg)}dato-grid-v2 .dato-grid .ag-cell{border-top:0;border-bottom:0}dato-grid-v2 .ag-overlay-wrapper ng-component{display:flex}.ag-dnd-ghost{min-width:100px;border:none;display:flex;justify-content:flex-start;align-content:center;align-items:center;cursor:-webkit-grabbing;cursor:grabbing;z-index:10000000}.ag-dnd-ghost .da-grid-icon.column-move-hide svg{height:18px;width:18px}.ag-dnd-ghost .da-grid-icon.column-move svg,.ag-dnd-ghost .da-grid-icon.column-move-pin svg{height:16px;width:16px}"]
16291
16429
  }),
16292
16430
  __metadata("design:paramtypes", [DatoGridControllerComponent, core.ElementRef])
16293
16431
  ], DatoGridV2Component);
@@ -16486,7 +16624,8 @@
16486
16624
  }
16487
16625
  Object.defineProperty(DatoGridHeaderV2Component.prototype, "enableBackground", {
16488
16626
  get: function () {
16489
- return this.controller.gridOptions.enableBackground;
16627
+ var gridOptions = this.controller.gridOptions;
16628
+ return gridOptions ? gridOptions.enableBackground : false;
16490
16629
  },
16491
16630
  enumerable: true,
16492
16631
  configurable: true
@@ -16968,6 +17107,7 @@
16968
17107
  this.gridService = gridService;
16969
17108
  this.MAX_VISIBLE_ROW_ACTIONS = 5;
16970
17109
  this.MAX_VISIBLE_GRID_ACTIONS = 2;
17110
+ this.destroy$ = new rxjs.Subject();
16971
17111
  this._maxRowActions = this.MAX_VISIBLE_ROW_ACTIONS;
16972
17112
  this.displayExport = true;
16973
17113
  this.rowActions = { mainList: [], moreMenu: [] };
@@ -17005,21 +17145,24 @@
17005
17145
  });
17006
17146
  Object.defineProperty(DatoGridV2ToolbarComponent.prototype, "enableV2_1", {
17007
17147
  get: function () {
17008
- return this.gridController.gridOptions.enableV2_1;
17148
+ var gridOptions = this.gridController.gridOptions;
17149
+ return gridOptions ? gridOptions.enableV2_1 : false;
17009
17150
  },
17010
17151
  enumerable: true,
17011
17152
  configurable: true
17012
17153
  });
17013
17154
  Object.defineProperty(DatoGridV2ToolbarComponent.prototype, "enableSearch", {
17014
17155
  get: function () {
17015
- return this.gridController.gridOptions.enableSearch;
17156
+ var gridOptions = this.gridController.gridOptions;
17157
+ return gridOptions ? gridOptions.enableSearch : false;
17016
17158
  },
17017
17159
  enumerable: true,
17018
17160
  configurable: true
17019
17161
  });
17020
17162
  Object.defineProperty(DatoGridV2ToolbarComponent.prototype, "enableBackground", {
17021
17163
  get: function () {
17022
- return this.gridController.gridOptions.enableBackground;
17164
+ var gridOptions = this.gridController.gridOptions;
17165
+ return gridOptions ? gridOptions.enableBackground : false;
17023
17166
  },
17024
17167
  enumerable: true,
17025
17168
  configurable: true
@@ -17065,17 +17208,17 @@
17065
17208
  DatoGridV2ToolbarComponent.prototype.ngOnInit = function () {
17066
17209
  var _this = this;
17067
17210
  var dataChanges = this.gridController.gridQuery.waitForGrid(function () {
17068
- return rxjs.merge(_this.gridQuery.gridRef.cellValueChanged, _this.gridQuery.gridRef.rowDataUpdated, _this.gridQuery.rowActionVisibilityChanged$).pipe(operators.debounceTime(100), ngxTakeUntilDestroy.untilDestroyed(_this));
17211
+ return rxjs.merge(_this.gridQuery.gridRef.cellValueChanged, _this.gridQuery.gridRef.rowDataUpdated, _this.gridQuery.rowActionVisibilityChanged$).pipe(operators.debounceTime(100), operators.takeUntil(_this.destroy$));
17069
17212
  });
17070
17213
  var gridInit = this.gridQuery.gridReady$.pipe(operators.take(1));
17071
- gridInit.pipe(ngxTakeUntilDestroy.untilDestroyed(this)).subscribe(function () {
17214
+ gridInit.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
17072
17215
  _this.groupsAllowed = !_this.hideGrouping && !_this.gridQuery.getValue().serverSidePagination.enabled;
17073
17216
  });
17074
17217
  this.initGridActions();
17075
17218
  var selectedRowsChanged$ = this.gridQuery.selectedRowsChange$;
17076
17219
  var isSelectAllRowsChanged$ = this.gridQuery.selectIsSelectAllRowsEnabled();
17077
17220
  rxjs.merge(dataChanges, gridInit, selectedRowsChanged$, isSelectAllRowsChanged$)
17078
- .pipe(operators.filter(function () { return !!_this.api; }), ngxTakeUntilDestroy.untilDestroyed(this))
17221
+ .pipe(operators.filter(function () { return !!_this.api; }), operators.takeUntil(this.destroy$))
17079
17222
  .subscribe(function () {
17080
17223
  _this.resolveVisibleActions();
17081
17224
  _this.cdr.detectChanges();
@@ -17222,7 +17365,7 @@
17222
17365
  var column = _a.column, value = _a.value;
17223
17366
  var formatter = column.getColDef().valueFormatter;
17224
17367
  // TODO: followup: https://ag-grid.zendesk.com/hc/en-us/requests/10963?page=1
17225
- return formatter ? formatter({ value: value }) : value;
17368
+ return isFunction(formatter) ? formatter({ value: value }) : value;
17226
17369
  }
17227
17370
  });
17228
17371
  }
@@ -17251,7 +17394,7 @@
17251
17394
  var waitForAnimation = this.hasGroups ? 0 : 200;
17252
17395
  /** When changing the tables grouping all the rows are automatically expanded, we need to update the icon state */
17253
17396
  var expandSubscription = this.gridQuery.gridRef.columnRowGroupChanged
17254
- .pipe(operators.take(1), ngxTakeUntilDestroy.untilDestroyed(this))
17397
+ .pipe(operators.take(1), operators.takeUntil(this.destroy$))
17255
17398
  .subscribe(function () {
17256
17399
  _this.rowGroupsCollapsed = false;
17257
17400
  _this.cdr.detectChanges();
@@ -17268,7 +17411,7 @@
17268
17411
  gridService: _this.gridService
17269
17412
  }
17270
17413
  })
17271
- .pipe(ngxTakeUntilDestroy.untilDestroyed(_this))
17414
+ .pipe(operators.takeUntil(_this.destroy$))
17272
17415
  .subscribe(function () {
17273
17416
  expandSubscription.unsubscribe();
17274
17417
  _this.openMenus.group = false;
@@ -17285,7 +17428,10 @@
17285
17428
  DatoGridV2ToolbarComponent.prototype.clearSelectedRows = function () {
17286
17429
  this.gridService.deselectAllRows();
17287
17430
  };
17288
- DatoGridV2ToolbarComponent.prototype.ngOnDestroy = function () { };
17431
+ DatoGridV2ToolbarComponent.prototype.ngOnDestroy = function () {
17432
+ this.destroy$.next();
17433
+ this.destroy$.complete();
17434
+ };
17289
17435
  DatoGridV2ToolbarComponent.prototype.getCollapseState = function (_a) {
17290
17436
  var node = _a.node, api = _a.api;
17291
17437
  var collapsed = true;
@@ -17304,7 +17450,7 @@
17304
17450
  /** Listen to adding or removing row groups from the columns and not the groups menu */
17305
17451
  this.gridQuery
17306
17452
  .waitForGrid(function () { return _this.gridQuery.gridRef.columnRowGroupChanged; })
17307
- .pipe(operators.filter(function () { return !_this.openMenus.group; }), ngxTakeUntilDestroy.untilDestroyed(this))
17453
+ .pipe(operators.filter(function () { return !_this.openMenus.group; }), operators.takeUntil(this.destroy$))
17308
17454
  .subscribe(function () {
17309
17455
  _this.rowGroupsCollapsed = false;
17310
17456
  _this.cdr.detectChanges();
@@ -17312,7 +17458,7 @@
17312
17458
  /** Listen to row collapse state to update the icon */
17313
17459
  this.gridQuery
17314
17460
  .waitForGrid(function () { return _this.gridQuery.gridRef.rowGroupOpened; })
17315
- .pipe(ngxTakeUntilDestroy.untilDestroyed(this))
17461
+ .pipe(operators.takeUntil(this.destroy$))
17316
17462
  .subscribe(function (event) {
17317
17463
  var collapsed = _this.getCollapseState(event);
17318
17464
  if (collapsed !== _this.rowGroupsCollapsed) {
@@ -17324,7 +17470,7 @@
17324
17470
  DatoGridV2ToolbarComponent.prototype.subscribeRowsSelectionData = function () {
17325
17471
  var _this = this;
17326
17472
  this.gridQuery.rowsSelectionData$
17327
- .pipe(ngxTakeUntilDestroy.untilDestroyed(this))
17473
+ .pipe(operators.takeUntil(this.destroy$))
17328
17474
  .subscribe(function (_a) {
17329
17475
  var totalRowsCount = _a.totalRowsCount, selectedRowsCount = _a.selectedRowsCount, selectedPageRowsCount = _a.selectedPageRowsCount, isAllPageRowsSelected = _a.isAllPageRowsSelected;
17330
17476
  _this.totalRowsCount = totalRowsCount;
@@ -21089,7 +21235,7 @@
21089
21235
  changeDetection: core.ChangeDetectionStrategy.OnPush,
21090
21236
  exportAs: 'datoRadio',
21091
21237
  providers: [valueAccessor$8],
21092
- styles: [":host{display:block}.dato-radio{margin:.5rem;display:inline-block}.dato-radio label{cursor:pointer}.dato-radio input[type=radio]{position:absolute;opacity:0;min-width:10px!important;max-width:10px!important}.dato-radio input[type=radio]+.radio-label:before{content:'';border-radius:100%;display:inline-block;box-sizing:border-box;min-width:16px;width:16px;height:16px;position:relative;top:1px;margin-right:10px;vertical-align:middle;cursor:pointer;text-align:center;transition:250ms}.dato-radio input[type=radio]:focus+.radio-label:before{outline:0}.dato-radio input[type=radio]+.radio-label:empty:before{margin-right:0}"]
21238
+ styles: [":host{display:block}.dato-radio{margin:.5rem;display:inline-block}.dato-radio label{cursor:pointer}.dato-radio input[type=radio]{position:absolute;opacity:0;min-width:10px!important;max-width:10px!important}.dato-radio input[type=radio]+.radio-label:before{content:\"\";border-radius:100%;display:inline-block;box-sizing:border-box;min-width:16px;width:16px;height:16px;position:relative;top:1px;margin-right:10px;vertical-align:middle;cursor:pointer;text-align:center;transition:250ms}.dato-radio input[type=radio]:focus+.radio-label:before{outline:0}.dato-radio input[type=radio]+.radio-label:empty:before{margin-right:0}"]
21093
21239
  }),
21094
21240
  __metadata("design:paramtypes", [core.Renderer2, core.ChangeDetectorRef, core.ElementRef])
21095
21241
  ], DatoRadioComponent);
@@ -25700,7 +25846,7 @@
25700
25846
  };
25701
25847
  }
25702
25848
 
25703
- window.coreVersion = '22.14.1';
25849
+ window.coreVersion = '22.15.2';
25704
25850
 
25705
25851
  exports.APP_TRANSLATE = APP_TRANSLATE;
25706
25852
  exports.AceService = AceService;
@@ -25962,6 +26108,7 @@
25962
26108
  exports.convertFromTreeData = convertFromTreeData;
25963
26109
  exports.convertToTreeData = convertToTreeData;
25964
26110
  exports.createComponent = createComponent;
26111
+ exports.createDefaultTreeOptions = createDefaultTreeOptions;
25965
26112
  exports.createElement = createElement;
25966
26113
  exports.createGUID = createGUID;
25967
26114
  exports.createHTMLCompletor = createHTMLCompletor;