igniteui-angular 12.3.0-alpha.0 → 12.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/LICENSE +16 -0
  2. package/bundles/igniteui-angular.umd.js +574 -624
  3. package/bundles/igniteui-angular.umd.js.map +1 -1
  4. package/esm2015/igniteui-angular.js +106 -107
  5. package/esm2015/lib/accordion/accordion.component.js +23 -6
  6. package/esm2015/lib/action-strip/action-strip.component.js +19 -2
  7. package/esm2015/lib/action-strip/grid-actions/grid-action-button.component.js +2 -2
  8. package/esm2015/lib/action-strip/grid-actions/grid-editing-actions.component.js +4 -4
  9. package/esm2015/lib/action-strip/grid-actions/grid-pinning-actions.component.js +5 -5
  10. package/esm2015/lib/banner/banner.component.js +1 -1
  11. package/esm2015/lib/combo/combo.common.js +28 -11
  12. package/esm2015/lib/combo/combo.component.js +12 -24
  13. package/esm2015/lib/core/i18n/action-strip-resources.js +4 -0
  14. package/esm2015/lib/core/i18n/resources.js +5 -3
  15. package/esm2015/lib/core/utils.js +11 -1
  16. package/esm2015/lib/data-operations/sorting-strategy.js +12 -3
  17. package/esm2015/lib/directives/radio/radio-group.directive.js +5 -13
  18. package/esm2015/lib/drop-down/drop-down-item.base.js +1 -5
  19. package/esm2015/lib/grids/cell.component.js +1 -17
  20. package/esm2015/lib/grids/column-actions/column-actions.component.js +3 -7
  21. package/esm2015/lib/grids/filtering/base/grid-filtering-row.component.js +12 -4
  22. package/esm2015/lib/grids/filtering/excel-style/excel-style-date-expression.component.js +2 -2
  23. package/esm2015/lib/grids/filtering/excel-style/grid.excel-style-filtering.component.js +2 -2
  24. package/esm2015/lib/grids/grid/grid.component.js +3 -7
  25. package/esm2015/lib/grids/grid-base.directive.js +59 -119
  26. package/esm2015/lib/grids/grid-public-row.js +3 -12
  27. package/esm2015/lib/grids/headers/grid-header-row.component.js +2 -2
  28. package/esm2015/lib/grids/hierarchical-grid/hierarchical-grid.component.js +3 -7
  29. package/esm2015/lib/grids/tree-grid/tree-grid.component.js +5 -9
  30. package/esm2015/lib/icon/icon.component.js +1 -6
  31. package/esm2015/lib/icon/icon.service.js +14 -6
  32. package/esm2015/lib/services/overlay/utilities.js +1 -1
  33. package/esm2015/lib/simple-combo/simple-combo.component.js +132 -37
  34. package/esm2015/lib/time-picker/time-picker.component.js +2 -2
  35. package/esm2015/lib/toast/toast.component.js +3 -6
  36. package/esm2015/public_api.js +1 -1
  37. package/fesm2015/igniteui-angular.js +342 -373
  38. package/fesm2015/igniteui-angular.js.map +1 -1
  39. package/igniteui-angular.d.ts +105 -106
  40. package/igniteui-angular.metadata.json +1 -1
  41. package/lib/accordion/accordion.component.d.ts +1 -0
  42. package/lib/action-strip/action-strip.component.d.ts +10 -0
  43. package/lib/banner/banner.component.d.ts +1 -2
  44. package/lib/combo/combo.common.d.ts +27 -14
  45. package/lib/combo/combo.component.d.ts +9 -19
  46. package/lib/core/i18n/action-strip-resources.d.ts +4 -0
  47. package/lib/core/i18n/resources.d.ts +3 -1
  48. package/lib/core/utils.d.ts +4 -0
  49. package/lib/directives/radio/radio-group.directive.d.ts +4 -4
  50. package/lib/grids/cell.component.d.ts +0 -9
  51. package/lib/grids/column-actions/column-actions.component.d.ts +2 -1
  52. package/lib/grids/grid/grid.component.d.ts +2 -1
  53. package/lib/grids/grid-base.directive.d.ts +54 -37
  54. package/lib/grids/grid-public-row.d.ts +2 -3
  55. package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +2 -1
  56. package/lib/grids/tree-grid/tree-grid.component.d.ts +2 -1
  57. package/lib/icon/icon.component.d.ts +2 -2
  58. package/lib/icon/icon.service.d.ts +3 -1
  59. package/lib/services/overlay/utilities.d.ts +2 -1
  60. package/lib/simple-combo/simple-combo.component.d.ts +20 -3
  61. package/lib/toast/toast.component.d.ts +2 -0
  62. package/migrations/common/filterSourceDirs.d.ts +2 -2
  63. package/migrations/common/filterSourceDirs.js +2 -2
  64. package/migrations/migration-collection.json +0 -5
  65. package/migrations/{update-12_3_0 → update-13_0_0}/changes/members.json +0 -0
  66. package/package.json +1 -1
  67. package/public_api.d.ts +1 -0
  68. package/schematics/tsconfig.tsbuildinfo +1 -1
  69. package/esm2015/lib/core/deprecateDecorators.js +0 -101
  70. package/lib/core/deprecateDecorators.d.ts +0 -20
  71. package/migrations/update-12_3_0/index.d.ts +0 -3
  72. package/migrations/update-12_3_0/index.js +0 -9
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/animations'), require('@angular/core'), require('@angular/forms'), require('@angular/common'), require('rxjs'), require('rxjs/operators'), require('lodash.mergewith'), require('@juggle/resize-observer'), require('jszip'), require('@angular/platform-browser'), require('@angular/common/http'), require('@igniteui/material-icons-extended'), require('igniteui-trial-watermark'), require('uuid')) :
3
3
  typeof define === 'function' && define.amd ? define('igniteui-angular', ['exports', '@angular/animations', '@angular/core', '@angular/forms', '@angular/common', 'rxjs', 'rxjs/operators', 'lodash.mergewith', '@juggle/resize-observer', 'jszip', '@angular/platform-browser', '@angular/common/http', '@igniteui/material-icons-extended', 'igniteui-trial-watermark', 'uuid'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global['igniteui-angular'] = {}, global.ng.animations, global.ng.core, global.ng.forms, global.ng.common, global.rxjs, global.rxjs.operators, global.mergeWith, global.ResizeObserver, global.JSZip, global.ng.platformBrowser, global.ng.common.http, global.materialIconsExtended, null, global.uuid));
5
- }(this, (function (exports, i1, i0, forms, i2, rxjs, operators, mergeWith, resizeObserver, JSZip, i1$1, i2$1, materialIconsExtended, igniteuiTrialWatermark, uuid) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["igniteui-angular"] = {}, global.ng.animations, global.ng.core, global.ng.forms, global.ng.common, global.rxjs, global.rxjs.operators, global.mergeWith, global.ResizeObserver, global.JSZip, global.ng.platformBrowser, global.ng.common.http, global.materialIconsExtended, null, global.uuid));
5
+ })(this, (function (exports, i1, i0, forms, i2, rxjs, operators, mergeWith, resizeObserver, JSZip, i1$1, i2$1, materialIconsExtended, igniteuiTrialWatermark, uuid) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -15,14 +15,12 @@
15
15
  var d = Object.getOwnPropertyDescriptor(e, k);
16
16
  Object.defineProperty(n, k, d.get ? d : {
17
17
  enumerable: true,
18
- get: function () {
19
- return e[k];
20
- }
18
+ get: function () { return e[k]; }
21
19
  });
22
20
  }
23
21
  });
24
22
  }
25
- n['default'] = e;
23
+ n["default"] = e;
26
24
  return Object.freeze(n);
27
25
  }
28
26
 
@@ -34,7 +32,7 @@
34
32
  var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
35
33
  var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
36
34
 
37
- exports.ɵj = void 0;
35
+ exports["ɵj"] = void 0;
38
36
  (function (EaseIn) {
39
37
  EaseIn[EaseIn["Quad"] = "cubic-bezier(0.550, 0.085, 0.680, 0.530)"] = "Quad";
40
38
  EaseIn[EaseIn["Cubic"] = "cubic-bezier(0.550, 0.055, 0.675, 0.190)"] = "Cubic";
@@ -44,8 +42,8 @@
44
42
  EaseIn[EaseIn["Expo"] = "cubic-bezier(0.950, 0.050, 0.795, 0.035)"] = "Expo";
45
43
  EaseIn[EaseIn["Circ"] = "cubic-bezier(0.600, 0.040, 0.980, 0.335)"] = "Circ";
46
44
  EaseIn[EaseIn["Back"] = "cubic-bezier(0.600, -0.280, 0.735, 0.045)"] = "Back";
47
- })(exports.ɵj || (exports.ɵj = {}));
48
- exports.ɵk = void 0;
45
+ })(exports["ɵj"] || (exports["ɵj"] = {}));
46
+ exports["ɵk"] = void 0;
49
47
  (function (EaseOut) {
50
48
  EaseOut[EaseOut["Quad"] = "cubic-bezier(0.250, 0.460, 0.450, 0.940)"] = "Quad";
51
49
  EaseOut[EaseOut["Cubic"] = "cubic-bezier(0.215, 0.610, 0.355, 1.000)"] = "Cubic";
@@ -55,7 +53,7 @@
55
53
  EaseOut[EaseOut["Expo"] = "cubic-bezier(0.190, 1.000, 0.220, 1.000)"] = "Expo";
56
54
  EaseOut[EaseOut["Circ"] = "cubic-bezier(0.075, 0.820, 0.165, 1.000)"] = "Circ";
57
55
  EaseOut[EaseOut["Back"] = "cubic-bezier(0.175, 0.885, 0.320, 1.275)"] = "Back";
58
- })(exports.ɵk || (exports.ɵk = {}));
56
+ })(exports["ɵk"] || (exports["ɵk"] = {}));
59
57
  var EaseInOut;
60
58
  (function (EaseInOut) {
61
59
  EaseInOut[EaseInOut["Quad"] = "cubic-bezier(0.455, 0.030, 0.515, 0.955)"] = "Quad";
@@ -79,7 +77,7 @@
79
77
  var baseParams$3 = {
80
78
  delay: '0s',
81
79
  duration: '350ms',
82
- easing: exports.ɵk.Sine,
80
+ easing: exports["ɵk"].Sine,
83
81
  endOpacity: 1,
84
82
  startOpacity: 0
85
83
  };
@@ -90,7 +88,7 @@
90
88
  params: {
91
89
  delay: '0s',
92
90
  duration: '350ms',
93
- easing: exports.ɵk.Sine,
91
+ easing: exports["ɵk"].Sine,
94
92
  endOpacity: 0,
95
93
  startOpacity: 1
96
94
  }
@@ -115,7 +113,7 @@
115
113
  var baseParams$2 = {
116
114
  delay: '0s',
117
115
  duration: '600ms',
118
- easing: exports.ɵk.Quad,
116
+ easing: exports["ɵk"].Quad,
119
117
  endAngle: 180,
120
118
  endDistance: '0px',
121
119
  rotateX: 1,
@@ -165,7 +163,7 @@
165
163
  var baseInParams$2 = {
166
164
  delay: '0s',
167
165
  duration: '600ms',
168
- easing: exports.ɵk.Quad,
166
+ easing: exports["ɵk"].Quad,
169
167
  endAngle: 0,
170
168
  endOpacity: 1,
171
169
  rotateX: 0,
@@ -176,7 +174,7 @@
176
174
  xPos: 'center',
177
175
  yPos: 'center'
178
176
  };
179
- var baseOutParams$2 = Object.assign(Object.assign({}, baseInParams$2), { easing: exports.ɵj.Quad, endOpacity: 0, startOpacity: 1 });
177
+ var baseOutParams$2 = Object.assign(Object.assign({}, baseInParams$2), { easing: exports["ɵj"].Quad, endOpacity: 0, startOpacity: 1 });
180
178
  var rotateInCenter = i1.animation(baseRecipe$1, {
181
179
  params: Object.assign({}, baseInParams$2)
182
180
  });
@@ -465,7 +463,7 @@
465
463
  delay: '0s',
466
464
  direction: '',
467
465
  duration: '350ms',
468
- easing: exports.ɵk.Quad,
466
+ easing: exports["ɵk"].Quad,
469
467
  endOpacity: 1,
470
468
  fromScale: .5,
471
469
  startOpacity: 0,
@@ -473,7 +471,7 @@
473
471
  xPos: '50%',
474
472
  yPos: '50%'
475
473
  };
476
- var baseOutParams$1 = Object.assign(Object.assign({}, baseInParams$1), { easing: exports.ɵk.Sine, endOpacity: 0, fromScale: 1, startOpacity: 1, toScale: .5 });
474
+ var baseOutParams$1 = Object.assign(Object.assign({}, baseInParams$1), { easing: exports["ɵk"].Sine, endOpacity: 0, fromScale: 1, startOpacity: 1, toScale: .5 });
477
475
  var scaleInCenter = i1.animation(base$2, { params: baseInParams$1 });
478
476
  var scaleInBl = i1.animation(base$2, {
479
477
  params: Object.assign(Object.assign({}, baseInParams$1), { xPos: '0', yPos: '100%' })
@@ -574,7 +572,7 @@
574
572
  var baseInParams = {
575
573
  delay: '0s',
576
574
  duration: '350ms',
577
- easing: exports.ɵk.Quad,
575
+ easing: exports["ɵk"].Quad,
578
576
  endOpacity: 1,
579
577
  fromPosition: 'translateY(-500px)',
580
578
  startOpacity: 0,
@@ -583,7 +581,7 @@
583
581
  var baseOutParams = {
584
582
  delay: '0s',
585
583
  duration: '350ms',
586
- easing: exports.ɵj.Quad,
584
+ easing: exports["ɵj"].Quad,
587
585
  endOpacity: 0,
588
586
  fromPosition: 'translateY(0)',
589
587
  startOpacity: 1,
@@ -594,7 +592,7 @@
594
592
  params: {
595
593
  delay: '0s',
596
594
  duration: '350ms',
597
- easing: exports.ɵk.Quad,
595
+ easing: exports["ɵk"].Quad,
598
596
  endOpacity: 1,
599
597
  fromPosition: 'translateX(-500px)',
600
598
  startOpacity: 0,
@@ -605,7 +603,7 @@
605
603
  params: {
606
604
  delay: '0s',
607
605
  duration: '350ms',
608
- easing: exports.ɵk.Quad,
606
+ easing: exports["ɵk"].Quad,
609
607
  endOpacity: 1,
610
608
  fromPosition: 'translateX(500px)',
611
609
  startOpacity: 0,
@@ -616,7 +614,7 @@
616
614
  params: {
617
615
  delay: '0s',
618
616
  duration: '350ms',
619
- easing: exports.ɵk.Quad,
617
+ easing: exports["ɵk"].Quad,
620
618
  endOpacity: 1,
621
619
  fromPosition: 'translateY(500px)',
622
620
  startOpacity: 0,
@@ -643,7 +641,7 @@
643
641
  params: {
644
642
  delay: '0s',
645
643
  duration: '350ms',
646
- easing: exports.ɵj.Quad,
644
+ easing: exports["ɵj"].Quad,
647
645
  endOpacity: 0,
648
646
  fromPosition: 'translateY(0)',
649
647
  startOpacity: 1,
@@ -682,7 +680,7 @@
682
680
  delay: '0s',
683
681
  direction: 'X',
684
682
  duration: '.5s',
685
- easing: exports.ɵk.Back,
683
+ easing: exports["ɵk"].Back,
686
684
  endAngle: 0,
687
685
  endOpacity: 1,
688
686
  startAngle: -100,
@@ -690,7 +688,7 @@
690
688
  xPos: 'top',
691
689
  yPos: 'center'
692
690
  };
693
- var swingOutParams = Object.assign(Object.assign({}, swingParams), { duration: '.55s', easing: exports.ɵj.Back, endAngle: 70, endOpacity: 0, startAngle: 0, startOpacity: 1 });
691
+ var swingOutParams = Object.assign(Object.assign({}, swingParams), { duration: '.55s', easing: exports["ɵj"].Back, endAngle: 70, endOpacity: 0, startAngle: 0, startOpacity: 1 });
694
692
  var swingInTopFwd = i1.animation(swingBase, {
695
693
  params: Object.assign({}, swingParams)
696
694
  });
@@ -753,17 +751,17 @@
753
751
  var baseParams = {
754
752
  delay: '0s',
755
753
  duration: '350ms',
756
- easing: exports.ɵj.Quad,
754
+ easing: exports["ɵj"].Quad,
757
755
  startOpacity: 0,
758
756
  endOpacity: 1,
759
757
  startHeight: '',
760
758
  endHeight: ''
761
759
  };
762
760
  var growVerIn = i1.animation(base, {
763
- params: Object.assign(Object.assign({}, baseParams), { easing: exports.ɵk.Quad, startOpacity: 0, endOpacity: 1, startHeight: '0px', endHeight: '*' })
761
+ params: Object.assign(Object.assign({}, baseParams), { easing: exports["ɵk"].Quad, startOpacity: 0, endOpacity: 1, startHeight: '0px', endHeight: '*' })
764
762
  });
765
763
  var growVerOut = i1.animation(base, {
766
- params: Object.assign(Object.assign({}, baseParams), { easing: exports.ɵk.Quad, startOpacity: 1, endOpacity: 0, startHeight: '*', endHeight: '0px' })
764
+ params: Object.assign(Object.assign({}, baseParams), { easing: exports["ɵk"].Quad, startOpacity: 1, endOpacity: 0, startHeight: '*', endHeight: '0px' })
767
765
  });
768
766
 
769
767
  /*! *****************************************************************************
@@ -1001,7 +999,7 @@
1001
999
  ar[i] = from[i];
1002
1000
  }
1003
1001
  }
1004
- return to.concat(ar || from);
1002
+ return to.concat(ar || Array.prototype.slice.call(from));
1005
1003
  }
1006
1004
  function __await(v) {
1007
1005
  return this instanceof __await ? (this.v = v, this) : new __await(v);
@@ -1244,7 +1242,7 @@
1244
1242
  fn();
1245
1243
  }
1246
1244
  };
1247
- var ɵ0$5 = run;
1245
+ var ɵ0$4 = run;
1248
1246
  var listener = function (event) { return run(event.data); };
1249
1247
  var ɵ1$1 = listener;
1250
1248
  // Use function instead of arrow function to workaround an issue in codesandbox
@@ -1276,6 +1274,15 @@
1276
1274
  delete queue[id];
1277
1275
  }
1278
1276
 
1277
+ /**
1278
+ * @hidden
1279
+ */
1280
+ var showMessage = function (message, isMessageShown) {
1281
+ if (!isMessageShown && i0.isDevMode()) {
1282
+ console.warn(message);
1283
+ }
1284
+ return true;
1285
+ };
1279
1286
  var mkenum = function (x) { return x; };
1280
1287
  /**
1281
1288
  * Returns the ResizeObserver type or the polyfilled version if not available.
@@ -1335,7 +1342,7 @@
1335
1342
  * @returns Obj1 with merged cloned keys from Obj2
1336
1343
  * @hidden
1337
1344
  */
1338
- var mergeObjects = function (obj1, obj2) { return mergeWith__default['default'](obj1, obj2, function (objValue, srcValue) {
1345
+ var mergeObjects = function (obj1, obj2) { return mergeWith__default["default"](obj1, obj2, function (objValue, srcValue) {
1339
1346
  if (Array.isArray(srcValue)) {
1340
1347
  return objValue = srcValue;
1341
1348
  }
@@ -2112,8 +2119,17 @@
2112
2119
  finally { if (e_1) throw e_1.error; }
2113
2120
  }
2114
2121
  if (expanded) {
2115
- metadata.push.apply(metadata, __spreadArray([], __read(fullResult.metadata.slice(fullResult.metadata.length - group.length))));
2116
- result.push.apply(result, __spreadArray([], __read(fullResult.data.slice(fullResult.data.length - group.length))));
2122
+ // Replaced object destructing as in a single big group scenario
2123
+ // it hits the max number of arguments for a function the underlying JS engine
2124
+ // supports.
2125
+ var j = fullResult.metadata.length - group.length;
2126
+ for (; j < fullResult.metadata.length; j++) {
2127
+ metadata.push(fullResult.metadata[j]);
2128
+ }
2129
+ j = fullResult.data.length - group.length;
2130
+ for (; j < fullResult.data.length; j++) {
2131
+ result.push(fullResult.data[j]);
2132
+ }
2117
2133
  }
2118
2134
  }
2119
2135
  i += group.length;
@@ -8592,7 +8608,7 @@
8592
8608
  */
8593
8609
  get: function () {
8594
8610
  if (this.inEditMode) {
8595
- return mergeWith__default['default'](cloneValue(this._rowData), this.grid.transactions.getAggregatedValue(this.rowID, false), function (objValue, srcValue) {
8611
+ return mergeWith__default["default"](cloneValue(this._rowData), this.grid.transactions.getAggregatedValue(this.rowID, false), function (objValue, srcValue) {
8596
8612
  if (Array.isArray(srcValue)) {
8597
8613
  return objValue = srcValue;
8598
8614
  }
@@ -9139,7 +9155,7 @@
9139
9155
  };
9140
9156
 
9141
9157
  var clear = function (el) { return el === 0 || Boolean(el); };
9142
- var ɵ0$4 = clear;
9158
+ var ɵ0$3 = clear;
9143
9159
  var first = function (arr) { return arr[0]; };
9144
9160
  var ɵ1 = first;
9145
9161
  var last = function (arr) { return arr[arr.length - 1]; };
@@ -18299,124 +18315,6 @@
18299
18315
  },] }
18300
18316
  ];
18301
18317
 
18302
- /**
18303
- * @hidden
18304
- */
18305
- var DeprecateClass = function (message) {
18306
- var isMessageShown = false;
18307
- return function (originalClass) { return /** @class */ (function (_super) {
18308
- __extends(class_1, _super);
18309
- function class_1() {
18310
- var args = [];
18311
- for (var _i = 0; _i < arguments.length; _i++) {
18312
- args[_i] = arguments[_i];
18313
- }
18314
- var _this = this;
18315
- var target = originalClass;
18316
- var targetName = typeof target === 'function' ? target.name : target.constructor.name;
18317
- isMessageShown = showMessage(targetName + ": " + message, isMessageShown);
18318
- _this = _super.apply(this, __spreadArray([], __read(args))) || this;
18319
- return _this;
18320
- }
18321
- return class_1;
18322
- }(originalClass)); };
18323
- };
18324
- /**
18325
- * @hidden
18326
- */
18327
- function DeprecateMethod(message) {
18328
- var isMessageShown = false;
18329
- return function (target, key, descriptor) {
18330
- if (descriptor && descriptor.value) {
18331
- var originalMethod_1 = descriptor.value;
18332
- descriptor.value = function () {
18333
- var e_1, _a;
18334
- var targetName = typeof target === 'function' ? target.name : target.constructor.name;
18335
- isMessageShown = showMessage(targetName + "." + key + ": " + message, isMessageShown);
18336
- var args = [];
18337
- try {
18338
- for (var arguments_1 = __values(arguments), arguments_1_1 = arguments_1.next(); !arguments_1_1.done; arguments_1_1 = arguments_1.next()) {
18339
- var x = arguments_1_1.value;
18340
- args.push(x);
18341
- }
18342
- }
18343
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
18344
- finally {
18345
- try {
18346
- if (arguments_1_1 && !arguments_1_1.done && (_a = arguments_1.return)) _a.call(arguments_1);
18347
- }
18348
- finally { if (e_1) throw e_1.error; }
18349
- }
18350
- return originalMethod_1.call.apply(originalMethod_1, __spreadArray([this], __read(args)));
18351
- };
18352
- return descriptor;
18353
- }
18354
- };
18355
- }
18356
- /**
18357
- * @hidden
18358
- */
18359
- function DeprecateProperty(message) {
18360
- return function (target, key) {
18361
- var isMessageShown = false;
18362
- var messageToDisplay = target.constructor.name + "." + key + ": " + message;
18363
- // if the target already has the property defined
18364
- var originalDescriptor = Object.getOwnPropertyDescriptor(target, key);
18365
- if (originalDescriptor) {
18366
- var getter_1 = originalDescriptor.get;
18367
- var setter_1 = originalDescriptor.set;
18368
- if (getter_1) {
18369
- originalDescriptor.get = function () {
18370
- isMessageShown = showMessage(messageToDisplay, isMessageShown);
18371
- return getter_1.call(this);
18372
- };
18373
- }
18374
- if (setter_1) {
18375
- originalDescriptor.set = function (value) {
18376
- isMessageShown = showMessage(messageToDisplay, isMessageShown);
18377
- setter_1.call(this, value);
18378
- };
18379
- }
18380
- return originalDescriptor;
18381
- }
18382
- // the target doesn't contain a descriptor for that property, so create one
18383
- // use backing field to set/get the value of the property to ensure there won't be infinite recursive calls
18384
- var newKey = generateUniqueKey(target, key);
18385
- Object.defineProperty(target, key, {
18386
- configurable: true,
18387
- enumerable: true,
18388
- set: function (value) {
18389
- isMessageShown = showMessage(messageToDisplay, isMessageShown);
18390
- this[newKey] = value;
18391
- },
18392
- get: function () {
18393
- isMessageShown = showMessage(messageToDisplay, isMessageShown);
18394
- return this[newKey];
18395
- }
18396
- });
18397
- };
18398
- }
18399
- /**
18400
- * @hidden
18401
- */
18402
- var generateUniqueKey = function (target, key) {
18403
- var newKey = '_' + key;
18404
- while (target.hasOwnProperty(newKey)) {
18405
- newKey = '_' + newKey;
18406
- }
18407
- return newKey;
18408
- };
18409
- var ɵ0$3 = generateUniqueKey;
18410
- /**
18411
- * @hidden
18412
- */
18413
- var showMessage = function (message, isMessageShown) {
18414
- if (!isMessageShown && i0.isDevMode()) {
18415
- console.warn(message);
18416
- }
18417
- return true;
18418
- };
18419
-
18420
18318
  var NEXT_ID$t = 0;
18421
18319
  /**
18422
18320
  * The `<igx-drop-down-item>` is a container intended for row items in
@@ -18492,7 +18390,6 @@
18492
18390
  };
18493
18391
 
18494
18392
  var NEXT_ID$s = 0;
18495
- var warningShown = false;
18496
18393
  /**
18497
18394
  * An abstract class defining a drop-down item:
18498
18395
  * With properties / styles for selection, highlight, height
@@ -18566,8 +18463,6 @@
18566
18463
  */
18567
18464
  get: function () {
18568
18465
  if (this._index === null) {
18569
- warningShown = showMessage('IgxDropDownItemBaseDirective: Automatic index is deprecated.' +
18570
- 'Bind in the template instead using `<igx-drop-down-item [index]="i"` instead.`', warningShown);
18571
18466
  return this.itemIndex;
18572
18467
  }
18573
18468
  return this._index;
@@ -20980,16 +20875,20 @@
20980
20875
  * ```
20981
20876
  */
20982
20877
  var IgxIconService = /** @class */ (function () {
20983
- function IgxIconService(_sanitizer, _httpClient, _document) {
20878
+ function IgxIconService(_sanitizer, _httpClient, _platformUtil, _document) {
20879
+ var _a;
20984
20880
  this._sanitizer = _sanitizer;
20985
20881
  this._httpClient = _httpClient;
20882
+ this._platformUtil = _platformUtil;
20986
20883
  this._document = _document;
20987
20884
  this._family = 'material-icons';
20988
20885
  this._familyAliases = new Map();
20989
20886
  this._cachedSvgIcons = new Map();
20990
20887
  this._iconLoaded = new rxjs.Subject();
20991
- this._domParser = new DOMParser();
20992
20888
  this.iconLoaded = this._iconLoaded.asObservable();
20889
+ if ((_a = this._platformUtil) === null || _a === void 0 ? void 0 : _a.isBrowser) {
20890
+ this._domParser = new DOMParser();
20891
+ }
20993
20892
  }
20994
20893
  Object.defineProperty(IgxIconService.prototype, "defaultFamily", {
20995
20894
  /**
@@ -21122,8 +21021,9 @@
21122
21021
  */
21123
21022
  IgxIconService.prototype.cacheSvgIcon = function (name, value, family, stripMeta) {
21124
21023
  if (family === void 0) { family = this._family; }
21024
+ var _a;
21125
21025
  family = !!family ? family : this._family;
21126
- if (name && value) {
21026
+ if (((_a = this._platformUtil) === null || _a === void 0 ? void 0 : _a.isBrowser) && name && value) {
21127
21027
  var doc = this._domParser.parseFromString(value, 'image/svg+xml');
21128
21028
  var svg = doc.querySelector('svg');
21129
21029
  if (!this._cachedSvgIcons.has(family)) {
@@ -21149,7 +21049,7 @@
21149
21049
  };
21150
21050
  return IgxIconService;
21151
21051
  }());
21152
- IgxIconService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IgxIconService_Factory() { return new IgxIconService(i0__namespace.ɵɵinject(i1__namespace$1.DomSanitizer, 8), i0__namespace.ɵɵinject(i2__namespace$1.HttpClient, 8), i0__namespace.ɵɵinject(i2__namespace.DOCUMENT, 8)); }, token: IgxIconService, providedIn: "root" });
21052
+ IgxIconService.ɵprov = i0__namespace.ɵɵdefineInjectable({ factory: function IgxIconService_Factory() { return new IgxIconService(i0__namespace.ɵɵinject(i1__namespace$1.DomSanitizer, 8), i0__namespace.ɵɵinject(i2__namespace$1.HttpClient, 8), i0__namespace.ɵɵinject(PlatformUtil, 8), i0__namespace.ɵɵinject(i2__namespace.DOCUMENT, 8)); }, token: IgxIconService, providedIn: "root" });
21153
21053
  IgxIconService.decorators = [
21154
21054
  { type: i0.Injectable, args: [{
21155
21055
  providedIn: 'root'
@@ -21158,6 +21058,7 @@
21158
21058
  IgxIconService.ctorParameters = function () { return [
21159
21059
  { type: i1$1.DomSanitizer, decorators: [{ type: i0.Optional }] },
21160
21060
  { type: i2$1.HttpClient, decorators: [{ type: i0.Optional }] },
21061
+ { type: PlatformUtil, decorators: [{ type: i0.Optional }] },
21161
21062
  { type: undefined, decorators: [{ type: i0.Optional }, { type: i0.Inject, args: [i2.DOCUMENT,] }] }
21162
21063
  ]; };
21163
21064
 
@@ -21420,9 +21321,6 @@
21420
21321
  getInactive: [{ type: i0.HostBinding, args: ['class.igx-icon--inactive',] }],
21421
21322
  getColor: [{ type: i0.HostBinding, args: ['style.color',] }]
21422
21323
  };
21423
- __decorate([
21424
- DeprecateProperty('`color` is deprecated.')
21425
- ], IgxIconComponent.prototype, "color", void 0);
21426
21324
 
21427
21325
  /**
21428
21326
  * @hidden
@@ -21713,6 +21611,10 @@
21713
21611
  igx_collapse: 'Collapse',
21714
21612
  };
21715
21613
 
21614
+ var ActionStripResourceStringsEN = {
21615
+ igx_action_strip_button_more_title: 'More'
21616
+ };
21617
+
21716
21618
  /**
21717
21619
  * @hidden
21718
21620
  * IF YOU EDIT THIS OBJECT, DO NOT FORGET TO UPDATE
@@ -21736,7 +21638,8 @@
21736
21638
  CarouselResStrings: cloneValue(CarouselResourceStringsEN),
21737
21639
  ListResStrings: cloneValue(ListResourceStringsEN),
21738
21640
  InputResStrings: cloneValue(InputResourceStringsEN),
21739
- TreeResStrings: cloneValue(TreeResourceStringsEN)
21641
+ TreeResStrings: cloneValue(TreeResourceStringsEN),
21642
+ ActionStripResourceStrings: cloneValue(ActionStripResourceStringsEN)
21740
21643
  };
21741
21644
  var updateResourceStrings = function (currentStrings, newStrings) {
21742
21645
  var e_1, _a;
@@ -21781,7 +21684,7 @@
21781
21684
  /**
21782
21685
  * Returns current resource strings for all components
21783
21686
  */
21784
- var getCurrentResourceStrings = function () { return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, CurrentResourceStrings.CalendarResStrings), CurrentResourceStrings.CarouselResStrings), CurrentResourceStrings.ChipResStrings), CurrentResourceStrings.DatePickerResourceStrings), CurrentResourceStrings.DateRangePickerResStrings), CurrentResourceStrings.GridResStrings), CurrentResourceStrings.InputResStrings), CurrentResourceStrings.ListResStrings), CurrentResourceStrings.PaginatorResStrings), CurrentResourceStrings.TimePickerResStrings), CurrentResourceStrings.TreeResStrings)); };
21687
+ var getCurrentResourceStrings = function () { return (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, CurrentResourceStrings.CalendarResStrings), CurrentResourceStrings.CarouselResStrings), CurrentResourceStrings.ChipResStrings), CurrentResourceStrings.DatePickerResourceStrings), CurrentResourceStrings.DateRangePickerResStrings), CurrentResourceStrings.GridResStrings), CurrentResourceStrings.InputResStrings), CurrentResourceStrings.ListResStrings), CurrentResourceStrings.PaginatorResStrings), CurrentResourceStrings.TimePickerResStrings), CurrentResourceStrings.TreeResStrings), CurrentResourceStrings.ActionStripResourceStrings)); };
21785
21688
 
21786
21689
  var IgxInputGroupTheme = mkenum({
21787
21690
  Material: 'material',
@@ -26111,10 +26014,10 @@
26111
26014
  });
26112
26015
  Object.defineProperty(IgxRadioGroupDirective.prototype, "disabled", {
26113
26016
  /**
26114
- * An @Input property that allows you to disable the radio group. By default it's false.
26115
- *
26116
26017
  * @deprecated in version 12.2.0
26117
26018
  *
26019
+ * An input property that allows you to disable the radio group. By default it's false.
26020
+ *
26118
26021
  * @example
26119
26022
  * ```html
26120
26023
  * <igx-radio-group disabled></igx-radio-group>
@@ -26132,10 +26035,10 @@
26132
26035
  });
26133
26036
  Object.defineProperty(IgxRadioGroupDirective.prototype, "labelPosition", {
26134
26037
  /**
26135
- * Sets/gets the position of the `label` in the child radio buttons.
26136
- *
26137
26038
  * @deprecated in version 12.2.0
26138
26039
  *
26040
+ * Sets/gets the position of the `label` in the child radio buttons.
26041
+ *
26139
26042
  * @remarks
26140
26043
  * If not set, `labelPosition` will have value `"after"`.
26141
26044
  *
@@ -26403,12 +26306,6 @@
26403
26306
  vertical: [{ type: i0.HostBinding, args: ['class.igx-radio-group--vertical',] }],
26404
26307
  alignment: [{ type: i0.Input }]
26405
26308
  };
26406
- __decorate([
26407
- DeprecateProperty('`disabled` is deprecated.')
26408
- ], IgxRadioGroupDirective.prototype, "disabled", null);
26409
- __decorate([
26410
- DeprecateProperty('`labelPosition` is deprecated.')
26411
- ], IgxRadioGroupDirective.prototype, "labelPosition", null);
26412
26309
  /**
26413
26310
  * @hidden
26414
26311
  */
@@ -28827,7 +28724,7 @@
28827
28724
  IgxGridActionButtonComponent.decorators = [
28828
28725
  { type: i0.Component, args: [{
28829
28726
  selector: 'igx-grid-action-button',
28830
- template: "<ng-container *ngIf=\"!asMenuItem\">\n <button igxButton=\"icon\" igxRipple (click)=\"handleClick($event)\" (mousedown)=\"preventEvent($event)\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n </button>\n</ng-container>\n\n<ng-template #menuItemTemplate>\n <ng-container *ngIf=\"asMenuItem\">\n <div #container [className]='containerClass'>\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n <label igxLabel>{{labelText}}</label>\n </div>\n </ng-container>\n</ng-template>"
28727
+ template: "<ng-container *ngIf=\"!asMenuItem\">\n <button [title]=\"labelText\" igxButton=\"icon\" igxRipple (click)=\"handleClick($event)\" (mousedown)=\"preventEvent($event)\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n </button>\n</ng-container>\n\n<ng-template #menuItemTemplate>\n <ng-container *ngIf=\"asMenuItem\">\n <div #container [className]='containerClass'>\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n <label igxLabel>{{labelText}}</label>\n </div>\n </ng-container>\n</ng-template>"
28831
28728
  },] }
28832
28729
  ];
28833
28730
  IgxGridActionButtonComponent.propDecorators = {
@@ -29067,8 +28964,8 @@
29067
28964
  * @internal
29068
28965
  */
29069
28966
  IgxGridEditingActionsComponent.prototype.registerIcons = function () {
29070
- this.iconService.addSvgIconFromText(materialIconsExtended.addRow.name, materialIconsExtended.addRow.value, 'imx-icons');
29071
- this.iconService.addSvgIconFromText(materialIconsExtended.addChild.name, materialIconsExtended.addChild.value, 'imx-icons');
28967
+ this.iconService.addSvgIconFromText(materialIconsExtended.addRow.name, materialIconsExtended.addRow.value, 'imx-icons', true);
28968
+ this.iconService.addSvgIconFromText(materialIconsExtended.addChild.name, materialIconsExtended.addChild.value, 'imx-icons', true);
29072
28969
  };
29073
28970
  return IgxGridEditingActionsComponent;
29074
28971
  }(IgxGridActionsBaseDirective));
@@ -29209,10 +29106,10 @@
29209
29106
  var context = this.strip.context;
29210
29107
  var grid = context.grid;
29211
29108
  if (grid) {
29212
- this.iconService.addSvgIconFromText(materialIconsExtended.pinLeft.name, materialIconsExtended.pinLeft.value, 'imx-icons');
29213
- this.iconService.addSvgIconFromText(materialIconsExtended.unpinLeft.name, materialIconsExtended.unpinLeft.value, 'imx-icons');
29214
- this.iconService.addSvgIconFromText(materialIconsExtended.jumpDown.name, materialIconsExtended.jumpDown.value, 'imx-icons');
29215
- this.iconService.addSvgIconFromText(materialIconsExtended.jumpUp.name, materialIconsExtended.jumpDown.value, 'imx-icons');
29109
+ this.iconService.addSvgIconFromText(materialIconsExtended.pinLeft.name, materialIconsExtended.pinLeft.value, 'imx-icons', true);
29110
+ this.iconService.addSvgIconFromText(materialIconsExtended.unpinLeft.name, materialIconsExtended.unpinLeft.value, 'imx-icons', true);
29111
+ this.iconService.addSvgIconFromText(materialIconsExtended.jumpDown.name, materialIconsExtended.jumpDown.value, 'imx-icons', true);
29112
+ this.iconService.addSvgIconFromText(materialIconsExtended.jumpUp.name, materialIconsExtended.jumpDown.value, 'imx-icons', true);
29216
29113
  }
29217
29114
  };
29218
29115
  return IgxGridPinningActionsComponent;
@@ -29300,6 +29197,25 @@
29300
29197
  enumerable: false,
29301
29198
  configurable: true
29302
29199
  });
29200
+ Object.defineProperty(IgxActionStripComponent.prototype, "resourceStrings", {
29201
+ get: function () {
29202
+ if (!this._resourceStrings) {
29203
+ this._resourceStrings = CurrentResourceStrings.ActionStripResourceStrings;
29204
+ }
29205
+ return this._resourceStrings;
29206
+ },
29207
+ /**
29208
+ * Gets/Sets the resource strings.
29209
+ *
29210
+ * @remarks
29211
+ * By default it uses EN resources.
29212
+ */
29213
+ set: function (value) {
29214
+ this._resourceStrings = Object.assign({}, this._resourceStrings, value);
29215
+ },
29216
+ enumerable: false,
29217
+ configurable: true
29218
+ });
29303
29219
  Object.defineProperty(IgxActionStripComponent.prototype, "display", {
29304
29220
  /**
29305
29221
  * Getter for the 'display' property of the current `IgxActionStrip`
@@ -29444,7 +29360,7 @@
29444
29360
  IgxActionStripComponent.decorators = [
29445
29361
  { type: i0.Component, args: [{
29446
29362
  selector: 'igx-action-strip',
29447
- template: "<div class=\"igx-action-strip__actions\">\n <ng-content #content></ng-content>\n <ng-container *ngIf=\"menuItems.length > 0\">\n <button\n igxButton=\"icon\"\n igxRipple\n [igxToggleAction]=\"dropdown\"\n [overlaySettings]=\"menuOverlaySettings\"\n (click)=\"$event.stopPropagation()\"\n [igxDropDownItemNavigation]=\"dropdown\"\n >\n <igx-icon>more_vert</igx-icon>\n </button>\n </ng-container>\n <igx-drop-down #dropdown [displayDensity]=\"displayDensity\">\n <igx-drop-down-item\n *ngFor=\"let item of menuItems\"\n class=\"igx-action-strip__menu-item\"\n >\n <div class=\"igx-drop-down__item-template\">\n <ng-container\n *ngTemplateOutlet=\"\n item.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </div>\n </igx-drop-down-item>\n </igx-drop-down>\n</div>\n"
29363
+ template: "<div class=\"igx-action-strip__actions\">\n <ng-content #content></ng-content>\n <ng-container *ngIf=\"menuItems.length > 0\">\n <button\n igxButton=\"icon\"\n igxRipple\n [igxToggleAction]=\"dropdown\"\n [overlaySettings]=\"menuOverlaySettings\"\n (click)=\"$event.stopPropagation()\"\n [title]=\"resourceStrings.igx_action_strip_button_more_title\"\n [igxDropDownItemNavigation]=\"dropdown\"\n >\n <igx-icon>more_vert</igx-icon>\n </button>\n </ng-container>\n <igx-drop-down #dropdown [displayDensity]=\"displayDensity\">\n <igx-drop-down-item\n *ngFor=\"let item of menuItems\"\n class=\"igx-action-strip__menu-item\"\n >\n <div class=\"igx-drop-down__item-template\">\n <ng-container\n *ngTemplateOutlet=\"\n item.templateRef;\n context: { $implicit: item }\n \"\n ></ng-container>\n </div>\n </igx-drop-down-item>\n </igx-drop-down>\n</div>\n"
29448
29364
  },] }
29449
29365
  ];
29450
29366
  IgxActionStripComponent.ctorParameters = function () { return [
@@ -29459,6 +29375,7 @@
29459
29375
  actionButtons: [{ type: i0.ContentChildren, args: [IgxGridActionsBaseDirective,] }],
29460
29376
  hidden: [{ type: i0.Input }],
29461
29377
  hostClass: [{ type: i0.Input, args: ['class',] }],
29378
+ resourceStrings: [{ type: i0.Input }],
29462
29379
  menu: [{ type: i0.ViewChild, args: ['dropdown',] }],
29463
29380
  display: [{ type: i0.HostBinding, args: ['style.display',] }],
29464
29381
  hostClasses: [{ type: i0.HostBinding, args: ['attr.class',] }]
@@ -30899,6 +30816,7 @@
30899
30816
  IgxAccordionComponent.prototype.ngAfterViewInit = function () {
30900
30817
  var _this = this;
30901
30818
  this._expandedPanels = new Set(this._panels.filter(function (panel) { return !panel.collapsed; }));
30819
+ this._expandingPanels = new Set();
30902
30820
  this._panels.changes.pipe(operators.takeUntil(this._destroy$)).subscribe(function () {
30903
30821
  _this.subToChanges();
30904
30822
  });
@@ -31003,6 +30921,7 @@
31003
30921
  this._panels.forEach(function (panel) {
31004
30922
  panel.contentExpanded.pipe(operators.takeUntil(_this._unsubChildren$)).subscribe(function (args) {
31005
30923
  _this._expandedPanels.add(args.owner);
30924
+ _this._expandingPanels.delete(args.owner);
31006
30925
  var evArgs = Object.assign(Object.assign({}, args), { owner: _this, panel: args.owner });
31007
30926
  _this.panelExpanded.emit(evArgs);
31008
30927
  });
@@ -31010,21 +30929,36 @@
31010
30929
  if (args.cancel) {
31011
30930
  return;
31012
30931
  }
30932
+ var evArgs = Object.assign(Object.assign({}, args), { owner: _this, panel: args.owner });
30933
+ _this.panelExpanding.emit(evArgs);
30934
+ if (evArgs.cancel) {
30935
+ args.cancel = true;
30936
+ return;
30937
+ }
31013
30938
  if (_this.singleBranchExpand) {
31014
30939
  _this._expandedPanels.forEach(function (p) {
31015
30940
  if (!p.header.disabled) {
31016
30941
  p.collapse();
31017
30942
  }
31018
30943
  });
31019
- }
31020
- var evArgs = Object.assign(Object.assign({}, args), { owner: _this, panel: args.owner });
31021
- _this.panelExpanding.emit(evArgs);
31022
- if (evArgs.cancel) {
31023
- args.cancel = true;
30944
+ _this._expandingPanels.forEach(function (p) {
30945
+ var _a, _b;
30946
+ if (!p.header.disabled) {
30947
+ if (!p.animationSettings.closeAnimation) {
30948
+ (_a = p.openAnimationPlayer) === null || _a === void 0 ? void 0 : _a.reset();
30949
+ }
30950
+ if (!p.animationSettings.openAnimation) {
30951
+ (_b = p.closeAnimationPlayer) === null || _b === void 0 ? void 0 : _b.reset();
30952
+ }
30953
+ p.collapse();
30954
+ }
30955
+ });
30956
+ _this._expandingPanels.add(args.owner);
31024
30957
  }
31025
30958
  });
31026
30959
  panel.contentCollapsed.pipe(operators.takeUntil(_this._unsubChildren$)).subscribe(function (args) {
31027
30960
  _this._expandedPanels.delete(args.owner);
30961
+ _this._expandingPanels.delete(args.owner);
31028
30962
  var evArgs = Object.assign(Object.assign({}, args), { owner: _this, panel: args.owner });
31029
30963
  _this.panelCollapsed.emit(evArgs);
31030
30964
  });
@@ -39114,6 +39048,20 @@
39114
39048
  _this._displayDensityOptions = _displayDensityOptions;
39115
39049
  _this._inputGroupType = _inputGroupType;
39116
39050
  _this._injector = _injector;
39051
+ /**
39052
+ * Defines whether the caseSensitive icon should be shown in the search input
39053
+ *
39054
+ * ```typescript
39055
+ * // get
39056
+ * let myComboShowSearchCaseIcon = this.combo.showSearchCaseIcon;
39057
+ * ```
39058
+ *
39059
+ * ```html
39060
+ * <!--set-->
39061
+ * <igx-combo [showSearchCaseIcon]='true'></igx-combo>
39062
+ * ```
39063
+ */
39064
+ _this.showSearchCaseIcon = false;
39117
39065
  /**
39118
39066
  * Set custom overlay settings that control how the combo's list of items is displayed.
39119
39067
  * Set:
@@ -39173,6 +39121,13 @@
39173
39121
  * ```
39174
39122
  */
39175
39123
  _this.valueKey = null;
39124
+ /**
39125
+ * An @Input property that enabled/disables filtering in the list. The default is `true`.
39126
+ * ```html
39127
+ * <igx-combo [filterable]="false">
39128
+ * ```
39129
+ */
39130
+ _this.filterable = true;
39176
39131
  /** @hidden @internal */
39177
39132
  _this.cssClass = 'igx-combo'; // Independent of display density for the time being
39178
39133
  /** @hidden @internal */
@@ -39184,15 +39139,6 @@
39184
39139
  * ```
39185
39140
  */
39186
39141
  _this.disabled = false;
39187
- /**
39188
- * Emitted when item selection is changing, before the selection completes
39189
- *
39190
- * ```html
39191
- * <igx-combo (selectionChanging)='handleSelection()'></igx-combo>
39192
- * ```
39193
- */
39194
- // TODO: any for old/new selection?
39195
- _this.selectionChanging = new i0.EventEmitter();
39196
39142
  /**
39197
39143
  * Emitted before the dropdown is opened
39198
39144
  *
@@ -40017,6 +39963,10 @@
40017
39963
  }
40018
39964
  }
40019
39965
  };
39966
+ /** @hidden @internal */
39967
+ IgxComboBaseDirective.prototype.toggleCaseSensitive = function () {
39968
+ this.filteringOptions = { caseSensitive: !this.filteringOptions.caseSensitive };
39969
+ };
40020
39970
  /** if there is a valueKey - map the keys to data items, else - just return the keys */
40021
39971
  IgxComboBaseDirective.prototype.convertKeysToItems = function (keys) {
40022
39972
  var _this = this;
@@ -40115,6 +40065,7 @@
40115
40065
  { type: i0.Injector, decorators: [{ type: i0.Optional }] }
40116
40066
  ]; };
40117
40067
  IgxComboBaseDirective.propDecorators = {
40068
+ showSearchCaseIcon: [{ type: i0.Input }],
40118
40069
  overlaySettings: [{ type: i0.Input }],
40119
40070
  id: [{ type: i0.HostBinding, args: ['attr.id',] }, { type: i0.Input }],
40120
40071
  width: [{ type: i0.HostBinding, args: ['style.width',] }, { type: i0.Input }],
@@ -40127,6 +40078,7 @@
40127
40078
  valueKey: [{ type: i0.Input }],
40128
40079
  displayKey: [{ type: i0.Input }],
40129
40080
  groupKey: [{ type: i0.Input }],
40081
+ filterable: [{ type: i0.Input }],
40130
40082
  ariaLabelledBy: [{ type: i0.Input }, { type: i0.HostBinding, args: ['attr.aria-labelledby',] }],
40131
40083
  cssClass: [{ type: i0.HostBinding, args: ['class.igx-combo',] }],
40132
40084
  role: [{ type: i0.HostBinding, args: ["attr.role",] }],
@@ -40135,7 +40087,6 @@
40135
40087
  ariaOwns: [{ type: i0.HostBinding, args: ['attr.aria-owns',] }],
40136
40088
  disabled: [{ type: i0.Input }],
40137
40089
  type: [{ type: i0.Input }],
40138
- selectionChanging: [{ type: i0.Output }],
40139
40090
  opening: [{ type: i0.Output }],
40140
40091
  opened: [{ type: i0.Output }],
40141
40092
  closing: [{ type: i0.Output }],
@@ -40559,20 +40510,6 @@
40559
40510
  _this._displayDensityOptions = _displayDensityOptions;
40560
40511
  _this._inputGroupType = _inputGroupType;
40561
40512
  _this._injector = _injector;
40562
- /**
40563
- * Defines whether the caseSensitive icon should be shown in the search input
40564
- *
40565
- * ```typescript
40566
- * // get
40567
- * let myComboShowSearchCaseIcon = this.combo.showSearchCaseIcon;
40568
- * ```
40569
- *
40570
- * ```html
40571
- * <!--set-->
40572
- * <igx-combo [showSearchCaseIcon]='true'></igx-combo>
40573
- * ```
40574
- */
40575
- _this.showSearchCaseIcon = false;
40576
40513
  /**
40577
40514
  * An @Input property that controls whether the combo's search box
40578
40515
  * should be focused after the `opened` event is called
@@ -40600,6 +40537,14 @@
40600
40537
  * ```
40601
40538
  */
40602
40539
  _this.searchPlaceholder = 'Enter a Search Term';
40540
+ /**
40541
+ * Emitted when item selection is changing, before the selection completes
40542
+ *
40543
+ * ```html
40544
+ * <igx-combo (selectionChanging)='handleSelection()'></igx-combo>
40545
+ * ```
40546
+ */
40547
+ _this.selectionChanging = new i0.EventEmitter();
40603
40548
  /**
40604
40549
  * @hidden @internal
40605
40550
  */
@@ -40797,12 +40742,6 @@
40797
40742
  this.deselect([itemID], event);
40798
40743
  }
40799
40744
  };
40800
- /**
40801
- * @hidden @internal
40802
- */
40803
- IgxComboComponent.prototype.toggleCaseSensitive = function () {
40804
- this.filteringOptions = { caseSensitive: !this.filteringOptions.caseSensitive };
40805
- };
40806
40745
  /** @hidden @internal */
40807
40746
  IgxComboComponent.prototype.handleOpened = function () {
40808
40747
  this.triggerCheck();
@@ -40878,7 +40817,7 @@
40878
40817
  IgxComboComponent.decorators = [
40879
40818
  { type: i0.Component, args: [{
40880
40819
  selector: 'igx-combo',
40881
- template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [type]=\"type\" (click)=\"onClick($event)\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n <input igxInput #comboInput name=\"comboInput\" type=\"text\" [value]=\"value\" readonly [attr.placeholder]=\"placeholder\"\n [disabled]=\"disabled\" (blur)=\"onBlur()\" />\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix\"></ng-content>\n </ng-container>\n <igx-suffix *ngIf=\"value.length\" aria-label=\"Clear Selection\" class=\"igx-combo__clear-button\"\n (click)=\"handleClearItems($event)\">\n <ng-container *ngIf=\"clearIconTemplate\">\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!clearIconTemplate\">\n clear\n </igx-icon>\n </igx-suffix>\n <igx-suffix class=\"igx-combo__toggle-button\">\n <ng-container *ngIf=\"toggleIconTemplate\">\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: this.collapsed}\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!toggleIconTemplate\">\n {{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}\n </igx-icon>\n </igx-suffix>\n</igx-input-group>\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\" [displayDensity]=\"displayDensity\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\">\n <igx-input-group *ngIf=\"displaySearchInput\" [displayDensity]=\"displayDensity\" theme=\"material\" class=\"igx-combo__search\">\n <input class=\"igx-combo-input\" igxInput #searchInput name=\"searchInput\" autocomplete=\"off\" type=\"text\"\n [(ngModel)]=\"searchValue\" (ngModelChange)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (focus)=\"dropdown.onBlur($event)\" [attr.placeholder]=\"searchPlaceholder\"\n aria-autocomplete=\"both\" [attr.aria-owns]=\"dropdown.id\" [attr.aria-labelledby]=\"ariaLabelledBy\" />\n <igx-suffix *ngIf=\"showSearchCaseIcon\">\n <igx-icon family=\"imx-icons\" name=\"case-sensitive\" [active]=\"filteringOptions.caseSensitive\"\n (click)=\"toggleCaseSensitive()\">\n </igx-icon>\n </igx-suffix>\n </igx-input-group>\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.px]=\"itemsMaxHeight\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" role=\"listbox\" [attr.id]=\"dropdown.id\">\n <igx-combo-item role=\"option\" [itemHeight]='itemHeight' *igxFor=\"let item of data\n | comboFiltering:filterValue:displayKey:filteringOptions:filterable\n | comboGrouping:groupKey:valueKey;\n index as rowIndex; containerSize: itemsMaxHeight; scrollOrientation: 'vertical'; itemSize: itemHeight\"\n [value]=\"item\" [isHeader]=\"item.isHeader\" [index]=\"rowIndex\">\n <ng-container *ngIf=\"item.isHeader\">\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!item.isHeader\">\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n </ng-container>\n </igx-combo-item>\n </div>\n <div class=\"igx-combo__add\" *ngIf=\"filteredData.length === 0 || isAddButtonVisible()\">\n <div class=\"igx-combo__empty\" *ngIf=\"filteredData.length === 0\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n <igx-combo-add-item [itemHeight]=\"itemHeight\" *ngIf=\"isAddButtonVisible()\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n aria-label=\"Add Item\" [index]=\"virtualScrollContainer.igxForOf.length\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n </div>\n <ng-container *ngTemplateOutlet=\"footerTemplate\">\n </ng-container>\n</igx-combo-drop-down>\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>The list is empty</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button igxButton=\"flat\" igxRipple>Add item</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n",
40820
+ template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [type]=\"type\" (click)=\"onClick($event)\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n <input igxInput #comboInput name=\"comboInput\" type=\"text\" [value]=\"value\" readonly [attr.placeholder]=\"placeholder\"\n [disabled]=\"disabled\" (blur)=\"onBlur()\" />\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix\"></ng-content>\n </ng-container>\n <igx-suffix *ngIf=\"value.length\" aria-label=\"Clear Selection\" class=\"igx-combo__clear-button\"\n (click)=\"handleClearItems($event)\">\n <ng-container *ngIf=\"clearIconTemplate\">\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!clearIconTemplate\">\n clear\n </igx-icon>\n </igx-suffix>\n <igx-suffix class=\"igx-combo__toggle-button\">\n <ng-container *ngIf=\"toggleIconTemplate\">\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: this.collapsed}\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!toggleIconTemplate\">\n {{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}\n </igx-icon>\n </igx-suffix>\n</igx-input-group>\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\" [displayDensity]=\"displayDensity\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\">\n <igx-input-group *ngIf=\"displaySearchInput\" [displayDensity]=\"displayDensity\" theme=\"material\" class=\"igx-combo__search\">\n <input class=\"igx-combo-input\" igxInput #searchInput name=\"searchInput\" autocomplete=\"off\" type=\"text\"\n [(ngModel)]=\"searchValue\" (ngModelChange)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (focus)=\"dropdown.onBlur($event)\" [attr.placeholder]=\"searchPlaceholder\"\n aria-autocomplete=\"both\" [attr.aria-owns]=\"dropdown.id\" [attr.aria-labelledby]=\"ariaLabelledBy\" />\n <igx-suffix *ngIf=\"showSearchCaseIcon\">\n <igx-icon family=\"imx-icons\" name=\"case-sensitive\" [active]=\"filteringOptions.caseSensitive\"\n (click)=\"toggleCaseSensitive()\">\n </igx-icon>\n </igx-suffix>\n </igx-input-group>\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.px]=\"itemsMaxHeight\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" role=\"listbox\" [attr.id]=\"dropdown.id\">\n <igx-combo-item role=\"option\" [itemHeight]='itemHeight' *igxFor=\"let item of data\n | comboFiltering:filterValue:displayKey:filteringOptions:filterable\n | comboGrouping:groupKey:valueKey\n index as rowIndex; containerSize: itemsMaxHeight; scrollOrientation: 'vertical'; itemSize: itemHeight\"\n [value]=\"item\" [isHeader]=\"item.isHeader\" [index]=\"rowIndex\">\n <ng-container *ngIf=\"item.isHeader\">\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!item.isHeader\">\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n </ng-container>\n </igx-combo-item>\n </div>\n <div class=\"igx-combo__add\" *ngIf=\"filteredData.length === 0 || isAddButtonVisible()\">\n <div class=\"igx-combo__empty\" *ngIf=\"filteredData.length === 0\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n <igx-combo-add-item [itemHeight]=\"itemHeight\" *ngIf=\"isAddButtonVisible()\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n aria-label=\"Add Item\" [index]=\"virtualScrollContainer.igxForOf.length\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n </div>\n <ng-container *ngTemplateOutlet=\"footerTemplate\">\n </ng-container>\n</igx-combo-drop-down>\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>The list is empty</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button igxButton=\"flat\" igxRipple>Add item</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n",
40882
40821
  providers: [
40883
40822
  IgxComboAPIService,
40884
40823
  { provide: IGX_COMBO_COMPONENT, useExisting: IgxComboComponent },
@@ -40897,10 +40836,10 @@
40897
40836
  { type: i0.Injector, decorators: [{ type: i0.Optional }] }
40898
40837
  ]; };
40899
40838
  IgxComboComponent.propDecorators = {
40900
- showSearchCaseIcon: [{ type: i0.Input }],
40901
40839
  autoFocusSearch: [{ type: i0.Input }],
40902
40840
  filterable: [{ type: i0.Input }],
40903
40841
  searchPlaceholder: [{ type: i0.Input }],
40842
+ selectionChanging: [{ type: i0.Output }],
40904
40843
  dropdown: [{ type: i0.ViewChild, args: [IgxComboDropDownComponent, { static: true },] }]
40905
40844
  };
40906
40845
  /**
@@ -40982,7 +40921,7 @@
40982
40921
  _this.selectionChanging = new i0.EventEmitter();
40983
40922
  /** @hidden @internal */
40984
40923
  _this.composing = false;
40985
- _this._updateInput = false;
40924
+ _this._updateInput = true;
40986
40925
  _this.findMatch = function (element) {
40987
40926
  var value = _this.displayKey ? element[_this.displayKey] : element;
40988
40927
  return value.toString().toLowerCase().includes(_this.searchValue.trim().toLowerCase());
@@ -41003,6 +40942,23 @@
41003
40942
  enumerable: false,
41004
40943
  configurable: true
41005
40944
  });
40945
+ /** @hidden @internal */
40946
+ IgxSimpleComboComponent.prototype.onArrowDown = function (event) {
40947
+ if (this.collapsed) {
40948
+ event.preventDefault();
40949
+ event.stopPropagation();
40950
+ this.open();
40951
+ }
40952
+ else {
40953
+ if (this.virtDir.igxForOf.length > 0) {
40954
+ this.dropdown.navigateFirst();
40955
+ this.dropdownContainer.nativeElement.focus();
40956
+ }
40957
+ else if (this.allowCustomValues) {
40958
+ this.addItem.element.nativeElement.focus();
40959
+ }
40960
+ }
40961
+ };
41006
40962
  /**
41007
40963
  * Select a defined item
41008
40964
  *
@@ -41018,18 +40974,15 @@
41018
40974
  }
41019
40975
  };
41020
40976
  /**
41021
- * Deselect a defined item
40977
+ * Deselect the currently selected item
41022
40978
  *
41023
40979
  * @param item the items to be deselected
41024
40980
  * ```typescript
41025
40981
  * this.combo.deselect("New York");
41026
40982
  * ```
41027
40983
  */
41028
- IgxSimpleComboComponent.prototype.deselect = function (item) {
41029
- if (item !== null && item !== undefined) {
41030
- var newSelection = this.selectionService.delete_items(this.id, item instanceof Array ? item : [item]);
41031
- this.setSelection(newSelection);
41032
- }
40984
+ IgxSimpleComboComponent.prototype.deselect = function () {
40985
+ this.clearSelection();
41033
40986
  };
41034
40987
  /** @hidden @internal */
41035
40988
  IgxSimpleComboComponent.prototype.writeValue = function (value) {
@@ -41041,33 +40994,51 @@
41041
40994
  /** @hidden @internal */
41042
40995
  IgxSimpleComboComponent.prototype.ngAfterViewInit = function () {
41043
40996
  var _this = this;
40997
+ this.virtDir.contentSizeChange.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
40998
+ if (_this.selection.length > 0) {
40999
+ var index = _this.virtDir.igxForOf.findIndex(function (e) {
41000
+ var current = e[_this.valueKey];
41001
+ if (_this.valueKey === null || _this.valueKey === undefined) {
41002
+ current = e;
41003
+ }
41004
+ return current === _this.selection[0];
41005
+ });
41006
+ _this.dropdown.navigateItem(index);
41007
+ }
41008
+ });
41044
41009
  this.dropdown.opened.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
41045
41010
  if (_this.composing) {
41046
41011
  _this.comboInput.focus();
41047
41012
  }
41048
41013
  });
41049
- this.dropdown.closed.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
41050
- _this.composing = false;
41051
- });
41052
- this.dropdown.closing.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
41053
- var selection = _this.selectionService.first_item(_this.id);
41054
- _this.comboInput.value = selection !== undefined && selection !== null ? selection : '';
41055
- });
41056
- this.dropdown.opening.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
41057
- if (!_this.comboInput.value.length) {
41058
- _this.clearSelection();
41014
+ this.dropdown.closing.pipe(operators.takeUntil(this.destroy$)).subscribe(function (args) {
41015
+ if (_this.getEditElement() && !args.event) {
41016
+ _this.comboInput.focus();
41017
+ }
41018
+ else {
41019
+ _this.clearOnBlur();
41020
+ _this._onTouchedCallback();
41059
41021
  }
41060
41022
  });
41061
41023
  _super.prototype.ngAfterViewInit.call(this);
41062
41024
  };
41063
41025
  /** @hidden @internal */
41064
41026
  IgxSimpleComboComponent.prototype.handleInputChange = function (event) {
41065
- this.searchValue = event.target.value;
41027
+ if (event !== undefined) {
41028
+ this.searchValue = typeof event === 'string' ? event : event.target.value;
41029
+ }
41066
41030
  this._onChangeCallback(this.searchValue);
41067
- if (this.collapsed) {
41031
+ if (this.collapsed && this.comboInput.focused) {
41068
41032
  this.open();
41033
+ this.dropdown.navigateFirst();
41034
+ }
41035
+ if (!this.comboInput.value.trim()) {
41036
+ // handle clearing of input by space
41037
+ this.clearSelection();
41038
+ this._onChangeCallback(null);
41069
41039
  }
41070
41040
  _super.prototype.handleInputChange.call(this, event);
41041
+ this.composing = true;
41071
41042
  };
41072
41043
  /** @hidden @internal */
41073
41044
  IgxSimpleComboComponent.prototype.handleKeyDown = function (event) {
@@ -41076,10 +41047,12 @@
41076
41047
  if (filtered === null || filtered === undefined) {
41077
41048
  return;
41078
41049
  }
41079
- this.select(this.dropdown.items[0].itemID);
41050
+ this.select(this.dropdown.focusedItem.itemID);
41080
41051
  event.preventDefault();
41081
41052
  event.stopPropagation();
41082
41053
  this.close();
41054
+ // manually trigger text selection as it will not be triggered during editing
41055
+ this.textSelection.trigger();
41083
41056
  return;
41084
41057
  }
41085
41058
  if (event.key === this.platformUtil.KEYMAP.BACKSPACE
@@ -41087,11 +41060,12 @@
41087
41060
  this._updateInput = false;
41088
41061
  this.clearSelection();
41089
41062
  }
41063
+ if (!this.collapsed && event.key === this.platformUtil.KEYMAP.TAB) {
41064
+ this.close();
41065
+ this.clearOnBlur();
41066
+ }
41067
+ this.composing = false;
41090
41068
  _super.prototype.handleKeyDown.call(this, event);
41091
- this.composing = event.key !== this.platformUtil.KEYMAP.ARROW_DOWN
41092
- && event.key !== this.platformUtil.KEYMAP.ARROW_LEFT
41093
- && event.key !== this.platformUtil.KEYMAP.ARROW_RIGHT
41094
- && event.key !== this.platformUtil.KEYMAP.TAB;
41095
41069
  };
41096
41070
  /** @hidden @internal */
41097
41071
  IgxSimpleComboComponent.prototype.handleKeyUp = function (event) {
@@ -41104,6 +41078,29 @@
41104
41078
  }
41105
41079
  };
41106
41080
  /** @hidden @internal */
41081
+ IgxSimpleComboComponent.prototype.handleItemKeyDown = function (event) {
41082
+ if (event.key === this.platformUtil.KEYMAP.ARROW_UP && event.altKey) {
41083
+ this.close();
41084
+ this.comboInput.focus();
41085
+ return;
41086
+ }
41087
+ if (event.key === this.platformUtil.KEYMAP.ENTER) {
41088
+ this.comboInput.focus();
41089
+ }
41090
+ };
41091
+ /** @hidden @internal */
41092
+ IgxSimpleComboComponent.prototype.handleItemClick = function () {
41093
+ this.close();
41094
+ this.comboInput.focus();
41095
+ };
41096
+ /** @hidden @internal */
41097
+ IgxSimpleComboComponent.prototype.onBlur = function () {
41098
+ if (this.collapsed) {
41099
+ this.clearOnBlur();
41100
+ }
41101
+ _super.prototype.onBlur.call(this);
41102
+ };
41103
+ /** @hidden @internal */
41107
41104
  IgxSimpleComboComponent.prototype.getEditElement = function () {
41108
41105
  return this.comboInput.nativeElement;
41109
41106
  };
@@ -41114,7 +41111,8 @@
41114
41111
  }
41115
41112
  this.clearSelection(true);
41116
41113
  if (this.collapsed) {
41117
- this.getEditElement().focus();
41114
+ this.open();
41115
+ this.dropdown.navigateFirst();
41118
41116
  }
41119
41117
  else {
41120
41118
  this.focusSearchInput(true);
@@ -41122,6 +41120,7 @@
41122
41120
  event.stopPropagation();
41123
41121
  this.comboInput.value = this.filterValue = this.searchValue = '';
41124
41122
  this.dropdown.focusedItem = null;
41123
+ this.composing = false;
41125
41124
  this.comboInput.focus();
41126
41125
  };
41127
41126
  /** @hidden @internal */
@@ -41131,6 +41130,19 @@
41131
41130
  this.opened.emit({ owner: this });
41132
41131
  };
41133
41132
  /** @hidden @internal */
41133
+ IgxSimpleComboComponent.prototype.handleClosing = function (e) {
41134
+ var args = { owner: this, event: e.event, cancel: e.cancel };
41135
+ this.closing.emit(args);
41136
+ e.cancel = args.cancel;
41137
+ if (e.cancel) {
41138
+ return;
41139
+ }
41140
+ this.composing = false;
41141
+ // explicitly update selection and trigger text selection so that we don't have to force CD
41142
+ this.textSelection.selected = true;
41143
+ this.textSelection.trigger();
41144
+ };
41145
+ /** @hidden @internal */
41134
41146
  IgxSimpleComboComponent.prototype.focusSearchInput = function (opening) {
41135
41147
  if (opening) {
41136
41148
  this.dropdownContainer.nativeElement.focus();
@@ -41140,6 +41152,13 @@
41140
41152
  this.toggle();
41141
41153
  }
41142
41154
  };
41155
+ /** @hidden @internal */
41156
+ IgxSimpleComboComponent.prototype.onClick = function (event) {
41157
+ _super.prototype.onClick.call(this, event);
41158
+ if (this.comboInput.value.length === 0) {
41159
+ this.virtDir.scrollTo(0);
41160
+ }
41161
+ };
41143
41162
  IgxSimpleComboComponent.prototype.setSelection = function (newSelection) {
41144
41163
  var newSelectionAsArray = newSelection ? Array.from(newSelection) : [];
41145
41164
  var oldSelectionAsArray = Array.from(this.selectionService.get(this.id) || []);
@@ -41155,13 +41174,14 @@
41155
41174
  if (!args.cancel) {
41156
41175
  var argsSelection = args.newSelection !== undefined
41157
41176
  && args.newSelection !== null
41158
- ? [args.newSelection]
41177
+ ? args.newSelection
41159
41178
  : [];
41179
+ argsSelection = Array.isArray(argsSelection) ? argsSelection : [argsSelection];
41160
41180
  this.selectionService.select_items(this.id, argsSelection, true);
41161
41181
  if (this._updateInput) {
41162
- this._value = displayText !== args.displayText
41182
+ this.comboInput.value = this._value = displayText !== args.displayText
41163
41183
  ? args.displayText
41164
- : this.createDisplayText([args.newSelection], [args.oldSelection]);
41184
+ : this.createDisplayText(argsSelection, [args.oldSelection]);
41165
41185
  }
41166
41186
  this._onChangeCallback(args.newSelection);
41167
41187
  this._updateInput = true;
@@ -41172,9 +41192,11 @@
41172
41192
  if (this.isRemote) {
41173
41193
  return this.getRemoteSelection(newSelection, oldSelection);
41174
41194
  }
41175
- return this.displayKey !== null && this.displayKey !== undefined
41176
- ? this.convertKeysToItems(newSelection).map(function (e) { return e[_this.displayKey]; })[0]
41177
- : newSelection[0];
41195
+ if (this.displayKey !== null && this.displayKey !== undefined
41196
+ && newSelection.length > 0) {
41197
+ return this.convertKeysToItems(newSelection).map(function (e) { return e[_this.displayKey]; })[0];
41198
+ }
41199
+ return newSelection[0] || '';
41178
41200
  };
41179
41201
  IgxSimpleComboComponent.prototype.clearSelection = function (ignoreFilter) {
41180
41202
  var newSelection = this.selectionService.get_empty();
@@ -41183,12 +41205,20 @@
41183
41205
  }
41184
41206
  this.setSelection(newSelection);
41185
41207
  };
41208
+ IgxSimpleComboComponent.prototype.clearOnBlur = function () {
41209
+ var filtered = this.filteredData.find(this.findMatch);
41210
+ if ((filtered === undefined || filtered === null)) {
41211
+ this.close();
41212
+ this.clearSelection();
41213
+ this.searchValue = '';
41214
+ }
41215
+ };
41186
41216
  return IgxSimpleComboComponent;
41187
41217
  }(IgxComboBaseDirective));
41188
41218
  IgxSimpleComboComponent.decorators = [
41189
41219
  { type: i0.Component, args: [{
41190
41220
  selector: 'igx-simple-combo',
41191
- template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [type]=\"type\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n\n <input #comboInput igxInput [value]=\"value\" (input)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (blur)=\"onBlur()\" [attr.placeholder]=\"placeholder\"\n aria-autocomplete=\"both\" [attr.aria-owns]=\"dropdown.id\" [attr.aria-labelledby]=\"ariaLabelledBy\"\n [disabled]=\"disabled\" [igxTextSelection]=\"!composing\" />\n\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix\"></ng-content>\n </ng-container>\n <igx-suffix *ngIf=\"comboInput.value.length\" aria-label=\"Clear Selection\" class=\"igx-combo__clear-button\"\n (click)=\"handleClear($event)\">\n <ng-container *ngIf=\"clearIconTemplate\">\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!clearIconTemplate\">\n clear\n </igx-icon>\n </igx-suffix>\n <igx-suffix class=\"igx-combo__toggle-button\">\n <ng-container *ngIf=\"toggleIconTemplate\">\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: collapsed}\"></ng-container>\n </ng-container>\n <igx-icon (click)=\"onClick($event)\" *ngIf=\"!toggleIconTemplate\">\n {{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}\n </igx-icon>\n </igx-suffix>\n</igx-input-group>\n\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\" [displayDensity]=\"displayDensity\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\" [singleMode]=\"true\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.px]=\"itemsMaxHeight\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" role=\"listbox\" [attr.id]=\"dropdown.id\">\n <igx-combo-item role=\"option\" [singleMode]=\"true\" [itemHeight]='itemHeight' (click)=\"close()\" *igxFor=\"let item of data\n | comboFiltering:filterValue:displayKey:filteringOptions:true\n | comboGrouping:groupKey:valueKey\n index as rowIndex; containerSize: itemsMaxHeight; scrollOrientation: 'vertical'; itemSize: itemHeight\"\n [value]=\"item\" [isHeader]=\"item.isHeader\" [index]=\"rowIndex\">\n <ng-container *ngIf=\"item.isHeader\">\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!item.isHeader\">\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n </ng-container>\n </igx-combo-item>\n </div>\n\n <div class=\"igx-combo__add\" *ngIf=\"filteredData.length === 0 || isAddButtonVisible()\">\n <div class=\"igx-combo__empty\" *ngIf=\"filteredData.length === 0\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n <igx-combo-add-item [itemHeight]=\"itemHeight\" *ngIf=\"isAddButtonVisible()\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n aria-label=\"Add Item\" [index]=\"virtualScrollContainer.igxForOf.length\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n </div>\n <ng-container *ngTemplateOutlet=\"footerTemplate\">\n </ng-container>\n</igx-combo-drop-down>\n\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>The list is empty</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button igxButton=\"flat\" igxRipple>Add item</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n",
41221
+ template: "<igx-input-group #inputGroup [displayDensity]=\"displayDensity\" [suppressInputAutofocus]=\"true\" [type]=\"type\">\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n\n <input #comboInput igxInput [value]=\"value\" (input)=\"handleInputChange($event)\" (keyup)=\"handleKeyUp($event)\"\n (keydown)=\"handleKeyDown($event)\" (blur)=\"onBlur()\" [attr.placeholder]=\"placeholder\" aria-autocomplete=\"both\"\n [attr.aria-owns]=\"dropdown.id\" [attr.aria-labelledby]=\"ariaLabelledBy\" [disabled]=\"disabled\"\n [igxTextSelection]=\"!composing\" />\n\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix\"></ng-content>\n </ng-container>\n <igx-suffix *ngIf=\"comboInput.value.length\" aria-label=\"Clear Selection\" class=\"igx-combo__clear-button\"\n (click)=\"handleClear($event)\">\n <ng-container *ngIf=\"clearIconTemplate\">\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n </ng-container>\n <igx-icon *ngIf=\"!clearIconTemplate\">\n clear\n </igx-icon>\n </igx-suffix>\n <igx-suffix *ngIf=\"showSearchCaseIcon\">\n <igx-icon family=\"imx-icons\" name=\"case-sensitive\" [active]=\"filteringOptions.caseSensitive\"\n (click)=\"toggleCaseSensitive()\">\n </igx-icon>\n </igx-suffix>\n <igx-suffix class=\"igx-combo__toggle-button\">\n <ng-container *ngIf=\"toggleIconTemplate\">\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: collapsed}\"></ng-container>\n </ng-container>\n <igx-icon (click)=\"onClick($event)\" *ngIf=\"!toggleIconTemplate\">\n {{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}\n </igx-icon>\n </igx-suffix>\n</igx-input-group>\n\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\" [displayDensity]=\"displayDensity\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\" [singleMode]=\"true\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\">\n </ng-container>\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.px]=\"itemsMaxHeight\" [igxDropDownItemNavigation]=\"dropdown\" (focus)=\"dropdown.onFocus()\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" role=\"listbox\" [attr.id]=\"dropdown.id\"\n (keydown)=\"handleItemKeyDown($event)\">\n <igx-combo-item role=\"option\" [singleMode]=\"true\" [itemHeight]='itemHeight' (click)=\"handleItemClick()\" *igxFor=\"let item of data\n | comboFiltering:filterValue:displayKey:filteringOptions:true\n | comboGrouping:groupKey:valueKey\n index as rowIndex; containerSize: itemsMaxHeight; scrollOrientation: 'vertical'; itemSize: itemHeight\"\n [value]=\"item\" [isHeader]=\"item.isHeader\" [index]=\"rowIndex\">\n <ng-container *ngIf=\"item.isHeader\">\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!item.isHeader\">\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n </ng-container>\n </igx-combo-item>\n </div>\n\n <div class=\"igx-combo__add\" *ngIf=\"filteredData.length === 0 || isAddButtonVisible()\">\n <div class=\"igx-combo__empty\" *ngIf=\"filteredData.length === 0\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n <igx-combo-add-item #addItem [itemHeight]=\"itemHeight\" *ngIf=\"isAddButtonVisible()\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n aria-label=\"Add Item\" [index]=\"virtualScrollContainer.igxForOf.length\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n </div>\n <ng-container *ngTemplateOutlet=\"footerTemplate\">\n </ng-container>\n</igx-combo-drop-down>\n\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>The list is empty</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button igxButton=\"flat\" igxRipple>Add item</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n",
41192
41222
  providers: [
41193
41223
  IgxComboAPIService,
41194
41224
  { provide: IGX_COMBO_COMPONENT, useExisting: IgxSimpleComboComponent },
@@ -41209,7 +41239,10 @@
41209
41239
  ]; };
41210
41240
  IgxSimpleComboComponent.propDecorators = {
41211
41241
  dropdown: [{ type: i0.ViewChild, args: [IgxComboDropDownComponent, { static: true },] }],
41212
- selectionChanging: [{ type: i0.Output }]
41242
+ addItem: [{ type: i0.ViewChild, args: [IgxComboAddItemComponent,] }],
41243
+ selectionChanging: [{ type: i0.Output }],
41244
+ textSelection: [{ type: i0.ViewChild, args: [IgxTextSelectionDirective, { static: true },] }],
41245
+ onArrowDown: [{ type: i0.HostListener, args: ['keydown.ArrowDown', ['$event'],] }, { type: i0.HostListener, args: ['keydown.Alt.ArrowDown', ['$event'],] }]
41213
41246
  };
41214
41247
  var IgxSimpleComboModule = /** @class */ (function () {
41215
41248
  function IgxSimpleComboModule() {
@@ -43830,7 +43863,7 @@
43830
43863
  { type: i0.Component, args: [{
43831
43864
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
43832
43865
  selector: 'igx-grid-excel-style-filtering',
43833
- template: "<ng-template #defaultExcelColumnOperations>\n <igx-excel-style-header\n [showHiding]=\"displayDensity !== 'comfortable' && !column?.disableHiding\"\n [showPinning]=\"displayDensity !== 'comfortable' && !column?.disablePinning\"\n [showSelecting]=\"displayDensity !== 'comfortable' && columnSelectable()\"\n >\n </igx-excel-style-header>\n\n <igx-excel-style-sorting *ngIf=\"column?.sortable\">\n </igx-excel-style-sorting>\n\n <igx-excel-style-moving *ngIf=\"column?.movable\">\n </igx-excel-style-moving>\n\n <igx-excel-style-pinning *ngIf=\"!column?.disablePinning && displayDensity==='comfortable'\">\n </igx-excel-style-pinning>\n\n <igx-excel-style-hiding *ngIf=\"!column?.disableHiding && displayDensity==='comfortable'\">\n </igx-excel-style-hiding>\n\n <igx-excel-style-selecting *ngIf=\"columnSelectable() && displayDensity==='comfortable'\">\n </igx-excel-style-selecting>\n</ng-template>\n\n<ng-template #defaultExcelFilterOperations>\n <igx-excel-style-clear-filters>\n </igx-excel-style-clear-filters>\n\n <igx-excel-style-conditional-filter>\n </igx-excel-style-conditional-filter>\n\n <igx-excel-style-search>\n </igx-excel-style-search>\n</ng-template>\n\n<article #mainDropdown\n class=\"igx-excel-filter__menu\"\n [ngClass]=\"{\n 'igx-excel-filter__menu--cosy': displayDensity === 'cosy',\n 'igx-excel-filter__menu--compact': displayDensity === 'compact'\n }\"\n [id]=\"overlayComponentId\"\n (keydown)=\"onKeyDown($event)\"\n [style.min-height]=\"minHeight\"\n [style.max-height]=\"maxHeight\">\n\n <ng-container *ngIf=\"this.excelColumnOperationsDirective; else defaultExcelColumnOperations\">\n <ng-content select=\"igx-excel-style-column-operations,[igxExcelStyleColumnOperations]\">\n </ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"this.excelFilterOperationsDirective; else defaultExcelFilterOperations\">\n <ng-content select=\"igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]\">\n </ng-content>\n </ng-container>\n</article>\n"
43866
+ template: "<ng-template #defaultExcelColumnOperations>\n <igx-excel-style-header\n [showHiding]=\"displayDensity !== 'comfortable' && !column?.disableHiding\"\n [showPinning]=\"displayDensity !== 'comfortable' && !column?.disablePinning\"\n [showSelecting]=\"displayDensity !== 'comfortable' && columnSelectable()\"\n >\n </igx-excel-style-header>\n\n <igx-excel-style-sorting *ngIf=\"column?.sortable\">\n </igx-excel-style-sorting>\n\n <igx-excel-style-moving *ngIf=\"column?.movable\">\n </igx-excel-style-moving>\n\n <igx-excel-style-pinning *ngIf=\"!column?.disablePinning && displayDensity==='comfortable'\">\n </igx-excel-style-pinning>\n\n <igx-excel-style-hiding *ngIf=\"!column?.disableHiding && displayDensity==='comfortable'\">\n </igx-excel-style-hiding>\n\n <igx-excel-style-selecting *ngIf=\"columnSelectable() && displayDensity==='comfortable'\">\n </igx-excel-style-selecting>\n</ng-template>\n\n<ng-template #defaultExcelFilterOperations>\n <igx-excel-style-clear-filters>\n </igx-excel-style-clear-filters>\n\n <igx-excel-style-conditional-filter>\n </igx-excel-style-conditional-filter>\n\n <igx-excel-style-search>\n </igx-excel-style-search>\n</ng-template>\n\n<article #mainDropdown\n class=\"igx-excel-filter__menu\"\n [ngClass]=\"{\n 'igx-excel-filter__menu--cosy': displayDensity === 'cosy',\n 'igx-excel-filter__menu--compact': displayDensity === 'compact'\n }\"\n [id]=\"overlayComponentId\"\n (keydown)=\"onKeyDown($event)\"\n [style.min-height]=\"minHeight\"\n [style.max-height]=\"maxHeight\"\n role=\"menu\">\n\n <ng-container *ngIf=\"this.excelColumnOperationsDirective; else defaultExcelColumnOperations\">\n <ng-content select=\"igx-excel-style-column-operations,[igxExcelStyleColumnOperations]\">\n </ng-content>\n </ng-container>\n\n <ng-container *ngIf=\"this.excelFilterOperationsDirective; else defaultExcelFilterOperations\">\n <ng-content select=\"igx-excel-style-filter-operations,[igxExcelStyleFilterOperations]\">\n </ng-content>\n </ng-container>\n</article>\n"
43834
43867
  },] }
43835
43868
  ];
43836
43869
  IgxGridExcelStyleFilteringComponent.ctorParameters = function () { return [
@@ -45566,7 +45599,7 @@
45566
45599
  { type: i0.Component, args: [{
45567
45600
  preserveWhitespaces: false,
45568
45601
  selector: 'igx-excel-style-date-expression',
45569
- template: "<igx-select #dropdownConditions\n type=\"box\"\n [displayDensity]=\"displayDensity\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n <igx-icon *ngIf=\"expressionUI.expression.condition\" family=\"imx-icons\" [name]=\"getIconName()\"></igx-icon>\n <igx-icon *ngIf=\"!expressionUI.expression.condition\">filter_list</igx-icon>\n </igx-prefix>\n <igx-select-item *ngFor=\"let condition of conditions\" [value]=\"condition\" [selected]=\"isConditionSelected(condition)\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span>{{translateCondition(condition)}}</span>\n </igx-select-item>\n</igx-select>\n\n<igx-date-picker #picker *ngIf=\"column.dataType === 'date'\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputDatePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-date-picker>\n\n<igx-time-picker #picker *ngIf=\"column.dataType === 'time'\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-time-picker>\n\n<igx-input-group #dropDownTarget *ngIf=\"column.dataType === 'dateTime'\" #inputGroup type=\"box\" [displayDensity]=\"displayDensity\">\n <input #input igxInput tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [igxDateTimeEditor]=\"column.defaultDateTimeFormat\"\n [(ngModel)]=\"expressionUI.expression.searchVal\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"/>\n</igx-input-group>\n\n<button (click)=\"onRemoveButtonClick()\" igxButton=\"icon\" [displayDensity]=\"displayDensity\" *ngIf=\"!isSingle\" >\n <igx-icon>cancel</igx-icon>\n</button>\n\n<igx-buttongroup #logicOperatorButtonGroup\n *ngIf=\"!isLast\"\n [multiSelection]=\"false\">\n <span igxButton [displayDensity]=\"displayDensity\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n\n <span igxButton [displayDensity]=\"displayDensity\"\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n</igx-buttongroup>\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n"
45602
+ template: "<igx-select #dropdownConditions\n type=\"box\"\n [displayDensity]=\"displayDensity\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n <igx-icon *ngIf=\"expressionUI.expression.condition\" family=\"imx-icons\" [name]=\"getIconName()\"></igx-icon>\n <igx-icon *ngIf=\"!expressionUI.expression.condition\">filter_list</igx-icon>\n </igx-prefix>\n <igx-select-item *ngFor=\"let condition of conditions\" [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span>{{translateCondition(condition)}}</span>\n </igx-select-item>\n</igx-select>\n\n<igx-date-picker #picker *ngIf=\"column.dataType === 'date'\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputDatePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-date-picker>\n\n<igx-time-picker #picker *ngIf=\"column.dataType === 'time'\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-time-picker>\n\n<igx-input-group #dropDownTarget *ngIf=\"column.dataType === 'dateTime'\" #inputGroup type=\"box\" [displayDensity]=\"displayDensity\">\n <input #input igxInput tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [igxDateTimeEditor]=\"column.defaultDateTimeFormat\"\n [(ngModel)]=\"expressionUI.expression.searchVal\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"/>\n</igx-input-group>\n\n<button (click)=\"onRemoveButtonClick()\" igxButton=\"icon\" [displayDensity]=\"displayDensity\" *ngIf=\"!isSingle\" >\n <igx-icon>cancel</igx-icon>\n</button>\n\n<igx-buttongroup #logicOperatorButtonGroup\n *ngIf=\"!isLast\"\n [multiSelection]=\"false\">\n <span igxButton [displayDensity]=\"displayDensity\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n\n <span igxButton [displayDensity]=\"displayDensity\"\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n</igx-buttongroup>\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n"
45570
45603
  },] }
45571
45604
  ];
45572
45605
  IgxExcelStyleDateExpressionComponent.propDecorators = {
@@ -46281,7 +46314,7 @@
46281
46314
  * @param target Target name
46282
46315
  */
46283
46316
  HammerGesturesManager.prototype.getGlobalEventTarget = function (target) {
46284
- return i1$1.ɵgetDOM().getGlobalEventTarget(this.doc, target);
46317
+ return i1$1["ɵgetDOM"]().getGlobalEventTarget(this.doc, target);
46285
46318
  };
46286
46319
  /**
46287
46320
  * Set HammerManager options.
@@ -52638,15 +52671,23 @@
52638
52671
  var _this = this;
52639
52672
  if (!val && val !== 0) {
52640
52673
  this.expression.searchVal = null;
52641
- this.showHideArrowButtons();
52674
+ var index = this.expressionsList.findIndex(function (item) { return item.expression === _this.expression; });
52675
+ if (index === 0 && this.expressionsList.length === 1) {
52676
+ this.clearFiltering();
52677
+ return;
52678
+ }
52642
52679
  }
52643
52680
  else {
52681
+ var oldValue = this.expression.searchVal;
52682
+ if (isEqual(oldValue, val)) {
52683
+ return;
52684
+ }
52644
52685
  this.expression.searchVal = DataUtil.parseValue(this.column.dataType, val);
52645
52686
  if (this.expressionsList.find(function (item) { return item.expression === _this.expression; }) === undefined) {
52646
52687
  this.addExpression(true);
52647
52688
  }
52689
+ this.filter();
52648
52690
  }
52649
- this.filter();
52650
52691
  },
52651
52692
  enumerable: false,
52652
52693
  configurable: true
@@ -54441,7 +54482,7 @@
54441
54482
  { type: i0.Component, args: [{
54442
54483
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
54443
54484
  selector: 'igx-grid-header-row',
54444
- template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [attr.aria-activedescendant]=\"activeDescendant\" [class.igx-grid__tr--mrl]=\"hasMRL\">\n\n <!-- Column headers area -->\n <div class=\"igx-grid__tr\" role=\"row\" [style.width.px]=\"width\">\n\n <!-- Left column moving area -->\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag && pinnedColumnCollection.length <= 0\">\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-left\" droppable=\"true\" [style.left.px]=\"grid.pinnedWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag && pinnedColumnCollection.length > 0\">\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-pinned\" droppable=\"true\" [style.left.px]=\"grid.pinnedWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n\n <!-- Row dragging area -->\n <ng-container *ngIf=\"grid.rowDraggable\">\n <div #headerDragContainer class=\"igx-grid__drag-indicator igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\" [class.igx-grid__drag-indicator--header]=\"!grid.isRowSelectable\">\n <div style=\"visibility: hidden;\">\n <ng-container *ngTemplateOutlet=\"grid.dragIndicatorIconTemplate || grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- Row selectors area -->\n <ng-container *ngIf=\"grid.showRowSelectors\">\n <div #headerSelectorContainer class=\"igx-grid__cbx-selection igx-grid__tr-action\"\n [class.igx-grid__cbx-selection--push]=\"grid.filteringService.isFilterRowVisible\"\n (click)=\"headerRowSelection($event)\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container #headSelector\n *ngTemplateOutlet=\"grid.headSelectorTemplate || headSelectorBaseTemplate; context: rowSelectorsContext\">\n </ng-container>\n </div>\n </ng-container>\n\n <!-- Hierarchical grids expand all area -->\n <ng-container *ngIf=\"isHierarchicalGrid\">\n <div #headerHierarchyExpander\n (click)=\"grid.toggleAll()\"\n (pointerdown)=\"$event.preventDefault()\"\n [hidden]=\"!grid.hasExpandableChildren || !grid.hasVisibleColumns\"\n [ngClass]=\"{\n 'igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header igx-grid__tr-action': grid.hasExpandableChildren,\n 'igx-grid__hierarchical-expander--push': grid.filteringService.isFilterRowVisible,\n 'igx-grid__hierarchical-expander--no-border': grid.isRowSelectable || grid.rowDraggable\n }\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n </ng-container>\n\n\n <!-- Grouping icon toggle area -->\n <ng-container *ngIf=\"grid?.groupingExpressions?.length\">\n <div #headerGroupContainer class=\"{{ indentationCSSClasses }}\"\n (click)=\"grid.toggleAllGroupRows()\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Pinned columns collection from the start -->\n <ng-container *ngIf=\"pinnedColumnCollection.length && grid.isPinningToStart\">\n <ng-container *ngFor=\"let column of pinnedColumnCollection | igxTopLevel\">\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\">\n </igx-grid-header-group>\n </ng-container>\n </ng-container>\n\n <!-- Unpinned columns collection -->\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"unpinnedColumnCollection | igxTopLevel\"\n [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\"\n [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\"\n [igxForScrollOrientation]=\"'horizontal'\"\n >\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\">\n </igx-grid-header-group>\n </ng-template>\n\n <!-- Pinned columns collection at the end -->\n <ng-container *ngIf=\"pinnedColumnCollection.length && !grid.isPinningToStart\">\n <ng-container *ngFor=\"let column of pinnedColumnCollection | igxTopLevel\">\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.left]=\"column.rightPinnedOffset\">\n </igx-grid-header-group>\n </ng-container>\n </ng-container>\n </div>\n\n <!-- Filter row area -->\n <ng-container *ngIf=\"grid.filteringService.isFilterRowVisible\">\n <igx-grid-filtering-row #filteringRow\n [column]=\"grid.filteringService.filteredColumn\"\n [style.width.px]=\"width\">\n </igx-grid-filtering-row>\n </ng-container>\n\n <!-- Right column moving area -->\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag\">\n <span id=\"right\" class=\"igx-grid__scroll-on-drag-right\" droppable=\"true\" [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n</div>\n\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\"></div>\n\n<!-- Default row selection header checkbox template -->\n<ng-template #headSelectorBaseTemplate igxHeadSelector let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"context.selectedCount > 0 && context.totalCount === context.selectedCount\"\n [disableRipple]=\"true\"\n [ngStyle]=\"{'visibility': grid.isMultiRowSelectionEnabled? 'visible' : 'hidden' }\"\n [indeterminate]=\"context.selectedCount > 0 && context.selectedCount !== context.totalCount\"\n [aria-label]=\"grid.headSelectorBaseAriaLabel\"\n #headerCheckbox>\n </igx-checkbox>\n </div>\n</ng-template>\n"
54485
+ template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n\n <!-- Column headers area -->\n <div class=\"igx-grid__tr\" role=\"row\" [style.width.px]=\"width\">\n\n <!-- Left column moving area -->\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag && pinnedColumnCollection.length <= 0\">\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-left\" droppable=\"true\" [style.left.px]=\"grid.pinnedWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag && pinnedColumnCollection.length > 0\">\n <span id=\"left\" class=\"igx-grid__scroll-on-drag-pinned\" droppable=\"true\" [style.left.px]=\"grid.pinnedWidth\"\n [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n\n <!-- Row dragging area -->\n <ng-container *ngIf=\"grid.rowDraggable\">\n <div #headerDragContainer class=\"igx-grid__drag-indicator igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\" [class.igx-grid__drag-indicator--header]=\"!grid.isRowSelectable\">\n <div style=\"visibility: hidden;\">\n <ng-container *ngTemplateOutlet=\"grid.dragIndicatorIconTemplate || grid.dragIndicatorIconBase\"></ng-container>\n </div>\n </div>\n </ng-container>\n\n <!-- Row selectors area -->\n <ng-container *ngIf=\"grid.showRowSelectors\">\n <div #headerSelectorContainer class=\"igx-grid__cbx-selection igx-grid__tr-action\"\n [class.igx-grid__cbx-selection--push]=\"grid.filteringService.isFilterRowVisible\"\n (click)=\"headerRowSelection($event)\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container #headSelector\n *ngTemplateOutlet=\"grid.headSelectorTemplate || headSelectorBaseTemplate; context: rowSelectorsContext\">\n </ng-container>\n </div>\n </ng-container>\n\n <!-- Hierarchical grids expand all area -->\n <ng-container *ngIf=\"isHierarchicalGrid\">\n <div #headerHierarchyExpander\n (click)=\"grid.toggleAll()\"\n (pointerdown)=\"$event.preventDefault()\"\n [hidden]=\"!grid.hasExpandableChildren || !grid.hasVisibleColumns\"\n [ngClass]=\"{\n 'igx-grid__hierarchical-expander igx-grid__hierarchical-expander--header igx-grid__tr-action': grid.hasExpandableChildren,\n 'igx-grid__hierarchical-expander--push': grid.filteringService.isFilterRowVisible,\n 'igx-grid__hierarchical-expander--no-border': grid.isRowSelectable || grid.rowDraggable\n }\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate; context: { $implicit: grid }\"></ng-container>\n </div>\n </ng-container>\n\n\n <!-- Grouping icon toggle area -->\n <ng-container *ngIf=\"grid?.groupingExpressions?.length\">\n <div #headerGroupContainer class=\"{{ indentationCSSClasses }}\"\n (click)=\"grid.toggleAllGroupRows()\"\n (pointerdown)=\"$event.preventDefault()\">\n <ng-container *ngTemplateOutlet=\"grid.iconTemplate\"></ng-container>\n </div>\n </ng-container>\n\n <!-- Pinned columns collection from the start -->\n <ng-container *ngIf=\"pinnedColumnCollection.length && grid.isPinningToStart\">\n <ng-container *ngFor=\"let column of pinnedColumnCollection | igxTopLevel\">\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\">\n </igx-grid-header-group>\n </ng-container>\n </ng-container>\n\n <!-- Unpinned columns collection -->\n <ng-template igxGridFor #headerVirtualContainer let-column\n [igxGridForOf]=\"unpinnedColumnCollection | igxTopLevel\"\n [igxForScrollContainer]=\"grid.parentVirtDir\"\n [igxForContainerSize]=\"grid.unpinnedWidth\"\n [igxForTrackBy]=\"grid.trackColumnChanges\"\n [igxForSizePropName]=\"'calcPixelWidth'\"\n [igxForScrollOrientation]=\"'horizontal'\"\n >\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\">\n </igx-grid-header-group>\n </ng-template>\n\n <!-- Pinned columns collection at the end -->\n <ng-container *ngIf=\"pinnedColumnCollection.length && !grid.isPinningToStart\">\n <ng-container *ngFor=\"let column of pinnedColumnCollection | igxTopLevel\">\n <igx-grid-header-group\n [ngClass]=\"column.headerGroupClasses\"\n [ngStyle]=\"column.headerGroupStyles |igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [column]=\"column\"\n [style.min-width]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"column.calcWidth | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.left]=\"column.rightPinnedOffset\">\n </igx-grid-header-group>\n </ng-container>\n </ng-container>\n </div>\n\n <!-- Filter row area -->\n <ng-container *ngIf=\"grid.filteringService.isFilterRowVisible\">\n <igx-grid-filtering-row #filteringRow\n [column]=\"grid.filteringService.filteredColumn\"\n [style.width.px]=\"width\">\n </igx-grid-filtering-row>\n </ng-container>\n\n <!-- Right column moving area -->\n <ng-container *ngIf=\"grid.hasMovableColumns && grid.columnInDrag\">\n <span id=\"right\" class=\"igx-grid__scroll-on-drag-right\" droppable=\"true\" [igxColumnMovingDrop]=\"headerContainer\"></span>\n </ng-container>\n</div>\n\n<!-- Header thumb area -->\n<div class=\"igx-grid-thead__thumb\" [hidden]=\"!grid.hasVerticalScroll()\" [style.width.px]=\"grid.scrollSize\"></div>\n\n<!-- Default row selection header checkbox template -->\n<ng-template #headSelectorBaseTemplate igxHeadSelector let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox\n [tabindex]=\"-1\"\n [readonly]=\"true\"\n [checked]=\"context.selectedCount > 0 && context.totalCount === context.selectedCount\"\n [disableRipple]=\"true\"\n [ngStyle]=\"{'visibility': grid.isMultiRowSelectionEnabled? 'visible' : 'hidden' }\"\n [indeterminate]=\"context.selectedCount > 0 && context.selectedCount !== context.totalCount\"\n [aria-label]=\"grid.headSelectorBaseAriaLabel\"\n #headerCheckbox>\n </igx-checkbox>\n </div>\n</ng-template>\n"
54445
54486
  },] }
54446
54487
  ];
54447
54488
  IgxGridHeaderRowComponent.ctorParameters = function () { return [
@@ -54625,9 +54666,10 @@
54625
54666
  */
54626
54667
  _this.gridScroll = new i0.EventEmitter();
54627
54668
  /**
54669
+ * @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
54670
+ *
54628
54671
  * Emitted after the current page is changed.
54629
54672
  *
54630
- * @deprecated in version 12.1.0
54631
54673
  * @example
54632
54674
  * ```html
54633
54675
  * <igx-grid (pageChange)="onPageChange($event)"></igx-grid>
@@ -54640,10 +54682,10 @@
54640
54682
  */
54641
54683
  _this.pageChange = new i0.EventEmitter();
54642
54684
  /**
54685
+ * @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
54686
+ *
54643
54687
  * Emitted when `perPage` property value of the grid is changed.
54644
54688
  *
54645
- * @deprecated in version 12.1.0
54646
- * @example
54647
54689
  * ```html
54648
54690
  * <igx-grid #grid (perPageChange)="onPerPageChange($event)" [autoGenerate]="true"></igx-grid>
54649
54691
  * ```
@@ -54660,6 +54702,8 @@
54660
54702
  */
54661
54703
  _this.class = '';
54662
54704
  /**
54705
+ * @deprecated in version 12.2.0. We suggest using `rowClasses` property instead
54706
+ *
54663
54707
  * Gets/Sets the styling classes applied to all even `IgxGridRowComponent`s in the grid.
54664
54708
  *
54665
54709
  * @example
@@ -54669,6 +54713,8 @@
54669
54713
  */
54670
54714
  _this.evenRowCSS = 'igx-grid__tr--even';
54671
54715
  /**
54716
+ * @deprecated in version 12.2.0. We suggest using `rowClasses` property instead
54717
+ *
54672
54718
  * Gets/Sets the styling classes applied to all odd `IgxGridRowComponent`s in the grid.
54673
54719
  *
54674
54720
  * @example
@@ -54923,9 +54969,10 @@
54923
54969
  */
54924
54970
  _this.filteringDone = new i0.EventEmitter();
54925
54971
  /**
54972
+ * @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
54973
+ *
54926
54974
  * Emitted after paging is performed.
54927
54975
  *
54928
- * @deprecated in version 12.1.x
54929
54976
  * @remarks
54930
54977
  * Returns an object consisting of the previous and next pages.
54931
54978
  * @example
@@ -55629,9 +55676,10 @@
55629
55676
  });
55630
55677
  Object.defineProperty(IgxGridBaseDirective.prototype, "paging", {
55631
55678
  /**
55679
+ * @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
55680
+ *
55632
55681
  * Gets/Sets whether the paging feature is enabled.
55633
55682
  *
55634
- * @deprecated in version 12.1.x
55635
55683
  * @remarks
55636
55684
  * The default state is disabled (false).
55637
55685
  * @example
@@ -55653,9 +55701,10 @@
55653
55701
  });
55654
55702
  Object.defineProperty(IgxGridBaseDirective.prototype, "page", {
55655
55703
  /**
55704
+ * @deprecated in version 12.1.0. Use `page` property form `paginator` component instead
55705
+ *
55656
55706
  * Gets/Sets the current page index.
55657
55707
  *
55658
- * @deprecated in version 12.1.x
55659
55708
  * @example
55660
55709
  * ```html
55661
55710
  * <igx-grid #grid [data]="Data" [autoGenerate]="true">
@@ -55679,9 +55728,10 @@
55679
55728
  });
55680
55729
  Object.defineProperty(IgxGridBaseDirective.prototype, "perPage", {
55681
55730
  /**
55731
+ * @deprecated in version 12.1.0. Use `perPage` property from `paginator` component instead
55732
+ *
55682
55733
  * Gets/Sets the number of visible items per page.
55683
55734
  *
55684
- * @deprecated in version 12.1.x
55685
55735
  * @remarks
55686
55736
  * The default is 15.
55687
55737
  * @example
@@ -55706,9 +55756,10 @@
55706
55756
  });
55707
55757
  Object.defineProperty(IgxGridBaseDirective.prototype, "columnHiding", {
55708
55758
  /**
55759
+ * @deprecated in version 10.1.0
55760
+ *
55709
55761
  * Gets/Sets whether the column hiding UI is enabled.
55710
55762
  *
55711
- * @deprecated
55712
55763
  * @remarks
55713
55764
  * By default it is disabled (false). In order for the UI to work, you need to enable the toolbar as shown in the example below.
55714
55765
  * @example
@@ -55959,9 +56010,9 @@
55959
56010
  });
55960
56011
  Object.defineProperty(IgxGridBaseDirective.prototype, "columnHidingTitle", {
55961
56012
  /**
55962
- * Gets/Sets the title to be displayed in the built-in column hiding UI.
56013
+ * @deprecated in version 10.1.0
55963
56014
  *
55964
- * @deprecated
56015
+ * Gets/Sets the title to be displayed in the built-in column hiding UI.
55965
56016
  *
55966
56017
  * @example
55967
56018
  * ```html
@@ -56011,9 +56062,9 @@
56011
56062
  });
56012
56063
  Object.defineProperty(IgxGridBaseDirective.prototype, "columnPinning", {
56013
56064
  /**
56014
- * Gets/Sets if the built-in column pinning UI should be shown in the toolbar.
56065
+ * @deprecated in version 10.1.0
56015
56066
  *
56016
- * @deprecated
56067
+ * Gets/Sets if the built-in column pinning UI should be shown in the toolbar.
56017
56068
  *
56018
56069
  * @example
56019
56070
  * ```html
@@ -56032,9 +56083,9 @@
56032
56083
  });
56033
56084
  Object.defineProperty(IgxGridBaseDirective.prototype, "columnPinningTitle", {
56034
56085
  /**
56035
- * Gets/Sets the title to be displayed in the UI of the column pinning.
56086
+ * @deprecated in version 10.1.0
56036
56087
  *
56037
- * @deprecated
56088
+ * Gets/Sets the title to be displayed in the UI of the column pinning.
56038
56089
  *
56039
56090
  * @example
56040
56091
  * ```html
@@ -56637,9 +56688,9 @@
56637
56688
  });
56638
56689
  Object.defineProperty(IgxGridBaseDirective.prototype, "hiddenColumnsText", {
56639
56690
  /**
56640
- * Gets/Sets the text to be displayed inside the toggle button.
56691
+ * @deprecated in version 10.1.0
56641
56692
  *
56642
- * @deprecated
56693
+ * Gets/Sets the text to be displayed inside the toggle button.
56643
56694
  *
56644
56695
  * @remarks
56645
56696
  * Used for the built-in column hiding UI of the`IgxColumnComponent`.
@@ -56648,7 +56699,6 @@
56648
56699
  * <igx-grid [columnHiding]="true" [showToolbar]="true" [hiddenColumnsText]="'Hidden Columns'"></igx-grid>
56649
56700
  * ```
56650
56701
  */
56651
- // @DeprecateProperty('`hiddenColumnsText` is deprecated')
56652
56702
  get: function () {
56653
56703
  return this._hiddenColumnsText;
56654
56704
  },
@@ -56661,9 +56711,9 @@
56661
56711
  });
56662
56712
  Object.defineProperty(IgxGridBaseDirective.prototype, "pinnedColumnsText", {
56663
56713
  /**
56664
- * Gets/Sets the text to be displayed inside the toggle button.
56714
+ * @deprecated in version 10.1.0
56665
56715
  *
56666
- * @deprecated
56716
+ * Gets/Sets the text to be displayed inside the toggle button.
56667
56717
  *
56668
56718
  * @remarks
56669
56719
  * Used for the built-in column pinning UI of the`IgxColumnComponent`.
@@ -56757,9 +56807,9 @@
56757
56807
  });
56758
56808
  Object.defineProperty(IgxGridBaseDirective.prototype, "showToolbar", {
56759
56809
  /**
56760
- * Gets/Sets whether the toolbar is shown.
56810
+ * @deprecated in version 11.0.0
56761
56811
  *
56762
- * @deprecated
56812
+ * Gets/Sets whether the toolbar is shown.
56763
56813
  *
56764
56814
  * @example
56765
56815
  * ```html
@@ -56777,9 +56827,9 @@
56777
56827
  });
56778
56828
  Object.defineProperty(IgxGridBaseDirective.prototype, "toolbarTitle", {
56779
56829
  /**
56780
- * Gets/Sets the toolbar's title.
56830
+ * @deprecated in version 11.0.0
56781
56831
  *
56782
- * @deprecated
56832
+ * Gets/Sets the toolbar's title.
56783
56833
  *
56784
56834
  * @example
56785
56835
  * ```html
@@ -56798,9 +56848,9 @@
56798
56848
  });
56799
56849
  Object.defineProperty(IgxGridBaseDirective.prototype, "exportExcel", {
56800
56850
  /**
56801
- * Gets/Sets whether exporting to MS Excel is enabled or disabled.
56851
+ * @deprecated `exportExcel` is deprecated
56802
56852
  *
56803
- * @deprecated
56853
+ * Gets/Sets whether exporting to MS Excel is enabled or disabled.
56804
56854
  *
56805
56855
  * @example
56806
56856
  * ```html
@@ -56819,9 +56869,9 @@
56819
56869
  });
56820
56870
  Object.defineProperty(IgxGridBaseDirective.prototype, "exportCsv", {
56821
56871
  /**
56822
- * Gets/Sets whether the option for exporting to CSV is enabled or disabled.
56872
+ * @deprecated `exportCsv` is deprecated
56823
56873
  *
56824
- * @deprecated
56874
+ * Gets/Sets whether the option for exporting to CSV is enabled or disabled.
56825
56875
  *
56826
56876
  * ```html
56827
56877
  * <igx-grid [data]="localData" [showToolbar]="true" [autoGenerate]="true" [exportCsv]="true"></igx-grid>
@@ -56839,9 +56889,9 @@
56839
56889
  });
56840
56890
  Object.defineProperty(IgxGridBaseDirective.prototype, "exportText", {
56841
56891
  /**
56842
- * Gets/Sets the textual content for the main export button.
56892
+ * @deprecated `exportText` is deprecated
56843
56893
  *
56844
- * @deprecated
56894
+ * Gets/Sets the textual content for the main export button.
56845
56895
  *
56846
56896
  * @example
56847
56897
  * ```html
@@ -56860,9 +56910,9 @@
56860
56910
  });
56861
56911
  Object.defineProperty(IgxGridBaseDirective.prototype, "exportExcelText", {
56862
56912
  /**
56863
- * Gets/Sets the textual content for the MS Excel export button.
56913
+ * @deprecated `exportExcelText` is deprecated
56864
56914
  *
56865
- * @deprecated
56915
+ * Gets/Sets the textual content for the MS Excel export button.
56866
56916
  *
56867
56917
  * ```html
56868
56918
  * <igx-grid [exportExcelText]="'My Excel Exporter" [showToolbar]="true" [exportText]="'My Exporter'" [exportCsv]="true"></igx-grid>
@@ -56880,9 +56930,9 @@
56880
56930
  });
56881
56931
  Object.defineProperty(IgxGridBaseDirective.prototype, "exportCsvText", {
56882
56932
  /**
56883
- * Gets/Sets the textual content for the CSV export button.
56933
+ * @deprecated `exportCsvText` is deprecated
56884
56934
  *
56885
- * @deprecated
56935
+ * Gets/Sets the textual content for the CSV export button.
56886
56936
  *
56887
56937
  * @example
56888
56938
  * ```html
@@ -57654,7 +57704,7 @@
57654
57704
  this.rendered$.pipe(operators.takeUntil(this.destroy$)).subscribe(function () {
57655
57705
  if (_this.paginator) {
57656
57706
  _this.paginator.perPage = _this._perPage !== DEFAULT_ITEMS_PER_PAGE ? _this._perPage : _this.paginator.perPage;
57657
- _this.paginator.totalRecords = _this.totalRecords;
57707
+ _this.paginator.totalRecords = _this.totalRecords ? _this.totalRecords : _this.paginator.totalRecords;
57658
57708
  _this.paginator.overlaySettings = { outlet: _this.outlet };
57659
57709
  }
57660
57710
  _this._rendered = true;
@@ -58148,9 +58198,10 @@
58148
58198
  });
58149
58199
  Object.defineProperty(IgxGridBaseDirective.prototype, "totalPages", {
58150
58200
  /**
58201
+ * @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
58202
+ *
58151
58203
  * Gets the total number of pages.
58152
58204
  *
58153
- * @deprecated in version 12.1.0
58154
58205
  * @example
58155
58206
  * ```typescript
58156
58207
  * const totalPages = this.grid.totalPages;
@@ -58165,9 +58216,10 @@
58165
58216
  });
58166
58217
  Object.defineProperty(IgxGridBaseDirective.prototype, "isFirstPage", {
58167
58218
  /**
58219
+ * @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
58220
+ *
58168
58221
  * Gets if the current page is the first page.
58169
58222
  *
58170
- * @deprecated in version 12.1.0
58171
58223
  * @example
58172
58224
  * ```typescript
58173
58225
  * const firstPage = this.grid.isFirstPage;
@@ -58180,9 +58232,10 @@
58180
58232
  configurable: true
58181
58233
  });
58182
58234
  /**
58235
+ * @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
58236
+ *
58183
58237
  * Goes to the next page, if the grid is not already at the last page.
58184
58238
  *
58185
- * @deprecated in version 12.1.0
58186
58239
  * @example
58187
58240
  * ```typescript
58188
58241
  * this.grid1.nextPage();
@@ -58194,9 +58247,10 @@
58194
58247
  (_a = this.paginator) === null || _a === void 0 ? void 0 : _a.nextPage();
58195
58248
  };
58196
58249
  /**
58250
+ * @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
58251
+ *
58197
58252
  * Goes to the previous page, if the grid is not already at the first page.
58198
58253
  *
58199
- * @deprecated in version 12.1.0
58200
58254
  * @example
58201
58255
  * ```typescript
58202
58256
  * this.grid1.previousPage();
@@ -58237,9 +58291,10 @@
58237
58291
  });
58238
58292
  Object.defineProperty(IgxGridBaseDirective.prototype, "isLastPage", {
58239
58293
  /**
58294
+ * @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
58295
+ *
58240
58296
  * Returns if the current page is the last page.
58241
58297
  *
58242
- * @deprecated in version 12.1.0
58243
58298
  * @example
58244
58299
  * ```typescript
58245
58300
  * const lastPage = this.grid.isLastPage;
@@ -58356,6 +58411,8 @@
58356
58411
  this._columnsReordered(column);
58357
58412
  };
58358
58413
  /**
58414
+ * @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
58415
+ *
58359
58416
  * Goes to the desired page index.
58360
58417
  *
58361
58418
  * @example
@@ -59685,6 +59742,9 @@
59685
59742
  if (!this.clipboardOptions.copyHeaders) {
59686
59743
  result = result.substring(result.indexOf('\n') + 1);
59687
59744
  }
59745
+ if (Object.values(data[0]).length === 1) {
59746
+ result = result.slice(0, -2);
59747
+ }
59688
59748
  event.preventDefault();
59689
59749
  /* Necessary for the hiearachical case but will probably have to
59690
59750
  change how getSelectedData is propagated in the hiearachical grid
@@ -61643,24 +61703,9 @@
61643
61703
  totalRecords: [{ type: i0.Input }],
61644
61704
  selectRowOnClick: [{ type: i0.Input }]
61645
61705
  };
61646
- __decorate([
61647
- DeprecateProperty('`pageChange` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
61648
- ], IgxGridBaseDirective.prototype, "pageChange", void 0);
61649
- __decorate([
61650
- DeprecateProperty('`perPageChange` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
61651
- ], IgxGridBaseDirective.prototype, "perPageChange", void 0);
61652
- __decorate([
61653
- DeprecateProperty('`evenRowCSS` is deprecated. We suggest using `rowClasses` property instead.')
61654
- ], IgxGridBaseDirective.prototype, "evenRowCSS", void 0);
61655
- __decorate([
61656
- DeprecateProperty('`oddRowCSS` is deprecated. We suggest using `rowClasses` property instead.')
61657
- ], IgxGridBaseDirective.prototype, "oddRowCSS", void 0);
61658
61706
  __decorate([
61659
61707
  WatchChanges()
61660
61708
  ], IgxGridBaseDirective.prototype, "primaryKey", void 0);
61661
- __decorate([
61662
- DeprecateProperty('`pagingDone` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
61663
- ], IgxGridBaseDirective.prototype, "pagingDone", void 0);
61664
61709
  __decorate([
61665
61710
  WatchChanges()
61666
61711
  ], IgxGridBaseDirective.prototype, "filteringLogic", null);
@@ -61670,18 +61715,6 @@
61670
61715
  __decorate([
61671
61716
  WatchChanges()
61672
61717
  ], IgxGridBaseDirective.prototype, "advancedFilteringExpressionsTree", null);
61673
- __decorate([
61674
- DeprecateProperty('`paging` is deprecated')
61675
- ], IgxGridBaseDirective.prototype, "paging", null);
61676
- __decorate([
61677
- DeprecateProperty('`page` is deprecated. Use `page` property form `paginator` component instead.')
61678
- ], IgxGridBaseDirective.prototype, "page", null);
61679
- __decorate([
61680
- DeprecateProperty('`perPage` is deprecated. Use `perPage` property from `paginator` component instead.')
61681
- ], IgxGridBaseDirective.prototype, "perPage", null);
61682
- __decorate([
61683
- DeprecateProperty('`columnHiding` is deprecated.')
61684
- ], IgxGridBaseDirective.prototype, "columnHiding", null);
61685
61718
  __decorate([
61686
61719
  WatchChanges()
61687
61720
  ], IgxGridBaseDirective.prototype, "hideRowSelectors", null);
@@ -61703,42 +61736,9 @@
61703
61736
  __decorate([
61704
61737
  WatchChanges()
61705
61738
  ], IgxGridBaseDirective.prototype, "isLoading", null);
61706
- __decorate([
61707
- DeprecateProperty('`columnHidingTitle` is deprecated')
61708
- ], IgxGridBaseDirective.prototype, "columnHidingTitle", null);
61709
- __decorate([
61710
- DeprecateProperty('`columnPinning` is deprecated')
61711
- ], IgxGridBaseDirective.prototype, "columnPinning", null);
61712
- __decorate([
61713
- DeprecateProperty('`columnPinningTitle` is deprecated')
61714
- ], IgxGridBaseDirective.prototype, "columnPinningTitle", null);
61715
61739
  __decorate([
61716
61740
  WatchChanges()
61717
61741
  ], IgxGridBaseDirective.prototype, "sortingExpressions", null);
61718
- __decorate([
61719
- DeprecateProperty('`pinnedColumnsText` is deprecated')
61720
- ], IgxGridBaseDirective.prototype, "pinnedColumnsText", null);
61721
- __decorate([
61722
- DeprecateProperty('`showToolbar` is deprecated')
61723
- ], IgxGridBaseDirective.prototype, "showToolbar", null);
61724
- __decorate([
61725
- DeprecateProperty('`toolbarTitle` is deprecated')
61726
- ], IgxGridBaseDirective.prototype, "toolbarTitle", null);
61727
- __decorate([
61728
- DeprecateProperty('`exportExcel` is deprecated')
61729
- ], IgxGridBaseDirective.prototype, "exportExcel", null);
61730
- __decorate([
61731
- DeprecateProperty('`exportCsv` is deprecated')
61732
- ], IgxGridBaseDirective.prototype, "exportCsv", null);
61733
- __decorate([
61734
- DeprecateProperty('`exportText` is deprecated')
61735
- ], IgxGridBaseDirective.prototype, "exportText", null);
61736
- __decorate([
61737
- DeprecateProperty('`exportExcelText` is deprecated')
61738
- ], IgxGridBaseDirective.prototype, "exportExcelText", null);
61739
- __decorate([
61740
- DeprecateProperty('`exportCsvText` is deprecated')
61741
- ], IgxGridBaseDirective.prototype, "exportCsvText", null);
61742
61742
  __decorate([
61743
61743
  WatchChanges()
61744
61744
  ], IgxGridBaseDirective.prototype, "cellSelection", null);
@@ -61748,24 +61748,6 @@
61748
61748
  __decorate([
61749
61749
  WatchChanges()
61750
61750
  ], IgxGridBaseDirective.prototype, "columnSelection", null);
61751
- __decorate([
61752
- DeprecateProperty('`totalPages` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
61753
- ], IgxGridBaseDirective.prototype, "totalPages", null);
61754
- __decorate([
61755
- DeprecateProperty('`isFirstPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
61756
- ], IgxGridBaseDirective.prototype, "isFirstPage", null);
61757
- __decorate([
61758
- DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
61759
- ], IgxGridBaseDirective.prototype, "nextPage", null);
61760
- __decorate([
61761
- DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
61762
- ], IgxGridBaseDirective.prototype, "previousPage", null);
61763
- __decorate([
61764
- DeprecateProperty('`isLastPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
61765
- ], IgxGridBaseDirective.prototype, "isLastPage", null);
61766
- __decorate([
61767
- DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
61768
- ], IgxGridBaseDirective.prototype, "paginate", null);
61769
61751
  __decorate([
61770
61752
  WatchChanges()
61771
61753
  ], IgxGridBaseDirective.prototype, "selectRowOnClick", null);
@@ -61815,7 +61797,7 @@
61815
61797
  get: function () {
61816
61798
  var _a, _b;
61817
61799
  if (this.inEditMode) {
61818
- return mergeWith__default['default'](cloneValue((_a = this._data) !== null && _a !== void 0 ? _a : this.grid.dataView[this.index]), this.grid.transactions.getAggregatedValue(this.key, false), function (objValue, srcValue) {
61800
+ return mergeWith__default["default"](cloneValue((_a = this._data) !== null && _a !== void 0 ? _a : this.grid.dataView[this.index]), this.grid.transactions.getAggregatedValue(this.key, false), function (objValue, srcValue) {
61819
61801
  if (Array.isArray(srcValue)) {
61820
61802
  return objValue = srcValue;
61821
61803
  }
@@ -61828,7 +61810,7 @@
61828
61810
  });
61829
61811
  Object.defineProperty(BaseRow.prototype, "rowData", {
61830
61812
  /**
61831
- * @deprecated Use 'data' instead.
61813
+ * @deprecated Use 'data' instead
61832
61814
  *
61833
61815
  * The data record that populates the row
61834
61816
  */
@@ -61840,8 +61822,7 @@
61840
61822
  });
61841
61823
  Object.defineProperty(BaseRow.prototype, "rowID", {
61842
61824
  /**
61843
- * @deprecated Use 'key' instead.
61844
- *
61825
+ * @deprecated Use 'key' instead
61845
61826
  */
61846
61827
  get: function () {
61847
61828
  return this.key;
@@ -62047,12 +62028,6 @@
62047
62028
  };
62048
62029
  return BaseRow;
62049
62030
  }());
62050
- __decorate([
62051
- DeprecateProperty("'rowData' property is deprecated. Use 'data' instead.")
62052
- ], BaseRow.prototype, "rowData", null);
62053
- __decorate([
62054
- DeprecateProperty("'rowID' property is deprecated. Use 'key' instead.")
62055
- ], BaseRow.prototype, "rowID", null);
62056
62031
  var IgxGridRow = /** @class */ (function (_super) {
62057
62032
  __extends(IgxGridRow, _super);
62058
62033
  /**
@@ -62182,7 +62157,7 @@
62182
62157
  get: function () {
62183
62158
  var _a;
62184
62159
  if (this.inEditMode) {
62185
- return mergeWith__default['default'](cloneValue((_a = this._data) !== null && _a !== void 0 ? _a : this.grid.dataView[this.index]), this.grid.transactions.getAggregatedValue(this.key, false), function (objValue, srcValue) {
62160
+ return mergeWith__default["default"](cloneValue((_a = this._data) !== null && _a !== void 0 ? _a : this.grid.dataView[this.index]), this.grid.transactions.getAggregatedValue(this.key, false), function (objValue, srcValue) {
62186
62161
  if (Array.isArray(srcValue)) {
62187
62162
  return objValue = srcValue;
62188
62163
  }
@@ -63295,17 +63270,6 @@
63295
63270
  enumerable: false,
63296
63271
  configurable: true
63297
63272
  });
63298
- /**
63299
- * @deprecated
63300
- * Gets whether the cell is selected.
63301
- * ```typescript
63302
- * let isCellSelected = thid.cell.isCellSelected();
63303
- * ```
63304
- * @memberof IgxGridCellComponent
63305
- */
63306
- IgxGridCellComponent.prototype.isCellSelected = function () {
63307
- return this.selectionService.selected(this.selectionNode);
63308
- };
63309
63273
  /**
63310
63274
  * @hidden
63311
63275
  * @internal
@@ -63617,9 +63581,6 @@
63617
63581
  onClick: [{ type: i0.HostListener, args: ['click', ['$event'],] }],
63618
63582
  onContextMenu: [{ type: i0.HostListener, args: ['contextmenu', ['$event'],] }]
63619
63583
  };
63620
- __decorate([
63621
- DeprecateMethod("'isCellSelected' is deprecated. Use 'selected' property instead.")
63622
- ], IgxGridCellComponent.prototype, "isCellSelected", null);
63623
63584
 
63624
63585
  var IgxGridFooterComponent = /** @class */ (function () {
63625
63586
  function IgxGridFooterComponent() {
@@ -64022,9 +63983,10 @@
64022
63983
  }
64023
63984
  Object.defineProperty(IgxColumnActionsComponent.prototype, "columns", {
64024
63985
  /**
63986
+ * @deprecated Use grid input instead.
63987
+ *
64025
63988
  * Gets the grid columns to provide an action for.
64026
63989
  *
64027
- * @deprecated
64028
63990
  * @example
64029
63991
  * ```typescript
64030
63992
  * let gridColumns = this.columnActions.columns;
@@ -64304,9 +64266,6 @@
64304
64266
  checkAllText: [{ type: i0.Input }],
64305
64267
  id: [{ type: i0.HostBinding, args: ['attr.id',] }, { type: i0.Input }]
64306
64268
  };
64307
- __decorate([
64308
- DeprecateProperty("Deprecated. Use 'grid' input instead.")
64309
- ], IgxColumnActionsComponent.prototype, "columns", null);
64310
64269
 
64311
64270
  /**
64312
64271
  * @hidden
@@ -67345,7 +67304,7 @@
67345
67304
  }
67346
67305
  ],
67347
67306
  selector: 'igx-time-picker',
67348
- template: "<igx-input-group [displayDensity]=\"displayDensity\" [type]=\"type\" [suppressInputAutofocus]=\"this.isDropdown\"\n (click)=\"!this.isDropdown && this.toggle()\">\n <input [displayValuePipe]=\"this.formatter ? displayValue : null\" igxInput [igxDateTimeEditor]=\"this.inputFormat\"\n type=\"text\" [readonly]=\"!this.isDropdown || this.readOnly\" [minValue]=\"this.minValue\" [maxValue]=\"this.maxValue\"\n [locale]=\"this.locale\" [spinDelta]=\"this.itemsDelta\" [spinLoop]=\"this.spinLoop\" [placeholder]=\"this.placeholder\"\n [disabled]=\"this.disabled\" [displayFormat]=\"this.displayFormat\"\n [igxTextSelection]=\"this.isDropdown && !this.readOnly\" role=\"combobox\" aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"!this.toggleDirective.collapsed\" [attr.aria-labelledby]=\"this.label?.id\" />\n\n <igx-prefix *ngIf=\"!this.toggleComponents.length\" (click)=\"this.toggle()\">\n <igx-icon [title]=\"this.value ? resourceStrings.igx_time_picker_change_time : resourceStrings.igx_time_picker_choose_time\">access_time</igx-icon>\n </igx-prefix>\n\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n </ng-container>\n\n <igx-suffix *ngIf=\"this.showClearButton\" (click)=\"this.clear(); $event.stopPropagation()\">\n <igx-icon>clear</igx-icon>\n </igx-suffix>\n\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint\">\n <ng-content select=\"igx-hint,[igxHint]\"></ng-content>\n </ng-container>\n</igx-input-group>\n\n<ng-template #defaultTimePickerActions>\n <div *ngIf=\"this.cancelButtonLabel || this.okButtonLabel\" class=\"igx-time-picker__buttons\">\n <button *ngIf=\"this.cancelButtonLabel\" igxButton=\"flat\" (click)=\"this.cancelButtonClick()\">\n {{this.cancelButtonLabel}}\n </button>\n <button *ngIf=\"this.okButtonLabel\" igxButton=\"flat\" (click)=\"this.okButtonClick()\">\n {{this.okButtonLabel}}\n </button>\n </div>\n</ng-template>\n\n<div #toggleDirective=\"toggle\" igxToggle role=\"dialog\" class=\"igx-time-picker\"\n [ngClass]=\"{'igx-time-picker--dropdown': this.isDropdown, 'igx-time-picker--vertical': this.isVertical && !this.isDropdown}\">\n <div *ngIf=\"!this.isDropdown\" class=\"igx-time-picker__header\">\n <h2 class=\"igx-time-picker__header-hour\">\n <span>{{ this.selectedDate | timeFormatPipe }}</span>\n </h2>\n </div>\n <div class=\"igx-time-picker__main\">\n <div class=\"igx-time-picker__body\">\n <div *ngIf=\"this.showHoursList\" #hourList [igxItemList]=\"'hourList'\">\n <span [igxTimeItem]=\"hour\" #timeItem=\"timeItem\" aria-label=\"hour\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? timeItem.hourValue : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n *ngFor=\"let hour of hourItems | timeItemPipe:'hour':this.selectedDate:this.minDropdownValue:this.maxDropdownValue\">{{ hour }}</span>\n </div>\n <div *ngIf=\"this.showMinutesList\" #minuteList [igxItemList]=\"'minuteList'\">\n <span [igxTimeItem]=\"minute\" #timeItem=\"timeItem\" aria-label=\"minutes\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? minute : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n *ngFor=\"let minute of minuteItems | timeItemPipe:'minutes':this.selectedDate:this.minDropdownValue:this.maxDropdownValue\">{{ minute }}</span>\n </div>\n <div *ngIf=\"this.showSecondsList\" #secondsList [igxItemList]=\"'secondsList'\">\n <span [igxTimeItem]=\"seconds\" #timeItem=\"timeItem\" aria-label=\"seconds\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? seconds : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n *ngFor=\"let seconds of secondsItems | timeItemPipe:'seconds':this.selectedDate:this.minDropdownValue:this.maxDropdownValue\">{{ seconds }}</span>\n </div>\n <div *ngIf=\"this.showAmPmList\" #ampmList [igxItemList]=\"'ampmList'\">\n <span [igxTimeItem]=\"ampm\" #timeItem=\"timeItem\" aria-label=\"ampm\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? ampm : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n *ngFor=\"let ampm of ampmItems | timeItemPipe:'ampm':this.selectedDate:this.minDropdownValue:this.maxDropdownValue\">{{ ampm }}</span>\n </div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"timePickerActionsDirective ? timePickerActionsDirective.template : defaultTimePickerActions\">\n </ng-container>\n </div>\n</div>\n",
67307
+ template: "<igx-input-group [displayDensity]=\"displayDensity\" [type]=\"type\" [suppressInputAutofocus]=\"this.isDropdown\">\n <input [displayValuePipe]=\"this.formatter ? displayValue : null\" igxInput [igxDateTimeEditor]=\"this.inputFormat\"\n type=\"text\" [readonly]=\"!this.isDropdown || this.readOnly\" [minValue]=\"this.minValue\" [maxValue]=\"this.maxValue\"\n [locale]=\"this.locale\" [spinDelta]=\"this.itemsDelta\" [spinLoop]=\"this.spinLoop\" [placeholder]=\"this.placeholder\"\n [disabled]=\"this.disabled\" [displayFormat]=\"this.displayFormat\"\n [igxTextSelection]=\"this.isDropdown && !this.readOnly\" role=\"combobox\" aria-haspopup=\"dialog\"\n [attr.aria-expanded]=\"!this.toggleDirective.collapsed\" [attr.aria-labelledby]=\"this.label?.id\"\n (click)=\"!this.isDropdown && this.toggle()\"/>\n\n <igx-prefix *ngIf=\"!this.toggleComponents.length\" (click)=\"this.toggle()\">\n <igx-icon [title]=\"this.value ? resourceStrings.igx_time_picker_change_time : resourceStrings.igx_time_picker_choose_time\">access_time</igx-icon>\n </igx-prefix>\n\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n </ng-container>\n\n <igx-suffix *ngIf=\"this.showClearButton\" (click)=\"this.clear(); $event.stopPropagation()\">\n <igx-icon>clear</igx-icon>\n </igx-suffix>\n\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n </ng-container>\n <ng-container ngProjectAs=\"igx-hint\">\n <ng-content select=\"igx-hint,[igxHint]\"></ng-content>\n </ng-container>\n</igx-input-group>\n\n<ng-template #defaultTimePickerActions>\n <div *ngIf=\"this.cancelButtonLabel || this.okButtonLabel\" class=\"igx-time-picker__buttons\">\n <button *ngIf=\"this.cancelButtonLabel\" igxButton=\"flat\" (click)=\"this.cancelButtonClick()\">\n {{this.cancelButtonLabel}}\n </button>\n <button *ngIf=\"this.okButtonLabel\" igxButton=\"flat\" (click)=\"this.okButtonClick()\">\n {{this.okButtonLabel}}\n </button>\n </div>\n</ng-template>\n\n<div #toggleDirective=\"toggle\" igxToggle role=\"dialog\" class=\"igx-time-picker\"\n [ngClass]=\"{'igx-time-picker--dropdown': this.isDropdown, 'igx-time-picker--vertical': this.isVertical && !this.isDropdown}\">\n <div *ngIf=\"!this.isDropdown\" class=\"igx-time-picker__header\">\n <h2 class=\"igx-time-picker__header-hour\">\n <span>{{ this.selectedDate | timeFormatPipe }}</span>\n </h2>\n </div>\n <div class=\"igx-time-picker__main\">\n <div class=\"igx-time-picker__body\">\n <div *ngIf=\"this.showHoursList\" #hourList [igxItemList]=\"'hourList'\">\n <span [igxTimeItem]=\"hour\" #timeItem=\"timeItem\" aria-label=\"hour\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? timeItem.hourValue : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n *ngFor=\"let hour of hourItems | timeItemPipe:'hour':this.selectedDate:this.minDropdownValue:this.maxDropdownValue\">{{ hour }}</span>\n </div>\n <div *ngIf=\"this.showMinutesList\" #minuteList [igxItemList]=\"'minuteList'\">\n <span [igxTimeItem]=\"minute\" #timeItem=\"timeItem\" aria-label=\"minutes\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? minute : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n *ngFor=\"let minute of minuteItems | timeItemPipe:'minutes':this.selectedDate:this.minDropdownValue:this.maxDropdownValue\">{{ minute }}</span>\n </div>\n <div *ngIf=\"this.showSecondsList\" #secondsList [igxItemList]=\"'secondsList'\">\n <span [igxTimeItem]=\"seconds\" #timeItem=\"timeItem\" aria-label=\"seconds\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? seconds : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n *ngFor=\"let seconds of secondsItems | timeItemPipe:'seconds':this.selectedDate:this.minDropdownValue:this.maxDropdownValue\">{{ seconds }}</span>\n </div>\n <div *ngIf=\"this.showAmPmList\" #ampmList [igxItemList]=\"'ampmList'\">\n <span [igxTimeItem]=\"ampm\" #timeItem=\"timeItem\" aria-label=\"ampm\"\n [attr.role]=\"timeItem.isSelectedTime ? 'spinbutton' : null\"\n [attr.aria-valuenow]=\"timeItem.isSelectedTime ? ampm : null\"\n [attr.aria-valuemin]=\"timeItem.isSelectedTime ? timeItem.minValue : null\"\n [attr.aria-valuemax]=\"timeItem.isSelectedTime ? timeItem.maxValue : null\"\n *ngFor=\"let ampm of ampmItems | timeItemPipe:'ampm':this.selectedDate:this.minDropdownValue:this.maxDropdownValue\">{{ ampm }}</span>\n </div>\n </div>\n <ng-container\n *ngTemplateOutlet=\"timePickerActionsDirective ? timePickerActionsDirective.template : defaultTimePickerActions\">\n </ng-container>\n </div>\n</div>\n",
67349
67308
  styles: [":host {\n display: block;\n }"]
67350
67309
  },] }
67351
67310
  ];
@@ -69178,7 +69137,8 @@
69178
69137
  configurable: true
69179
69138
  });
69180
69139
  /**
69181
- * @deprecated
69140
+ * @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
69141
+ *
69182
69142
  * Returns a `CellType` object that matches the conditions.
69183
69143
  *
69184
69144
  * @example
@@ -70005,9 +69965,6 @@
70005
69965
  dropAreaMessage: [{ type: i0.Input }],
70006
69966
  showGroupArea: [{ type: i0.Input }]
70007
69967
  };
70008
- __decorate([
70009
- DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
70010
- ], IgxGridComponent.prototype, "getCellByColumnVisibleIndex", null);
70011
69968
 
70012
69969
  var IgxGridStateDirective = /** @class */ (function () {
70013
69970
  /**
@@ -73183,7 +73140,8 @@
73183
73140
  configurable: true
73184
73141
  });
73185
73142
  /**
73186
- * @deprecated
73143
+ * @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
73144
+ *
73187
73145
  * Returns a `CellType` object that matches the conditions.
73188
73146
  *
73189
73147
  * @example
@@ -73240,7 +73198,7 @@
73240
73198
  // if a row has been added and before commiting the transaction deleted
73241
73199
  var leafRowsDirectParents_1 = new Set();
73242
73200
  _this.records.forEach(function (record) {
73243
- if (record && !record.children && record.parent) {
73201
+ if (record && (!record.children || record.children.length === 0) && record.parent) {
73244
73202
  leafRowsDirectParents_1.add(record.parent);
73245
73203
  }
73246
73204
  });
@@ -73256,7 +73214,7 @@
73256
73214
  if (_this.rowSelection === GridSelectionMode.multipleCascade) {
73257
73215
  var leafRowsDirectParents_2 = new Set();
73258
73216
  _this.records.forEach(function (record) {
73259
- if (record && !record.children && record.parent) {
73217
+ if (record && (!record.children || record.children.length === 0) && record.parent) {
73260
73218
  leafRowsDirectParents_2.add(record.parent);
73261
73219
  }
73262
73220
  });
@@ -73895,9 +73853,6 @@
73895
73853
  expansionDepth: [{ type: i0.Input }],
73896
73854
  rowLoadingIndicatorTemplate: [{ type: i0.Input }]
73897
73855
  };
73898
- __decorate([
73899
- DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
73900
- ], IgxTreeGridComponent.prototype, "getCellByColumnVisibleIndex", null);
73901
73856
 
73902
73857
  var IgxTreeGridRowComponent = /** @class */ (function (_super) {
73903
73858
  __extends(IgxTreeGridRowComponent, _super);
@@ -76395,7 +76350,8 @@
76395
76350
  configurable: true
76396
76351
  });
76397
76352
  /**
76398
- * @deprecated
76353
+ * @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
76354
+ *
76399
76355
  * Returns a `CellType` object that matches the conditions.
76400
76356
  *
76401
76357
  * @example
@@ -77091,9 +77047,6 @@
77091
77047
  data: [{ type: i0.Input }],
77092
77048
  expandChildren: [{ type: i0.Input }]
77093
77049
  };
77094
- __decorate([
77095
- DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
77096
- ], IgxHierarchicalGridComponent.prototype, "getCellByColumnVisibleIndex", null);
77097
77050
 
77098
77051
  var IgxHierarchicalGridCellComponent = /** @class */ (function (_super) {
77099
77052
  __extends(IgxHierarchicalGridCellComponent, _super);
@@ -82091,6 +82044,8 @@
82091
82044
  }
82092
82045
  Object.defineProperty(IgxToastComponent.prototype, "position", {
82093
82046
  /**
82047
+ * @deprecated in version 12.2.3. We suggest using `positionSettings` property instead
82048
+ *
82094
82049
  * Sets/gets the position of the toast.
82095
82050
  * If not set, the `position` attribute will have value `IgxToastPosition.Bottom`.
82096
82051
  * ```html
@@ -82247,9 +82202,6 @@
82247
82202
  position: [{ type: i0.Input }],
82248
82203
  positionSettings: [{ type: i0.Input }]
82249
82204
  };
82250
- __decorate([
82251
- DeprecateProperty('`position` is deprecated. We suggest using `positionSettings` property instead.')
82252
- ], IgxToastComponent.prototype, "position", null);
82253
82205
  /**
82254
82206
  * @hidden
82255
82207
  */
@@ -86504,208 +86456,206 @@
86504
86456
  exports.toPercent = toPercent;
86505
86457
  exports.valueInRange = valueInRange;
86506
86458
  exports.weekDay = weekDay;
86507
- exports1 = ɵ1;
86508
- exports2 = ɵ2;
86509
- exports.ɵa = IgxActionStripMenuItemDirective;
86510
- exports.ɵb = IGX_DROPDOWN_BASE;
86511
- exports.ɵba = IgxGridActionButtonComponent;
86512
- exports.ɵbb = ToggleAnimationPlayer;
86513
- exports.ɵbc = IgxExpansionPanelTitleDirective;
86514
- exports.ɵbd = IgxExpansionPanelDescriptionDirective;
86515
- exports.ɵbe = IgxExpansionPanelIconDirective;
86516
- exports.ɵbf = IgxBannerActionsDirective;
86517
- exports.ɵbg = IgxDaysViewNavigationService;
86518
- exports.ɵbh = IgxDayItemComponent;
86519
- exports.ɵbi = IgxMonthViewSlotsCalendar;
86520
- exports.ɵbj = IgxGetViewDateCalendar;
86521
- exports.ɵbk = IgxCarouselIndicatorDirective;
86522
- exports.ɵbl = IgxCarouselNextButtonDirective;
86523
- exports.ɵbm = IgxCarouselPrevButtonDirective;
86524
- exports.ɵbn = IGX_COMBO_COMPONENT;
86525
- exports.ɵbp = IgxComboBaseDirective;
86526
- exports.ɵbq = IgxComboHeaderDirective;
86527
- exports.ɵbr = IgxComboFooterDirective;
86528
- exports.ɵbs = IgxComboItemDirective;
86529
- exports.ɵbt = IgxComboEmptyDirective;
86530
- exports.ɵbu = IgxComboHeaderItemDirective;
86531
- exports.ɵbv = IgxComboAddItemDirective;
86532
- exports.ɵbw = IgxComboToggleIconDirective;
86533
- exports.ɵbx = IgxComboClearIconDirective;
86534
- exports.ɵby = IgxComboAPIService;
86535
- exports.ɵbz = IgxComboDropDownComponent;
86536
- exports.ɵca = IgxComboItemComponent;
86537
- exports.ɵcb = IgxComboFilteringPipe;
86538
- exports.ɵcc = IgxComboGroupingPipe;
86539
- exports.ɵcd = IgxComboAddItemComponent;
86540
- exports.ɵce = PickerBaseDirective;
86541
- exports.ɵcf = IgxCalendarContainerComponent;
86542
- exports.ɵcg = IgxCalendarContainerModule;
86543
- exports.ɵch = IgxDialogTitleDirective;
86544
- exports.ɵci = IgxDialogActionsDirective;
86545
- exports.ɵcj = IgxCellCrudState;
86546
- exports.ɵck = IgxRowCrudState;
86547
- exports.ɵcl = IgxRowAddCrudState;
86548
- exports.ɵcm = IgxGridCRUDService;
86549
- exports.ɵcn = IgxColumnMovingService;
86550
- exports.ɵco = IgxExcelStyleCustomDialogComponent;
86551
- exports.ɵcp = IgxExcelStyleDefaultExpressionComponent;
86552
- exports.ɵcq = IgxExcelStyleDateExpressionComponent;
86553
- exports.ɵcr = HammerGesturesManager;
86554
- exports.ɵcs = WatchChanges;
86555
- exports.ɵct = WatchColumnChanges;
86556
- exports.ɵcu = notifyChanges;
86557
- exports.ɵcv = IgxNotificationsDirective;
86558
- exports.ɵcw = IgxGridColumnResizerComponent;
86559
- exports.ɵcx = IgxColumnResizerDirective;
86560
- exports.ɵcy = IgxColumnResizingService;
86561
- exports.ɵcz = IgxRowSelectorDirective;
86562
- exports.ɵd = IgxGridSelectionService;
86563
- exports.ɵda = IgxGroupByRowSelectorDirective;
86564
- exports.ɵdb = IgxHeadSelectorDirective;
86565
- exports.ɵdc = IgxRowDragDirective;
86566
- exports.ɵdd = IgxDragIndicatorIconDirective;
86567
- exports.ɵde = IgxRowDragGhostDirective;
86568
- exports.ɵdf = IgxRowDragModule;
86569
- exports.ɵdg = IgxGridHeaderRowComponent;
86570
- exports.ɵdh = IgxGridHeaderGroupComponent;
86571
- exports.ɵdi = IgxGridHeaderComponent;
86572
- exports.ɵdj = IgxGridFilteringCellComponent;
86573
- exports.ɵdk = IgxFilteringService;
86574
- exports.ɵdl = IgxGridFilteringRowComponent;
86575
- exports.ɵdm = IgxGridGroupByAreaComponent;
86576
- exports.ɵdn = IgxGroupByAreaDirective;
86577
- exports.ɵdo = IgxGroupByMetaPipe;
86578
- exports.ɵdp = IgxTemplateOutletDirective;
86579
- exports.ɵdq = IgxTemplateOutletModule;
86580
- exports.ɵdr = IgxRowEditTemplateDirective;
86581
- exports.ɵds = IgxRowEditTextDirective;
86582
- exports.ɵdt = IgxRowAddTextDirective;
86583
- exports.ɵdu = IgxRowEditActionsDirective;
86584
- exports.ɵdv = IgxRowEditTabStopDirective;
86585
- exports.ɵdw = IgxSummaryRowComponent;
86586
- exports.ɵdx = IgxSummaryCellComponent;
86587
- exports.ɵdy = IgxRowDirective;
86588
- exports.ɵdz = IgxGridNavigationService;
86589
- exports.ɵea = IgxGridSummaryService;
86590
- exports.ɵeb = ConnectedPositioningStrategy;
86591
- exports.ɵec = IgxGridGroupByRowComponent;
86592
- exports.ɵed = IgxTreeGridSelectionService;
86593
- exports.ɵee = IgxTreeGridGroupByAreaComponent;
86594
- exports.ɵef = IgxRowLoadingIndicatorTemplateDirective;
86595
- exports.ɵeg = IgxHierarchicalGridNavigationService;
86596
- exports.ɵeh = IgxChildGridRowComponent;
86597
- exports.ɵei = IgxGridCellComponent;
86598
- exports.ɵej = IgxGridFooterComponent;
86599
- exports.ɵek = IgxAdvancedFilteringDialogComponent;
86600
- exports.ɵel = IgxColumnHidingDirective;
86601
- exports.ɵem = IgxColumnPinningDirective;
86602
- exports.ɵen = IgxGridSharedModules;
86603
- exports.ɵeo = IgxProcessBarTextTemplateDirective;
86604
- exports.ɵep = IgxProgressBarGradientDirective;
86605
- exports.ɵeq = DIR_DOCUMENT_FACTORY;
86606
- exports.ɵer = DIR_DOCUMENT;
86607
- exports.ɵes = IgxDirectionality;
86608
- exports.ɵet = IgxSelectItemNavigationDirective;
86609
- exports.ɵeu = IGX_TIME_PICKER_COMPONENT;
86610
- exports.ɵew = IgxItemListDirective;
86611
- exports.ɵex = IgxTimeItemDirective;
86612
- exports.ɵey = IgxTimePickerTemplateDirective;
86613
- exports.ɵez = IgxTimePickerActionsDirective;
86614
- exports.ɵf = IGX_EXPANSION_PANEL_COMPONENT;
86615
- exports.ɵfa = TimeFormatPipe;
86616
- exports.ɵfb = TimeItemPipe;
86617
- exports.ɵfc = IgxGridPipesModule;
86618
- exports.ɵfd = IgxGridCellStyleClassesPipe;
86619
- exports.ɵfe = IgxGridCellStylesPipe;
86620
- exports.ɵff = IgxGridRowClassesPipe;
86621
- exports.ɵfg = IgxGridRowStylesPipe;
86622
- exports.ɵfh = IgxGridNotGroupedPipe;
86623
- exports.ɵfi = IgxGridTopLevelColumns;
86624
- exports.ɵfj = IgxGridFilterConditionPipe;
86625
- exports.ɵfk = IgxGridTransactionPipe;
86626
- exports.ɵfl = IgxGridPaginatorOptionsPipe;
86627
- exports.ɵfm = IgxHasVisibleColumnsPipe;
86628
- exports.ɵfn = IgxGridRowPinningPipe;
86629
- exports.ɵfo = IgxColumnActionEnabledPipe;
86630
- exports.ɵfp = IgxFilterActionColumnsPipe;
86631
- exports.ɵfq = IgxSortActionColumnsPipe;
86632
- exports.ɵfr = IgxGridDataMapperPipe;
86633
- exports.ɵfs = IgxStringReplacePipe;
86634
- exports.ɵft = IgxGridTransactionStatePipe;
86635
- exports.ɵfu = IgxColumnFormatterPipe;
86636
- exports.ɵfv = IgxSummaryFormatterPipe;
86637
- exports.ɵfw = IgxGridAddRowPipe;
86638
- exports.ɵfx = IgxHeaderGroupWidthPipe;
86639
- exports.ɵfy = IgxHeaderGroupStylePipe;
86640
- exports.ɵfz = IgxGridColumnModule;
86641
- exports.ɵg = IGX_TREE_COMPONENT;
86642
- exports.ɵga = IgxGridHeadersModule;
86643
- exports.ɵgb = SortingIndexPipe;
86644
- exports.ɵgc = IgxGridFilteringModule;
86645
- exports.ɵgd = IgxColumnMovingModule;
86646
- exports.ɵge = IgxColumnMovingDropDirective;
86647
- exports.ɵgf = IgxColumnMovingDragDirective;
86648
- exports.ɵgg = IgxGridResizingModule;
86649
- exports.ɵgh = IgxResizeHandleDirective;
86650
- exports.ɵgi = IgxGridExcelStyleFilteringModule;
86651
- exports.ɵgj = IgxGridSelectionModule;
86652
- exports.ɵgk = IgxGridDragSelectDirective;
86653
- exports.ɵgl = IgxGridSummaryModule;
86654
- exports.ɵgm = IgxSummaryDataPipe;
86655
- exports.ɵgn = IgxGridToolbarModule;
86656
- exports.ɵgo = BaseToolbarDirective;
86657
- exports.ɵgp = BaseToolbarColumnActionsDirective;
86658
- exports.ɵgq = IgxGridRowComponent;
86659
- exports.ɵgr = IgxGridSortingPipe;
86660
- exports.ɵgs = IgxGridGroupingPipe;
86661
- exports.ɵgt = IgxGridPagingPipe;
86662
- exports.ɵgu = IgxGridFilteringPipe;
86663
- exports.ɵgv = IgxGridSummaryPipe;
86664
- exports.ɵgw = IgxGridDetailsPipe;
86665
- exports.ɵgx = IgxGridExpandableCellComponent;
86666
- exports.ɵgy = IgxTreeGridRowComponent;
86667
- exports.ɵgz = IgxTreeGridCellComponent;
86668
- exports.ɵh = IGX_TREE_NODE_COMPONENT;
86669
- exports.ɵha = IgxTreeGridHierarchizingPipe;
86670
- exports.ɵhb = IgxTreeGridFlatteningPipe;
86671
- exports.ɵhc = IgxTreeGridSortingPipe;
86672
- exports.ɵhd = IgxTreeGridPagingPipe;
86673
- exports.ɵhe = IgxTreeGridTransactionPipe;
86674
- exports.ɵhf = IgxTreeGridNormalizeRecordsPipe;
86675
- exports.ɵhg = IgxTreeGridAddRowPipe;
86676
- exports.ɵhh = IgxTreeGridFilteringPipe;
86677
- exports.ɵhi = IgxTreeGridSummaryPipe;
86678
- exports.ɵhj = IgxHierarchicalRowComponent;
86679
- exports.ɵhk = IgxHierarchicalGridCellComponent;
86680
- exports.ɵhl = IgxSliderThumbComponent;
86681
- exports.ɵhm = IgxThumbLabelComponent;
86682
- exports.ɵhn = IgxTicksComponent;
86683
- exports.ɵho = IgxTickLabelsPipe;
86684
- exports.ɵhp = IgxTabsBase;
86685
- exports.ɵhq = IgxTabHeaderBase;
86686
- exports.ɵhr = IgxTabContentBase;
86687
- exports.ɵhs = IgxSplitBarComponent;
86688
- exports.ɵht = IgxTreeService;
86689
- exports.ɵhu = IgxTreeSelectionService;
86690
- exports.ɵhv = IgxTreeNavigationService;
86691
- exports.ɵi = PlatformUtil;
86692
- exports.ɵl = IgxInputGroupBase;
86693
- exports.ɵm = IgxSelectionAPIService;
86694
- exports.ɵn = IgxForOfSyncService;
86695
- exports.ɵo = IgxForOfScrollSyncService;
86696
- exports.ɵp = DisplayContainerComponent;
86697
- exports.ɵq = IgxScrollInertiaDirective;
86698
- exports.ɵr = IgxScrollInertiaModule;
86699
- exports.ɵs = VirtualHelperComponent;
86700
- exports.ɵt = VirtualHelperBaseDirective;
86701
- exports.ɵu = HVirtualHelperComponent;
86702
- exports.ɵv = MaskParsingService;
86703
- exports.ɵw = DeprecateMethod;
86704
- exports.ɵx = DeprecateProperty;
86705
- exports.ɵy = isHierarchyMatch;
86706
- exports.ɵz = getHierarchy;
86459
+ exports["ɵ1"] = ɵ1;
86460
+ exports["ɵ2"] = ɵ2;
86461
+ exports["ɵa"] = IgxActionStripMenuItemDirective;
86462
+ exports["ɵb"] = IGX_DROPDOWN_BASE;
86463
+ exports["ɵba"] = IgxExpansionPanelTitleDirective;
86464
+ exports["ɵbb"] = IgxExpansionPanelDescriptionDirective;
86465
+ exports["ɵbc"] = IgxExpansionPanelIconDirective;
86466
+ exports["ɵbd"] = IgxBannerActionsDirective;
86467
+ exports["ɵbe"] = IgxDaysViewNavigationService;
86468
+ exports["ɵbf"] = IgxDayItemComponent;
86469
+ exports["ɵbg"] = IgxMonthViewSlotsCalendar;
86470
+ exports["ɵbh"] = IgxGetViewDateCalendar;
86471
+ exports["ɵbi"] = IgxCarouselIndicatorDirective;
86472
+ exports["ɵbj"] = IgxCarouselNextButtonDirective;
86473
+ exports["ɵbk"] = IgxCarouselPrevButtonDirective;
86474
+ exports["ɵbl"] = IGX_COMBO_COMPONENT;
86475
+ exports["ɵbn"] = IgxComboBaseDirective;
86476
+ exports["ɵbo"] = IgxComboHeaderDirective;
86477
+ exports["ɵbp"] = IgxComboFooterDirective;
86478
+ exports["ɵbq"] = IgxComboItemDirective;
86479
+ exports["ɵbr"] = IgxComboEmptyDirective;
86480
+ exports["ɵbs"] = IgxComboHeaderItemDirective;
86481
+ exports["ɵbt"] = IgxComboAddItemDirective;
86482
+ exports["ɵbu"] = IgxComboToggleIconDirective;
86483
+ exports["ɵbv"] = IgxComboClearIconDirective;
86484
+ exports["ɵbw"] = IgxComboAPIService;
86485
+ exports["ɵbx"] = IgxComboDropDownComponent;
86486
+ exports["ɵby"] = IgxComboItemComponent;
86487
+ exports["ɵbz"] = IgxComboFilteringPipe;
86488
+ exports["ɵca"] = IgxComboGroupingPipe;
86489
+ exports["ɵcb"] = IgxComboAddItemComponent;
86490
+ exports["ɵcc"] = PickerBaseDirective;
86491
+ exports["ɵcd"] = IgxCalendarContainerComponent;
86492
+ exports["ɵce"] = IgxCalendarContainerModule;
86493
+ exports["ɵcf"] = IgxDialogTitleDirective;
86494
+ exports["ɵcg"] = IgxDialogActionsDirective;
86495
+ exports["ɵch"] = IgxCellCrudState;
86496
+ exports["ɵci"] = IgxRowCrudState;
86497
+ exports["ɵcj"] = IgxRowAddCrudState;
86498
+ exports["ɵck"] = IgxGridCRUDService;
86499
+ exports["ɵcl"] = IgxColumnMovingService;
86500
+ exports["ɵcm"] = IgxExcelStyleCustomDialogComponent;
86501
+ exports["ɵcn"] = IgxExcelStyleDefaultExpressionComponent;
86502
+ exports["ɵco"] = IgxExcelStyleDateExpressionComponent;
86503
+ exports["ɵcp"] = HammerGesturesManager;
86504
+ exports["ɵcq"] = WatchChanges;
86505
+ exports["ɵcr"] = WatchColumnChanges;
86506
+ exports["ɵcs"] = notifyChanges;
86507
+ exports["ɵct"] = IgxNotificationsDirective;
86508
+ exports["ɵcu"] = IgxGridColumnResizerComponent;
86509
+ exports["ɵcv"] = IgxColumnResizerDirective;
86510
+ exports["ɵcw"] = IgxColumnResizingService;
86511
+ exports["ɵcx"] = IgxRowSelectorDirective;
86512
+ exports["ɵcy"] = IgxGroupByRowSelectorDirective;
86513
+ exports["ɵcz"] = IgxHeadSelectorDirective;
86514
+ exports["ɵd"] = IgxGridSelectionService;
86515
+ exports["ɵda"] = IgxRowDragDirective;
86516
+ exports["ɵdb"] = IgxDragIndicatorIconDirective;
86517
+ exports["ɵdc"] = IgxRowDragGhostDirective;
86518
+ exports["ɵdd"] = IgxRowDragModule;
86519
+ exports["ɵde"] = IgxGridHeaderRowComponent;
86520
+ exports["ɵdf"] = IgxGridHeaderGroupComponent;
86521
+ exports["ɵdg"] = IgxGridHeaderComponent;
86522
+ exports["ɵdh"] = IgxGridFilteringCellComponent;
86523
+ exports["ɵdi"] = IgxFilteringService;
86524
+ exports["ɵdj"] = IgxGridFilteringRowComponent;
86525
+ exports["ɵdk"] = IgxGridGroupByAreaComponent;
86526
+ exports["ɵdl"] = IgxGroupByAreaDirective;
86527
+ exports["ɵdm"] = IgxGroupByMetaPipe;
86528
+ exports["ɵdn"] = IgxTemplateOutletDirective;
86529
+ exports["ɵdo"] = IgxTemplateOutletModule;
86530
+ exports["ɵdp"] = IgxRowEditTemplateDirective;
86531
+ exports["ɵdq"] = IgxRowEditTextDirective;
86532
+ exports["ɵdr"] = IgxRowAddTextDirective;
86533
+ exports["ɵds"] = IgxRowEditActionsDirective;
86534
+ exports["ɵdt"] = IgxRowEditTabStopDirective;
86535
+ exports["ɵdu"] = IgxSummaryRowComponent;
86536
+ exports["ɵdv"] = IgxSummaryCellComponent;
86537
+ exports["ɵdw"] = IgxRowDirective;
86538
+ exports["ɵdx"] = IgxGridNavigationService;
86539
+ exports["ɵdy"] = IgxGridSummaryService;
86540
+ exports["ɵdz"] = ConnectedPositioningStrategy;
86541
+ exports["ɵea"] = IgxGridGroupByRowComponent;
86542
+ exports["ɵeb"] = IgxTreeGridSelectionService;
86543
+ exports["ɵec"] = IgxTreeGridGroupByAreaComponent;
86544
+ exports["ɵed"] = IgxRowLoadingIndicatorTemplateDirective;
86545
+ exports["ɵee"] = IgxHierarchicalGridNavigationService;
86546
+ exports["ɵef"] = IgxChildGridRowComponent;
86547
+ exports["ɵeg"] = IgxGridCellComponent;
86548
+ exports["ɵeh"] = IgxGridFooterComponent;
86549
+ exports["ɵei"] = IgxAdvancedFilteringDialogComponent;
86550
+ exports["ɵej"] = IgxColumnHidingDirective;
86551
+ exports["ɵek"] = IgxColumnPinningDirective;
86552
+ exports["ɵel"] = IgxGridSharedModules;
86553
+ exports["ɵem"] = IgxProcessBarTextTemplateDirective;
86554
+ exports["ɵen"] = IgxProgressBarGradientDirective;
86555
+ exports["ɵeo"] = DIR_DOCUMENT_FACTORY;
86556
+ exports["ɵep"] = DIR_DOCUMENT;
86557
+ exports["ɵeq"] = IgxDirectionality;
86558
+ exports["ɵer"] = IgxSelectItemNavigationDirective;
86559
+ exports["ɵes"] = IGX_TIME_PICKER_COMPONENT;
86560
+ exports["ɵeu"] = IgxItemListDirective;
86561
+ exports["ɵev"] = IgxTimeItemDirective;
86562
+ exports["ɵew"] = IgxTimePickerTemplateDirective;
86563
+ exports["ɵex"] = IgxTimePickerActionsDirective;
86564
+ exports["ɵey"] = TimeFormatPipe;
86565
+ exports["ɵez"] = TimeItemPipe;
86566
+ exports["ɵf"] = IGX_EXPANSION_PANEL_COMPONENT;
86567
+ exports["ɵfa"] = IgxGridPipesModule;
86568
+ exports["ɵfb"] = IgxGridCellStyleClassesPipe;
86569
+ exports["ɵfc"] = IgxGridCellStylesPipe;
86570
+ exports["ɵfd"] = IgxGridRowClassesPipe;
86571
+ exports["ɵfe"] = IgxGridRowStylesPipe;
86572
+ exports["ɵff"] = IgxGridNotGroupedPipe;
86573
+ exports["ɵfg"] = IgxGridTopLevelColumns;
86574
+ exports["ɵfh"] = IgxGridFilterConditionPipe;
86575
+ exports["ɵfi"] = IgxGridTransactionPipe;
86576
+ exports["ɵfj"] = IgxGridPaginatorOptionsPipe;
86577
+ exports["ɵfk"] = IgxHasVisibleColumnsPipe;
86578
+ exports["ɵfl"] = IgxGridRowPinningPipe;
86579
+ exports["ɵfm"] = IgxColumnActionEnabledPipe;
86580
+ exports["ɵfn"] = IgxFilterActionColumnsPipe;
86581
+ exports["ɵfo"] = IgxSortActionColumnsPipe;
86582
+ exports["ɵfp"] = IgxGridDataMapperPipe;
86583
+ exports["ɵfq"] = IgxStringReplacePipe;
86584
+ exports["ɵfr"] = IgxGridTransactionStatePipe;
86585
+ exports["ɵfs"] = IgxColumnFormatterPipe;
86586
+ exports["ɵft"] = IgxSummaryFormatterPipe;
86587
+ exports["ɵfu"] = IgxGridAddRowPipe;
86588
+ exports["ɵfv"] = IgxHeaderGroupWidthPipe;
86589
+ exports["ɵfw"] = IgxHeaderGroupStylePipe;
86590
+ exports["ɵfx"] = IgxGridColumnModule;
86591
+ exports["ɵfy"] = IgxGridHeadersModule;
86592
+ exports["ɵfz"] = SortingIndexPipe;
86593
+ exports["ɵg"] = IGX_TREE_COMPONENT;
86594
+ exports["ɵga"] = IgxGridFilteringModule;
86595
+ exports["ɵgb"] = IgxColumnMovingModule;
86596
+ exports["ɵgc"] = IgxColumnMovingDropDirective;
86597
+ exports["ɵgd"] = IgxColumnMovingDragDirective;
86598
+ exports["ɵge"] = IgxGridResizingModule;
86599
+ exports["ɵgf"] = IgxResizeHandleDirective;
86600
+ exports["ɵgg"] = IgxGridExcelStyleFilteringModule;
86601
+ exports["ɵgh"] = IgxGridSelectionModule;
86602
+ exports["ɵgi"] = IgxGridDragSelectDirective;
86603
+ exports["ɵgj"] = IgxGridSummaryModule;
86604
+ exports["ɵgk"] = IgxSummaryDataPipe;
86605
+ exports["ɵgl"] = IgxGridToolbarModule;
86606
+ exports["ɵgm"] = BaseToolbarDirective;
86607
+ exports["ɵgn"] = BaseToolbarColumnActionsDirective;
86608
+ exports["ɵgo"] = IgxGridRowComponent;
86609
+ exports["ɵgp"] = IgxGridSortingPipe;
86610
+ exports["ɵgq"] = IgxGridGroupingPipe;
86611
+ exports["ɵgr"] = IgxGridPagingPipe;
86612
+ exports["ɵgs"] = IgxGridFilteringPipe;
86613
+ exports["ɵgt"] = IgxGridSummaryPipe;
86614
+ exports["ɵgu"] = IgxGridDetailsPipe;
86615
+ exports["ɵgv"] = IgxGridExpandableCellComponent;
86616
+ exports["ɵgw"] = IgxTreeGridRowComponent;
86617
+ exports["ɵgx"] = IgxTreeGridCellComponent;
86618
+ exports["ɵgy"] = IgxTreeGridHierarchizingPipe;
86619
+ exports["ɵgz"] = IgxTreeGridFlatteningPipe;
86620
+ exports["ɵh"] = IGX_TREE_NODE_COMPONENT;
86621
+ exports["ɵha"] = IgxTreeGridSortingPipe;
86622
+ exports["ɵhb"] = IgxTreeGridPagingPipe;
86623
+ exports["ɵhc"] = IgxTreeGridTransactionPipe;
86624
+ exports["ɵhd"] = IgxTreeGridNormalizeRecordsPipe;
86625
+ exports["ɵhe"] = IgxTreeGridAddRowPipe;
86626
+ exports["ɵhf"] = IgxTreeGridFilteringPipe;
86627
+ exports["ɵhg"] = IgxTreeGridSummaryPipe;
86628
+ exports["ɵhh"] = IgxHierarchicalRowComponent;
86629
+ exports["ɵhi"] = IgxHierarchicalGridCellComponent;
86630
+ exports["ɵhj"] = IgxSliderThumbComponent;
86631
+ exports["ɵhk"] = IgxThumbLabelComponent;
86632
+ exports["ɵhl"] = IgxTicksComponent;
86633
+ exports["ɵhm"] = IgxTickLabelsPipe;
86634
+ exports["ɵhn"] = IgxTabsBase;
86635
+ exports["ɵho"] = IgxTabHeaderBase;
86636
+ exports["ɵhp"] = IgxTabContentBase;
86637
+ exports["ɵhq"] = IgxSplitBarComponent;
86638
+ exports["ɵhr"] = IgxTreeService;
86639
+ exports["ɵhs"] = IgxTreeSelectionService;
86640
+ exports["ɵht"] = IgxTreeNavigationService;
86641
+ exports["ɵi"] = PlatformUtil;
86642
+ exports["ɵl"] = IgxInputGroupBase;
86643
+ exports["ɵm"] = IgxSelectionAPIService;
86644
+ exports["ɵn"] = IgxForOfSyncService;
86645
+ exports["ɵo"] = IgxForOfScrollSyncService;
86646
+ exports["ɵp"] = DisplayContainerComponent;
86647
+ exports["ɵq"] = IgxScrollInertiaDirective;
86648
+ exports["ɵr"] = IgxScrollInertiaModule;
86649
+ exports["ɵs"] = VirtualHelperComponent;
86650
+ exports["ɵt"] = VirtualHelperBaseDirective;
86651
+ exports["ɵu"] = HVirtualHelperComponent;
86652
+ exports["ɵv"] = MaskParsingService;
86653
+ exports["ɵw"] = isHierarchyMatch;
86654
+ exports["ɵx"] = getHierarchy;
86655
+ exports["ɵy"] = IgxGridActionButtonComponent;
86656
+ exports["ɵz"] = ToggleAnimationPlayer;
86707
86657
 
86708
86658
  Object.defineProperty(exports, '__esModule', { value: true });
86709
86659
 
86710
- })));
86660
+ }));
86711
86661
  //# sourceMappingURL=igniteui-angular.umd.js.map