xenos
Version:
Xenos is a data grid built upon angular2 and bootstrap.
31 lines (24 loc) • 956 B
text/typescript
import { FilterDescriptor } from "./filter-descriptor";
import { DataGridColumn } from "./data-grid-column";
export class FtsFilterDescriptor extends FilterDescriptor {
public static id: string = "__fts";
constructor(columns: DataGridColumn[], phrase: string) {
super(FtsFilterDescriptor.id, x => {
var regex = new RegExp(`${phrase}`, "i");
for (let i = 0; i < columns.length; i++) {
let column = columns[i];
let value = column.valueAccessor(x);
if (typeof value === "string" && regex.test(value)) {
return true;
}
if (this.isNumber(value) && regex.test(value.toString())) {
return true;
}
}
return false;
});
}
private isNumber(n): boolean {
return !isNaN(parseFloat(n)) && isFinite(n);
}
}