UNPKG

moh-common-lib

Version:

A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).

86 lines 6.95 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, Input } from '@angular/core'; import { NG_VALIDATORS } from '@angular/forms'; // local function /** * @param {?} control * @param {?} hasMask * @param {?} bcOnly * @return {?} */ function validatePC(control, hasMask, bcOnly) { if (control.value) { if (hasMask) { /** @type {?} */ const cdnFormat = /^[A-Za-z][0-9][A-Za-z]\s?[0-9][A-Za-z][0-9]$/; if (!cdnFormat.test(control.value)) { return { 'pattern': true }; } } else { /** @type {?} */ const criteria = RegExp('^(?=.*[a-zA-Z0-9])[a-zA-Z0-9 ]*$'); if (!criteria.test(control.value)) { return { 'invalidChar': true }; } } if (bcOnly) { // Valid characters for BC postal code /** @type {?} */ const bcFormat = RegExp('^[Vv]\\d[ABCEGHJ-NPRSTV-Z][ ]?\\d[ABCEGHJ-NPRSTV-Z]\\d$'); if (!bcFormat.test(control.value)) { return { 'invalidBCPostal': true }; } } } return null; } /** * @param {?} hasMask * @param {?} bcOnly * @return {?} */ export function commonValidatePostalcode(hasMask, bcOnly) { return (/** * @param {?} control * @return {?} */ (control) => { return validatePC(control, hasMask, bcOnly); }); } export class ValidatePostalcodeDirective { constructor() { this.hasMask = true; this.bcOnly = false; } /** * @param {?} control * @return {?} */ validate(control) { return validatePC(control, this.hasMask, this.bcOnly); } } ValidatePostalcodeDirective.decorators = [ { type: Directive, args: [{ selector: '[commonValidatePostalcode]', providers: [ { provide: NG_VALIDATORS, useExisting: ValidatePostalcodeDirective, multi: true } ] },] } ]; ValidatePostalcodeDirective.propDecorators = { hasMask: [{ type: Input }], bcOnly: [{ type: Input }] }; if (false) { /** @type {?} */ ValidatePostalcodeDirective.prototype.hasMask; /** @type {?} */ ValidatePostalcodeDirective.prototype.bcOnly; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcG9zdGFsY29kZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tb2gtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3Bvc3RhbC1jb2RlL3ZhbGlkYXRlLXBvc3RhbGNvZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQWdDLGFBQWEsRUFBYSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQUd4RixTQUFTLFVBQVUsQ0FBQyxPQUF3QixFQUFFLE9BQWdCLEVBQUUsTUFBZTtJQUU3RSxJQUFLLE9BQU8sQ0FBQyxLQUFLLEVBQUc7UUFFbkIsSUFBSyxPQUFPLEVBQUc7O2tCQUNQLFNBQVMsR0FBVyw4Q0FBOEM7WUFFeEUsSUFBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUUsT0FBTyxDQUFDLEtBQUssQ0FBRSxFQUFHO2dCQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzVCO1NBQ0Y7YUFBTTs7a0JBQ0MsUUFBUSxHQUFXLE1BQU0sQ0FBRSxrQ0FBa0MsQ0FBRTtZQUVyRSxJQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBRSxPQUFPLENBQUMsS0FBSyxDQUFFLEVBQUc7Z0JBQ3JDLE9BQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDakM7U0FDRjtRQUVELElBQUssTUFBTSxFQUFHOzs7a0JBRU4sUUFBUSxHQUFXLE1BQU0sQ0FBQyx5REFBeUQsQ0FBQztZQUMxRixJQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBRSxPQUFPLENBQUMsS0FBSyxDQUFFLEVBQUc7Z0JBQ3JDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUNwQztTQUNGO0tBQ0Y7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBRSxPQUFnQixFQUFFLE1BQWU7SUFFekU7Ozs7SUFBTyxDQUFFLE9BQXdCLEVBQXNDLEVBQUU7UUFDdkUsT0FBTyxVQUFVLENBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDLEVBQUM7QUFDSixDQUFDO0FBUUQsTUFBTSxPQUFPLDJCQUEyQjtJQU54QztRQU9XLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDeEIsV0FBTSxHQUFZLEtBQUssQ0FBQztJQU9uQyxDQUFDOzs7OztJQUxDLFFBQVEsQ0FBRSxPQUF3QjtRQUVoQyxPQUFPLFVBQVUsQ0FBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRyxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUM7SUFDM0QsQ0FBQzs7O1lBYkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0QkFBNEI7Z0JBQ3RDLFNBQVMsRUFBRTtvQkFDVCxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7aUJBQ2hGO2FBQ0Y7OztzQkFFRSxLQUFLO3FCQUNMLEtBQUs7Ozs7SUFETiw4Q0FBaUM7O0lBQ2pDLDZDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdG9yRm4sIEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLy8gbG9jYWwgZnVuY3Rpb25cclxuZnVuY3Rpb24gdmFsaWRhdGVQQyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGhhc01hc2s6IGJvb2xlYW4sIGJjT25seTogYm9vbGVhbik6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCB7XHJcblxyXG4gIGlmICggY29udHJvbC52YWx1ZSApIHtcclxuXHJcbiAgICBpZiAoIGhhc01hc2sgKSB7XHJcbiAgICAgIGNvbnN0IGNkbkZvcm1hdDogUmVnRXhwID0gL15bQS1aYS16XVswLTldW0EtWmEtel1cXHM/WzAtOV1bQS1aYS16XVswLTldJC87XHJcblxyXG4gICAgICBpZiAoICFjZG5Gb3JtYXQudGVzdCggY29udHJvbC52YWx1ZSApICkge1xyXG4gICAgICAgIHJldHVybiB7ICdwYXR0ZXJuJzogdHJ1ZSB9O1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBjcml0ZXJpYTogUmVnRXhwID0gUmVnRXhwKCAnXig/PS4qW2EtekEtWjAtOV0pW2EtekEtWjAtOSBdKiQnICk7XHJcblxyXG4gICAgICBpZiAoICFjcml0ZXJpYS50ZXN0KCBjb250cm9sLnZhbHVlICkgKSB7XHJcbiAgICAgICAgcmV0dXJuICB7ICdpbnZhbGlkQ2hhcic6IHRydWUgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICggYmNPbmx5ICkge1xyXG4gICAgICAvLyBWYWxpZCBjaGFyYWN0ZXJzIGZvciBCQyBwb3N0YWwgY29kZVxyXG4gICAgICBjb25zdCBiY0Zvcm1hdDogUmVnRXhwID0gUmVnRXhwKCdeW1Z2XVxcXFxkW0FCQ0VHSEotTlBSU1RWLVpdWyBdP1xcXFxkW0FCQ0VHSEotTlBSU1RWLVpdXFxcXGQkJyk7XHJcbiAgICAgIGlmICggIWJjRm9ybWF0LnRlc3QoIGNvbnRyb2wudmFsdWUgKSApIHtcclxuICAgICAgICByZXR1cm4geyAnaW52YWxpZEJDUG9zdGFsJzogdHJ1ZSB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY29tbW9uVmFsaWRhdGVQb3N0YWxjb2RlKCBoYXNNYXNrOiBib29sZWFuLCBiY09ubHk6IGJvb2xlYW4gKTogVmFsaWRhdG9yRm4ge1xyXG5cclxuICByZXR1cm4gKCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcclxuICAgIHJldHVybiB2YWxpZGF0ZVBDKCBjb250cm9sLCBoYXNNYXNrICwgYmNPbmx5KTtcclxuICB9O1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tjb21tb25WYWxpZGF0ZVBvc3RhbGNvZGVdJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogVmFsaWRhdGVQb3N0YWxjb2RlRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZX1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0ZVBvc3RhbGNvZGVEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xyXG4gIEBJbnB1dCgpIGhhc01hc2s6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGJjT25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICB2YWxpZGF0ZSggY29udHJvbDogQWJzdHJhY3RDb250cm9sICk6IHtba2V5OiBzdHJpbmddOiBhbnl9IHwgbnVsbCB7XHJcblxyXG4gICAgcmV0dXJuIHZhbGlkYXRlUEMoIGNvbnRyb2wsIHRoaXMuaGFzTWFzayAsIHRoaXMuYmNPbmx5ICk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=