truly-ui
Version:
Web Components for Desktop Applications.
36 lines • 6.77 kB
JavaScript
import { LOCALE_I18N } from '../../i18n/i18n.service';
export function PasswordValidator(passwordRule) {
return (control) => {
const digits = '^(?=.*[0-9]).*$';
const uppercase = '^(?=.*[A-Z]).*$';
const special = '^(?=.*[!@#$%^&*]).*$';
const lowercase = '^(?=.*[a-z]).*$';
let regex;
if (passwordRule['digits']) {
regex = new RegExp(digits);
if (!regex.test(control.value)) {
return { invalidPasswordRuleDigits: LOCALE_I18N.Validators.invalidPasswordRuleDigits };
}
}
if (passwordRule['uppercase']) {
regex = new RegExp(uppercase);
if (!regex.test(control.value)) {
return { invalidPasswordRuleUppercase: LOCALE_I18N.Validators.invalidPasswordRuleUppercase };
}
}
if (passwordRule['special']) {
regex = new RegExp(special);
if (!regex.test(control.value)) {
return { invalidPasswordRuleSpecial: LOCALE_I18N.Validators.invalidPasswordRuleSpecial };
}
}
if (passwordRule['lowercase']) {
regex = new RegExp(lowercase);
if (!regex.test(control.value)) {
return { invalidPasswordRuleLowerCase: LOCALE_I18N.Validators.invalidPasswordRuleLowerCase };
}
}
return null;
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJ1bHktdWkvc3JjL2NvbXBvbmVudHMvdmFsaWRhdG9ycy9wYXNzd29yZC9wYXNzd29yZC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUd0RCxNQUFNLFVBQVUsaUJBQWlCLENBQUUsWUFBMEI7SUFDM0QsT0FBTyxDQUFFLE9BQXdCLEVBQUcsRUFBRTtRQUVwQyxNQUFNLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQztRQUNqQyxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQztRQUN2QyxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztRQUVwQyxJQUFJLEtBQWEsQ0FBQztRQUVsQixJQUFLLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRztZQUM1QixLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUUsTUFBTSxDQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2FBQ3hGO1NBQ0Y7UUFFRCxJQUFLLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRztZQUMvQixLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUUsU0FBUyxDQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO2FBQzlGO1NBQ0Y7UUFFRCxJQUFLLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRztZQUM3QixLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUUsT0FBTyxDQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsRUFBRSxDQUFDO2FBQzFGO1NBQ0Y7UUFFRCxJQUFLLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRztZQUMvQixLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUUsU0FBUyxDQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsV0FBVyxDQUFDLFVBQVUsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO2FBQzlGO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUVkLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuIE1JVCBMaWNlbnNlXG5cbiBDb3B5cmlnaHQgKGMpIDIwMTkgVGVtYWluZm8gU29mdHdhcmVcblxuIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG4gU09GVFdBUkUuXG4gKi9cbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMT0NBTEVfSTE4TiB9IGZyb20gJy4uLy4uL2kxOG4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFBhc3N3b3JkUnVsZSB9IGZyb20gJy4vcGFzc3dvcmRydWxlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBQYXNzd29yZFZhbGlkYXRvciggcGFzc3dvcmRSdWxlOiBQYXNzd29yZFJ1bGUgKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gKCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgKSA9PiB7XG5cbiAgICBjb25zdCBkaWdpdHMgPSAnXig/PS4qWzAtOV0pLiokJztcbiAgICBjb25zdCB1cHBlcmNhc2UgPSAnXig/PS4qW0EtWl0pLiokJztcbiAgICBjb25zdCBzcGVjaWFsID0gJ14oPz0uKlshQCMkJV4mKl0pLiokJztcbiAgICBjb25zdCBsb3dlcmNhc2UgPSAnXig/PS4qW2Etel0pLiokJztcblxuICAgIGxldCByZWdleDogUmVnRXhwO1xuXG4gICAgaWYgKCBwYXNzd29yZFJ1bGVbJ2RpZ2l0cyddICkge1xuICAgICAgcmVnZXggPSBuZXcgUmVnRXhwKCBkaWdpdHMgKTtcbiAgICAgIGlmICghcmVnZXgudGVzdChjb250cm9sLnZhbHVlKSkge1xuICAgICAgICByZXR1cm4geyBpbnZhbGlkUGFzc3dvcmRSdWxlRGlnaXRzOiBMT0NBTEVfSTE4Ti5WYWxpZGF0b3JzLmludmFsaWRQYXNzd29yZFJ1bGVEaWdpdHMgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIHBhc3N3b3JkUnVsZVsndXBwZXJjYXNlJ10gKSB7XG4gICAgICByZWdleCA9IG5ldyBSZWdFeHAoIHVwcGVyY2FzZSApO1xuICAgICAgaWYgKCFyZWdleC50ZXN0KGNvbnRyb2wudmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB7IGludmFsaWRQYXNzd29yZFJ1bGVVcHBlcmNhc2U6IExPQ0FMRV9JMThOLlZhbGlkYXRvcnMuaW52YWxpZFBhc3N3b3JkUnVsZVVwcGVyY2FzZSB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICggcGFzc3dvcmRSdWxlWydzcGVjaWFsJ10gKSB7XG4gICAgICByZWdleCA9IG5ldyBSZWdFeHAoIHNwZWNpYWwgKTtcbiAgICAgIGlmICghcmVnZXgudGVzdChjb250cm9sLnZhbHVlKSkge1xuICAgICAgICByZXR1cm4geyBpbnZhbGlkUGFzc3dvcmRSdWxlU3BlY2lhbDogTE9DQUxFX0kxOE4uVmFsaWRhdG9ycy5pbnZhbGlkUGFzc3dvcmRSdWxlU3BlY2lhbCB9O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICggcGFzc3dvcmRSdWxlWydsb3dlcmNhc2UnXSApIHtcbiAgICAgIHJlZ2V4ID0gbmV3IFJlZ0V4cCggbG93ZXJjYXNlICk7XG4gICAgICBpZiAoIXJlZ2V4LnRlc3QoY29udHJvbC52YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHsgaW52YWxpZFBhc3N3b3JkUnVsZUxvd2VyQ2FzZTogTE9DQUxFX0kxOE4uVmFsaWRhdG9ycy5pbnZhbGlkUGFzc3dvcmRSdWxlTG93ZXJDYXNlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG5cbiAgfTtcbn1cbiJdfQ==