@jsbailey/reactive-form-validators
Version:
[](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [](https://gitter.im/rxweb-project/rxweb?utm_source=badge
112 lines (111 loc) • 12 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
var Linq = /** @class */ (function () {
function Linq() {
}
/**
* @param {?} expression
* @return {?}
*/
Linq.functionCreator = /**
* @param {?} expression
* @return {?}
*/
function (expression) {
/** @type {?} */
var functionSetter = [];
/** @type {?} */
var match = expression.match(/^\s*\(?\s*([^)]*)\s*\)?\s*=>(.*)/);
/** @type {?} */
var splitSelect = match[2].split(",");
for (var i = 0; i < splitSelect.length; i++) {
/** @type {?} */
var equalToOperator = splitSelect[i].match(/^\s*\(?\s*([^)]*)\s*\)?\s*==(.*)/);
if (equalToOperator !== null) {
functionSetter = new Function(match[1], "return " + equalToOperator[0]);
}
else {
equalToOperator = splitSelect[i].match(/^\s*\(?\s*([^)]*)\s*\)?\s*=(.*)/);
if (equalToOperator === null) {
functionSetter = new Function(match[1], "return " + splitSelect[i]);
}
else {
functionSetter = new Function(match[1], "return " + equalToOperator[2]);
}
}
}
if (splitSelect.length == 0)
functionSetter = { accessFunction: new Function(match[1], "return " + match[2]) };
return functionSetter;
};
/**
* @param {?} jObject
* @param {?} expression
* @param {?} parentObject
* @return {?}
*/
Linq.IsPassed = /**
* @param {?} jObject
* @param {?} expression
* @param {?} parentObject
* @return {?}
*/
function (jObject, expression, parentObject) {
/** @type {?} */
var expressionFunction = expression;
if (parentObject && typeof expression == "string")
expressionFunction = Linq.functionCreator(expression);
if (parentObject && expressionFunction)
return expressionFunction(parentObject, jObject);
return true;
};
/**
* @param {?} expression
* @return {?}
*/
Linq.expressionColumns = /**
* @param {?} expression
* @return {?}
*/
function (expression) {
/** @type {?} */
var columns = [];
/** @type {?} */
var splitExpressions = [];
if (typeof expression == "string")
expression.split("=>")[1].split(" && ").forEach(function (t) {
t.split(" || ").forEach(function (x) {
splitExpressions.push(x.trim().split(' ')[0]);
});
});
else
String(expression).split(" return ")[1].split(" && ").forEach(function (t) {
t.split(" || ").forEach(function (x) {
splitExpressions.push(x.trim().split(' ')[0]);
});
});
splitExpressions.forEach(function (t) {
/** @type {?} */
var splitText = t.split('.');
if (splitText.length == 2)
columns.push({ propName: splitText[1].trim() });
else {
/** @type {?} */
var arrayProp = splitText[1].split('[');
/** @type {?} */
var jObject = {
propName: splitText[splitText.length - 1].trim(),
objectPropName: arrayProp[0],
arrayIndex: arrayProp.length > 1 ? arrayProp[1].replace("]", "") : undefined
};
columns.push(jObject);
}
});
return columns;
};
return Linq;
}());
export { Linq };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlucS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bqc2JhaWxleS9yZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvIiwic291cmNlcyI6WyJ1dGlsL2xpbnEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLElBQUE7Ozs7Ozs7SUFDVyxvQkFBZTs7OztJQUF0QixVQUF1QixVQUFVOztRQUM3QixJQUFJLGNBQWMsR0FBUSxFQUFFLENBQUM7O1FBQzdCLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQzs7UUFDakUsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs7WUFDMUMsSUFBSSxlQUFlLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1lBQy9FLEVBQUUsQ0FBQyxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixjQUFjLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzRTtZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNKLGVBQWUsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7Z0JBQzFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUMzQixjQUFjLEdBQUcsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFD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QVEsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7b0JBQ2hELGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO29CQUM1QixVQUFVLEVBQUUsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUMvRSxDQUFBO2dCQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekI7U0FDSixDQUFDLENBQUE7UUFDRixNQUFNLENBQUMsT0FBTyxDQUFDO0tBQ2xCO2VBN0RMO0lBK0RDLENBQUE7QUEvREQsZ0JBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIExpbnEge1xyXG4gICAgc3RhdGljIGZ1bmN0aW9uQ3JlYXRvcihleHByZXNzaW9uKTogYW55IHtcclxuICAgICAgICB2YXIgZnVuY3Rpb25TZXR0ZXI6IGFueSA9IFtdO1xyXG4gICAgICAgIHZhciBtYXRjaCA9IGV4cHJlc3Npb24ubWF0Y2goL15cXHMqXFwoP1xccyooW14pXSopXFxzKlxcKT9cXHMqPT4oLiopLyk7XHJcbiAgICAgICAgdmFyIHNwbGl0U2VsZWN0ID0gbWF0Y2hbMl0uc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3BsaXRTZWxlY3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgdmFyIGVxdWFsVG9PcGVyYXRvciA9IHNwbGl0U2VsZWN0W2ldLm1hdGNoKC9eXFxzKlxcKD9cXHMqKFteKV0qKVxccypcXCk/XFxzKj09KC4qKS8pO1xyXG4gICAgICAgICAgICBpZiAoZXF1YWxUb09wZXJhdG9yICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBmdW5jdGlvblNldHRlciA9IG5ldyBGdW5jdGlvbihtYXRjaFsxXSwgXCJyZXR1cm4gXCIgKyBlcXVhbFRvT3BlcmF0b3JbMF0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZXF1YWxUb09wZXJhdG9yID0gc3BsaXRTZWxlY3RbaV0ubWF0Y2goL15cXHMqXFwoP1xccyooW14pXSopXFxzKlxcKT9cXHMqPSguKikvKTtcclxuICAgICAgICAgICAgICAgIGlmIChlcXVhbFRvT3BlcmF0b3IgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBmdW5jdGlvblNldHRlciA9IG5ldyBGdW5jdGlvbihtYXRjaFsxXSwgXCJyZXR1cm4gXCIgKyBzcGxpdFNlbGVjdFtpXSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uU2V0dGVyID0gbmV3IEZ1bmN0aW9uKG1hdGNoWzFdLCBcInJldHVybiBcIiArIGVxdWFsVG9PcGVyYXRvclsyXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNwbGl0U2VsZWN0Lmxlbmd0aCA9PSAwKVxyXG4gICAgICAgICAgICBmdW5jdGlvblNldHRlciA9IHsgYWNjZXNzRnVuY3Rpb246IG5ldyBGdW5jdGlvbihtYXRjaFsxXSwgXCJyZXR1cm4gXCIgKyBtYXRjaFsyXSkgfTtcclxuICAgICAgICByZXR1cm4gZnVuY3Rpb25TZXR0ZXI7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgSXNQYXNzZWQoak9iamVjdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgZXhwcmVzc2lvbjogYW55LCBwYXJlbnRPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgZXhwcmVzc2lvbkZ1bmN0aW9uOiBGdW5jdGlvbiA9IGV4cHJlc3Npb247XHJcbiAgICAgICAgaWYgKHBhcmVudE9iamVjdCAmJiB0eXBlb2YgZXhwcmVzc2lvbiA9PSBcInN0cmluZ1wiKVxyXG4gICAgICAgICAgICBleHByZXNzaW9uRnVuY3Rpb24gPSBMaW5xLmZ1bmN0aW9uQ3JlYXRvcihleHByZXNzaW9uKTtcclxuICAgICAgICBpZiAocGFyZW50T2JqZWN0ICYmIGV4cHJlc3Npb25GdW5jdGlvbilcclxuICAgICAgICAgICAgcmV0dXJuIGV4cHJlc3Npb25GdW5jdGlvbihwYXJlbnRPYmplY3QsIGpPYmplY3QpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBleHByZXNzaW9uQ29sdW1ucyhleHByZXNzaW9uOiBhbnkpIHtcclxuICAgICAgICB2YXIgY29sdW1ucyA9IFtdO1xyXG4gICAgICAgIGxldCBzcGxpdEV4cHJlc3Npb25zID0gW107XHJcbiAgICAgICAgaWYgKHR5cGVvZiBleHByZXNzaW9uID09IFwic3RyaW5nXCIpXHJcbiAgICAgICAgZXhwcmVzc2lvbi5zcGxpdChcIj0+XCIpWzFdLnNwbGl0KFwiICYmIFwiKS5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgICB0LnNwbGl0KFwiIHx8IFwiKS5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgc3BsaXRFeHByZXNzaW9ucy5wdXNoKHgudHJpbSgpLnNwbGl0KCcgJylbMF0pXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgU3RyaW5nKGV4cHJlc3Npb24pLnNwbGl0KFwiIHJldHVybiBcIilbMV0uc3BsaXQoXCIgJiYgXCIpLmZvckVhY2godCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0LnNwbGl0KFwiIHx8IFwiKS5mb3JFYWNoKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNwbGl0RXhwcmVzc2lvbnMucHVzaCh4LnRyaW0oKS5zcGxpdCgnICcpWzBdKVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgc3BsaXRFeHByZXNzaW9ucy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgICB2YXIgc3BsaXRUZXh0ID0gdC5zcGxpdCgnLicpO1xyXG4gICAgICAgICAgICBpZiAoc3BsaXRUZXh0Lmxlbmd0aCA9PSAyKVxyXG4gICAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKHsgcHJvcE5hbWU6IHNwbGl0VGV4dFsxXS50cmltKCkgfSk7XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdmFyIGFycmF5UHJvcCA9IHNwbGl0VGV4dFsxXS5zcGxpdCgnWycpO1xyXG4gICAgICAgICAgICAgICAgbGV0IGpPYmplY3QgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcE5hbWU6IHNwbGl0VGV4dFtzcGxpdFRleHQubGVuZ3RoIC0gMV0udHJpbSgpLFxyXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdFByb3BOYW1lOiBhcnJheVByb3BbMF0sXHJcbiAgICAgICAgICAgICAgICAgICAgYXJyYXlJbmRleDogYXJyYXlQcm9wLmxlbmd0aCA+IDEgPyBhcnJheVByb3BbMV0ucmVwbGFjZShcIl1cIiwgXCJcIikgOiB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaChqT2JqZWN0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgcmV0dXJuIGNvbHVtbnM7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==