igniteui-angular 21.2.0-rc.1 → 21.2.0-rc.3

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.
@@ -5150,7 +5150,9 @@ class IgxGridForOfDirective extends IgxForOfDirective {
5150
5150
  return true;
5151
5151
  }
5152
5152
  ngOnInit() {
5153
- this.syncService.setMaster(this);
5153
+ if (!this.igxGridForOfUniqueSizeCache) {
5154
+ this.syncService.setMaster(this);
5155
+ }
5154
5156
  super.ngOnInit();
5155
5157
  this.removeScrollEventListeners();
5156
5158
  const destructor = takeUntil(this.destroy$);
@@ -5159,7 +5161,9 @@ class IgxGridForOfDirective extends IgxForOfDirective {
5159
5161
  }
5160
5162
  ngOnChanges(changes) {
5161
5163
  const forOf = 'igxGridForOf';
5162
- this.syncService.setMaster(this);
5164
+ if (!this.igxGridForOfUniqueSizeCache) {
5165
+ this.syncService.setMaster(this);
5166
+ }
5163
5167
  if (forOf in changes) {
5164
5168
  const value = changes[forOf].currentValue;
5165
5169
  if (!this._differ && value) {
@@ -5171,9 +5175,9 @@ class IgxGridForOfDirective extends IgxForOfDirective {
5171
5175
  NgFor only supports binding to Iterables such as Arrays.`);
5172
5176
  }
5173
5177
  }
5174
- if (this.igxForScrollOrientation === 'horizontal') {
5178
+ if (this.igxForScrollOrientation === 'horizontal' && !this.igxGridForOfUniqueSizeCache) {
5175
5179
  // in case collection has changes, reset sync service
5176
- this.syncService.setMaster(this, this.igxGridForOfUniqueSizeCache);
5180
+ this.syncService.setMaster(this);
5177
5181
  }
5178
5182
  }
5179
5183
  const defaultItemSize = 'igxForItemSize';
@@ -5214,10 +5218,13 @@ class IgxGridForOfDirective extends IgxForOfDirective {
5214
5218
  (e.g. because of filtering); if all columns are hidden, rows are
5215
5219
  still rendered empty, so we should not reset master */
5216
5220
  if (!this.igxForOf.length &&
5217
- this.igxForScrollOrientation === 'vertical') {
5221
+ this.igxForScrollOrientation === 'vertical' &&
5222
+ !this.igxGridForOfUniqueSizeCache) {
5218
5223
  this.syncService.resetMaster();
5219
5224
  }
5220
- this.syncService.setMaster(this);
5225
+ if (!this.igxGridForOfUniqueSizeCache) {
5226
+ this.syncService.setMaster(this);
5227
+ }
5221
5228
  this.igxForContainerSize = args.containerSize;
5222
5229
  const sizeDiff = this._updateSizeCache(changes);
5223
5230
  this._applyChanges();
@@ -5288,7 +5295,7 @@ class IgxGridForOfDirective extends IgxForOfDirective {
5288
5295
  return size;
5289
5296
  }
5290
5297
  initSizesCache(items) {
5291
- if (!this.syncService.isMaster(this) && this.igxForScrollOrientation === 'horizontal') {
5298
+ if (!this.igxGridForOfUniqueSizeCache && !this.syncService.isMaster(this) && this.igxForScrollOrientation === 'horizontal') {
5292
5299
  const masterSizesCache = this.syncService.sizesCache(this.igxForScrollOrientation);
5293
5300
  return masterSizesCache[masterSizesCache.length - 1];
5294
5301
  }
@@ -5416,7 +5423,7 @@ class IgxGridForOfDirective extends IgxForOfDirective {
5416
5423
  */
5417
5424
  _calcMaxChunkSize() {
5418
5425
  if (this.igxForScrollOrientation === 'horizontal') {
5419
- if (this.syncService.isMaster(this)) {
5426
+ if (this.igxGridForOfUniqueSizeCache || this.syncService.isMaster(this)) {
5420
5427
  return super._calcMaxChunkSize();
5421
5428
  }
5422
5429
  return this.syncService.chunkSize(this.igxForScrollOrientation);