Skip to content

Commit c0f2e1c

Browse files
committed
refactor(grid): finished main refactoring
1 parent 3f59ea3 commit c0f2e1c

33 files changed

+764
-647
lines changed

projects/igniteui-angular/src/lib/grid-common/api.service.ts

+11-6
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ import { IFilteringExpression, FilteringLogic } from '../data-operations/filteri
55
import { ISortingExpression, SortingDirection } from '../data-operations/sorting-expression.interface';
66
import { IgxGridCellComponent } from './cell.component';
77
import { IgxColumnComponent } from './column.component';
8-
import { IgxRowBaseComponent } from './row-base.component';
8+
import { IgxRowComponent } from './row.component';
99
import { IFilteringOperation, FilteringExpressionsTree, IFilteringExpressionsTree } from '../../public_api';
1010
import { IGridEditEventArgs, IGridComponent } from './grid-interfaces';
1111

1212
/**
1313
*@hidden
1414
*/
1515
@Injectable()
16-
export abstract class IGridAPIService <T extends IGridComponent> {
16+
export class IGridAPIService <T extends IGridComponent> {
1717

1818
public change: Subject<any> = new Subject<any>();
1919
protected state: Map<string, T> = new Map<string, T>();
@@ -106,7 +106,7 @@ export abstract class IGridAPIService <T extends IGridComponent> {
106106
}
107107
}
108108

109-
public get_row_by_key(id: string, rowSelector: any): IgxRowBaseComponent<IGridComponent> {
109+
public get_row_by_key(id: string, rowSelector: any): IgxRowComponent<IGridComponent> {
110110
const primaryKey = this.get(id).primaryKey;
111111
if (primaryKey !== undefined && primaryKey !== null) {
112112
return this.get(id).dataRowList.find((row) => row.rowData[primaryKey] === rowSelector);
@@ -115,7 +115,7 @@ export abstract class IGridAPIService <T extends IGridComponent> {
115115
}
116116
}
117117

118-
public get_row_by_index(id: string, rowIndex: number): IgxRowBaseComponent<IGridComponent> {
118+
public get_row_by_index(id: string, rowIndex: number): IgxRowComponent<IGridComponent> {
119119
return this.get(id).rowList.find((row) => row.index === rowIndex);
120120
}
121121

@@ -347,7 +347,12 @@ export abstract class IGridAPIService <T extends IGridComponent> {
347347
});
348348
}
349349

350-
protected abstract remove_grouping_expression(id: string, fieldName: string);
351-
public abstract refreshSearch(id: string, updateHighlight?: boolean);
350+
protected remove_grouping_expression(id: string, fieldName: string) {
351+
352+
}
353+
354+
public refreshSearch(id: string, updateHighlight?: boolean) {
355+
356+
}
352357

353358
}

projects/igniteui-angular/src/lib/grid/column-pinning.component.ts renamed to projects/igniteui-angular/src/lib/grid-common/column-pinning/column-pinning.component.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11

22
import { CommonModule } from '@angular/common';
3-
import { Directive, Component, EventEmitter, Output, NgModule, ChangeDetectorRef } from '@angular/core';
3+
import { Directive, Component, NgModule, ChangeDetectorRef } from '@angular/core';
44
import { FormsModule } from '@angular/forms';
5-
import { IgxCheckboxModule } from '../checkbox/checkbox.component';
6-
import { ColumnChooserBase } from '../grid-common/column-hiding/column-chooser-base';
7-
import { ColumnChooserItemBase } from '../grid-common/column-hiding/column-chooser-item-base';
8-
import { IgxInputGroupModule } from '../input-group/input-group.component';
5+
import { IgxCheckboxModule } from '../../checkbox/checkbox.component';
6+
import { ColumnChooserBase } from '../column-hiding/column-chooser-base';
7+
import { ColumnChooserItemBase } from '../column-hiding/column-chooser-item-base';
8+
import { IgxInputGroupModule } from '../../input-group/input-group.component';
99

1010
@Directive({
1111
selector: '[igxColumnPinningItem]'

projects/igniteui-angular/src/lib/grid-common/column.component.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ import { DataType } from '../data-operations/data-util';
1717
import { IgxTextHighlightDirective } from '../directives/text-highlight/text-highlight.directive';
1818
import { IGridAPIService } from './api.service';
1919
import { IgxGridCellComponent } from './cell.component';
20-
import { IgxDateSummaryOperand, IgxNumberSummaryOperand, IgxSummaryOperand } from './grid-summary';
21-
import { IgxRowBaseComponent } from './row-base.component';
20+
import { IgxDateSummaryOperand, IgxNumberSummaryOperand, IgxSummaryOperand } from './summaries/grid-summary';
21+
import { IgxRowComponent } from './row.component';
2222
import {
2323
IgxCellEditorTemplateDirective,
2424
IgxCellFooterTemplateDirective,
@@ -599,7 +599,7 @@ export class IgxColumnComponent implements AfterContentInit {
599599
* @memberof IgxColumnComponent
600600
*/
601601
get cells(): IgxGridCellComponent[] {
602-
return this.grid.rowList.filter((row) => row instanceof IgxRowBaseComponent)
602+
return this.grid.rowList.filter((row) => row instanceof IgxRowComponent)
603603
.map((row) => row.cells.filter((cell) => cell.columnIndex === this.index))
604604
.reduce((a, b) => a.concat(b), []);
605605
}

projects/igniteui-angular/src/lib/grid-common/grid-filtering-expression.component.ts renamed to projects/igniteui-angular/src/lib/grid-common/filtering/grid-filtering-expression.component.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ import {
1515
AfterViewInit
1616
} from '@angular/core';
1717
import { Subject } from 'rxjs';
18-
import { DataType } from '../data-operations/data-util';
19-
import { IGridAPIService } from './api.service';
20-
import { IGridComponent } from './grid-interfaces';
21-
import { IFilteringExpression } from '../data-operations/filtering-expression.interface';
22-
import { FilteringExpressionsTree } from '../data-operations/filtering-expressions-tree';
23-
import { IFilteringOperation } from '../data-operations/filtering-condition';
18+
import { DataType } from '../../data-operations/data-util';
19+
import { IGridAPIService } from '../api.service';
20+
import { IGridComponent } from '../grid-interfaces';
21+
import { IFilteringExpression } from '../../data-operations/filtering-expression.interface';
22+
import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
23+
import { IFilteringOperation } from '../../data-operations/filtering-condition';
2424

2525

2626
/**

projects/igniteui-angular/src/lib/grid-common/grid-filtering.component.ts renamed to projects/igniteui-angular/src/lib/grid-common/filtering/grid-filtering.component.ts

+19-16
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,17 @@ import {
1414
ViewChild,
1515
ViewChildren
1616
} from '@angular/core';
17-
import { Subject, Subscription } from 'rxjs';
18-
import { DataType } from '../data-operations/data-util';
19-
import { IgxToggleDirective, IgxOverlayOutletDirective } from '../directives/toggle/toggle.directive';
20-
import { IGridAPIService } from './api.service';
21-
import { IGridComponent } from './grid-interfaces';
22-
import { FilteringExpressionsTree } from '../data-operations/filtering-expressions-tree';
23-
import { IgxButtonGroupComponent } from '../buttonGroup/buttonGroup.component';
17+
import { Subscription } from 'rxjs';
18+
import { DataType } from '../../data-operations/data-util';
19+
import { IgxToggleDirective } from '../../directives/toggle/toggle.directive';
20+
import { IGridAPIService } from '../api.service';
21+
import { IGridComponent } from '../grid-interfaces';
22+
import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
23+
import { IgxButtonGroupComponent } from '../../buttonGroup/buttonGroup.component';
2424
import { IgxGridFilterExpressionComponent } from './grid-filtering-expression.component';
25-
import { FilteringLogic, IFilteringExpression } from '../data-operations/filtering-expression.interface';
26-
import { OverlaySettings, HorizontalAlignment } from '../services/overlay/utilities';
27-
import { ConnectedPositioningStrategy } from '../services/overlay/position/connected-positioning-strategy';
28-
import { IgxBooleanFilteringOperand } from '../data-operations/filtering-condition';
25+
import { FilteringLogic, IFilteringExpression } from '../../data-operations/filtering-expression.interface';
26+
import { OverlaySettings, HorizontalAlignment } from '../../services/overlay/utilities';
27+
import { ConnectedPositioningStrategy } from '../../services/overlay/position/connected-positioning-strategy';
2928
/**
3029
*@hidden
3130
*/
@@ -272,14 +271,18 @@ export class IgxGridFilterComponent implements OnInit, OnDestroy, DoCheck {
272271
}
273272

274273
protected isFilteringApplied(): boolean {
275-
const expr = this.gridAPI.get(this.gridID).filteringExpressionsTree.find(this.column.field);
274+
const grid = this.gridAPI.get(this.gridID);
275+
if (grid) {
276+
const expr = this.gridAPI.get(this.gridID).filteringExpressionsTree.find(this.column.field);
276277

277-
if (expr) {
278-
if (expr instanceof FilteringExpressionsTree) {
279-
return expr.filteringOperands.length > 0;
278+
if (expr) {
279+
if (expr instanceof FilteringExpressionsTree) {
280+
return expr.filteringOperands.length > 0;
281+
}
282+
return true;
280283
}
281-
return true;
282284
}
285+
283286
return false;
284287
}
285288

0 commit comments

Comments
 (0)