From 22726f1cf2cb01ff54347f32b8a77750452c00c4 Mon Sep 17 00:00:00 2001 From: VDyulgerov Date: Mon, 7 Mar 2022 14:09:06 +0200 Subject: [PATCH 1/3] fix(grid): add case for dateTime --- .../igniteui-angular/src/lib/grids/state.directive.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/projects/igniteui-angular/src/lib/grids/state.directive.ts b/projects/igniteui-angular/src/lib/grids/state.directive.ts index 6f227bc3d64..74935e9e6ff 100644 --- a/projects/igniteui-angular/src/lib/grids/state.directive.ts +++ b/projects/igniteui-angular/src/lib/grids/state.directive.ts @@ -6,8 +6,10 @@ import { IgxColumnGroupComponent } from './columns/column-group.component'; import { IGroupingExpression } from '../data-operations/grouping-expression.interface'; import { IPagingState } from '../data-operations/paging-state.interface'; import { GridColumnDataType } from '../data-operations/data-util'; -import { IgxBooleanFilteringOperand, IgxNumberFilteringOperand, IgxDateFilteringOperand, - IgxStringFilteringOperand, IFilteringOperation} from '../data-operations/filtering-condition'; +import { + IgxBooleanFilteringOperand, IgxNumberFilteringOperand, IgxDateFilteringOperand, + IgxStringFilteringOperand, IFilteringOperation, IgxDateTimeFilteringOperand +} from '../data-operations/filtering-condition'; import { IGroupByExpandState } from '../data-operations/groupby-expand-state.interface'; import { IGroupingState } from '../data-operations/groupby-state.interface'; import { IgxGridComponent } from './grid/grid.component'; @@ -585,6 +587,9 @@ export class IgxGridStateDirective { case GridColumnDataType.Date: filters = IgxDateFilteringOperand.instance(); break; + case GridColumnDataType.DateTime: + filters = IgxDateTimeFilteringOperand.instance(); + break; case GridColumnDataType.String: default: filters = IgxStringFilteringOperand.instance(); From 1616ecd70afe7eab06bcb1a15d6c6627035b50ca Mon Sep 17 00:00:00 2001 From: VDyulgerov Date: Thu, 10 Mar 2022 09:44:53 +0200 Subject: [PATCH 2/3] fix(gridToolbarHiding): fix columnsAreaMaxHeight input property --- .../src/lib/grids/grid/grid-toolbar.spec.ts | 23 +++++++++++++++++-- .../lib/grids/toolbar/grid-toolbar.base.ts | 5 +++- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/projects/igniteui-angular/src/lib/grids/grid/grid-toolbar.spec.ts b/projects/igniteui-angular/src/lib/grids/grid/grid-toolbar.spec.ts index 8763e6315ca..14f45ee8715 100644 --- a/projects/igniteui-angular/src/lib/grids/grid/grid-toolbar.spec.ts +++ b/projects/igniteui-angular/src/lib/grids/grid/grid-toolbar.spec.ts @@ -1,10 +1,11 @@ import { Component, ViewChild } from '@angular/core'; -import { TestBed, fakeAsync, ComponentFixture } from '@angular/core/testing'; +import { TestBed, fakeAsync, ComponentFixture, tick } from '@angular/core/testing'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { AbsoluteScrollStrategy, GlobalPositionStrategy, IgxCsvExporterService, IgxExcelExporterService } from '../../services/public_api'; import { IgxGridModule } from './public_api'; import { configureTestSuite } from '../../test-utils/configure-suite'; - +import { GridFunctions } from "../../test-utils/grid-functions.spec"; +import { By } from "@angular/platform-browser"; const TOOLBAR_TAG = 'igx-grid-toolbar'; const TOOLBAR_TITLE_TAG = 'igx-grid-toolbar-title'; @@ -170,6 +171,24 @@ describe('IgxGrid - Grid Toolbar #grid - ', () => { expect(defaultFiltSettings).not.toEqual(instance.advancedFiltAction.overlaySettings); expect(defaultExportSettings).not.toEqual(instance.exporterAction.overlaySettings); }); + + it('should initialize input property columnsAreaMaxHeight properly', fakeAsync(() => { + expect(instance.pinningAction.columnsAreaMaxHeight).toEqual('100%'); + + instance.pinningAction.columnsAreaMaxHeight = '10px'; + fixture.detectChanges(); + + expect(instance.pinningAction.columnsAreaMaxHeight).toEqual('10px'); + + const pinningButton = GridFunctions.getColumnPinningButton(fixture); + pinningButton.click(); + tick(); + fixture.detectChanges() + const element = fixture.debugElement.query(By.css('.igx-column-actions__columns')); + expect(element.attributes.style).toBe('max-height: 10px;'); + + expect(instance.pinningAction.columnsAreaMaxHeight).toEqual('10px'); + })); }); }); diff --git a/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.base.ts b/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.base.ts index d63f2ab75a6..93db8e95344 100644 --- a/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.base.ts +++ b/projects/igniteui-angular/src/lib/grids/toolbar/grid-toolbar.base.ts @@ -116,7 +116,10 @@ export abstract class BaseToolbarDirective implements OnDestroy { if (actions) { this._setupListeners(toggleRef); const setHeight = () => - actions.columnsAreaMaxHeight = this.columnListHeight ?? `${Math.max(this.grid.calcHeight * 0.5, 200)}px`; + actions.columnsAreaMaxHeight = actions.columnsAreaMaxHeight !== '100%' + ? actions.columnsAreaMaxHeight : + this.columnListHeight ?? + `${Math.max(this.grid.calcHeight * 0.5, 200)}px`; toggleRef.opening.pipe(first()).subscribe(setHeight); } toggleRef.toggle({ ...this.overlaySettings, ...{ target: anchorElement, outlet: this.grid.outlet, From e70a1b8b05058ba7ca414ed87b17eacf95416e25 Mon Sep 17 00:00:00 2001 From: VDyulgerov Date: Mon, 14 Mar 2022 13:50:41 +0200 Subject: [PATCH 3/3] fix(grid): prevent cell edit exit double emit --- .../igniteui-angular/src/lib/grids/common/crud.service.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/projects/igniteui-angular/src/lib/grids/common/crud.service.ts b/projects/igniteui-angular/src/lib/grids/common/crud.service.ts index 3b7664dbc8d..884a8e81ac3 100644 --- a/projects/igniteui-angular/src/lib/grids/common/crud.service.ts +++ b/projects/igniteui-angular/src/lib/grids/common/crud.service.ts @@ -525,21 +525,18 @@ export class IgxGridCRUDService extends IgxRowAddCrudState { this.grid.tbody.nativeElement.focus(); } } else { - - this.createCell(cell); if (this.rowEditing) { // TODO rowData - if (this.row && !this.sameRow(this.cell?.id?.rowID)) { + if (this.row && !this.sameRow(cell?.cellID?.rowID)) { this.rowEditingBlocked = this.endEdit(true, event); if (this.rowEditingBlocked) { return true; } - // If enters here, @endEdit clears the new reference of the cell edit. - this.createCell(cell); this.rowEditingBlocked = false; this.endRowEdit(); } + this.createCell(cell); const canceled = this.beginRowEdit(event); if (!canceled) { @@ -547,6 +544,7 @@ export class IgxGridCRUDService extends IgxRowAddCrudState { } } else { + this.createCell(cell); this.beginCellEdit(event); } }