@datorama/core 22.15.0 → 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.
- package/bundle.scss +122 -50
- package/bundles/datorama-core.umd.js +140 -47
- package/bundles/datorama-core.umd.js.map +1 -1
- package/bundles/datorama-core.umd.min.js +27 -27
- package/bundles/datorama-core.umd.min.js.map +1 -1
- package/datorama-core.metadata.json +1 -1
- package/esm2015/lib/grid/grid/grid.component.js +4 -4
- package/esm2015/lib/grid/grid-sort.utils.js +7 -2
- package/esm2015/lib/grid-v2/grid/grid-v2.component.js +10 -3
- package/esm2015/lib/grid-v2/grid/grid-v2.config.js +30 -4
- package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +58 -24
- package/esm2015/lib/grid-v2/grid-header/grid-header.component.js +3 -2
- package/esm2015/lib/grid-v2/grid-store/grid.query.js +9 -5
- package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +22 -16
- package/esm2015/lib/version.js +2 -2
- package/esm5/lib/grid/grid/grid.component.js +4 -4
- package/esm5/lib/grid/grid-sort.utils.js +7 -2
- package/esm5/lib/grid-v2/grid/grid-v2.component.js +14 -3
- package/esm5/lib/grid-v2/grid/grid-v2.config.js +30 -4
- package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +62 -24
- package/esm5/lib/grid-v2/grid-header/grid-header.component.js +3 -2
- package/esm5/lib/grid-v2/grid-store/grid.query.js +9 -5
- package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +22 -16
- package/esm5/lib/version.js +2 -2
- package/fesm2015/datorama-core.js +133 -48
- package/fesm2015/datorama-core.js.map +1 -1
- package/fesm5/datorama-core.js +141 -48
- package/fesm5/datorama-core.js.map +1 -1
- package/lib/grid-v2/grid/grid-v2.component.d.ts +4 -0
- package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +15 -0
- package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __metadata, __param, __rest } from 'tslib';
|
|
2
2
|
import { forwardRef, NgZone, Renderer2, Input, ViewChild, ElementRef, Component, ChangeDetectionStrategy, NgModule, Attribute, HostBinding, ɵɵdefineInjectable, Injectable, isDevMode, InjectionToken, Inject, ChangeDetectorRef, HostListener, Directive, EventEmitter, Output, ɵɵinject, ApplicationRef, Injector, INJECTOR, TemplateRef, ViewContainerRef, Pipe, ViewEncapsulation, ComponentFactoryResolver, ContentChildren, QueryList, ViewChildren, Optional, ContentChild, SkipSelf, Self, SecurityContext } from '@angular/core';
|
|
3
|
-
import { fromEvent, merge as merge$1, Subject, combineLatest, Observable, forkJoin, of, Subscription, BehaviorSubject, EMPTY, defer, interval,
|
|
3
|
+
import { fromEvent, merge as merge$1, Subject, combineLatest, Observable, forkJoin, of, Subscription, BehaviorSubject, ReplaySubject, EMPTY, defer, interval, throwError, isObservable, timer, pipe } from 'rxjs';
|
|
4
4
|
import { NG_VALUE_ACCESSOR, NgControl, FormControl, ReactiveFormsModule, Validators, FormBuilder, ControlContainer, FormGroup, FormControlDirective, FormControlName } from '@angular/forms';
|
|
5
5
|
import { untilDestroyed } from 'ngx-take-until-destroy';
|
|
6
6
|
import { debounceTime, filter as filter$1, map as map$1, pluck, tap, switchMap, takeUntil, take, auditTime, distinctUntilChanged, throttleTime, first, mapTo, startWith, pairwise, skip, shareReplay, delay as delay$1, switchMapTo, repeat, concatMap, concatMapTo } from 'rxjs/operators';
|
|
@@ -5098,10 +5098,10 @@ let DatoGridComponent = class DatoGridComponent extends BaseCustomControl {
|
|
|
5098
5098
|
this.onChange(selectedRows);
|
|
5099
5099
|
},
|
|
5100
5100
|
rowSelection: 'multiple',
|
|
5101
|
-
rowDeselection: true
|
|
5101
|
+
// rowDeselection removed: true by default in AG Grid 27 (suppress with suppressRowDeselection).
|
|
5102
5102
|
unSortIcon: true,
|
|
5103
|
-
animateRows: true
|
|
5104
|
-
rememberGroupStateWhenNewData:
|
|
5103
|
+
animateRows: true
|
|
5104
|
+
// rememberGroupStateWhenNewData removed: no-op since AG Grid 24 (transaction updates keep group state).
|
|
5105
5105
|
};
|
|
5106
5106
|
this.infinitePagination = false;
|
|
5107
5107
|
this.isRowsCollapsed = true;
|
|
@@ -9904,7 +9904,12 @@ function getGridModel(gridName) {
|
|
|
9904
9904
|
*/
|
|
9905
9905
|
function getSortModel(columnApi) {
|
|
9906
9906
|
const sortIndexes = {};
|
|
9907
|
-
|
|
9907
|
+
// AG Grid 27: getColumnState() returns undefined before the grid's columns are initialized.
|
|
9908
|
+
// getSortModel() is reached via getCurrentGridSettings()/onFilterSortChanged() on resize/data
|
|
9909
|
+
// events that can fire before that point, so guard against undefined to avoid
|
|
9910
|
+
// "Cannot read properties of undefined (reading 'filter')".
|
|
9911
|
+
const columnState = columnApi.getColumnState() || [];
|
|
9912
|
+
const sortedColumns = columnState.filter(state => state.sort != null);
|
|
9908
9913
|
sortedColumns.forEach(columnState => {
|
|
9909
9914
|
sortIndexes[columnState.colId] = columnState.sortIndex;
|
|
9910
9915
|
});
|
|
@@ -10150,9 +10155,13 @@ let GridQuery = class GridQuery extends Query {
|
|
|
10150
10155
|
getCurrentGridSettings() {
|
|
10151
10156
|
const toColId = column => column.getColId();
|
|
10152
10157
|
const { columns } = this.api;
|
|
10153
|
-
|
|
10154
|
-
|
|
10155
|
-
|
|
10158
|
+
// AG Grid 27: getAllColumns() returns Column[] | null (and the grouped/grid column getters can
|
|
10159
|
+
// likewise be empty) before the grid's columns are initialized. getCurrentGridSettings() is
|
|
10160
|
+
// reached via fitGrid -> updateSettings on window resize, which can fire before that point, so
|
|
10161
|
+
// guard against null to avoid "Cannot read properties of undefined (reading 'filter')".
|
|
10162
|
+
const groupedColumns = columns.getRowGroupColumns() || [];
|
|
10163
|
+
const columnsOrder = columns.getAllColumns() || [];
|
|
10164
|
+
const allGridColumns = columns.getAllGridColumns() || [];
|
|
10156
10165
|
const hiddenColumns = columnsOrder
|
|
10157
10166
|
.filter(column => !column.isVisible() && !groupedColumns.includes(column))
|
|
10158
10167
|
.map(toColId);
|
|
@@ -10163,7 +10172,7 @@ let GridQuery = class GridQuery extends Query {
|
|
|
10163
10172
|
hiddenColumns,
|
|
10164
10173
|
groupedColumns: groupedColumns.map(toColId),
|
|
10165
10174
|
filter: this.getFilter(),
|
|
10166
|
-
pinnedColumns: columns.getDisplayedLeftColumns().map(toColId),
|
|
10175
|
+
pinnedColumns: (columns.getDisplayedLeftColumns() || []).map(toColId),
|
|
10167
10176
|
columnsOrder: allGridColumns.map(toColId),
|
|
10168
10177
|
columnsSizes: null,
|
|
10169
10178
|
searchTerm: null
|
|
@@ -12109,7 +12118,27 @@ const defaultGridOptions = Object.assign({
|
|
|
12109
12118
|
comparator: (a, b) => getTime$1(a) - getTime$1(b)
|
|
12110
12119
|
},
|
|
12111
12120
|
[DatoGridColumnTypes.Number]: {
|
|
12112
|
-
filter: DatoGridFilterTypes.Number
|
|
12121
|
+
filter: DatoGridFilterTypes.Number,
|
|
12122
|
+
// AG Grid resolves a column's sort comparator only from its merged colDef.comparator.
|
|
12123
|
+
// Number columns had none, so they fell back to AG Grid's default comparator, which sorts
|
|
12124
|
+
// string-typed values lexicographically ("10" before "2"). Provide an explicit numeric
|
|
12125
|
+
// comparator. Map null/empty/non-numeric to -Infinity so we never return NaN (AG Grid's
|
|
12126
|
+
// sorter skips a NaN result). Ascending-sense only — AG Grid flips the sign for descending.
|
|
12127
|
+
comparator: (a, b) => {
|
|
12128
|
+
const toNum = (v) => {
|
|
12129
|
+
const n = v == null || v === '' ? NaN : Number(v);
|
|
12130
|
+
return isNaN(n) ? -Infinity : n;
|
|
12131
|
+
};
|
|
12132
|
+
const na = toNum(a);
|
|
12133
|
+
const nb = toNum(b);
|
|
12134
|
+
// Compare relationally (not by subtraction): two missing/non-numeric values both map to
|
|
12135
|
+
// -Infinity, and -Infinity - (-Infinity) === NaN, which AG Grid's sorter skips. Returning
|
|
12136
|
+
// 0 / -1 / 1 avoids NaN entirely. Ascending sense — AG Grid flips the sign for descending.
|
|
12137
|
+
if (na === nb) {
|
|
12138
|
+
return 0;
|
|
12139
|
+
}
|
|
12140
|
+
return na < nb ? -1 : 1;
|
|
12141
|
+
}
|
|
12113
12142
|
},
|
|
12114
12143
|
[DatoGridColumnTypes.String]: stringColDef,
|
|
12115
12144
|
[DatoGridColumnTypes.Status]: Object.assign(Object.assign({}, stringColDef), { cellRenderer: 'DatoGridStatusCellComponent' }),
|
|
@@ -12117,14 +12146,20 @@ const defaultGridOptions = Object.assign({
|
|
|
12117
12146
|
[DatoGridColumnTypes.ItemsCount]: Object.assign(Object.assign({}, stringColDef), { cellRenderer: 'DatoGridItemsCountCellComponent' }),
|
|
12118
12147
|
[DatoGridColumnTypes.Initials]: Object.assign(Object.assign({}, stringColDef), { cellRenderer: 'DatoGridInitialsCellComponent' }),
|
|
12119
12148
|
[DatoGridColumnTypes.Avatar]: Object.assign(Object.assign({}, stringColDef), { cellRenderer: 'DatoGridAvatarCellComponent' })
|
|
12120
|
-
}, multiSortKey: 'ctrl', suppressPaginationPanel: true, pagination: true, paginateChildRows: true,
|
|
12149
|
+
}, multiSortKey: 'ctrl', suppressPaginationPanel: true, pagination: true, paginateChildRows: true,
|
|
12150
|
+
// deltaColumnMode removed: deprecated in AG Grid 27, delta column updates are the default now.
|
|
12151
|
+
loadingOverlayComponentFramework: DatoGridV2LoaderComponent, noRowsOverlayComponentFramework: DatoGridV2NoDataOverlayComponent, defaultColDef: {
|
|
12121
12152
|
minWidth: GridMinWidths.Default,
|
|
12122
12153
|
sortable: true,
|
|
12123
12154
|
resizable: true,
|
|
12124
12155
|
type: DatoGridColumnTypes.String,
|
|
12125
12156
|
menuTabs: ['filterMenuTab'],
|
|
12126
12157
|
headerComponentFramework: DatoGridColumnHeaderComponent
|
|
12127
|
-
},
|
|
12158
|
+
}, suppressCellFocus: true, suppressPropertyNamesCheck: true, rowHeight: 35, headerHeight: 30, rowSelection: GridRowSelectionType.MULTIPLE,
|
|
12159
|
+
// rowDeselection removed: true by default in AG Grid 27 (suppress with suppressRowDeselection).
|
|
12160
|
+
unSortIcon: true, animateRows: true,
|
|
12161
|
+
// rememberGroupStateWhenNewData removed: no-op since AG Grid 24 (transaction updates keep group state).
|
|
12162
|
+
groupDisplayType: 'multipleColumns', groupDefaultExpanded: -1, usePivotGridStyle: false, disabledHTMLRenderingFields: [] }, (isTestEnv() ? { suppressColumnVirtualisation: true, rowBuffer: 99999 } : {}));
|
|
12128
12163
|
const DEFAULT_GRID_SEARCH_DEBOUNCE_TIME = {
|
|
12129
12164
|
CLIENT: 200,
|
|
12130
12165
|
SERVER: 250
|
|
@@ -13925,14 +13960,26 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
13925
13960
|
this.gridActions = [];
|
|
13926
13961
|
this.gridReady$ = this.gridQuery.gridReady$;
|
|
13927
13962
|
this.contentInit = new Subject();
|
|
13963
|
+
// ngx-take-until-destroy patches ngOnDestroy on the instance, which Ivy never calls (it uses the
|
|
13964
|
+
// prototype hook), so listeners outlived the grid and hit the destroyed AG Grid API.
|
|
13965
|
+
this.destroy$ = new Subject();
|
|
13966
|
+
this.hasGridOptions = new BehaviorSubject(false);
|
|
13967
|
+
this.agGridReady = new ReplaySubject(1);
|
|
13928
13968
|
this.gridElements = {
|
|
13929
13969
|
centerViewport: null,
|
|
13930
13970
|
centerContainer: null,
|
|
13931
13971
|
bodyViewport: null
|
|
13932
13972
|
};
|
|
13933
13973
|
this.treeGridClass = 'tree';
|
|
13974
|
+
this.hasGridOptions$ = this.hasGridOptions.asObservable();
|
|
13934
13975
|
}
|
|
13935
13976
|
set gridOptions(gridOptions) {
|
|
13977
|
+
// The [gridOptions] binding can resolve to undefined during the host's initial change-detection
|
|
13978
|
+
// pass (before the consumer computes its options). Ignore it instead of throwing
|
|
13979
|
+
// "Cannot read properties of undefined" from initGridOptions() and aborting the view render.
|
|
13980
|
+
if (!gridOptions) {
|
|
13981
|
+
return;
|
|
13982
|
+
}
|
|
13936
13983
|
this._gridOptions = this.gridService.initGridOptions(gridOptions);
|
|
13937
13984
|
this.gridService.treeData = gridOptions.treeData;
|
|
13938
13985
|
this.gridService.isPivotMode = gridOptions.pivotMode;
|
|
@@ -13944,16 +13991,33 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
13944
13991
|
this.agGridEl.classList.add(this.treeGridClass);
|
|
13945
13992
|
}
|
|
13946
13993
|
}
|
|
13994
|
+
!this.hasGridOptions.value && this.hasGridOptions.next(true);
|
|
13947
13995
|
}
|
|
13948
13996
|
get gridOptions() {
|
|
13949
13997
|
return this._gridOptions;
|
|
13950
13998
|
}
|
|
13999
|
+
/* @internal */
|
|
14000
|
+
get agGridOptions() {
|
|
14001
|
+
if (!this._agGridOptions && this._gridOptions) {
|
|
14002
|
+
this.gridOptions = this.normalizeOptions();
|
|
14003
|
+
this._agGridOptions = this.gridOptions;
|
|
14004
|
+
}
|
|
14005
|
+
return this._agGridOptions;
|
|
14006
|
+
}
|
|
13951
14007
|
ngOnDestroy() {
|
|
14008
|
+
this.destroy$.next();
|
|
14009
|
+
this.destroy$.complete();
|
|
13952
14010
|
this.contentInit.complete();
|
|
14011
|
+
this.hasGridOptions.complete();
|
|
14012
|
+
this.agGridReady.complete();
|
|
13953
14013
|
this.clearTooltip();
|
|
13954
14014
|
this.rowHoverComponent && this.rowHoverComponent.destroy();
|
|
13955
14015
|
this.rowHoverComponent = null;
|
|
13956
14016
|
}
|
|
14017
|
+
/* @internal */
|
|
14018
|
+
onAgGridReady(event) {
|
|
14019
|
+
this.agGridReady.next(event);
|
|
14020
|
+
}
|
|
13957
14021
|
initializeGrid(agGrid, agGridEl) {
|
|
13958
14022
|
if (!this.contentInit.isStopped) {
|
|
13959
14023
|
this._initializeGrid(agGrid, agGridEl);
|
|
@@ -13967,11 +14031,13 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
13967
14031
|
this.contentInit
|
|
13968
14032
|
.asObservable()
|
|
13969
14033
|
.pipe(switchMap(() => {
|
|
13970
|
-
|
|
13971
|
-
|
|
14034
|
+
// Already normalized when dato-grid-v2 bound them to <ag-grid-angular [gridOptions]>.
|
|
14035
|
+
if (!this.agGridOptions) {
|
|
14036
|
+
return EMPTY;
|
|
14037
|
+
}
|
|
13972
14038
|
const settingsLoader = this.gridOptions.saveSettings === false ? of(null) : this.storageAPI.get(this.gridOptions.gridName);
|
|
13973
|
-
return combineLatest([
|
|
13974
|
-
}),
|
|
14039
|
+
return combineLatest([this.agGridReady, settingsLoader]);
|
|
14040
|
+
}), takeUntil(this.destroy$))
|
|
13975
14041
|
.subscribe(([{ api, columnApi }, savedSettings = {}]) => {
|
|
13976
14042
|
if (!this.gridOptions.rowData) {
|
|
13977
14043
|
api.showLoadingOverlay();
|
|
@@ -14041,7 +14107,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14041
14107
|
observable = observable.pipe(filter$1(({ source }) => source === 'uiColumnDragged'), tap(() => this.updateOnHoverPos()));
|
|
14042
14108
|
}
|
|
14043
14109
|
observable
|
|
14044
|
-
.pipe(auditTime(100), filter$1(({ finished, source }) => finished && source === 'uiColumnDragged'),
|
|
14110
|
+
.pipe(auditTime(100), filter$1(({ finished, source }) => finished && source === 'uiColumnDragged'), takeUntil(this.destroy$))
|
|
14045
14111
|
.subscribe(e => {
|
|
14046
14112
|
const [column] = e.columns;
|
|
14047
14113
|
let columnsSizes = Object.assign({}, this.gridQuery.getColumnSizes());
|
|
@@ -14059,7 +14125,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14059
14125
|
merge$1(columnVisible, sortChanged, columnRowGroupChanged, columnPinned, dragStopped, filterChanged)
|
|
14060
14126
|
.pipe(
|
|
14061
14127
|
/* Skip the initial sorting event fired by the grid when adding rows */
|
|
14062
|
-
skip(1),
|
|
14128
|
+
skip(1), takeUntil(this.destroy$))
|
|
14063
14129
|
.subscribe(({ type }) => {
|
|
14064
14130
|
const settingsDiff = this.gridService.getSettingsDiff();
|
|
14065
14131
|
this.gridService.updateSettings(settingsDiff);
|
|
@@ -14075,7 +14141,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14075
14141
|
listenToStoreSettingsChanges() {
|
|
14076
14142
|
this.gridQuery
|
|
14077
14143
|
.select(state => state.settings)
|
|
14078
|
-
.pipe(skip(1), debounceTime(1000),
|
|
14144
|
+
.pipe(skip(1), debounceTime(1000), takeUntil(this.destroy$))
|
|
14079
14145
|
.subscribe(() => {
|
|
14080
14146
|
const settingsDiff = this.gridService.getSettingsDiff();
|
|
14081
14147
|
this.gridService.saveSettingsToServer(settingsDiff);
|
|
@@ -14100,14 +14166,14 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14100
14166
|
return columns.length === 0
|
|
14101
14167
|
? EMPTY
|
|
14102
14168
|
: agGrid.cellClicked.pipe(filter$1(({ value, node }) => value !== undefined && node.group === true));
|
|
14103
|
-
}),
|
|
14169
|
+
}), takeUntil(this.destroy$))
|
|
14104
14170
|
.subscribe(({ node }) => {
|
|
14105
14171
|
node.setExpanded(!node.expanded);
|
|
14106
14172
|
});
|
|
14107
14173
|
/* When closing a grouped row we want to hide the on hover actions */
|
|
14108
14174
|
if (this.onHoverEnabled()) {
|
|
14109
14175
|
agGrid.rowGroupOpened
|
|
14110
|
-
.pipe(filter$1(({ node }) => node.expanded === false),
|
|
14176
|
+
.pipe(filter$1(({ node }) => node.expanded === false), takeUntil(this.destroy$))
|
|
14111
14177
|
.subscribe(() => {
|
|
14112
14178
|
this.lastHoveredRow = null;
|
|
14113
14179
|
this.setOnHoverState(false);
|
|
@@ -14122,7 +14188,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14122
14188
|
fromEvent(bodyViewport, 'click')
|
|
14123
14189
|
.pipe(filter$1((event) => {
|
|
14124
14190
|
return (event.target === bodyViewport || event.target === centerViewport) && api.getSelectedRows().length > 0;
|
|
14125
|
-
}),
|
|
14191
|
+
}), takeUntil(this.destroy$))
|
|
14126
14192
|
.subscribe(() => api.deselectAll());
|
|
14127
14193
|
}
|
|
14128
14194
|
onHoverEnabled() {
|
|
@@ -14134,7 +14200,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14134
14200
|
const onHoverEnabled = this.onHoverEnabled();
|
|
14135
14201
|
if (onHoverEnabled) {
|
|
14136
14202
|
fromEvent(centerContainer, 'mouseleave')
|
|
14137
|
-
.pipe(
|
|
14203
|
+
.pipe(takeUntil(this.destroy$))
|
|
14138
14204
|
.subscribe(() => {
|
|
14139
14205
|
this.toggleRowHoverClass(this.lastHoveredRow);
|
|
14140
14206
|
this.lastHoveredRow = null;
|
|
@@ -14142,13 +14208,13 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14142
14208
|
lastHoveredCell = null;
|
|
14143
14209
|
});
|
|
14144
14210
|
merge$1(agGrid.bodyScroll.pipe(filter$1(({ direction }) => direction === 'horizontal')), agGrid.rowDataChanged)
|
|
14145
|
-
.pipe(
|
|
14211
|
+
.pipe(takeUntil(this.destroy$))
|
|
14146
14212
|
.subscribe(() => {
|
|
14147
14213
|
this.updateOnHoverPos();
|
|
14148
14214
|
});
|
|
14149
14215
|
this.addOnHoverElement();
|
|
14150
14216
|
}
|
|
14151
|
-
agGrid.cellMouseOver.pipe(
|
|
14217
|
+
agGrid.cellMouseOver.pipe(takeUntil(this.destroy$)).subscribe((event) => {
|
|
14152
14218
|
const { node, column } = event;
|
|
14153
14219
|
if (lastHoveredCell === `${node.id}-${column.getColId()}`) {
|
|
14154
14220
|
clearTimeout(this.cellMouseOutTimer);
|
|
@@ -14165,12 +14231,12 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14165
14231
|
}
|
|
14166
14232
|
});
|
|
14167
14233
|
const onTooltipOut = merge$1(fromEvent(bodyViewport, 'scroll'), fromEvent(this.agGridEl, 'mouseleave'));
|
|
14168
|
-
onTooltipOut.pipe(
|
|
14234
|
+
onTooltipOut.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
14169
14235
|
lastHoveredCell = null;
|
|
14170
14236
|
this.clearTooltip();
|
|
14171
14237
|
});
|
|
14172
14238
|
agGrid.cellMouseOut
|
|
14173
|
-
.pipe(filter$1(() => !isNil(this.tooltip)),
|
|
14239
|
+
.pipe(filter$1(() => !isNil(this.tooltip)), takeUntil(this.destroy$))
|
|
14174
14240
|
.subscribe(() => {
|
|
14175
14241
|
this.cellMouseOutTimer = window.setTimeout(() => this.clearTooltip());
|
|
14176
14242
|
});
|
|
@@ -14187,9 +14253,13 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14187
14253
|
if (cell.tagName === 'SPAN' && cell.scrollWidth === 0) {
|
|
14188
14254
|
cell = cell.parentElement;
|
|
14189
14255
|
}
|
|
14190
|
-
if (event.colDef.editable) {
|
|
14256
|
+
if (event.colDef.editable && cell) {
|
|
14191
14257
|
cell = cell.querySelector('.value-wrapper') || cell;
|
|
14192
14258
|
}
|
|
14259
|
+
// AG Grid 27 can fire cellMouseOver for an element that was already detached by a re-render.
|
|
14260
|
+
if (!cell) {
|
|
14261
|
+
return;
|
|
14262
|
+
}
|
|
14193
14263
|
const textOverflow = cell.offsetWidth < cell.scrollWidth;
|
|
14194
14264
|
if (textOverflow) {
|
|
14195
14265
|
clearTimeout(this.cellMouseOutTimer);
|
|
@@ -14265,14 +14335,14 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14265
14335
|
keys: 'meta.a',
|
|
14266
14336
|
ignoreInEditable: true
|
|
14267
14337
|
})
|
|
14268
|
-
.pipe(
|
|
14338
|
+
.pipe(takeUntil(this.destroy$))
|
|
14269
14339
|
.subscribe(() => {
|
|
14270
14340
|
this.gridService.selectAllCurrentPageRows();
|
|
14271
14341
|
});
|
|
14272
14342
|
}
|
|
14273
14343
|
registerWindowResizeListener() {
|
|
14274
14344
|
fromEvent(window, 'resize')
|
|
14275
|
-
.pipe(debounceTime(100), filter$1(() => this.gridQuery.gridAlignment !== 2 /* CUSTOM */),
|
|
14345
|
+
.pipe(debounceTime(100), filter$1(() => this.gridQuery.gridAlignment !== 2 /* CUSTOM */), takeUntil(this.destroy$))
|
|
14276
14346
|
.subscribe(() => {
|
|
14277
14347
|
const fitTo = this.gridQuery.gridAlignment === 0 /* FIT_TO_CONTAINER */ ? 'container' : 'content';
|
|
14278
14348
|
this.gridService.fitGrid(fitTo);
|
|
@@ -14292,7 +14362,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14292
14362
|
const events$ = this.gridQuery.isServerSide
|
|
14293
14363
|
? merge$1(agGrid.sortChanged, agGrid.filterChanged)
|
|
14294
14364
|
: agGrid.filterChanged;
|
|
14295
|
-
events$.pipe(
|
|
14365
|
+
events$.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
14296
14366
|
this.gridService.deselectAllRows();
|
|
14297
14367
|
});
|
|
14298
14368
|
}
|
|
@@ -14300,7 +14370,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14300
14370
|
if (!this.gridQuery.isServerSide) {
|
|
14301
14371
|
return;
|
|
14302
14372
|
}
|
|
14303
|
-
agGrid.paginationChanged.pipe(
|
|
14373
|
+
agGrid.paginationChanged.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
14304
14374
|
if (this.gridQuery.isServerSelectAllRowsEnabled) {
|
|
14305
14375
|
this.gridService.selectAllCurrentPageRows(true, true);
|
|
14306
14376
|
}
|
|
@@ -14373,6 +14443,7 @@ let DatoGridV2Component = class DatoGridV2Component {
|
|
|
14373
14443
|
constructor(controller, host) {
|
|
14374
14444
|
this.controller = controller;
|
|
14375
14445
|
this.host = host;
|
|
14446
|
+
this.hasGridOptions$ = this.controller.hasGridOptions$;
|
|
14376
14447
|
}
|
|
14377
14448
|
set grid(agGrid) {
|
|
14378
14449
|
if (agGrid) {
|
|
@@ -14380,6 +14451,9 @@ let DatoGridV2Component = class DatoGridV2Component {
|
|
|
14380
14451
|
this.controller.initializeGrid(agGrid, agGridEl);
|
|
14381
14452
|
}
|
|
14382
14453
|
}
|
|
14454
|
+
get agGridOptions() {
|
|
14455
|
+
return this.controller.agGridOptions;
|
|
14456
|
+
}
|
|
14383
14457
|
get gridOptions() {
|
|
14384
14458
|
return this.controller ? this.controller.gridOptions : null;
|
|
14385
14459
|
}
|
|
@@ -14392,6 +14466,9 @@ let DatoGridV2Component = class DatoGridV2Component {
|
|
|
14392
14466
|
get isPivotStyle() {
|
|
14393
14467
|
return this.gridOptions && this.gridOptions.usePivotGridStyle;
|
|
14394
14468
|
}
|
|
14469
|
+
onGridReady(event) {
|
|
14470
|
+
this.controller.onAgGridReady(event);
|
|
14471
|
+
}
|
|
14395
14472
|
};
|
|
14396
14473
|
DatoGridV2Component.ctorParameters = () => [
|
|
14397
14474
|
{ type: DatoGridControllerComponent },
|
|
@@ -14405,10 +14482,10 @@ __decorate([
|
|
|
14405
14482
|
DatoGridV2Component = __decorate([
|
|
14406
14483
|
Component({
|
|
14407
14484
|
selector: 'dato-grid-v2',
|
|
14408
|
-
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",
|
|
14485
|
+
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",
|
|
14409
14486
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14410
14487
|
encapsulation: ViewEncapsulation.None,
|
|
14411
|
-
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-
|
|
14488
|
+
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}"]
|
|
14412
14489
|
}),
|
|
14413
14490
|
__metadata("design:paramtypes", [DatoGridControllerComponent, ElementRef])
|
|
14414
14491
|
], DatoGridV2Component);
|
|
@@ -14590,7 +14667,8 @@ let DatoGridHeaderV2Component = class DatoGridHeaderV2Component {
|
|
|
14590
14667
|
this.displayRowCount = true;
|
|
14591
14668
|
}
|
|
14592
14669
|
get enableBackground() {
|
|
14593
|
-
|
|
14670
|
+
const { gridOptions } = this.controller;
|
|
14671
|
+
return gridOptions ? gridOptions.enableBackground : false;
|
|
14594
14672
|
}
|
|
14595
14673
|
ngOnInit() {
|
|
14596
14674
|
this.rowCount$ = this.gridQuery.gridReady$.pipe(switchMap(() => this.rowsCount()));
|
|
@@ -15032,6 +15110,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15032
15110
|
this.gridService = gridService;
|
|
15033
15111
|
this.MAX_VISIBLE_ROW_ACTIONS = 5;
|
|
15034
15112
|
this.MAX_VISIBLE_GRID_ACTIONS = 2;
|
|
15113
|
+
this.destroy$ = new Subject();
|
|
15035
15114
|
this._maxRowActions = this.MAX_VISIBLE_ROW_ACTIONS;
|
|
15036
15115
|
this.displayExport = true;
|
|
15037
15116
|
this.rowActions = { mainList: [], moreMenu: [] };
|
|
@@ -15064,13 +15143,16 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15064
15143
|
}
|
|
15065
15144
|
}
|
|
15066
15145
|
get enableV2_1() {
|
|
15067
|
-
|
|
15146
|
+
const { gridOptions } = this.gridController;
|
|
15147
|
+
return gridOptions ? gridOptions.enableV2_1 : false;
|
|
15068
15148
|
}
|
|
15069
15149
|
get enableSearch() {
|
|
15070
|
-
|
|
15150
|
+
const { gridOptions } = this.gridController;
|
|
15151
|
+
return gridOptions ? gridOptions.enableSearch : false;
|
|
15071
15152
|
}
|
|
15072
15153
|
get enableBackground() {
|
|
15073
|
-
|
|
15154
|
+
const { gridOptions } = this.gridController;
|
|
15155
|
+
return gridOptions ? gridOptions.enableBackground : false;
|
|
15074
15156
|
}
|
|
15075
15157
|
get isRowActionsVisible() {
|
|
15076
15158
|
return !this.enableV2_1 || (this.enableV2_1 && this.isSelectedRow);
|
|
@@ -15088,16 +15170,16 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15088
15170
|
return this.gridController.gridQuery.api;
|
|
15089
15171
|
}
|
|
15090
15172
|
ngOnInit() {
|
|
15091
|
-
const dataChanges = this.gridController.gridQuery.waitForGrid(() => merge$1(this.gridQuery.gridRef.cellValueChanged, this.gridQuery.gridRef.rowDataUpdated, this.gridQuery.rowActionVisibilityChanged$).pipe(debounceTime(100),
|
|
15173
|
+
const dataChanges = this.gridController.gridQuery.waitForGrid(() => merge$1(this.gridQuery.gridRef.cellValueChanged, this.gridQuery.gridRef.rowDataUpdated, this.gridQuery.rowActionVisibilityChanged$).pipe(debounceTime(100), takeUntil(this.destroy$)));
|
|
15092
15174
|
const gridInit = this.gridQuery.gridReady$.pipe(take(1));
|
|
15093
|
-
gridInit.pipe(
|
|
15175
|
+
gridInit.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
15094
15176
|
this.groupsAllowed = !this.hideGrouping && !this.gridQuery.getValue().serverSidePagination.enabled;
|
|
15095
15177
|
});
|
|
15096
15178
|
this.initGridActions();
|
|
15097
15179
|
const selectedRowsChanged$ = this.gridQuery.selectedRowsChange$;
|
|
15098
15180
|
const isSelectAllRowsChanged$ = this.gridQuery.selectIsSelectAllRowsEnabled();
|
|
15099
15181
|
merge$1(dataChanges, gridInit, selectedRowsChanged$, isSelectAllRowsChanged$)
|
|
15100
|
-
.pipe(filter$1(() => !!this.api),
|
|
15182
|
+
.pipe(filter$1(() => !!this.api), takeUntil(this.destroy$))
|
|
15101
15183
|
.subscribe(() => {
|
|
15102
15184
|
this.resolveVisibleActions();
|
|
15103
15185
|
this.cdr.detectChanges();
|
|
@@ -15259,7 +15341,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15259
15341
|
const waitForAnimation = this.hasGroups ? 0 : 200;
|
|
15260
15342
|
/** When changing the tables grouping all the rows are automatically expanded, we need to update the icon state */
|
|
15261
15343
|
const expandSubscription = this.gridQuery.gridRef.columnRowGroupChanged
|
|
15262
|
-
.pipe(take(1),
|
|
15344
|
+
.pipe(take(1), takeUntil(this.destroy$))
|
|
15263
15345
|
.subscribe(() => {
|
|
15264
15346
|
this.rowGroupsCollapsed = false;
|
|
15265
15347
|
this.cdr.detectChanges();
|
|
@@ -15276,7 +15358,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15276
15358
|
gridService: this.gridService
|
|
15277
15359
|
}
|
|
15278
15360
|
})
|
|
15279
|
-
.pipe(
|
|
15361
|
+
.pipe(takeUntil(this.destroy$))
|
|
15280
15362
|
.subscribe(() => {
|
|
15281
15363
|
expandSubscription.unsubscribe();
|
|
15282
15364
|
this.openMenus.group = false;
|
|
@@ -15293,7 +15375,10 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15293
15375
|
clearSelectedRows() {
|
|
15294
15376
|
this.gridService.deselectAllRows();
|
|
15295
15377
|
}
|
|
15296
|
-
ngOnDestroy() {
|
|
15378
|
+
ngOnDestroy() {
|
|
15379
|
+
this.destroy$.next();
|
|
15380
|
+
this.destroy$.complete();
|
|
15381
|
+
}
|
|
15297
15382
|
getCollapseState({ node, api }) {
|
|
15298
15383
|
let collapsed = true;
|
|
15299
15384
|
if (node.rowGroupIndex === 0) {
|
|
@@ -15309,7 +15394,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15309
15394
|
/** Listen to adding or removing row groups from the columns and not the groups menu */
|
|
15310
15395
|
this.gridQuery
|
|
15311
15396
|
.waitForGrid(() => this.gridQuery.gridRef.columnRowGroupChanged)
|
|
15312
|
-
.pipe(filter$1(() => !this.openMenus.group),
|
|
15397
|
+
.pipe(filter$1(() => !this.openMenus.group), takeUntil(this.destroy$))
|
|
15313
15398
|
.subscribe(() => {
|
|
15314
15399
|
this.rowGroupsCollapsed = false;
|
|
15315
15400
|
this.cdr.detectChanges();
|
|
@@ -15317,7 +15402,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15317
15402
|
/** Listen to row collapse state to update the icon */
|
|
15318
15403
|
this.gridQuery
|
|
15319
15404
|
.waitForGrid(() => this.gridQuery.gridRef.rowGroupOpened)
|
|
15320
|
-
.pipe(
|
|
15405
|
+
.pipe(takeUntil(this.destroy$))
|
|
15321
15406
|
.subscribe((event) => {
|
|
15322
15407
|
const collapsed = this.getCollapseState(event);
|
|
15323
15408
|
if (collapsed !== this.rowGroupsCollapsed) {
|
|
@@ -15328,7 +15413,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15328
15413
|
}
|
|
15329
15414
|
subscribeRowsSelectionData() {
|
|
15330
15415
|
this.gridQuery.rowsSelectionData$
|
|
15331
|
-
.pipe(
|
|
15416
|
+
.pipe(takeUntil(this.destroy$))
|
|
15332
15417
|
.subscribe(({ totalRowsCount, selectedRowsCount, selectedPageRowsCount, isAllPageRowsSelected }) => {
|
|
15333
15418
|
this.totalRowsCount = totalRowsCount;
|
|
15334
15419
|
this.selectedRowsCount = selectedRowsCount;
|
|
@@ -22973,7 +23058,7 @@ function fixNgLeaks() {
|
|
|
22973
23058
|
};
|
|
22974
23059
|
}
|
|
22975
23060
|
|
|
22976
|
-
window.coreVersion = '22.15.
|
|
23061
|
+
window.coreVersion = '22.15.2';
|
|
22977
23062
|
|
|
22978
23063
|
/**
|
|
22979
23064
|
* @license
|