UNPKG

ngx-mat-lib

Version:

A bunch of utilities and components to use in your Angular 7+ apps!

69 lines (68 loc) 7.31 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { each, merge } from "lodash"; /** * This Function can be assigned to FormGroup validation * in order to verify that a given set of values * are equal * @param {?} controlKeys * @return {?} */ export function xmatValuesMatchValidation(controlKeys) { /** @type {?} */ var errorKey = "valuesMatchValidation"; /** @type {?} */ var error = null; /** @type {?} */ var match = false; if (!controlKeys.length) { console.warn("Invalid args supplied for valuesMatchValidation. Rule will not apply.", controlKeys); return error; } if (controlKeys.length === 1) { console.error("1 arg supplied for valuesMatchValidation. Rule will never comply.", controlKeys); return function (_control_) { var _a; return _a = {}, _a[errorKey] = true, _a; }; } return function (control) { var _a; match = false; error = null; each(controlKeys, function (key, index) { if (index > 0) { // Breaks at first false value return match = control.value[key] === control.value[controlKeys[index - 1]]; } }); if (!match) { error = (_a = {}, _a[errorKey] = true, _a); each(controlKeys, function (key) { /** @type {?} */ var singleCtrl = control.get(key); /** @type {?} */ var toSet = merge(singleCtrl.errors, error); singleCtrl.setErrors(toSet); }); } else { each(controlKeys, function (key) { /** @type {?} */ var singleCtrl = control.get(key); if (!!singleCtrl.errors && "valuesMatchValidation" in singleCtrl.errors) { delete singleCtrl.errors["valuesMatchValidation"]; if (!Object.keys(singleCtrl.errors).length) { singleCtrl.setErrors(null); } } }); } return error; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1hdC12YWx1ZXMtbWF0Y2gudmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1tYXQtbGliLyIsInNvdXJjZXMiOlsibGliL3ZhbGlkYXRvcnMveG1hdC12YWx1ZXMtbWF0Y2gudmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFDLElBQUksRUFBRSxLQUFLLEVBQUMsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7O0FBT25DLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxXQUFxQjs7SUFDM0QsSUFBTSxRQUFRLEdBQUcsdUJBQXVCLENBQUM7O0lBQ3pDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQzs7SUFDakIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1FBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUVBQXVFLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDbkcsT0FBTyxLQUFLLENBQUM7S0FDaEI7SUFDRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1FBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUVBQW1FLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDaEcsT0FBTyxVQUFDLFNBQTBCOztZQUM5QjtnQkFDSSxHQUFDLFFBQVEsSUFBRyxJQUFJO21CQUNsQjtTQUNMLENBQUM7S0FDTDtJQUVELE9BQU8sVUFBQyxPQUF3Qjs7UUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNkLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFYixJQUFJLENBQUMsV0FBVyxFQUFFLFVBQUMsR0FBRyxFQUFFLEtBQUs7WUFDekIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFOztnQkFFWCxPQUFPLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9FO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLEtBQUssYUFBSSxHQUFDLFFBQVEsSUFBRyxJQUFJLEtBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxFQUFFLFVBQUEsR0FBRzs7Z0JBQ2pCLElBQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7O2dCQUNwQyxJQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDOUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUMvQixDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFBLEdBQUc7O2dCQUNqQixJQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLHVCQUF1QixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7b0JBQ3JFLE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO29CQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFO3dCQUN4QyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUM5QjtpQkFDSjthQUNKLENBQUMsQ0FBQztTQUdOO1FBQ0QsT0FBTyxLQUFLLENBQUM7S0FDaEIsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuLCBWYWxpZGF0aW9uRXJyb3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7ZWFjaCwgbWVyZ2V9IGZyb20gXCJsb2Rhc2hcIjtcblxuLyoqXG4gKiBUaGlzIEZ1bmN0aW9uIGNhbiBiZSBhc3NpZ25lZCB0byBGb3JtR3JvdXAgdmFsaWRhdGlvblxuICogaW4gb3JkZXIgdG8gdmVyaWZ5IHRoYXQgYSBnaXZlbiBzZXQgb2YgdmFsdWVzXG4gKiBhcmUgZXF1YWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHhtYXRWYWx1ZXNNYXRjaFZhbGlkYXRpb24oY29udHJvbEtleXM6IHN0cmluZ1tdKTogVmFsaWRhdG9yRm4ge1xuICAgIGNvbnN0IGVycm9yS2V5ID0gXCJ2YWx1ZXNNYXRjaFZhbGlkYXRpb25cIjtcbiAgICBsZXQgZXJyb3IgPSBudWxsO1xuICAgIGxldCBtYXRjaCA9IGZhbHNlO1xuICAgIGlmICghY29udHJvbEtleXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcIkludmFsaWQgYXJncyBzdXBwbGllZCBmb3IgdmFsdWVzTWF0Y2hWYWxpZGF0aW9uLiBSdWxlIHdpbGwgbm90IGFwcGx5LlwiLCBjb250cm9sS2V5cyk7XG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG4gICAgaWYgKGNvbnRyb2xLZXlzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiMSBhcmcgc3VwcGxpZWQgZm9yIHZhbHVlc01hdGNoVmFsaWRhdGlvbi4gUnVsZSB3aWxsIG5ldmVyIGNvbXBseS5cIiwgY29udHJvbEtleXMpO1xuICAgICAgICByZXR1cm4gKF9jb250cm9sXzogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIFtlcnJvcktleV06IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzID0+IHtcbiAgICAgICAgbWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgZXJyb3IgPSBudWxsO1xuXG4gICAgICAgIGVhY2goY29udHJvbEtleXMsIChrZXksIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gQnJlYWtzIGF0IGZpcnN0IGZhbHNlIHZhbHVlXG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoID0gY29udHJvbC52YWx1ZVtrZXldID09PSBjb250cm9sLnZhbHVlW2NvbnRyb2xLZXlzW2luZGV4IC0gMV1dO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoIW1hdGNoKSB7XG4gICAgICAgICAgICBlcnJvciA9IHtbZXJyb3JLZXldOiB0cnVlfTtcbiAgICAgICAgICAgIGVhY2goY29udHJvbEtleXMsIGtleSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2luZ2xlQ3RybCA9IGNvbnRyb2wuZ2V0KGtleSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9TZXQgPSBtZXJnZShzaW5nbGVDdHJsLmVycm9ycywgZXJyb3IpO1xuICAgICAgICAgICAgICAgIHNpbmdsZUN0cmwuc2V0RXJyb3JzKHRvU2V0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZWFjaChjb250cm9sS2V5cywga2V5ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzaW5nbGVDdHJsID0gY29udHJvbC5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICBpZiAoISFzaW5nbGVDdHJsLmVycm9ycyAmJiBcInZhbHVlc01hdGNoVmFsaWRhdGlvblwiIGluIHNpbmdsZUN0cmwuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBzaW5nbGVDdHJsLmVycm9yc1tcInZhbHVlc01hdGNoVmFsaWRhdGlvblwiXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyhzaW5nbGVDdHJsLmVycm9ycykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaW5nbGVDdHJsLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgfTtcbn1cbiJdfQ==