UNPKG

@catull/igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

89 lines 12.7 kB
import { __extends } from "tslib"; import { FilteringLogic } from './filtering-expression.interface'; import { FilteringExpressionsTree } from './filtering-expressions-tree'; var NoopFilteringStrategy = /** @class */ (function () { function NoopFilteringStrategy() { } NoopFilteringStrategy.instance = function () { return this._instance || (this._instance = new NoopFilteringStrategy()); }; NoopFilteringStrategy.prototype.filter = function (data, expressionsTree, advancedExpressionsTree) { return data; }; NoopFilteringStrategy._instance = null; return NoopFilteringStrategy; }()); export { NoopFilteringStrategy }; var BaseFilteringStrategy = /** @class */ (function () { function BaseFilteringStrategy() { } BaseFilteringStrategy.prototype.findMatchByExpression = function (rec, expr) { var cond = expr.condition; var val = this.getFieldValue(rec, expr.fieldName); return cond.logic(val, expr.searchVal, expr.ignoreCase); }; BaseFilteringStrategy.prototype.matchRecord = function (rec, expressions) { if (expressions) { if (expressions instanceof FilteringExpressionsTree) { var expressionsTree = expressions; var operator = expressionsTree.operator; var matchOperand = void 0, operand = void 0; if (expressionsTree.filteringOperands && expressionsTree.filteringOperands.length) { for (var i = 0; i < expressionsTree.filteringOperands.length; i++) { operand = expressionsTree.filteringOperands[i]; matchOperand = this.matchRecord(rec, operand); // Return false if at least one operand does not match and the filtering logic is And if (!matchOperand && operator === FilteringLogic.And) { return false; } // Return true if at least one operand matches and the filtering logic is Or if (matchOperand && operator === FilteringLogic.Or) { return true; } } return matchOperand; } return true; } else { var expression = expressions; return this.findMatchByExpression(rec, expression); } } return true; }; return BaseFilteringStrategy; }()); export { BaseFilteringStrategy }; var FilteringStrategy = /** @class */ (function (_super) { __extends(FilteringStrategy, _super); function FilteringStrategy() { return _super.call(this) || this; } FilteringStrategy.instance = function () { return this._instace || (this._instace = new this()); }; FilteringStrategy.prototype.filter = function (data, expressionsTree, advancedExpressionsTree) { var i; var rec; var len = data.length; var res = []; if ((FilteringExpressionsTree.empty(expressionsTree) && FilteringExpressionsTree.empty(advancedExpressionsTree)) || !len) { return data; } for (i = 0; i < len; i++) { rec = data[i]; if (this.matchRecord(rec, expressionsTree) && this.matchRecord(rec, advancedExpressionsTree)) { res.push(rec); } } return res; }; FilteringStrategy.prototype.getFieldValue = function (rec, fieldName) { return rec[fieldName]; }; FilteringStrategy._instace = null; return FilteringStrategy; }(BaseFilteringStrategy)); export { FilteringStrategy }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyaW5nLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUF3QixNQUFNLGtDQUFrQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBNkIsTUFBTSw4QkFBOEIsQ0FBQztBQU1uRztJQUdJO0lBQXlCLENBQUM7SUFFWiw4QkFBUSxHQUF0QjtRQUNJLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVNLHNDQUFNLEdBQWIsVUFBYyxJQUFXLEVBQUUsZUFBMEMsRUFBRSx1QkFBbUQ7UUFDdEgsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQVZjLCtCQUFTLEdBQTBCLElBQUksQ0FBQztJQVczRCw0QkFBQztDQUFBLEFBWkQsSUFZQztTQVpZLHFCQUFxQjtBQWNsQztJQUFBO0lBK0NBLENBQUM7SUF6Q1UscURBQXFCLEdBQTVCLFVBQTZCLEdBQVcsRUFBRSxJQUEwQjtRQUNoRSxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzVCLElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTSwyQ0FBVyxHQUFsQixVQUFtQixHQUFXLEVBQUUsV0FBNkQ7UUFDekYsSUFBSSxXQUFXLEVBQUU7WUFDYixJQUFJLFdBQVcsWUFBWSx3QkFBd0IsRUFBRTtn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biB9IGZyb20gJy4vZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSwgSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSB9IGZyb20gJy4vZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGaWx0ZXJpbmdTdHJhdGVneSB7XG4gICAgZmlsdGVyKGRhdGE6IGFueVtdLCBleHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIGFkdmFuY2VkRXhwcmVzc2lvbnNUcmVlPzogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSk6IGFueVtdO1xufVxuXG5leHBvcnQgY2xhc3MgTm9vcEZpbHRlcmluZ1N0cmF0ZWd5IGltcGxlbWVudHMgSUZpbHRlcmluZ1N0cmF0ZWd5IHtcbiAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IE5vb3BGaWx0ZXJpbmdTdHJhdGVneSA9IG51bGw7XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKCkgeyAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW5jZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlIHx8ICh0aGlzLl9pbnN0YW5jZSA9IG5ldyBOb29wRmlsdGVyaW5nU3RyYXRlZ3koKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbHRlcihkYXRhOiBhbnlbXSwgZXhwcmVzc2lvbnNUcmVlOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLCBhZHZhbmNlZEV4cHJlc3Npb25zVHJlZT86IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGaWx0ZXJpbmdTdHJhdGVneSBpbXBsZW1lbnRzIElGaWx0ZXJpbmdTdHJhdGVneSAge1xuICAgIHB1YmxpYyBhYnN0cmFjdCBmaWx0ZXIoZGF0YTogYW55W10sIGV4cHJlc3Npb25zVHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSxcbiAgICAgICAgYWR2YW5jZWRFeHByZXNzaW9uc1RyZWU/OiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlKTogYW55W107XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RmllbGRWYWx1ZShyZWM6IG9iamVjdCwgZmllbGROYW1lOiBzdHJpbmcpOiBhbnk7XG5cbiAgICBwdWJsaWMgZmluZE1hdGNoQnlFeHByZXNzaW9uKHJlYzogb2JqZWN0LCBleHByOiBJRmlsdGVyaW5nRXhwcmVzc2lvbik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjb25kID0gZXhwci5jb25kaXRpb247XG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuZ2V0RmllbGRWYWx1ZShyZWMsIGV4cHIuZmllbGROYW1lKTtcbiAgICAgICAgcmV0dXJuIGNvbmQubG9naWModmFsLCBleHByLnNlYXJjaFZhbCwgZXhwci5pZ25vcmVDYXNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbWF0Y2hSZWNvcmQocmVjOiBvYmplY3QsIGV4cHJlc3Npb25zOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlIHwgSUZpbHRlcmluZ0V4cHJlc3Npb24pOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGV4cHJlc3Npb25zKSB7XG4gICAgICAgICAgICBpZiAoZXhwcmVzc2lvbnMgaW5zdGFuY2VvZiBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uc1RyZWUgPSBleHByZXNzaW9ucyBhcyBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yID0gZXhwcmVzc2lvbnNUcmVlLm9wZXJhdG9yIGFzIEZpbHRlcmluZ0xvZ2ljO1xuICAgICAgICAgICAgICAgIGxldCBtYXRjaE9wZXJhbmQsIG9wZXJhbmQ7XG5cbiAgICAgICAgICAgICAgICBpZiAoZXhwcmVzc2lvbnNUcmVlLmZpbHRlcmluZ09wZXJhbmRzICYmIGV4cHJlc3Npb25zVHJlZS5maWx0ZXJpbmdPcGVyYW5kcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBleHByZXNzaW9uc1RyZWUuZmlsdGVyaW5nT3BlcmFuZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhbmQgPSBleHByZXNzaW9uc1RyZWUuZmlsdGVyaW5nT3BlcmFuZHNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaE9wZXJhbmQgPSB0aGlzLm1hdGNoUmVjb3JkKHJlYywgb3BlcmFuZCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJldHVybiBmYWxzZSBpZiBhdCBsZWFzdCBvbmUgb3BlcmFuZCBkb2VzIG5vdCBtYXRjaCBhbmQgdGhlIGZpbHRlcmluZyBsb2dpYyBpcyBBbmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2hPcGVyYW5kICYmIG9wZXJhdG9yID09PSBGaWx0ZXJpbmdMb2dpYy5BbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJldHVybiB0cnVlIGlmIGF0IGxlYXN0IG9uZSBvcGVyYW5kIG1hdGNoZXMgYW5kIHRoZSBmaWx0ZXJpbmcgbG9naWMgaXMgT3JcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChtYXRjaE9wZXJhbmQgJiYgb3BlcmF0b3IgPT09IEZpbHRlcmluZ0xvZ2ljLk9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hPcGVyYW5kO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gZXhwcmVzc2lvbnMgYXMgSUZpbHRlcmluZ0V4cHJlc3Npb247XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmluZE1hdGNoQnlFeHByZXNzaW9uKHJlYywgZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJpbmdTdHJhdGVneSBleHRlbmRzIEJhc2VGaWx0ZXJpbmdTdHJhdGVneSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhY2U6IEZpbHRlcmluZ1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW5jZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RhY2UgfHwgKHRoaXMuX2luc3RhY2UgPSBuZXcgdGhpcygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlsdGVyPFQ+KGRhdGE6IFRbXSwgZXhwcmVzc2lvbnNUcmVlOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLCBhZHZhbmNlZEV4cHJlc3Npb25zVHJlZT86IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpOiBUW10ge1xuICAgICAgICBsZXQgaTtcbiAgICAgICAgbGV0IHJlYztcbiAgICAgICAgY29uc3QgbGVuID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHJlczogVFtdID0gW107XG4gICAgICAgIGlmICgoRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLmVtcHR5KGV4cHJlc3Npb25zVHJlZSkgJiYgRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLmVtcHR5KGFkdmFuY2VkRXhwcmVzc2lvbnNUcmVlKSkgfHwgIWxlbikge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICByZWMgPSBkYXRhW2ldO1xuICAgICAgICAgICAgaWYgKHRoaXMubWF0Y2hSZWNvcmQocmVjLCBleHByZXNzaW9uc1RyZWUpICYmIHRoaXMubWF0Y2hSZWNvcmQocmVjLCBhZHZhbmNlZEV4cHJlc3Npb25zVHJlZSkpIHtcbiAgICAgICAgICAgICAgICByZXMucHVzaChyZWMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZpZWxkVmFsdWUocmVjOiBvYmplY3QsIGZpZWxkTmFtZTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHJlY1tmaWVsZE5hbWVdO1xuICAgIH1cbn1cbiJdfQ==