@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.
- package/bundle.scss +9987 -6561
- package/bundles/datorama-core.umd.js +242 -95
- package/bundles/datorama-core.umd.js.map +1 -1
- package/bundles/datorama-core.umd.min.js +60 -60
- package/bundles/datorama-core.umd.min.js.map +1 -1
- package/datorama-core.metadata.json +1 -1
- package/esm2015/lib/button/button.component.js +1 -1
- package/esm2015/lib/grid/dato-grid.js +4 -3
- package/esm2015/lib/grid/grid/grid.component.js +5 -9
- package/esm2015/lib/grid/grid-sort.utils.js +28 -0
- package/esm2015/lib/grid-v2/grid/grid-v2.component.js +10 -3
- package/esm2015/lib/grid-v2/grid/grid-v2.config.js +45 -14
- package/esm2015/lib/grid-v2/grid-column-header/grid-column-header.component.js +4 -1
- package/esm2015/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.js +4 -1
- package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +60 -26
- package/esm2015/lib/grid-v2/grid-header/grid-header.component.js +3 -2
- package/esm2015/lib/grid-v2/grid-on-hover/grid-on-hover.component.js +17 -14
- package/esm2015/lib/grid-v2/grid-store/grid.query.js +11 -6
- package/esm2015/lib/grid-v2/grid-store/grid.service.js +19 -5
- package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +23 -17
- package/esm2015/lib/radio/radio.component.js +1 -1
- package/esm2015/lib/utils/string.js +9 -11
- package/esm2015/lib/version.js +2 -2
- package/esm5/lib/button/button.component.js +1 -1
- package/esm5/lib/grid/dato-grid.js +4 -3
- package/esm5/lib/grid/grid/grid.component.js +5 -9
- package/esm5/lib/grid/grid-sort.utils.js +35 -0
- package/esm5/lib/grid-v2/grid/grid-v2.component.js +14 -3
- package/esm5/lib/grid-v2/grid/grid-v2.config.js +47 -15
- package/esm5/lib/grid-v2/grid-column-header/grid-column-header.component.js +4 -1
- package/esm5/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.js +4 -1
- package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +64 -26
- package/esm5/lib/grid-v2/grid-header/grid-header.component.js +3 -2
- package/esm5/lib/grid-v2/grid-on-hover/grid-on-hover.component.js +17 -14
- package/esm5/lib/grid-v2/grid-store/grid.query.js +11 -6
- package/esm5/lib/grid-v2/grid-store/grid.service.js +19 -5
- package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +23 -17
- package/esm5/lib/radio/radio.component.js +1 -1
- package/esm5/lib/utils/string.js +9 -11
- package/esm5/lib/version.js +2 -2
- package/fesm2015/datorama-core.js +226 -96
- package/fesm2015/datorama-core.js.map +1 -1
- package/fesm5/datorama-core.js +243 -97
- package/fesm5/datorama-core.js.map +1 -1
- package/lib/grid/grid-sort.utils.d.ts +15 -0
- package/lib/grid-v2/grid/grid-v2.component.d.ts +4 -0
- package/lib/grid-v2/grid/grid-v2.config.d.ts +1 -0
- package/lib/grid-v2/grid-column-header/grid-column-header.component.d.ts +2 -1
- package/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.d.ts +1 -0
- package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +15 -0
- package/lib/grid-v2/grid-on-hover/grid-on-hover.component.d.ts +1 -3
- package/lib/grid-v2/grid-store/grid.service.d.ts +325 -281
- package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +1 -0
- package/package.json +4 -1
- package/testing/src/grid/rows.ts +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';
|
|
@@ -932,7 +932,7 @@ DatoButtonComponent = __decorate([
|
|
|
932
932
|
selector: 'dato-button',
|
|
933
933
|
template: "<button class=\"d-flex d-flex-row align-center\" [disabled]=\"_disabled\" [class.lightning]=\"lightning\">\n <ng-content></ng-content>\n</button>\n",
|
|
934
934
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
935
|
-
styles: [":host{display:inline-block}:host button.lightning{border-radius:4px;height:35px;padding:0 16px;font-weight:500;font-family
|
|
935
|
+
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}"]
|
|
936
936
|
}),
|
|
937
937
|
__param(1, Attribute('width')),
|
|
938
938
|
__param(2, Attribute('height')),
|
|
@@ -1518,15 +1518,12 @@ function capitalize(str) {
|
|
|
1518
1518
|
* @returns {string}
|
|
1519
1519
|
*/
|
|
1520
1520
|
function camelCase(str) {
|
|
1521
|
-
const
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
return string.charAt(0).toLowerCase() + string.slice(1);
|
|
1528
|
-
};
|
|
1529
|
-
return camelCase(str);
|
|
1521
|
+
const string = str
|
|
1522
|
+
.toLowerCase()
|
|
1523
|
+
.replace(/[^A-Za-z0-9]/g, ' ')
|
|
1524
|
+
.split(' ')
|
|
1525
|
+
.reduce((result, word) => result + capitalize(word.toLowerCase()));
|
|
1526
|
+
return string.charAt(0).toLowerCase() + string.slice(1);
|
|
1530
1527
|
}
|
|
1531
1528
|
/**
|
|
1532
1529
|
*
|
|
@@ -1544,7 +1541,8 @@ function kebabCase(str) {
|
|
|
1544
1541
|
* @returns {string} - The GUID
|
|
1545
1542
|
*/
|
|
1546
1543
|
function createGUID() {
|
|
1547
|
-
|
|
1544
|
+
const template = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
|
|
1545
|
+
return template.replace(/[xy]/g, c => {
|
|
1548
1546
|
const r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;
|
|
1549
1547
|
return v.toString(16);
|
|
1550
1548
|
});
|
|
@@ -5100,10 +5098,10 @@ let DatoGridComponent = class DatoGridComponent extends BaseCustomControl {
|
|
|
5100
5098
|
this.onChange(selectedRows);
|
|
5101
5099
|
},
|
|
5102
5100
|
rowSelection: 'multiple',
|
|
5103
|
-
rowDeselection: true
|
|
5101
|
+
// rowDeselection removed: true by default in AG Grid 27 (suppress with suppressRowDeselection).
|
|
5104
5102
|
unSortIcon: true,
|
|
5105
|
-
animateRows: true
|
|
5106
|
-
rememberGroupStateWhenNewData:
|
|
5103
|
+
animateRows: true
|
|
5104
|
+
// rememberGroupStateWhenNewData removed: no-op since AG Grid 24 (transaction updates keep group state).
|
|
5107
5105
|
};
|
|
5108
5106
|
this.infinitePagination = false;
|
|
5109
5107
|
this.isRowsCollapsed = true;
|
|
@@ -5123,10 +5121,6 @@ let DatoGridComponent = class DatoGridComponent extends BaseCustomControl {
|
|
|
5123
5121
|
classFunc(this.hostElement, 'grid-pagination');
|
|
5124
5122
|
if (this.gridOptions.rowModelType === 'infinite' || this.gridOptions.rowModelType === 'serverSide') {
|
|
5125
5123
|
this.infinitePagination = true;
|
|
5126
|
-
const { defaultColDef } = this.gridOptions;
|
|
5127
|
-
if (defaultColDef.filter) {
|
|
5128
|
-
defaultColDef.filterParams = { newRowsAction: 'keep' };
|
|
5129
|
-
}
|
|
5130
5124
|
}
|
|
5131
5125
|
}
|
|
5132
5126
|
get options() {
|
|
@@ -5260,7 +5254,7 @@ DatoGridComponent = __decorate([
|
|
|
5260
5254
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5261
5255
|
encapsulation: ViewEncapsulation.None,
|
|
5262
5256
|
providers: [valueAccessor$2],
|
|
5263
|
-
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)}"]
|
|
5257
|
+
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)}"]
|
|
5264
5258
|
}),
|
|
5265
5259
|
__metadata("design:paramtypes", [DatoGridHelper,
|
|
5266
5260
|
ElementRef,
|
|
@@ -9904,6 +9898,34 @@ function getGridModel(gridName) {
|
|
|
9904
9898
|
};
|
|
9905
9899
|
}
|
|
9906
9900
|
|
|
9901
|
+
/**
|
|
9902
|
+
* Returns the active sort model using the Column State API introduced as the
|
|
9903
|
+
* replacement for GridApi#getSortModel in AG Grid 24 and required in AG Grid 27.
|
|
9904
|
+
*/
|
|
9905
|
+
function getSortModel(columnApi) {
|
|
9906
|
+
const sortIndexes = {};
|
|
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);
|
|
9913
|
+
sortedColumns.forEach(columnState => {
|
|
9914
|
+
sortIndexes[columnState.colId] = columnState.sortIndex;
|
|
9915
|
+
});
|
|
9916
|
+
return sortedColumns
|
|
9917
|
+
.map(({ colId, sort }) => ({ colId, sort }))
|
|
9918
|
+
.sort((left, right) => sortIndexes[left.colId] - sortIndexes[right.colId]);
|
|
9919
|
+
}
|
|
9920
|
+
/**
|
|
9921
|
+
* Applies the complete sort model and clears sorting from columns omitted from
|
|
9922
|
+
* the model, matching the behavior of the removed GridApi#setSortModel method.
|
|
9923
|
+
*/
|
|
9924
|
+
function applySortModel(columnApi, sortModel = []) {
|
|
9925
|
+
const state = sortModel.map(({ colId, sort }, sortIndex) => ({ colId, sort, sortIndex }));
|
|
9926
|
+
return columnApi.applyColumnState({ state, defaultState: { sort: null } });
|
|
9927
|
+
}
|
|
9928
|
+
|
|
9907
9929
|
/**
|
|
9908
9930
|
* @license
|
|
9909
9931
|
* Copyright Datorama. All Rights Reserved.
|
|
@@ -9961,7 +9983,7 @@ let DatoGrid = class DatoGrid extends DatoGridAPI {
|
|
|
9961
9983
|
*/
|
|
9962
9984
|
onFilterSortChanged() {
|
|
9963
9985
|
const filter = this.gridApi.getFilterModel();
|
|
9964
|
-
const sort = this.
|
|
9986
|
+
const sort = getSortModel(this.columnApi);
|
|
9965
9987
|
// save grid's configuration
|
|
9966
9988
|
setGridModel(this.gridName, {
|
|
9967
9989
|
filter,
|
|
@@ -9974,7 +9996,7 @@ let DatoGrid = class DatoGrid extends DatoGridAPI {
|
|
|
9974
9996
|
setSavedModel() {
|
|
9975
9997
|
const { sort, filter } = getGridModel(this.gridName);
|
|
9976
9998
|
if (sort) {
|
|
9977
|
-
this.
|
|
9999
|
+
applySortModel(this.columnApi, sort);
|
|
9978
10000
|
}
|
|
9979
10001
|
if (filter) {
|
|
9980
10002
|
this.gridApi.setFilterModel(filter);
|
|
@@ -10133,9 +10155,13 @@ let GridQuery = class GridQuery extends Query {
|
|
|
10133
10155
|
getCurrentGridSettings() {
|
|
10134
10156
|
const toColId = column => column.getColId();
|
|
10135
10157
|
const { columns } = this.api;
|
|
10136
|
-
|
|
10137
|
-
|
|
10138
|
-
|
|
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() || [];
|
|
10139
10165
|
const hiddenColumns = columnsOrder
|
|
10140
10166
|
.filter(column => !column.isVisible() && !groupedColumns.includes(column))
|
|
10141
10167
|
.map(toColId);
|
|
@@ -10146,7 +10172,7 @@ let GridQuery = class GridQuery extends Query {
|
|
|
10146
10172
|
hiddenColumns,
|
|
10147
10173
|
groupedColumns: groupedColumns.map(toColId),
|
|
10148
10174
|
filter: this.getFilter(),
|
|
10149
|
-
pinnedColumns: columns.getDisplayedLeftColumns().map(toColId),
|
|
10175
|
+
pinnedColumns: (columns.getDisplayedLeftColumns() || []).map(toColId),
|
|
10150
10176
|
columnsOrder: allGridColumns.map(toColId),
|
|
10151
10177
|
columnsSizes: null,
|
|
10152
10178
|
searchTerm: null
|
|
@@ -10157,7 +10183,7 @@ let GridQuery = class GridQuery extends Query {
|
|
|
10157
10183
|
return settings;
|
|
10158
10184
|
}
|
|
10159
10185
|
getSortModel() {
|
|
10160
|
-
return this.api.
|
|
10186
|
+
return getSortModel(this.api.columns).pop();
|
|
10161
10187
|
}
|
|
10162
10188
|
getSavedSort() {
|
|
10163
10189
|
return this.getValue().settings.sort || this.getSortModel();
|
|
@@ -11927,6 +11953,9 @@ let DatoGridColumnHeaderComponent = class DatoGridColumnHeaderComponent {
|
|
|
11927
11953
|
this.filtersMenuOpen = false;
|
|
11928
11954
|
}
|
|
11929
11955
|
afterGuiAttached(params) { }
|
|
11956
|
+
refresh(_params) {
|
|
11957
|
+
return false;
|
|
11958
|
+
}
|
|
11930
11959
|
agInit(params) {
|
|
11931
11960
|
this.params = params;
|
|
11932
11961
|
this.column = params.column;
|
|
@@ -12056,13 +12085,12 @@ function getTime$1(val) {
|
|
|
12056
12085
|
}
|
|
12057
12086
|
const ROOT_NODE_ID = 'ROOT_NODE_ID';
|
|
12058
12087
|
const ɵ0$2 = item => item[gridTreeFilePathKey];
|
|
12059
|
-
const
|
|
12088
|
+
const defaultTreeOptionsBase = {
|
|
12060
12089
|
getDataPath: ɵ0$2,
|
|
12061
12090
|
components: {
|
|
12062
12091
|
fileCellRenderer: getGridTreeCellRenderer()
|
|
12063
12092
|
},
|
|
12064
12093
|
onRowDragMove: onRowDragMove,
|
|
12065
|
-
onRowDragEnd: onRowDragEnd,
|
|
12066
12094
|
onRowSelected: onRowSelected,
|
|
12067
12095
|
onRowGroupOpened: rowGroupOpened,
|
|
12068
12096
|
suppressRowClickSelection: true,
|
|
@@ -12071,6 +12099,10 @@ const defaultTreeOptions = {
|
|
|
12071
12099
|
rowDrag: '<dato-icon icon="drag" class="dato-icon-font-drag primary-400-color"></dato-icon>'
|
|
12072
12100
|
}
|
|
12073
12101
|
};
|
|
12102
|
+
function createDefaultTreeOptions(maxDepth = -1) {
|
|
12103
|
+
return Object.assign(Object.assign({}, defaultTreeOptionsBase), { onRowDragEnd: event => onRowDragEnd(event, maxDepth) });
|
|
12104
|
+
}
|
|
12105
|
+
const defaultTreeOptions = createDefaultTreeOptions();
|
|
12074
12106
|
const ɵ1$2 = (a, b) => (a || '').toLowerCase().localeCompare((b || '').toLowerCase());
|
|
12075
12107
|
const stringColDef = {
|
|
12076
12108
|
filter: DatoGridFilterTypes.String,
|
|
@@ -12086,7 +12118,27 @@ const defaultGridOptions = Object.assign({
|
|
|
12086
12118
|
comparator: (a, b) => getTime$1(a) - getTime$1(b)
|
|
12087
12119
|
},
|
|
12088
12120
|
[DatoGridColumnTypes.Number]: {
|
|
12089
|
-
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
|
+
}
|
|
12090
12142
|
},
|
|
12091
12143
|
[DatoGridColumnTypes.String]: stringColDef,
|
|
12092
12144
|
[DatoGridColumnTypes.Status]: Object.assign(Object.assign({}, stringColDef), { cellRenderer: 'DatoGridStatusCellComponent' }),
|
|
@@ -12094,14 +12146,20 @@ const defaultGridOptions = Object.assign({
|
|
|
12094
12146
|
[DatoGridColumnTypes.ItemsCount]: Object.assign(Object.assign({}, stringColDef), { cellRenderer: 'DatoGridItemsCountCellComponent' }),
|
|
12095
12147
|
[DatoGridColumnTypes.Initials]: Object.assign(Object.assign({}, stringColDef), { cellRenderer: 'DatoGridInitialsCellComponent' }),
|
|
12096
12148
|
[DatoGridColumnTypes.Avatar]: Object.assign(Object.assign({}, stringColDef), { cellRenderer: 'DatoGridAvatarCellComponent' })
|
|
12097
|
-
}, 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: {
|
|
12098
12152
|
minWidth: GridMinWidths.Default,
|
|
12099
12153
|
sortable: true,
|
|
12100
12154
|
resizable: true,
|
|
12101
12155
|
type: DatoGridColumnTypes.String,
|
|
12102
12156
|
menuTabs: ['filterMenuTab'],
|
|
12103
12157
|
headerComponentFramework: DatoGridColumnHeaderComponent
|
|
12104
|
-
},
|
|
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 } : {}));
|
|
12105
12163
|
const DEFAULT_GRID_SEARCH_DEBOUNCE_TIME = {
|
|
12106
12164
|
CLIENT: 200,
|
|
12107
12165
|
SERVER: 250
|
|
@@ -12189,7 +12247,10 @@ function getCellByRowID(rowID) {
|
|
|
12189
12247
|
* relevant css style to it.
|
|
12190
12248
|
* @param overNode
|
|
12191
12249
|
*/
|
|
12192
|
-
function
|
|
12250
|
+
function getRootNode(api) {
|
|
12251
|
+
return api.getModel().getRootNode();
|
|
12252
|
+
}
|
|
12253
|
+
function onRowDragMove({ overNode, node, api }) {
|
|
12193
12254
|
let folderToDropInto;
|
|
12194
12255
|
if (overNode) {
|
|
12195
12256
|
// folder to drop into is where we are going to move the file/folder to
|
|
@@ -12200,7 +12261,7 @@ function onRowDragMove({ overNode, node }) {
|
|
|
12200
12261
|
overNode.parent;
|
|
12201
12262
|
}
|
|
12202
12263
|
else {
|
|
12203
|
-
folderToDropInto =
|
|
12264
|
+
folderToDropInto = getRootNode(api);
|
|
12204
12265
|
}
|
|
12205
12266
|
if (potentialParent) {
|
|
12206
12267
|
if (potentialParent.id === folderToDropInto.id) {
|
|
@@ -12221,7 +12282,7 @@ function onRowDragMove({ overNode, node }) {
|
|
|
12221
12282
|
folderToDropIntoElement && folderToDropIntoElement.classList.add(agRowHoverClassName);
|
|
12222
12283
|
}
|
|
12223
12284
|
}
|
|
12224
|
-
function onRowDragEnd({ overNode, node }) {
|
|
12285
|
+
function onRowDragEnd({ overNode, node, api }, maxDepth) {
|
|
12225
12286
|
let nodeParent;
|
|
12226
12287
|
let folderToDropInto;
|
|
12227
12288
|
if (overNode) {
|
|
@@ -12234,17 +12295,16 @@ function onRowDragEnd({ overNode, node }) {
|
|
|
12234
12295
|
overNode.parent;
|
|
12235
12296
|
}
|
|
12236
12297
|
else {
|
|
12237
|
-
nodeParent =
|
|
12238
|
-
folderToDropInto =
|
|
12298
|
+
nodeParent = getRootNode(api);
|
|
12299
|
+
folderToDropInto = getRootNode(api);
|
|
12239
12300
|
}
|
|
12240
12301
|
// the data we want to move
|
|
12241
12302
|
const movingData = node.data;
|
|
12242
|
-
const treeMaxDepth = node.gridOptionsWrapper.gridOptions.maxDepth || -1;
|
|
12243
12303
|
// Disable nested drag when tree depth is above the limit
|
|
12244
12304
|
if (movingData.isFolder &&
|
|
12245
|
-
|
|
12305
|
+
maxDepth !== -1 &&
|
|
12246
12306
|
nodeParent.id !== ROOT_NODE_ID &&
|
|
12247
|
-
overNode.data.agGridFilePath.length >
|
|
12307
|
+
overNode.data.agGridFilePath.length > maxDepth) {
|
|
12248
12308
|
return;
|
|
12249
12309
|
}
|
|
12250
12310
|
// take new parent path from parent, if data is missing, means it's the root node,
|
|
@@ -12438,6 +12498,9 @@ let DatoGridMultiSelectColumnHeaderComponent = class DatoGridMultiSelectColumnHe
|
|
|
12438
12498
|
this.toggleMultiSelection(isSelectAll);
|
|
12439
12499
|
});
|
|
12440
12500
|
}
|
|
12501
|
+
refresh(_params) {
|
|
12502
|
+
return false;
|
|
12503
|
+
}
|
|
12441
12504
|
subscribeRowsSelectionData() {
|
|
12442
12505
|
this.gridQuery.gridReady$
|
|
12443
12506
|
.pipe(take(1), switchMap(() => this.gridQuery.rowsSelectionData$), untilDestroyed(this))
|
|
@@ -12748,8 +12811,21 @@ let GridService = class GridService {
|
|
|
12748
12811
|
gridOptions.enableSearchHighlight) {
|
|
12749
12812
|
normalized.cellRenderer = (params) => {
|
|
12750
12813
|
const allowHTML = isHtmlAllowedForCol(gridOptions, params.colDef);
|
|
12751
|
-
const
|
|
12752
|
-
|
|
12814
|
+
const { column, colDef } = params;
|
|
12815
|
+
const editableParams = column && colDef
|
|
12816
|
+
? {
|
|
12817
|
+
api: params.api,
|
|
12818
|
+
columnApi: params.columnApi,
|
|
12819
|
+
context: params.context,
|
|
12820
|
+
node: params.node,
|
|
12821
|
+
data: params.data,
|
|
12822
|
+
column,
|
|
12823
|
+
colDef
|
|
12824
|
+
}
|
|
12825
|
+
: null;
|
|
12826
|
+
const isEditable = isFunction(normalized.editable)
|
|
12827
|
+
? editableParams && normalized.editable(editableParams)
|
|
12828
|
+
: normalized.editable;
|
|
12753
12829
|
return isEditable
|
|
12754
12830
|
? editableCellRendererWithSearchHighlight(params, this.gridQuery.getSearchTerm(), allowHTML)
|
|
12755
12831
|
: searchHighlightCellRenderer(params, this.gridQuery.getSearchTerm(), allowHTML);
|
|
@@ -12918,7 +12994,7 @@ let GridService = class GridService {
|
|
|
12918
12994
|
}
|
|
12919
12995
|
}
|
|
12920
12996
|
this.updateSettings({ sort: sortToApply });
|
|
12921
|
-
this.api.
|
|
12997
|
+
applySortModel(this.api.columns, [sortToApply]);
|
|
12922
12998
|
if (this.gridRef.gridOptions.usePivotGridStyle) {
|
|
12923
12999
|
this.api.grid.redrawRows();
|
|
12924
13000
|
}
|
|
@@ -13145,7 +13221,7 @@ let GridService = class GridService {
|
|
|
13145
13221
|
columns.setColumnsVisible(removeGrouped, true);
|
|
13146
13222
|
/* Apply sort */
|
|
13147
13223
|
const gridSort = sort || this.initialSettings.sort;
|
|
13148
|
-
|
|
13224
|
+
applySortModel(columns, gridSort ? [gridSort] : []);
|
|
13149
13225
|
/* Align grid */
|
|
13150
13226
|
if (gridAlignment === 2 /* CUSTOM */) {
|
|
13151
13227
|
/* Set column sizes */
|
|
@@ -13630,10 +13706,9 @@ const pallete = {
|
|
|
13630
13706
|
* found in the LICENSE file at https://github.com/datorama/client-core/blob/master/LICENSE
|
|
13631
13707
|
*/
|
|
13632
13708
|
let DatoGridOnHoverComponent = class DatoGridOnHoverComponent {
|
|
13633
|
-
constructor(host, gridService,
|
|
13709
|
+
constructor(host, gridService, cdr) {
|
|
13634
13710
|
this.host = host;
|
|
13635
13711
|
this.gridService = gridService;
|
|
13636
|
-
this.gridQuery = gridQuery;
|
|
13637
13712
|
this.cdr = cdr;
|
|
13638
13713
|
this.displayedActions = [];
|
|
13639
13714
|
this.setBgColorBound = this.setBackgroundColor.bind(this);
|
|
@@ -13664,13 +13739,22 @@ let DatoGridOnHoverComponent = class DatoGridOnHoverComponent {
|
|
|
13664
13739
|
});
|
|
13665
13740
|
}
|
|
13666
13741
|
openActionMenu(event) {
|
|
13667
|
-
/* Hack to open the ag grid context menu */
|
|
13668
|
-
/* https://github.com/ag-grid/ag-grid-enterprise/issues/72 */
|
|
13669
|
-
const { rowIndex, node, column, value } = this.params;
|
|
13670
|
-
const cell = this.gridQuery.api.grid.rowRenderer.rowCompsByIndex[rowIndex].getRenderedCellForColumn(column);
|
|
13671
13742
|
/* The actions menu is different from the regular menu, we use the grid's context to signal that this is the actions menu*/
|
|
13672
13743
|
this.gridService.updateGridContext({ contextMenu: { fromOnHover: true } });
|
|
13673
|
-
|
|
13744
|
+
const target = this.params.event && this.params.event.target;
|
|
13745
|
+
if (!(target instanceof Element)) {
|
|
13746
|
+
return;
|
|
13747
|
+
}
|
|
13748
|
+
const cell = target.closest('.ag-cell');
|
|
13749
|
+
if (!cell) {
|
|
13750
|
+
return;
|
|
13751
|
+
}
|
|
13752
|
+
cell.dispatchEvent(new MouseEvent('contextmenu', {
|
|
13753
|
+
bubbles: true,
|
|
13754
|
+
cancelable: true,
|
|
13755
|
+
clientX: event.clientX,
|
|
13756
|
+
clientY: event.clientY
|
|
13757
|
+
}));
|
|
13674
13758
|
}
|
|
13675
13759
|
updateScrollPos(left) {
|
|
13676
13760
|
const cellBorder = 1;
|
|
@@ -13721,7 +13805,6 @@ let DatoGridOnHoverComponent = class DatoGridOnHoverComponent {
|
|
|
13721
13805
|
DatoGridOnHoverComponent.ctorParameters = () => [
|
|
13722
13806
|
{ type: ElementRef },
|
|
13723
13807
|
{ type: GridService },
|
|
13724
|
-
{ type: GridQuery },
|
|
13725
13808
|
{ type: ChangeDetectorRef }
|
|
13726
13809
|
];
|
|
13727
13810
|
DatoGridOnHoverComponent = __decorate([
|
|
@@ -13731,10 +13814,7 @@ DatoGridOnHoverComponent = __decorate([
|
|
|
13731
13814
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
13732
13815
|
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}"]
|
|
13733
13816
|
}),
|
|
13734
|
-
__metadata("design:paramtypes", [ElementRef,
|
|
13735
|
-
GridService,
|
|
13736
|
-
GridQuery,
|
|
13737
|
-
ChangeDetectorRef])
|
|
13817
|
+
__metadata("design:paramtypes", [ElementRef, GridService, ChangeDetectorRef])
|
|
13738
13818
|
], DatoGridOnHoverComponent);
|
|
13739
13819
|
|
|
13740
13820
|
let DatoHotkeysHelpComponent = class DatoHotkeysHelpComponent {
|
|
@@ -13880,14 +13960,26 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
13880
13960
|
this.gridActions = [];
|
|
13881
13961
|
this.gridReady$ = this.gridQuery.gridReady$;
|
|
13882
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);
|
|
13883
13968
|
this.gridElements = {
|
|
13884
13969
|
centerViewport: null,
|
|
13885
13970
|
centerContainer: null,
|
|
13886
13971
|
bodyViewport: null
|
|
13887
13972
|
};
|
|
13888
13973
|
this.treeGridClass = 'tree';
|
|
13974
|
+
this.hasGridOptions$ = this.hasGridOptions.asObservable();
|
|
13889
13975
|
}
|
|
13890
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
|
+
}
|
|
13891
13983
|
this._gridOptions = this.gridService.initGridOptions(gridOptions);
|
|
13892
13984
|
this.gridService.treeData = gridOptions.treeData;
|
|
13893
13985
|
this.gridService.isPivotMode = gridOptions.pivotMode;
|
|
@@ -13899,16 +13991,33 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
13899
13991
|
this.agGridEl.classList.add(this.treeGridClass);
|
|
13900
13992
|
}
|
|
13901
13993
|
}
|
|
13994
|
+
!this.hasGridOptions.value && this.hasGridOptions.next(true);
|
|
13902
13995
|
}
|
|
13903
13996
|
get gridOptions() {
|
|
13904
13997
|
return this._gridOptions;
|
|
13905
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
|
+
}
|
|
13906
14007
|
ngOnDestroy() {
|
|
14008
|
+
this.destroy$.next();
|
|
14009
|
+
this.destroy$.complete();
|
|
13907
14010
|
this.contentInit.complete();
|
|
14011
|
+
this.hasGridOptions.complete();
|
|
14012
|
+
this.agGridReady.complete();
|
|
13908
14013
|
this.clearTooltip();
|
|
13909
14014
|
this.rowHoverComponent && this.rowHoverComponent.destroy();
|
|
13910
14015
|
this.rowHoverComponent = null;
|
|
13911
14016
|
}
|
|
14017
|
+
/* @internal */
|
|
14018
|
+
onAgGridReady(event) {
|
|
14019
|
+
this.agGridReady.next(event);
|
|
14020
|
+
}
|
|
13912
14021
|
initializeGrid(agGrid, agGridEl) {
|
|
13913
14022
|
if (!this.contentInit.isStopped) {
|
|
13914
14023
|
this._initializeGrid(agGrid, agGridEl);
|
|
@@ -13922,11 +14031,13 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
13922
14031
|
this.contentInit
|
|
13923
14032
|
.asObservable()
|
|
13924
14033
|
.pipe(switchMap(() => {
|
|
13925
|
-
|
|
13926
|
-
|
|
14034
|
+
// Already normalized when dato-grid-v2 bound them to <ag-grid-angular [gridOptions]>.
|
|
14035
|
+
if (!this.agGridOptions) {
|
|
14036
|
+
return EMPTY;
|
|
14037
|
+
}
|
|
13927
14038
|
const settingsLoader = this.gridOptions.saveSettings === false ? of(null) : this.storageAPI.get(this.gridOptions.gridName);
|
|
13928
|
-
return combineLatest([
|
|
13929
|
-
}),
|
|
14039
|
+
return combineLatest([this.agGridReady, settingsLoader]);
|
|
14040
|
+
}), takeUntil(this.destroy$))
|
|
13930
14041
|
.subscribe(([{ api, columnApi }, savedSettings = {}]) => {
|
|
13931
14042
|
if (!this.gridOptions.rowData) {
|
|
13932
14043
|
api.showLoadingOverlay();
|
|
@@ -13960,7 +14071,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
13960
14071
|
rowActions: this.rowActions
|
|
13961
14072
|
};
|
|
13962
14073
|
let normalized = this.gridService.normalizeOptions(params);
|
|
13963
|
-
const defaults = Object.assign(Object.assign(Object.assign({}, defaultGridOptions), (this.gridOptions.treeData ?
|
|
14074
|
+
const defaults = Object.assign(Object.assign(Object.assign({}, defaultGridOptions), (this.gridOptions.treeData ? createDefaultTreeOptions(this.gridOptions.maxDepth) : {})), { icons: this.getGridIcons(), disabledHTMLRenderingFields: normalized.disabledHTMLRenderingFields || defaultGridOptions.disabledHTMLRenderingFields });
|
|
13964
14075
|
return deepmerge(defaults, normalized);
|
|
13965
14076
|
}
|
|
13966
14077
|
setGridRows(data) {
|
|
@@ -13996,7 +14107,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
13996
14107
|
observable = observable.pipe(filter$1(({ source }) => source === 'uiColumnDragged'), tap(() => this.updateOnHoverPos()));
|
|
13997
14108
|
}
|
|
13998
14109
|
observable
|
|
13999
|
-
.pipe(auditTime(100), filter$1(({ finished, source }) => finished && source === 'uiColumnDragged'),
|
|
14110
|
+
.pipe(auditTime(100), filter$1(({ finished, source }) => finished && source === 'uiColumnDragged'), takeUntil(this.destroy$))
|
|
14000
14111
|
.subscribe(e => {
|
|
14001
14112
|
const [column] = e.columns;
|
|
14002
14113
|
let columnsSizes = Object.assign({}, this.gridQuery.getColumnSizes());
|
|
@@ -14014,7 +14125,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14014
14125
|
merge$1(columnVisible, sortChanged, columnRowGroupChanged, columnPinned, dragStopped, filterChanged)
|
|
14015
14126
|
.pipe(
|
|
14016
14127
|
/* Skip the initial sorting event fired by the grid when adding rows */
|
|
14017
|
-
skip(1),
|
|
14128
|
+
skip(1), takeUntil(this.destroy$))
|
|
14018
14129
|
.subscribe(({ type }) => {
|
|
14019
14130
|
const settingsDiff = this.gridService.getSettingsDiff();
|
|
14020
14131
|
this.gridService.updateSettings(settingsDiff);
|
|
@@ -14030,7 +14141,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14030
14141
|
listenToStoreSettingsChanges() {
|
|
14031
14142
|
this.gridQuery
|
|
14032
14143
|
.select(state => state.settings)
|
|
14033
|
-
.pipe(skip(1), debounceTime(1000),
|
|
14144
|
+
.pipe(skip(1), debounceTime(1000), takeUntil(this.destroy$))
|
|
14034
14145
|
.subscribe(() => {
|
|
14035
14146
|
const settingsDiff = this.gridService.getSettingsDiff();
|
|
14036
14147
|
this.gridService.saveSettingsToServer(settingsDiff);
|
|
@@ -14055,14 +14166,14 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14055
14166
|
return columns.length === 0
|
|
14056
14167
|
? EMPTY
|
|
14057
14168
|
: agGrid.cellClicked.pipe(filter$1(({ value, node }) => value !== undefined && node.group === true));
|
|
14058
|
-
}),
|
|
14169
|
+
}), takeUntil(this.destroy$))
|
|
14059
14170
|
.subscribe(({ node }) => {
|
|
14060
14171
|
node.setExpanded(!node.expanded);
|
|
14061
14172
|
});
|
|
14062
14173
|
/* When closing a grouped row we want to hide the on hover actions */
|
|
14063
14174
|
if (this.onHoverEnabled()) {
|
|
14064
14175
|
agGrid.rowGroupOpened
|
|
14065
|
-
.pipe(filter$1(({ node }) => node.expanded === false),
|
|
14176
|
+
.pipe(filter$1(({ node }) => node.expanded === false), takeUntil(this.destroy$))
|
|
14066
14177
|
.subscribe(() => {
|
|
14067
14178
|
this.lastHoveredRow = null;
|
|
14068
14179
|
this.setOnHoverState(false);
|
|
@@ -14077,7 +14188,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14077
14188
|
fromEvent(bodyViewport, 'click')
|
|
14078
14189
|
.pipe(filter$1((event) => {
|
|
14079
14190
|
return (event.target === bodyViewport || event.target === centerViewport) && api.getSelectedRows().length > 0;
|
|
14080
|
-
}),
|
|
14191
|
+
}), takeUntil(this.destroy$))
|
|
14081
14192
|
.subscribe(() => api.deselectAll());
|
|
14082
14193
|
}
|
|
14083
14194
|
onHoverEnabled() {
|
|
@@ -14089,7 +14200,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14089
14200
|
const onHoverEnabled = this.onHoverEnabled();
|
|
14090
14201
|
if (onHoverEnabled) {
|
|
14091
14202
|
fromEvent(centerContainer, 'mouseleave')
|
|
14092
|
-
.pipe(
|
|
14203
|
+
.pipe(takeUntil(this.destroy$))
|
|
14093
14204
|
.subscribe(() => {
|
|
14094
14205
|
this.toggleRowHoverClass(this.lastHoveredRow);
|
|
14095
14206
|
this.lastHoveredRow = null;
|
|
@@ -14097,13 +14208,13 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14097
14208
|
lastHoveredCell = null;
|
|
14098
14209
|
});
|
|
14099
14210
|
merge$1(agGrid.bodyScroll.pipe(filter$1(({ direction }) => direction === 'horizontal')), agGrid.rowDataChanged)
|
|
14100
|
-
.pipe(
|
|
14211
|
+
.pipe(takeUntil(this.destroy$))
|
|
14101
14212
|
.subscribe(() => {
|
|
14102
14213
|
this.updateOnHoverPos();
|
|
14103
14214
|
});
|
|
14104
14215
|
this.addOnHoverElement();
|
|
14105
14216
|
}
|
|
14106
|
-
agGrid.cellMouseOver.pipe(
|
|
14217
|
+
agGrid.cellMouseOver.pipe(takeUntil(this.destroy$)).subscribe((event) => {
|
|
14107
14218
|
const { node, column } = event;
|
|
14108
14219
|
if (lastHoveredCell === `${node.id}-${column.getColId()}`) {
|
|
14109
14220
|
clearTimeout(this.cellMouseOutTimer);
|
|
@@ -14120,12 +14231,12 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14120
14231
|
}
|
|
14121
14232
|
});
|
|
14122
14233
|
const onTooltipOut = merge$1(fromEvent(bodyViewport, 'scroll'), fromEvent(this.agGridEl, 'mouseleave'));
|
|
14123
|
-
onTooltipOut.pipe(
|
|
14234
|
+
onTooltipOut.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
14124
14235
|
lastHoveredCell = null;
|
|
14125
14236
|
this.clearTooltip();
|
|
14126
14237
|
});
|
|
14127
14238
|
agGrid.cellMouseOut
|
|
14128
|
-
.pipe(filter$1(() => !isNil(this.tooltip)),
|
|
14239
|
+
.pipe(filter$1(() => !isNil(this.tooltip)), takeUntil(this.destroy$))
|
|
14129
14240
|
.subscribe(() => {
|
|
14130
14241
|
this.cellMouseOutTimer = window.setTimeout(() => this.clearTooltip());
|
|
14131
14242
|
});
|
|
@@ -14142,9 +14253,13 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14142
14253
|
if (cell.tagName === 'SPAN' && cell.scrollWidth === 0) {
|
|
14143
14254
|
cell = cell.parentElement;
|
|
14144
14255
|
}
|
|
14145
|
-
if (event.colDef.editable) {
|
|
14256
|
+
if (event.colDef.editable && cell) {
|
|
14146
14257
|
cell = cell.querySelector('.value-wrapper') || cell;
|
|
14147
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
|
+
}
|
|
14148
14263
|
const textOverflow = cell.offsetWidth < cell.scrollWidth;
|
|
14149
14264
|
if (textOverflow) {
|
|
14150
14265
|
clearTimeout(this.cellMouseOutTimer);
|
|
@@ -14220,14 +14335,14 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14220
14335
|
keys: 'meta.a',
|
|
14221
14336
|
ignoreInEditable: true
|
|
14222
14337
|
})
|
|
14223
|
-
.pipe(
|
|
14338
|
+
.pipe(takeUntil(this.destroy$))
|
|
14224
14339
|
.subscribe(() => {
|
|
14225
14340
|
this.gridService.selectAllCurrentPageRows();
|
|
14226
14341
|
});
|
|
14227
14342
|
}
|
|
14228
14343
|
registerWindowResizeListener() {
|
|
14229
14344
|
fromEvent(window, 'resize')
|
|
14230
|
-
.pipe(debounceTime(100), filter$1(() => this.gridQuery.gridAlignment !== 2 /* CUSTOM */),
|
|
14345
|
+
.pipe(debounceTime(100), filter$1(() => this.gridQuery.gridAlignment !== 2 /* CUSTOM */), takeUntil(this.destroy$))
|
|
14231
14346
|
.subscribe(() => {
|
|
14232
14347
|
const fitTo = this.gridQuery.gridAlignment === 0 /* FIT_TO_CONTAINER */ ? 'container' : 'content';
|
|
14233
14348
|
this.gridService.fitGrid(fitTo);
|
|
@@ -14247,7 +14362,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14247
14362
|
const events$ = this.gridQuery.isServerSide
|
|
14248
14363
|
? merge$1(agGrid.sortChanged, agGrid.filterChanged)
|
|
14249
14364
|
: agGrid.filterChanged;
|
|
14250
|
-
events$.pipe(
|
|
14365
|
+
events$.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
14251
14366
|
this.gridService.deselectAllRows();
|
|
14252
14367
|
});
|
|
14253
14368
|
}
|
|
@@ -14255,7 +14370,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
|
|
|
14255
14370
|
if (!this.gridQuery.isServerSide) {
|
|
14256
14371
|
return;
|
|
14257
14372
|
}
|
|
14258
|
-
agGrid.paginationChanged.pipe(
|
|
14373
|
+
agGrid.paginationChanged.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
14259
14374
|
if (this.gridQuery.isServerSelectAllRowsEnabled) {
|
|
14260
14375
|
this.gridService.selectAllCurrentPageRows(true, true);
|
|
14261
14376
|
}
|
|
@@ -14328,6 +14443,7 @@ let DatoGridV2Component = class DatoGridV2Component {
|
|
|
14328
14443
|
constructor(controller, host) {
|
|
14329
14444
|
this.controller = controller;
|
|
14330
14445
|
this.host = host;
|
|
14446
|
+
this.hasGridOptions$ = this.controller.hasGridOptions$;
|
|
14331
14447
|
}
|
|
14332
14448
|
set grid(agGrid) {
|
|
14333
14449
|
if (agGrid) {
|
|
@@ -14335,6 +14451,9 @@ let DatoGridV2Component = class DatoGridV2Component {
|
|
|
14335
14451
|
this.controller.initializeGrid(agGrid, agGridEl);
|
|
14336
14452
|
}
|
|
14337
14453
|
}
|
|
14454
|
+
get agGridOptions() {
|
|
14455
|
+
return this.controller.agGridOptions;
|
|
14456
|
+
}
|
|
14338
14457
|
get gridOptions() {
|
|
14339
14458
|
return this.controller ? this.controller.gridOptions : null;
|
|
14340
14459
|
}
|
|
@@ -14347,6 +14466,9 @@ let DatoGridV2Component = class DatoGridV2Component {
|
|
|
14347
14466
|
get isPivotStyle() {
|
|
14348
14467
|
return this.gridOptions && this.gridOptions.usePivotGridStyle;
|
|
14349
14468
|
}
|
|
14469
|
+
onGridReady(event) {
|
|
14470
|
+
this.controller.onAgGridReady(event);
|
|
14471
|
+
}
|
|
14350
14472
|
};
|
|
14351
14473
|
DatoGridV2Component.ctorParameters = () => [
|
|
14352
14474
|
{ type: DatoGridControllerComponent },
|
|
@@ -14360,10 +14482,10 @@ __decorate([
|
|
|
14360
14482
|
DatoGridV2Component = __decorate([
|
|
14361
14483
|
Component({
|
|
14362
14484
|
selector: 'dato-grid-v2',
|
|
14363
|
-
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",
|
|
14364
14486
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14365
14487
|
encapsulation: ViewEncapsulation.None,
|
|
14366
|
-
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}"]
|
|
14367
14489
|
}),
|
|
14368
14490
|
__metadata("design:paramtypes", [DatoGridControllerComponent, ElementRef])
|
|
14369
14491
|
], DatoGridV2Component);
|
|
@@ -14545,7 +14667,8 @@ let DatoGridHeaderV2Component = class DatoGridHeaderV2Component {
|
|
|
14545
14667
|
this.displayRowCount = true;
|
|
14546
14668
|
}
|
|
14547
14669
|
get enableBackground() {
|
|
14548
|
-
|
|
14670
|
+
const { gridOptions } = this.controller;
|
|
14671
|
+
return gridOptions ? gridOptions.enableBackground : false;
|
|
14549
14672
|
}
|
|
14550
14673
|
ngOnInit() {
|
|
14551
14674
|
this.rowCount$ = this.gridQuery.gridReady$.pipe(switchMap(() => this.rowsCount()));
|
|
@@ -14987,6 +15110,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
14987
15110
|
this.gridService = gridService;
|
|
14988
15111
|
this.MAX_VISIBLE_ROW_ACTIONS = 5;
|
|
14989
15112
|
this.MAX_VISIBLE_GRID_ACTIONS = 2;
|
|
15113
|
+
this.destroy$ = new Subject();
|
|
14990
15114
|
this._maxRowActions = this.MAX_VISIBLE_ROW_ACTIONS;
|
|
14991
15115
|
this.displayExport = true;
|
|
14992
15116
|
this.rowActions = { mainList: [], moreMenu: [] };
|
|
@@ -15019,13 +15143,16 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15019
15143
|
}
|
|
15020
15144
|
}
|
|
15021
15145
|
get enableV2_1() {
|
|
15022
|
-
|
|
15146
|
+
const { gridOptions } = this.gridController;
|
|
15147
|
+
return gridOptions ? gridOptions.enableV2_1 : false;
|
|
15023
15148
|
}
|
|
15024
15149
|
get enableSearch() {
|
|
15025
|
-
|
|
15150
|
+
const { gridOptions } = this.gridController;
|
|
15151
|
+
return gridOptions ? gridOptions.enableSearch : false;
|
|
15026
15152
|
}
|
|
15027
15153
|
get enableBackground() {
|
|
15028
|
-
|
|
15154
|
+
const { gridOptions } = this.gridController;
|
|
15155
|
+
return gridOptions ? gridOptions.enableBackground : false;
|
|
15029
15156
|
}
|
|
15030
15157
|
get isRowActionsVisible() {
|
|
15031
15158
|
return !this.enableV2_1 || (this.enableV2_1 && this.isSelectedRow);
|
|
@@ -15043,16 +15170,16 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15043
15170
|
return this.gridController.gridQuery.api;
|
|
15044
15171
|
}
|
|
15045
15172
|
ngOnInit() {
|
|
15046
|
-
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$)));
|
|
15047
15174
|
const gridInit = this.gridQuery.gridReady$.pipe(take(1));
|
|
15048
|
-
gridInit.pipe(
|
|
15175
|
+
gridInit.pipe(takeUntil(this.destroy$)).subscribe(() => {
|
|
15049
15176
|
this.groupsAllowed = !this.hideGrouping && !this.gridQuery.getValue().serverSidePagination.enabled;
|
|
15050
15177
|
});
|
|
15051
15178
|
this.initGridActions();
|
|
15052
15179
|
const selectedRowsChanged$ = this.gridQuery.selectedRowsChange$;
|
|
15053
15180
|
const isSelectAllRowsChanged$ = this.gridQuery.selectIsSelectAllRowsEnabled();
|
|
15054
15181
|
merge$1(dataChanges, gridInit, selectedRowsChanged$, isSelectAllRowsChanged$)
|
|
15055
|
-
.pipe(filter$1(() => !!this.api),
|
|
15182
|
+
.pipe(filter$1(() => !!this.api), takeUntil(this.destroy$))
|
|
15056
15183
|
.subscribe(() => {
|
|
15057
15184
|
this.resolveVisibleActions();
|
|
15058
15185
|
this.cdr.detectChanges();
|
|
@@ -15186,7 +15313,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15186
15313
|
processCellCallback: ({ column, value }) => {
|
|
15187
15314
|
const formatter = column.getColDef().valueFormatter;
|
|
15188
15315
|
// TODO: followup: https://ag-grid.zendesk.com/hc/en-us/requests/10963?page=1
|
|
15189
|
-
return formatter ? formatter({ value }) : value;
|
|
15316
|
+
return isFunction(formatter) ? formatter({ value }) : value;
|
|
15190
15317
|
}
|
|
15191
15318
|
});
|
|
15192
15319
|
}
|
|
@@ -15214,7 +15341,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15214
15341
|
const waitForAnimation = this.hasGroups ? 0 : 200;
|
|
15215
15342
|
/** When changing the tables grouping all the rows are automatically expanded, we need to update the icon state */
|
|
15216
15343
|
const expandSubscription = this.gridQuery.gridRef.columnRowGroupChanged
|
|
15217
|
-
.pipe(take(1),
|
|
15344
|
+
.pipe(take(1), takeUntil(this.destroy$))
|
|
15218
15345
|
.subscribe(() => {
|
|
15219
15346
|
this.rowGroupsCollapsed = false;
|
|
15220
15347
|
this.cdr.detectChanges();
|
|
@@ -15231,7 +15358,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15231
15358
|
gridService: this.gridService
|
|
15232
15359
|
}
|
|
15233
15360
|
})
|
|
15234
|
-
.pipe(
|
|
15361
|
+
.pipe(takeUntil(this.destroy$))
|
|
15235
15362
|
.subscribe(() => {
|
|
15236
15363
|
expandSubscription.unsubscribe();
|
|
15237
15364
|
this.openMenus.group = false;
|
|
@@ -15248,7 +15375,10 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15248
15375
|
clearSelectedRows() {
|
|
15249
15376
|
this.gridService.deselectAllRows();
|
|
15250
15377
|
}
|
|
15251
|
-
ngOnDestroy() {
|
|
15378
|
+
ngOnDestroy() {
|
|
15379
|
+
this.destroy$.next();
|
|
15380
|
+
this.destroy$.complete();
|
|
15381
|
+
}
|
|
15252
15382
|
getCollapseState({ node, api }) {
|
|
15253
15383
|
let collapsed = true;
|
|
15254
15384
|
if (node.rowGroupIndex === 0) {
|
|
@@ -15264,7 +15394,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15264
15394
|
/** Listen to adding or removing row groups from the columns and not the groups menu */
|
|
15265
15395
|
this.gridQuery
|
|
15266
15396
|
.waitForGrid(() => this.gridQuery.gridRef.columnRowGroupChanged)
|
|
15267
|
-
.pipe(filter$1(() => !this.openMenus.group),
|
|
15397
|
+
.pipe(filter$1(() => !this.openMenus.group), takeUntil(this.destroy$))
|
|
15268
15398
|
.subscribe(() => {
|
|
15269
15399
|
this.rowGroupsCollapsed = false;
|
|
15270
15400
|
this.cdr.detectChanges();
|
|
@@ -15272,7 +15402,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15272
15402
|
/** Listen to row collapse state to update the icon */
|
|
15273
15403
|
this.gridQuery
|
|
15274
15404
|
.waitForGrid(() => this.gridQuery.gridRef.rowGroupOpened)
|
|
15275
|
-
.pipe(
|
|
15405
|
+
.pipe(takeUntil(this.destroy$))
|
|
15276
15406
|
.subscribe((event) => {
|
|
15277
15407
|
const collapsed = this.getCollapseState(event);
|
|
15278
15408
|
if (collapsed !== this.rowGroupsCollapsed) {
|
|
@@ -15283,7 +15413,7 @@ let DatoGridV2ToolbarComponent = class DatoGridV2ToolbarComponent {
|
|
|
15283
15413
|
}
|
|
15284
15414
|
subscribeRowsSelectionData() {
|
|
15285
15415
|
this.gridQuery.rowsSelectionData$
|
|
15286
|
-
.pipe(
|
|
15416
|
+
.pipe(takeUntil(this.destroy$))
|
|
15287
15417
|
.subscribe(({ totalRowsCount, selectedRowsCount, selectedPageRowsCount, isAllPageRowsSelected }) => {
|
|
15288
15418
|
this.totalRowsCount = totalRowsCount;
|
|
15289
15419
|
this.selectedRowsCount = selectedRowsCount;
|
|
@@ -18710,7 +18840,7 @@ DatoRadioComponent = __decorate([
|
|
|
18710
18840
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18711
18841
|
exportAs: 'datoRadio',
|
|
18712
18842
|
providers: [valueAccessor$8],
|
|
18713
|
-
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
|
|
18843
|
+
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}"]
|
|
18714
18844
|
}),
|
|
18715
18845
|
__metadata("design:paramtypes", [Renderer2, ChangeDetectorRef, ElementRef])
|
|
18716
18846
|
], DatoRadioComponent);
|
|
@@ -22928,7 +23058,7 @@ function fixNgLeaks() {
|
|
|
22928
23058
|
};
|
|
22929
23059
|
}
|
|
22930
23060
|
|
|
22931
|
-
window.coreVersion = '22.
|
|
23061
|
+
window.coreVersion = '22.15.2';
|
|
22932
23062
|
|
|
22933
23063
|
/**
|
|
22934
23064
|
* @license
|
|
@@ -22942,5 +23072,5 @@ window.coreVersion = '22.14.1';
|
|
|
22942
23072
|
* Generated bundle index. Do not edit.
|
|
22943
23073
|
*/
|
|
22944
23074
|
|
|
22945
|
-
export { APP_TRANSLATE, AceService, BaseCustomControl, COMPARE_RESULT, CUSTOM_RANGE_ID, ColorPalette, ConfirmationType, ContentRef, ContentType, CustomHeaderControllerService, DATE_PICKER_CONFIG, DATE_PICKER_POPOVER_ID, DATO_CORE_LOGGER, DATO_FORM_ERRORS, DATO_GRID_STORAGE_API, DEFAULT_FORMAT, DEFAULT_GRID_SEARCH_DEBOUNCE_TIME, DatePickerConfig, DatePickerMonthComponent, DateType, DatoAccordionComponent, DatoAccordionContentComponent, DatoAccordionGroupComponent, DatoAccordionHeaderComponent, DatoAccordionModule, DatoAceDirective, DatoAceDraggableDirective, DatoAceModule, DatoActionType, DatoAutoCompleteContentDirective, DatoAutoFocusDirective, DatoAutocompleteComponent, DatoAutocompleteDirective, DatoAutocompleteModule, DatoBreadcrumbsComponent, DatoBreadcrumbsModule, DatoButtonComponent, DatoButtonGroupComponent, DatoButtonGroupModule, DatoButtonModule, DatoCamelCasePipe, DatoCarouselComponent, DatoCarouselItemDirective, DatoCarouselItemElement, DatoCarouselModule, DatoCheckboxComponent, DatoCheckboxModule, DatoClipboardDirective, DatoColorDirective, DatoConfirmationDialogComponent, DatoControlErrorComponent, DatoControlErrorContainerDirective, DatoControlErrorsDirective, DatoCoreError, DatoCoreModule, DatoCustomHeaderTemplateComponent, DatoCustomHeaderTemplateDirective, DatoCustomMoreMenuTemplateDirective, DatoDatePickerContainerComponent, DatoDatePickerModule, DatoDatePickerRangeComponent, DatoDatePickerSingleComponent, DatoDialog, DatoDialogCloseDirective, DatoDialogComponent, DatoDialogContentComponent, DatoDialogDismissDirective, DatoDialogFooterComponent, DatoDialogHeaderComponent, DatoDialogModule, DatoDialogRef, DatoDirectivesModule, DatoDisableControlDirective, DatoDraggableDirective, DatoDynamicContentComponent, DatoDynamicContentModule, DatoEditableHeaderComponent, DatoEditableHeaderModule, DatoFileInputComponent, DatoFileInputDefaultComponent, DatoFileInputModule, DatoFilterConditions, DatoFontDirective, DatoFontIconComponent, DatoFontIconModule, DatoFormSubmitDirective, DatoFormValidationModule, DatoGrid, DatoGridAPI, DatoGridAvatarCellComponent, DatoGridColumnDisplayMenuComponent, DatoGridColumnHeaderComponent, DatoGridColumnHeaderMoreMenuComponent, DatoGridColumnTypes, DatoGridComponent, DatoGridControllerComponent, DatoGridDateFilterOptions, DatoGridFilterComponent, DatoGridFilterOptionsMap, DatoGridFilterSections, DatoGridFilterTypes, DatoGridGroupsMenuComponent, DatoGridHeaderComponent, DatoGridHeaderV2Component, DatoGridInitialsCellComponent, DatoGridItemsCellComponent, DatoGridModule, DatoGridMoreMenuActions, DatoGridNumberFilterOptions, DatoGridOnHoverComponent, DatoGridPaginationComponent, DatoGridPaginationV2Component, DatoGridStatusCellComponent, DatoGridStringFilterOptions, DatoGridToolbarComponent, DatoGridToolbarItemDirective, DatoGridToolbarItemElementDirective, DatoGridV2Component, DatoGridV2LoaderComponent, DatoGridV2Module, DatoGridV2NoDataOverlayComponent, DatoGridV2ToolbarButtonComponent, DatoGridV2ToolbarComponent, DatoGroupComponent, DatoHighlightPipe, DatoHotkeys, DatoHotkeysDirective, DatoHotkeysHelpComponent, DatoHotkeysModule, DatoIconButtonComponent, DatoIconButtonModule, DatoIconComponent, DatoIconModule, DatoInfiniteScrollComponent, DatoInfiniteScrollModule, DatoInputComponent, DatoInputModule, DatoInputNumberComponent, DatoInputNumberDirective, DatoInputNumberModule, DatoKebabCasePipe, DatoLinkButtonComponent, DatoLinkButtonModule, DatoListComponent, DatoListModule, DatoListNoDataComponent, DatoListNoResultComponent, DatoListV2Component, DatoListV2Module, DatoLoaderComponent, DatoLoadersModule, DatoMenuComponent, DatoMenuContentDirective, DatoMenuItemDirective, DatoMenuModule, DatoMenuTriggerForDirective, DatoMultiOptionComponent, DatoMultiOptionV2Component, DatoOperatorTogglerComponent, DatoOperatorTogglerModule, DatoOptionComponent, DatoOptionV2Component, DatoOptionsModule, DatoOriginDirective, DatoOverlay, DatoPageLoaderComponent, DatoPanel, DatoPanelComponent, DatoPanelContentComponent, DatoPanelFooterComponent, DatoPanelHeaderComponent, DatoPanelInternalConfig, DatoPanelModule, DatoPanelRef, DatoPillsComponent, DatoPillsModule, DatoPipesModule, DatoPopover, DatoPopoverComponent, DatoPopoverModule, DatoProgressBarComponent, DatoProgressBarModule, DatoRadioComponent, DatoRadioModule, DatoRichTextDirective, DatoRichTextModule, DatoSearchResultsGroupSortPipe, DatoSearchResultsSortPipe, DatoSearchableContainerComponent, DatoSearchableDirective, DatoSearchableHighlightDirective, DatoSearchableModule, DatoSelectActiveDirective, DatoSelectComponent, DatoSelectEmptyComponent, DatoSelectModule, DatoShortNumberPipe, DatoSliderComponent, DatoSliderModule, DatoSnackbar, DatoSnackbarComponent, DatoSnackbarModule, DatoSortableComponent, DatoSortableHandleDirective, DatoSortableModule, DatoStaticImageSrcDirective, DatoStaticImagesSrcModule, DatoSubscribeContext, DatoSubscribeDirective, DatoTab, DatoTabContent, DatoTabTitle, DatoTabsModule, DatoTabset, DatoTemplatePortal, DatoTextModule, DatoThemesModule, DatoToast, DatoToastComponent, DatoToastModule, DatoTogglerComponent, DatoTogglerModule, DatoTooltipDirective, DatoTooltipV2Directive, DatoTrackByPropPipe, DatoTranslateService, DatoTreePipe, DatoTriggerMulti, DatoTriggerSingle, DialogConfig, DialogResultStatus, Dimensions, EventModifiersPlugin, GridActionType, GridMinWidths, GridRowSelectionType, GridStatusColumnTypes, GridToolbarService, ISO_FORMAT, IconRegistry, KeyCodes, KeyboardEventKeys, ListValueTypes, MockService, OperatorTypes, POPPER_BOUNDARY, PaletteDirective, PanelResultCloseTrigger, PillType, PopoverCloseDirective, PopoverContentDirective, PopoverRef, PopoverTrigger, ROOT_NODE_ID, RelativeDateType, RenderMethod, RowSelectionType, RowSelectionTypeV2, SELECT_MAX_HEIGHT, SUPPORTED_LOCALES, SelectType, SnackbarRef, SnackbarType, Store, SvgRegistry, ToolbarActionType, ToolbarArea, ToolbarConfirmation, ToolbarDeleteConfirmation, ToolbarHandler, TranslatePipe, Types, _valueChanges, a, addClass, addJSObjectCompletor, allowedFileTypes, alphabeticalGroupSort, alphabeticalSort, appendChild, appendScript, appendStyle, appendToBody, assertString, camelCase, capitalize, cloneDeep, closest, coerceArray, coerceElement, compareWith, compose, convertFromTreeData, convertToTreeData, createComponent, createElement, createGUID, createHTMLCompletor, curry, dateCompare, daysOfTheMonth, debounce, declarations$2 as declarations, deepEqual, deepmerge, defaultActions$1 as defaultActions, defaultConfig, defaultEditableColumnRenderer, defaultGridOptions, defaultGridTreeLabel, defaultOptionsDisplayLimit, defaultTreeOptions, dialogSizePreset, diff, difference, differenceBy, dimensionsChanges, directives, drop, editableCellRendererWithSearchHighlight, escape, escapeRegExp, filter, filterByControlValue, filterByTerm, filterDialogDismissed, filterDialogSuccess, filterGroupByControlValue, filterGroupByTerm, filterKey, find, findIndex, findKey, fixNgLeaks, forEach, formatKeys, generateMonths, get, getAttr, getCustomRange, getDateISOString, getDefaultConfirmationOptions, getDefaultOptions, getDefaultsToastOptions, getElementCoords, getFunctionName, getGridConfiguration, getGridModel, getInitials, getLocalizedFormat, getMultiTemplate, getOptionTemplate, getPopperDefaults, getUTCDate, getVisibleActions, gridTreeFilePathKey, groupBy, groupSortOrder, has, inView, intersection, invert, isArrayValuesEqual, isArrowUpDown, isBoolean, isEmpty, isEmptyString, isEnter, isEqual, isEscape, isFraction, isFunction, isMacintosh, isNil, isNumber, isObject, isRangeCondition, isRangeCustom, isString, isTestEnv, isValidMediaLink, kebabCase, keyBy, keysSymbols, last, map, mapKeys, mapValues, maxFileSize, merge, minBy, mockInDev, mocks, ngContentResolver, noop, normalizeData, omit, omitBy, optionalDebounce, pallete, parseDateString, partial, polling, prependChild, publicApi$1 as publicApi, query, queryAll, random, rawDiff, readFromClipboard, reject, relativeDateTypes, removeClass, resolveRange, round, searchHighlightCellRenderer, searchResultsGroupSort, searchResultsSort, setAttr, setAttribute, setDimensions, setGridConfiguration, setGridModel, setMaxDimensions, setMinDimensions, setStyle, setStyles, shortNumber, size, sortBy, stubs, supportedLocales, tapLog, tapOnce, throttle, toBoolean, toFormData, toNumber, toResponseBody, toString, toggleClass, toolbarActionToContextAction, tryParsePivotValue, unescape, union, uniq, uniqBy, uploadProgress, validBase64Image, validUrl, validateCondition, validateDate, validateDateCondition, validateFilter, validateNumberCondition, validateRange, validateStringCondition, values, workerMap, writeToClipboard, zoneStable, ɵ0$2 as ɵ0, ɵ1$2 as ɵ1, ɵ2, DATO_CORE_CONFIG as ɵb, DatoGridHelper as ɵc, Popper as ɵd, GridQuery as ɵe, GridStore as ɵf, GridService as ɵg, DatoDateRangesFilterPipe as ɵh, ListStore as ɵi, DatoListSelectAllComponent as ɵj, DatoGridMultiSelectColumnHeaderComponent as ɵk, DatoGridItemsCountCellComponent as ɵl, DatoGridV2ToolbarMoreMenuComponent as ɵm, DatoGridSearchBarComponent as ɵn };
|
|
23075
|
+
export { APP_TRANSLATE, AceService, BaseCustomControl, COMPARE_RESULT, CUSTOM_RANGE_ID, ColorPalette, ConfirmationType, ContentRef, ContentType, CustomHeaderControllerService, DATE_PICKER_CONFIG, DATE_PICKER_POPOVER_ID, DATO_CORE_LOGGER, DATO_FORM_ERRORS, DATO_GRID_STORAGE_API, DEFAULT_FORMAT, DEFAULT_GRID_SEARCH_DEBOUNCE_TIME, DatePickerConfig, DatePickerMonthComponent, DateType, DatoAccordionComponent, DatoAccordionContentComponent, DatoAccordionGroupComponent, DatoAccordionHeaderComponent, DatoAccordionModule, DatoAceDirective, DatoAceDraggableDirective, DatoAceModule, DatoActionType, DatoAutoCompleteContentDirective, DatoAutoFocusDirective, DatoAutocompleteComponent, DatoAutocompleteDirective, DatoAutocompleteModule, DatoBreadcrumbsComponent, DatoBreadcrumbsModule, DatoButtonComponent, DatoButtonGroupComponent, DatoButtonGroupModule, DatoButtonModule, DatoCamelCasePipe, DatoCarouselComponent, DatoCarouselItemDirective, DatoCarouselItemElement, DatoCarouselModule, DatoCheckboxComponent, DatoCheckboxModule, DatoClipboardDirective, DatoColorDirective, DatoConfirmationDialogComponent, DatoControlErrorComponent, DatoControlErrorContainerDirective, DatoControlErrorsDirective, DatoCoreError, DatoCoreModule, DatoCustomHeaderTemplateComponent, DatoCustomHeaderTemplateDirective, DatoCustomMoreMenuTemplateDirective, DatoDatePickerContainerComponent, DatoDatePickerModule, DatoDatePickerRangeComponent, DatoDatePickerSingleComponent, DatoDialog, DatoDialogCloseDirective, DatoDialogComponent, DatoDialogContentComponent, DatoDialogDismissDirective, DatoDialogFooterComponent, DatoDialogHeaderComponent, DatoDialogModule, DatoDialogRef, DatoDirectivesModule, DatoDisableControlDirective, DatoDraggableDirective, DatoDynamicContentComponent, DatoDynamicContentModule, DatoEditableHeaderComponent, DatoEditableHeaderModule, DatoFileInputComponent, DatoFileInputDefaultComponent, DatoFileInputModule, DatoFilterConditions, DatoFontDirective, DatoFontIconComponent, DatoFontIconModule, DatoFormSubmitDirective, DatoFormValidationModule, DatoGrid, DatoGridAPI, DatoGridAvatarCellComponent, DatoGridColumnDisplayMenuComponent, DatoGridColumnHeaderComponent, DatoGridColumnHeaderMoreMenuComponent, DatoGridColumnTypes, DatoGridComponent, DatoGridControllerComponent, DatoGridDateFilterOptions, DatoGridFilterComponent, DatoGridFilterOptionsMap, DatoGridFilterSections, DatoGridFilterTypes, DatoGridGroupsMenuComponent, DatoGridHeaderComponent, DatoGridHeaderV2Component, DatoGridInitialsCellComponent, DatoGridItemsCellComponent, DatoGridModule, DatoGridMoreMenuActions, DatoGridNumberFilterOptions, DatoGridOnHoverComponent, DatoGridPaginationComponent, DatoGridPaginationV2Component, DatoGridStatusCellComponent, DatoGridStringFilterOptions, DatoGridToolbarComponent, DatoGridToolbarItemDirective, DatoGridToolbarItemElementDirective, DatoGridV2Component, DatoGridV2LoaderComponent, DatoGridV2Module, DatoGridV2NoDataOverlayComponent, DatoGridV2ToolbarButtonComponent, DatoGridV2ToolbarComponent, DatoGroupComponent, DatoHighlightPipe, DatoHotkeys, DatoHotkeysDirective, DatoHotkeysHelpComponent, DatoHotkeysModule, DatoIconButtonComponent, DatoIconButtonModule, DatoIconComponent, DatoIconModule, DatoInfiniteScrollComponent, DatoInfiniteScrollModule, DatoInputComponent, DatoInputModule, DatoInputNumberComponent, DatoInputNumberDirective, DatoInputNumberModule, DatoKebabCasePipe, DatoLinkButtonComponent, DatoLinkButtonModule, DatoListComponent, DatoListModule, DatoListNoDataComponent, DatoListNoResultComponent, DatoListV2Component, DatoListV2Module, DatoLoaderComponent, DatoLoadersModule, DatoMenuComponent, DatoMenuContentDirective, DatoMenuItemDirective, DatoMenuModule, DatoMenuTriggerForDirective, DatoMultiOptionComponent, DatoMultiOptionV2Component, DatoOperatorTogglerComponent, DatoOperatorTogglerModule, DatoOptionComponent, DatoOptionV2Component, DatoOptionsModule, DatoOriginDirective, DatoOverlay, DatoPageLoaderComponent, DatoPanel, DatoPanelComponent, DatoPanelContentComponent, DatoPanelFooterComponent, DatoPanelHeaderComponent, DatoPanelInternalConfig, DatoPanelModule, DatoPanelRef, DatoPillsComponent, DatoPillsModule, DatoPipesModule, DatoPopover, DatoPopoverComponent, DatoPopoverModule, DatoProgressBarComponent, DatoProgressBarModule, DatoRadioComponent, DatoRadioModule, DatoRichTextDirective, DatoRichTextModule, DatoSearchResultsGroupSortPipe, DatoSearchResultsSortPipe, DatoSearchableContainerComponent, DatoSearchableDirective, DatoSearchableHighlightDirective, DatoSearchableModule, DatoSelectActiveDirective, DatoSelectComponent, DatoSelectEmptyComponent, DatoSelectModule, DatoShortNumberPipe, DatoSliderComponent, DatoSliderModule, DatoSnackbar, DatoSnackbarComponent, DatoSnackbarModule, DatoSortableComponent, DatoSortableHandleDirective, DatoSortableModule, DatoStaticImageSrcDirective, DatoStaticImagesSrcModule, DatoSubscribeContext, DatoSubscribeDirective, DatoTab, DatoTabContent, DatoTabTitle, DatoTabsModule, DatoTabset, DatoTemplatePortal, DatoTextModule, DatoThemesModule, DatoToast, DatoToastComponent, DatoToastModule, DatoTogglerComponent, DatoTogglerModule, DatoTooltipDirective, DatoTooltipV2Directive, DatoTrackByPropPipe, DatoTranslateService, DatoTreePipe, DatoTriggerMulti, DatoTriggerSingle, DialogConfig, DialogResultStatus, Dimensions, EventModifiersPlugin, GridActionType, GridMinWidths, GridRowSelectionType, GridStatusColumnTypes, GridToolbarService, ISO_FORMAT, IconRegistry, KeyCodes, KeyboardEventKeys, ListValueTypes, MockService, OperatorTypes, POPPER_BOUNDARY, PaletteDirective, PanelResultCloseTrigger, PillType, PopoverCloseDirective, PopoverContentDirective, PopoverRef, PopoverTrigger, ROOT_NODE_ID, RelativeDateType, RenderMethod, RowSelectionType, RowSelectionTypeV2, SELECT_MAX_HEIGHT, SUPPORTED_LOCALES, SelectType, SnackbarRef, SnackbarType, Store, SvgRegistry, ToolbarActionType, ToolbarArea, ToolbarConfirmation, ToolbarDeleteConfirmation, ToolbarHandler, TranslatePipe, Types, _valueChanges, a, addClass, addJSObjectCompletor, allowedFileTypes, alphabeticalGroupSort, alphabeticalSort, appendChild, appendScript, appendStyle, appendToBody, assertString, camelCase, capitalize, cloneDeep, closest, coerceArray, coerceElement, compareWith, compose, convertFromTreeData, convertToTreeData, createComponent, createDefaultTreeOptions, createElement, createGUID, createHTMLCompletor, curry, dateCompare, daysOfTheMonth, debounce, declarations$2 as declarations, deepEqual, deepmerge, defaultActions$1 as defaultActions, defaultConfig, defaultEditableColumnRenderer, defaultGridOptions, defaultGridTreeLabel, defaultOptionsDisplayLimit, defaultTreeOptions, dialogSizePreset, diff, difference, differenceBy, dimensionsChanges, directives, drop, editableCellRendererWithSearchHighlight, escape, escapeRegExp, filter, filterByControlValue, filterByTerm, filterDialogDismissed, filterDialogSuccess, filterGroupByControlValue, filterGroupByTerm, filterKey, find, findIndex, findKey, fixNgLeaks, forEach, formatKeys, generateMonths, get, getAttr, getCustomRange, getDateISOString, getDefaultConfirmationOptions, getDefaultOptions, getDefaultsToastOptions, getElementCoords, getFunctionName, getGridConfiguration, getGridModel, getInitials, getLocalizedFormat, getMultiTemplate, getOptionTemplate, getPopperDefaults, getUTCDate, getVisibleActions, gridTreeFilePathKey, groupBy, groupSortOrder, has, inView, intersection, invert, isArrayValuesEqual, isArrowUpDown, isBoolean, isEmpty, isEmptyString, isEnter, isEqual, isEscape, isFraction, isFunction, isMacintosh, isNil, isNumber, isObject, isRangeCondition, isRangeCustom, isString, isTestEnv, isValidMediaLink, kebabCase, keyBy, keysSymbols, last, map, mapKeys, mapValues, maxFileSize, merge, minBy, mockInDev, mocks, ngContentResolver, noop, normalizeData, omit, omitBy, optionalDebounce, pallete, parseDateString, partial, polling, prependChild, publicApi$1 as publicApi, query, queryAll, random, rawDiff, readFromClipboard, reject, relativeDateTypes, removeClass, resolveRange, round, searchHighlightCellRenderer, searchResultsGroupSort, searchResultsSort, setAttr, setAttribute, setDimensions, setGridConfiguration, setGridModel, setMaxDimensions, setMinDimensions, setStyle, setStyles, shortNumber, size, sortBy, stubs, supportedLocales, tapLog, tapOnce, throttle, toBoolean, toFormData, toNumber, toResponseBody, toString, toggleClass, toolbarActionToContextAction, tryParsePivotValue, unescape, union, uniq, uniqBy, uploadProgress, validBase64Image, validUrl, validateCondition, validateDate, validateDateCondition, validateFilter, validateNumberCondition, validateRange, validateStringCondition, values, workerMap, writeToClipboard, zoneStable, ɵ0$2 as ɵ0, ɵ1$2 as ɵ1, ɵ2, DATO_CORE_CONFIG as ɵb, DatoGridHelper as ɵc, Popper as ɵd, GridQuery as ɵe, GridStore as ɵf, GridService as ɵg, DatoDateRangesFilterPipe as ɵh, ListStore as ɵi, DatoListSelectAllComponent as ɵj, DatoGridMultiSelectColumnHeaderComponent as ɵk, DatoGridItemsCountCellComponent as ɵl, DatoGridV2ToolbarMoreMenuComponent as ɵm, DatoGridSearchBarComponent as ɵn };
|
|
22946
23076
|
//# sourceMappingURL=datorama-core.js.map
|