igniteui-angular 13.2.2 → 13.2.5

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 (41) hide show
  1. package/esm2020/lib/directives/for-of/for_of.directive.mjs +2 -2
  2. package/esm2020/lib/grids/api.service.mjs +3 -4
  3. package/esm2020/lib/grids/columns/column-layout.component.mjs +3 -3
  4. package/esm2020/lib/grids/columns/column.component.mjs +4 -4
  5. package/esm2020/lib/grids/common/crud.service.mjs +3 -3
  6. package/esm2020/lib/grids/common/events.mjs +1 -1
  7. package/esm2020/lib/grids/filtering/advanced-filtering/advanced-filtering-dialog.component.mjs +2 -2
  8. package/esm2020/lib/grids/filtering/grid-filtering.service.mjs +7 -7
  9. package/esm2020/lib/grids/grid/grid.component.mjs +11 -11
  10. package/esm2020/lib/grids/grid-base.directive.mjs +84 -68
  11. package/esm2020/lib/grids/grid-mrl-navigation.service.mjs +2 -2
  12. package/esm2020/lib/grids/grid-public-row.mjs +3 -3
  13. package/esm2020/lib/grids/grouping/group-by-area.directive.mjs +2 -2
  14. package/esm2020/lib/grids/grouping/tree-grid-group-by-area.component.mjs +6 -6
  15. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +4 -5
  16. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +26 -14
  17. package/esm2020/lib/grids/hierarchical-grid/row-island.component.mjs +7 -11
  18. package/esm2020/lib/grids/pivot-grid/pivot-grid.component.mjs +22 -9
  19. package/esm2020/lib/grids/state.directive.mjs +9 -9
  20. package/esm2020/lib/grids/summaries/grid-summary.service.mjs +5 -5
  21. package/esm2020/lib/grids/tree-grid/tree-grid.component.mjs +27 -9
  22. package/esm2020/lib/services/exporter-common/base-export-service.mjs +3 -3
  23. package/esm2020/lib/splitter/splitter-pane/splitter-pane.component.mjs +61 -11
  24. package/esm2020/lib/splitter/splitter.component.mjs +20 -3
  25. package/fesm2015/igniteui-angular.mjs +294 -173
  26. package/fesm2015/igniteui-angular.mjs.map +1 -1
  27. package/fesm2020/igniteui-angular.mjs +292 -173
  28. package/fesm2020/igniteui-angular.mjs.map +1 -1
  29. package/lib/core/styles/themes/schemas/dark/_stepper.scss +6 -1
  30. package/lib/grids/common/events.d.ts +1 -0
  31. package/lib/grids/grid-base.directive.d.ts +7 -1
  32. package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +2 -1
  33. package/lib/grids/hierarchical-grid/row-island.component.d.ts +1 -0
  34. package/lib/grids/pivot-grid/pivot-grid.component.d.ts +4 -0
  35. package/lib/grids/tree-grid/tree-grid.component.d.ts +2 -2
  36. package/lib/splitter/splitter-pane/splitter-pane.component.d.ts +19 -5
  37. package/migrations/update-13_0_0/changes/inputs.json +416 -1
  38. package/migrations/update-13_0_0/index.js +208 -0
  39. package/package.json +1 -1
  40. package/styles/igniteui-indigo-dark.css +1 -1
  41. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
@@ -7,7 +7,7 @@ import { NgModel, FormControlName, NG_VALUE_ACCESSOR, NG_VALIDATORS, CheckboxReq
7
7
  import * as i4 from '@angular/common';
8
8
  import { isPlatformBrowser, formatDate as formatDate$1, CurrencyPipe, formatPercent, formatNumber, getLocaleCurrencyCode, DatePipe, DOCUMENT, CommonModule, FormatWidth, getLocaleDateFormat, getLocaleNumberFormat, NumberFormatStyle, getCurrencySymbol } from '@angular/common';
9
9
  import { Observable, Subject, fromEvent, interval, animationFrameScheduler, noop, merge, Subscription, timer, pipe } from 'rxjs';
10
- import { takeUntil, filter, first as first$1, throttleTime, take, throttle, debounce, tap, switchMap, skipLast, map, debounceTime, shareReplay, takeWhile, delay, pluck } from 'rxjs/operators';
10
+ import { takeUntil, filter, first as first$1, throttleTime, take, throttle, debounce, tap, switchMap, skipLast, map, debounceTime, shareReplay, takeWhile, pluck } from 'rxjs/operators';
11
11
  import mergeWith from 'lodash.mergewith';
12
12
  import { __awaiter, __decorate, __param } from 'tslib';
13
13
  import * as JSZip from 'jszip';
@@ -2600,7 +2600,7 @@ class IgxBaseExporter {
2600
2600
  throw Error('No options provided!');
2601
2601
  }
2602
2602
  this.options = options;
2603
- let columns = grid.columnList.toArray();
2603
+ let columns = grid.columns;
2604
2604
  if (this.options.ignoreMultiColumnHeaders) {
2605
2605
  columns = columns.filter(col => col.children === undefined);
2606
2606
  }
@@ -3233,7 +3233,7 @@ class IgxBaseExporter {
3233
3233
  columnList = this.getAutoGeneratedColumns(islandData);
3234
3234
  }
3235
3235
  else {
3236
- const islandColumnList = island.childColumns.toArray();
3236
+ const islandColumnList = island.columns;
3237
3237
  columnList = this.getColumns(islandColumnList);
3238
3238
  }
3239
3239
  this._ownersMap.set(island, columnList);
@@ -10699,7 +10699,7 @@ class IgxGridForOfDirective extends IgxForOfDirective {
10699
10699
  this.igxForContainerSize = args.containerSize;
10700
10700
  const sizeDiff = this._updateSizeCache(changes);
10701
10701
  this._applyChanges();
10702
- if (sizeDiff) {
10702
+ if (sizeDiff && this.igxForScrollOrientation === 'vertical') {
10703
10703
  this._adjustScrollPositionAfterSizeChange(sizeDiff);
10704
10704
  }
10705
10705
  this._updateScrollOffset();
@@ -23579,8 +23579,8 @@ class IgxRowAddCrudState extends IgxRowCrudState {
23579
23579
  if (isAddRow) {
23580
23580
  this.endAddRow();
23581
23581
  if (commit) {
23582
- this.grid.rowAddedNotifier.next({ data: args.newValue });
23583
- this.grid.rowAdded.emit({ data: args.newValue });
23582
+ this.grid.rowAddedNotifier.next({ data: args.newValue, owner: this.grid });
23583
+ this.grid.rowAdded.emit({ data: args.newValue, owner: this.grid });
23584
23584
  }
23585
23585
  }
23586
23586
  return args;
@@ -47802,7 +47802,7 @@ class GridBaseAPIService {
47802
47802
  this.destroyMap = new Map();
47803
47803
  }
47804
47804
  get_column_by_name(name) {
47805
- return this.grid.columnList.find((col) => col.field === name);
47805
+ return this.grid.columns.find((col) => col.field === name);
47806
47806
  }
47807
47807
  get_summary_data() {
47808
47808
  const grid = this.grid;
@@ -48079,8 +48079,7 @@ class GridBaseAPIService {
48079
48079
  return;
48080
48080
  }
48081
48081
  const record = data[index];
48082
- // // TODO: should we emit this when cascadeOnDelete is true for each row?!?!
48083
- grid.rowDeletedNotifier.next({ data: data[index] });
48082
+ grid.rowDeletedNotifier.next({ data: data[index], owner: grid });
48084
48083
  this.deleteRowFromData(rowId, index);
48085
48084
  if (grid.selectionService.isRowSelected(rowId)) {
48086
48085
  grid.selectionService.deselectRow(rowId);
@@ -50243,7 +50242,7 @@ class IgxColumnComponent {
50243
50242
  grid.resetCaches();
50244
50243
  grid.notifyChanges();
50245
50244
  if (this.columnLayoutChild) {
50246
- this.grid.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
50245
+ this.grid.columns.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
50247
50246
  }
50248
50247
  this.grid.filteringService.refreshExpressions();
50249
50248
  const eventArgs = { column: this, insertAtIndex: index, isPinned: true };
@@ -50310,7 +50309,7 @@ class IgxColumnComponent {
50310
50309
  grid.resetCaches();
50311
50310
  grid.notifyChanges();
50312
50311
  if (this.columnLayoutChild) {
50313
- this.grid.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
50312
+ this.grid.columns.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
50314
50313
  }
50315
50314
  this.grid.filteringService.refreshExpressions();
50316
50315
  this.grid.columnPinned.emit({ column: this, insertAtIndex: index, isPinned: false });
@@ -50329,7 +50328,7 @@ class IgxColumnComponent {
50329
50328
  */
50330
50329
  move(index) {
50331
50330
  let target;
50332
- let columns = this.grid.columnList.filter(c => c.visibleIndex > -1);
50331
+ let columns = this.grid.columns.filter(c => c.visibleIndex > -1);
50333
50332
  // grid last visible index
50334
50333
  const li = columns.map(c => c.visibleIndex).reduce((a, b) => Math.max(a, b));
50335
50334
  const parent = this.parent;
@@ -51903,7 +51902,7 @@ class BaseRow {
51903
51902
  */
51904
51903
  get cells() {
51905
51904
  const res = [];
51906
- this.grid.columnList.forEach(col => {
51905
+ this.grid.columns.forEach(col => {
51907
51906
  const cell = new IgxGridCell(this.grid, this.index, col.field);
51908
51907
  res.push(cell);
51909
51908
  });
@@ -52214,7 +52213,7 @@ class IgxHierarchicalGridRow extends BaseRow {
52214
52213
  */
52215
52214
  get cells() {
52216
52215
  const res = [];
52217
- this.grid.columnList.forEach(col => {
52216
+ this.grid.columns.forEach(col => {
52218
52217
  const cell = new IgxGridCell(this.grid, this.index, col.field);
52219
52218
  res.push(cell);
52220
52219
  });
@@ -53533,7 +53532,7 @@ class IgxGroupByAreaDirective {
53533
53532
  const drag = event.detail.owner;
53534
53533
  if (drag instanceof IgxColumnMovingDragDirective) {
53535
53534
  const column = drag.column;
53536
- if (!this.grid.columnList.find(c => c === column)) {
53535
+ if (!this.grid.columns.find(c => c === column)) {
53537
53536
  return;
53538
53537
  }
53539
53538
  const isGrouped = this.expressions.findIndex((item) => item.fieldName === column.field) !== -1;
@@ -54035,7 +54034,7 @@ class IgxAdvancedFilteringDialogComponent {
54035
54034
  * @hidden @internal
54036
54035
  */
54037
54036
  get filterableColumns() {
54038
- return this.grid.columnList.filter((col) => !col.columnGroup && col.filterable);
54037
+ return this.grid.columns.filter((col) => !col.columnGroup && col.filterable);
54039
54038
  }
54040
54039
  /**
54041
54040
  * @hidden @internal
@@ -55874,7 +55873,7 @@ class IgxFilteringService {
55874
55873
  grid.paginator.page = 0;
55875
55874
  }
55876
55875
  filteringTree.filteringOperands = [];
55877
- for (const column of grid.columnList) {
55876
+ for (const column of grid.columns) {
55878
55877
  this.prepare_filtering_expression(filteringTree, column.field, term, condition, ignoreCase || column.filteringIgnoreCase);
55879
55878
  }
55880
55879
  grid.filteringExpressionsTree = filteringTree;
@@ -55908,7 +55907,7 @@ class IgxFilteringService {
55908
55907
  expressions.length = 0;
55909
55908
  }
55910
55909
  else {
55911
- this.grid.columnList.forEach(c => {
55910
+ this.grid.columns.forEach(c => {
55912
55911
  const expressions = this.getExpressions(c.field);
55913
55912
  expressions.length = 0;
55914
55913
  });
@@ -55938,7 +55937,7 @@ class IgxFilteringService {
55938
55937
  const grid = this.grid;
55939
55938
  const filteringTree = grid.filteringExpressionsTree;
55940
55939
  const newFilteringTree = new FilteringExpressionsTree(filteringTree.operator, filteringTree.fieldName);
55941
- for (const column of grid.columnList) {
55940
+ for (const column of grid.columns) {
55942
55941
  this.prepare_filtering_expression(newFilteringTree, column.field, value, condition, ignoreCase || column.filteringIgnoreCase);
55943
55942
  }
55944
55943
  const eventArgs = { owner: grid, filteringExpressions: newFilteringTree, cancel: false };
@@ -55968,7 +55967,7 @@ class IgxFilteringService {
55968
55967
  */
55969
55968
  getExpressions(columnId) {
55970
55969
  if (!this.columnToExpressionsMap.has(columnId)) {
55971
- const column = this.grid.columnList.find((col) => col.field === columnId);
55970
+ const column = this.grid.columns.find((col) => col.field === columnId);
55972
55971
  const expressionUIs = new Array();
55973
55972
  if (column) {
55974
55973
  this.generateExpressionsList(column.filteringExpressionsTree, this.grid.filteringExpressionsTree.operator, expressionUIs);
@@ -55985,7 +55984,7 @@ class IgxFilteringService {
55985
55984
  if (!this.isFiltering) {
55986
55985
  this.columnsWithComplexFilter.clear();
55987
55986
  this.columnToExpressionsMap.forEach((value, key) => {
55988
- const column = this.grid.columnList.find((col) => col.field === key);
55987
+ const column = this.grid.columns.find((col) => col.field === key);
55989
55988
  if (column) {
55990
55989
  value.length = 0;
55991
55990
  this.generateExpressionsList(column.filteringExpressionsTree, this.grid.filteringExpressionsTree.operator, value);
@@ -56058,7 +56057,7 @@ class IgxFilteringService {
56058
56057
  if (this.columnsWithComplexFilter.has(columnId)) {
56059
56058
  return true;
56060
56059
  }
56061
- const column = this.grid.columnList.find((col) => col.field === columnId);
56060
+ const column = this.grid.columns.find((col) => col.field === columnId);
56062
56061
  const isComplex = column && this.isFilteringTreeComplex(column.filteringExpressionsTree);
56063
56062
  if (isComplex) {
56064
56063
  this.columnsWithComplexFilter.add(columnId);
@@ -58973,7 +58972,7 @@ class IgxGridSummaryService {
58973
58972
  this.removeSummaries(rowID);
58974
58973
  }
58975
58974
  if (args.rowID !== undefined && args.rowID !== null) {
58976
- let columnName = args.cellID ? this.grid.columnList.find(col => col.index === args.cellID.columnID).field : undefined;
58975
+ let columnName = args.cellID ? this.grid.columns.find(col => col.index === args.cellID.columnID).field : undefined;
58977
58976
  if (columnName && this.grid.rowEditable) {
58978
58977
  return;
58979
58978
  }
@@ -59030,7 +59029,7 @@ class IgxGridSummaryService {
59030
59029
  return this.summaryHeight = 0;
59031
59030
  }
59032
59031
  let maxSummaryLength = 0;
59033
- this.grid.columnList.filter((col) => col.hasSummary && !col.hidden).forEach((column) => {
59032
+ this.grid.columns.filter((col) => col.hasSummary && !col.hidden).forEach((column) => {
59034
59033
  const getCurrentSummaryColumn = column.summaries.operate([], [], column.field).length;
59035
59034
  if (getCurrentSummaryColumn) {
59036
59035
  if (maxSummaryLength < getCurrentSummaryColumn) {
@@ -59051,7 +59050,7 @@ class IgxGridSummaryService {
59051
59050
  if (!this.hasSummarizedColumns || !data) {
59052
59051
  return rowSummaries;
59053
59052
  }
59054
- this.grid.columnList.filter(col => col.hasSummary).forEach((column) => {
59053
+ this.grid.columns.filter(col => col.hasSummary).forEach((column) => {
59055
59054
  if (!rowSummaries.get(column.field)) {
59056
59055
  const summaryResult = column.summaries.operate(data.map(r => resolveNestedPath(r, column.field)), data, column.field, this.grid.locale, column.pipeArgs);
59057
59056
  rowSummaries.set(column.field, summaryResult);
@@ -59084,7 +59083,7 @@ class IgxGridSummaryService {
59084
59083
  this.groupingExpressions = groupingArgs.expressions.map(record => record.fieldName);
59085
59084
  }
59086
59085
  get hasSummarizedColumns() {
59087
- const summarizedColumns = this.grid.columnList.filter(col => col.hasSummary && !col.hidden);
59086
+ const summarizedColumns = this.grid.columns.filter(col => col.hasSummary && !col.hidden);
59088
59087
  return summarizedColumns.length > 0;
59089
59088
  }
59090
59089
  deleteSummaryCache(id, columnName) {
@@ -60122,6 +60121,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
60122
60121
  this._rendered = false;
60123
60122
  this.DRAG_SCROLL_DELTA = 10;
60124
60123
  this._dataCloneStrategy = new DefaultDataCloneStrategy();
60124
+ this._autoSize = false;
60125
60125
  /**
60126
60126
  * @hidden @internal
60127
60127
  */
@@ -61026,8 +61026,8 @@ class IgxGridBaseDirective extends DisplayDensityBase {
61026
61026
  get maxLevelHeaderDepth() {
61027
61027
  if (this._maxLevelHeaderDepth === null) {
61028
61028
  this._maxLevelHeaderDepth = this.hasColumnLayouts ?
61029
- this.columnList.reduce((acc, col) => Math.max(acc, col.rowStart), 0) :
61030
- this.columnList.reduce((acc, col) => Math.max(acc, col.level), 0);
61029
+ this._columns.reduce((acc, col) => Math.max(acc, col.rowStart), 0) :
61030
+ this._columns.reduce((acc, col) => Math.max(acc, col.level), 0);
61031
61031
  }
61032
61032
  return this._maxLevelHeaderDepth;
61033
61033
  }
@@ -61040,7 +61040,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
61040
61040
  * ``
61041
61041
  */
61042
61042
  get hiddenColumnsCount() {
61043
- return this.columnList.filter((col) => col.columnGroup === false && col.hidden === true).length;
61043
+ return this._columns.filter((col) => col.columnGroup === false && col.hidden === true).length;
61044
61044
  }
61045
61045
  /**
61046
61046
  * Gets the number of pinned columns.
@@ -61171,6 +61171,12 @@ class IgxGridBaseDirective extends DisplayDensityBase {
61171
61171
  get scrollSize() {
61172
61172
  return this.verticalScrollContainer.getScrollNativeSize();
61173
61173
  }
61174
+ /**
61175
+ * @hidden @internal
61176
+ */
61177
+ get minColumnWidth() {
61178
+ return MINIMUM_COLUMN_WIDTH$2;
61179
+ }
61174
61180
  /**
61175
61181
  * Returns an array containing the filtered sorted data.
61176
61182
  *
@@ -61530,10 +61536,11 @@ class IgxGridBaseDirective extends DisplayDensityBase {
61530
61536
  this.notifyChanges(true);
61531
61537
  this.cdr.detectChanges();
61532
61538
  });
61533
- this.verticalScrollContainer.contentSizeChange.pipe(filter(() => !this._init), destructor).subscribe(() => {
61534
- this.notifyChanges();
61539
+ this.verticalScrollContainer.contentSizeChange.pipe(filter(() => !this._init), throttleTime(30), destructor).subscribe(() => {
61540
+ this.notifyChanges(true);
61535
61541
  });
61536
61542
  this.onDensityChanged.pipe(destructor).subscribe(() => {
61543
+ this._autoSize = this.isPercentHeight && this.calcHeight !== this.getDataBasedBodyHeight();
61537
61544
  this.crudService.endEdit(false);
61538
61545
  if (this._summaryRowHeight === 0) {
61539
61546
  this.summaryService.summaryHeight = 0;
@@ -61559,13 +61566,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
61559
61566
  * @internal
61560
61567
  */
61561
61568
  resetColumnsCaches() {
61562
- this.columnList.forEach(column => column.resetCaches());
61569
+ this._columns.forEach(column => column.resetCaches());
61563
61570
  }
61564
61571
  /**
61565
61572
  * @hidden @internal
61566
61573
  */
61567
61574
  generateRowID() {
61568
- const primaryColumn = this.columnList.find(col => col.field === this.primaryKey);
61575
+ const primaryColumn = this._columns.find(col => col.field === this.primaryKey);
61569
61576
  const idType = this.data.length ?
61570
61577
  this.resolveDataTypes(this.data[0][this.primaryKey]) : primaryColumn ? primaryColumn.dataType : 'string';
61571
61578
  return idType === 'string' ? v4() : FAKE_ROW_ID--;
@@ -61632,7 +61639,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
61632
61639
  this.resetColumnCollections();
61633
61640
  this.resetCachedWidths();
61634
61641
  this.hasVisibleColumns = undefined;
61635
- this._columnGroups = this.columnList.some(col => col.columnGroup);
61642
+ this._columnGroups = this._columns.some(col => col.columnGroup);
61636
61643
  }
61637
61644
  /**
61638
61645
  * @hidden
@@ -61898,7 +61905,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
61898
61905
  * ```
61899
61906
  */
61900
61907
  toggleColumnVisibility(args) {
61901
- const col = args.column ? this.columnList.find((c) => c === args.column) : undefined;
61908
+ const col = args.column ? this._columns.find((c) => c === args.column) : undefined;
61902
61909
  if (!col) {
61903
61910
  return;
61904
61911
  }
@@ -62159,7 +62166,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62159
62166
  * ```
62160
62167
  */
62161
62168
  get columns() {
62162
- return this._rendered ? this._columns : [];
62169
+ return this._columns || [];
62163
62170
  }
62164
62171
  /**
62165
62172
  * Gets an array of the pinned `IgxColumnComponent`s.
@@ -62220,7 +62227,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62220
62227
  * @param name
62221
62228
  */
62222
62229
  getColumnByName(name) {
62223
- return this.columnList.find((col) => col.field === name);
62230
+ return this._columns.find((col) => col.field === name);
62224
62231
  }
62225
62232
  getColumnByVisibleIndex(index) {
62226
62233
  return this.visibleColumns.find((col) => !col.columnGroup && !col.columnLayout &&
@@ -62238,7 +62245,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62238
62245
  if (this._visibleColumns.length) {
62239
62246
  return this._visibleColumns;
62240
62247
  }
62241
- this._visibleColumns = this.columnList.filter(c => !c.hidden);
62248
+ this._visibleColumns = this._columns.filter(c => !c.hidden);
62242
62249
  return this._visibleColumns;
62243
62250
  }
62244
62251
  /**
@@ -62371,14 +62378,14 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62371
62378
  * @internal
62372
62379
  */
62373
62380
  get showAddButton() {
62374
- return this.rowEditable && this.dataView.length === 0 && this.columnList.length > 0;
62381
+ return this.rowEditable && this.dataView.length === 0 && this._columns.length > 0;
62375
62382
  }
62376
62383
  /**
62377
62384
  * @hidden
62378
62385
  * @internal
62379
62386
  */
62380
62387
  get showDragIcons() {
62381
- return this.rowDraggable && this.columnList.length > this.hiddenColumnsCount;
62388
+ return this.rowDraggable && this._columns.length > this.hiddenColumnsCount;
62382
62389
  }
62383
62390
  /**
62384
62391
  * @hidden
@@ -62440,12 +62447,12 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62440
62447
  const index = pos === DropPosition.AfterDropTarget ? unpinnedIndex + 1 : unpinnedIndex;
62441
62448
  columnPinStateChanged = column.unpin(index);
62442
62449
  }
62443
- if (target.pinned && column.pinned && !columnPinStateChanged) {
62444
- this._reorderColumns(column, target, pos, this._pinnedColumns);
62445
- }
62446
- if (!target.pinned && !column.pinned && !columnPinStateChanged) {
62447
- this._reorderColumns(column, target, pos, this._unpinnedColumns);
62448
- }
62450
+ // if (target.pinned && column.pinned && !columnPinStateChanged) {
62451
+ // this._reorderColumns(column, target, pos, this._pinnedColumns);
62452
+ // }
62453
+ // if (!target.pinned && !column.pinned && !columnPinStateChanged) {
62454
+ // this._reorderColumns(column, target, pos, this._unpinnedColumns);
62455
+ // }
62449
62456
  this._moveColumns(column, target, pos);
62450
62457
  this._columnsReordered(column);
62451
62458
  }
@@ -62509,7 +62516,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62509
62516
  // commit pending states prior to adding a row
62510
62517
  this.crudService.endEdit(true);
62511
62518
  this.gridAPI.addRowToData(data);
62512
- this.rowAddedNotifier.next({ data });
62519
+ this.rowAddedNotifier.next({ data: data, owner: this });
62513
62520
  this.pipeTrigger++;
62514
62521
  this.notifyChanges();
62515
62522
  }
@@ -62536,7 +62543,8 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62536
62543
  rowID: rowId,
62537
62544
  cancel: false,
62538
62545
  rowData: this.getRowData(rowId),
62539
- oldValue: null
62546
+ oldValue: null,
62547
+ owner: this
62540
62548
  };
62541
62549
  this.rowDelete.emit(args);
62542
62550
  if (args.cancel) {
@@ -62544,8 +62552,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62544
62552
  }
62545
62553
  const record = this.gridAPI.deleteRowById(rowId);
62546
62554
  if (record !== null && record !== undefined) {
62547
- // TODO: should we emit this when cascadeOnDelete is true for each row?!?!
62548
- this.rowDeleted.emit({ data: record });
62555
+ this.rowDeleted.emit({ data: record, owner: this });
62549
62556
  }
62550
62557
  return record;
62551
62558
  }
@@ -62564,7 +62571,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62564
62571
  */
62565
62572
  updateCell(value, rowSelector, column) {
62566
62573
  if (this.isDefined(this.primaryKey)) {
62567
- const col = this.columnList.toArray().find(c => c.field === column);
62574
+ const col = this._columns.find(c => c.field === column);
62568
62575
  if (col) {
62569
62576
  // Simplify
62570
62577
  const rowData = this.gridAPI.getRowData(rowSelector);
@@ -62655,7 +62662,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
62655
62662
  }
62656
62663
  else {
62657
62664
  if (this._sortingOptions.mode === 'single') {
62658
- this.columns.forEach((col) => {
62665
+ this._columns.forEach((col) => {
62659
62666
  if (!(col.field === expression.fieldName)) {
62660
62667
  this.clearSort(col.field);
62661
62668
  }
@@ -63017,7 +63024,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63017
63024
  * ```
63018
63025
  */
63019
63026
  get hasSortableColumns() {
63020
- return this.columnList.some((col) => col.sortable);
63027
+ return this._columns.some((col) => col.sortable);
63021
63028
  }
63022
63029
  /**
63023
63030
  * Returns if the `IgxGridComponent` has editable columns.
@@ -63028,7 +63035,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63028
63035
  * ```
63029
63036
  */
63030
63037
  get hasEditableColumns() {
63031
- return this.columnList.some((col) => col.editable);
63038
+ return this._columns.some((col) => col.editable);
63032
63039
  }
63033
63040
  /**
63034
63041
  * Returns if the `IgxGridComponent` has filterable columns.
@@ -63039,7 +63046,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63039
63046
  * ```
63040
63047
  */
63041
63048
  get hasFilterableColumns() {
63042
- return this.columnList.some((col) => col.filterable);
63049
+ return this._columns.some((col) => col.filterable);
63043
63050
  }
63044
63051
  /**
63045
63052
  * Returns if the `IgxGridComponent` has summarized columns.
@@ -63050,7 +63057,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63050
63057
  * ```
63051
63058
  */
63052
63059
  get hasSummarizedColumns() {
63053
- const summarizedColumns = this.columnList.filter(col => col.hasSummary && !col.hidden);
63060
+ const summarizedColumns = this._columns.filter(col => col.hasSummary && !col.hidden);
63054
63061
  return summarizedColumns.length > 0;
63055
63062
  }
63056
63063
  /**
@@ -63064,7 +63071,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63064
63071
  */
63065
63072
  get hasVisibleColumns() {
63066
63073
  if (this._hasVisibleColumns === undefined) {
63067
- return this.columnList ? this.columnList.some(c => !c.hidden) : false;
63074
+ return this._columns ? this._columns.some(c => !c.hidden) : false;
63068
63075
  }
63069
63076
  return this._hasVisibleColumns;
63070
63077
  }
@@ -63105,7 +63112,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63105
63112
  * ```
63106
63113
  */
63107
63114
  get hasColumnLayouts() {
63108
- return !!this.columnList.some(col => col.columnLayout);
63115
+ return !!this._columns.some(col => col.columnLayout);
63109
63116
  }
63110
63117
  /**
63111
63118
  * @hidden @internal
@@ -63203,8 +63210,8 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63203
63210
  return '0px';
63204
63211
  }
63205
63212
  const columnWidth = Math.floor(!Number.isFinite(sumExistingWidths) ?
63206
- Math.max(computedWidth / columnsToSize, MINIMUM_COLUMN_WIDTH$2) :
63207
- Math.max((computedWidth - sumExistingWidths) / columnsToSize, MINIMUM_COLUMN_WIDTH$2));
63213
+ Math.max(computedWidth / columnsToSize, this.minColumnWidth) :
63214
+ Math.max((computedWidth - sumExistingWidths) / columnsToSize, this.minColumnWidth));
63208
63215
  return columnWidth + 'px';
63209
63216
  }
63210
63217
  /**
@@ -63561,7 +63568,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63561
63568
  * ```
63562
63569
  */
63563
63570
  selectAllColumns() {
63564
- this.selectColumns(this.columnList.filter(c => !c.columnGroup));
63571
+ this.selectColumns(this._columns.filter(c => !c.columnGroup));
63565
63572
  }
63566
63573
  /**
63567
63574
  *
@@ -63671,7 +63678,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63671
63678
  var _a;
63672
63679
  const totalItems = (_a = this.totalItemCount) !== null && _a !== void 0 ? _a : this.dataView.length - 1;
63673
63680
  if (rowIndex < 0 || rowIndex > totalItems || (visibleColIndex !== -1
63674
- && this.columnList.map(col => col.visibleIndex).indexOf(visibleColIndex) === -1)) {
63681
+ && this._columns.map(col => col.visibleIndex).indexOf(visibleColIndex) === -1)) {
63675
63682
  return;
63676
63683
  }
63677
63684
  if (this.dataView.slice(rowIndex, rowIndex + 1).find(rec => rec.expression || rec.childGridsData)) {
@@ -63717,7 +63724,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63717
63724
  * ```
63718
63725
  */
63719
63726
  getNextCell(currRowIndex, curVisibleColIndex, callback = null) {
63720
- const columns = this.columnList.filter(col => !col.columnGroup && col.visibleIndex >= 0);
63727
+ const columns = this._columns.filter(col => !col.columnGroup && col.visibleIndex >= 0);
63721
63728
  const dataViewIndex = this._getDataViewIndex(currRowIndex);
63722
63729
  if (!this.isValidPosition(dataViewIndex, curVisibleColIndex)) {
63723
63730
  return { rowIndex: currRowIndex, visibleColumnIndex: curVisibleColIndex };
@@ -63752,7 +63759,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
63752
63759
  * ```
63753
63760
  */
63754
63761
  getPreviousCell(currRowIndex, curVisibleColIndex, callback = null) {
63755
- const columns = this.columnList.filter(col => !col.columnGroup && col.visibleIndex >= 0);
63762
+ const columns = this._columns.filter(col => !col.columnGroup && col.visibleIndex >= 0);
63756
63763
  const dataViewIndex = this._getDataViewIndex(currRowIndex);
63757
63764
  if (!this.isValidPosition(dataViewIndex, curVisibleColIndex)) {
63758
63765
  return { rowIndex: currRowIndex, visibleColumnIndex: curVisibleColIndex };
@@ -64172,9 +64179,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64172
64179
  */
64173
64180
  _derivePossibleWidth() {
64174
64181
  if (!this.columnWidthSetByUser) {
64175
- this._columnWidth = this.width !== null ? this.getPossibleColumnWidth() : MINIMUM_COLUMN_WIDTH$2 + 'px';
64182
+ this._columnWidth = this.width !== null ? this.getPossibleColumnWidth() : this.minColumnWidth + 'px';
64176
64183
  }
64177
- this.columnList.forEach((column) => {
64184
+ this._columns.forEach((column) => {
64178
64185
  if (this.hasColumnLayouts && parseInt(this._columnWidth, 10)) {
64179
64186
  const columnWidthCombined = parseInt(this._columnWidth, 10) * (column.colEnd ? column.colEnd - column.colStart : 1);
64180
64187
  column.defaultWidth = columnWidthCombined + 'px';
@@ -64227,7 +64234,8 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64227
64234
  * @hidden
64228
64235
  */
64229
64236
  _moveColumns(from, to, pos) {
64230
- const list = this.columnList.toArray();
64237
+ const orderedList = this._pinnedColumns.concat(this._unpinnedColumns);
64238
+ const list = orderedList;
64231
64239
  this._reorderColumns(from, to, pos, list);
64232
64240
  const newList = this._resetColumnList(list);
64233
64241
  this.updateColumns(newList);
@@ -64239,18 +64247,17 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64239
64247
  updateColumns(newColumns) {
64240
64248
  // update internal collections to retain order.
64241
64249
  this._pinnedColumns = newColumns
64242
- .filter((c) => c.pinned).sort((a, b) => this._pinnedColumns.indexOf(a) - this._pinnedColumns.indexOf(b));
64250
+ .filter((c) => c.pinned);
64243
64251
  this._unpinnedColumns = newColumns.filter((c) => !c.pinned);
64244
- this.columnList.reset(newColumns);
64245
- this.columnList.notifyOnChanges();
64246
- this._columns = this.columnList.toArray();
64252
+ this._columns = newColumns;
64253
+ this.resetCaches();
64247
64254
  }
64248
64255
  /**
64249
64256
  * @hidden
64250
64257
  */
64251
64258
  _resetColumnList(list) {
64252
64259
  if (!list) {
64253
- list = this.columnList.toArray();
64260
+ list = this._columns;
64254
64261
  }
64255
64262
  let newList = [];
64256
64263
  list.filter(c => c.level === 0).forEach(p => {
@@ -64298,7 +64305,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64298
64305
  if (this.autoGenerate) {
64299
64306
  this.autogenerateColumns();
64300
64307
  }
64301
- this.initColumns(this.columnList, (col) => this.columnInit.emit(col));
64308
+ else {
64309
+ this._columns = this.getColumnList();
64310
+ }
64311
+ this.initColumns(this._columns, (col) => this.columnInit.emit(col));
64302
64312
  this.columnListDiffer.diff(this.columnList);
64303
64313
  this.columnList.changes
64304
64314
  .pipe(takeUntil(this.destroy$))
@@ -64306,6 +64316,9 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64306
64316
  this.onColumnsChanged(change);
64307
64317
  });
64308
64318
  }
64319
+ getColumnList() {
64320
+ return this.columnList.toArray();
64321
+ }
64309
64322
  /**
64310
64323
  * @hidden
64311
64324
  */
@@ -64347,10 +64360,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64347
64360
  */
64348
64361
  onColumnsChanged(change) {
64349
64362
  const diff = this.columnListDiffer.diff(change);
64350
- if (this.autoGenerate && this.columnList.length === 0 && this._autoGeneratedCols.length > 0) {
64363
+ if (this.autoGenerate && this._columns.length === 0 && this._autoGeneratedCols.length > 0) {
64351
64364
  // In Ivy if there are nested conditional templates the content children are re-evaluated
64352
64365
  // hence autogenerated columns are cleared and need to be reset.
64353
- this.columnList.reset(this._autoGeneratedCols);
64366
+ this.updateColumns(this._autoGeneratedCols);
64354
64367
  return;
64355
64368
  }
64356
64369
  if (diff) {
@@ -64365,7 +64378,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64365
64378
  this._unpinnedColumns.push(record.item);
64366
64379
  }
64367
64380
  });
64368
- this.initColumns(this.columnList, (col) => this.columnInit.emit(col));
64381
+ this.initColumns(this.columnList.toArray(), (col) => this.columnInit.emit(col));
64369
64382
  diff.forEachRemovedItem((record) => {
64370
64383
  const isColumnGroup = record.item instanceof IgxColumnGroupComponent;
64371
64384
  if (!isColumnGroup) {
@@ -64574,10 +64587,13 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64574
64587
  this.tbody.nativeElement.style.display = 'none';
64575
64588
  let res = !this.nativeElement.parentElement ||
64576
64589
  this.nativeElement.parentElement.clientHeight === 0 ||
64577
- this.nativeElement.parentElement.clientHeight === renderedHeight ||
64590
+ this.nativeElement.parentElement.clientHeight === renderedHeight;
64591
+ if ((!this.platform.isChromium && !this.platform.isFirefox) || this._autoSize) {
64578
64592
  // If grid causes the parent container to extend (for example when container is flex)
64579
64593
  // we should always auto-size since the actual size of the container will continuously change as the grid renders elements.
64580
- this.checkContainerSizeChange();
64594
+ this._autoSize = false;
64595
+ res = this.checkContainerSizeChange();
64596
+ }
64581
64597
  this.tbody.nativeElement.style.display = '';
64582
64598
  return res;
64583
64599
  }
@@ -64661,7 +64677,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64661
64677
  columns.push(ref.instance);
64662
64678
  });
64663
64679
  this._autoGeneratedCols = columns;
64664
- this.columnList.reset(columns);
64680
+ this.updateColumns(columns);
64665
64681
  if (data && data.length > 0) {
64666
64682
  this.shouldGenerate = false;
64667
64683
  }
@@ -64673,10 +64689,10 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64673
64689
  * @hidden
64674
64690
  */
64675
64691
  initColumns(collection, cb = null) {
64676
- this._columnGroups = this.columnList.some(col => col.columnGroup);
64692
+ this._columnGroups = collection.some(col => col.columnGroup);
64677
64693
  if (this.hasColumnLayouts) {
64678
64694
  // Set overall row layout size
64679
- this.columnList.forEach((col) => {
64695
+ collection.forEach((col) => {
64680
64696
  if (col.columnLayout) {
64681
64697
  const layoutSize = col.children ?
64682
64698
  col.children.reduce((acc, val) => Math.max(val.rowStart + val.gridRowSpan - 1, acc), 1) :
@@ -64688,18 +64704,17 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64688
64704
  if (this.hasColumnLayouts && this.hasColumnGroups) {
64689
64705
  // invalid configuration - multi-row and column groups
64690
64706
  // remove column groups
64691
- const columnLayoutColumns = this.columnList.filter((col) => col.columnLayout || col.columnLayoutChild);
64692
- this.columnList.reset(columnLayoutColumns);
64707
+ const columnLayoutColumns = collection.filter((col) => col.columnLayout || col.columnLayoutChild);
64708
+ collection = columnLayoutColumns;
64693
64709
  }
64694
64710
  this._maxLevelHeaderDepth = null;
64695
- this._columns = this.columnList.toArray();
64696
64711
  collection.forEach((column) => {
64697
64712
  column.defaultWidth = this.columnWidthSetByUser ? this._columnWidth : column.defaultWidth ? column.defaultWidth : '';
64698
64713
  if (cb) {
64699
64714
  cb(column);
64700
64715
  }
64701
64716
  });
64702
- this.reinitPinStates();
64717
+ this.updateColumns(collection);
64703
64718
  if (this.hasColumnLayouts) {
64704
64719
  collection.forEach((column) => {
64705
64720
  column.populateVisibleIndexes();
@@ -64710,11 +64725,11 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64710
64725
  * @hidden
64711
64726
  */
64712
64727
  reinitPinStates() {
64713
- this._pinnedColumns = this.columnList
64728
+ this._pinnedColumns = this._columns
64714
64729
  .filter((c) => c.pinned).sort((a, b) => this._pinnedColumns.indexOf(a) - this._pinnedColumns.indexOf(b));
64715
- this._unpinnedColumns = this.hasColumnGroups ? this.columnList.filter((c) => !c.pinned) :
64716
- this.columnList.filter((c) => !c.pinned)
64717
- .sort((a, b) => this._unpinnedColumns.findIndex(x => x.field === a.field) - this._unpinnedColumns.findIndex(x => x.field === b.field));
64730
+ this._unpinnedColumns = this.hasColumnGroups ? this._columns.filter((c) => !c.pinned) :
64731
+ this._columns.filter((c) => !c.pinned)
64732
+ .sort((a, b) => this._unpinnedColumns.indexOf(a) - this._unpinnedColumns.indexOf(b));
64718
64733
  }
64719
64734
  extractDataFromSelection(source, formatters = false, headers = false, columnData) {
64720
64735
  var _a;
@@ -64894,7 +64909,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64894
64909
  // Make sure we don't exceed unpinned area min width and get pinned and unpinned col collections.
64895
64910
  // We take into account top level columns (top level groups and non groups).
64896
64911
  // If top level is unpinned the pinning handles all children to be unpinned as well.
64897
- for (const column of this.columnList) {
64912
+ for (const column of this._columns) {
64898
64913
  if (column.pinned && !column.parent) {
64899
64914
  pinnedColumns.push(column);
64900
64915
  }
@@ -64970,7 +64985,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64970
64985
  const cols = this.hasColumnLayouts ?
64971
64986
  this.visibleColumns.filter(x => x.columnLayout) : this.visibleColumns.filter(x => !x.columnGroup);
64972
64987
  cols.forEach((item) => {
64973
- colSum += parseInt((item.calcWidth || item.defaultWidth), 10) || MINIMUM_COLUMN_WIDTH$2;
64988
+ colSum += parseInt((item.calcWidth || item.defaultWidth), 10) || this.minColumnWidth;
64974
64989
  });
64975
64990
  if (!colSum) {
64976
64991
  return null;
@@ -64987,7 +65002,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
64987
65002
  _columnsReordered(column) {
64988
65003
  this.notifyChanges();
64989
65004
  if (this.hasColumnLayouts) {
64990
- this.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
65005
+ this._columns.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
64991
65006
  }
64992
65007
  // after reordering is done reset cached column collections.
64993
65008
  this.resetColumnCollections();
@@ -65150,7 +65165,7 @@ class IgxGridBaseDirective extends DisplayDensityBase {
65150
65165
  }
65151
65166
  isValidPosition(rowIndex, colIndex) {
65152
65167
  const rows = this.summariesRowList.filter(s => s.index !== 0).concat(this.rowList.toArray()).length;
65153
- const cols = this.columnList.filter(col => !col.columnGroup && col.visibleIndex >= 0 && !col.hidden).length;
65168
+ const cols = this._columns.filter(col => !col.columnGroup && col.visibleIndex >= 0 && !col.hidden).length;
65154
65169
  if (rows < 1 || cols < 1) {
65155
65170
  return false;
65156
65171
  }
@@ -66235,7 +66250,7 @@ class IgxGridMRLNavigationService extends IgxGridNavigationService {
66235
66250
  col.visibleIndex > this.activeNode.column && col.colStart > this.activeNode.layout.colStart);
66236
66251
  if (!column || (previous && this.activeNode.layout.colStart === 1)) {
66237
66252
  const index = previous ? parent.visibleIndex - 1 : parent.visibleIndex + 1;
66238
- const children = this.grid.columnList.find(cols => cols.columnLayout && cols.visibleIndex === index).children;
66253
+ const children = this.grid.columns.find(cols => cols.columnLayout && cols.visibleIndex === index).children;
66239
66254
  column = previous ? children.toArray().reverse().find(child => child.rowStart <= this.activeNode.layout.rowStart) :
66240
66255
  children.find(child => this.rowEnd(child) > this.activeNode.layout.rowStart && child.colStart === 1);
66241
66256
  }
@@ -68131,7 +68146,7 @@ class IgxGridComponent extends IgxGridBaseDirective {
68131
68146
  this._applyGrouping();
68132
68147
  this.notifyChanges();
68133
68148
  }
68134
- if (!this._init && JSON.stringify(oldExpressions) !== JSON.stringify(newExpressions) && this.columnList) {
68149
+ if (!this._init && JSON.stringify(oldExpressions) !== JSON.stringify(newExpressions) && this._columns) {
68135
68150
  const groupedCols = [];
68136
68151
  const ungroupedCols = [];
68137
68152
  const groupedColsArr = newExpressions.filter((obj) => !oldExpressions.some((obj2) => obj.fieldName === obj2.fieldName));
@@ -68195,7 +68210,7 @@ class IgxGridComponent extends IgxGridBaseDirective {
68195
68210
  else {
68196
68211
  this.groupingDiffer = null;
68197
68212
  }
68198
- if (this.columnList && this.groupingExpressions) {
68213
+ if (this._columns && this.groupingExpressions) {
68199
68214
  this._setGroupColsVisibility(value);
68200
68215
  }
68201
68216
  this._hideGroupedColumns = value;
@@ -68250,7 +68265,7 @@ class IgxGridComponent extends IgxGridBaseDirective {
68250
68265
  getCellByColumnVisibleIndex(rowIndex, index) {
68251
68266
  var _a;
68252
68267
  const row = this.getRowByIndex(rowIndex);
68253
- const column = this.columnList.find((col) => col.visibleIndex === index);
68268
+ const column = this._columns.find((col) => col.visibleIndex === index);
68254
68269
  if (row && row instanceof IgxGridRow && !((_a = row.data) === null || _a === void 0 ? void 0 : _a.detailsData) && column) {
68255
68270
  return new IgxGridCell(this, rowIndex, column.field);
68256
68271
  }
@@ -68514,7 +68529,7 @@ class IgxGridComponent extends IgxGridBaseDirective {
68514
68529
  * ```
68515
68530
  */
68516
68531
  get hasGroupableColumns() {
68517
- return this.columnList.some((col) => col.groupable && !col.columnGroup);
68532
+ return this._columns.some((col) => col.groupable && !col.columnGroup);
68518
68533
  }
68519
68534
  /**
68520
68535
  * Returns whether the `IgxGridComponent` has group area.
@@ -68639,7 +68654,7 @@ class IgxGridComponent extends IgxGridBaseDirective {
68639
68654
  this._groupRowTemplate = this.groupTemplate.template;
68640
68655
  }
68641
68656
  this.detailTemplate.changes.subscribe(() => this.trackChanges = (_, rec) => ((rec === null || rec === void 0 ? void 0 : rec.detailsData) !== undefined ? rec.detailsData : rec));
68642
- if (this.hideGroupedColumns && this.columnList && this.groupingExpressions) {
68657
+ if (this.hideGroupedColumns && this._columns && this.groupingExpressions) {
68643
68658
  this._setGroupColsVisibility(this.hideGroupedColumns);
68644
68659
  }
68645
68660
  this._setupNavigationService();
@@ -68687,9 +68702,9 @@ class IgxGridComponent extends IgxGridBaseDirective {
68687
68702
  * @hidden @internal
68688
68703
  */
68689
68704
  ngDoCheck() {
68690
- if (this.groupingDiffer && this.columnList && !this.hasColumnLayouts) {
68705
+ if (this.groupingDiffer && this._columns && !this.hasColumnLayouts) {
68691
68706
  const changes = this.groupingDiffer.diff(this.groupingExpressions);
68692
- if (changes && this.columnList.length > 0) {
68707
+ if (changes && this._columns.length > 0) {
68693
68708
  changes.forEachAddedItem((rec) => {
68694
68709
  const col = this.getColumnByName(rec.item.fieldName);
68695
68710
  if (col) {
@@ -68820,7 +68835,7 @@ class IgxGridComponent extends IgxGridBaseDirective {
68820
68835
  getCellByColumn(rowIndex, columnField) {
68821
68836
  var _a;
68822
68837
  const row = this.getRowByIndex(rowIndex);
68823
- const column = this.columnList.find((col) => col.field === columnField);
68838
+ const column = this._columns.find((col) => col.field === columnField);
68824
68839
  if (row && row instanceof IgxGridRow && !((_a = row.data) === null || _a === void 0 ? void 0 : _a.detailsData) && column) {
68825
68840
  if (this.pagingMode === 1 && this.gridAPI.grid.page !== 0) {
68826
68841
  row.index = rowIndex + this.paginator.perPage * this.paginator.page;
@@ -68842,7 +68857,7 @@ class IgxGridComponent extends IgxGridBaseDirective {
68842
68857
  */
68843
68858
  getCellByKey(rowSelector, columnField) {
68844
68859
  const row = this.getRowByKey(rowSelector);
68845
- const column = this.columnList.find((col) => col.field === columnField);
68860
+ const column = this._columns.find((col) => col.field === columnField);
68846
68861
  if (row && column) {
68847
68862
  return new IgxGridCell(this, row.index, columnField);
68848
68863
  }
@@ -68944,7 +68959,7 @@ class IgxGridComponent extends IgxGridBaseDirective {
68944
68959
  return !expression.fieldName;
68945
68960
  }
68946
68961
  _setGroupColsVisibility(value) {
68947
- if (this.columnList.length > 0 && !this.hasColumnLayouts) {
68962
+ if (this._columns.length > 0 && !this.hasColumnLayouts) {
68948
68963
  this.groupingExpressions.forEach((expr) => {
68949
68964
  const col = this.getColumnByName(expr.fieldName);
68950
68965
  col.hidden = value;
@@ -69119,7 +69134,7 @@ class IgxGridStateDirective {
69119
69134
  },
69120
69135
  columns: {
69121
69136
  getFeatureState: (context) => {
69122
- const gridColumns = context.currGrid.columnList.map((c) => ({
69137
+ const gridColumns = context.currGrid.columns.map((c) => ({
69123
69138
  pinned: c.pinned,
69124
69139
  sortable: c.sortable,
69125
69140
  filterable: c.filterable,
@@ -69179,6 +69194,9 @@ class IgxGridStateDirective {
69179
69194
  }
69180
69195
  });
69181
69196
  context.grid.updateColumns(newColumns);
69197
+ newColumns.forEach(col => {
69198
+ context.grid.columnInit.emit(col);
69199
+ });
69182
69200
  }
69183
69201
  },
69184
69202
  groupBy: {
@@ -69428,13 +69446,11 @@ class IgxGridStateDirective {
69428
69446
  // TODO Notify the grid that columnList.changes is triggered by the state directive
69429
69447
  // instead of piping it like below
69430
69448
  const columns = 'columns';
69431
- this.grid.columnList.changes.pipe(delay(0), take(1)).subscribe(() => {
69432
- this.featureKeys = this.featureKeys.filter(f => f !== columns);
69433
- this.restoreFeatures(state);
69434
- });
69435
69449
  this.applyFeatures(features);
69436
69450
  if (this.featureKeys.includes(columns) && this.options[columns] && state[columns]) {
69437
69451
  this.getFeature(columns).restoreFeatureState(this, state[columns]);
69452
+ this.featureKeys = this.featureKeys.filter(f => f !== columns);
69453
+ this.restoreFeatures(state);
69438
69454
  }
69439
69455
  else {
69440
69456
  this.restoreFeatures(state);
@@ -69485,8 +69501,8 @@ class IgxGridStateDirective {
69485
69501
  else {
69486
69502
  const expr = item;
69487
69503
  let dataType;
69488
- if (this.currGrid.columnList.length > 0) {
69489
- dataType = this.currGrid.columnList.find(c => c.field === expr.fieldName).dataType;
69504
+ if (this.currGrid.columns.length > 0) {
69505
+ dataType = this.currGrid.columns.find(c => c.field === expr.fieldName).dataType;
69490
69506
  }
69491
69507
  else if (this.state.columns) {
69492
69508
  dataType = this.state.columns.find(c => c.field === expr.fieldName).dataType;
@@ -69823,14 +69839,14 @@ class IgxColumnLayoutComponent extends IgxColumnGroupComponent {
69823
69839
  set hidden(value) {
69824
69840
  this._hidden = value;
69825
69841
  this.children.forEach(child => child.hidden = value);
69826
- if (this.grid && this.grid.columnList && this.grid.columnList.length > 0) {
69842
+ if (this.grid && this.grid.columns && this.grid.columns.length > 0) {
69827
69843
  // reset indexes in case columns are hidden/shown runtime
69828
69844
  const columns = this.grid && this.grid.pinnedColumns && this.grid.unpinnedColumns ?
69829
69845
  this.grid.pinnedColumns.concat(this.grid.unpinnedColumns) : [];
69830
69846
  if (!this._hidden && !columns.find(c => c.field === this.field)) {
69831
69847
  this.grid.resetColumnCollections();
69832
69848
  }
69833
- this.grid.columnList.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
69849
+ this.grid.columns.filter(x => x.columnLayout).forEach(x => x.populateVisibleIndexes());
69834
69850
  }
69835
69851
  }
69836
69852
  /**
@@ -71779,13 +71795,13 @@ class IgxTreeGridGroupByAreaComponent extends IgxGroupByAreaDirective {
71779
71795
  return this._hideGroupedColumns;
71780
71796
  }
71781
71797
  set hideGroupedColumns(value) {
71782
- if (this.grid.columnList && this.expressions) {
71798
+ if (this.grid.columns && this.expressions) {
71783
71799
  this.setColumnsVisibility(value);
71784
71800
  }
71785
71801
  this._hideGroupedColumns = value;
71786
71802
  }
71787
71803
  ngAfterContentInit() {
71788
- if (this.grid.columnList && this.expressions) {
71804
+ if (this.grid.columns && this.expressions) {
71789
71805
  this.groupingDiffer = this.differs.find(this.expressions).create();
71790
71806
  this.updateColumnsVisibility();
71791
71807
  }
@@ -71836,9 +71852,9 @@ class IgxTreeGridGroupByAreaComponent extends IgxGroupByAreaDirective {
71836
71852
  this.updateColumnsVisibility();
71837
71853
  }
71838
71854
  updateColumnsVisibility() {
71839
- if (this.groupingDiffer && this.grid.columnList && !this.grid.hasColumnLayouts) {
71855
+ if (this.groupingDiffer && this.grid.columns && !this.grid.hasColumnLayouts) {
71840
71856
  const changes = this.groupingDiffer.diff(this.expressions);
71841
- if (changes && this.grid.columnList.length > 0) {
71857
+ if (changes && this.grid.columns.length > 0) {
71842
71858
  changes.forEachAddedItem((rec) => {
71843
71859
  const col = this.grid.getColumnByName(rec.item.fieldName);
71844
71860
  col.hidden = this.hideGroupedColumns;
@@ -71851,7 +71867,7 @@ class IgxTreeGridGroupByAreaComponent extends IgxGroupByAreaDirective {
71851
71867
  }
71852
71868
  }
71853
71869
  setColumnsVisibility(value) {
71854
- if (this.grid.columnList.length > 0 && !this.grid.hasColumnLayouts) {
71870
+ if (this.grid.columns.length > 0 && !this.grid.hasColumnLayouts) {
71855
71871
  this.expressions.forEach((expr) => {
71856
71872
  const col = this.grid.getColumnByName(expr.fieldName);
71857
71873
  col.hidden = value;
@@ -73351,7 +73367,7 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
73351
73367
  */
73352
73368
  getCellByColumnVisibleIndex(rowIndex, index) {
73353
73369
  const row = this.getRowByIndex(rowIndex);
73354
- const column = this.columnList.find((col) => col.visibleIndex === index);
73370
+ const column = this.columns.find((col) => col.visibleIndex === index);
73355
73371
  if (row && row instanceof IgxTreeGridRow && column) {
73356
73372
  return new IgxGridCell(this, rowIndex, column.field);
73357
73373
  }
@@ -73506,7 +73522,7 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
73506
73522
  addRow(data, parentRowID) {
73507
73523
  this.crudService.endEdit(true);
73508
73524
  this.gridAPI.addRowToData(data, parentRowID);
73509
- this.rowAddedNotifier.next({ data });
73525
+ this.rowAddedNotifier.next({ data: data, owner: this });
73510
73526
  this.pipeTrigger++;
73511
73527
  this.notifyChanges();
73512
73528
  }
@@ -73613,7 +73629,22 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
73613
73629
  // if this is flat self-referencing data, and CascadeOnDelete is set to true
73614
73630
  // and if we have transactions we should start pending transaction. This allows
73615
73631
  // us in case of delete action to delete all child rows as single undo action
73616
- return this.gridAPI.deleteRowById(rowId);
73632
+ const args = {
73633
+ rowID: rowId,
73634
+ cancel: false,
73635
+ rowData: this.getRowData(rowId),
73636
+ oldValue: null,
73637
+ owner: this
73638
+ };
73639
+ this.rowDelete.emit(args);
73640
+ if (args.cancel) {
73641
+ return;
73642
+ }
73643
+ const record = this.gridAPI.deleteRowById(rowId);
73644
+ if (record !== null && record !== undefined) {
73645
+ this.rowDeleted.emit({ data: record, owner: this });
73646
+ }
73647
+ return record;
73617
73648
  }
73618
73649
  /**
73619
73650
  * Returns the `IgxTreeGridRow` by index.
@@ -73688,7 +73719,7 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
73688
73719
  */
73689
73720
  getCellByColumn(rowIndex, columnField) {
73690
73721
  const row = this.getRowByIndex(rowIndex);
73691
- const column = this.columnList.find((col) => col.field === columnField);
73722
+ const column = this.columns.find((col) => col.field === columnField);
73692
73723
  if (row && row instanceof IgxTreeGridRow && column) {
73693
73724
  return new IgxGridCell(this, rowIndex, columnField);
73694
73725
  }
@@ -73707,7 +73738,7 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
73707
73738
  */
73708
73739
  getCellByKey(rowSelector, columnField) {
73709
73740
  const row = this.getRowByKey(rowSelector);
73710
- const column = this.columnList.find((col) => col.field === columnField);
73741
+ const column = this.columns.find((col) => col.field === columnField);
73711
73742
  if (row && column) {
73712
73743
  return new IgxGridCell(this, row.index, columnField);
73713
73744
  }
@@ -73765,7 +73796,7 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
73765
73796
  * ```
73766
73797
  */
73767
73798
  get hasGroupableColumns() {
73768
- return this.columnList.some((col) => col.groupable && !col.columnGroup);
73799
+ return this.columns.some((col) => col.groupable && !col.columnGroup);
73769
73800
  }
73770
73801
  generateDataFields(data) {
73771
73802
  return super.generateDataFields(data).filter(field => field !== this.childDataKey);
@@ -73848,8 +73879,8 @@ class IgxTreeGridComponent extends IgxGridBaseDirective {
73848
73879
  if (this.hasColumnLayouts) {
73849
73880
  // invalid configuration - tree grid should not allow column layouts
73850
73881
  // remove column layouts
73851
- const nonColumnLayoutColumns = this.columnList.filter((col) => !col.columnLayout && !col.columnLayoutChild);
73852
- this.columnList.reset(nonColumnLayoutColumns);
73882
+ const nonColumnLayoutColumns = this.columns.filter((col) => !col.columnLayout && !col.columnLayoutChild);
73883
+ this.updateColumns(nonColumnLayoutColumns);
73853
73884
  }
73854
73885
  super.initColumns(collection, cb);
73855
73886
  }
@@ -73951,6 +73982,7 @@ IgxTreeGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
73951
73982
  IgxGridCRUDService,
73952
73983
  IgxGridSummaryService,
73953
73984
  IgxGridNavigationService,
73985
+ IgxColumnResizingService,
73954
73986
  { provide: IgxGridSelectionService, useClass: IgxTreeGridSelectionService },
73955
73987
  { provide: IGX_GRID_SERVICE_BASE, useClass: IgxTreeGridAPIService },
73956
73988
  { provide: IGX_GRID_BASE, useExisting: IgxTreeGridComponent },
@@ -73964,6 +73996,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
73964
73996
  IgxGridCRUDService,
73965
73997
  IgxGridSummaryService,
73966
73998
  IgxGridNavigationService,
73999
+ IgxColumnResizingService,
73967
74000
  { provide: IgxGridSelectionService, useClass: IgxTreeGridSelectionService },
73968
74001
  { provide: IGX_GRID_SERVICE_BASE, useClass: IgxTreeGridAPIService },
73969
74002
  { provide: IGX_GRID_BASE, useExisting: IgxTreeGridComponent },
@@ -74760,7 +74793,7 @@ class IgxHierarchicalGridBaseDirective extends IgxGridBaseDirective {
74760
74793
  */
74761
74794
  get maxLevelHeaderDepth() {
74762
74795
  if (this._maxLevelHeaderDepth === null) {
74763
- this._maxLevelHeaderDepth = this.columnList.reduce((acc, col) => Math.max(acc, col.level), 0);
74796
+ this._maxLevelHeaderDepth = this.columns.reduce((acc, col) => Math.max(acc, col.level), 0);
74764
74797
  }
74765
74798
  return this._maxLevelHeaderDepth;
74766
74799
  }
@@ -74803,13 +74836,12 @@ class IgxHierarchicalGridBaseDirective extends IgxGridBaseDirective {
74803
74836
  columns.push(ref.instance);
74804
74837
  });
74805
74838
  const result = flatten(columns);
74806
- this.columnList.reset(result);
74807
- this.columnList.notifyOnChanges();
74839
+ this.updateColumns(result);
74808
74840
  this.initPinning();
74809
74841
  const factoryColumn = this.resolver.resolveComponentFactory(IgxColumnComponent);
74810
74842
  const outputs = factoryColumn.outputs.filter(o => o.propName !== 'columnChange');
74811
74843
  outputs.forEach(output => {
74812
- this.columnList.forEach(column => {
74844
+ this.columns.forEach(column => {
74813
74845
  if (column[output.propName]) {
74814
74846
  column[output.propName].pipe(takeUntil(column.destroy$)).subscribe((args) => {
74815
74847
  const rowIslandColumn = this.parentIsland.childColumns.find(col => col.field === column.field);
@@ -75052,6 +75084,7 @@ class IgxRowIslandComponent extends IgxHierarchicalGridBaseDirective {
75052
75084
  this.rootGrid = null;
75053
75085
  this.layout_id = `igx-row-island-`;
75054
75086
  this.isInit = false;
75087
+ this._childColumns = [];
75055
75088
  }
75056
75089
  /**
75057
75090
  * Sets if all immediate children of the grids for this `IgxRowIslandComponent` should be expanded/collapsed.
@@ -75141,7 +75174,8 @@ class IgxRowIslandComponent extends IgxHierarchicalGridBaseDirective {
75141
75174
  const nestedColumns = this.children.map((layout) => layout.columnList.toArray());
75142
75175
  const colsArray = [].concat.apply([], nestedColumns);
75143
75176
  const topCols = this.columnList.filter((item) => colsArray.indexOf(item) === -1);
75144
- this.childColumns.reset(topCols);
75177
+ this._childColumns = topCols;
75178
+ this.updateColumns(this._childColumns);
75145
75179
  this.columnList.changes.pipe(takeUntil(this.destroy$)).subscribe(() => {
75146
75180
  Promise.resolve().then(() => {
75147
75181
  this.updateColumnList();
@@ -75149,7 +75183,7 @@ class IgxRowIslandComponent extends IgxHierarchicalGridBaseDirective {
75149
75183
  });
75150
75184
  // handle column changes so that they are passed to child grid instances when columnChange is emitted.
75151
75185
  this.ri_columnListDiffer.diff(this.childColumns);
75152
- this.childColumns.toArray().forEach(x => x.columnChange.pipe(takeUntil(x.destroy$)).subscribe(() => this.updateColumnList()));
75186
+ this._childColumns.forEach(x => x.columnChange.pipe(takeUntil(x.destroy$)).subscribe(() => this.updateColumnList()));
75153
75187
  this.childColumns.changes.pipe(takeUntil(this.destroy$)).subscribe((change) => {
75154
75188
  const diff = this.ri_columnListDiffer.diff(change);
75155
75189
  if (diff) {
@@ -75236,15 +75270,9 @@ class IgxRowIslandComponent extends IgxHierarchicalGridBaseDirective {
75236
75270
  }
75237
75271
  return false;
75238
75272
  });
75239
- this.childColumns.reset(topCols);
75240
- if (this.parentIsland) {
75241
- this.parentIsland.columnList.notifyOnChanges();
75242
- }
75243
- else {
75244
- this.rootGrid.columnList.notifyOnChanges();
75245
- }
75273
+ this._childColumns = topCols;
75246
75274
  this.rowIslandAPI.getChildGrids().forEach((grid) => {
75247
- grid.createColumnsList(this.childColumns.toArray());
75275
+ grid.createColumnsList(this._childColumns);
75248
75276
  if (!document.body.contains(grid.nativeElement)) {
75249
75277
  grid.updateOnRender = true;
75250
75278
  }
@@ -75945,7 +75973,7 @@ class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirective {
75945
75973
  */
75946
75974
  getCellByColumnVisibleIndex(rowIndex, index) {
75947
75975
  const row = this.getRowByIndex(rowIndex);
75948
- const column = this.columnList.find((col) => col.visibleIndex === index);
75976
+ const column = this.columns.find((col) => col.visibleIndex === index);
75949
75977
  if (row && row instanceof IgxHierarchicalGridRow && column) {
75950
75978
  return new IgxGridCell(this, rowIndex, column.field);
75951
75979
  }
@@ -76169,7 +76197,7 @@ class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirective {
76169
76197
  */
76170
76198
  getCellByColumn(rowIndex, columnField) {
76171
76199
  const row = this.getRowByIndex(rowIndex);
76172
- const column = this.columnList.find((col) => col.field === columnField);
76200
+ const column = this.columns.find((col) => col.field === columnField);
76173
76201
  if (row && row instanceof IgxHierarchicalGridRow && column) {
76174
76202
  return new IgxGridCell(this, rowIndex, columnField);
76175
76203
  }
@@ -76188,7 +76216,7 @@ class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirective {
76188
76216
  */
76189
76217
  getCellByKey(rowSelector, columnField) {
76190
76218
  const row = this.getRowByKey(rowSelector);
76191
- const column = this.columnList.find((col) => col.field === columnField);
76219
+ const column = this.columns.find((col) => col.field === columnField);
76192
76220
  if (row && column) {
76193
76221
  return new IgxGridCell(this, row.index, columnField);
76194
76222
  }
@@ -76464,8 +76492,8 @@ class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirective {
76464
76492
  if (this.hasColumnLayouts) {
76465
76493
  // invalid configuration - hierarchical grid should not allow column layouts
76466
76494
  // remove column layouts
76467
- const nonColumnLayoutColumns = this.columnList.filter((col) => !col.columnLayout && !col.columnLayoutChild);
76468
- this.columnList.reset(nonColumnLayoutColumns);
76495
+ const nonColumnLayoutColumns = this.columns.filter((col) => !col.columnLayout && !col.columnLayoutChild);
76496
+ this.updateColumns(nonColumnLayoutColumns);
76469
76497
  }
76470
76498
  super.initColumns(collection, cb);
76471
76499
  }
@@ -76473,16 +76501,25 @@ class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirective {
76473
76501
  if (this.parentIsland && this.parentIsland.childColumns.length > 0 && !this.autoGenerate) {
76474
76502
  this.createColumnsList(this.parentIsland.childColumns.toArray());
76475
76503
  }
76476
- super.setupColumns();
76504
+ else {
76505
+ super.setupColumns();
76506
+ }
76507
+ }
76508
+ getColumnList() {
76509
+ const childLayouts = this.parent ? this.childLayoutList : this.allLayoutList;
76510
+ const nestedColumns = childLayouts.map((layout) => layout.columnList.toArray());
76511
+ const colsArray = [].concat.apply([], nestedColumns);
76512
+ if (colsArray.length > 0) {
76513
+ const topCols = this.columnList.filter((item) => colsArray.indexOf(item) === -1);
76514
+ return topCols;
76515
+ }
76516
+ else {
76517
+ return this.columnList.toArray();
76518
+ }
76477
76519
  }
76478
76520
  onColumnsChanged(change) {
76479
76521
  Promise.resolve().then(() => {
76480
76522
  this.updateColumnList();
76481
- const cols = change.filter(c => c.grid === this);
76482
- if (cols.length > 0 || this.autoGenerate) {
76483
- this.columnList.reset(cols);
76484
- super.onColumnsChanged(this.columnList);
76485
- }
76486
76523
  });
76487
76524
  }
76488
76525
  _shouldAutoSize(renderedHeight) {
@@ -76498,8 +76535,8 @@ class IgxHierarchicalGridComponent extends IgxHierarchicalGridBaseDirective {
76498
76535
  const colLength = this.columnList.length;
76499
76536
  if (colsArray.length > 0) {
76500
76537
  const topCols = this.columnList.filter((item) => colsArray.indexOf(item) === -1);
76501
- this.columnList.reset(topCols);
76502
- if (recalcColSizes && this.columnList.length !== colLength) {
76538
+ this.updateColumns(topCols);
76539
+ if (recalcColSizes && this.columns.length !== colLength) {
76503
76540
  this.calculateGridSizes(false);
76504
76541
  }
76505
76542
  }
@@ -76527,6 +76564,7 @@ IgxHierarchicalGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12
76527
76564
  { provide: IGX_GRID_SERVICE_BASE, useClass: IgxHierarchicalGridAPIService },
76528
76565
  { provide: IGX_GRID_BASE, useExisting: IgxHierarchicalGridComponent },
76529
76566
  IgxGridSummaryService,
76567
+ IgxColumnResizingService,
76530
76568
  IgxFilteringService,
76531
76569
  IgxHierarchicalGridNavigationService,
76532
76570
  IgxForOfSyncService,
@@ -76541,6 +76579,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
76541
76579
  { provide: IGX_GRID_SERVICE_BASE, useClass: IgxHierarchicalGridAPIService },
76542
76580
  { provide: IGX_GRID_BASE, useExisting: IgxHierarchicalGridComponent },
76543
76581
  IgxGridSummaryService,
76582
+ IgxColumnResizingService,
76544
76583
  IgxFilteringService,
76545
76584
  IgxHierarchicalGridNavigationService,
76546
76585
  IgxForOfSyncService,
@@ -81327,17 +81366,67 @@ class IgxSplitterPaneComponent {
81327
81366
  this.overflow = 'auto';
81328
81367
  /**
81329
81368
  * @hidden @internal
81330
- * Gets/Sets the `minHeight` and `minWidth` properties of the current pane.
81369
+ * Get/Sets the `minWidth` properties of the current pane.
81331
81370
  */
81332
- this.minHeight = 0;
81371
+ this.minWidth = '0';
81333
81372
  /**
81334
81373
  * @hidden @internal
81335
- * Gets/Sets the `maxHeight` and `maxWidth` properties of the current `IgxSplitterPaneComponent`.
81374
+ * Get/Sets the `maxWidth` properties of the current pane.
81375
+ */
81376
+ this.maxWidth = '100%';
81377
+ /**
81378
+ * @hidden @internal
81379
+ * Gets/Sets the `minHeight` properties of the current pane.
81380
+ */
81381
+ this.minHeight = '0';
81382
+ /**
81383
+ * @hidden @internal
81384
+ * Gets/Sets the `maxHeight` properties of the current `IgxSplitterPaneComponent`.
81336
81385
  */
81337
81386
  this.maxHeight = '100%';
81338
81387
  this._size = 'auto';
81339
81388
  this._collapsed = false;
81340
81389
  }
81390
+ /**
81391
+ * Gets/Sets the minimum allowed size of the current pane.
81392
+ *
81393
+ * @example
81394
+ * ```html
81395
+ * <igx-splitter>
81396
+ * <igx-splitter-pane [minSize]='minSize'>...</igx-splitter-pane>
81397
+ * </igx-splitter>
81398
+ * ```
81399
+ */
81400
+ get minSize() {
81401
+ return this._minSize;
81402
+ }
81403
+ ;
81404
+ set minSize(value) {
81405
+ this._minSize = value;
81406
+ if (this.owner) {
81407
+ this.owner.panes.notifyOnChanges();
81408
+ }
81409
+ }
81410
+ /**
81411
+ * Gets/Set the maximum allowed size of the current pane.
81412
+ *
81413
+ * @example
81414
+ * ```html
81415
+ * <igx-splitter>
81416
+ * <igx-splitter-pane [maxSize]='maxSize'>...</igx-splitter-pane>
81417
+ * </igx-splitter>
81418
+ * ```
81419
+ */
81420
+ get maxSize() {
81421
+ return this._maxSize;
81422
+ }
81423
+ ;
81424
+ set maxSize(value) {
81425
+ this._maxSize = value;
81426
+ if (this.owner) {
81427
+ this.owner.panes.notifyOnChanges();
81428
+ }
81429
+ }
81341
81430
  /**
81342
81431
  * Gets/Sets the size of the current pane.
81343
81432
  * * @example
@@ -81433,7 +81522,7 @@ class IgxSplitterPaneComponent {
81433
81522
  }
81434
81523
  }
81435
81524
  IgxSplitterPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: IgxSplitterPaneComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
81436
- IgxSplitterPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: IgxSplitterPaneComponent, selector: "igx-splitter-pane", inputs: { minSize: "minSize", maxSize: "maxSize", resizable: "resizable", size: "size", collapsed: "collapsed" }, outputs: { collapsedChange: "collapsedChange" }, host: { properties: { "style.display": "this.display", "style.order": "this.order", "style.overflow": "this.overflow", "style.min-height": "this.minHeight", "style.min-width": "this.minHeight", "style.max-height": "this.maxHeight", "style.max-width": "this.maxHeight", "style.flex": "this.flex" } }, ngImport: i0, template: "<ng-content></ng-content>" });
81525
+ IgxSplitterPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: IgxSplitterPaneComponent, selector: "igx-splitter-pane", inputs: { minSize: "minSize", maxSize: "maxSize", resizable: "resizable", size: "size", collapsed: "collapsed" }, outputs: { collapsedChange: "collapsedChange" }, host: { properties: { "style.display": "this.display", "style.order": "this.order", "style.overflow": "this.overflow", "style.min-width": "this.minWidth", "style.max-width": "this.maxWidth", "style.min-height": "this.minHeight", "style.max-height": "this.maxHeight", "style.flex": "this.flex" } }, ngImport: i0, template: "<ng-content></ng-content>" });
81437
81526
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: IgxSplitterPaneComponent, decorators: [{
81438
81527
  type: Component,
81439
81528
  args: [{ selector: 'igx-splitter-pane', template: "<ng-content></ng-content>" }]
@@ -81454,18 +81543,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
81454
81543
  }], overflow: [{
81455
81544
  type: HostBinding,
81456
81545
  args: ['style.overflow']
81546
+ }], minWidth: [{
81547
+ type: HostBinding,
81548
+ args: ['style.min-width']
81549
+ }], maxWidth: [{
81550
+ type: HostBinding,
81551
+ args: ['style.max-width']
81457
81552
  }], minHeight: [{
81458
81553
  type: HostBinding,
81459
81554
  args: ['style.min-height']
81460
- }, {
81461
- type: HostBinding,
81462
- args: ['style.min-width']
81463
81555
  }], maxHeight: [{
81464
81556
  type: HostBinding,
81465
81557
  args: ['style.max-height']
81466
- }, {
81467
- type: HostBinding,
81468
- args: ['style.max-width']
81469
81558
  }], size: [{
81470
81559
  type: Input
81471
81560
  }], flex: [{
@@ -81582,8 +81671,10 @@ class IgxSplitterComponent {
81582
81671
  return this._type;
81583
81672
  }
81584
81673
  set type(value) {
81674
+ var _a;
81585
81675
  this._type = value;
81586
81676
  this.resetPaneSizes();
81677
+ (_a = this.panes) === null || _a === void 0 ? void 0 : _a.notifyOnChanges();
81587
81678
  }
81588
81679
  /**
81589
81680
  * @hidden @internal
@@ -81688,7 +81779,18 @@ class IgxSplitterComponent {
81688
81779
  * This method inits panes with properties.
81689
81780
  */
81690
81781
  initPanes() {
81691
- this.panes.forEach(pane => pane.owner = this);
81782
+ this.panes.forEach(pane => {
81783
+ var _a, _b, _c, _d;
81784
+ pane.owner = this;
81785
+ if (this.type === SplitterType.Horizontal) {
81786
+ pane.minWidth = (_a = pane.minSize) !== null && _a !== void 0 ? _a : '0';
81787
+ pane.maxWidth = (_b = pane.maxSize) !== null && _b !== void 0 ? _b : '100%';
81788
+ }
81789
+ else {
81790
+ pane.minHeight = (_c = pane.minSize) !== null && _c !== void 0 ? _c : '0';
81791
+ pane.maxHeight = (_d = pane.maxSize) !== null && _d !== void 0 ? _d : '100%';
81792
+ }
81793
+ });
81692
81794
  this.assignFlexOrder();
81693
81795
  if (this.panes.filter(x => x.collapsed).length > 0) {
81694
81796
  // if any panes are collapsed, reset sizes.
@@ -81702,7 +81804,13 @@ class IgxSplitterComponent {
81702
81804
  resetPaneSizes() {
81703
81805
  if (this.panes) {
81704
81806
  // if type is changed runtime, should reset sizes.
81705
- this.panes.forEach(x => x.size = 'auto');
81807
+ this.panes.forEach(x => {
81808
+ x.size = 'auto';
81809
+ x.minWidth = '0';
81810
+ x.maxWidth = '100%';
81811
+ x.minHeight = '0';
81812
+ x.maxHeight = '100%';
81813
+ });
81706
81814
  }
81707
81815
  }
81708
81816
  /**
@@ -86163,6 +86271,17 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
86163
86271
  this.onDensityChanged.emit(densityChangedArgs);
86164
86272
  }
86165
86273
  }
86274
+ /**
86275
+ * @hidden @internal
86276
+ */
86277
+ get minColumnWidth() {
86278
+ if (this.superCompactMode) {
86279
+ return MINIMUM_COLUMN_WIDTH_SUPER_COMPACT;
86280
+ }
86281
+ else {
86282
+ return MINIMUM_COLUMN_WIDTH;
86283
+ }
86284
+ }
86166
86285
  get pivotKeys() {
86167
86286
  return this.pivotConfiguration.pivotKeys || DEFAULT_PIVOT_KEYS;
86168
86287
  }
@@ -86442,7 +86561,7 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
86442
86561
  */
86443
86562
  ngAfterContentInit() {
86444
86563
  // ignore any user defined columns and auto-generate based on pivot config.
86445
- this.columnList.reset([]);
86564
+ this.updateColumns([]);
86446
86565
  Promise.resolve().then(() => {
86447
86566
  this.setupColumns();
86448
86567
  });
@@ -87320,8 +87439,8 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
87320
87439
  }
87321
87440
  }
87322
87441
  });
87442
+ this.updateColumns(columns);
87323
87443
  this.reflow();
87324
- this.columnList.reset(columns);
87325
87444
  if (data && data.length > 0) {
87326
87445
  this.shouldGenerate = false;
87327
87446
  }
@@ -87373,7 +87492,6 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
87373
87492
  ref.instance.header = value.displayName;
87374
87493
  ref.instance.field = value.member;
87375
87494
  ref.instance.parent = parent;
87376
- ref.instance.width = MINIMUM_COLUMN_WIDTH + 'px';
87377
87495
  ref.instance.sortable = true;
87378
87496
  ref.instance.dataType = value.dataType || this.resolveDataTypes(data[0][value.member]);
87379
87497
  ref.instance.formatter = value.formatter;
@@ -87453,7 +87571,9 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
87453
87571
  ref.instance.header = parent != null ? key.split(parent.header + this.pivotKeys.columnDimensionSeparator)[1] : key;
87454
87572
  ref.instance.field = key;
87455
87573
  ref.instance.parent = parent;
87456
- ref.instance.width = this.resolveColumnDimensionWidth(value.dimension);
87574
+ if (value.dimension.width) {
87575
+ ref.instance.width = value.dimension.width;
87576
+ }
87457
87577
  const valueDefinition = this.values[0];
87458
87578
  ref.instance.dataType = (valueDefinition === null || valueDefinition === void 0 ? void 0 : valueDefinition.dataType) || this.resolveDataTypes(data[0][valueDefinition === null || valueDefinition === void 0 ? void 0 : valueDefinition.member]);
87459
87579
  ref.instance.formatter = valueDefinition === null || valueDefinition === void 0 ? void 0 : valueDefinition.formatter;
@@ -87465,20 +87585,21 @@ class IgxPivotGridComponent extends IgxGridBaseDirective {
87465
87585
  if (dim.width) {
87466
87586
  return dim.width;
87467
87587
  }
87468
- return this.superCompactMode ? MINIMUM_COLUMN_WIDTH_SUPER_COMPACT + 'px' : MINIMUM_COLUMN_WIDTH + 'px';
87588
+ return this.minColumnWidth + 'px';
87469
87589
  }
87470
87590
  getMeasureChildren(colFactory, data, parent, hidden, parentWidth) {
87471
87591
  const cols = [];
87472
87592
  const count = this.values.length;
87473
- const width = parentWidth ? parseInt(parentWidth, 10) / count :
87474
- this.superCompactMode ? MINIMUM_COLUMN_WIDTH_SUPER_COMPACT : MINIMUM_COLUMN_WIDTH;
87593
+ const childWidth = parseInt(parentWidth, 10) / count;
87475
87594
  const isPercent = parentWidth && parentWidth.indexOf('%') !== -1;
87476
87595
  this.values.forEach(val => {
87477
87596
  const ref = colFactory.create(this.viewRef.injector);
87478
87597
  ref.instance.header = val.displayName || val.member;
87479
87598
  ref.instance.field = parent.field + this.pivotKeys.columnDimensionSeparator + val.member;
87480
87599
  ref.instance.parent = parent;
87481
- ref.instance.width = isPercent ? width + '%' : width + 'px';
87600
+ if (parentWidth) {
87601
+ ref.instance.width = isPercent ? childWidth + '%' : childWidth + 'px';
87602
+ }
87482
87603
  ref.instance.hidden = hidden;
87483
87604
  ref.instance.sortable = true;
87484
87605
  ref.instance.dataType = val.dataType || this.resolveDataTypes(data[0][val.member]);