igniteui-angular 22.2.2 → 22.2.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 (33) hide show
  1. package/fesm2022/igniteui-angular-core.mjs +16 -7
  2. package/fesm2022/igniteui-angular-core.mjs.map +1 -1
  3. package/fesm2022/igniteui-angular-date-picker.mjs +12 -3
  4. package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
  5. package/fesm2022/igniteui-angular-dialog.mjs +1 -1
  6. package/fesm2022/igniteui-angular-dialog.mjs.map +1 -1
  7. package/fesm2022/igniteui-angular-grids-core.mjs +37 -13
  8. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  9. package/fesm2022/igniteui-angular-grids-grid.mjs +2 -2
  10. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  11. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +2 -2
  12. package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
  13. package/fesm2022/igniteui-angular-grids-tree-grid.mjs +4 -4
  14. package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
  15. package/grids/grid/README.md +6 -0
  16. package/lib/core/styles/themes/_scoping.scss +4 -0
  17. package/package.json +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-core.d.ts +8 -5
  32. package/types/igniteui-angular-date-picker.d.ts +2 -0
  33. package/types/igniteui-angular-grids-core.d.ts +11 -1
@@ -447,12 +447,11 @@ class PlatformUtil {
447
447
  * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];
448
448
  *
449
449
  * let size = getNodeSizeViaRange(range, column.cells[0].nativeElement);
450
+ * ```
450
451
  *
451
452
  * @remarks
452
- * The last parameter is useful when the size of the element to measure is modified by a
453
- * parent element that has explicit size. In such cases the calculated size is never lower
454
- * and the function may instead remove the parent size while measuring to get the correct value.
455
- * ```
453
+ * While measuring, the last parameter (usually the node itself) is laid out at its `max-content` width,
454
+ * so neither its explicit width nor a stretching parent affects the result.
456
455
  */
457
456
  getNodeSizeViaRange(range, node, sizeHoldingNode) {
458
457
  let overflow = null;
@@ -465,7 +464,8 @@ class PlatformUtil {
465
464
  if (sizeHoldingNode) {
466
465
  const style = sizeHoldingNode.style;
467
466
  nodeStyles = [style.width, style.minWidth, style.flexBasis];
468
- style.width = '';
467
+ // not '' - a flex or grid parent may stretch the node
468
+ style.width = 'max-content';
469
469
  style.minWidth = '';
470
470
  style.flexBasis = '';
471
471
  }
@@ -1365,7 +1365,7 @@ class NgControlAdapter {
1365
1365
  }
1366
1366
  }
1367
1367
  /**
1368
- * Emits when validity, required, disabled, dirty or pending state changes.
1368
+ * Emits when the value, validity, required, disabled, dirty or pending state changes.
1369
1369
  * Signal Forms `submit()` only marks fields touched, so touched changes count too
1370
1370
  * or the errors would never surface.
1371
1371
  */
@@ -1374,7 +1374,7 @@ class NgControlAdapter {
1374
1374
  return this.watch(() => {
1375
1375
  this.observeErrors();
1376
1376
  return [
1377
- this.ngControl.valid, this.pending, this.required,
1377
+ this.ngControl.value, this.ngControl.valid, this.pending, this.required,
1378
1378
  this.ngControl.disabled, this.ngControl.dirty, this.ngControl.touched
1379
1379
  ];
1380
1380
  });
@@ -6780,12 +6780,21 @@ class IgxOverlayService {
6780
6780
  delete info.event;
6781
6781
  }
6782
6782
  cleanUp(info) {
6783
+ this.hideDynamicComponent(info);
6783
6784
  this.removeWrapper(info);
6784
6785
  this.restoreHook(info);
6785
6786
  this.destroyComponent(info);
6786
6787
  this.unregisterOverlay(info);
6787
6788
  this.releaseResources(info);
6788
6789
  }
6790
+ /**
6791
+ * Hides a dynamically created component before unwrapping it, as Angular may remove its host after `destroyComponent`.
6792
+ */
6793
+ hideDynamicComponent(info) {
6794
+ if (info.componentRef) {
6795
+ info.elementRef.nativeElement.style.display = 'none';
6796
+ }
6797
+ }
6789
6798
  /**
6790
6799
  * Reverses the wrapper insertion performed by `insertWrapper`, restoring the element to its original DOM position.
6791
6800
  */