Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Depricated find and findIndex from IFilteringExpressionsTree, added FilteringUtil #14815

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { FilteringLogic, IFilteringExpression } from './filtering-expression.interface';
import { IBaseEventArgs } from '../core/utils';
import { FilteringUtil } from './filtering-util';

/* mustCoerceToInt */
export enum FilteringExpressionsTreeType {
Expand All @@ -19,7 +20,14 @@ export declare interface IFilteringExpressionsTree extends IBaseEventArgs, IExpr
/* alternateName: treeType */
type?: FilteringExpressionsTreeType;

/**
* @deprecated in version 19.1. Use `FilteringUtil.find` instead.
*/
find(fieldName: string): IFilteringExpressionsTree | IFilteringExpression;

/**
* @deprecated in version 19.1. Use `FilteringUtil.findIndex` instead.
*/
findIndex(fieldName: string): number;
}

Expand Down Expand Up @@ -111,15 +119,10 @@ export class FilteringExpressionsTree implements IFilteringExpressionsTree {
* ```
*
* @memberof FilteringExpressionsTree
* @deprecated in version 19.1. Use `FilteringUtil.find` instead.
*/
public find(fieldName: string): IFilteringExpressionsTree | IFilteringExpression {
const index = this.findIndex(fieldName);

if (index > -1) {
return this.filteringOperands[index];
}

return null;
return FilteringUtil.find(this, fieldName);
}

/**
Expand All @@ -129,37 +132,9 @@ export class FilteringExpressionsTree implements IFilteringExpressionsTree {
* ```
*
* @memberof FilteringExpressionsTree
* @deprecated in version 19.1. Use `FilteringUtil.findIndex` instead.
*/
public findIndex(fieldName: string): number {
let expr;
for (let i = 0; i < this.filteringOperands.length; i++) {
expr = this.filteringOperands[i];
if (expr instanceof FilteringExpressionsTree) {
if (this.isFilteringExpressionsTreeForColumn(expr, fieldName)) {
return i;
}
} else {
if ((expr as IFilteringExpression).fieldName === fieldName) {
return i;
}
}
}

return -1;
}

protected isFilteringExpressionsTreeForColumn(expressionsTree: IFilteringExpressionsTree, fieldName: string): boolean {
if (expressionsTree.fieldName === fieldName) {
return true;
}

for (const expr of expressionsTree.filteringOperands) {
if ((expr instanceof FilteringExpressionsTree)) {
return this.isFilteringExpressionsTreeForColumn(expr, fieldName);
} else if ((expr as IFilteringExpression).fieldName === fieldName) {
return true;
}
}
return false;
return FilteringUtil.findIndex(this, fieldName);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import { IFilteringExpression } from './filtering-expression.interface';
import { FilteringExpressionsTree, IFilteringExpressionsTree } from './filtering-expressions-tree';

export class FilteringUtil {
/**
* Returns the filtering expression for a column with the provided tree and fieldName.
* ```typescript
* let filteringExpression = FilteringUtil.find(gridExpressionTree, 'Column Field');
* ```
*/
public static find(tree: IFilteringExpressionsTree, fieldName: string): IFilteringExpressionsTree | IFilteringExpression {
const index = this.findIndex(tree, fieldName);

if (index > -1) {
return tree.filteringOperands[index];
}

return null;
}

/**
* Returns the index of the filtering expression for a column with the provided tree and fieldName.
* ```typescript
* let filteringExpressionIndex = FilteringUtil.findIndex(gridExpressionTree, 'Column Field');
* ```
*/
public static findIndex(tree: IFilteringExpressionsTree, fieldName: string): number {
let expr;
for (let i = 0; i < tree.filteringOperands.length; i++) {
expr = tree.filteringOperands[i];
if (expr instanceof FilteringExpressionsTree) {
if (this.isFilteringExpressionsTreeForColumn(expr, fieldName)) {
return i;
}
} else {
if ((expr as IFilteringExpression).fieldName === fieldName) {
return i;
}
}
}

return -1;
}

protected static isFilteringExpressionsTreeForColumn(expressionsTree: IFilteringExpressionsTree, fieldName: string): boolean {
if (expressionsTree.fieldName === fieldName) {
return true;
}

for (const expr of expressionsTree.filteringOperands) {
if ((expr instanceof FilteringExpressionsTree)) {
return this.isFilteringExpressionsTreeForColumn(expr, fieldName);
} else if ((expr as IFilteringExpression).fieldName === fieldName) {
return true;
}
}
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ import { isConstructor, PlatformUtil } from '../../core/utils';
import { IgxGridCell } from '../grid-public-cell';
import { NG_VALIDATORS, Validator } from '@angular/forms';
import { Size } from '../common/enums';
import { FilteringUtil } from '../../data-operations/filtering-util';

const DEFAULT_DATE_FORMAT = 'mediumDate';
const DEFAULT_TIME_FORMAT = 'mediumTime';
Expand Down Expand Up @@ -1647,7 +1648,7 @@ export class IgxColumnComponent implements AfterContentInit, OnDestroy, ColumnTy
* @memberof IgxColumnComponent
*/
public get filteringExpressionsTree(): FilteringExpressionsTree {
return this.grid.filteringExpressionsTree.find(this.field) as FilteringExpressionsTree;
return FilteringUtil.find(this.grid.filteringExpressionsTree, this.field) as FilteringExpressionsTree;
}

/* alternateName: parentColumn */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { ColumnType, GridType } from '../common/grid.interface';
import { formatDate } from '../../core/utils';
import { ExcelStylePositionStrategy } from './excel-style/excel-style-position-strategy';
import { fadeIn } from 'igniteui-angular/animations';
import { FilteringUtil } from '../../data-operations/filtering-util';

/**
* @hidden
Expand Down Expand Up @@ -172,17 +173,17 @@ export class IgxFilteringService implements OnDestroy {
const filteringIgnoreCase = ignoreCase || (col ? col.filteringIgnoreCase : false);

const filteringTree = grid.filteringExpressionsTree;
const columnFilteringExpressionsTree = filteringTree.find(field) as IFilteringExpressionsTree;
const columnFilteringExpressionsTree = FilteringUtil.find(filteringTree, field) as IFilteringExpressionsTree;
conditionOrExpressionTree = conditionOrExpressionTree ?? columnFilteringExpressionsTree;
const fieldFilterIndex = filteringTree.findIndex(field);
const fieldFilterIndex = FilteringUtil.findIndex(filteringTree, field);

const newFilteringTree: FilteringExpressionsTree =
this.prepare_filtering_expression(filteringTree, field, value, conditionOrExpressionTree,
filteringIgnoreCase, fieldFilterIndex, true);

const eventArgs: IFilteringEventArgs = {
owner: grid,
filteringExpressions: newFilteringTree.find(field) as FilteringExpressionsTree, cancel: false
filteringExpressions: FilteringUtil.find(newFilteringTree, field) as FilteringExpressionsTree, cancel: false
};
this.grid.filtering.emit(eventArgs);

Expand All @@ -193,7 +194,7 @@ export class IgxFilteringService implements OnDestroy {
if (conditionOrExpressionTree) {
this.filter_internal(field, value, conditionOrExpressionTree, filteringIgnoreCase);
} else {
const expressionsTreeForColumn = this.grid.filteringExpressionsTree.find(field);
const expressionsTreeForColumn = FilteringUtil.find(this.grid.filteringExpressionsTree, field);
if (!expressionsTreeForColumn) {
throw new Error('Invalid condition or Expression Tree!');
} else if (expressionsTreeForColumn instanceof FilteringExpressionsTree) {
Expand All @@ -203,7 +204,7 @@ export class IgxFilteringService implements OnDestroy {
this.filter_internal(field, value, expressionForColumn.condition, filteringIgnoreCase);
}
}
const doneEventArgs = this.grid.filteringExpressionsTree.find(field) as FilteringExpressionsTree;
const doneEventArgs = FilteringUtil.find(this.grid.filteringExpressionsTree, field) as FilteringExpressionsTree;
// Wait for the change detection to update filtered data through the pipes and then emit the event.
requestAnimationFrame(() => this.grid.filteringDone.emit(doneEventArgs));
}
Expand Down Expand Up @@ -273,7 +274,7 @@ export class IgxFilteringService implements OnDestroy {
const grid = this.grid;
grid.crudService.endEdit(false);
const filteringState = grid.filteringExpressionsTree;
const index = filteringState.findIndex(fieldName);
const index = FilteringUtil.findIndex(filteringState, fieldName);

if (index > -1) {
filteringState.filteringOperands.splice(index, 1);
Expand Down Expand Up @@ -512,7 +513,7 @@ export class IgxFilteringService implements OnDestroy {
this.grid.crudService.endEdit(false);
this.grid.page = 0;

const fieldFilterIndex = filteringTree.findIndex(fieldName);
const fieldFilterIndex = FilteringUtil.findIndex(filteringTree, fieldName);
this.prepare_filtering_expression(filteringTree, fieldName, term, conditionOrExpressionsTree, ignoreCase, fieldFilterIndex);
this.grid.filteringExpressionsTree = filteringTree;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import { SortingDirection } from '../../data-operations/sorting-strategy';
import { SortingIndexPipe } from './pipes';
import { NgTemplateOutlet, NgIf, NgClass } from '@angular/common';
import { IgxIconComponent } from '../../icon/icon.component';
import { FilteringUtil } from '../../data-operations/filtering-util';

/**
* @hidden
Expand Down Expand Up @@ -280,7 +281,7 @@ export class IgxGridHeaderComponent implements DoCheck, OnDestroy {
if(!this.grid.advancedFilteringExpressionsTree) {
return false;
}
return !!this.grid.advancedFilteringExpressionsTree.find(this.column.field);
return !!FilteringUtil.find(this.grid.advancedFilteringExpressionsTree, this.column.field);
}

private triggerSort() {
Expand Down
Loading