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,7 +1,7 @@
1
1
  import * as i1 from '@angular/animations';
2
2
  import { style, animate, animation, keyframes, AnimationBuilder, useAnimation, trigger, transition } from '@angular/animations';
3
3
  import * as i0 from '@angular/core';
4
- import { Injectable, Directive, Input, HostListener, NgModule, Inject, PLATFORM_ID, SimpleChange, InjectionToken, EventEmitter, Optional, Output, ElementRef, Renderer2, NgZone, Component, ViewChild, HostBinding, forwardRef, ChangeDetectorRef, ViewContainerRef, TemplateRef, IterableDiffers, ComponentFactoryResolver, QueryList, ViewChildren, ChangeDetectionStrategy, ContentChild, ContentChildren, ApplicationRef, Injector, isDevMode, Self, SecurityContext, Pipe, LOCALE_ID, Host, NgModuleRef, inject, CUSTOM_ELEMENTS_SCHEMA, SkipSelf } from '@angular/core';
4
+ import { Injectable, Directive, Input, HostListener, NgModule, isDevMode, Inject, PLATFORM_ID, SimpleChange, InjectionToken, EventEmitter, Optional, Output, ElementRef, Renderer2, NgZone, Component, ViewChild, HostBinding, forwardRef, ChangeDetectorRef, ViewContainerRef, TemplateRef, IterableDiffers, ComponentFactoryResolver, QueryList, ViewChildren, ChangeDetectionStrategy, ContentChild, ContentChildren, ApplicationRef, Injector, Self, SecurityContext, Pipe, LOCALE_ID, Host, NgModuleRef, inject, CUSTOM_ELEMENTS_SCHEMA, SkipSelf } from '@angular/core';
5
5
  import { NG_VALUE_ACCESSOR, NG_VALIDATORS, CheckboxRequiredValidator, NgModel, FormControlName, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';
6
6
  import * as i2 from '@angular/common';
7
7
  import { isPlatformBrowser, CommonModule, DOCUMENT, DatePipe, formatDate, FormatWidth, getLocaleDateFormat, getLocaleCurrencyCode, DecimalPipe, CurrencyPipe, PercentPipe, getLocaleNumberFormat, NumberFormatStyle, getCurrencySymbol } from '@angular/common';
@@ -892,7 +892,7 @@ const run = (id) => {
892
892
  fn();
893
893
  }
894
894
  };
895
- const ɵ0$5 = run;
895
+ const ɵ0$4 = run;
896
896
  const listener = (event) => run(event.data);
897
897
  const ɵ1$1 = listener;
898
898
  // Use function instead of arrow function to workaround an issue in codesandbox
@@ -920,6 +920,15 @@ function clearImmediate(id) {
920
920
  delete queue[id];
921
921
  }
922
922
 
923
+ /**
924
+ * @hidden
925
+ */
926
+ const showMessage = (message, isMessageShown) => {
927
+ if (!isMessageShown && isDevMode()) {
928
+ console.warn(message);
929
+ }
930
+ return true;
931
+ };
923
932
  const mkenum = (x) => x;
924
933
  /**
925
934
  * Returns the ResizeObserver type or the polyfilled version if not available.
@@ -1702,8 +1711,17 @@ class IgxSorting {
1702
1711
  fullResult.data.push(groupItem);
1703
1712
  }
1704
1713
  if (expanded) {
1705
- metadata.push(...fullResult.metadata.slice(fullResult.metadata.length - group.length));
1706
- result.push(...fullResult.data.slice(fullResult.data.length - group.length));
1714
+ // Replaced object destructing as in a single big group scenario
1715
+ // it hits the max number of arguments for a function the underlying JS engine
1716
+ // supports.
1717
+ let j = fullResult.metadata.length - group.length;
1718
+ for (; j < fullResult.metadata.length; j++) {
1719
+ metadata.push(fullResult.metadata[j]);
1720
+ }
1721
+ j = fullResult.data.length - group.length;
1722
+ for (; j < fullResult.data.length; j++) {
1723
+ result.push(fullResult.data[j]);
1724
+ }
1707
1725
  }
1708
1726
  }
1709
1727
  i += group.length;
@@ -8198,7 +8216,7 @@ IgxRowDirective.propDecorators = {
8198
8216
  };
8199
8217
 
8200
8218
  const clear = (el) => el === 0 || Boolean(el);
8201
- const ɵ0$4 = clear;
8219
+ const ɵ0$3 = clear;
8202
8220
  const first = (arr) => arr[0];
8203
8221
  const ɵ1 = first;
8204
8222
  const last = (arr) => arr[arr.length - 1];
@@ -16382,105 +16400,6 @@ IgxSelectionAPIService.decorators = [
16382
16400
  },] }
16383
16401
  ];
16384
16402
 
16385
- /**
16386
- * @hidden
16387
- */
16388
- const DeprecateClass = (message) => {
16389
- let isMessageShown = false;
16390
- return (originalClass) => class extends originalClass {
16391
- constructor(...args) {
16392
- const target = originalClass;
16393
- const targetName = typeof target === 'function' ? target.name : target.constructor.name;
16394
- isMessageShown = showMessage(`${targetName}: ${message}`, isMessageShown);
16395
- super(...args);
16396
- }
16397
- };
16398
- };
16399
- /**
16400
- * @hidden
16401
- */
16402
- function DeprecateMethod(message) {
16403
- let isMessageShown = false;
16404
- return function (target, key, descriptor) {
16405
- if (descriptor && descriptor.value) {
16406
- const originalMethod = descriptor.value;
16407
- descriptor.value = function () {
16408
- const targetName = typeof target === 'function' ? target.name : target.constructor.name;
16409
- isMessageShown = showMessage(`${targetName}.${key}: ${message}`, isMessageShown);
16410
- const args = [];
16411
- for (const x of arguments) {
16412
- args.push(x);
16413
- }
16414
- return originalMethod.call(this, ...args);
16415
- };
16416
- return descriptor;
16417
- }
16418
- };
16419
- }
16420
- /**
16421
- * @hidden
16422
- */
16423
- function DeprecateProperty(message) {
16424
- return function (target, key) {
16425
- let isMessageShown = false;
16426
- const messageToDisplay = `${target.constructor.name}.${key}: ${message}`;
16427
- // if the target already has the property defined
16428
- const originalDescriptor = Object.getOwnPropertyDescriptor(target, key);
16429
- if (originalDescriptor) {
16430
- const getter = originalDescriptor.get;
16431
- const setter = originalDescriptor.set;
16432
- if (getter) {
16433
- originalDescriptor.get = function () {
16434
- isMessageShown = showMessage(messageToDisplay, isMessageShown);
16435
- return getter.call(this);
16436
- };
16437
- }
16438
- if (setter) {
16439
- originalDescriptor.set = function (value) {
16440
- isMessageShown = showMessage(messageToDisplay, isMessageShown);
16441
- setter.call(this, value);
16442
- };
16443
- }
16444
- return originalDescriptor;
16445
- }
16446
- // the target doesn't contain a descriptor for that property, so create one
16447
- // use backing field to set/get the value of the property to ensure there won't be infinite recursive calls
16448
- const newKey = generateUniqueKey(target, key);
16449
- Object.defineProperty(target, key, {
16450
- configurable: true,
16451
- enumerable: true,
16452
- set(value) {
16453
- isMessageShown = showMessage(messageToDisplay, isMessageShown);
16454
- this[newKey] = value;
16455
- },
16456
- get() {
16457
- isMessageShown = showMessage(messageToDisplay, isMessageShown);
16458
- return this[newKey];
16459
- }
16460
- });
16461
- };
16462
- }
16463
- /**
16464
- * @hidden
16465
- */
16466
- const generateUniqueKey = (target, key) => {
16467
- let newKey = '_' + key;
16468
- while (target.hasOwnProperty(newKey)) {
16469
- newKey = '_' + newKey;
16470
- }
16471
- return newKey;
16472
- };
16473
- const ɵ0$3 = generateUniqueKey;
16474
- /**
16475
- * @hidden
16476
- */
16477
- const showMessage = (message, isMessageShown) => {
16478
- if (!isMessageShown && isDevMode()) {
16479
- console.warn(message);
16480
- }
16481
- return true;
16482
- };
16483
-
16484
16403
  let NEXT_ID$t = 0;
16485
16404
  /**
16486
16405
  * The `<igx-drop-down-item>` is a container intended for row items in
@@ -16550,7 +16469,6 @@ IgxDropDownGroupComponent.propDecorators = {
16550
16469
  };
16551
16470
 
16552
16471
  let NEXT_ID$s = 0;
16553
- let warningShown = false;
16554
16472
  /**
16555
16473
  * An abstract class defining a drop-down item:
16556
16474
  * With properties / styles for selection, highlight, height
@@ -16615,8 +16533,6 @@ class IgxDropDownItemBaseDirective {
16615
16533
  */
16616
16534
  get index() {
16617
16535
  if (this._index === null) {
16618
- warningShown = showMessage('IgxDropDownItemBaseDirective: Automatic index is deprecated.' +
16619
- 'Bind in the template instead using `<igx-drop-down-item [index]="i"` instead.`', warningShown);
16620
16536
  return this.itemIndex;
16621
16537
  }
16622
16538
  return this._index;
@@ -18719,16 +18635,20 @@ IgxButtonModule.decorators = [
18719
18635
  * ```
18720
18636
  */
18721
18637
  class IgxIconService {
18722
- constructor(_sanitizer, _httpClient, _document) {
18638
+ constructor(_sanitizer, _httpClient, _platformUtil, _document) {
18639
+ var _a;
18723
18640
  this._sanitizer = _sanitizer;
18724
18641
  this._httpClient = _httpClient;
18642
+ this._platformUtil = _platformUtil;
18725
18643
  this._document = _document;
18726
18644
  this._family = 'material-icons';
18727
18645
  this._familyAliases = new Map();
18728
18646
  this._cachedSvgIcons = new Map();
18729
18647
  this._iconLoaded = new Subject();
18730
- this._domParser = new DOMParser();
18731
18648
  this.iconLoaded = this._iconLoaded.asObservable();
18649
+ if ((_a = this._platformUtil) === null || _a === void 0 ? void 0 : _a.isBrowser) {
18650
+ this._domParser = new DOMParser();
18651
+ }
18732
18652
  }
18733
18653
  /**
18734
18654
  * Returns the default font-family.
@@ -18848,8 +18768,9 @@ class IgxIconService {
18848
18768
  * @hidden
18849
18769
  */
18850
18770
  cacheSvgIcon(name, value, family = this._family, stripMeta) {
18771
+ var _a;
18851
18772
  family = !!family ? family : this._family;
18852
- if (name && value) {
18773
+ if (((_a = this._platformUtil) === null || _a === void 0 ? void 0 : _a.isBrowser) && name && value) {
18853
18774
  const doc = this._domParser.parseFromString(value, 'image/svg+xml');
18854
18775
  const svg = doc.querySelector('svg');
18855
18776
  if (!this._cachedSvgIcons.has(family)) {
@@ -18874,7 +18795,7 @@ class IgxIconService {
18874
18795
  }
18875
18796
  }
18876
18797
  }
18877
- IgxIconService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IgxIconService_Factory() { return new IgxIconService(i0.ɵɵinject(i1$1.DomSanitizer, 8), i0.ɵɵinject(i2$1.HttpClient, 8), i0.ɵɵinject(i2.DOCUMENT, 8)); }, token: IgxIconService, providedIn: "root" });
18798
+ IgxIconService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IgxIconService_Factory() { return new IgxIconService(i0.ɵɵinject(i1$1.DomSanitizer, 8), i0.ɵɵinject(i2$1.HttpClient, 8), i0.ɵɵinject(PlatformUtil, 8), i0.ɵɵinject(i2.DOCUMENT, 8)); }, token: IgxIconService, providedIn: "root" });
18878
18799
  IgxIconService.decorators = [
18879
18800
  { type: Injectable, args: [{
18880
18801
  providedIn: 'root'
@@ -18883,6 +18804,7 @@ IgxIconService.decorators = [
18883
18804
  IgxIconService.ctorParameters = () => [
18884
18805
  { type: DomSanitizer, decorators: [{ type: Optional }] },
18885
18806
  { type: HttpClient, decorators: [{ type: Optional }] },
18807
+ { type: PlatformUtil, decorators: [{ type: Optional }] },
18886
18808
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }
18887
18809
  ];
18888
18810
 
@@ -19115,9 +19037,6 @@ IgxIconComponent.propDecorators = {
19115
19037
  getInactive: [{ type: HostBinding, args: ['class.igx-icon--inactive',] }],
19116
19038
  getColor: [{ type: HostBinding, args: ['style.color',] }]
19117
19039
  };
19118
- __decorate([
19119
- DeprecateProperty('`color` is deprecated.')
19120
- ], IgxIconComponent.prototype, "color", void 0);
19121
19040
 
19122
19041
  /**
19123
19042
  * @hidden
@@ -19393,6 +19312,10 @@ const TreeResourceStringsEN = {
19393
19312
  igx_collapse: 'Collapse',
19394
19313
  };
19395
19314
 
19315
+ const ActionStripResourceStringsEN = {
19316
+ igx_action_strip_button_more_title: 'More'
19317
+ };
19318
+
19396
19319
  /**
19397
19320
  * @hidden
19398
19321
  * IF YOU EDIT THIS OBJECT, DO NOT FORGET TO UPDATE
@@ -19416,7 +19339,8 @@ const CurrentResourceStrings = {
19416
19339
  CarouselResStrings: cloneValue(CarouselResourceStringsEN),
19417
19340
  ListResStrings: cloneValue(ListResourceStringsEN),
19418
19341
  InputResStrings: cloneValue(InputResourceStringsEN),
19419
- TreeResStrings: cloneValue(TreeResourceStringsEN)
19342
+ TreeResStrings: cloneValue(TreeResourceStringsEN),
19343
+ ActionStripResourceStrings: cloneValue(ActionStripResourceStringsEN)
19420
19344
  };
19421
19345
  const updateResourceStrings = (currentStrings, newStrings) => {
19422
19346
  for (const key of Object.keys(newStrings)) {
@@ -19439,7 +19363,7 @@ const changei18n = (resourceStrings) => {
19439
19363
  /**
19440
19364
  * Returns current resource strings for all components
19441
19365
  */
19442
- const getCurrentResourceStrings = () => (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));
19366
+ const getCurrentResourceStrings = () => (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));
19443
19367
 
19444
19368
  const IgxInputGroupTheme = mkenum({
19445
19369
  Material: 'material',
@@ -23283,10 +23207,10 @@ class IgxRadioGroupDirective {
23283
23207
  this._setRadioButtonsRequired();
23284
23208
  }
23285
23209
  /**
23286
- * An @Input property that allows you to disable the radio group. By default it's false.
23287
- *
23288
23210
  * @deprecated in version 12.2.0
23289
23211
  *
23212
+ * An input property that allows you to disable the radio group. By default it's false.
23213
+ *
23290
23214
  * @example
23291
23215
  * ```html
23292
23216
  * <igx-radio-group disabled></igx-radio-group>
@@ -23300,10 +23224,10 @@ class IgxRadioGroupDirective {
23300
23224
  this.setDisabledState(value);
23301
23225
  }
23302
23226
  /**
23303
- * Sets/gets the position of the `label` in the child radio buttons.
23304
- *
23305
23227
  * @deprecated in version 12.2.0
23306
23228
  *
23229
+ * Sets/gets the position of the `label` in the child radio buttons.
23230
+ *
23307
23231
  * @remarks
23308
23232
  * If not set, `labelPosition` will have value `"after"`.
23309
23233
  *
@@ -23553,12 +23477,6 @@ IgxRadioGroupDirective.propDecorators = {
23553
23477
  vertical: [{ type: HostBinding, args: ['class.igx-radio-group--vertical',] }],
23554
23478
  alignment: [{ type: Input }]
23555
23479
  };
23556
- __decorate([
23557
- DeprecateProperty('`disabled` is deprecated.')
23558
- ], IgxRadioGroupDirective.prototype, "disabled", null);
23559
- __decorate([
23560
- DeprecateProperty('`labelPosition` is deprecated.')
23561
- ], IgxRadioGroupDirective.prototype, "labelPosition", null);
23562
23480
  /**
23563
23481
  * @hidden
23564
23482
  */
@@ -25782,7 +25700,7 @@ class IgxGridActionButtonComponent {
25782
25700
  IgxGridActionButtonComponent.decorators = [
25783
25701
  { type: Component, args: [{
25784
25702
  selector: 'igx-grid-action-button',
25785
- 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>"
25703
+ 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>"
25786
25704
  },] }
25787
25705
  ];
25788
25706
  IgxGridActionButtonComponent.propDecorators = {
@@ -25994,8 +25912,8 @@ class IgxGridEditingActionsComponent extends IgxGridActionsBaseDirective {
25994
25912
  * @internal
25995
25913
  */
25996
25914
  registerIcons() {
25997
- this.iconService.addSvgIconFromText(addRow.name, addRow.value, 'imx-icons');
25998
- this.iconService.addSvgIconFromText(addChild.name, addChild.value, 'imx-icons');
25915
+ this.iconService.addSvgIconFromText(addRow.name, addRow.value, 'imx-icons', true);
25916
+ this.iconService.addSvgIconFromText(addChild.name, addChild.value, 'imx-icons', true);
25999
25917
  }
26000
25918
  }
26001
25919
  IgxGridEditingActionsComponent.decorators = [
@@ -26121,10 +26039,10 @@ class IgxGridPinningActionsComponent extends IgxGridActionsBaseDirective {
26121
26039
  const context = this.strip.context;
26122
26040
  const grid = context.grid;
26123
26041
  if (grid) {
26124
- this.iconService.addSvgIconFromText(pinLeft.name, pinLeft.value, 'imx-icons');
26125
- this.iconService.addSvgIconFromText(unpinLeft.name, unpinLeft.value, 'imx-icons');
26126
- this.iconService.addSvgIconFromText(jumpDown.name, jumpDown.value, 'imx-icons');
26127
- this.iconService.addSvgIconFromText(jumpUp.name, jumpDown.value, 'imx-icons');
26042
+ this.iconService.addSvgIconFromText(pinLeft.name, pinLeft.value, 'imx-icons', true);
26043
+ this.iconService.addSvgIconFromText(unpinLeft.name, unpinLeft.value, 'imx-icons', true);
26044
+ this.iconService.addSvgIconFromText(jumpDown.name, jumpDown.value, 'imx-icons', true);
26045
+ this.iconService.addSvgIconFromText(jumpUp.name, jumpDown.value, 'imx-icons', true);
26128
26046
  }
26129
26047
  }
26130
26048
  }
@@ -26204,6 +26122,21 @@ class IgxActionStripComponent extends DisplayDensityBase {
26204
26122
  get hidden() {
26205
26123
  return this._hidden;
26206
26124
  }
26125
+ /**
26126
+ * Gets/Sets the resource strings.
26127
+ *
26128
+ * @remarks
26129
+ * By default it uses EN resources.
26130
+ */
26131
+ set resourceStrings(value) {
26132
+ this._resourceStrings = Object.assign({}, this._resourceStrings, value);
26133
+ }
26134
+ get resourceStrings() {
26135
+ if (!this._resourceStrings) {
26136
+ this._resourceStrings = CurrentResourceStrings.ActionStripResourceStrings;
26137
+ }
26138
+ return this._resourceStrings;
26139
+ }
26207
26140
  /**
26208
26141
  * Getter for the 'display' property of the current `IgxActionStrip`
26209
26142
  *
@@ -26333,7 +26266,7 @@ class IgxActionStripComponent extends DisplayDensityBase {
26333
26266
  IgxActionStripComponent.decorators = [
26334
26267
  { type: Component, args: [{
26335
26268
  selector: 'igx-action-strip',
26336
- 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"
26269
+ 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"
26337
26270
  },] }
26338
26271
  ];
26339
26272
  IgxActionStripComponent.ctorParameters = () => [
@@ -26348,6 +26281,7 @@ IgxActionStripComponent.propDecorators = {
26348
26281
  actionButtons: [{ type: ContentChildren, args: [IgxGridActionsBaseDirective,] }],
26349
26282
  hidden: [{ type: Input }],
26350
26283
  hostClass: [{ type: Input, args: ['class',] }],
26284
+ resourceStrings: [{ type: Input }],
26351
26285
  menu: [{ type: ViewChild, args: ['dropdown',] }],
26352
26286
  display: [{ type: HostBinding, args: ['style.display',] }],
26353
26287
  hostClasses: [{ type: HostBinding, args: ['attr.class',] }]
@@ -27658,6 +27592,7 @@ class IgxAccordionComponent {
27658
27592
  /** @hidden @internal **/
27659
27593
  ngAfterViewInit() {
27660
27594
  this._expandedPanels = new Set(this._panels.filter(panel => !panel.collapsed));
27595
+ this._expandingPanels = new Set();
27661
27596
  this._panels.changes.pipe(takeUntil(this._destroy$)).subscribe(() => {
27662
27597
  this.subToChanges();
27663
27598
  });
@@ -27760,6 +27695,7 @@ class IgxAccordionComponent {
27760
27695
  this._panels.forEach(panel => {
27761
27696
  panel.contentExpanded.pipe(takeUntil(this._unsubChildren$)).subscribe((args) => {
27762
27697
  this._expandedPanels.add(args.owner);
27698
+ this._expandingPanels.delete(args.owner);
27763
27699
  const evArgs = Object.assign(Object.assign({}, args), { owner: this, panel: args.owner });
27764
27700
  this.panelExpanded.emit(evArgs);
27765
27701
  });
@@ -27767,21 +27703,36 @@ class IgxAccordionComponent {
27767
27703
  if (args.cancel) {
27768
27704
  return;
27769
27705
  }
27706
+ const evArgs = Object.assign(Object.assign({}, args), { owner: this, panel: args.owner });
27707
+ this.panelExpanding.emit(evArgs);
27708
+ if (evArgs.cancel) {
27709
+ args.cancel = true;
27710
+ return;
27711
+ }
27770
27712
  if (this.singleBranchExpand) {
27771
27713
  this._expandedPanels.forEach(p => {
27772
27714
  if (!p.header.disabled) {
27773
27715
  p.collapse();
27774
27716
  }
27775
27717
  });
27776
- }
27777
- const evArgs = Object.assign(Object.assign({}, args), { owner: this, panel: args.owner });
27778
- this.panelExpanding.emit(evArgs);
27779
- if (evArgs.cancel) {
27780
- args.cancel = true;
27718
+ this._expandingPanels.forEach(p => {
27719
+ var _a, _b;
27720
+ if (!p.header.disabled) {
27721
+ if (!p.animationSettings.closeAnimation) {
27722
+ (_a = p.openAnimationPlayer) === null || _a === void 0 ? void 0 : _a.reset();
27723
+ }
27724
+ if (!p.animationSettings.openAnimation) {
27725
+ (_b = p.closeAnimationPlayer) === null || _b === void 0 ? void 0 : _b.reset();
27726
+ }
27727
+ p.collapse();
27728
+ }
27729
+ });
27730
+ this._expandingPanels.add(args.owner);
27781
27731
  }
27782
27732
  });
27783
27733
  panel.contentCollapsed.pipe(takeUntil(this._unsubChildren$)).subscribe((args) => {
27784
27734
  this._expandedPanels.delete(args.owner);
27735
+ this._expandingPanels.delete(args.owner);
27785
27736
  const evArgs = Object.assign(Object.assign({}, args), { owner: this, panel: args.owner });
27786
27737
  this.panelCollapsed.emit(evArgs);
27787
27738
  });
@@ -35115,6 +35066,20 @@ class IgxComboBaseDirective extends DisplayDensityBase {
35115
35066
  this._displayDensityOptions = _displayDensityOptions;
35116
35067
  this._inputGroupType = _inputGroupType;
35117
35068
  this._injector = _injector;
35069
+ /**
35070
+ * Defines whether the caseSensitive icon should be shown in the search input
35071
+ *
35072
+ * ```typescript
35073
+ * // get
35074
+ * let myComboShowSearchCaseIcon = this.combo.showSearchCaseIcon;
35075
+ * ```
35076
+ *
35077
+ * ```html
35078
+ * <!--set-->
35079
+ * <igx-combo [showSearchCaseIcon]='true'></igx-combo>
35080
+ * ```
35081
+ */
35082
+ this.showSearchCaseIcon = false;
35118
35083
  /**
35119
35084
  * Set custom overlay settings that control how the combo's list of items is displayed.
35120
35085
  * Set:
@@ -35174,6 +35139,13 @@ class IgxComboBaseDirective extends DisplayDensityBase {
35174
35139
  * ```
35175
35140
  */
35176
35141
  this.valueKey = null;
35142
+ /**
35143
+ * An @Input property that enabled/disables filtering in the list. The default is `true`.
35144
+ * ```html
35145
+ * <igx-combo [filterable]="false">
35146
+ * ```
35147
+ */
35148
+ this.filterable = true;
35177
35149
  /** @hidden @internal */
35178
35150
  this.cssClass = 'igx-combo'; // Independent of display density for the time being
35179
35151
  /** @hidden @internal */
@@ -35185,15 +35157,6 @@ class IgxComboBaseDirective extends DisplayDensityBase {
35185
35157
  * ```
35186
35158
  */
35187
35159
  this.disabled = false;
35188
- /**
35189
- * Emitted when item selection is changing, before the selection completes
35190
- *
35191
- * ```html
35192
- * <igx-combo (selectionChanging)='handleSelection()'></igx-combo>
35193
- * ```
35194
- */
35195
- // TODO: any for old/new selection?
35196
- this.selectionChanging = new EventEmitter();
35197
35160
  /**
35198
35161
  * Emitted before the dropdown is opened
35199
35162
  *
@@ -35936,6 +35899,10 @@ class IgxComboBaseDirective extends DisplayDensityBase {
35936
35899
  }
35937
35900
  }
35938
35901
  }
35902
+ /** @hidden @internal */
35903
+ toggleCaseSensitive() {
35904
+ this.filteringOptions = { caseSensitive: !this.filteringOptions.caseSensitive };
35905
+ }
35939
35906
  /** if there is a valueKey - map the keys to data items, else - just return the keys */
35940
35907
  convertKeysToItems(keys) {
35941
35908
  if (this.comboAPI.valueKey === null) {
@@ -36005,6 +35972,7 @@ IgxComboBaseDirective.ctorParameters = () => [
36005
35972
  { type: Injector, decorators: [{ type: Optional }] }
36006
35973
  ];
36007
35974
  IgxComboBaseDirective.propDecorators = {
35975
+ showSearchCaseIcon: [{ type: Input }],
36008
35976
  overlaySettings: [{ type: Input }],
36009
35977
  id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],
36010
35978
  width: [{ type: HostBinding, args: ['style.width',] }, { type: Input }],
@@ -36017,6 +35985,7 @@ IgxComboBaseDirective.propDecorators = {
36017
35985
  valueKey: [{ type: Input }],
36018
35986
  displayKey: [{ type: Input }],
36019
35987
  groupKey: [{ type: Input }],
35988
+ filterable: [{ type: Input }],
36020
35989
  ariaLabelledBy: [{ type: Input }, { type: HostBinding, args: ['attr.aria-labelledby',] }],
36021
35990
  cssClass: [{ type: HostBinding, args: ['class.igx-combo',] }],
36022
35991
  role: [{ type: HostBinding, args: [`attr.role`,] }],
@@ -36025,7 +35994,6 @@ IgxComboBaseDirective.propDecorators = {
36025
35994
  ariaOwns: [{ type: HostBinding, args: ['attr.aria-owns',] }],
36026
35995
  disabled: [{ type: Input }],
36027
35996
  type: [{ type: Input }],
36028
- selectionChanging: [{ type: Output }],
36029
35997
  opening: [{ type: Output }],
36030
35998
  opened: [{ type: Output }],
36031
35999
  closing: [{ type: Output }],
@@ -36399,20 +36367,6 @@ class IgxComboComponent extends IgxComboBaseDirective {
36399
36367
  this._displayDensityOptions = _displayDensityOptions;
36400
36368
  this._inputGroupType = _inputGroupType;
36401
36369
  this._injector = _injector;
36402
- /**
36403
- * Defines whether the caseSensitive icon should be shown in the search input
36404
- *
36405
- * ```typescript
36406
- * // get
36407
- * let myComboShowSearchCaseIcon = this.combo.showSearchCaseIcon;
36408
- * ```
36409
- *
36410
- * ```html
36411
- * <!--set-->
36412
- * <igx-combo [showSearchCaseIcon]='true'></igx-combo>
36413
- * ```
36414
- */
36415
- this.showSearchCaseIcon = false;
36416
36370
  /**
36417
36371
  * An @Input property that controls whether the combo's search box
36418
36372
  * should be focused after the `opened` event is called
@@ -36440,6 +36394,14 @@ class IgxComboComponent extends IgxComboBaseDirective {
36440
36394
  * ```
36441
36395
  */
36442
36396
  this.searchPlaceholder = 'Enter a Search Term';
36397
+ /**
36398
+ * Emitted when item selection is changing, before the selection completes
36399
+ *
36400
+ * ```html
36401
+ * <igx-combo (selectionChanging)='handleSelection()'></igx-combo>
36402
+ * ```
36403
+ */
36404
+ this.selectionChanging = new EventEmitter();
36443
36405
  /**
36444
36406
  * @hidden @internal
36445
36407
  */
@@ -36619,12 +36581,6 @@ class IgxComboComponent extends IgxComboBaseDirective {
36619
36581
  this.deselect([itemID], event);
36620
36582
  }
36621
36583
  }
36622
- /**
36623
- * @hidden @internal
36624
- */
36625
- toggleCaseSensitive() {
36626
- this.filteringOptions = { caseSensitive: !this.filteringOptions.caseSensitive };
36627
- }
36628
36584
  /** @hidden @internal */
36629
36585
  handleOpened() {
36630
36586
  this.triggerCheck();
@@ -36698,7 +36654,7 @@ class IgxComboComponent extends IgxComboBaseDirective {
36698
36654
  IgxComboComponent.decorators = [
36699
36655
  { type: Component, args: [{
36700
36656
  selector: 'igx-combo',
36701
- 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",
36657
+ 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",
36702
36658
  providers: [
36703
36659
  IgxComboAPIService,
36704
36660
  { provide: IGX_COMBO_COMPONENT, useExisting: IgxComboComponent },
@@ -36717,10 +36673,10 @@ IgxComboComponent.ctorParameters = () => [
36717
36673
  { type: Injector, decorators: [{ type: Optional }] }
36718
36674
  ];
36719
36675
  IgxComboComponent.propDecorators = {
36720
- showSearchCaseIcon: [{ type: Input }],
36721
36676
  autoFocusSearch: [{ type: Input }],
36722
36677
  filterable: [{ type: Input }],
36723
36678
  searchPlaceholder: [{ type: Input }],
36679
+ selectionChanging: [{ type: Output }],
36724
36680
  dropdown: [{ type: ViewChild, args: [IgxComboDropDownComponent, { static: true },] }]
36725
36681
  };
36726
36682
  /**
@@ -36798,7 +36754,7 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36798
36754
  this.selectionChanging = new EventEmitter();
36799
36755
  /** @hidden @internal */
36800
36756
  this.composing = false;
36801
- this._updateInput = false;
36757
+ this._updateInput = true;
36802
36758
  this.findMatch = (element) => {
36803
36759
  const value = this.displayKey ? element[this.displayKey] : element;
36804
36760
  return value.toString().toLowerCase().includes(this.searchValue.trim().toLowerCase());
@@ -36814,6 +36770,23 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36814
36770
  this._filteredData = this.groupKey ? (val || []).filter((e) => e.isHeader !== true) : val;
36815
36771
  this.checkMatch();
36816
36772
  }
36773
+ /** @hidden @internal */
36774
+ onArrowDown(event) {
36775
+ if (this.collapsed) {
36776
+ event.preventDefault();
36777
+ event.stopPropagation();
36778
+ this.open();
36779
+ }
36780
+ else {
36781
+ if (this.virtDir.igxForOf.length > 0) {
36782
+ this.dropdown.navigateFirst();
36783
+ this.dropdownContainer.nativeElement.focus();
36784
+ }
36785
+ else if (this.allowCustomValues) {
36786
+ this.addItem.element.nativeElement.focus();
36787
+ }
36788
+ }
36789
+ }
36817
36790
  /**
36818
36791
  * Select a defined item
36819
36792
  *
@@ -36829,18 +36802,15 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36829
36802
  }
36830
36803
  }
36831
36804
  /**
36832
- * Deselect a defined item
36805
+ * Deselect the currently selected item
36833
36806
  *
36834
36807
  * @param item the items to be deselected
36835
36808
  * ```typescript
36836
36809
  * this.combo.deselect("New York");
36837
36810
  * ```
36838
36811
  */
36839
- deselect(item) {
36840
- if (item !== null && item !== undefined) {
36841
- const newSelection = this.selectionService.delete_items(this.id, item instanceof Array ? item : [item]);
36842
- this.setSelection(newSelection);
36843
- }
36812
+ deselect() {
36813
+ this.clearSelection();
36844
36814
  }
36845
36815
  /** @hidden @internal */
36846
36816
  writeValue(value) {
@@ -36851,33 +36821,51 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36851
36821
  }
36852
36822
  /** @hidden @internal */
36853
36823
  ngAfterViewInit() {
36824
+ this.virtDir.contentSizeChange.pipe(takeUntil(this.destroy$)).subscribe(() => {
36825
+ if (this.selection.length > 0) {
36826
+ const index = this.virtDir.igxForOf.findIndex(e => {
36827
+ let current = e[this.valueKey];
36828
+ if (this.valueKey === null || this.valueKey === undefined) {
36829
+ current = e;
36830
+ }
36831
+ return current === this.selection[0];
36832
+ });
36833
+ this.dropdown.navigateItem(index);
36834
+ }
36835
+ });
36854
36836
  this.dropdown.opened.pipe(takeUntil(this.destroy$)).subscribe(() => {
36855
36837
  if (this.composing) {
36856
36838
  this.comboInput.focus();
36857
36839
  }
36858
36840
  });
36859
- this.dropdown.closed.pipe(takeUntil(this.destroy$)).subscribe(() => {
36860
- this.composing = false;
36861
- });
36862
- this.dropdown.closing.pipe(takeUntil(this.destroy$)).subscribe(() => {
36863
- const selection = this.selectionService.first_item(this.id);
36864
- this.comboInput.value = selection !== undefined && selection !== null ? selection : '';
36865
- });
36866
- this.dropdown.opening.pipe(takeUntil(this.destroy$)).subscribe(() => {
36867
- if (!this.comboInput.value.length) {
36868
- this.clearSelection();
36841
+ this.dropdown.closing.pipe(takeUntil(this.destroy$)).subscribe((args) => {
36842
+ if (this.getEditElement() && !args.event) {
36843
+ this.comboInput.focus();
36844
+ }
36845
+ else {
36846
+ this.clearOnBlur();
36847
+ this._onTouchedCallback();
36869
36848
  }
36870
36849
  });
36871
36850
  super.ngAfterViewInit();
36872
36851
  }
36873
36852
  /** @hidden @internal */
36874
36853
  handleInputChange(event) {
36875
- this.searchValue = event.target.value;
36854
+ if (event !== undefined) {
36855
+ this.searchValue = typeof event === 'string' ? event : event.target.value;
36856
+ }
36876
36857
  this._onChangeCallback(this.searchValue);
36877
- if (this.collapsed) {
36858
+ if (this.collapsed && this.comboInput.focused) {
36878
36859
  this.open();
36860
+ this.dropdown.navigateFirst();
36861
+ }
36862
+ if (!this.comboInput.value.trim()) {
36863
+ // handle clearing of input by space
36864
+ this.clearSelection();
36865
+ this._onChangeCallback(null);
36879
36866
  }
36880
36867
  super.handleInputChange(event);
36868
+ this.composing = true;
36881
36869
  }
36882
36870
  /** @hidden @internal */
36883
36871
  handleKeyDown(event) {
@@ -36886,10 +36874,12 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36886
36874
  if (filtered === null || filtered === undefined) {
36887
36875
  return;
36888
36876
  }
36889
- this.select(this.dropdown.items[0].itemID);
36877
+ this.select(this.dropdown.focusedItem.itemID);
36890
36878
  event.preventDefault();
36891
36879
  event.stopPropagation();
36892
36880
  this.close();
36881
+ // manually trigger text selection as it will not be triggered during editing
36882
+ this.textSelection.trigger();
36893
36883
  return;
36894
36884
  }
36895
36885
  if (event.key === this.platformUtil.KEYMAP.BACKSPACE
@@ -36897,11 +36887,12 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36897
36887
  this._updateInput = false;
36898
36888
  this.clearSelection();
36899
36889
  }
36890
+ if (!this.collapsed && event.key === this.platformUtil.KEYMAP.TAB) {
36891
+ this.close();
36892
+ this.clearOnBlur();
36893
+ }
36894
+ this.composing = false;
36900
36895
  super.handleKeyDown(event);
36901
- this.composing = event.key !== this.platformUtil.KEYMAP.ARROW_DOWN
36902
- && event.key !== this.platformUtil.KEYMAP.ARROW_LEFT
36903
- && event.key !== this.platformUtil.KEYMAP.ARROW_RIGHT
36904
- && event.key !== this.platformUtil.KEYMAP.TAB;
36905
36896
  }
36906
36897
  /** @hidden @internal */
36907
36898
  handleKeyUp(event) {
@@ -36914,6 +36905,29 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36914
36905
  }
36915
36906
  }
36916
36907
  /** @hidden @internal */
36908
+ handleItemKeyDown(event) {
36909
+ if (event.key === this.platformUtil.KEYMAP.ARROW_UP && event.altKey) {
36910
+ this.close();
36911
+ this.comboInput.focus();
36912
+ return;
36913
+ }
36914
+ if (event.key === this.platformUtil.KEYMAP.ENTER) {
36915
+ this.comboInput.focus();
36916
+ }
36917
+ }
36918
+ /** @hidden @internal */
36919
+ handleItemClick() {
36920
+ this.close();
36921
+ this.comboInput.focus();
36922
+ }
36923
+ /** @hidden @internal */
36924
+ onBlur() {
36925
+ if (this.collapsed) {
36926
+ this.clearOnBlur();
36927
+ }
36928
+ super.onBlur();
36929
+ }
36930
+ /** @hidden @internal */
36917
36931
  getEditElement() {
36918
36932
  return this.comboInput.nativeElement;
36919
36933
  }
@@ -36924,7 +36938,8 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36924
36938
  }
36925
36939
  this.clearSelection(true);
36926
36940
  if (this.collapsed) {
36927
- this.getEditElement().focus();
36941
+ this.open();
36942
+ this.dropdown.navigateFirst();
36928
36943
  }
36929
36944
  else {
36930
36945
  this.focusSearchInput(true);
@@ -36932,6 +36947,7 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36932
36947
  event.stopPropagation();
36933
36948
  this.comboInput.value = this.filterValue = this.searchValue = '';
36934
36949
  this.dropdown.focusedItem = null;
36950
+ this.composing = false;
36935
36951
  this.comboInput.focus();
36936
36952
  }
36937
36953
  /** @hidden @internal */
@@ -36941,6 +36957,19 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36941
36957
  this.opened.emit({ owner: this });
36942
36958
  }
36943
36959
  /** @hidden @internal */
36960
+ handleClosing(e) {
36961
+ const args = { owner: this, event: e.event, cancel: e.cancel };
36962
+ this.closing.emit(args);
36963
+ e.cancel = args.cancel;
36964
+ if (e.cancel) {
36965
+ return;
36966
+ }
36967
+ this.composing = false;
36968
+ // explicitly update selection and trigger text selection so that we don't have to force CD
36969
+ this.textSelection.selected = true;
36970
+ this.textSelection.trigger();
36971
+ }
36972
+ /** @hidden @internal */
36944
36973
  focusSearchInput(opening) {
36945
36974
  if (opening) {
36946
36975
  this.dropdownContainer.nativeElement.focus();
@@ -36950,6 +36979,13 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36950
36979
  this.toggle();
36951
36980
  }
36952
36981
  }
36982
+ /** @hidden @internal */
36983
+ onClick(event) {
36984
+ super.onClick(event);
36985
+ if (this.comboInput.value.length === 0) {
36986
+ this.virtDir.scrollTo(0);
36987
+ }
36988
+ }
36953
36989
  setSelection(newSelection) {
36954
36990
  const newSelectionAsArray = newSelection ? Array.from(newSelection) : [];
36955
36991
  const oldSelectionAsArray = Array.from(this.selectionService.get(this.id) || []);
@@ -36963,15 +36999,16 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36963
36999
  };
36964
37000
  this.selectionChanging.emit(args);
36965
37001
  if (!args.cancel) {
36966
- const argsSelection = args.newSelection !== undefined
37002
+ let argsSelection = args.newSelection !== undefined
36967
37003
  && args.newSelection !== null
36968
- ? [args.newSelection]
37004
+ ? args.newSelection
36969
37005
  : [];
37006
+ argsSelection = Array.isArray(argsSelection) ? argsSelection : [argsSelection];
36970
37007
  this.selectionService.select_items(this.id, argsSelection, true);
36971
37008
  if (this._updateInput) {
36972
- this._value = displayText !== args.displayText
37009
+ this.comboInput.value = this._value = displayText !== args.displayText
36973
37010
  ? args.displayText
36974
- : this.createDisplayText([args.newSelection], [args.oldSelection]);
37011
+ : this.createDisplayText(argsSelection, [args.oldSelection]);
36975
37012
  }
36976
37013
  this._onChangeCallback(args.newSelection);
36977
37014
  this._updateInput = true;
@@ -36981,9 +37018,11 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36981
37018
  if (this.isRemote) {
36982
37019
  return this.getRemoteSelection(newSelection, oldSelection);
36983
37020
  }
36984
- return this.displayKey !== null && this.displayKey !== undefined
36985
- ? this.convertKeysToItems(newSelection).map(e => e[this.displayKey])[0]
36986
- : newSelection[0];
37021
+ if (this.displayKey !== null && this.displayKey !== undefined
37022
+ && newSelection.length > 0) {
37023
+ return this.convertKeysToItems(newSelection).map(e => e[this.displayKey])[0];
37024
+ }
37025
+ return newSelection[0] || '';
36987
37026
  }
36988
37027
  clearSelection(ignoreFilter) {
36989
37028
  let newSelection = this.selectionService.get_empty();
@@ -36992,11 +37031,19 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
36992
37031
  }
36993
37032
  this.setSelection(newSelection);
36994
37033
  }
37034
+ clearOnBlur() {
37035
+ const filtered = this.filteredData.find(this.findMatch);
37036
+ if ((filtered === undefined || filtered === null)) {
37037
+ this.close();
37038
+ this.clearSelection();
37039
+ this.searchValue = '';
37040
+ }
37041
+ }
36995
37042
  }
36996
37043
  IgxSimpleComboComponent.decorators = [
36997
37044
  { type: Component, args: [{
36998
37045
  selector: 'igx-simple-combo',
36999
- 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",
37046
+ 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",
37000
37047
  providers: [
37001
37048
  IgxComboAPIService,
37002
37049
  { provide: IGX_COMBO_COMPONENT, useExisting: IgxSimpleComboComponent },
@@ -37017,7 +37064,10 @@ IgxSimpleComboComponent.ctorParameters = () => [
37017
37064
  ];
37018
37065
  IgxSimpleComboComponent.propDecorators = {
37019
37066
  dropdown: [{ type: ViewChild, args: [IgxComboDropDownComponent, { static: true },] }],
37020
- selectionChanging: [{ type: Output }]
37067
+ addItem: [{ type: ViewChild, args: [IgxComboAddItemComponent,] }],
37068
+ selectionChanging: [{ type: Output }],
37069
+ textSelection: [{ type: ViewChild, args: [IgxTextSelectionDirective, { static: true },] }],
37070
+ onArrowDown: [{ type: HostListener, args: ['keydown.ArrowDown', ['$event'],] }, { type: HostListener, args: ['keydown.Alt.ArrowDown', ['$event'],] }]
37021
37071
  };
37022
37072
  class IgxSimpleComboModule {
37023
37073
  }
@@ -39411,7 +39461,7 @@ IgxGridExcelStyleFilteringComponent.decorators = [
39411
39461
  { type: Component, args: [{
39412
39462
  changeDetection: ChangeDetectionStrategy.OnPush,
39413
39463
  selector: 'igx-grid-excel-style-filtering',
39414
- 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"
39464
+ 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"
39415
39465
  },] }
39416
39466
  ];
39417
39467
  IgxGridExcelStyleFilteringComponent.ctorParameters = () => [
@@ -40965,7 +41015,7 @@ IgxExcelStyleDateExpressionComponent.decorators = [
40965
41015
  { type: Component, args: [{
40966
41016
  preserveWhitespaces: false,
40967
41017
  selector: 'igx-excel-style-date-expression',
40968
- 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"
41018
+ 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"
40969
41019
  },] }
40970
41020
  ];
40971
41021
  IgxExcelStyleDateExpressionComponent.propDecorators = {
@@ -47201,15 +47251,23 @@ class IgxGridFilteringRowComponent {
47201
47251
  set value(val) {
47202
47252
  if (!val && val !== 0) {
47203
47253
  this.expression.searchVal = null;
47204
- this.showHideArrowButtons();
47254
+ const index = this.expressionsList.findIndex(item => item.expression === this.expression);
47255
+ if (index === 0 && this.expressionsList.length === 1) {
47256
+ this.clearFiltering();
47257
+ return;
47258
+ }
47205
47259
  }
47206
47260
  else {
47261
+ const oldValue = this.expression.searchVal;
47262
+ if (isEqual(oldValue, val)) {
47263
+ return;
47264
+ }
47207
47265
  this.expression.searchVal = DataUtil.parseValue(this.column.dataType, val);
47208
47266
  if (this.expressionsList.find(item => item.expression === this.expression) === undefined) {
47209
47267
  this.addExpression(true);
47210
47268
  }
47269
+ this.filter();
47211
47270
  }
47212
- this.filter();
47213
47271
  }
47214
47272
  get displayDensity() {
47215
47273
  return this.column.grid.displayDensity === DisplayDensity.comfortable ? DisplayDensity.cosy : this.column.grid.displayDensity;
@@ -48640,7 +48698,7 @@ IgxGridHeaderRowComponent.decorators = [
48640
48698
  { type: Component, args: [{
48641
48699
  changeDetection: ChangeDetectionStrategy.OnPush,
48642
48700
  selector: 'igx-grid-header-row',
48643
- 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"
48701
+ 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"
48644
48702
  },] }
48645
48703
  ];
48646
48704
  IgxGridHeaderRowComponent.ctorParameters = () => [
@@ -48820,9 +48878,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
48820
48878
  */
48821
48879
  this.gridScroll = new EventEmitter();
48822
48880
  /**
48881
+ * @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
48882
+ *
48823
48883
  * Emitted after the current page is changed.
48824
48884
  *
48825
- * @deprecated in version 12.1.0
48826
48885
  * @example
48827
48886
  * ```html
48828
48887
  * <igx-grid (pageChange)="onPageChange($event)"></igx-grid>
@@ -48835,10 +48894,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
48835
48894
  */
48836
48895
  this.pageChange = new EventEmitter();
48837
48896
  /**
48897
+ * @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
48898
+ *
48838
48899
  * Emitted when `perPage` property value of the grid is changed.
48839
48900
  *
48840
- * @deprecated in version 12.1.0
48841
- * @example
48842
48901
  * ```html
48843
48902
  * <igx-grid #grid (perPageChange)="onPerPageChange($event)" [autoGenerate]="true"></igx-grid>
48844
48903
  * ```
@@ -48855,6 +48914,8 @@ class IgxGridBaseDirective extends DisplayDensityBase {
48855
48914
  */
48856
48915
  this.class = '';
48857
48916
  /**
48917
+ * @deprecated in version 12.2.0. We suggest using `rowClasses` property instead
48918
+ *
48858
48919
  * Gets/Sets the styling classes applied to all even `IgxGridRowComponent`s in the grid.
48859
48920
  *
48860
48921
  * @example
@@ -48864,6 +48925,8 @@ class IgxGridBaseDirective extends DisplayDensityBase {
48864
48925
  */
48865
48926
  this.evenRowCSS = 'igx-grid__tr--even';
48866
48927
  /**
48928
+ * @deprecated in version 12.2.0. We suggest using `rowClasses` property instead
48929
+ *
48867
48930
  * Gets/Sets the styling classes applied to all odd `IgxGridRowComponent`s in the grid.
48868
48931
  *
48869
48932
  * @example
@@ -49118,9 +49181,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
49118
49181
  */
49119
49182
  this.filteringDone = new EventEmitter();
49120
49183
  /**
49184
+ * @deprecated in version 12.1.0. Use the corresponding output exposed by the `igx-paginator` component instead
49185
+ *
49121
49186
  * Emitted after paging is performed.
49122
49187
  *
49123
- * @deprecated in version 12.1.x
49124
49188
  * @remarks
49125
49189
  * Returns an object consisting of the previous and next pages.
49126
49190
  * @example
@@ -49773,9 +49837,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
49773
49837
  this.notifyChanges(true);
49774
49838
  }
49775
49839
  /**
49840
+ * @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
49841
+ *
49776
49842
  * Gets/Sets whether the paging feature is enabled.
49777
49843
  *
49778
- * @deprecated in version 12.1.x
49779
49844
  * @remarks
49780
49845
  * The default state is disabled (false).
49781
49846
  * @example
@@ -49793,9 +49858,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
49793
49858
  this.pipeTrigger++;
49794
49859
  }
49795
49860
  /**
49861
+ * @deprecated in version 12.1.0. Use `page` property form `paginator` component instead
49862
+ *
49796
49863
  * Gets/Sets the current page index.
49797
49864
  *
49798
- * @deprecated in version 12.1.x
49799
49865
  * @example
49800
49866
  * ```html
49801
49867
  * <igx-grid #grid [data]="Data" [autoGenerate]="true">
@@ -49815,9 +49881,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
49815
49881
  }
49816
49882
  }
49817
49883
  /**
49884
+ * @deprecated in version 12.1.0. Use `perPage` property from `paginator` component instead
49885
+ *
49818
49886
  * Gets/Sets the number of visible items per page.
49819
49887
  *
49820
- * @deprecated in version 12.1.x
49821
49888
  * @remarks
49822
49889
  * The default is 15.
49823
49890
  * @example
@@ -49838,9 +49905,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
49838
49905
  }
49839
49906
  }
49840
49907
  /**
49908
+ * @deprecated in version 10.1.0
49909
+ *
49841
49910
  * Gets/Sets whether the column hiding UI is enabled.
49842
49911
  *
49843
- * @deprecated
49844
49912
  * @remarks
49845
49913
  * 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.
49846
49914
  * @example
@@ -50038,9 +50106,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50038
50106
  return this._emptyFilteredGridMessage || this.resourceStrings.igx_grid_emptyFilteredGrid_message;
50039
50107
  }
50040
50108
  /**
50041
- * Gets/Sets the title to be displayed in the built-in column hiding UI.
50109
+ * @deprecated in version 10.1.0
50042
50110
  *
50043
- * @deprecated
50111
+ * Gets/Sets the title to be displayed in the built-in column hiding UI.
50044
50112
  *
50045
50113
  * @example
50046
50114
  * ```html
@@ -50078,9 +50146,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50078
50146
  this._pinning = value;
50079
50147
  }
50080
50148
  /**
50081
- * Gets/Sets if the built-in column pinning UI should be shown in the toolbar.
50149
+ * @deprecated in version 10.1.0
50082
50150
  *
50083
- * @deprecated
50151
+ * Gets/Sets if the built-in column pinning UI should be shown in the toolbar.
50084
50152
  *
50085
50153
  * @example
50086
50154
  * ```html
@@ -50095,9 +50163,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50095
50163
  this.notifyChanges();
50096
50164
  }
50097
50165
  /**
50098
- * Gets/Sets the title to be displayed in the UI of the column pinning.
50166
+ * @deprecated in version 10.1.0
50099
50167
  *
50100
- * @deprecated
50168
+ * Gets/Sets the title to be displayed in the UI of the column pinning.
50101
50169
  *
50102
50170
  * @example
50103
50171
  * ```html
@@ -50544,9 +50612,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50544
50612
  return this.pinnedColumns.filter(col => !col.columnLayout).length;
50545
50613
  }
50546
50614
  /**
50547
- * Gets/Sets the text to be displayed inside the toggle button.
50615
+ * @deprecated in version 10.1.0
50548
50616
  *
50549
- * @deprecated
50617
+ * Gets/Sets the text to be displayed inside the toggle button.
50550
50618
  *
50551
50619
  * @remarks
50552
50620
  * Used for the built-in column hiding UI of the`IgxColumnComponent`.
@@ -50555,7 +50623,6 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50555
50623
  * <igx-grid [columnHiding]="true" [showToolbar]="true" [hiddenColumnsText]="'Hidden Columns'"></igx-grid>
50556
50624
  * ```
50557
50625
  */
50558
- // @DeprecateProperty('`hiddenColumnsText` is deprecated')
50559
50626
  get hiddenColumnsText() {
50560
50627
  return this._hiddenColumnsText;
50561
50628
  }
@@ -50564,9 +50631,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50564
50631
  this.notifyChanges();
50565
50632
  }
50566
50633
  /**
50567
- * Gets/Sets the text to be displayed inside the toggle button.
50634
+ * @deprecated in version 10.1.0
50568
50635
  *
50569
- * @deprecated
50636
+ * Gets/Sets the text to be displayed inside the toggle button.
50570
50637
  *
50571
50638
  * @remarks
50572
50639
  * Used for the built-in column pinning UI of the`IgxColumnComponent`.
@@ -50636,9 +50703,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50636
50703
  return this._currencyPositionLeft = i < 1;
50637
50704
  }
50638
50705
  /**
50639
- * Gets/Sets whether the toolbar is shown.
50706
+ * @deprecated in version 11.0.0
50640
50707
  *
50641
- * @deprecated
50708
+ * Gets/Sets whether the toolbar is shown.
50642
50709
  *
50643
50710
  * @example
50644
50711
  * ```html
@@ -50652,9 +50719,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50652
50719
  this._showToolbar = newValue;
50653
50720
  }
50654
50721
  /**
50655
- * Gets/Sets the toolbar's title.
50722
+ * @deprecated in version 11.0.0
50656
50723
  *
50657
- * @deprecated
50724
+ * Gets/Sets the toolbar's title.
50658
50725
  *
50659
50726
  * @example
50660
50727
  * ```html
@@ -50669,9 +50736,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50669
50736
  this.notifyChanges();
50670
50737
  }
50671
50738
  /**
50672
- * Gets/Sets whether exporting to MS Excel is enabled or disabled.
50739
+ * @deprecated `exportExcel` is deprecated
50673
50740
  *
50674
- * @deprecated
50741
+ * Gets/Sets whether exporting to MS Excel is enabled or disabled.
50675
50742
  *
50676
50743
  * @example
50677
50744
  * ```html
@@ -50686,9 +50753,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50686
50753
  this.notifyChanges();
50687
50754
  }
50688
50755
  /**
50689
- * Gets/Sets whether the option for exporting to CSV is enabled or disabled.
50756
+ * @deprecated `exportCsv` is deprecated
50690
50757
  *
50691
- * @deprecated
50758
+ * Gets/Sets whether the option for exporting to CSV is enabled or disabled.
50692
50759
  *
50693
50760
  * ```html
50694
50761
  * <igx-grid [data]="localData" [showToolbar]="true" [autoGenerate]="true" [exportCsv]="true"></igx-grid>
@@ -50702,9 +50769,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50702
50769
  this.notifyChanges();
50703
50770
  }
50704
50771
  /**
50705
- * Gets/Sets the textual content for the main export button.
50772
+ * @deprecated `exportText` is deprecated
50706
50773
  *
50707
- * @deprecated
50774
+ * Gets/Sets the textual content for the main export button.
50708
50775
  *
50709
50776
  * @example
50710
50777
  * ```html
@@ -50719,9 +50786,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50719
50786
  this.notifyChanges();
50720
50787
  }
50721
50788
  /**
50722
- * Gets/Sets the textual content for the MS Excel export button.
50789
+ * @deprecated `exportExcelText` is deprecated
50723
50790
  *
50724
- * @deprecated
50791
+ * Gets/Sets the textual content for the MS Excel export button.
50725
50792
  *
50726
50793
  * ```html
50727
50794
  * <igx-grid [exportExcelText]="'My Excel Exporter" [showToolbar]="true" [exportText]="'My Exporter'" [exportCsv]="true"></igx-grid>
@@ -50735,9 +50802,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
50735
50802
  this.notifyChanges();
50736
50803
  }
50737
50804
  /**
50738
- * Gets/Sets the textual content for the CSV export button.
50805
+ * @deprecated `exportCsvText` is deprecated
50739
50806
  *
50740
- * @deprecated
50807
+ * Gets/Sets the textual content for the CSV export button.
50741
50808
  *
50742
50809
  * @example
50743
50810
  * ```html
@@ -51404,7 +51471,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
51404
51471
  this.rendered$.pipe(takeUntil(this.destroy$)).subscribe(() => {
51405
51472
  if (this.paginator) {
51406
51473
  this.paginator.perPage = this._perPage !== DEFAULT_ITEMS_PER_PAGE ? this._perPage : this.paginator.perPage;
51407
- this.paginator.totalRecords = this.totalRecords;
51474
+ this.paginator.totalRecords = this.totalRecords ? this.totalRecords : this.paginator.totalRecords;
51408
51475
  this.paginator.overlaySettings = { outlet: this.outlet };
51409
51476
  }
51410
51477
  this._rendered = true;
@@ -51831,9 +51898,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
51831
51898
  return this._visibleColumns;
51832
51899
  }
51833
51900
  /**
51901
+ * @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
51902
+ *
51834
51903
  * Gets the total number of pages.
51835
51904
  *
51836
- * @deprecated in version 12.1.0
51837
51905
  * @example
51838
51906
  * ```typescript
51839
51907
  * const totalPages = this.grid.totalPages;
@@ -51844,9 +51912,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
51844
51912
  return (_a = this.paginator) === null || _a === void 0 ? void 0 : _a.totalPages;
51845
51913
  }
51846
51914
  /**
51915
+ * @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
51916
+ *
51847
51917
  * Gets if the current page is the first page.
51848
51918
  *
51849
- * @deprecated in version 12.1.0
51850
51919
  * @example
51851
51920
  * ```typescript
51852
51921
  * const firstPage = this.grid.isFirstPage;
@@ -51856,9 +51925,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
51856
51925
  return this.paginator.isLastPage;
51857
51926
  }
51858
51927
  /**
51928
+ * @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
51929
+ *
51859
51930
  * Goes to the next page, if the grid is not already at the last page.
51860
51931
  *
51861
- * @deprecated in version 12.1.0
51862
51932
  * @example
51863
51933
  * ```typescript
51864
51934
  * this.grid1.nextPage();
@@ -51870,9 +51940,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
51870
51940
  (_a = this.paginator) === null || _a === void 0 ? void 0 : _a.nextPage();
51871
51941
  }
51872
51942
  /**
51943
+ * @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
51944
+ *
51873
51945
  * Goes to the previous page, if the grid is not already at the first page.
51874
51946
  *
51875
- * @deprecated in version 12.1.0
51876
51947
  * @example
51877
51948
  * ```typescript
51878
51949
  * this.grid1.previousPage();
@@ -51908,9 +51979,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
51908
51979
  }
51909
51980
  }
51910
51981
  /**
51982
+ * @deprecated in version 12.1.0. Use the corresponding property exposed by the `igx-paginator`
51983
+ *
51911
51984
  * Returns if the current page is the last page.
51912
51985
  *
51913
- * @deprecated in version 12.1.0
51914
51986
  * @example
51915
51987
  * ```typescript
51916
51988
  * const lastPage = this.grid.isLastPage;
@@ -52007,6 +52079,8 @@ class IgxGridBaseDirective extends DisplayDensityBase {
52007
52079
  this._columnsReordered(column);
52008
52080
  }
52009
52081
  /**
52082
+ * @deprecated in version 12.1.0. Use the corresponding method exposed by the `igx-paginator`
52083
+ *
52010
52084
  * Goes to the desired page index.
52011
52085
  *
52012
52086
  * @example
@@ -53196,6 +53270,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
53196
53270
  if (!this.clipboardOptions.copyHeaders) {
53197
53271
  result = result.substring(result.indexOf('\n') + 1);
53198
53272
  }
53273
+ if (Object.values(data[0]).length === 1) {
53274
+ result = result.slice(0, -2);
53275
+ }
53199
53276
  event.preventDefault();
53200
53277
  /* Necessary for the hiearachical case but will probably have to
53201
53278
  change how getSelectedData is propagated in the hiearachical grid
@@ -55018,24 +55095,9 @@ IgxGridBaseDirective.propDecorators = {
55018
55095
  totalRecords: [{ type: Input }],
55019
55096
  selectRowOnClick: [{ type: Input }]
55020
55097
  };
55021
- __decorate([
55022
- DeprecateProperty('`pageChange` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
55023
- ], IgxGridBaseDirective.prototype, "pageChange", void 0);
55024
- __decorate([
55025
- DeprecateProperty('`perPageChange` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
55026
- ], IgxGridBaseDirective.prototype, "perPageChange", void 0);
55027
- __decorate([
55028
- DeprecateProperty('`evenRowCSS` is deprecated. We suggest using `rowClasses` property instead.')
55029
- ], IgxGridBaseDirective.prototype, "evenRowCSS", void 0);
55030
- __decorate([
55031
- DeprecateProperty('`oddRowCSS` is deprecated. We suggest using `rowClasses` property instead.')
55032
- ], IgxGridBaseDirective.prototype, "oddRowCSS", void 0);
55033
55098
  __decorate([
55034
55099
  WatchChanges()
55035
55100
  ], IgxGridBaseDirective.prototype, "primaryKey", void 0);
55036
- __decorate([
55037
- DeprecateProperty('`pagingDone` is deprecated. Use the corresponding output exposed by the `igx-paginator` component instead.')
55038
- ], IgxGridBaseDirective.prototype, "pagingDone", void 0);
55039
55101
  __decorate([
55040
55102
  WatchChanges()
55041
55103
  ], IgxGridBaseDirective.prototype, "filteringLogic", null);
@@ -55045,18 +55107,6 @@ __decorate([
55045
55107
  __decorate([
55046
55108
  WatchChanges()
55047
55109
  ], IgxGridBaseDirective.prototype, "advancedFilteringExpressionsTree", null);
55048
- __decorate([
55049
- DeprecateProperty('`paging` is deprecated')
55050
- ], IgxGridBaseDirective.prototype, "paging", null);
55051
- __decorate([
55052
- DeprecateProperty('`page` is deprecated. Use `page` property form `paginator` component instead.')
55053
- ], IgxGridBaseDirective.prototype, "page", null);
55054
- __decorate([
55055
- DeprecateProperty('`perPage` is deprecated. Use `perPage` property from `paginator` component instead.')
55056
- ], IgxGridBaseDirective.prototype, "perPage", null);
55057
- __decorate([
55058
- DeprecateProperty('`columnHiding` is deprecated.')
55059
- ], IgxGridBaseDirective.prototype, "columnHiding", null);
55060
55110
  __decorate([
55061
55111
  WatchChanges()
55062
55112
  ], IgxGridBaseDirective.prototype, "hideRowSelectors", null);
@@ -55078,42 +55128,9 @@ __decorate([
55078
55128
  __decorate([
55079
55129
  WatchChanges()
55080
55130
  ], IgxGridBaseDirective.prototype, "isLoading", null);
55081
- __decorate([
55082
- DeprecateProperty('`columnHidingTitle` is deprecated')
55083
- ], IgxGridBaseDirective.prototype, "columnHidingTitle", null);
55084
- __decorate([
55085
- DeprecateProperty('`columnPinning` is deprecated')
55086
- ], IgxGridBaseDirective.prototype, "columnPinning", null);
55087
- __decorate([
55088
- DeprecateProperty('`columnPinningTitle` is deprecated')
55089
- ], IgxGridBaseDirective.prototype, "columnPinningTitle", null);
55090
55131
  __decorate([
55091
55132
  WatchChanges()
55092
55133
  ], IgxGridBaseDirective.prototype, "sortingExpressions", null);
55093
- __decorate([
55094
- DeprecateProperty('`pinnedColumnsText` is deprecated')
55095
- ], IgxGridBaseDirective.prototype, "pinnedColumnsText", null);
55096
- __decorate([
55097
- DeprecateProperty('`showToolbar` is deprecated')
55098
- ], IgxGridBaseDirective.prototype, "showToolbar", null);
55099
- __decorate([
55100
- DeprecateProperty('`toolbarTitle` is deprecated')
55101
- ], IgxGridBaseDirective.prototype, "toolbarTitle", null);
55102
- __decorate([
55103
- DeprecateProperty('`exportExcel` is deprecated')
55104
- ], IgxGridBaseDirective.prototype, "exportExcel", null);
55105
- __decorate([
55106
- DeprecateProperty('`exportCsv` is deprecated')
55107
- ], IgxGridBaseDirective.prototype, "exportCsv", null);
55108
- __decorate([
55109
- DeprecateProperty('`exportText` is deprecated')
55110
- ], IgxGridBaseDirective.prototype, "exportText", null);
55111
- __decorate([
55112
- DeprecateProperty('`exportExcelText` is deprecated')
55113
- ], IgxGridBaseDirective.prototype, "exportExcelText", null);
55114
- __decorate([
55115
- DeprecateProperty('`exportCsvText` is deprecated')
55116
- ], IgxGridBaseDirective.prototype, "exportCsvText", null);
55117
55134
  __decorate([
55118
55135
  WatchChanges()
55119
55136
  ], IgxGridBaseDirective.prototype, "cellSelection", null);
@@ -55123,24 +55140,6 @@ __decorate([
55123
55140
  __decorate([
55124
55141
  WatchChanges()
55125
55142
  ], IgxGridBaseDirective.prototype, "columnSelection", null);
55126
- __decorate([
55127
- DeprecateProperty('`totalPages` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
55128
- ], IgxGridBaseDirective.prototype, "totalPages", null);
55129
- __decorate([
55130
- DeprecateProperty('`isFirstPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
55131
- ], IgxGridBaseDirective.prototype, "isFirstPage", null);
55132
- __decorate([
55133
- DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
55134
- ], IgxGridBaseDirective.prototype, "nextPage", null);
55135
- __decorate([
55136
- DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
55137
- ], IgxGridBaseDirective.prototype, "previousPage", null);
55138
- __decorate([
55139
- DeprecateProperty('`isLastPage` is deprecated. Use the corresponding property exposed by the `igx-paginator`.')
55140
- ], IgxGridBaseDirective.prototype, "isLastPage", null);
55141
- __decorate([
55142
- DeprecateMethod('Use the corresponding method exposed by the `igx-paginator`.')
55143
- ], IgxGridBaseDirective.prototype, "paginate", null);
55144
55143
  __decorate([
55145
55144
  WatchChanges()
55146
55145
  ], IgxGridBaseDirective.prototype, "selectRowOnClick", null);
@@ -55188,7 +55187,7 @@ class BaseRow {
55188
55187
  return (_b = this._data) !== null && _b !== void 0 ? _b : this.grid.dataView[this.index];
55189
55188
  }
55190
55189
  /**
55191
- * @deprecated Use 'data' instead.
55190
+ * @deprecated Use 'data' instead
55192
55191
  *
55193
55192
  * The data record that populates the row
55194
55193
  */
@@ -55196,8 +55195,7 @@ class BaseRow {
55196
55195
  return this.data;
55197
55196
  }
55198
55197
  /**
55199
- * @deprecated Use 'key' instead.
55200
- *
55198
+ * @deprecated Use 'key' instead
55201
55199
  */
55202
55200
  get rowID() {
55203
55201
  return this.key;
@@ -55366,12 +55364,6 @@ class BaseRow {
55366
55364
  this.grid.deleteRowById(this.key);
55367
55365
  }
55368
55366
  }
55369
- __decorate([
55370
- DeprecateProperty(`'rowData' property is deprecated. Use 'data' instead.`)
55371
- ], BaseRow.prototype, "rowData", null);
55372
- __decorate([
55373
- DeprecateProperty(`'rowID' property is deprecated. Use 'key' instead.`)
55374
- ], BaseRow.prototype, "rowID", null);
55375
55367
  class IgxGridRow extends BaseRow {
55376
55368
  /**
55377
55369
  * @hidden
@@ -56368,17 +56360,6 @@ class IgxGridCellComponent {
56368
56360
  get currencyCodeSymbol() {
56369
56361
  return getCurrencySymbol(this.currencyCode, 'wide', this.grid.locale);
56370
56362
  }
56371
- /**
56372
- * @deprecated
56373
- * Gets whether the cell is selected.
56374
- * ```typescript
56375
- * let isCellSelected = thid.cell.isCellSelected();
56376
- * ```
56377
- * @memberof IgxGridCellComponent
56378
- */
56379
- isCellSelected() {
56380
- return this.selectionService.selected(this.selectionNode);
56381
- }
56382
56363
  /**
56383
56364
  * @hidden
56384
56365
  * @internal
@@ -56683,9 +56664,6 @@ IgxGridCellComponent.propDecorators = {
56683
56664
  onClick: [{ type: HostListener, args: ['click', ['$event'],] }],
56684
56665
  onContextMenu: [{ type: HostListener, args: ['contextmenu', ['$event'],] }]
56685
56666
  };
56686
- __decorate([
56687
- DeprecateMethod(`'isCellSelected' is deprecated. Use 'selected' property instead.`)
56688
- ], IgxGridCellComponent.prototype, "isCellSelected", null);
56689
56667
 
56690
56668
  class IgxGridFooterComponent {
56691
56669
  }
@@ -57064,9 +57042,10 @@ class IgxColumnActionsComponent {
57064
57042
  this._differ = this.differs.find([]).create(this.trackChanges);
57065
57043
  }
57066
57044
  /**
57045
+ * @deprecated Use grid input instead.
57046
+ *
57067
57047
  * Gets the grid columns to provide an action for.
57068
57048
  *
57069
- * @deprecated
57070
57049
  * @example
57071
57050
  * ```typescript
57072
57051
  * let gridColumns = this.columnActions.columns;
@@ -57306,9 +57285,6 @@ IgxColumnActionsComponent.propDecorators = {
57306
57285
  checkAllText: [{ type: Input }],
57307
57286
  id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }]
57308
57287
  };
57309
- __decorate([
57310
- DeprecateProperty(`Deprecated. Use 'grid' input instead.`)
57311
- ], IgxColumnActionsComponent.prototype, "columns", null);
57312
57288
 
57313
57289
  /**
57314
57290
  * @hidden
@@ -59992,7 +59968,7 @@ IgxTimePickerComponent.decorators = [
59992
59968
  }
59993
59969
  ],
59994
59970
  selector: 'igx-time-picker',
59995
- 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",
59971
+ 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",
59996
59972
  styles: [`:host {
59997
59973
  display: block;
59998
59974
  }`]
@@ -61601,7 +61577,8 @@ class IgxGridComponent extends IgxGridBaseDirective {
61601
61577
  return this._dropAreaMessage || this.resourceStrings.igx_grid_groupByArea_message;
61602
61578
  }
61603
61579
  /**
61604
- * @deprecated
61580
+ * @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
61581
+ *
61605
61582
  * Returns a `CellType` object that matches the conditions.
61606
61583
  *
61607
61584
  * @example
@@ -62363,9 +62340,6 @@ IgxGridComponent.propDecorators = {
62363
62340
  dropAreaMessage: [{ type: Input }],
62364
62341
  showGroupArea: [{ type: Input }]
62365
62342
  };
62366
- __decorate([
62367
- DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
62368
- ], IgxGridComponent.prototype, "getCellByColumnVisibleIndex", null);
62369
62343
 
62370
62344
  class IgxGridStateDirective {
62371
62345
  /**
@@ -65168,7 +65142,8 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
65168
65142
  return this.gridAPI;
65169
65143
  }
65170
65144
  /**
65171
- * @deprecated
65145
+ * @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
65146
+ *
65172
65147
  * Returns a `CellType` object that matches the conditions.
65173
65148
  *
65174
65149
  * @example
@@ -65224,7 +65199,7 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
65224
65199
  // if a row has been added and before commiting the transaction deleted
65225
65200
  const leafRowsDirectParents = new Set();
65226
65201
  this.records.forEach(record => {
65227
- if (record && !record.children && record.parent) {
65202
+ if (record && (!record.children || record.children.length === 0) && record.parent) {
65228
65203
  leafRowsDirectParents.add(record.parent);
65229
65204
  }
65230
65205
  });
@@ -65240,7 +65215,7 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
65240
65215
  if (this.rowSelection === GridSelectionMode.multipleCascade) {
65241
65216
  const leafRowsDirectParents = new Set();
65242
65217
  this.records.forEach(record => {
65243
- if (record && !record.children && record.parent) {
65218
+ if (record && (!record.children || record.children.length === 0) && record.parent) {
65244
65219
  leafRowsDirectParents.add(record.parent);
65245
65220
  }
65246
65221
  });
@@ -65828,9 +65803,6 @@ IgxTreeGridComponent.propDecorators = {
65828
65803
  expansionDepth: [{ type: Input }],
65829
65804
  rowLoadingIndicatorTemplate: [{ type: Input }]
65830
65805
  };
65831
- __decorate([
65832
- DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
65833
- ], IgxTreeGridComponent.prototype, "getCellByColumnVisibleIndex", null);
65834
65806
 
65835
65807
  class IgxTreeGridRowComponent extends IgxRowDirective {
65836
65808
  /**
@@ -68031,7 +68003,8 @@ class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirective {
68031
68003
  return this._defaultExpandState;
68032
68004
  }
68033
68005
  /**
68034
- * @deprecated
68006
+ * @deprecated in version 12.1.0. Use `getCellByColumn` or `getCellByKey` instead
68007
+ *
68035
68008
  * Returns a `CellType` object that matches the conditions.
68036
68009
  *
68037
68010
  * @example
@@ -68676,9 +68649,6 @@ IgxHierarchicalGridComponent.propDecorators = {
68676
68649
  data: [{ type: Input }],
68677
68650
  expandChildren: [{ type: Input }]
68678
68651
  };
68679
- __decorate([
68680
- DeprecateMethod('`getCellByColumnVisibleIndex` is deprecated. Use `getCellByColumn` or `getCellByKey` instead')
68681
- ], IgxHierarchicalGridComponent.prototype, "getCellByColumnVisibleIndex", null);
68682
68652
 
68683
68653
  class IgxHierarchicalGridCellComponent extends IgxGridCellComponent {
68684
68654
  constructor(selectionService, gridAPI, cdr, helement, zone, touchManager, platformUtil) {
@@ -73115,6 +73085,8 @@ class IgxToastComponent extends IgxNotificationsDirective {
73115
73085
  };
73116
73086
  }
73117
73087
  /**
73088
+ * @deprecated in version 12.2.3. We suggest using `positionSettings` property instead
73089
+ *
73118
73090
  * Sets/gets the position of the toast.
73119
73091
  * If not set, the `position` attribute will have value `IgxToastPosition.Bottom`.
73120
73092
  * ```html
@@ -73258,9 +73230,6 @@ IgxToastComponent.propDecorators = {
73258
73230
  position: [{ type: Input }],
73259
73231
  positionSettings: [{ type: Input }]
73260
73232
  };
73261
- __decorate([
73262
- DeprecateProperty('`position` is deprecated. We suggest using `positionSettings` property instead.')
73263
- ], IgxToastComponent.prototype, "position", null);
73264
73233
  /**
73265
73234
  * @hidden
73266
73235
  */
@@ -76654,5 +76623,5 @@ IgxTreeModule.decorators = [
76654
76623
  * Generated bundle index. Do not edit.
76655
76624
  */
76656
76625
 
76657
- export { AbsolutePosition, AbsoluteScrollStrategy, AutoPositionStrategy, BaseFilteringStrategy, BaseProgressDirective, BlockScrollStrategy, ButtonGroupAlignment, Calendar, CalendarHammerConfig, CalendarSelection, CalendarView, CarouselAnimationType, CarouselHammerConfig, CarouselIndicatorsOrientation, CloseScrollStrategy, ColumnDisplayOrder, ColumnPinningPosition, ConnectedPositioningStrategy, ContainerPositionStrategy, CsvFileTypes, DEFAULT_OWNER, DataUtil, DatePart, DateRangePickerFormatPipe, DateRangeType, DefaultSortingStrategy, Direction, DisplayDensity, DisplayDensityBase, DisplayDensityToken, DragDirection, ElasticPositionStrategy, ExpansionPanelHeaderIconPosition, ExportRecordType, FilterListItem, FilterMode, FilteringExpressionsTree, FilteringExpressionsTreeType, FilteringLogic, FilteringStrategy, FormattedValuesFilteringStrategy, GlobalPositionStrategy, GridBaseAPIService, GridColumnDataType, GridInstanceType, GridPagingMode, GridSelectionMode, GridSummaryCalculationMode, GridSummaryPosition, GroupedRecords, HeaderType, HorizontalAlignment, IGX_CHECKBOX_REQUIRED_VALIDATOR, IGX_INPUT_GROUP_TYPE, IGX_SWITCH_REQUIRED_VALIDATOR, ITreeGridAggregation, IgxAccordionComponent, IgxAccordionModule, IgxActionStripComponent, IgxActionStripModule, IgxAppendDropStrategy, IgxAutocompleteDirective, IgxAutocompleteModule, IgxAvatarComponent, IgxAvatarModule, IgxAvatarSize, IgxAvatarType, IgxBadgeComponent, IgxBadgeModule, IgxBadgeType, IgxBannerComponent, IgxBannerModule, IgxBaseExporter, IgxBaseTransactionService, IgxBooleanFilteringOperand, IgxBottomNavComponent, IgxBottomNavContentComponent, IgxBottomNavHeaderComponent, IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective, IgxBottomNavItemComponent, IgxBottomNavModule, IgxButtonDirective, IgxButtonGroupComponent, IgxButtonGroupModule, IgxButtonModule, IgxCSVTextDirective, IgxCalendarBaseDirective, IgxCalendarComponent, IgxCalendarHeaderTemplateDirective, IgxCalendarModule, IgxCalendarMonthDirective, IgxCalendarScrollMonthDirective, IgxCalendarSubheaderTemplateDirective, IgxCalendarView, IgxCalendarYearDirective, IgxCardActionsComponent, IgxCardActionsLayout, IgxCardComponent, IgxCardContentDirective, IgxCardFooterDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective, IgxCardModule, IgxCardThumbnailDirective, IgxCardType, IgxCarouselComponent, IgxCarouselComponentBase, IgxCarouselModule, IgxCellEditorTemplateDirective, IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCheckboxComponent, IgxCheckboxModule, IgxCheckboxRequiredDirective, IgxChipComponent, IgxChipsAreaComponent, IgxChipsModule, IgxCircularProgressBarComponent, IgxCollapsibleIndicatorTemplateDirective, IgxColumnActionsBaseDirective, IgxColumnActionsComponent, IgxColumnActionsModule, IgxColumnComponent, IgxColumnGroupComponent, IgxColumnLayoutComponent, IgxComboComponent, IgxComboModule, IgxCsvExporterOptions, IgxCsvExporterService, IgxDataLoadingTemplateDirective, IgxDataRecordSorting, IgxDateFilteringOperand, IgxDatePickerComponent, IgxDatePickerModule, IgxDateRangeEndComponent, IgxDateRangeInputsBaseComponent, IgxDateRangePickerComponent, IgxDateRangePickerModule, IgxDateRangeSeparatorDirective, IgxDateRangeStartComponent, IgxDateSummaryOperand, IgxDateTimeEditorDirective, IgxDateTimeEditorModule, IgxDateTimeFilteringOperand, IgxDaysViewComponent, IgxDefaultDropStrategy, IgxDialogComponent, IgxDialogModule, IgxDisplayDensityModule, IgxDividerDirective, IgxDividerModule, IgxDividerType, IgxDragDirective, IgxDragDropModule, IgxDragHandleDirective, IgxDragIgnoreDirective, IgxDragLocation, IgxDropDirective, IgxDropDownBaseDirective, IgxDropDownComponent, IgxDropDownGroupComponent, IgxDropDownItemBaseDirective, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective, IgxDropDownModule, IgxEmptyListTemplateDirective, IgxExcelExporterOptions, IgxExcelExporterService, IgxExcelStyleClearFiltersComponent, IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleFilterOperationsTemplateDirective, IgxExcelStyleHeaderComponent, IgxExcelStyleHeaderIconDirective, IgxExcelStyleHidingComponent, IgxExcelStyleLoadingValuesTemplateDirective, IgxExcelStyleMovingComponent, IgxExcelStylePinningComponent, IgxExcelStyleSearchComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleSortingComponent, IgxExcelTextDirective, IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelModule, IgxExporterOptionsBase, IgxFilterCellTemplateDirective, IgxFilterDirective, IgxFilterModule, IgxFilterOptions, IgxFilterPipe, IgxFilteringOperand, IgxFlatTransactionFactory, IgxFlexDirective, IgxFocusDirective, IgxFocusModule, IgxForOfContext, IgxForOfDirective, IgxForOfModule, IgxGridAPIService, IgxGridActionsBaseDirective, IgxGridBaseDirective, IgxGridBodyDirective, IgxGridCell, IgxGridCommonModule, IgxGridComponent, IgxGridDetailTemplateDirective, IgxGridEditingActionsComponent, IgxGridExcelStyleFilteringComponent, IgxGridForOfDirective, IgxGridHierarchicalPagingPipe, IgxGridHierarchicalPipe, IgxGridModule, IgxGridPinningActionsComponent, IgxGridRow, IgxGridStateDirective, IgxGridStateModule, IgxGridToolbarActionsDirective, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarComponent, IgxGridToolbarDirective, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarTitleDirective, IgxGridTransaction, IgxGroupAreaDropDirective, IgxGroupByRow, IgxGroupByRowTemplateDirective, IgxGroupedTreeGridSorting, IgxGrouping, IgxHeaderCollapseIndicatorDirective, IgxHeaderExpandIndicatorDirective, IgxHierarchicalGridAPIService, IgxHierarchicalGridBaseDirective, IgxHierarchicalGridComponent, IgxHierarchicalGridModule, IgxHierarchicalGridRow, IgxHierarchicalTransactionFactory, IgxHierarchicalTransactionService, IgxHierarchicalTransactionServiceFactory, IgxHintDirective, IgxIconComponent, IgxIconModule, IgxIconService, IgxInputDirective, IgxInputGroupComponent, IgxInputGroupModule, IgxInputState, IgxInsertDropStrategy, IgxLabelDirective, IgxLayoutDirective, IgxLayoutModule, IgxLinearProgressBarComponent, IgxListActionDirective, IgxListBaseDirective, IgxListComponent, IgxListItemComponent, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective, IgxListLineDirective, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListModule, IgxListPanState, IgxListThumbnailDirective, IgxMaskDirective, IgxMaskModule, IgxMonthPickerBaseDirective, IgxMonthPickerComponent, IgxMonthsViewComponent, IgxNavDrawerItemDirective, IgxNavDrawerMiniTemplateDirective, IgxNavDrawerTemplateDirective, IgxNavbarActionDirective, IgxNavbarComponent, IgxNavbarModule, IgxNavbarTitleDirective, IgxNavigationCloseDirective, IgxNavigationDrawerComponent, IgxNavigationDrawerModule, IgxNavigationModule, IgxNavigationService, IgxNavigationToggleDirective, IgxNumberFilteringOperand, IgxNumberSummaryOperand, IgxOverlayOutletDirective, IgxOverlayService, IgxPageNavigationComponent, IgxPageSizeSelectorComponent, IgxPaginatorComponent, IgxPaginatorDirective, IgxPaginatorModule, IgxPaginatorTemplateDirective, IgxPickerActionsDirective, IgxPickerClearComponent, IgxPickerToggleComponent, IgxPickersCommonModule, IgxPrefixDirective, IgxPrefixModule, IgxPrependDropStrategy, IgxProgressBarModule, IgxProgressType, IgxRadioComponent, IgxRadioGroupDirective, IgxRadioModule, IgxRippleDirective, IgxRippleModule, IgxRowCollapsedIndicatorDirective, IgxRowExpandedIndicatorDirective, IgxRowIslandAPIService, IgxRowIslandComponent, IgxSelectComponent, IgxSelectFooterDirective, IgxSelectGroupComponent, IgxSelectHeaderDirective, IgxSelectItemComponent, IgxSelectModule, IgxSelectToggleIconDirective, IgxSimpleComboComponent, IgxSimpleComboModule, IgxSlideComponent, IgxSliderComponent, IgxSliderModule, IgxSliderType, IgxSnackbarComponent, IgxSnackbarModule, IgxSorting, IgxSplitterComponent, IgxSplitterModule, IgxSplitterPaneComponent, IgxStringFilteringOperand, IgxSuffixDirective, IgxSuffixModule, IgxSummaryOperand, IgxSummaryRow, IgxSwitchComponent, IgxSwitchModule, IgxSwitchRequiredDirective, IgxTabContentComponent, IgxTabContentDirective, IgxTabHeaderComponent, IgxTabHeaderDirective, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxTabItemComponent, IgxTabItemDirective, IgxTabsAlignment, IgxTabsComponent, IgxTabsDirective, IgxTabsModule, IgxTextAlign, IgxTextHighlightDirective, IgxTextHighlightModule, IgxTextSelectionDirective, IgxTextSelectionModule, IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective, IgxTickLabelTemplateDirective, IgxTimeFilteringOperand, IgxTimePickerComponent, IgxTimePickerModule, IgxTimeSummaryOperand, IgxToastComponent, IgxToastModule, IgxToastPosition, IgxToggleActionDirective, IgxToggleDirective, IgxToggleModule, IgxTooltipDirective, IgxTooltipModule, IgxTooltipTargetDirective, IgxTransactionService, IgxTreeComponent, IgxTreeExpandIndicatorDirective, IgxTreeGridAPIService, IgxTreeGridComponent, IgxTreeGridGroupingPipe, IgxTreeGridModule, IgxTreeGridRow, IgxTreeModule, IgxTreeNodeComponent, IgxTreeNodeLinkDirective, IgxTreeSelectMarkerDirective, IgxTreeSelectionType, IgxYearsViewComponent, LabelPosition, NoOpScrollStrategy, NoopFilteringStrategy, NoopSortingStrategy, PagingError, PickerInteractionMode, Point, RadioGroupAlignment, RadioLabelPosition, RelativePosition, RelativePositionStrategy, RowEditPositionStrategy, RowPinningPosition, ScrollMonth, ScrollStrategy, SliderHandle, SortingDirection, SplitterType, SwitchLabelPosition, TickLabelsOrientation, TicksOrientation, TransactionEventOrigin, TransactionType, TreeGridFilteringStrategy, TreeGridFormattedValuesFilteringStrategy, TreeGridMatchingRecordsOnlyFilteringStrategy, VerticalAlignment, WEEKDAYS, blink, changei18n, fadeIn, fadeOut, filteringStateDefaults, flipBottom, flipHorBck, flipHorFwd, flipLeft, flipRight, flipTop, flipVerBck, flipVerFwd, getCurrentResourceStrings, getTypeNameForDebugging, growVerIn, growVerOut, heartbeat, hierarchicalTransactionServiceFactory, isDateInRanges, isLeap, monthRange, pulsateBck, pulsateFwd, range, rotateInBl, rotateInBottom, rotateInBr, rotateInCenter, rotateInDiagonal1, rotateInDiagonal2, rotateInHor, rotateInLeft, rotateInRight, rotateInTl, rotateInTop, rotateInTr, rotateInVer, rotateOutBl, rotateOutBottom, rotateOutBr, rotateOutCenter, rotateOutDiagonal1, rotateOutDiagonal2, rotateOutHor, rotateOutLeft, rotateOutRight, rotateOutTl, rotateOutTop, rotateOutTr, rotateOutVer, scaleInBl, scaleInBottom, scaleInBr, scaleInCenter, scaleInHorCenter, scaleInHorLeft, scaleInHorRight, scaleInLeft, scaleInRight, scaleInTl, scaleInTop, scaleInTr, scaleInVerBottom, scaleInVerCenter, scaleInVerTop, scaleOutBl, scaleOutBottom, scaleOutBr, scaleOutCenter, scaleOutHorCenter, scaleOutHorLeft, scaleOutHorRight, scaleOutLeft, scaleOutRight, scaleOutTl, scaleOutTop, scaleOutTr, scaleOutVerBottom, scaleOutVerCenter, scaleOutVerTop, shakeBl, shakeBottom, shakeBr, shakeCenter, shakeHor, shakeLeft, shakeRight, shakeTl, shakeTop, shakeTr, shakeVer, slideInBl, slideInBottom, slideInBr, slideInLeft, slideInRight, slideInTl, slideInTop, slideInTr, slideOutBl, slideOutBottom, slideOutBr, slideOutLeft, slideOutRight, slideOutTl, slideOutTop, slideOutTr, swingInBottomBck, swingInBottomFwd, swingInLeftBck, swingInLeftFwd, swingInRightBck, swingInRightFwd, swingInTopBck, swingInTopFwd, swingOutBottomBck, swingOutBottomFwd, swingOutLeftBck, swingOutLefttFwd, swingOutRightBck, swingOutRightFwd, swingOutTopBck, swingOutTopFwd, toPercent, valueInRange, weekDay, ɵ1, ɵ2, IgxActionStripMenuItemDirective as ɵa, IGX_DROPDOWN_BASE as ɵb, IgxGridActionButtonComponent as ɵba, ToggleAnimationPlayer as ɵbb, IgxExpansionPanelTitleDirective as ɵbc, IgxExpansionPanelDescriptionDirective as ɵbd, IgxExpansionPanelIconDirective as ɵbe, IgxBannerActionsDirective as ɵbf, IgxDaysViewNavigationService as ɵbg, IgxDayItemComponent as ɵbh, IgxMonthViewSlotsCalendar as ɵbi, IgxGetViewDateCalendar as ɵbj, IgxCarouselIndicatorDirective as ɵbk, IgxCarouselNextButtonDirective as ɵbl, IgxCarouselPrevButtonDirective as ɵbm, IGX_COMBO_COMPONENT as ɵbn, IgxComboBaseDirective as ɵbp, IgxComboHeaderDirective as ɵbq, IgxComboFooterDirective as ɵbr, IgxComboItemDirective as ɵbs, IgxComboEmptyDirective as ɵbt, IgxComboHeaderItemDirective as ɵbu, IgxComboAddItemDirective as ɵbv, IgxComboToggleIconDirective as ɵbw, IgxComboClearIconDirective as ɵbx, IgxComboAPIService as ɵby, IgxComboDropDownComponent as ɵbz, IgxComboItemComponent as ɵca, IgxComboFilteringPipe as ɵcb, IgxComboGroupingPipe as ɵcc, IgxComboAddItemComponent as ɵcd, PickerBaseDirective as ɵce, IgxCalendarContainerComponent as ɵcf, IgxCalendarContainerModule as ɵcg, IgxDialogTitleDirective as ɵch, IgxDialogActionsDirective as ɵci, IgxCellCrudState as ɵcj, IgxRowCrudState as ɵck, IgxRowAddCrudState as ɵcl, IgxGridCRUDService as ɵcm, IgxColumnMovingService as ɵcn, IgxExcelStyleCustomDialogComponent as ɵco, IgxExcelStyleDefaultExpressionComponent as ɵcp, IgxExcelStyleDateExpressionComponent as ɵcq, HammerGesturesManager as ɵcr, WatchChanges as ɵcs, WatchColumnChanges as ɵct, notifyChanges as ɵcu, IgxNotificationsDirective as ɵcv, IgxGridColumnResizerComponent as ɵcw, IgxColumnResizerDirective as ɵcx, IgxColumnResizingService as ɵcy, IgxRowSelectorDirective as ɵcz, IgxGridSelectionService as ɵd, IgxGroupByRowSelectorDirective as ɵda, IgxHeadSelectorDirective as ɵdb, IgxRowDragDirective as ɵdc, IgxDragIndicatorIconDirective as ɵdd, IgxRowDragGhostDirective as ɵde, IgxRowDragModule as ɵdf, IgxGridHeaderRowComponent as ɵdg, IgxGridHeaderGroupComponent as ɵdh, IgxGridHeaderComponent as ɵdi, IgxGridFilteringCellComponent as ɵdj, IgxFilteringService as ɵdk, IgxGridFilteringRowComponent as ɵdl, IgxGridGroupByAreaComponent as ɵdm, IgxGroupByAreaDirective as ɵdn, IgxGroupByMetaPipe as ɵdo, IgxTemplateOutletDirective as ɵdp, IgxTemplateOutletModule as ɵdq, IgxRowEditTemplateDirective as ɵdr, IgxRowEditTextDirective as ɵds, IgxRowAddTextDirective as ɵdt, IgxRowEditActionsDirective as ɵdu, IgxRowEditTabStopDirective as ɵdv, IgxSummaryRowComponent as ɵdw, IgxSummaryCellComponent as ɵdx, IgxRowDirective as ɵdy, IgxGridNavigationService as ɵdz, IgxGridSummaryService as ɵea, ConnectedPositioningStrategy as ɵeb, IgxGridGroupByRowComponent as ɵec, IgxTreeGridSelectionService as ɵed, IgxTreeGridGroupByAreaComponent as ɵee, IgxRowLoadingIndicatorTemplateDirective as ɵef, IgxHierarchicalGridNavigationService as ɵeg, IgxChildGridRowComponent as ɵeh, IgxGridCellComponent as ɵei, IgxGridFooterComponent as ɵej, IgxAdvancedFilteringDialogComponent as ɵek, IgxColumnHidingDirective as ɵel, IgxColumnPinningDirective as ɵem, IgxGridSharedModules as ɵen, IgxProcessBarTextTemplateDirective as ɵeo, IgxProgressBarGradientDirective as ɵep, DIR_DOCUMENT_FACTORY as ɵeq, DIR_DOCUMENT as ɵer, IgxDirectionality as ɵes, IgxSelectItemNavigationDirective as ɵet, IGX_TIME_PICKER_COMPONENT as ɵeu, IgxItemListDirective as ɵew, IgxTimeItemDirective as ɵex, IgxTimePickerTemplateDirective as ɵey, IgxTimePickerActionsDirective as ɵez, IGX_EXPANSION_PANEL_COMPONENT as ɵf, TimeFormatPipe as ɵfa, TimeItemPipe as ɵfb, IgxGridPipesModule as ɵfc, IgxGridCellStyleClassesPipe as ɵfd, IgxGridCellStylesPipe as ɵfe, IgxGridRowClassesPipe as ɵff, IgxGridRowStylesPipe as ɵfg, IgxGridNotGroupedPipe as ɵfh, IgxGridTopLevelColumns as ɵfi, IgxGridFilterConditionPipe as ɵfj, IgxGridTransactionPipe as ɵfk, IgxGridPaginatorOptionsPipe as ɵfl, IgxHasVisibleColumnsPipe as ɵfm, IgxGridRowPinningPipe as ɵfn, IgxColumnActionEnabledPipe as ɵfo, IgxFilterActionColumnsPipe as ɵfp, IgxSortActionColumnsPipe as ɵfq, IgxGridDataMapperPipe as ɵfr, IgxStringReplacePipe as ɵfs, IgxGridTransactionStatePipe as ɵft, IgxColumnFormatterPipe as ɵfu, IgxSummaryFormatterPipe as ɵfv, IgxGridAddRowPipe as ɵfw, IgxHeaderGroupWidthPipe as ɵfx, IgxHeaderGroupStylePipe as ɵfy, IgxGridColumnModule as ɵfz, IGX_TREE_COMPONENT as ɵg, IgxGridHeadersModule as ɵga, SortingIndexPipe as ɵgb, IgxGridFilteringModule as ɵgc, IgxColumnMovingModule as ɵgd, IgxColumnMovingDropDirective as ɵge, IgxColumnMovingDragDirective as ɵgf, IgxGridResizingModule as ɵgg, IgxResizeHandleDirective as ɵgh, IgxGridExcelStyleFilteringModule as ɵgi, IgxGridSelectionModule as ɵgj, IgxGridDragSelectDirective as ɵgk, IgxGridSummaryModule as ɵgl, IgxSummaryDataPipe as ɵgm, IgxGridToolbarModule as ɵgn, BaseToolbarDirective as ɵgo, BaseToolbarColumnActionsDirective as ɵgp, IgxGridRowComponent as ɵgq, IgxGridSortingPipe as ɵgr, IgxGridGroupingPipe as ɵgs, IgxGridPagingPipe as ɵgt, IgxGridFilteringPipe as ɵgu, IgxGridSummaryPipe as ɵgv, IgxGridDetailsPipe as ɵgw, IgxGridExpandableCellComponent as ɵgx, IgxTreeGridRowComponent as ɵgy, IgxTreeGridCellComponent as ɵgz, IGX_TREE_NODE_COMPONENT as ɵh, IgxTreeGridHierarchizingPipe as ɵha, IgxTreeGridFlatteningPipe as ɵhb, IgxTreeGridSortingPipe as ɵhc, IgxTreeGridPagingPipe as ɵhd, IgxTreeGridTransactionPipe as ɵhe, IgxTreeGridNormalizeRecordsPipe as ɵhf, IgxTreeGridAddRowPipe as ɵhg, IgxTreeGridFilteringPipe as ɵhh, IgxTreeGridSummaryPipe as ɵhi, IgxHierarchicalRowComponent as ɵhj, IgxHierarchicalGridCellComponent as ɵhk, IgxSliderThumbComponent as ɵhl, IgxThumbLabelComponent as ɵhm, IgxTicksComponent as ɵhn, IgxTickLabelsPipe as ɵho, IgxTabsBase as ɵhp, IgxTabHeaderBase as ɵhq, IgxTabContentBase as ɵhr, IgxSplitBarComponent as ɵhs, IgxTreeService as ɵht, IgxTreeSelectionService as ɵhu, IgxTreeNavigationService as ɵhv, PlatformUtil as ɵi, EaseIn as ɵj, EaseOut as ɵk, IgxInputGroupBase as ɵl, IgxSelectionAPIService as ɵm, IgxForOfSyncService as ɵn, IgxForOfScrollSyncService as ɵo, DisplayContainerComponent as ɵp, IgxScrollInertiaDirective as ɵq, IgxScrollInertiaModule as ɵr, VirtualHelperComponent as ɵs, VirtualHelperBaseDirective as ɵt, HVirtualHelperComponent as ɵu, MaskParsingService as ɵv, DeprecateMethod as ɵw, DeprecateProperty as ɵx, isHierarchyMatch as ɵy, getHierarchy as ɵz };
76626
+ export { AbsolutePosition, AbsoluteScrollStrategy, AutoPositionStrategy, BaseFilteringStrategy, BaseProgressDirective, BlockScrollStrategy, ButtonGroupAlignment, Calendar, CalendarHammerConfig, CalendarSelection, CalendarView, CarouselAnimationType, CarouselHammerConfig, CarouselIndicatorsOrientation, CloseScrollStrategy, ColumnDisplayOrder, ColumnPinningPosition, ConnectedPositioningStrategy, ContainerPositionStrategy, CsvFileTypes, DEFAULT_OWNER, DataUtil, DatePart, DateRangePickerFormatPipe, DateRangeType, DefaultSortingStrategy, Direction, DisplayDensity, DisplayDensityBase, DisplayDensityToken, DragDirection, ElasticPositionStrategy, ExpansionPanelHeaderIconPosition, ExportRecordType, FilterListItem, FilterMode, FilteringExpressionsTree, FilteringExpressionsTreeType, FilteringLogic, FilteringStrategy, FormattedValuesFilteringStrategy, GlobalPositionStrategy, GridBaseAPIService, GridColumnDataType, GridInstanceType, GridPagingMode, GridSelectionMode, GridSummaryCalculationMode, GridSummaryPosition, GroupedRecords, HeaderType, HorizontalAlignment, IGX_CHECKBOX_REQUIRED_VALIDATOR, IGX_INPUT_GROUP_TYPE, IGX_SWITCH_REQUIRED_VALIDATOR, ITreeGridAggregation, IgxAccordionComponent, IgxAccordionModule, IgxActionStripComponent, IgxActionStripModule, IgxAppendDropStrategy, IgxAutocompleteDirective, IgxAutocompleteModule, IgxAvatarComponent, IgxAvatarModule, IgxAvatarSize, IgxAvatarType, IgxBadgeComponent, IgxBadgeModule, IgxBadgeType, IgxBannerComponent, IgxBannerModule, IgxBaseExporter, IgxBaseTransactionService, IgxBooleanFilteringOperand, IgxBottomNavComponent, IgxBottomNavContentComponent, IgxBottomNavHeaderComponent, IgxBottomNavHeaderIconDirective, IgxBottomNavHeaderLabelDirective, IgxBottomNavItemComponent, IgxBottomNavModule, IgxButtonDirective, IgxButtonGroupComponent, IgxButtonGroupModule, IgxButtonModule, IgxCSVTextDirective, IgxCalendarBaseDirective, IgxCalendarComponent, IgxCalendarHeaderTemplateDirective, IgxCalendarModule, IgxCalendarMonthDirective, IgxCalendarScrollMonthDirective, IgxCalendarSubheaderTemplateDirective, IgxCalendarView, IgxCalendarYearDirective, IgxCardActionsComponent, IgxCardActionsLayout, IgxCardComponent, IgxCardContentDirective, IgxCardFooterDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective, IgxCardModule, IgxCardThumbnailDirective, IgxCardType, IgxCarouselComponent, IgxCarouselComponentBase, IgxCarouselModule, IgxCellEditorTemplateDirective, IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCheckboxComponent, IgxCheckboxModule, IgxCheckboxRequiredDirective, IgxChipComponent, IgxChipsAreaComponent, IgxChipsModule, IgxCircularProgressBarComponent, IgxCollapsibleIndicatorTemplateDirective, IgxColumnActionsBaseDirective, IgxColumnActionsComponent, IgxColumnActionsModule, IgxColumnComponent, IgxColumnGroupComponent, IgxColumnLayoutComponent, IgxComboComponent, IgxComboModule, IgxCsvExporterOptions, IgxCsvExporterService, IgxDataLoadingTemplateDirective, IgxDataRecordSorting, IgxDateFilteringOperand, IgxDatePickerComponent, IgxDatePickerModule, IgxDateRangeEndComponent, IgxDateRangeInputsBaseComponent, IgxDateRangePickerComponent, IgxDateRangePickerModule, IgxDateRangeSeparatorDirective, IgxDateRangeStartComponent, IgxDateSummaryOperand, IgxDateTimeEditorDirective, IgxDateTimeEditorModule, IgxDateTimeFilteringOperand, IgxDaysViewComponent, IgxDefaultDropStrategy, IgxDialogComponent, IgxDialogModule, IgxDisplayDensityModule, IgxDividerDirective, IgxDividerModule, IgxDividerType, IgxDragDirective, IgxDragDropModule, IgxDragHandleDirective, IgxDragIgnoreDirective, IgxDragLocation, IgxDropDirective, IgxDropDownBaseDirective, IgxDropDownComponent, IgxDropDownGroupComponent, IgxDropDownItemBaseDirective, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective, IgxDropDownModule, IgxEmptyListTemplateDirective, IgxExcelExporterOptions, IgxExcelExporterService, IgxExcelStyleClearFiltersComponent, IgxExcelStyleColumnOperationsTemplateDirective, IgxExcelStyleConditionalFilterComponent, IgxExcelStyleFilterOperationsTemplateDirective, IgxExcelStyleHeaderComponent, IgxExcelStyleHeaderIconDirective, IgxExcelStyleHidingComponent, IgxExcelStyleLoadingValuesTemplateDirective, IgxExcelStyleMovingComponent, IgxExcelStylePinningComponent, IgxExcelStyleSearchComponent, IgxExcelStyleSelectingComponent, IgxExcelStyleSortingComponent, IgxExcelTextDirective, IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelModule, IgxExporterOptionsBase, IgxFilterCellTemplateDirective, IgxFilterDirective, IgxFilterModule, IgxFilterOptions, IgxFilterPipe, IgxFilteringOperand, IgxFlatTransactionFactory, IgxFlexDirective, IgxFocusDirective, IgxFocusModule, IgxForOfContext, IgxForOfDirective, IgxForOfModule, IgxGridAPIService, IgxGridActionsBaseDirective, IgxGridBaseDirective, IgxGridBodyDirective, IgxGridCell, IgxGridCommonModule, IgxGridComponent, IgxGridDetailTemplateDirective, IgxGridEditingActionsComponent, IgxGridExcelStyleFilteringComponent, IgxGridForOfDirective, IgxGridHierarchicalPagingPipe, IgxGridHierarchicalPipe, IgxGridModule, IgxGridPinningActionsComponent, IgxGridRow, IgxGridStateDirective, IgxGridStateModule, IgxGridToolbarActionsDirective, IgxGridToolbarAdvancedFilteringComponent, IgxGridToolbarComponent, IgxGridToolbarDirective, IgxGridToolbarExporterComponent, IgxGridToolbarHidingComponent, IgxGridToolbarPinningComponent, IgxGridToolbarTitleDirective, IgxGridTransaction, IgxGroupAreaDropDirective, IgxGroupByRow, IgxGroupByRowTemplateDirective, IgxGroupedTreeGridSorting, IgxGrouping, IgxHeaderCollapseIndicatorDirective, IgxHeaderExpandIndicatorDirective, IgxHierarchicalGridAPIService, IgxHierarchicalGridBaseDirective, IgxHierarchicalGridComponent, IgxHierarchicalGridModule, IgxHierarchicalGridRow, IgxHierarchicalTransactionFactory, IgxHierarchicalTransactionService, IgxHierarchicalTransactionServiceFactory, IgxHintDirective, IgxIconComponent, IgxIconModule, IgxIconService, IgxInputDirective, IgxInputGroupComponent, IgxInputGroupModule, IgxInputState, IgxInsertDropStrategy, IgxLabelDirective, IgxLayoutDirective, IgxLayoutModule, IgxLinearProgressBarComponent, IgxListActionDirective, IgxListBaseDirective, IgxListComponent, IgxListItemComponent, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective, IgxListLineDirective, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListModule, IgxListPanState, IgxListThumbnailDirective, IgxMaskDirective, IgxMaskModule, IgxMonthPickerBaseDirective, IgxMonthPickerComponent, IgxMonthsViewComponent, IgxNavDrawerItemDirective, IgxNavDrawerMiniTemplateDirective, IgxNavDrawerTemplateDirective, IgxNavbarActionDirective, IgxNavbarComponent, IgxNavbarModule, IgxNavbarTitleDirective, IgxNavigationCloseDirective, IgxNavigationDrawerComponent, IgxNavigationDrawerModule, IgxNavigationModule, IgxNavigationService, IgxNavigationToggleDirective, IgxNumberFilteringOperand, IgxNumberSummaryOperand, IgxOverlayOutletDirective, IgxOverlayService, IgxPageNavigationComponent, IgxPageSizeSelectorComponent, IgxPaginatorComponent, IgxPaginatorDirective, IgxPaginatorModule, IgxPaginatorTemplateDirective, IgxPickerActionsDirective, IgxPickerClearComponent, IgxPickerToggleComponent, IgxPickersCommonModule, IgxPrefixDirective, IgxPrefixModule, IgxPrependDropStrategy, IgxProgressBarModule, IgxProgressType, IgxRadioComponent, IgxRadioGroupDirective, IgxRadioModule, IgxRippleDirective, IgxRippleModule, IgxRowCollapsedIndicatorDirective, IgxRowExpandedIndicatorDirective, IgxRowIslandAPIService, IgxRowIslandComponent, IgxSelectComponent, IgxSelectFooterDirective, IgxSelectGroupComponent, IgxSelectHeaderDirective, IgxSelectItemComponent, IgxSelectModule, IgxSelectToggleIconDirective, IgxSimpleComboComponent, IgxSimpleComboModule, IgxSlideComponent, IgxSliderComponent, IgxSliderModule, IgxSliderType, IgxSnackbarComponent, IgxSnackbarModule, IgxSorting, IgxSplitterComponent, IgxSplitterModule, IgxSplitterPaneComponent, IgxStringFilteringOperand, IgxSuffixDirective, IgxSuffixModule, IgxSummaryOperand, IgxSummaryRow, IgxSwitchComponent, IgxSwitchModule, IgxSwitchRequiredDirective, IgxTabContentComponent, IgxTabContentDirective, IgxTabHeaderComponent, IgxTabHeaderDirective, IgxTabHeaderIconDirective, IgxTabHeaderLabelDirective, IgxTabItemComponent, IgxTabItemDirective, IgxTabsAlignment, IgxTabsComponent, IgxTabsDirective, IgxTabsModule, IgxTextAlign, IgxTextHighlightDirective, IgxTextHighlightModule, IgxTextSelectionDirective, IgxTextSelectionModule, IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective, IgxTickLabelTemplateDirective, IgxTimeFilteringOperand, IgxTimePickerComponent, IgxTimePickerModule, IgxTimeSummaryOperand, IgxToastComponent, IgxToastModule, IgxToastPosition, IgxToggleActionDirective, IgxToggleDirective, IgxToggleModule, IgxTooltipDirective, IgxTooltipModule, IgxTooltipTargetDirective, IgxTransactionService, IgxTreeComponent, IgxTreeExpandIndicatorDirective, IgxTreeGridAPIService, IgxTreeGridComponent, IgxTreeGridGroupingPipe, IgxTreeGridModule, IgxTreeGridRow, IgxTreeModule, IgxTreeNodeComponent, IgxTreeNodeLinkDirective, IgxTreeSelectMarkerDirective, IgxTreeSelectionType, IgxYearsViewComponent, LabelPosition, NoOpScrollStrategy, NoopFilteringStrategy, NoopSortingStrategy, PagingError, PickerInteractionMode, Point, RadioGroupAlignment, RadioLabelPosition, RelativePosition, RelativePositionStrategy, RowEditPositionStrategy, RowPinningPosition, ScrollMonth, ScrollStrategy, SliderHandle, SortingDirection, SplitterType, SwitchLabelPosition, TickLabelsOrientation, TicksOrientation, TransactionEventOrigin, TransactionType, TreeGridFilteringStrategy, TreeGridFormattedValuesFilteringStrategy, TreeGridMatchingRecordsOnlyFilteringStrategy, VerticalAlignment, WEEKDAYS, blink, changei18n, fadeIn, fadeOut, filteringStateDefaults, flipBottom, flipHorBck, flipHorFwd, flipLeft, flipRight, flipTop, flipVerBck, flipVerFwd, getCurrentResourceStrings, getTypeNameForDebugging, growVerIn, growVerOut, heartbeat, hierarchicalTransactionServiceFactory, isDateInRanges, isLeap, monthRange, pulsateBck, pulsateFwd, range, rotateInBl, rotateInBottom, rotateInBr, rotateInCenter, rotateInDiagonal1, rotateInDiagonal2, rotateInHor, rotateInLeft, rotateInRight, rotateInTl, rotateInTop, rotateInTr, rotateInVer, rotateOutBl, rotateOutBottom, rotateOutBr, rotateOutCenter, rotateOutDiagonal1, rotateOutDiagonal2, rotateOutHor, rotateOutLeft, rotateOutRight, rotateOutTl, rotateOutTop, rotateOutTr, rotateOutVer, scaleInBl, scaleInBottom, scaleInBr, scaleInCenter, scaleInHorCenter, scaleInHorLeft, scaleInHorRight, scaleInLeft, scaleInRight, scaleInTl, scaleInTop, scaleInTr, scaleInVerBottom, scaleInVerCenter, scaleInVerTop, scaleOutBl, scaleOutBottom, scaleOutBr, scaleOutCenter, scaleOutHorCenter, scaleOutHorLeft, scaleOutHorRight, scaleOutLeft, scaleOutRight, scaleOutTl, scaleOutTop, scaleOutTr, scaleOutVerBottom, scaleOutVerCenter, scaleOutVerTop, shakeBl, shakeBottom, shakeBr, shakeCenter, shakeHor, shakeLeft, shakeRight, shakeTl, shakeTop, shakeTr, shakeVer, slideInBl, slideInBottom, slideInBr, slideInLeft, slideInRight, slideInTl, slideInTop, slideInTr, slideOutBl, slideOutBottom, slideOutBr, slideOutLeft, slideOutRight, slideOutTl, slideOutTop, slideOutTr, swingInBottomBck, swingInBottomFwd, swingInLeftBck, swingInLeftFwd, swingInRightBck, swingInRightFwd, swingInTopBck, swingInTopFwd, swingOutBottomBck, swingOutBottomFwd, swingOutLeftBck, swingOutLefttFwd, swingOutRightBck, swingOutRightFwd, swingOutTopBck, swingOutTopFwd, toPercent, valueInRange, weekDay, ɵ1, ɵ2, IgxActionStripMenuItemDirective as ɵa, IGX_DROPDOWN_BASE as ɵb, IgxExpansionPanelTitleDirective as ɵba, IgxExpansionPanelDescriptionDirective as ɵbb, IgxExpansionPanelIconDirective as ɵbc, IgxBannerActionsDirective as ɵbd, IgxDaysViewNavigationService as ɵbe, IgxDayItemComponent as ɵbf, IgxMonthViewSlotsCalendar as ɵbg, IgxGetViewDateCalendar as ɵbh, IgxCarouselIndicatorDirective as ɵbi, IgxCarouselNextButtonDirective as ɵbj, IgxCarouselPrevButtonDirective as ɵbk, IGX_COMBO_COMPONENT as ɵbl, IgxComboBaseDirective as ɵbn, IgxComboHeaderDirective as ɵbo, IgxComboFooterDirective as ɵbp, IgxComboItemDirective as ɵbq, IgxComboEmptyDirective as ɵbr, IgxComboHeaderItemDirective as ɵbs, IgxComboAddItemDirective as ɵbt, IgxComboToggleIconDirective as ɵbu, IgxComboClearIconDirective as ɵbv, IgxComboAPIService as ɵbw, IgxComboDropDownComponent as ɵbx, IgxComboItemComponent as ɵby, IgxComboFilteringPipe as ɵbz, IgxComboGroupingPipe as ɵca, IgxComboAddItemComponent as ɵcb, PickerBaseDirective as ɵcc, IgxCalendarContainerComponent as ɵcd, IgxCalendarContainerModule as ɵce, IgxDialogTitleDirective as ɵcf, IgxDialogActionsDirective as ɵcg, IgxCellCrudState as ɵch, IgxRowCrudState as ɵci, IgxRowAddCrudState as ɵcj, IgxGridCRUDService as ɵck, IgxColumnMovingService as ɵcl, IgxExcelStyleCustomDialogComponent as ɵcm, IgxExcelStyleDefaultExpressionComponent as ɵcn, IgxExcelStyleDateExpressionComponent as ɵco, HammerGesturesManager as ɵcp, WatchChanges as ɵcq, WatchColumnChanges as ɵcr, notifyChanges as ɵcs, IgxNotificationsDirective as ɵct, IgxGridColumnResizerComponent as ɵcu, IgxColumnResizerDirective as ɵcv, IgxColumnResizingService as ɵcw, IgxRowSelectorDirective as ɵcx, IgxGroupByRowSelectorDirective as ɵcy, IgxHeadSelectorDirective as ɵcz, IgxGridSelectionService as ɵd, IgxRowDragDirective as ɵda, IgxDragIndicatorIconDirective as ɵdb, IgxRowDragGhostDirective as ɵdc, IgxRowDragModule as ɵdd, IgxGridHeaderRowComponent as ɵde, IgxGridHeaderGroupComponent as ɵdf, IgxGridHeaderComponent as ɵdg, IgxGridFilteringCellComponent as ɵdh, IgxFilteringService as ɵdi, IgxGridFilteringRowComponent as ɵdj, IgxGridGroupByAreaComponent as ɵdk, IgxGroupByAreaDirective as ɵdl, IgxGroupByMetaPipe as ɵdm, IgxTemplateOutletDirective as ɵdn, IgxTemplateOutletModule as ɵdo, IgxRowEditTemplateDirective as ɵdp, IgxRowEditTextDirective as ɵdq, IgxRowAddTextDirective as ɵdr, IgxRowEditActionsDirective as ɵds, IgxRowEditTabStopDirective as ɵdt, IgxSummaryRowComponent as ɵdu, IgxSummaryCellComponent as ɵdv, IgxRowDirective as ɵdw, IgxGridNavigationService as ɵdx, IgxGridSummaryService as ɵdy, ConnectedPositioningStrategy as ɵdz, IgxGridGroupByRowComponent as ɵea, IgxTreeGridSelectionService as ɵeb, IgxTreeGridGroupByAreaComponent as ɵec, IgxRowLoadingIndicatorTemplateDirective as ɵed, IgxHierarchicalGridNavigationService as ɵee, IgxChildGridRowComponent as ɵef, IgxGridCellComponent as ɵeg, IgxGridFooterComponent as ɵeh, IgxAdvancedFilteringDialogComponent as ɵei, IgxColumnHidingDirective as ɵej, IgxColumnPinningDirective as ɵek, IgxGridSharedModules as ɵel, IgxProcessBarTextTemplateDirective as ɵem, IgxProgressBarGradientDirective as ɵen, DIR_DOCUMENT_FACTORY as ɵeo, DIR_DOCUMENT as ɵep, IgxDirectionality as ɵeq, IgxSelectItemNavigationDirective as ɵer, IGX_TIME_PICKER_COMPONENT as ɵes, IgxItemListDirective as ɵeu, IgxTimeItemDirective as ɵev, IgxTimePickerTemplateDirective as ɵew, IgxTimePickerActionsDirective as ɵex, TimeFormatPipe as ɵey, TimeItemPipe as ɵez, IGX_EXPANSION_PANEL_COMPONENT as ɵf, IgxGridPipesModule as ɵfa, IgxGridCellStyleClassesPipe as ɵfb, IgxGridCellStylesPipe as ɵfc, IgxGridRowClassesPipe as ɵfd, IgxGridRowStylesPipe as ɵfe, IgxGridNotGroupedPipe as ɵff, IgxGridTopLevelColumns as ɵfg, IgxGridFilterConditionPipe as ɵfh, IgxGridTransactionPipe as ɵfi, IgxGridPaginatorOptionsPipe as ɵfj, IgxHasVisibleColumnsPipe as ɵfk, IgxGridRowPinningPipe as ɵfl, IgxColumnActionEnabledPipe as ɵfm, IgxFilterActionColumnsPipe as ɵfn, IgxSortActionColumnsPipe as ɵfo, IgxGridDataMapperPipe as ɵfp, IgxStringReplacePipe as ɵfq, IgxGridTransactionStatePipe as ɵfr, IgxColumnFormatterPipe as ɵfs, IgxSummaryFormatterPipe as ɵft, IgxGridAddRowPipe as ɵfu, IgxHeaderGroupWidthPipe as ɵfv, IgxHeaderGroupStylePipe as ɵfw, IgxGridColumnModule as ɵfx, IgxGridHeadersModule as ɵfy, SortingIndexPipe as ɵfz, IGX_TREE_COMPONENT as ɵg, IgxGridFilteringModule as ɵga, IgxColumnMovingModule as ɵgb, IgxColumnMovingDropDirective as ɵgc, IgxColumnMovingDragDirective as ɵgd, IgxGridResizingModule as ɵge, IgxResizeHandleDirective as ɵgf, IgxGridExcelStyleFilteringModule as ɵgg, IgxGridSelectionModule as ɵgh, IgxGridDragSelectDirective as ɵgi, IgxGridSummaryModule as ɵgj, IgxSummaryDataPipe as ɵgk, IgxGridToolbarModule as ɵgl, BaseToolbarDirective as ɵgm, BaseToolbarColumnActionsDirective as ɵgn, IgxGridRowComponent as ɵgo, IgxGridSortingPipe as ɵgp, IgxGridGroupingPipe as ɵgq, IgxGridPagingPipe as ɵgr, IgxGridFilteringPipe as ɵgs, IgxGridSummaryPipe as ɵgt, IgxGridDetailsPipe as ɵgu, IgxGridExpandableCellComponent as ɵgv, IgxTreeGridRowComponent as ɵgw, IgxTreeGridCellComponent as ɵgx, IgxTreeGridHierarchizingPipe as ɵgy, IgxTreeGridFlatteningPipe as ɵgz, IGX_TREE_NODE_COMPONENT as ɵh, IgxTreeGridSortingPipe as ɵha, IgxTreeGridPagingPipe as ɵhb, IgxTreeGridTransactionPipe as ɵhc, IgxTreeGridNormalizeRecordsPipe as ɵhd, IgxTreeGridAddRowPipe as ɵhe, IgxTreeGridFilteringPipe as ɵhf, IgxTreeGridSummaryPipe as ɵhg, IgxHierarchicalRowComponent as ɵhh, IgxHierarchicalGridCellComponent as ɵhi, IgxSliderThumbComponent as ɵhj, IgxThumbLabelComponent as ɵhk, IgxTicksComponent as ɵhl, IgxTickLabelsPipe as ɵhm, IgxTabsBase as ɵhn, IgxTabHeaderBase as ɵho, IgxTabContentBase as ɵhp, IgxSplitBarComponent as ɵhq, IgxTreeService as ɵhr, IgxTreeSelectionService as ɵhs, IgxTreeNavigationService as ɵht, PlatformUtil as ɵi, EaseIn as ɵj, EaseOut as ɵk, IgxInputGroupBase as ɵl, IgxSelectionAPIService as ɵm, IgxForOfSyncService as ɵn, IgxForOfScrollSyncService as ɵo, DisplayContainerComponent as ɵp, IgxScrollInertiaDirective as ɵq, IgxScrollInertiaModule as ɵr, VirtualHelperComponent as ɵs, VirtualHelperBaseDirective as ɵt, HVirtualHelperComponent as ɵu, MaskParsingService as ɵv, isHierarchyMatch as ɵw, getHierarchy as ɵx, IgxGridActionButtonComponent as ɵy, ToggleAnimationPlayer as ɵz };
76658
76627
  //# sourceMappingURL=igniteui-angular.js.map