igniteui-angular 21.1.6 → 21.1.7

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 (31) hide show
  1. package/fesm2022/igniteui-angular-grids-core.mjs +26 -26
  2. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  3. package/lib/core/styles/components/grid/_grid-theme.scss +1 -0
  4. package/package.json +1 -1
  5. package/styles/igniteui-angular-dark.css +1 -1
  6. package/styles/igniteui-angular.css +1 -1
  7. package/styles/igniteui-bootstrap-dark.css +1 -1
  8. package/styles/igniteui-bootstrap-light.css +1 -1
  9. package/styles/igniteui-dark-green.css +1 -1
  10. package/styles/igniteui-fluent-dark-excel.css +1 -1
  11. package/styles/igniteui-fluent-dark-word.css +1 -1
  12. package/styles/igniteui-fluent-dark.css +1 -1
  13. package/styles/igniteui-fluent-light-excel.css +1 -1
  14. package/styles/igniteui-fluent-light-word.css +1 -1
  15. package/styles/igniteui-fluent-light.css +1 -1
  16. package/styles/igniteui-indigo-dark.css +1 -1
  17. package/styles/igniteui-indigo-light.css +1 -1
  18. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  19. package/styles/maps/igniteui-angular.css.map +1 -1
  20. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  21. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  22. package/styles/maps/igniteui-dark-green.css.map +1 -1
  23. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  24. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  25. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  26. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  27. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  28. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  29. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  30. package/styles/maps/igniteui-indigo-light.css.map +1 -1
  31. package/types/igniteui-angular-grids-core.d.ts +5 -0
@@ -3889,10 +3889,6 @@ class IgxRowDirective {
3889
3889
  }
3890
3890
  const isPinned = this.pinned && !this.disabled;
3891
3891
  const indexInData = this.grid.isRowPinningToTop && !isPinned ? this.index - this.grid.pinnedRecordsCount : this.index;
3892
- if (this.grid._cdrRequests) {
3893
- // recalc size if repaint is requested.
3894
- this.grid.verticalScrollContainer.recalcUpdateSizes();
3895
- }
3896
3892
  const size = this.grid.verticalScrollContainer.getSizeAt(indexInData);
3897
3893
  return size || this.grid.rowHeight;
3898
3894
  }
@@ -15590,10 +15586,11 @@ class IgxGridStateBaseDirective {
15590
15586
  this.FEATURES = {
15591
15587
  sorting: {
15592
15588
  getFeatureState: (context) => {
15593
- const sortingState = context.currGrid.sortingExpressions;
15594
- sortingState.forEach(s => {
15595
- delete s.strategy;
15596
- delete s.owner;
15589
+ const sortingState = context.currGrid.sortingExpressions.map(s => {
15590
+ const copy = { ...s };
15591
+ delete copy.strategy;
15592
+ delete copy.owner;
15593
+ return copy;
15597
15594
  });
15598
15595
  return { sorting: sortingState };
15599
15596
  },
@@ -15605,10 +15602,7 @@ class IgxGridStateBaseDirective {
15605
15602
  getFeatureState: (context) => {
15606
15603
  const filteringState = context.currGrid.filteringExpressionsTree;
15607
15604
  if (filteringState) {
15608
- delete filteringState.owner;
15609
- for (const item of filteringState.filteringOperands) {
15610
- delete item.owner;
15611
- }
15605
+ return { filtering: context.cloneFilteringTree(filteringState) };
15612
15606
  }
15613
15607
  return { filtering: filteringState };
15614
15608
  },
@@ -15620,17 +15614,7 @@ class IgxGridStateBaseDirective {
15620
15614
  advancedFiltering: {
15621
15615
  getFeatureState: (context) => {
15622
15616
  const filteringState = context.currGrid.advancedFilteringExpressionsTree;
15623
- let advancedFiltering;
15624
- if (filteringState) {
15625
- delete filteringState.owner;
15626
- for (const item of filteringState.filteringOperands) {
15627
- delete item.owner;
15628
- }
15629
- advancedFiltering = filteringState;
15630
- }
15631
- else {
15632
- advancedFiltering = {};
15633
- }
15617
+ const advancedFiltering = filteringState ? context.cloneFilteringTree(filteringState) : {};
15634
15618
  return { advancedFiltering };
15635
15619
  },
15636
15620
  restoreFeatureState: (context, state) => {
@@ -15745,9 +15729,10 @@ class IgxGridStateBaseDirective {
15745
15729
  groupBy: {
15746
15730
  getFeatureState: (context) => {
15747
15731
  const grid = context.currGrid;
15748
- const groupingExpressions = grid.groupingExpressions;
15749
- groupingExpressions.forEach(expr => {
15750
- delete expr.strategy;
15732
+ const groupingExpressions = grid.groupingExpressions.map(expr => {
15733
+ const copy = { ...expr };
15734
+ delete copy.strategy;
15735
+ return copy;
15751
15736
  });
15752
15737
  const expansionState = grid.groupingExpansionState;
15753
15738
  const groupsExpanded = grid.groupsExpanded;
@@ -16108,6 +16093,21 @@ class IgxGridStateBaseDirective {
16108
16093
  }
16109
16094
  }
16110
16095
  }
16096
+ /**
16097
+ * Recursively clones a filtering expression tree, stripping the `owner` property
16098
+ * from each cloned node so the live tree is never mutated.
16099
+ */
16100
+ cloneFilteringTree(tree) {
16101
+ const copy = { ...tree };
16102
+ delete copy.owner;
16103
+ copy.filteringOperands = tree.filteringOperands.map(item => {
16104
+ if ('filteringOperands' in item) {
16105
+ return this.cloneFilteringTree(item);
16106
+ }
16107
+ return { ...item };
16108
+ });
16109
+ return copy;
16110
+ }
16111
16111
  /**
16112
16112
  * This method builds a rehydrated IExpressionTree from a provided object.
16113
16113
  */