UNPKG

moh-common-lib

Version:

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

92 lines 7.28 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 {?} */ var 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 {?} */ var 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 {?} */ var 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 {?} */ function (control) { return validatePC(control, hasMask, bcOnly); }); } var ValidatePostalcodeDirective = /** @class */ (function () { function ValidatePostalcodeDirective() { this.hasMask = true; this.bcOnly = false; } /** * @param {?} control * @return {?} */ ValidatePostalcodeDirective.prototype.validate = /** * @param {?} control * @return {?} */ function (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 }] }; return ValidatePostalcodeDirective; }()); export { ValidatePostalcodeDirective }; if (false) { /** @type {?} */ ValidatePostalcodeDirective.prototype.hasMask; /** @type {?} */ ValidatePostalcodeDirective.prototype.bcOnly; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtcG9zdGFsY29kZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tb2gtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3Bvc3RhbC1jb2RlL3ZhbGlkYXRlLXBvc3RhbGNvZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQWdDLGFBQWEsRUFBYSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQUd4RixTQUFTLFVBQVUsQ0FBQyxPQUF3QixFQUFFLE9BQWdCLEVBQUUsTUFBZTtJQUU3RSxJQUFLLE9BQU8sQ0FBQyxLQUFLLEVBQUc7UUFFbkIsSUFBSyxPQUFPLEVBQUc7O2dCQUNQLFNBQVMsR0FBVyw4Q0FBOEM7WUFFeEUsSUFBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUUsT0FBTyxDQUFDLEtBQUssQ0FBRSxFQUFHO2dCQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO2FBQzVCO1NBQ0Y7YUFBTTs7Z0JBQ0MsUUFBUSxHQUFXLE1BQU0sQ0FBRSxrQ0FBa0MsQ0FBRTtZQUVyRSxJQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBRSxPQUFPLENBQUMsS0FBSyxDQUFFLEVBQUc7Z0JBQ3JDLE9BQVEsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7YUFDakM7U0FDRjtRQUVELElBQUssTUFBTSxFQUFHOzs7Z0JBRU4sUUFBUSxHQUFXLE1BQU0sQ0FBQyx5REFBeUQsQ0FBQztZQUMxRixJQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBRSxPQUFPLENBQUMsS0FBSyxDQUFFLEVBQUc7Z0JBQ3JDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUNwQztTQUNGO0tBQ0Y7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBRSxPQUFnQixFQUFFLE1BQWU7SUFFekU7Ozs7SUFBTyxVQUFFLE9BQXdCO1FBQy9CLE9BQU8sVUFBVSxDQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUcsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQyxFQUFDO0FBQ0osQ0FBQztBQUVEO0lBQUE7UUFPVyxZQUFPLEdBQVksSUFBSSxDQUFDO1FBQ3hCLFdBQU0sR0FBWSxLQUFLLENBQUM7SUFPbkMsQ0FBQzs7Ozs7SUFMQyw4Q0FBUTs7OztJQUFSLFVBQVUsT0FBd0I7UUFFaEMsT0FBTyxVQUFVLENBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBRSxDQUFDO0lBQzNELENBQUM7O2dCQWJGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxTQUFTLEVBQUU7d0JBQ1QsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO3FCQUNoRjtpQkFDRjs7OzBCQUVFLEtBQUs7eUJBQ0wsS0FBSzs7SUFPUixrQ0FBQztDQUFBLEFBZkQsSUFlQztTQVRZLDJCQUEyQjs7O0lBQ3RDLDhDQUFpQzs7SUFDakMsNkNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JGbiwgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vLyBsb2NhbCBmdW5jdGlvblxyXG5mdW5jdGlvbiB2YWxpZGF0ZVBDKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgaGFzTWFzazogYm9vbGVhbiwgYmNPbmx5OiBib29sZWFuKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsIHtcclxuXHJcbiAgaWYgKCBjb250cm9sLnZhbHVlICkge1xyXG5cclxuICAgIGlmICggaGFzTWFzayApIHtcclxuICAgICAgY29uc3QgY2RuRm9ybWF0OiBSZWdFeHAgPSAvXltBLVphLXpdWzAtOV1bQS1aYS16XVxccz9bMC05XVtBLVphLXpdWzAtOV0kLztcclxuXHJcbiAgICAgIGlmICggIWNkbkZvcm1hdC50ZXN0KCBjb250cm9sLnZhbHVlICkgKSB7XHJcbiAgICAgICAgcmV0dXJuIHsgJ3BhdHRlcm4nOiB0cnVlIH07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNyaXRlcmlhOiBSZWdFeHAgPSBSZWdFeHAoICdeKD89LipbYS16QS1aMC05XSlbYS16QS1aMC05IF0qJCcgKTtcclxuXHJcbiAgICAgIGlmICggIWNyaXRlcmlhLnRlc3QoIGNvbnRyb2wudmFsdWUgKSApIHtcclxuICAgICAgICByZXR1cm4gIHsgJ2ludmFsaWRDaGFyJzogdHJ1ZSB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCBiY09ubHkgKSB7XHJcbiAgICAgIC8vIFZhbGlkIGNoYXJhY3RlcnMgZm9yIEJDIHBvc3RhbCBjb2RlXHJcbiAgICAgIGNvbnN0IGJjRm9ybWF0OiBSZWdFeHAgPSBSZWdFeHAoJ15bVnZdXFxcXGRbQUJDRUdISi1OUFJTVFYtWl1bIF0/XFxcXGRbQUJDRUdISi1OUFJTVFYtWl1cXFxcZCQnKTtcclxuICAgICAgaWYgKCAhYmNGb3JtYXQudGVzdCggY29udHJvbC52YWx1ZSApICkge1xyXG4gICAgICAgIHJldHVybiB7ICdpbnZhbGlkQkNQb3N0YWwnOiB0cnVlIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb21tb25WYWxpZGF0ZVBvc3RhbGNvZGUoIGhhc01hc2s6IGJvb2xlYW4sIGJjT25seTogYm9vbGVhbiApOiBWYWxpZGF0b3JGbiB7XHJcblxyXG4gIHJldHVybiAoIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCApOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB8IG51bGwgPT4ge1xyXG4gICAgcmV0dXJuIHZhbGlkYXRlUEMoIGNvbnRyb2wsIGhhc01hc2sgLCBiY09ubHkpO1xyXG4gIH07XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2NvbW1vblZhbGlkYXRlUG9zdGFsY29kZV0nLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBWYWxpZGF0ZVBvc3RhbGNvZGVEaXJlY3RpdmUsIG11bHRpOiB0cnVlfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRlUG9zdGFsY29kZURpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XHJcbiAgQElucHV0KCkgaGFzTWFzazogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgYmNPbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHZhbGlkYXRlKCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgKToge1trZXk6IHN0cmluZ106IGFueX0gfCBudWxsIHtcclxuXHJcbiAgICByZXR1cm4gdmFsaWRhdGVQQyggY29udHJvbCwgdGhpcy5oYXNNYXNrICwgdGhpcy5iY09ubHkgKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==