igniteui-angular 13.0.0-alpha.3 → 13.0.0-alpha.4

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 (27) hide show
  1. package/esm2020/lib/core/utils.mjs +3 -2
  2. package/esm2020/lib/directives/scroll-inertia/scroll_inertia.directive.mjs +1 -90
  3. package/esm2020/lib/grids/cell.component.mjs +5 -5
  4. package/esm2020/lib/grids/common/grid.interface.mjs +1 -1
  5. package/esm2020/lib/grids/filtering/excel-style/grid.excel-style-filtering.component.mjs +4 -4
  6. package/esm2020/lib/grids/grid/grid.component.mjs +1 -1
  7. package/esm2020/lib/grids/grid-base.directive.mjs +13 -9
  8. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +1 -1
  9. package/esm2020/lib/grids/hierarchical-grid/row-island.component.mjs +1 -1
  10. package/esm2020/lib/grids/state.directive.mjs +8 -5
  11. package/esm2020/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +13 -11
  12. package/esm2020/lib/grids/toolbar/grid-toolbar-exporter.component.mjs +17 -15
  13. package/esm2020/lib/grids/toolbar/grid-toolbar.base.mjs +6 -4
  14. package/esm2020/lib/grids/tree-grid/tree-grid.component.mjs +1 -1
  15. package/fesm2015/igniteui-angular.mjs +37 -109
  16. package/fesm2015/igniteui-angular.mjs.map +1 -1
  17. package/fesm2020/igniteui-angular.mjs +31 -109
  18. package/fesm2020/igniteui-angular.mjs.map +1 -1
  19. package/lib/core/utils.d.ts +5 -0
  20. package/lib/directives/scroll-inertia/scroll_inertia.directive.d.ts +0 -24
  21. package/lib/grids/common/grid.interface.d.ts +19 -1
  22. package/lib/grids/grid-base.directive.d.ts +5 -5
  23. package/lib/grids/state.directive.d.ts +3 -3
  24. package/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.d.ts +1 -1
  25. package/lib/grids/toolbar/grid-toolbar-exporter.component.d.ts +1 -1
  26. package/lib/grids/toolbar/grid-toolbar.base.d.ts +1 -1
  27. package/package.json +2 -2
@@ -5,7 +5,7 @@ import { Injectable, Directive, Input, HostListener, NgModule, PLATFORM_ID, Inje
5
5
  import * as i12 from '@angular/forms';
6
6
  import { NgModel, FormControlName, NG_VALUE_ACCESSOR, NG_VALIDATORS, CheckboxRequiredValidator, FormsModule, NgControl, ReactiveFormsModule } from '@angular/forms';
7
7
  import * as i4 from '@angular/common';
8
- import { isPlatformBrowser, formatDate as formatDate$1, DatePipe, DOCUMENT, CommonModule, FormatWidth, getLocaleDateFormat, formatPercent, formatNumber, formatCurrency, getLocaleCurrencyCode, getLocaleNumberFormat, NumberFormatStyle, getCurrencySymbol } from '@angular/common';
8
+ import { isPlatformBrowser, formatDate as formatDate$1, CurrencyPipe, DatePipe, DOCUMENT, CommonModule, FormatWidth, getLocaleDateFormat, formatPercent, formatNumber, getLocaleCurrencyCode, getLocaleNumberFormat, NumberFormatStyle, getCurrencySymbol } from '@angular/common';
9
9
  import { Observable, Subject, fromEvent, interval, animationFrameScheduler, noop, merge, Subscription, timer, pipe } from 'rxjs';
10
10
  import { takeUntil, filter, first as first$1, throttleTime, take, throttle, debounce, tap, switchMap, skipLast, map, debounceTime, shareReplay, takeWhile, delay, pluck } from 'rxjs/operators';
11
11
  import mergeWith from 'lodash.mergewith';
@@ -2082,6 +2082,7 @@ const formatDate = (value, format, locale, timezone) => {
2082
2082
  }
2083
2083
  return formatDate$1(value, format, locale, timezone);
2084
2084
  };
2085
+ const formatCurrency = new CurrencyPipe(undefined).transform;
2085
2086
 
2086
2087
  var PagingError;
2087
2088
  (function (PagingError) {
@@ -8964,12 +8965,6 @@ class IgxScrollInertiaDirective {
8964
8965
  this.inertiaDeltaX = 2;
8965
8966
  this.inertiaDuration = 0.5;
8966
8967
  this._savedSpeedsX = [];
8967
- this.setPointerCaptureFName = typeof Element.prototype['msSetPointerCapture'] === 'function' ?
8968
- 'msSetPointerCapture' :
8969
- 'setPointerCapture';
8970
- this.releasePointerCaptureFName = typeof Element.prototype['msReleasePointerCapture'] === 'function' ?
8971
- 'msReleasePointerCapture' :
8972
- 'releasePointerCapture';
8973
8968
  this.baseDeltaMultiplier = 1 / 120;
8974
8969
  this.firefoxDeltaMultiplier = 1 / 30;
8975
8970
  }
@@ -8984,10 +8979,6 @@ class IgxScrollInertiaDirective {
8984
8979
  targetElem.addEventListener('touchstart', this.onTouchStart.bind(this));
8985
8980
  targetElem.addEventListener('touchmove', this.onTouchMove.bind(this));
8986
8981
  targetElem.addEventListener('touchend', this.onTouchEnd.bind(this));
8987
- targetElem.addEventListener('pointerdown', this.onPointerDown.bind(this));
8988
- targetElem.addEventListener('pointerup', this.onPointerUp.bind(this));
8989
- targetElem.addEventListener('MSGestureStart', this.onMSGestureStart.bind(this));
8990
- targetElem.addEventListener('MSGestureChange', this.onMSGestureChange.bind(this));
8991
8982
  });
8992
8983
  }
8993
8984
  ngOnDestroy() {
@@ -9000,10 +8991,6 @@ class IgxScrollInertiaDirective {
9000
8991
  targetElem.removeEventListener('touchstart', this.onTouchStart);
9001
8992
  targetElem.removeEventListener('touchmove', this.onTouchMove);
9002
8993
  targetElem.removeEventListener('touchend', this.onTouchEnd);
9003
- targetElem.removeEventListener('pointerdown', this.onPointerDown);
9004
- targetElem.removeEventListener('pointerup', this.onPointerUp);
9005
- targetElem.removeEventListener('MSGestureStart', this.onMSGestureStart);
9006
- targetElem.removeEventListener('MSGestureChange', this.onMSGestureChange);
9007
8994
  });
9008
8995
  }
9009
8996
  /**
@@ -9211,81 +9198,6 @@ class IgxScrollInertiaDirective {
9211
9198
  this.preventParentScroll(event, false);
9212
9199
  }
9213
9200
  }
9214
- /**
9215
- * @hidden
9216
- * Function that is called when we need to detect touch starting on a touch device on IE/Edge
9217
- */
9218
- onPointerDown(event) {
9219
- if (!event || (event.pointerType !== 2 && event.pointerType !== 'touch')) {
9220
- return true;
9221
- }
9222
- if (!this.IgxScrollInertiaScrollContainer) {
9223
- return;
9224
- }
9225
- // setPointerCaptureFName is the name of the function that is supported
9226
- event.target[this.setPointerCaptureFName](this._pointer = event.pointerId);
9227
- this._gestureObject.addPointer(this._pointer);
9228
- }
9229
- /**
9230
- * @hidden
9231
- * Function that is called when we need to detect touch ending on a touch device on IE/Edge
9232
- */
9233
- onPointerUp(event) {
9234
- if (!this._pointer) {
9235
- return true;
9236
- }
9237
- if (!this.IgxScrollInertiaScrollContainer) {
9238
- return;
9239
- }
9240
- /* releasePointerCaptureFName is the name of the function that is supported */
9241
- event.target[this.releasePointerCaptureFName](this._pointer);
9242
- delete this._pointer;
9243
- }
9244
- /**
9245
- * @hidden
9246
- * Function that is called when a gesture begins on IE/Edge
9247
- */
9248
- onMSGestureStart(event) {
9249
- if (!this.IgxScrollInertiaScrollContainer) {
9250
- return;
9251
- }
9252
- this._startX = this.IgxScrollInertiaScrollContainer.scrollLeft;
9253
- this._startY = this.IgxScrollInertiaScrollContainer.scrollTop;
9254
- this._touchStartX = event.screenX;
9255
- this._touchStartY = event.screenY;
9256
- // Vars regarding swipe offset
9257
- this._totalMovedX = 0;
9258
- this._offsetRecorded = false;
9259
- this._offsetDirection = 0;
9260
- return false;
9261
- }
9262
- /**
9263
- * @hidden
9264
- * Function that is called when a we need to scroll based on the gesture performed on IE/Edge
9265
- */
9266
- onMSGestureChange(event) {
9267
- if (!this.IgxScrollInertiaScrollContainer) {
9268
- return;
9269
- }
9270
- const touchPos = event;
9271
- const destX = this._startX + this._touchStartX - touchPos.screenX;
9272
- const destY = this._startY + this._touchStartY - touchPos.screenY;
9273
- /* Logic regarding x tolerance to prevent accidental horizontal scrolling when scrolling vertically */
9274
- this._totalMovedX = this._touchStartX - touchPos.screenX;
9275
- if (Math.abs(this._totalMovedX) < this.swipeToleranceX && !this._offsetRecorded) {
9276
- /* Do not scroll horizontally yet while in the tolerance range */
9277
- this._scrollToY(destY);
9278
- }
9279
- else {
9280
- if (!this._offsetRecorded) {
9281
- this._offsetDirection = Math.sign(destX - this._startX);
9282
- this._offsetRecorded = true;
9283
- }
9284
- /* Once the tolerance is exceeded it can be scrolled horizontally */
9285
- this._scrollTo(destX - this._offsetDirection * this.swipeToleranceX, destY);
9286
- }
9287
- return false;
9288
- }
9289
9201
  _smoothWheelScroll(delta) {
9290
9202
  this._nextY = this.IgxScrollInertiaScrollContainer.scrollTop;
9291
9203
  this._nextX = this.IgxScrollInertiaScrollContainer.scrollLeft;
@@ -43837,7 +43749,7 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
43837
43749
  case GridColumnDataType.Time:
43838
43750
  return formatDate(element, format, locale, timezone);
43839
43751
  case GridColumnDataType.Currency:
43840
- return formatCurrency(element, locale, display, currencyCode ?? getLocaleCurrencyCode(locale), digitsInfo);
43752
+ return formatCurrency(element, currencyCode ?? getLocaleCurrencyCode(locale), display, digitsInfo, locale);
43841
43753
  case GridColumnDataType.Number:
43842
43754
  return formatNumber(element, locale, digitsInfo);
43843
43755
  case GridColumnDataType.Percent:
@@ -47852,13 +47764,14 @@ class IgxGridToolbarAdvancedFilteringComponent {
47852
47764
  return this.toolbar.grid;
47853
47765
  }
47854
47766
  }
47855
- IgxGridToolbarAdvancedFilteringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, deps: [{ token: IgxToolbarToken, host: true }], target: i0.ɵɵFactoryTarget.Component });
47767
+ IgxGridToolbarAdvancedFilteringComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, deps: [{ token: IgxToolbarToken }], target: i0.ɵɵFactoryTarget.Component });
47856
47768
  IgxGridToolbarAdvancedFilteringComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxGridToolbarAdvancedFilteringComponent, selector: "igx-grid-toolbar-advanced-filtering", inputs: { overlaySettings: "overlaySettings" }, ngImport: i0, template: "<button igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog()\"\n [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n</button>\n", components: [{ type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }], directives: [{ type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
47857
47769
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, decorators: [{
47858
47770
  type: Component,
47859
47771
  args: [{ selector: 'igx-grid-toolbar-advanced-filtering', template: "<button igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog()\"\n [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n</button>\n" }]
47860
47772
  }], ctorParameters: function () { return [{ type: IgxToolbarToken, decorators: [{
47861
- type: Host
47773
+ type: Inject,
47774
+ args: [IgxToolbarToken]
47862
47775
  }] }]; }, propDecorators: { overlaySettings: [{
47863
47776
  type: Input
47864
47777
  }] } });
@@ -48445,12 +48358,13 @@ class BaseToolbarDirective {
48445
48358
  }
48446
48359
  }
48447
48360
  }
48448
- BaseToolbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: BaseToolbarDirective, deps: [{ token: IgxToolbarToken, host: true }], target: i0.ɵɵFactoryTarget.Directive });
48361
+ BaseToolbarDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: BaseToolbarDirective, deps: [{ token: IgxToolbarToken }], target: i0.ɵɵFactoryTarget.Directive });
48449
48362
  BaseToolbarDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: BaseToolbarDirective, inputs: { columnListHeight: "columnListHeight", title: "title", prompt: "prompt", overlaySettings: "overlaySettings" }, outputs: { opening: "opening", opened: "opened", closing: "closing", closed: "closed", columnToggle: "columnToggle" }, ngImport: i0 });
48450
48363
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: BaseToolbarDirective, decorators: [{
48451
48364
  type: Directive
48452
48365
  }], ctorParameters: function () { return [{ type: IgxToolbarToken, decorators: [{
48453
- type: Host
48366
+ type: Inject,
48367
+ args: [IgxToolbarToken]
48454
48368
  }] }]; }, propDecorators: { columnListHeight: [{
48455
48369
  type: Input
48456
48370
  }], title: [{
@@ -48701,13 +48615,14 @@ class IgxGridToolbarExporterComponent extends BaseToolbarDirective {
48701
48615
  exporter.export(this.grid, options);
48702
48616
  }
48703
48617
  }
48704
- IgxGridToolbarExporterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridToolbarExporterComponent, deps: [{ token: IgxToolbarToken, host: true }, { token: IgxExcelExporterService }, { token: IgxCsvExporterService }], target: i0.ɵɵFactoryTarget.Component });
48618
+ IgxGridToolbarExporterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridToolbarExporterComponent, deps: [{ token: IgxToolbarToken }, { token: IgxExcelExporterService }, { token: IgxCsvExporterService }], target: i0.ɵɵFactoryTarget.Component });
48705
48619
  IgxGridToolbarExporterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: IgxGridToolbarExporterComponent, selector: "igx-grid-toolbar-exporter", inputs: { exportCSV: "exportCSV", exportExcel: "exportExcel", filename: "filename" }, outputs: { exportStarted: "exportStarted", exportEnded: "exportEnded" }, queries: [{ propertyName: "hasExcelAttr", first: true, predicate: IgxExcelTextDirective, descendants: true }, { propertyName: "hasCSVAttr", first: true, predicate: IgxCSVTextDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-grid-toolbar__dropdown\" id=\"btnExport\">\n <button [title]=\"grid?.resourceStrings.igx_grid_toolbar_exporter_button_tooltip\" [disabled]=\"isExporting\"\n igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" igxRipple #btn (click)=\"toggle(btn, toggleRef)\">\n <igx-icon>import_export</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_button_label }}\n </span>\n <igx-icon>arrow_drop_down</igx-icon>\n </button>\n\n <ul class=\"igx-grid-toolbar__dd-list\" igxToggle #toggleRef=\"toggle\">\n <li *ngIf=\"exportExcel\" #btnExportExcel id=\"btnExportExcel\"\n class=\"igx-grid-toolbar__dd-list-items\" igxRipple (click)=\"export('excel', toggleRef)\">\n <ng-template #excel>\n <ng-content select=[excelText],excel-text></ng-content>\n </ng-template>\n <excel-text *ngIf=\"!hasExcelAttr\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_excel_entry_text}}\n </excel-text>\n <ng-container *ngTemplateOutlet=\"excel\"></ng-container>\n </li>\n\n <li *ngIf=\"exportCSV\" #btnExportCsv id=\"btnExportCsv\" class=\"igx-grid-toolbar__dd-list-items\"\n igxRipple (click)=\"export('csv', toggleRef)\">\n <ng-template #csv>\n <ng-content select=[csvText],csv-text></ng-content>\n </ng-template>\n <csv-text *ngIf=\"!hasCSVAttr\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_csv_entry_text }}</csv-text>\n <ng-container *ngTemplateOutlet=\"csv\"></ng-container>\n </li>\n </ul>\n</div>\n", components: [{ type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }], directives: [{ type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { type: IgxExcelTextDirective, selector: "[excelText],excel-text" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: IgxCSVTextDirective, selector: "[csvText],csv-text" }] });
48706
48620
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridToolbarExporterComponent, decorators: [{
48707
48621
  type: Component,
48708
48622
  args: [{ selector: 'igx-grid-toolbar-exporter', template: "<div class=\"igx-grid-toolbar__dropdown\" id=\"btnExport\">\n <button [title]=\"grid?.resourceStrings.igx_grid_toolbar_exporter_button_tooltip\" [disabled]=\"isExporting\"\n igxButton=\"outlined\" [displayDensity]=\"grid.displayDensity\" igxRipple #btn (click)=\"toggle(btn, toggleRef)\">\n <igx-icon>import_export</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_button_label }}\n </span>\n <igx-icon>arrow_drop_down</igx-icon>\n </button>\n\n <ul class=\"igx-grid-toolbar__dd-list\" igxToggle #toggleRef=\"toggle\">\n <li *ngIf=\"exportExcel\" #btnExportExcel id=\"btnExportExcel\"\n class=\"igx-grid-toolbar__dd-list-items\" igxRipple (click)=\"export('excel', toggleRef)\">\n <ng-template #excel>\n <ng-content select=[excelText],excel-text></ng-content>\n </ng-template>\n <excel-text *ngIf=\"!hasExcelAttr\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_excel_entry_text}}\n </excel-text>\n <ng-container *ngTemplateOutlet=\"excel\"></ng-container>\n </li>\n\n <li *ngIf=\"exportCSV\" #btnExportCsv id=\"btnExportCsv\" class=\"igx-grid-toolbar__dd-list-items\"\n igxRipple (click)=\"export('csv', toggleRef)\">\n <ng-template #csv>\n <ng-content select=[csvText],csv-text></ng-content>\n </ng-template>\n <csv-text *ngIf=\"!hasCSVAttr\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_csv_entry_text }}</csv-text>\n <ng-container *ngTemplateOutlet=\"csv\"></ng-container>\n </li>\n </ul>\n</div>\n" }]
48709
48623
  }], ctorParameters: function () { return [{ type: IgxToolbarToken, decorators: [{
48710
- type: Host
48624
+ type: Inject,
48625
+ args: [IgxToolbarToken]
48711
48626
  }] }, { type: IgxExcelExporterService }, { type: IgxCsvExporterService }]; }, propDecorators: { hasExcelAttr: [{
48712
48627
  type: ContentChild,
48713
48628
  args: [IgxExcelTextDirective]
@@ -57080,19 +56995,19 @@ class IgxGridBaseDirective extends DisplayDensityBase {
57080
56995
  return this.theadRow.groups;
57081
56996
  }
57082
56997
  get headerContainer() {
57083
- return this.theadRow.headerContainer;
56998
+ return this.theadRow?.headerContainer;
57084
56999
  }
57085
57000
  get headerSelectorContainer() {
57086
- return this.theadRow.headerSelectorContainer;
57001
+ return this.theadRow?.headerSelectorContainer;
57087
57002
  }
57088
57003
  get headerDragContainer() {
57089
- return this.theadRow.headerDragContainer;
57004
+ return this.theadRow?.headerDragContainer;
57090
57005
  }
57091
57006
  get headerGroupContainer() {
57092
- return this.theadRow.headerGroupContainer;
57007
+ return this.theadRow?.headerGroupContainer;
57093
57008
  }
57094
57009
  get filteringRow() {
57095
- return this.theadRow.filterRow;
57010
+ return this.theadRow?.filterRow;
57096
57011
  }
57097
57012
  /**
57098
57013
  * Gets/Sets the resource strings.
@@ -60049,7 +59964,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
60049
59964
  * ```
60050
59965
  */
60051
59966
  get unpinnedDataView() {
60052
- return this.unpinnedRecords ? this.unpinnedRecords : this.verticalScrollContainer.igxForOf || [];
59967
+ return this.unpinnedRecords ? this.unpinnedRecords : this.verticalScrollContainer?.igxForOf || [];
60053
59968
  }
60054
59969
  /**
60055
59970
  * Returns the currently transformed paged/filtered/sorted/grouped/pinned/unpinned row data, displayed in the grid.
@@ -60264,7 +60179,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
60264
60179
  this.notifyChanges();
60265
60180
  }
60266
60181
  /**
60267
- * Deselect specified columns by filed.
60182
+ * Deselect specified columns by field.
60268
60183
  *
60269
60184
  * @example
60270
60185
  * ```typescript
@@ -60389,6 +60304,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
60389
60304
  if (!this.clipboardOptions.copyHeaders) {
60390
60305
  result = result.substring(result.indexOf('\n') + 1);
60391
60306
  }
60307
+ if (Object.values(data[0]).length === 1) {
60308
+ result = result.slice(0, -2);
60309
+ }
60392
60310
  event.preventDefault();
60393
60311
  /* Necessary for the hiearachical case but will probably have to
60394
60312
  change how getSelectedData is propagated in the hiearachical grid
@@ -60644,7 +60562,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
60644
60562
  * @hidden @internal
60645
60563
  */
60646
60564
  getEmptyRecordObjectFor(inRow) {
60647
- const row = { ...inRow?.rowData };
60565
+ const row = { ...inRow?.data };
60648
60566
  Object.keys(row).forEach(key => row[key] = undefined);
60649
60567
  const id = this.generateRowID();
60650
60568
  row[this.primaryKey] = id;
@@ -60779,6 +60697,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
60779
60697
  return this.beginAddRowById(this.gridAPI.get_rec_id_by_index(index - 1, this.dataView));
60780
60698
  }
60781
60699
  beginAddRowForIndex(index, asChild = false) {
60700
+ // TODO is row from rowList suitable for enterAddRowMode
60782
60701
  const row = index == null ?
60783
60702
  null : this.rowList.find(r => r.index === index);
60784
60703
  if (row !== undefined) {
@@ -63531,7 +63450,7 @@ class IgxGridCellComponent {
63531
63450
  case GridColumnDataType.Percent:
63532
63451
  return formatPercent(this.value, locale, args.digitsInfo);
63533
63452
  case GridColumnDataType.Currency:
63534
- return formatCurrency(this.value, locale, args.display, this.currencyCode, args.digitsInfo);
63453
+ return formatCurrency(this.value, this.currencyCode, args.display, args.digitsInfo, locale);
63535
63454
  case GridColumnDataType.Date:
63536
63455
  case GridColumnDataType.DateTime:
63537
63456
  case GridColumnDataType.Time:
@@ -63963,7 +63882,7 @@ class IgxGridCellComponent {
63963
63882
  }
63964
63883
  getCellType(useRow) {
63965
63884
  const rowID = useRow ? this.grid.createRow(this.intRow.index, this.intRow.rowData) : this.intRow.index;
63966
- // TOOD: Fix types
63885
+ // TODO: Fix types
63967
63886
  return new IgxGridCell(this.grid, rowID, this.column.field);
63968
63887
  }
63969
63888
  }
@@ -66259,17 +66178,20 @@ class IgxGridStateDirective {
66259
66178
  return feature;
66260
66179
  }
66261
66180
  }
66262
- IgxGridStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridStateDirective, deps: [{ token: IgxGridBaseDirective, host: true, optional: true }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
66181
+ IgxGridStateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridStateDirective, deps: [{ token: IGX_GRID_BASE, host: true, optional: true }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
66263
66182
  IgxGridStateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: IgxGridStateDirective, selector: "[igxGridState]", inputs: { options: ["igxGridState", "options"] }, ngImport: i0 });
66264
66183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: IgxGridStateDirective, decorators: [{
66265
66184
  type: Directive,
66266
66185
  args: [{
66267
66186
  selector: '[igxGridState]'
66268
66187
  }]
66269
- }], ctorParameters: function () { return [{ type: IgxGridBaseDirective, decorators: [{
66188
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
66270
66189
  type: Host
66271
66190
  }, {
66272
66191
  type: Optional
66192
+ }, {
66193
+ type: Inject,
66194
+ args: [IGX_GRID_BASE]
66273
66195
  }] }, { type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }]; }, propDecorators: { options: [{
66274
66196
  type: Input,
66275
66197
  args: ['igxGridState']