UNPKG

truly-ui

Version:

Web Components for Desktop Applications.

54 lines 7.12 kB
import { Validators, } from '@angular/forms'; import { of } from 'rxjs'; const normalizeValidator = (validator) => { const func = validator.validate.bind(validator); if (typeof func === 'function') { return (c) => func(c); } else { return validator; } }; export const composeValidators = (validators) => { if (validators == null || validators.length === 0) { return null; } return Validators.compose(validators.map(normalizeValidator)); }; export const validate = (validators, asyncValidators) => { return (control) => { const synchronousValid = () => composeValidators(validators)(control); if (asyncValidators) { const asyncValidator = composeValidators(asyncValidators); return asyncValidator(control).map(v => { const secondary = synchronousValid(); if (secondary || v) { // compose async and sync validator results return Object.assign({}, secondary, v); } }); } if (validators) { return of(synchronousValid()); } return of(null); }; }; export const message = (validator, key) => { switch (key) { case 'required': return 'Please enter a value'; case 'pattern': return 'Value does not match required pattern'; case 'minlength': return 'Value must be N characters'; case 'maxlength': return 'Value must be a maximum of N characters'; } switch (typeof validator[key]) { case 'string': return validator[key]; default: return `Validation failed: ${key}`; } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cnVseS11aS9zcmMvY29tcG9uZW50cy9pbnB1dC9jb3JlL3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFJTCxVQUFVLEdBRVgsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUzFCLE1BQU0sa0JBQWtCLEdBQ3RCLENBQUMsU0FBa0MsRUFBa0MsRUFBRTtJQUNyRSxNQUFNLElBQUksR0FBSSxTQUF1QixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0QsSUFBSSxPQUFPLElBQUksS0FBSyxVQUFVLEVBQUU7UUFDOUIsT0FBTyxDQUFDLENBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN4QztTQUFNO1FBQ0wsT0FBd0MsU0FBUyxDQUFDO0tBQ25EO0FBQ0gsQ0FBQyxDQUFDO0FBRUosTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQzVCLENBQUMsVUFBMEIsRUFBa0MsRUFBRTtJQUM3RCxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDakQsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUNELE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSxRQUFRLEdBQ25CLENBQUMsVUFBMEIsRUFBRSxlQUFvQyxFQUFFLEVBQUU7SUFDbkUsT0FBTyxDQUFDLE9BQXdCLEVBQUUsRUFBRTtRQUNsQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRFLElBQUksZUFBZSxFQUFFO1lBQ25CLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBRTFELE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDckMsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxTQUFTLElBQUksQ0FBQyxFQUFFLEVBQUUsMkNBQTJDO29CQUMvRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDeEM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxVQUFVLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7U0FDL0I7UUFFRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxTQUEyQixFQUFFLEdBQVcsRUFBVSxFQUFFO0lBQzFFLFFBQVEsR0FBRyxFQUFFO1FBQ1gsS0FBSyxVQUFVO1lBQ2IsT0FBTyxzQkFBc0IsQ0FBQztRQUNoQyxLQUFLLFNBQVM7WUFDWixPQUFPLHVDQUF1QyxDQUFDO1FBQ2pELEtBQUssV0FBVztZQUNkLE9BQU8sNEJBQTRCLENBQUM7UUFDdEMsS0FBSyxXQUFXO1lBQ2QsT0FBTyx5Q0FBeUMsQ0FBQztLQUNwRDtJQUVELFFBQVEsT0FBTyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDN0IsS0FBSyxRQUFRO1lBQ1gsT0FBZ0IsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDO1lBQ0UsT0FBTyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7S0FDdEM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEFzeW5jVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9ycyxcbiAgVmFsaWRhdG9yRm4sXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIFZhbGlkYXRpb25SZXN1bHQge1t2YWxpZGF0b3I6IHN0cmluZ106IHN0cmluZyB8IGJvb2xlYW47IH1cblxuZXhwb3J0IHR5cGUgQXN5bmNWYWxpZGF0b3JBcnJheSA9IEFycmF5PFZhbGlkYXRvciB8IEFzeW5jVmFsaWRhdG9yRm4+O1xuXG5leHBvcnQgdHlwZSBWYWxpZGF0b3JBcnJheSA9IEFycmF5PFZhbGlkYXRvciB8IFZhbGlkYXRvckZuPjtcblxuY29uc3Qgbm9ybWFsaXplVmFsaWRhdG9yID1cbiAgKHZhbGlkYXRvcjogVmFsaWRhdG9yIHwgVmFsaWRhdG9yRm4pOiBWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm4gPT4ge1xuICAgIGNvbnN0IGZ1bmMgPSAodmFsaWRhdG9yIGFzIFZhbGlkYXRvcikudmFsaWRhdGUuYmluZCh2YWxpZGF0b3IpO1xuICAgIGlmICh0eXBlb2YgZnVuYyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIChjOiBBYnN0cmFjdENvbnRyb2wpID0+IGZ1bmMoYyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8VmFsaWRhdG9yRm4gfCBBc3luY1ZhbGlkYXRvckZuPiB2YWxpZGF0b3I7XG4gICAgfVxuICB9O1xuXG5leHBvcnQgY29uc3QgY29tcG9zZVZhbGlkYXRvcnMgPVxuICAodmFsaWRhdG9yczogVmFsaWRhdG9yQXJyYXkpOiBBc3luY1ZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm4gPT4ge1xuICAgIGlmICh2YWxpZGF0b3JzID09IG51bGwgfHwgdmFsaWRhdG9ycy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gVmFsaWRhdG9ycy5jb21wb3NlKHZhbGlkYXRvcnMubWFwKG5vcm1hbGl6ZVZhbGlkYXRvcikpO1xuICB9O1xuXG5leHBvcnQgY29uc3QgdmFsaWRhdGUgPVxuICAodmFsaWRhdG9yczogVmFsaWRhdG9yQXJyYXksIGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JBcnJheSkgPT4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICBjb25zdCBzeW5jaHJvbm91c1ZhbGlkID0gKCkgPT4gY29tcG9zZVZhbGlkYXRvcnModmFsaWRhdG9ycykoY29udHJvbCk7XG5cbiAgICAgIGlmIChhc3luY1ZhbGlkYXRvcnMpIHtcbiAgICAgICAgY29uc3QgYXN5bmNWYWxpZGF0b3IgPSBjb21wb3NlVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnMpO1xuXG4gICAgICAgIHJldHVybiBhc3luY1ZhbGlkYXRvcihjb250cm9sKS5tYXAodiA9PiB7XG4gICAgICAgICAgY29uc3Qgc2Vjb25kYXJ5ID0gc3luY2hyb25vdXNWYWxpZCgpO1xuICAgICAgICAgIGlmIChzZWNvbmRhcnkgfHwgdikgeyAvLyBjb21wb3NlIGFzeW5jIGFuZCBzeW5jIHZhbGlkYXRvciByZXN1bHRzXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc2Vjb25kYXJ5LCB2KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsaWRhdG9ycykge1xuICAgICAgICByZXR1cm4gb2Yoc3luY2hyb25vdXNWYWxpZCgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH07XG4gIH07XG5cbmV4cG9ydCBjb25zdCBtZXNzYWdlID0gKHZhbGlkYXRvcjogVmFsaWRhdGlvblJlc3VsdCwga2V5OiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBzd2l0Y2ggKGtleSkge1xuICAgIGNhc2UgJ3JlcXVpcmVkJzpcbiAgICAgIHJldHVybiAnUGxlYXNlIGVudGVyIGEgdmFsdWUnO1xuICAgIGNhc2UgJ3BhdHRlcm4nOlxuICAgICAgcmV0dXJuICdWYWx1ZSBkb2VzIG5vdCBtYXRjaCByZXF1aXJlZCBwYXR0ZXJuJztcbiAgICBjYXNlICdtaW5sZW5ndGgnOlxuICAgICAgcmV0dXJuICdWYWx1ZSBtdXN0IGJlIE4gY2hhcmFjdGVycyc7XG4gICAgY2FzZSAnbWF4bGVuZ3RoJzpcbiAgICAgIHJldHVybiAnVmFsdWUgbXVzdCBiZSBhIG1heGltdW0gb2YgTiBjaGFyYWN0ZXJzJztcbiAgfVxuXG4gIHN3aXRjaCAodHlwZW9mIHZhbGlkYXRvcltrZXldKSB7XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiA8c3RyaW5nPiB2YWxpZGF0b3Jba2V5XTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGBWYWxpZGF0aW9uIGZhaWxlZDogJHtrZXl9YDtcbiAgfVxufTtcbiJdfQ==