UNPKG

@asi-ngtools/lib

Version:

This project is a little components library, simple to use, which will help you to simplify your project.

107 lines (106 loc) 9.38 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { Validators } from '@angular/forms'; import * as nh from '../native-helper'; import moment from 'moment'; /** * Custom from validators */ export class AsiValidators { /** * @param {?} control * @return {?} */ static email(control) { if (control.value == null) { return null; } else { return Validators.email(control); } } /** * @param {?} minDateControl * @return {?} */ static minDateFromControl(minDateControl) { /** @type {?} */ const validator = (control) => { if (control.value != null && minDateControl.value != null && moment(control.value).isBefore(minDateControl.value, 'day')) { return { minDate: { valid: false } }; } else { return null; } }; return validator; } /** * @param {?} maxDateControl * @return {?} */ static maxDateFromControl(maxDateControl) { /** @type {?} */ const validator = (control) => { if (control.value != null && maxDateControl.value != null && moment(control.value).isAfter(maxDateControl.value, 'day')) { return { maxDate: { valid: false } }; } else { return null; } }; return validator; } /** * @param {?} control * @return {?} */ static dateFormat(control) { if (control.value != null && control.value.error) { return { format: { valid: false } }; } else { return null; } } /** * @param {?} maxSize * @return {?} */ static fileSize(maxSize) { /** @type {?} */ const validator = (control) => { /** @type {?} */ const rightSize = !control.value || control.value.size <= maxSize; return rightSize ? null : { 'fileSize': { valid: false } }; }; return validator; } /** * @param {?} extensions * @return {?} */ static fileExtension(extensions) { /** @type {?} */ const validator = (control) => { if (!control.value || !control.value.name) { return null; } /** @type {?} */ const rightExtension = nh.find(extensions, (extension) => control.value.name.endsWith(extension)); return rightExtension ? null : { fileExtension: { valid: false } }; }; return validator; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNpLXZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYXNpLW5ndG9vbHMvbGliLyIsInNvdXJjZXMiOlsibGliL3ZhbGlkYXRvcnMvYXNpLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBcUMsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2QyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7QUFLNUIsTUFBTTs7Ozs7SUFDSixNQUFNLENBQUMsS0FBSyxDQUFDLE9BQXdCO1FBQ25DLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDO1NBQ2I7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2xDO0tBQ0Y7Ozs7O0lBRUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGNBQStCOztRQUN2RCxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7WUFDdEUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksY0FBYyxDQUFDLEtBQUssSUFBSSxJQUFJO21CQUNwRCxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakUsTUFBTSxDQUFDO29CQUNMLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7aUJBQzFCLENBQUM7YUFDSDtZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGLENBQUM7UUFDRixNQUFNLENBQUMsU0FBUyxDQUFDO0tBQ2xCOzs7OztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxjQUErQjs7UUFDdkQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUF3QixFQUEyQixFQUFFO1lBQ3RFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLGNBQWMsQ0FBQyxLQUFLLElBQUksSUFBSTttQkFDcEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hFLE1BQU0sQ0FBQztvQkFDTCxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2lCQUMxQixDQUFDO2FBQ0g7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDTixNQUFNLENBQUMsSUFBSSxDQUFDO2FBQ2I7U0FDRixDQUFDO1FBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQztLQUNsQjs7Ozs7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQXdCO1FBQ3hDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNqRCxNQUFNLENBQUM7Z0JBQ0wsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTthQUN6QixDQUFDO1NBQ0g7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDYjtLQUNGOzs7OztJQUVELE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBZTs7UUFDN0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUF3QixFQUEyQixFQUFFOztZQUN0RSxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDO1lBQ2xFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUM1RCxDQUFDO1FBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQztLQUNsQjs7Ozs7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLFVBQXlCOztRQUM1QyxNQUFNLFNBQVMsR0FBRyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7WUFDdEUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDO2FBQ2I7O1lBQ0QsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2xHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUNwRSxDQUFDO1FBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQztLQUNsQjtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCAqIGFzIG5oIGZyb20gJy4uL25hdGl2ZS1oZWxwZXInO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XHJcblxyXG4vKipcclxuICogQ3VzdG9tIGZyb20gIHZhbGlkYXRvcnNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBBc2lWYWxpZGF0b3JzIHtcclxuICBzdGF0aWMgZW1haWwoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgaWYgKGNvbnRyb2wudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBWYWxpZGF0b3JzLmVtYWlsKGNvbnRyb2wpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIG1pbkRhdGVGcm9tQ29udHJvbChtaW5EYXRlQ29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgY29uc3QgdmFsaWRhdG9yID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgICAgaWYgKGNvbnRyb2wudmFsdWUgIT0gbnVsbCAmJiBtaW5EYXRlQ29udHJvbC52YWx1ZSAhPSBudWxsXHJcbiAgICAgICAgJiYgbW9tZW50KGNvbnRyb2wudmFsdWUpLmlzQmVmb3JlKG1pbkRhdGVDb250cm9sLnZhbHVlLCAnZGF5JykpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbWluRGF0ZTogeyB2YWxpZDogZmFsc2UgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gdmFsaWRhdG9yO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG1heERhdGVGcm9tQ29udHJvbChtYXhEYXRlQ29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgY29uc3QgdmFsaWRhdG9yID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgICAgaWYgKGNvbnRyb2wudmFsdWUgIT0gbnVsbCAmJiBtYXhEYXRlQ29udHJvbC52YWx1ZSAhPSBudWxsXHJcbiAgICAgICAgJiYgbW9tZW50KGNvbnRyb2wudmFsdWUpLmlzQWZ0ZXIobWF4RGF0ZUNvbnRyb2wudmFsdWUsICdkYXknKSkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBtYXhEYXRlOiB7IHZhbGlkOiBmYWxzZSB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHJldHVybiB2YWxpZGF0b3I7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZGF0ZUZvcm1hdChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBpZiAoY29udHJvbC52YWx1ZSAhPSBudWxsICYmIGNvbnRyb2wudmFsdWUuZXJyb3IpIHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBmb3JtYXQ6IHsgdmFsaWQ6IGZhbHNlIH1cclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZpbGVTaXplKG1heFNpemU6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcclxuICAgIGNvbnN0IHZhbGlkYXRvciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICAgIGNvbnN0IHJpZ2h0U2l6ZSA9ICFjb250cm9sLnZhbHVlIHx8IGNvbnRyb2wudmFsdWUuc2l6ZSA8PSBtYXhTaXplO1xyXG4gICAgICByZXR1cm4gcmlnaHRTaXplID8gbnVsbCA6IHsgJ2ZpbGVTaXplJzogeyB2YWxpZDogZmFsc2UgfSB9O1xyXG4gICAgfTtcclxuICAgIHJldHVybiB2YWxpZGF0b3I7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZmlsZUV4dGVuc2lvbihleHRlbnNpb25zOiBBcnJheTxTdHJpbmc+KTogVmFsaWRhdG9yRm4ge1xyXG4gICAgY29uc3QgdmFsaWRhdG9yID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgICAgaWYgKCFjb250cm9sLnZhbHVlIHx8ICFjb250cm9sLnZhbHVlLm5hbWUpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCByaWdodEV4dGVuc2lvbiA9IG5oLmZpbmQoZXh0ZW5zaW9ucywgKGV4dGVuc2lvbikgPT4gY29udHJvbC52YWx1ZS5uYW1lLmVuZHNXaXRoKGV4dGVuc2lvbikpO1xyXG4gICAgICByZXR1cm4gcmlnaHRFeHRlbnNpb24gPyBudWxsIDogeyBmaWxlRXh0ZW5zaW9uOiB7IHZhbGlkOiBmYWxzZSB9IH07XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHZhbGlkYXRvcjtcclxuICB9XHJcbn1cclxuIl19