igniteui-react-grids
Version:
Ignite UI React grid components.
82 lines (81 loc) • 2.38 kB
JavaScript
import { FilteringLogic_$type } from "./FilteringLogic";
import { IgrFilteringExpressionsTreeOrFilteringExpression } from "./igr-filtering-expressions-tree-or-filtering-expression";
import { IgrExpressionTreeOrFilteringExpression } from "./igr-expression-tree-or-filtering-expression";
import { ExpressionTree as ExpressionTree_internal } from "./ExpressionTree";
import { ensureEnum } from "igniteui-react-core";
export class IgrExpressionTree extends IgrFilteringExpressionsTreeOrFilteringExpression {
createImplementation() {
let impl = new ExpressionTree_internal();
if (impl.setNativeElement) {
impl.setNativeElement({});
}
return impl;
}
/**
* @hidden
*/
get i() {
return this._implementation;
}
constructor() {
super();
}
get filteringOperands() {
if (!this.i.a) {
return undefined;
}
let ret = [];
for (let i = 0; i < this.i.a.length; i++) {
let impl = this.i.a[i];
if (!impl.externalObject) {
if (impl instanceof IgrExpressionTreeOrFilteringExpression) {
ret.push(impl);
continue;
}
let e = new IgrExpressionTreeOrFilteringExpression();
e._implementation = impl;
impl.externalObject = e;
}
ret.push(impl.externalObject);
}
return ret;
}
set filteringOperands(v) {
let arr = [];
for (let i = 0; i < v.length; i++) {
arr.push(v[i].i);
}
this.i.a = arr;
}
get operator() {
return this.i.c;
}
set operator(v) {
this.i.c = ensureEnum(FilteringLogic_$type, v);
}
get fieldName() {
return this.i.i;
}
set fieldName(v) {
this.i.i = v;
}
get entity() {
return this.i.h;
}
set entity(v) {
this.i.h = v;
}
get returnFields() {
return this.i.b;
}
set returnFields(v) {
if (v && !Array.isArray(v) && typeof (v) == "string") {
const re = /\s*(?:,|\s|$)\s*/gm;
v = v.split(re);
}
this.i.b = v;
}
setNativeElement(element) {
this.i.setNativeElement(element);
}
}