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
JavaScript
/**
* @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==