igniteui-angular 19.1.6 → 19.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.
@@ -17261,7 +17261,7 @@ class IgxGridForOfDirective extends IgxForOfDirective {
17261
17261
  changes.forEachItem((item) => {
17262
17262
  if (item.previousIndex !== null &&
17263
17263
  (numRemovedItems < 2 || !identityChanges.length || identityChanges[item.currentIndex])
17264
- && this.igxForScrollOrientation !== "horizontal") {
17264
+ && this.igxForScrollOrientation !== "horizontal" && this.individualSizeCache.length > 0) {
17265
17265
  // Reuse cache on those who have previousIndex.
17266
17266
  // When there are more than one removed items currently the changes are not readable so ones with identity change
17267
17267
  // should be racalculated.
@@ -51567,6 +51567,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.6", ngImpor
51567
51567
  type: Input
51568
51568
  }] } });
51569
51569
 
51570
+ /**
51571
+ * Use the function to get a random UUID string when secure context is not guaranteed making crypto.randomUUID unavailable.
51572
+ * @returns A random UUID string.
51573
+ */
51574
+ function getUUID() {
51575
+ if (typeof crypto.randomUUID === 'function') {
51576
+ return crypto.randomUUID();
51577
+ }
51578
+ // Secure fallback using crypto.getRandomValues()
51579
+ const bytes = new Uint8Array(16);
51580
+ crypto.getRandomValues(bytes);
51581
+ // Set version (4) and variant (RFC 4122)
51582
+ bytes[6] = (bytes[6] & 0x0f) | 0x40; // Version 4
51583
+ bytes[8] = (bytes[8] & 0x3f) | 0x80; // Variant 1
51584
+ const a = [...bytes].map((b) => b.toString(16).padStart(2, '0')).join('');
51585
+ return `${a.slice(0, 8)}-${a.slice(8, 12)}-${a.slice(12, 16)}-${a.slice(16, 20)}-${a.slice(20)}`;
51586
+ }
51587
+
51570
51588
  /**
51571
51589
  * @hidden @internal
51572
51590
  */
@@ -51584,7 +51602,7 @@ class ExpressionUI {
51584
51602
  this.isSelected = false;
51585
51603
  this.isVisible = true;
51586
51604
  // Use IDs to identify expressions clearly and use to track them in template @for cycles.
51587
- this.expressionId = crypto.randomUUID();
51605
+ this.expressionId = getUUID();
51588
51606
  }
51589
51607
  }
51590
51608
  /**
@@ -66377,7 +66395,7 @@ class IgxGridBaseDirective {
66377
66395
  const primaryColumn = this._columns.find(col => col.field === this.primaryKey);
66378
66396
  const idType = this.data.length ?
66379
66397
  this.resolveDataTypes(this.data[0][this.primaryKey]) : primaryColumn ? primaryColumn.dataType : 'string';
66380
- return idType === 'string' ? crypto.randomUUID() : FAKE_ROW_ID--;
66398
+ return idType === 'string' ? getUUID() : FAKE_ROW_ID--;
66381
66399
  }
66382
66400
  /**
66383
66401
  * @hidden
@@ -85862,7 +85880,7 @@ class IgxGridHierarchicalPipe {
85862
85880
  childGridsData[childKey] = childData;
85863
85881
  });
85864
85882
  if (grid.gridAPI.get_row_expansion_state(v)) {
85865
- result.push({ rowID: primaryKey ? v[primaryKey] : v, childGridsData });
85883
+ result.push({ rowID: primaryKey ? v[primaryKey] : v, childGridsData, parentRowData: v });
85866
85884
  }
85867
85885
  });
85868
85886
  return result;
@@ -86215,7 +86233,8 @@ class IgxChildGridRowComponent {
86215
86233
  this.layout.gridCreated.emit({
86216
86234
  owner: this.layout,
86217
86235
  parentID: this.data.rowID,
86218
- grid: this.hGrid
86236
+ grid: this.hGrid,
86237
+ parentRowData: this.data.parentRowData,
86219
86238
  });
86220
86239
  }
86221
86240
  /**
@@ -86230,7 +86249,8 @@ class IgxChildGridRowComponent {
86230
86249
  this.layout.gridInitialized.emit({
86231
86250
  owner: this.layout,
86232
86251
  parentID: this.data.rowID,
86233
- grid: this.hGrid
86252
+ grid: this.hGrid,
86253
+ parentRowData: this.data.parentRowData,
86234
86254
  });
86235
86255
  this.hGrid.cdr.detectChanges();
86236
86256
  }