UNPKG

@jsbailey/reactive-form-validators

Version:

[![npm version](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators.svg)](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [![Gitter](https://badges.gitter.im/rx-web/Lobby.svg)](https://gitter.im/rxweb-project/rxweb?utm_source=badge

137 lines (136 loc) 11.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { RegExRule } from "./regex-rules"; /** @type {?} */ var ALPHABET = "alphabet"; /** @type {?} */ var DIGIT = "digit"; /** @type {?} */ var CONTAINS = "contains"; /** @type {?} */ var LOWERCASE = "lowerCase"; /** @type {?} */ var UPPERCASE = "upperCase"; /** @type {?} */ var SPECIAL_CHARACTER = "specialCharacter"; /** @type {?} */ var MIN_LENGTH = "minLength"; /** @type {?} */ var MAX_LENGTH = "maxLength"; var RegexValidator = /** @class */ (function () { function RegexValidator() { } /** * @param {?} value * @param {?} regex * @return {?} */ RegexValidator.isExits = /** * @param {?} value * @param {?} regex * @return {?} */ function (value, regex) { return value.match(regex) != null; }; /** * @param {?} value * @param {?} regex * @return {?} */ RegexValidator.isValid = /** * @param {?} value * @param {?} regex * @return {?} */ function (value, regex) { return regex.test(value); }; /** * @param {?} value * @return {?} */ RegexValidator.isNotBlank = /** * @param {?} value * @return {?} */ function (value) { return value != undefined && value != "" && value != null; }; /** * @param {?} passwordValidation * @param {?} value * @return {?} */ RegexValidator.isValidPassword = /** * @param {?} passwordValidation * @param {?} value * @return {?} */ function (passwordValidation, value) { /** @type {?} */ var isValid = false; /** @type {?} */ var jObject = {}; /** @type {?} */ var keyName = "status"; /** @type {?} */ var objectProperties = Object.getOwnPropertyNames(passwordValidation); try { for (var objectProperties_1 = tslib_1.__values(objectProperties), objectProperties_1_1 = objectProperties_1.next(); !objectProperties_1_1.done; objectProperties_1_1 = objectProperties_1.next()) { var propertyName = objectProperties_1_1.value; switch (propertyName) { case ALPHABET: isValid = RegexValidator.isExits(value, RegExRule["alpha"]); keyName = ALPHABET; break; case DIGIT: isValid = RegexValidator.isValid(value, RegExRule["isDigitExits"]); keyName = DIGIT; break; case CONTAINS: isValid = value.indexOf(passwordValidation[CONTAINS]) != -1; keyName = CONTAINS; break; case LOWERCASE: isValid = RegexValidator.isValid(value, RegExRule["lowerCase"]); keyName = LOWERCASE; break; case UPPERCASE: isValid = RegexValidator.isValid(value, RegExRule["upperCase"]); keyName = UPPERCASE; break; case SPECIAL_CHARACTER: isValid = RegexValidator.isExits(value, RegExRule["specialCharacter"]); keyName = SPECIAL_CHARACTER; break; case MIN_LENGTH: isValid = value.length >= passwordValidation[propertyName]; keyName = MIN_LENGTH; break; case MAX_LENGTH: isValid = value.length <= passwordValidation[propertyName]; keyName = MAX_LENGTH; break; } if (!isValid) break; } } catch (e_1_1) { e_1 = { error: e_1_1 }; } finally { try { if (objectProperties_1_1 && !objectProperties_1_1.done && (_a = objectProperties_1.return)) _a.call(objectProperties_1); } finally { if (e_1) throw e_1.error; } } return { isValid: isValid, keyName: keyName }; var e_1, _a; }; return RegexValidator; }()); export { RegexValidator }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXgtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGpzYmFpbGV5L3JlYWN0aXZlLWZvcm0tdmFsaWRhdG9ycy8iLCJzb3VyY2VzIjpbInV0aWwvcmVnZXgtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHMUMsSUFBTSxRQUFRLEdBQVcsVUFBVSxDQUFDOztBQUNwQyxJQUFNLEtBQUssR0FBVyxPQUFPLENBQUM7O0FBQzlCLElBQU0sUUFBUSxHQUFXLFVBQVUsQ0FBQzs7QUFDcEMsSUFBTSxTQUFTLEdBQVcsV0FBVyxDQUFDOztBQUN0QyxJQUFNLFNBQVMsR0FBVyxXQUFXLENBQUM7O0FBQ3RDLElBQU0saUJBQWlCLEdBQVcsa0JBQWtCLENBQUM7O0FBQ3JELElBQU0sVUFBVSxHQUFXLFdBQVcsQ0FBQzs7QUFDdkMsSUFBTSxVQUFVLEdBQVcsV0FBVyxDQUFDO0FBR3ZDLElBQUE7Ozs7Ozs7O0lBQ1csc0JBQU87Ozs7O0lBQWQsVUFBZSxLQUFVLEVBQUUsS0FBYTtRQUNwQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7S0FDckM7Ozs7OztJQUNNLHNCQUFPOzs7OztJQUFkLFVBQWUsS0FBVSxFQUFFLEtBQWE7UUFDcEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDNUI7Ozs7O0lBRU0seUJBQVU7Ozs7SUFBakIsVUFBa0IsS0FBVTtRQUN4QixNQUFNLENBQUMsS0FBSyxJQUFJLFNBQVMsSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUU7S0FDOUQ7Ozs7OztJQUVNLDhCQUFlOzs7OztJQUF0QixVQUF1QixrQkFBc0MsRUFBRSxLQUFhOztRQUN4RSxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7O1FBQ3BCLElBQUksT0FBTyxHQUEyQixFQUFFLENBQUM7O1FBQ3pDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQzs7UUFDdkIsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsQ0FBQTs7WUFDckUsR0FBRyxDQUFDLENBQXFCLElBQUEscUJBQUEsaUJBQUEsZ0JBQWdCLENBQUEsa0RBQUE7Z0JBQXBDLElBQUksWUFBWSw2QkFBQTtnQkFDakIsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztvQkFDbkIsS0FBSyxRQUFRO3dCQUNULE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLFVBQU8sQ0FBQzt3QkFDekQsT0FBTyxHQUFHLFFBQVEsQ0FBQzt3QkFDbkIsS0FBSyxDQUFDO29CQUNWLEtBQUssS0FBSzt3QkFDTixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxpQkFBYyxDQUFDO3dCQUNoRSxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUNoQixLQUFLLENBQUM7b0JBQ1YsS0FBSyxRQUFRO3dCQUNULE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQzVELE9BQU8sR0FBRyxRQUFRLENBQUM7d0JBQ25CLEtBQUssQ0FBQztvQkFDVixLQUFLLFNBQVM7d0JBQ1YsT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsY0FBVyxDQUFDO3dCQUM3RCxPQUFPLEdBQUcsU0FBUyxDQUFDO3dCQUNwQixLQUFLLENBQUM7b0JBQ1YsS0FBSyxTQUFTO3dCQUNWLE9BQU8sR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxTQUFTLGNBQVcsQ0FBQzt3QkFDN0QsT0FBTyxHQUFHLFNBQVMsQ0FBQzt3QkFDcEIsS0FBSyxDQUFDO29CQUNWLEtBQUssaUJBQWlCO3dCQUNsQixPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxxQkFBa0IsQ0FBQzt3QkFDcEUsT0FBTyxHQUFHLGlCQUFpQixDQUFDO3dCQUM1QixLQUFLLENBQUM7b0JBQ1YsS0FBSyxVQUFVO3dCQUNYLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUMzRCxPQUFPLEdBQUcsVUFBVSxDQUFDO3dCQUNyQixLQUFLLENBQUM7b0JBQ1YsS0FBSyxVQUFVO3dCQUNYLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUMzRCxPQUFPLEdBQUcsVUFBVSxDQUFDO3dCQUNyQixLQUFLLENBQUM7aUJBQ2I7Z0JBQ0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7b0JBQ1QsS0FBSyxDQUFDO2FBQ2I7Ozs7Ozs7OztRQUNELE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFBOztLQUNoRDt5QkF0RUw7SUF1RUMsQ0FBQTtBQXpERCwwQkF5REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYXNzd29yZFZhbGlkYXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL3Bhc3N3b3JkLXZhbGlkYXRpb24ubW9kZWxcIjtcclxuaW1wb3J0IHsgUmVnRXhSdWxlIH0gZnJvbSBcIi4vcmVnZXgtcnVsZXNcIjtcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3JtQ29uZmlnIH0gZnJvbSBcIi4vcmVhY3RpdmUtZm9ybS1jb25maWdcIjtcclxuXHJcbmNvbnN0IEFMUEhBQkVUOiBzdHJpbmcgPSBcImFscGhhYmV0XCI7XHJcbmNvbnN0IERJR0lUOiBzdHJpbmcgPSBcImRpZ2l0XCI7XHJcbmNvbnN0IENPTlRBSU5TOiBzdHJpbmcgPSBcImNvbnRhaW5zXCI7XHJcbmNvbnN0IExPV0VSQ0FTRTogc3RyaW5nID0gXCJsb3dlckNhc2VcIjtcclxuY29uc3QgVVBQRVJDQVNFOiBzdHJpbmcgPSBcInVwcGVyQ2FzZVwiO1xyXG5jb25zdCBTUEVDSUFMX0NIQVJBQ1RFUjogc3RyaW5nID0gXCJzcGVjaWFsQ2hhcmFjdGVyXCI7XHJcbmNvbnN0IE1JTl9MRU5HVEg6IHN0cmluZyA9IFwibWluTGVuZ3RoXCI7XHJcbmNvbnN0IE1BWF9MRU5HVEg6IHN0cmluZyA9IFwibWF4TGVuZ3RoXCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFJlZ2V4VmFsaWRhdG9yIHtcclxuICAgIHN0YXRpYyBpc0V4aXRzKHZhbHVlOiBhbnksIHJlZ2V4OiBSZWdFeHApOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUubWF0Y2gocmVnZXgpICE9IG51bGw7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgaXNWYWxpZCh2YWx1ZTogYW55LCByZWdleDogUmVnRXhwKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc05vdEJsYW5rKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgIT0gdW5kZWZpbmVkICYmIHZhbHVlICE9IFwiXCIgJiYgdmFsdWUgIT0gbnVsbCA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzVmFsaWRQYXNzd29yZChwYXNzd29yZFZhbGlkYXRpb246IFBhc3N3b3JkVmFsaWRhdGlvbiwgdmFsdWU6IHN0cmluZyk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xyXG4gICAgICAgIGxldCBpc1ZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IGpPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuICAgICAgICBsZXQga2V5TmFtZSA9IFwic3RhdHVzXCI7XHJcbiAgICAgICAgbGV0IG9iamVjdFByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhwYXNzd29yZFZhbGlkYXRpb24pXHJcbiAgICAgICAgZm9yIChsZXQgcHJvcGVydHlOYW1lIG9mIG9iamVjdFByb3BlcnRpZXMpIHtcclxuICAgICAgICAgICAgc3dpdGNoIChwcm9wZXJ0eU5hbWUpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgQUxQSEFCRVQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaXNWYWxpZCA9IFJlZ2V4VmFsaWRhdG9yLmlzRXhpdHModmFsdWUsIFJlZ0V4UnVsZS5hbHBoYSk7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TmFtZSA9IEFMUEhBQkVUO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBESUdJVDpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gUmVnZXhWYWxpZGF0b3IuaXNWYWxpZCh2YWx1ZSwgUmVnRXhSdWxlLmlzRGlnaXRFeGl0cyk7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TmFtZSA9IERJR0lUO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBDT05UQUlOUzpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gdmFsdWUuaW5kZXhPZihwYXNzd29yZFZhbGlkYXRpb25bQ09OVEFJTlNdKSAhPSAtMTtcclxuICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gQ09OVEFJTlM7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIExPV0VSQ0FTRTpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gUmVnZXhWYWxpZGF0b3IuaXNWYWxpZCh2YWx1ZSwgUmVnRXhSdWxlLmxvd2VyQ2FzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TmFtZSA9IExPV0VSQ0FTRTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgVVBQRVJDQVNFOlxyXG4gICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSBSZWdleFZhbGlkYXRvci5pc1ZhbGlkKHZhbHVlLCBSZWdFeFJ1bGUudXBwZXJDYXNlKTtcclxuICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gVVBQRVJDQVNFO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBTUEVDSUFMX0NIQVJBQ1RFUjpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gUmVnZXhWYWxpZGF0b3IuaXNFeGl0cyh2YWx1ZSwgUmVnRXhSdWxlLnNwZWNpYWxDaGFyYWN0ZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGtleU5hbWUgPSBTUEVDSUFMX0NIQVJBQ1RFUjtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgTUlOX0xFTkdUSDpcclxuICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gdmFsdWUubGVuZ3RoID49IHBhc3N3b3JkVmFsaWRhdGlvbltwcm9wZXJ0eU5hbWVdO1xyXG4gICAgICAgICAgICAgICAgICAgIGtleU5hbWUgPSBNSU5fTEVOR1RIO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBNQVhfTEVOR1RIOlxyXG4gICAgICAgICAgICAgICAgICAgIGlzVmFsaWQgPSB2YWx1ZS5sZW5ndGggPD0gcGFzc3dvcmRWYWxpZGF0aW9uW3Byb3BlcnR5TmFtZV07XHJcbiAgICAgICAgICAgICAgICAgICAga2V5TmFtZSA9IE1BWF9MRU5HVEg7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkKVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7IGlzVmFsaWQ6IGlzVmFsaWQsIGtleU5hbWU6IGtleU5hbWUgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==