igniteui-angular 20.1.19 → 20.1.21

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.
@@ -41229,7 +41229,7 @@ class IgxSimpleComboComponent extends IgxComboBaseDirective {
41229
41229
  this.cdr.markForCheck();
41230
41230
  this._displayValue = this.createDisplayText(super.selection, oldSelection);
41231
41231
  this._value = this.valueKey ? super.selection.map(item => item[this.valueKey]) : super.selection;
41232
- this.filterValue = this._displayValue?.toString() || '';
41232
+ this.searchValue = this.filterValue = this._displayValue?.toString() || '';
41233
41233
  }
41234
41234
  /** @hidden @internal */
41235
41235
  ngAfterViewInit() {
@@ -42303,7 +42303,7 @@ class IgxDatePickerComponent extends PickerBaseDirective {
42303
42303
  return Object.assign({}, this._dropDownOverlaySettings, this.overlaySettings);
42304
42304
  }
42305
42305
  get inputGroupElement() {
42306
- return this.inputGroup?.element.nativeElement;
42306
+ return this.inputGroup?.element.nativeElement.querySelector('.igx-input-group__bundle');
42307
42307
  }
42308
42308
  get dateValue() {
42309
42309
  return this._dateValue;
@@ -49627,6 +49627,9 @@ class IgxTimePickerComponent extends PickerBaseDirective {
49627
49627
  get dropDownOverlaySettings() {
49628
49628
  return Object.assign({}, this._defaultDropDownOverlaySettings, this.overlaySettings);
49629
49629
  }
49630
+ get inputGroupElement() {
49631
+ return this.inputGroup?.element.nativeElement.querySelector('.igx-input-group__bundle');
49632
+ }
49630
49633
  /**
49631
49634
  * The currently selected value / time from the drop-down/dialog
49632
49635
  *
@@ -49828,7 +49831,6 @@ class IgxTimePickerComponent extends PickerBaseDirective {
49828
49831
  outlet: this.outlet
49829
49832
  };
49830
49833
  this._defaultDropDownOverlaySettings = {
49831
- target: this.element.nativeElement,
49832
49834
  modal: false,
49833
49835
  closeOnOutsideClick: true,
49834
49836
  scrollStrategy: new AbsoluteScrollStrategy(),
@@ -49976,6 +49978,9 @@ class IgxTimePickerComponent extends PickerBaseDirective {
49976
49978
  const overlaySettings = Object.assign({}, this.isDropdown
49977
49979
  ? this.dropDownOverlaySettings
49978
49980
  : this.dialogOverlaySettings, settings);
49981
+ if (this.isDropdown && this.inputGroupElement) {
49982
+ overlaySettings.target = this.inputGroupElement;
49983
+ }
49979
49984
  this.toggleRef.open(overlaySettings);
49980
49985
  }
49981
49986
  /**
@@ -53402,6 +53407,7 @@ class IgxExcelStyleDefaultExpressionComponent {
53402
53407
  onConditionsChanged(eventArgs) {
53403
53408
  const value = eventArgs.newSelection.value;
53404
53409
  this.expressionUI.expression.condition = this.getCondition(value);
53410
+ this.expressionUI.expression.conditionName = value;
53405
53411
  this.focus();
53406
53412
  }
53407
53413
  getCondition(value) {
@@ -61896,6 +61902,7 @@ class IgxGridFilteringRowComponent {
61896
61902
  onConditionsChanged(eventArgs) {
61897
61903
  const value = eventArgs.newSelection.value;
61898
61904
  this.expression.condition = this.getCondition(value);
61905
+ this.expression.conditionName = value;
61899
61906
  if (this.expression.condition.isUnary) {
61900
61907
  // update grid's filtering on the next cycle to ensure the drop-down is closed
61901
61908
  // if the drop-down is not closed this event handler will be invoked multiple times
@@ -71328,7 +71335,13 @@ class IgxGridBaseDirective {
71328
71335
  const possibleWidth = this.getPossibleColumnWidth();
71329
71336
  if (possibleWidth === "0px") {
71330
71337
  // all columns - hidden
71331
- this._columnWidth = possibleWidth;
71338
+ // Do not update _columnWidth to preserve valid column widths for when columns are unhidden
71339
+ // Only update column defaultWidth if _columnWidth is already set and not '0px'
71340
+ if (this._columnWidth && this._columnWidth !== '0px') {
71341
+ this._updateColumnDefaultWidths();
71342
+ }
71343
+ this.resetCachedWidths();
71344
+ return;
71332
71345
  }
71333
71346
  else if (this.width !== null) {
71334
71347
  this._columnWidth = Math.max(parseFloat(possibleWidth), this.minColumnWidth) + 'px';
@@ -71337,8 +71350,12 @@ class IgxGridBaseDirective {
71337
71350
  this._columnWidth = this.minColumnWidth + 'px';
71338
71351
  }
71339
71352
  }
71353
+ this._updateColumnDefaultWidths();
71354
+ this.resetCachedWidths();
71355
+ }
71356
+ _updateColumnDefaultWidths() {
71340
71357
  this._columns.forEach((column) => {
71341
- if (this.hasColumnLayouts && parseFloat(this._columnWidth)) {
71358
+ if (this.hasColumnLayouts) {
71342
71359
  const columnWidthCombined = parseFloat(this._columnWidth) * (column.colEnd ? column.colEnd - column.colStart : 1);
71343
71360
  column.defaultWidth = columnWidthCombined + 'px';
71344
71361
  }
@@ -71347,7 +71364,6 @@ class IgxGridBaseDirective {
71347
71364
  column.resetCaches();
71348
71365
  }
71349
71366
  });
71350
- this.resetCachedWidths();
71351
71367
  }
71352
71368
  resetNotifyChanges() {
71353
71369
  this._cdrRequestRepaint = false;
@@ -72521,7 +72537,12 @@ class IgxGridBaseDirective {
72521
72537
  }
72522
72538
  updateDefaultRowHeight() {
72523
72539
  if (this.dataRowList.length > 0 && this.dataRowList.first.cells && this.dataRowList.first.cells.length > 0) {
72524
- const height = parseFloat(this.document.defaultView.getComputedStyle(this.dataRowList.first.cells.first.nativeElement)?.getPropertyValue('height'));
72540
+ const targetCell = this.dataRowList.first.cells.toArray().find((x) => !x.isMerged);
72541
+ if (!targetCell) {
72542
+ this._shouldRecalcRowHeight = true;
72543
+ return;
72544
+ }
72545
+ const height = parseFloat(this.document.defaultView.getComputedStyle(targetCell.nativeElement)?.getPropertyValue('height'));
72525
72546
  if (height) {
72526
72547
  this._defaultRowHeight = height;
72527
72548
  }
@@ -74335,6 +74356,9 @@ class IgxGridMRLNavigationService extends IgxGridNavigationService {
74335
74356
  }
74336
74357
  const nextLayout = this.layout(colIndex);
74337
74358
  const newLayout = key.includes('up') || key.includes('down') ? { rowStart: nextLayout.rowStart } : { colStart: nextLayout.colStart };
74359
+ if (!this.activeNode.layout) {
74360
+ this.activeNode.layout = this.layout(this.activeNode.column || 0);
74361
+ }
74338
74362
  Object.assign(this.activeNode.layout, newLayout, { rowEnd: nextLayout.rowEnd });
74339
74363
  if (ctrl && (key === 'home' || key === 'end')) {
74340
74364
  this.activeNode.layout = nextLayout;
@@ -82523,7 +82547,7 @@ class IgxGridStateBaseDirective {
82523
82547
  dataType: c.dataType,
82524
82548
  hasSummary: c.hasSummary,
82525
82549
  field: c.field,
82526
- width: c.width,
82550
+ width: (c.widthSetByUser || context.currGrid.columnWidthSetByUser) ? c.width : undefined,
82527
82551
  header: c.header,
82528
82552
  resizable: c.resizable,
82529
82553
  searchable: c.searchable,
@@ -82546,6 +82570,17 @@ class IgxGridStateBaseDirective {
82546
82570
  },
82547
82571
  restoreFeatureState: (context, state) => {
82548
82572
  const newColumns = [];
82573
+ // Helper to restore column state without auto-persisting widths
82574
+ const restoreColumnState = (column, colState) => {
82575
+ // Extract width to handle it separately
82576
+ const width = colState.width;
82577
+ delete colState.width;
82578
+ Object.assign(column, colState);
82579
+ // Only restore width if it was explicitly set by the user (not undefined)
82580
+ if (width !== undefined) {
82581
+ column.width = width;
82582
+ }
82583
+ };
82549
82584
  state.forEach((colState) => {
82550
82585
  const hasColumnGroup = colState.columnGroup;
82551
82586
  const hasColumnLayouts = colState.columnLayout;
@@ -82563,7 +82598,7 @@ class IgxGridStateBaseDirective {
82563
82598
  else {
82564
82599
  ref1.children.reset([]);
82565
82600
  }
82566
- Object.assign(ref1, colState);
82601
+ restoreColumnState(ref1, colState);
82567
82602
  ref1.grid = context.currGrid;
82568
82603
  if (colState.parent || colState.parentKey) {
82569
82604
  const columnGroup = newColumns.find(e => e.columnGroup && (e.key ? e.key === colState.parentKey : e.header === ref1.parent));
@@ -82580,7 +82615,7 @@ class IgxGridStateBaseDirective {
82580
82615
  ref = component.instance;
82581
82616
  component.changeDetectorRef.detectChanges();
82582
82617
  }
82583
- Object.assign(ref, colState);
82618
+ restoreColumnState(ref, colState);
82584
82619
  ref.grid = context.currGrid;
82585
82620
  if (colState.parent || colState.parentKey) {
82586
82621
  const columnGroup = newColumns.find(e => e.columnGroup && (e.key ? e.key === colState.parentKey : e.header === ref.parent));
@@ -97897,10 +97932,14 @@ class IgxDateRangePickerComponent extends PickerBaseDirective {
97897
97932
  configPositionStrategy() {
97898
97933
  this._positionSettings = {
97899
97934
  openAnimation: fadeIn,
97900
- closeAnimation: fadeOut
97935
+ closeAnimation: fadeOut,
97936
+ offset: 1
97901
97937
  };
97902
97938
  this._dropDownOverlaySettings.positionStrategy = new AutoPositionStrategy(this._positionSettings);
97903
- this._dropDownOverlaySettings.target = this.element.nativeElement;
97939
+ const bundle = this.hasProjectedInputs
97940
+ ? this.projectedInputs.first?.nativeElement.querySelector('.igx-input-group__bundle')
97941
+ : this.element.nativeElement.querySelector('.igx-input-group__bundle');
97942
+ this._dropDownOverlaySettings.target = bundle || this.element.nativeElement;
97904
97943
  }
97905
97944
  configOverlaySettings() {
97906
97945
  if (this.overlaySettings !== null) {