@datorama/core 22.0.4 → 22.0.6-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/bundle.scss +13 -13
  2. package/bundles/datorama-core.umd.js +234 -159
  3. package/bundles/datorama-core.umd.js.map +1 -1
  4. package/bundles/datorama-core.umd.min.js +24 -24
  5. package/bundles/datorama-core.umd.min.js.map +1 -1
  6. package/datorama-core.d.ts +1 -0
  7. package/datorama-core.metadata.json +1 -1
  8. package/esm2015/datorama-core.js +2 -1
  9. package/esm2015/lib/accordion/accordion/accordion.component.js +11 -3
  10. package/esm2015/lib/breadcrumbs/breadcrumbs.component.js +4 -2
  11. package/esm2015/lib/grid-v2/grid/grid-v2.types.js +1 -1
  12. package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +11 -3
  13. package/esm2015/lib/grid-v2/grid-filter/filter-validator.js +3 -1
  14. package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +12 -4
  15. package/esm2015/lib/grid-v2/grid-filter/grid-filter.types.js +3 -1
  16. package/esm2015/lib/grid-v2/grid-settings.js +2 -2
  17. package/esm2015/lib/grid-v2/grid-store/grid.service.js +10 -2
  18. package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +7 -1
  19. package/esm2015/lib/icon/icon.types.js +1 -1
  20. package/esm2015/lib/rich-text/rich-text.directive.js +15 -33
  21. package/esm2015/lib/rich-text/rich-text.service.js +50 -0
  22. package/esm2015/lib/select/select.component.js +16 -16
  23. package/esm2015/lib/sortable/sortable.component.js +7 -2
  24. package/esm2015/lib/version.js +2 -2
  25. package/esm5/datorama-core.js +2 -1
  26. package/esm5/lib/accordion/accordion/accordion.component.js +15 -3
  27. package/esm5/lib/breadcrumbs/breadcrumbs.component.js +4 -2
  28. package/esm5/lib/grid-v2/grid/grid-v2.types.js +1 -1
  29. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +11 -3
  30. package/esm5/lib/grid-v2/grid-filter/filter-validator.js +3 -1
  31. package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +12 -4
  32. package/esm5/lib/grid-v2/grid-filter/grid-filter.types.js +3 -1
  33. package/esm5/lib/grid-v2/grid-settings.js +2 -2
  34. package/esm5/lib/grid-v2/grid-store/grid.service.js +10 -2
  35. package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +13 -1
  36. package/esm5/lib/icon/icon.types.js +1 -1
  37. package/esm5/lib/rich-text/rich-text.directive.js +16 -34
  38. package/esm5/lib/rich-text/rich-text.service.js +51 -0
  39. package/esm5/lib/select/select.component.js +17 -16
  40. package/esm5/lib/sortable/sortable.component.js +7 -2
  41. package/esm5/lib/version.js +2 -2
  42. package/fesm2015/datorama-core.js +215 -153
  43. package/fesm2015/datorama-core.js.map +1 -1
  44. package/fesm5/datorama-core.js +234 -160
  45. package/fesm5/datorama-core.js.map +1 -1
  46. package/i18n/locale-en_US.json +2 -0
  47. package/lib/accordion/accordion/accordion.component.d.ts +4 -1
  48. package/lib/grid-v2/grid/grid-v2.types.d.ts +1 -0
  49. package/lib/grid-v2/grid-filter/grid-filter.types.d.ts +3 -1
  50. package/lib/grid-v2/grid-settings.d.ts +2 -2
  51. package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +2 -0
  52. package/lib/icon/icon.types.d.ts +1 -1
  53. package/lib/rich-text/rich-text.directive.d.ts +4 -6
  54. package/lib/rich-text/rich-text.service.d.ts +10 -0
  55. package/lib/select/select.component.d.ts +1 -0
  56. package/lib/sortable/sortable.component.d.ts +3 -1
  57. package/package.json +2 -2
@@ -7410,6 +7410,114 @@ var defaultClientSearchStrategy = function (searchIn, searchValue, labelKey) {
7410
7410
  return false;
7411
7411
  };
7412
7412
 
7413
+ /**
7414
+ * @license
7415
+ * Copyright Datorama. All Rights Reserved.
7416
+ *
7417
+ * Use of this source code is governed by an Apache License 2.0 license that can be
7418
+ * found in the LICENSE file at https://github.com/datorama/client-core/blob/master/LICENSE
7419
+ */
7420
+ var DatoSortableComponent = /** @class */ (function () {
7421
+ function DatoSortableComponent() {
7422
+ this.list = [];
7423
+ this.noop = noop;
7424
+ /**
7425
+ * Sortablejs options
7426
+ */
7427
+ this.datoOptions = {};
7428
+ /**
7429
+ * Fired once items order has changed
7430
+ */
7431
+ this.orderUpdated = new EventEmitter();
7432
+ this.defaultOptions = {
7433
+ handle: '.dato-sortable-handler',
7434
+ ghostClass: 'dato-sortable-ghost',
7435
+ chosenClass: 'dato-sortable-chosen',
7436
+ dragClass: 'dato-sortable-drag'
7437
+ };
7438
+ }
7439
+ Object.defineProperty(DatoSortableComponent.prototype, "datoList", {
7440
+ set: function (list) {
7441
+ var isArr = Array.isArray(list);
7442
+ var validInput = isArr || (list instanceof FormControl && Array.isArray(list.value));
7443
+ if (!validInput) {
7444
+ throw new Error("DatoSortable - datoList expected array or form control but got " + typeof list);
7445
+ }
7446
+ if (!isArr) {
7447
+ this.formControl = list;
7448
+ this.list = __spread(this.formControl.value);
7449
+ }
7450
+ else {
7451
+ this.list = list;
7452
+ }
7453
+ },
7454
+ enumerable: true,
7455
+ configurable: true
7456
+ });
7457
+ DatoSortableComponent.prototype.ngOnInit = function () {
7458
+ var _this = this;
7459
+ var _a = this.datoOptions, dynamicGhostHeight = _a.dynamicGhostHeight, hasStaticItems = _a.hasStaticItems, sortableOptions = __rest(_a, ["dynamicGhostHeight", "hasStaticItems"]);
7460
+ var mergedOptions = __assign(__assign(__assign({}, this.defaultOptions), sortableOptions), { onUpdate: function (event) { return (sortableOptions.onUpdate ? sortableOptions.onUpdate(event) : _this.emitUpdate(event)); } });
7461
+ if (dynamicGhostHeight) {
7462
+ mergedOptions.onStart = function (event) { return _this.setGhostHeight(event); };
7463
+ }
7464
+ if (hasStaticItems) {
7465
+ mergedOptions.onMove = function (event) {
7466
+ if (event.related.classList.contains('dato-sortable-static-item')) {
7467
+ return false;
7468
+ }
7469
+ return sortableOptions.onMove ? sortableOptions.onMove(event) : true;
7470
+ };
7471
+ }
7472
+ this.mergedOptions = mergedOptions;
7473
+ };
7474
+ DatoSortableComponent.prototype.emitUpdate = function (event) {
7475
+ if (this.formControl) {
7476
+ this.formControl.setValue(this.list);
7477
+ }
7478
+ this.orderUpdated.emit(event);
7479
+ };
7480
+ DatoSortableComponent.prototype.setGhostHeight = function (event) {
7481
+ var originalEl = event.from.children[event.oldIndex];
7482
+ setStyle(originalEl, 'display', 'block');
7483
+ var height = originalEl.getBoundingClientRect().height;
7484
+ setStyle(originalEl, 'display', 'none');
7485
+ var ghostEl = query('.dato-sortable-ghost');
7486
+ setStyle(ghostEl, 'height', height + "px");
7487
+ };
7488
+ __decorate([
7489
+ ContentChildren(DatoAccordionGroupComponent),
7490
+ __metadata("design:type", QueryList)
7491
+ ], DatoSortableComponent.prototype, "accordionGroups", void 0);
7492
+ __decorate([
7493
+ Input(),
7494
+ __metadata("design:type", Object),
7495
+ __metadata("design:paramtypes", [Object])
7496
+ ], DatoSortableComponent.prototype, "datoList", null);
7497
+ __decorate([
7498
+ Input(),
7499
+ __metadata("design:type", Object)
7500
+ ], DatoSortableComponent.prototype, "datoOptions", void 0);
7501
+ __decorate([
7502
+ Input(),
7503
+ __metadata("design:type", String)
7504
+ ], DatoSortableComponent.prototype, "containerClass", void 0);
7505
+ __decorate([
7506
+ Output(),
7507
+ __metadata("design:type", Object)
7508
+ ], DatoSortableComponent.prototype, "orderUpdated", void 0);
7509
+ DatoSortableComponent = __decorate([
7510
+ Component({
7511
+ selector: 'dato-sortable',
7512
+ template: "<section [sortablejs]=\"list\" [sortablejsOptions]=\"mergedOptions\" [ngClass]=\"containerClass\"\n (update.stop)=\"noop()\" (add.stop)=\"noop()\" (sort.stop)=\"noop()\" (remove.stop)=\"noop()\"\n (filter.stop)=\"noop()\" (change.stop)=\"noop()\" (drag.stop)=\"noop()\">\n <ng-content></ng-content>\n</section>",
7513
+ changeDetection: ChangeDetectionStrategy.OnPush,
7514
+ encapsulation: ViewEncapsulation.None,
7515
+ styles: ["dato-sortable{display:inline-block}dato-sortable .dato-sortable-handler{cursor:move;cursor:-webkit-grabbing}.dato-sortable-ghost>*{display:none!important}.dato-sortable-drag{box-shadow:0 2px 14px 0 rgba(0,0,0,.2)}"]
7516
+ })
7517
+ ], DatoSortableComponent);
7518
+ return DatoSortableComponent;
7519
+ }());
7520
+
7413
7521
  /**
7414
7522
  * @license
7415
7523
  * Copyright Datorama. All Rights Reserved.
@@ -7455,6 +7563,13 @@ var DatoAccordionComponent = /** @class */ (function () {
7455
7563
  enumerable: true,
7456
7564
  configurable: true
7457
7565
  });
7566
+ Object.defineProperty(DatoAccordionComponent.prototype, "groups", {
7567
+ get: function () {
7568
+ return this.sortable && this.sortable.accordionGroups.length > 0 ? this.sortable.accordionGroups : this.childGroups;
7569
+ },
7570
+ enumerable: true,
7571
+ configurable: true
7572
+ });
7458
7573
  DatoAccordionComponent.prototype.ngOnChanges = function (changes) {
7459
7574
  var _this = this;
7460
7575
  if (changes.expandAll && !changes.expandAll.firstChange) {
@@ -7672,11 +7787,15 @@ var DatoAccordionComponent = /** @class */ (function () {
7672
7787
  __decorate([
7673
7788
  ContentChildren(DatoAccordionGroupComponent),
7674
7789
  __metadata("design:type", QueryList)
7675
- ], DatoAccordionComponent.prototype, "groups", void 0);
7790
+ ], DatoAccordionComponent.prototype, "childGroups", void 0);
7676
7791
  __decorate([
7677
7792
  ContentChildren(DatoAccordionComponent_1, { descendants: true }),
7678
7793
  __metadata("design:type", QueryList)
7679
7794
  ], DatoAccordionComponent.prototype, "childAccordion", void 0);
7795
+ __decorate([
7796
+ ContentChild(DatoSortableComponent, { static: true }),
7797
+ __metadata("design:type", DatoSortableComponent)
7798
+ ], DatoAccordionComponent.prototype, "sortable", void 0);
7680
7799
  __decorate([
7681
7800
  Input(),
7682
7801
  __metadata("design:type", Object)
@@ -8430,9 +8549,8 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8430
8549
  DatoSelectComponent.prototype.writeValue = function (activeOptions) {
8431
8550
  this._model = activeOptions ? coerceArray$1(activeOptions) : [];
8432
8551
  if (this.options) {
8433
- var overTheLimit = this.limitSelectedTo && this.isMulti && this._model.length >= this.limitSelectedTo;
8434
8552
  this.markAsActive(this._model, { deselectAll: true });
8435
- overTheLimit && this.updateDisabledState();
8553
+ this.limitSelectedTo && this.updateDisabledState();
8436
8554
  }
8437
8555
  /** For later updates */
8438
8556
  this.cdr.markForCheck();
@@ -8469,7 +8587,7 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8469
8587
  */
8470
8588
  if (this.hasValue && this._initialOpen) {
8471
8589
  this.markAsActive(this._model);
8472
- if (this.limitSelectedTo && this._model.length === this.limitSelectedTo) {
8590
+ if (this.limitSelectedTo) {
8473
8591
  this.updateDisabledState();
8474
8592
  }
8475
8593
  this._initialOpen = false;
@@ -8549,8 +8667,8 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8549
8667
  }
8550
8668
  }
8551
8669
  this.onChange(this._model);
8552
- this.datoOverlay.scheduleUpdate();
8553
8670
  this.cdr.markForCheck();
8671
+ this.asyncUpdateDropdownPosition();
8554
8672
  };
8555
8673
  DatoSelectComponent.prototype.reorderOptions = function (newOrder) {
8556
8674
  this._model = newOrder;
@@ -8558,7 +8676,6 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8558
8676
  };
8559
8677
  DatoSelectComponent.prototype.removeOption = function (option) {
8560
8678
  var _this = this;
8561
- var updateDisabled = this.limitSelectedTo && this._model.length === this.limitSelectedTo;
8562
8679
  this._model = this._model.filter(function (current) { return current[_this.idKey] !== option[_this.idKey]; });
8563
8680
  var optionToRemove = this.options.find(function (datoOption) { return datoOption.option && datoOption.option[_this.idKey] === option[_this.idKey]; });
8564
8681
  /**
@@ -8568,12 +8685,10 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8568
8685
  if (optionToRemove) {
8569
8686
  optionToRemove.active = false;
8570
8687
  }
8571
- updateDisabled && this.updateDisabledState();
8688
+ this.limitSelectedTo && this.updateDisabledState();
8572
8689
  this.onChange(this._model);
8573
8690
  this.cdr.markForCheck();
8574
- if (this.datoOverlay.attached) {
8575
- this.datoOverlay.scheduleUpdate();
8576
- }
8691
+ this.asyncUpdateDropdownPosition();
8577
8692
  };
8578
8693
  DatoSelectComponent.prototype.preventBodyScroll = function (event) {
8579
8694
  if (isArrowUpDown(event)) {
@@ -8828,7 +8943,7 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8828
8943
  _this.searchTerm = value;
8829
8944
  _this.keyManager.setActiveItem(-1);
8830
8945
  _this.cdr.markForCheck();
8831
- _this.datoOverlay && _this.datoOverlay.scheduleUpdate();
8946
+ _this.asyncUpdateDropdownPosition();
8832
8947
  });
8833
8948
  };
8834
8949
  /**
@@ -8918,9 +9033,6 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8918
9033
  if (!datoOption) {
8919
9034
  return;
8920
9035
  }
8921
- var modelLength = this._model.length;
8922
- var updateDisabled = this.limitSelectedTo &&
8923
- (modelLength === this.limitSelectedTo || (modelLength === this.limitSelectedTo - 1 && !datoOption.active));
8924
9036
  datoOption.active = !datoOption.active;
8925
9037
  var rawOption = datoOption.option;
8926
9038
  if (datoOption.active) {
@@ -8929,10 +9041,10 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8929
9041
  else {
8930
9042
  this._model = this._model.filter(function (current) { return current[_this.idKey] !== rawOption[_this.idKey]; });
8931
9043
  }
8932
- updateDisabled && this.updateDisabledState();
9044
+ this.limitSelectedTo && this.updateDisabledState();
8933
9045
  this.onChange(this._model);
8934
9046
  this.cdr.markForCheck();
8935
- this.datoOverlay.scheduleUpdate();
9047
+ this.asyncUpdateDropdownPosition();
8936
9048
  };
8937
9049
  DatoSelectComponent.prototype.activateInfiniteScroll = function () {
8938
9050
  var _this = this;
@@ -8985,6 +9097,14 @@ var DatoSelectComponent = /** @class */ (function (_super) {
8985
9097
  finally { if (e_9) throw e_9.error; }
8986
9098
  }
8987
9099
  };
9100
+ // Make sure the overlay will be update AFTER Change Detection was done
9101
+ // So the items in the input (and its height) is update
9102
+ DatoSelectComponent.prototype.asyncUpdateDropdownPosition = function () {
9103
+ var _this = this;
9104
+ if (this.datoOverlay && this.datoOverlay.attached) {
9105
+ setTimeout(function () { return _this.datoOverlay.scheduleUpdate(); }, 0);
9106
+ }
9107
+ };
8988
9108
  DatoSelectComponent.ctorParameters = function () { return [
8989
9109
  { type: ChangeDetectorRef },
8990
9110
  { type: DatoTranslateService },
@@ -9977,110 +10097,6 @@ var DatoOptionsModule = /** @class */ (function () {
9977
10097
  return DatoOptionsModule;
9978
10098
  }());
9979
10099
 
9980
- /**
9981
- * @license
9982
- * Copyright Datorama. All Rights Reserved.
9983
- *
9984
- * Use of this source code is governed by an Apache License 2.0 license that can be
9985
- * found in the LICENSE file at https://github.com/datorama/client-core/blob/master/LICENSE
9986
- */
9987
- var DatoSortableComponent = /** @class */ (function () {
9988
- function DatoSortableComponent() {
9989
- this.list = [];
9990
- this.noop = noop;
9991
- /**
9992
- * Sortablejs options
9993
- */
9994
- this.datoOptions = {};
9995
- /**
9996
- * Fired once items order has changed
9997
- */
9998
- this.orderUpdated = new EventEmitter();
9999
- this.defaultOptions = {
10000
- handle: '.dato-sortable-handler',
10001
- ghostClass: 'dato-sortable-ghost',
10002
- chosenClass: 'dato-sortable-chosen',
10003
- dragClass: 'dato-sortable-drag'
10004
- };
10005
- }
10006
- Object.defineProperty(DatoSortableComponent.prototype, "datoList", {
10007
- set: function (list) {
10008
- var isArr = Array.isArray(list);
10009
- var validInput = isArr || (list instanceof FormControl && Array.isArray(list.value));
10010
- if (!validInput) {
10011
- throw new Error("DatoSortable - datoList expected array or form control but got " + typeof list);
10012
- }
10013
- if (!isArr) {
10014
- this.formControl = list;
10015
- this.list = __spread(this.formControl.value);
10016
- }
10017
- else {
10018
- this.list = list;
10019
- }
10020
- },
10021
- enumerable: true,
10022
- configurable: true
10023
- });
10024
- DatoSortableComponent.prototype.ngOnInit = function () {
10025
- var _this = this;
10026
- var _a = this.datoOptions, dynamicGhostHeight = _a.dynamicGhostHeight, hasStaticItems = _a.hasStaticItems, sortableOptions = __rest(_a, ["dynamicGhostHeight", "hasStaticItems"]);
10027
- var mergedOptions = __assign(__assign(__assign({}, this.defaultOptions), sortableOptions), { onUpdate: function (event) { return (sortableOptions.onUpdate ? sortableOptions.onUpdate(event) : _this.emitUpdate(event)); } });
10028
- if (dynamicGhostHeight) {
10029
- mergedOptions.onStart = function (event) { return _this.setGhostHeight(event); };
10030
- }
10031
- if (hasStaticItems) {
10032
- mergedOptions.onMove = function (event) {
10033
- if (event.related.classList.contains('dato-sortable-static-item')) {
10034
- return false;
10035
- }
10036
- return sortableOptions.onMove ? sortableOptions.onMove(event) : true;
10037
- };
10038
- }
10039
- this.mergedOptions = mergedOptions;
10040
- };
10041
- DatoSortableComponent.prototype.emitUpdate = function (event) {
10042
- if (this.formControl) {
10043
- this.formControl.setValue(this.list);
10044
- }
10045
- this.orderUpdated.emit(event);
10046
- };
10047
- DatoSortableComponent.prototype.setGhostHeight = function (event) {
10048
- var originalEl = event.from.children[event.oldIndex];
10049
- setStyle(originalEl, 'display', 'block');
10050
- var height = originalEl.getBoundingClientRect().height;
10051
- setStyle(originalEl, 'display', 'none');
10052
- var ghostEl = query('.dato-sortable-ghost');
10053
- setStyle(ghostEl, 'height', height + "px");
10054
- };
10055
- __decorate([
10056
- Input(),
10057
- __metadata("design:type", Object),
10058
- __metadata("design:paramtypes", [Object])
10059
- ], DatoSortableComponent.prototype, "datoList", null);
10060
- __decorate([
10061
- Input(),
10062
- __metadata("design:type", Object)
10063
- ], DatoSortableComponent.prototype, "datoOptions", void 0);
10064
- __decorate([
10065
- Input(),
10066
- __metadata("design:type", String)
10067
- ], DatoSortableComponent.prototype, "containerClass", void 0);
10068
- __decorate([
10069
- Output(),
10070
- __metadata("design:type", Object)
10071
- ], DatoSortableComponent.prototype, "orderUpdated", void 0);
10072
- DatoSortableComponent = __decorate([
10073
- Component({
10074
- selector: 'dato-sortable',
10075
- template: "<section [sortablejs]=\"list\" [sortablejsOptions]=\"mergedOptions\" [ngClass]=\"containerClass\"\n (update.stop)=\"noop()\" (add.stop)=\"noop()\" (sort.stop)=\"noop()\" (remove.stop)=\"noop()\"\n (filter.stop)=\"noop()\" (change.stop)=\"noop()\" (drag.stop)=\"noop()\">\n <ng-content></ng-content>\n</section>",
10076
- changeDetection: ChangeDetectionStrategy.OnPush,
10077
- encapsulation: ViewEncapsulation.None,
10078
- styles: ["dato-sortable{display:inline-block}dato-sortable .dato-sortable-handler{cursor:move;cursor:-webkit-grabbing}.dato-sortable-ghost>*{display:none!important}.dato-sortable-drag{box-shadow:0 2px 14px 0 rgba(0,0,0,.2)}"]
10079
- })
10080
- ], DatoSortableComponent);
10081
- return DatoSortableComponent;
10082
- }());
10083
-
10084
10100
  /**
10085
10101
  * @license
10086
10102
  * Copyright Datorama. All Rights Reserved.
@@ -11546,6 +11562,8 @@ var DatoFilterConditions;
11546
11562
  DatoFilterConditions["NOT_IN_LIST"] = "NOT_IN_LIST";
11547
11563
  DatoFilterConditions["IS_EMPTY"] = "IS_EMPTY";
11548
11564
  DatoFilterConditions["NOT_EMPTY"] = "NOT_EMPTY";
11565
+ DatoFilterConditions["IS_NULL"] = "IS_NULL";
11566
+ DatoFilterConditions["NOT_NULL"] = "NOT_NULL";
11549
11567
  })(DatoFilterConditions || (DatoFilterConditions = {}));
11550
11568
  var DatoGridDateFilterOptions = [
11551
11569
  DatoFilterConditions.IN_RANGE,
@@ -11629,8 +11647,10 @@ function validateNumberCondition(unparsedRowValue, _a, filterKey) {
11629
11647
  case DatoFilterConditions.IN_RANGE:
11630
11648
  return rowValue >= filterValue && rowValue <= parseFloat(rangeEnd);
11631
11649
  case DatoFilterConditions.IS_EMPTY:
11650
+ case DatoFilterConditions.IS_NULL:
11632
11651
  return isNil(rowValue);
11633
11652
  case DatoFilterConditions.NOT_EMPTY:
11653
+ case DatoFilterConditions.NOT_NULL:
11634
11654
  return !isNil(rowValue);
11635
11655
  }
11636
11656
  }
@@ -11816,7 +11836,7 @@ function toolbarActionToContextAction(params) {
11816
11836
  return contextActions;
11817
11837
  }
11818
11838
 
11819
- var DATO_GRID_STORAGE_API = new InjectionToken('DATO_GRID_STORAGE_API');
11839
+ var DATO_GRID_STORAGE_API = new InjectionToken('DATO_GRID_STORAGE_AP');
11820
11840
 
11821
11841
  var defaultEditableColumnRenderer = function (params) {
11822
11842
  return params && params.value ? "<div class=\"value-wrapper ellipsis\">" + params.value + "</div>" : null;
@@ -12631,10 +12651,11 @@ var DatoGridFilterComponent = /** @class */ (function () {
12631
12651
  var _a;
12632
12652
  var _this = this;
12633
12653
  var _b = this.popover.data, gridService = _b.gridService, gridQuery = _b.gridQuery;
12634
- var _c = this.colDef, filter = _c.filter, _d = _c.filtersConfig, filtersConfig = _d === void 0 ? {} : _d, pivotValueColumn = _c.pivotValueColumn, pivotKeys = _c.pivotKeys;
12654
+ var _c = this.colDef, filter = _c.filter, pivotValueColumn = _c.pivotValueColumn, pivotKeys = _c.pivotKeys;
12635
12655
  var colDefs = gridQuery.api.columns.getAllColumns().map(function (column) { return column.getColDef(); });
12636
12656
  this.colField = getColField(this.colDef);
12637
12657
  var colDef = colDefs.find(function (colDef) { return colDef.field === _this.colField; });
12658
+ var filtersConfig = colDef.filtersConfig || this.colDef.filtersConfig || {};
12638
12659
  var colFilter = filter || colDef.filter;
12639
12660
  var filterOptions = DatoGridFilterOptionsMap[colFilter];
12640
12661
  this.pivotColumn = gridQuery.api.columns.getSecondaryPivotColumn(pivotKeys, pivotValueColumn);
@@ -12656,7 +12677,11 @@ var DatoGridFilterComponent = /** @class */ (function () {
12656
12677
  if (this.filterSections.Conditional) {
12657
12678
  var filterConditions = filterOptions || DatoGridStringFilterOptions;
12658
12679
  if (filtersConfig.showEmptyConditions) {
12659
- filterConditions = __spread(filterConditions, [DatoFilterConditions.IS_EMPTY, DatoFilterConditions.NOT_EMPTY]);
12680
+ var emptyConditions = [DatoFilterConditions.IS_EMPTY, DatoFilterConditions.NOT_EMPTY];
12681
+ if (this.filterType === DatoGridFilterTypes.Number) {
12682
+ emptyConditions = [DatoFilterConditions.IS_NULL, DatoFilterConditions.NOT_NULL];
12683
+ }
12684
+ filterConditions = __spread(filterConditions, emptyConditions);
12660
12685
  }
12661
12686
  this.conditionalFilterOptions = filterConditions.map(function (operand, id) { return ({
12662
12687
  id: id,
@@ -13047,7 +13072,10 @@ var DatoGridFilterComponent = /** @class */ (function () {
13047
13072
  valueControl.updateValueAndValidity();
13048
13073
  };
13049
13074
  DatoGridFilterComponent.prototype.isEmptyOperand = function (operand) {
13050
- return operand === DatoFilterConditions.IS_EMPTY || operand === DatoFilterConditions.NOT_EMPTY;
13075
+ return (operand === DatoFilterConditions.IS_EMPTY ||
13076
+ operand === DatoFilterConditions.NOT_EMPTY ||
13077
+ operand === DatoFilterConditions.IS_NULL ||
13078
+ operand === DatoFilterConditions.NOT_NULL);
13051
13079
  };
13052
13080
  DatoGridFilterComponent.prototype.isStringArray = function (value) {
13053
13081
  return isString(value[0]);
@@ -14267,7 +14295,8 @@ var GridService = /** @class */ (function () {
14267
14295
  this.updateSettings({ gridAlignment: gridAlignment, columnsSizes: null });
14268
14296
  };
14269
14297
  GridService.prototype.saveSettingsToServer = function (settings) {
14270
- this.storageAPI.set(this.gridName, settings);
14298
+ var isGlobal = this.gridQuery.getGridOptions().isGlobalSettings;
14299
+ this.storageAPI.set(this.gridName, settings, isGlobal);
14271
14300
  };
14272
14301
  /**
14273
14302
  * @internal used to log grid events to the platform's logging service
@@ -14674,6 +14703,13 @@ var GridService = /** @class */ (function () {
14674
14703
  column: column
14675
14704
  };
14676
14705
  }
14706
+ if (condition === DatoFilterConditions.IS_NULL || condition === DatoFilterConditions.NOT_NULL) {
14707
+ return {
14708
+ condition: DatoFilterConditions.IS_NULL,
14709
+ value: condition === DatoFilterConditions.IS_NULL ? 'true' : 'false',
14710
+ column: column
14711
+ };
14712
+ }
14677
14713
  return __assign(__assign({}, item), { column: column });
14678
14714
  })
14679
14715
  };
@@ -15265,7 +15301,10 @@ var DatoGridControllerComponent = /** @class */ (function () {
15265
15301
  .pipe(switchMap(function () {
15266
15302
  _this.gridOptions = _this.normalizeOptions();
15267
15303
  agGrid.gridOptions = _this.gridOptions;
15268
- var settingsLoader = _this.gridOptions.saveSettings === false ? of(null) : _this.storageAPI.get(_this.gridOptions.gridName);
15304
+ var isGlobal = _this.gridOptions.isGlobalSettings;
15305
+ var settingsLoader = _this.gridOptions.saveSettings === false
15306
+ ? of(null)
15307
+ : _this.storageAPI.get(_this.gridOptions.gridName, isGlobal);
15269
15308
  return combineLatest([agGrid.gridReady, settingsLoader]);
15270
15309
  }), untilDestroyed(this))
15271
15310
  .subscribe(function (_a) {
@@ -15273,6 +15312,11 @@ var DatoGridControllerComponent = /** @class */ (function () {
15273
15312
  if (!_this.gridOptions.rowData) {
15274
15313
  api.showLoadingOverlay();
15275
15314
  }
15315
+ if (!_this.gridOptions.statusBar) {
15316
+ /** Fix ag-grid bug that doesn't add ag-hidden class to the status bar, which only get fixed in later versions */
15317
+ var el = agGridEl.querySelector('.ag-status-bar');
15318
+ addClass(el, 'ag-hidden');
15319
+ }
15276
15320
  var gridApi = { grid: api, columns: columnApi };
15277
15321
  _this.gridService._setApi(gridApi, agGrid);
15278
15322
  _this.gridQuery._setApi(gridApi, agGrid);
@@ -16540,6 +16584,18 @@ var DatoGridV2ToolbarComponent = /** @class */ (function () {
16540
16584
  this.registerGroupListeners();
16541
16585
  this.subscribeRowsSelectionData();
16542
16586
  };
16587
+ DatoGridV2ToolbarComponent.prototype.getCellValueChangeEvent = function () {
16588
+ var _this = this;
16589
+ return this.gridController.gridQuery.waitForGrid(function () {
16590
+ return _this.gridQuery.gridRef.cellValueChanged.pipe(debounceTime(100), untilDestroyed(_this));
16591
+ });
16592
+ };
16593
+ DatoGridV2ToolbarComponent.prototype.getRowDataUpdatedEvent = function () {
16594
+ var _this = this;
16595
+ return this.gridController.gridQuery.waitForGrid(function () {
16596
+ return _this.gridQuery.gridRef.rowDataUpdated.pipe(debounceTime(100), untilDestroyed(_this));
16597
+ });
16598
+ };
16543
16599
  DatoGridV2ToolbarComponent.prototype.onActionClick = function (action) {
16544
16600
  if (isFunction(action.onClick)) {
16545
16601
  var selectedRowsCount = this.gridController.gridQuery.getSelectedRowsCount();
@@ -21015,6 +21071,40 @@ var DatoEditableHeaderModule = /** @class */ (function () {
21015
21071
  * found in the LICENSE file at https://github.com/datorama/client-core/blob/master/LICENSE
21016
21072
  */
21017
21073
 
21074
+ var RichTextService = /** @class */ (function () {
21075
+ function RichTextService(http, config) {
21076
+ this.http = http;
21077
+ this.config = config;
21078
+ }
21079
+ RichTextService.prototype.getLib = function (appendScriptFunc, appendStyleFunc) {
21080
+ if (!this.richTextScript$) {
21081
+ this.initLib(appendScriptFunc, appendStyleFunc);
21082
+ }
21083
+ return this.richTextScript$;
21084
+ };
21085
+ RichTextService.prototype.initLib = function (appendScriptFunc, appendStyleFunc) {
21086
+ this.richTextScript$ = combineLatest([
21087
+ this.http
21088
+ .get(this.config.paths.richText + "/index.js", { responseType: 'text' })
21089
+ .pipe(tap(function (lib) { return appendScriptFunc(lib, 'rich-text-editor'); })),
21090
+ this.http
21091
+ .get(this.config.paths.richText + "/plugins/autocomplete/plugin.css", { responseType: 'text' })
21092
+ .pipe(tap(function (style) { return appendStyleFunc(style, 'tinymce-autocomplete'); }))
21093
+ ]).pipe(shareReplay(1));
21094
+ };
21095
+ RichTextService.ctorParameters = function () { return [
21096
+ { type: HttpClient },
21097
+ { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
21098
+ ]; };
21099
+ RichTextService.ɵprov = ɵɵdefineInjectable({ factory: function RichTextService_Factory() { return new RichTextService(ɵɵinject(HttpClient), ɵɵinject(DATO_CORE_CONFIG)); }, token: RichTextService, providedIn: "root" });
21100
+ RichTextService = __decorate([
21101
+ Injectable({ providedIn: 'root' }),
21102
+ __param(1, Inject(DATO_CORE_CONFIG)),
21103
+ __metadata("design:paramtypes", [HttpClient, Object])
21104
+ ], RichTextService);
21105
+ return RichTextService;
21106
+ }());
21107
+
21018
21108
  /**
21019
21109
  * @license
21020
21110
  * Copyright Datorama. All Rights Reserved.
@@ -21028,12 +21118,12 @@ var getTinymce = function () {
21028
21118
  var ɵ0$3 = getTinymce;
21029
21119
  var DatoRichTextDirective = /** @class */ (function (_super) {
21030
21120
  __extends(DatoRichTextDirective, _super);
21031
- function DatoRichTextDirective(ngZone, http, host, config) {
21121
+ function DatoRichTextDirective(ngZone, richTextService, config, host) {
21032
21122
  var _this = _super.call(this) || this;
21033
21123
  _this.ngZone = ngZone;
21034
- _this.http = http;
21035
- _this.host = host;
21124
+ _this.richTextService = richTextService;
21036
21125
  _this.config = config;
21126
+ _this.host = host;
21037
21127
  _this.autocompleteOptions = {};
21038
21128
  _this.forcePlainTextPasting = false;
21039
21129
  _this.format = 'html';
@@ -21067,28 +21157,11 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
21067
21157
  base: this.config.paths.richText,
21068
21158
  query: ''
21069
21159
  };
21070
- /**
21071
- * We support only one instance in load time
21072
- */
21073
- if (window.tinymce) {
21074
- this.init.call(this);
21075
- }
21076
- else {
21077
- this.loadLib().subscribe(function (lib) {
21078
- appendScript(lib, 'rich-text-editor');
21079
- _this.init.call(_this);
21080
- _this.loadAutoCompleteStyle();
21081
- });
21082
- }
21083
- };
21084
- DatoRichTextDirective.prototype.loadLib = function () {
21085
- return this.http.get(this.config.paths.richText + "/index.js", { responseType: 'text' });
21086
- };
21087
- DatoRichTextDirective.prototype.loadAutoCompleteStyle = function () {
21088
- this.http
21089
- .get(this.config.paths.richText + "/plugins/autocomplete/plugin.css", { responseType: 'text' })
21090
- .subscribe(function (style) {
21091
- appendStyle(style, 'tinymce-autocomplete');
21160
+ this.richTextService
21161
+ .getLib(appendScript, appendStyle)
21162
+ .pipe(untilDestroyed(this))
21163
+ .subscribe(function () {
21164
+ _this.init.call(_this);
21092
21165
  });
21093
21166
  };
21094
21167
  DatoRichTextDirective.prototype.initEditor = function (_, editor) {
@@ -21181,9 +21254,9 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
21181
21254
  var DatoRichTextDirective_1;
21182
21255
  DatoRichTextDirective.ctorParameters = function () { return [
21183
21256
  { type: NgZone },
21184
- { type: HttpClient },
21185
- { type: ElementRef },
21186
- { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] }
21257
+ { type: RichTextService },
21258
+ { type: undefined, decorators: [{ type: Inject, args: [DATO_CORE_CONFIG,] }] },
21259
+ { type: ElementRef }
21187
21260
  ]; };
21188
21261
  __decorate([
21189
21262
  Input(),
@@ -21249,10 +21322,9 @@ var DatoRichTextDirective = /** @class */ (function (_super) {
21249
21322
  }
21250
21323
  ]
21251
21324
  }),
21252
- __param(3, Inject(DATO_CORE_CONFIG)),
21325
+ __param(2, Inject(DATO_CORE_CONFIG)),
21253
21326
  __metadata("design:paramtypes", [NgZone,
21254
- HttpClient,
21255
- ElementRef, Object])
21327
+ RichTextService, Object, ElementRef])
21256
21328
  ], DatoRichTextDirective);
21257
21329
  return DatoRichTextDirective;
21258
21330
  }(BaseCustomControl));
@@ -23775,7 +23847,9 @@ var DatoBreadcrumbsComponent = /** @class */ (function () {
23775
23847
  };
23776
23848
  DatoBreadcrumbsComponent.prototype.initEditableHeader = function () {
23777
23849
  var _this = this;
23778
- this.headerControl.valueChanges.pipe(debounceTime(300), untilDestroyed(this)).subscribe(function (res) {
23850
+ this.headerControl.valueChanges
23851
+ .pipe(debounceTime(300), untilDestroyed(this))
23852
+ .subscribe(function (res) {
23779
23853
  _this.updateEditableText.emit(res);
23780
23854
  _this.cdr.detectChanges();
23781
23855
  });
@@ -25138,7 +25212,7 @@ function fixNgLeaks() {
25138
25212
  };
25139
25213
  }
25140
25214
 
25141
- window.coreVersion = '22.0.4';
25215
+ window.coreVersion = '22.1.5-rc.';
25142
25216
 
25143
25217
  /**
25144
25218
  * @license
@@ -25152,5 +25226,5 @@ window.coreVersion = '22.0.4';
25152
25226
  * Generated bundle index. Do not edit.
25153
25227
  */
25154
25228
 
25155
- 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, 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, 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, copyToClipboard, 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, reject, relativeDateTypes, removeClass, resolveRange, round, searchHighlightCellRenderer, searchResultsGroupSort, searchResultsSort, setAttr, setAttribute, setDimensions, setEmptyFolderClass, setGridConfiguration, setGridModel, setMaxDimensions, setMinDimensions, setStyle, setStyles, 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, 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 };
25229
+ 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, 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, 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, copyToClipboard, 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, reject, relativeDateTypes, removeClass, resolveRange, round, searchHighlightCellRenderer, searchResultsGroupSort, searchResultsSort, setAttr, setAttribute, setDimensions, setEmptyFolderClass, setGridConfiguration, setGridModel, setMaxDimensions, setMinDimensions, setStyle, setStyles, 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, 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, RichTextService as ɵo };
25156
25230
  //# sourceMappingURL=datorama-core.js.map