moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
177 lines • 13.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, Input, Optional, Self, Output, EventEmitter } from '@angular/core';
import { NgControl } from '@angular/forms';
import { AbstractFormControl } from '../../models/abstract-form-control';
import { LabelReplacementTag } from '../../models/error-message.interface';
/**
* TODO DOCUMENT NEED TO USE NGMODEL FOR REQUIRED TO WORK. Also test with reactive forms to see if still nec
*/
var EmailComponent = /** @class */ (function (_super) {
tslib_1.__extends(EmailComponent, _super);
function EmailComponent(controlDir) {
var _this = _super.call(this) || this;
_this.controlDir = controlDir;
_this.label = 'Email';
_this.maxlength = '255';
_this.labelforId = 'email_' + _this.objectId;
_this.required = false;
_this.valueChange = new EventEmitter();
_this.blur = new EventEmitter();
_this.email = '';
_this._defaultErrMsg = {
required: LabelReplacementTag + " is required.",
invalidEmail: LabelReplacementTag + " must be properly formatted (e.g. name@domain.com)",
invalidChars: LabelReplacementTag + " must contain letters, numbers and/or symbols(e.g. #, @, !)."
};
_this._formatCriteria = /^(\S+)@(\S+)\.(\S+)$/;
_this._asciiPrintable = /^[ -~]+$/;
if (controlDir) {
controlDir.valueAccessor = _this;
}
return _this;
}
Object.defineProperty(EmailComponent.prototype, "value", {
get: /**
* @return {?}
*/
function () {
return this.email;
},
set: /**
* @param {?} val
* @return {?}
*/
function (val) {
if (val) {
this.email = val;
}
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
EmailComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
_super.prototype.ngOnInit.call(this);
this.registerValidation(this.controlDir, this.validateSelf);
};
/**
* @param {?} value
* @return {?}
*/
EmailComponent.prototype.onValueChange = /**
* @param {?} value
* @return {?}
*/
function (value) {
this.email = value;
this._onChange(value);
this.valueChange.emit(value);
};
/**
* @param {?} event
* @return {?}
*/
EmailComponent.prototype.onBlur = /**
* @param {?} event
* @return {?}
*/
function (event) {
this._onTouched(event);
this.blur.emit(event.target.value);
};
/**
* @param {?} value
* @return {?}
*/
EmailComponent.prototype.writeValue = /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value) {
this.email = value;
}
};
/**
* @private
* @return {?}
*/
EmailComponent.prototype.validateSelf = /**
* @private
* @return {?}
*/
function () {
if (this.email) {
/** @type {?} */
var result = this._formatCriteria.test(this.email);
if (result) {
result = this._asciiPrintable.test(this.email);
return result ? null : { invalidChars: true };
}
return { invalidEmail: true };
}
return null;
};
EmailComponent.decorators = [
{ type: Component, args: [{
selector: 'common-email',
template: "\r\n<label for=\"{{labelforId}}\" class=\"control-label\">{{label}}</label>\r\n<input type=\"text\"\r\n class=\"form-control\"\r\n id=\"{{labelforId}}\"\r\n [value]=\"email\"\r\n (change)=\"onValueChange( $event.target.value )\"\r\n (blur)=\"onBlur( $event )\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [attr.maxlength]=\"maxlength\"\r\n autocomplete=\"off\" />\r\n<!-- Error messages for component -->\r\n<common-error-container [displayError]=\"controlDir && !disabled && (controlDir.dirty || controlDir.touched) && controlDir?.errors\">\r\n <div *ngIf=\"controlDir?.errors?.required\">\r\n {{_defaultErrMsg.required}}\r\n </div>\r\n <div *ngIf=\"controlDir?.errors?.invalidEmail\">\r\n {{_defaultErrMsg.invalidEmail}}\r\n </div>\r\n <div *ngIf=\"controlDir?.errors?.invalidChars\">\r\n {{_defaultErrMsg.invalidChars}}\r\n </div>\r\n</common-error-container>\r\n\r\n",
styles: [".form-group{margin-bottom:1.5rem}"]
}] }
];
/** @nocollapse */
EmailComponent.ctorParameters = function () { return [
{ type: NgControl, decorators: [{ type: Optional }, { type: Self }] }
]; };
EmailComponent.propDecorators = {
label: [{ type: Input }],
maxlength: [{ type: Input }],
labelforId: [{ type: Input }],
required: [{ type: Input }],
value: [{ type: Input }],
valueChange: [{ type: Output }],
blur: [{ type: Output }]
};
return EmailComponent;
}(AbstractFormControl));
export { EmailComponent };
if (false) {
/** @type {?} */
EmailComponent.prototype.label;
/** @type {?} */
EmailComponent.prototype.maxlength;
/** @type {?} */
EmailComponent.prototype.labelforId;
/** @type {?} */
EmailComponent.prototype.required;
/** @type {?} */
EmailComponent.prototype.valueChange;
/** @type {?} */
EmailComponent.prototype.blur;
/** @type {?} */
EmailComponent.prototype.email;
/** @type {?} */
EmailComponent.prototype._defaultErrMsg;
/**
* @type {?}
* @private
*/
EmailComponent.prototype._formatCriteria;
/**
* @type {?}
* @private
*/
EmailComponent.prototype._asciiPrintable;
/** @type {?} */
EmailComponent.prototype.controlDir;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW9oLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9lbWFpbC9lbWFpbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLE1BQU0sRUFDTixZQUFZLEVBQ0osTUFBTSxlQUFlLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFLekY7SUFLb0MsMENBQW1CO0lBK0JyRCx3QkFBd0MsVUFBcUI7UUFBN0QsWUFDRSxpQkFBTyxTQUlSO1FBTHVDLGdCQUFVLEdBQVYsVUFBVSxDQUFXO1FBN0JwRCxXQUFLLEdBQVcsT0FBTyxDQUFDO1FBQ3hCLGVBQVMsR0FBVyxLQUFLLENBQUM7UUFDMUIsZ0JBQVUsR0FBVyxRQUFRLEdBQUcsS0FBSSxDQUFDLFFBQVEsQ0FBQztRQUM5QyxjQUFRLEdBQVksS0FBSyxDQUFDO1FBWXpCLGlCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDL0QsVUFBSSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTVELFdBQUssR0FBVyxFQUFFLENBQUM7UUFFbkIsb0JBQWMsR0FBaUI7WUFDN0IsUUFBUSxFQUFLLG1CQUFtQixrQkFBZTtZQUMvQyxZQUFZLEVBQUssbUJBQW1CLHVEQUFvRDtZQUN4RixZQUFZLEVBQUssbUJBQW1CLGlFQUE4RDtTQUNuRyxDQUFDO1FBRU0scUJBQWUsR0FBVyxzQkFBc0IsQ0FBQztRQUNqRCxxQkFBZSxHQUFXLFVBQVUsQ0FBQztRQUkzQyxJQUFLLFVBQVUsRUFBRztZQUNoQixVQUFVLENBQUMsYUFBYSxHQUFHLEtBQUksQ0FBQztTQUNqQzs7SUFDSCxDQUFDO0lBN0JELHNCQUNJLGlDQUFLOzs7O1FBS1Q7WUFDRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEIsQ0FBQzs7Ozs7UUFSRCxVQUNXLEdBQVc7WUFDcEIsSUFBSyxHQUFHLEVBQUc7Z0JBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7YUFDbEI7UUFDSCxDQUFDOzs7T0FBQTs7OztJQTBCRCxpQ0FBUTs7O0lBQVI7UUFDRSxpQkFBTSxRQUFRLFdBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsa0JBQWtCLENBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFFLENBQUM7SUFDaEUsQ0FBQzs7Ozs7SUFFRCxzQ0FBYTs7OztJQUFiLFVBQWUsS0FBVTtRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxDQUFFLEtBQUssQ0FBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFFLEtBQUssQ0FBRSxDQUFDO0lBQ2pDLENBQUM7Ozs7O0lBRUQsK0JBQU07Ozs7SUFBTixVQUFRLEtBQVU7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBRSxDQUFDO0lBQ3ZDLENBQUM7Ozs7O0lBRUQsbUNBQVU7Ozs7SUFBVixVQUFZLEtBQVU7UUFDcEIsSUFBSyxLQUFLLEVBQUc7WUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNwQjtJQUNILENBQUM7Ozs7O0lBRU8scUNBQVk7Ozs7SUFBcEI7UUFFRSxJQUFLLElBQUksQ0FBQyxLQUFLLEVBQUc7O2dCQUVaLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFFO1lBQ3BELElBQUssTUFBTSxFQUFHO2dCQUNaLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFFLENBQUM7Z0JBQ2pELE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO2FBQy9DO1lBQ0QsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztTQUMvQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7Z0JBOUVGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsdThCQUFxQzs7aUJBRXRDOzs7O2dCQVhRLFNBQVMsdUJBMkNGLFFBQVEsWUFBSSxJQUFJOzs7d0JBN0I3QixLQUFLOzRCQUNMLEtBQUs7NkJBQ0wsS0FBSzsyQkFDTCxLQUFLO3dCQUVMLEtBQUs7OEJBVUwsTUFBTTt1QkFDTixNQUFNOztJQXdEVCxxQkFBQztDQUFBLEFBL0VELENBS29DLG1CQUFtQixHQTBFdEQ7U0ExRVksY0FBYzs7O0lBRXpCLCtCQUFpQzs7SUFDakMsbUNBQW1DOztJQUNuQyxvQ0FBdUQ7O0lBQ3ZELGtDQUFtQzs7SUFZbkMscUNBQXlFOztJQUN6RSw4QkFBNEQ7O0lBRTVELCtCQUFtQjs7SUFFbkIsd0NBSUU7Ozs7O0lBRUYseUNBQXlEOzs7OztJQUN6RCx5Q0FBNkM7O0lBRWhDLG9DQUFnRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNlbGYsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdEZvcm1Db250cm9sIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Fic3RyYWN0LWZvcm0tY29udHJvbCc7XHJcbmltcG9ydCB7IEVycm9yTWVzc2FnZSwgTGFiZWxSZXBsYWNlbWVudFRhZyB9IGZyb20gJy4uLy4uL21vZGVscy9lcnJvci1tZXNzYWdlLmludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogVE9ETyBET0NVTUVOVCBORUVEIFRPIFVTRSBOR01PREVMIEZPUiBSRVFVSVJFRCBUTyBXT1JLLiBBbHNvIHRlc3Qgd2l0aCByZWFjdGl2ZSBmb3JtcyB0byBzZWUgaWYgc3RpbGwgbmVjXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvbW1vbi1lbWFpbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VtYWlsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lbWFpbC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFbWFpbENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Rm9ybUNvbnRyb2wgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ0VtYWlsJztcclxuICBASW5wdXQoKSBtYXhsZW5ndGg6IHN0cmluZyA9ICcyNTUnO1xyXG4gIEBJbnB1dCgpIGxhYmVsZm9ySWQ6IHN0cmluZyA9ICdlbWFpbF8nICsgdGhpcy5vYmplY3RJZDtcclxuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZSggdmFsOiBzdHJpbmcgKSB7XHJcbiAgICBpZiAoIHZhbCApIHtcclxuICAgICAgdGhpcy5lbWFpbCA9IHZhbDtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZW1haWw7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGVtYWlsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgX2RlZmF1bHRFcnJNc2c6IEVycm9yTWVzc2FnZSA9IHtcclxuICAgIHJlcXVpcmVkOiBgJHtMYWJlbFJlcGxhY2VtZW50VGFnfSBpcyByZXF1aXJlZC5gLFxyXG4gICAgaW52YWxpZEVtYWlsOiBgJHtMYWJlbFJlcGxhY2VtZW50VGFnfSBtdXN0IGJlIHByb3Blcmx5IGZvcm1hdHRlZCAoZS5nLiBuYW1lQGRvbWFpbi5jb20pYCxcclxuICAgIGludmFsaWRDaGFyczogYCR7TGFiZWxSZXBsYWNlbWVudFRhZ30gbXVzdCBjb250YWluIGxldHRlcnMsIG51bWJlcnMgYW5kL29yIHN5bWJvbHMoZS5nLiAjLCBALCAhKS5gXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBfZm9ybWF0Q3JpdGVyaWE6IFJlZ0V4cCA9IC9eKFxcUyspQChcXFMrKVxcLihcXFMrKSQvO1xyXG4gIHByaXZhdGUgX2FzY2lpUHJpbnRhYmxlOiBSZWdFeHAgPSAvXlsgLX5dKyQvO1xyXG5cclxuICBjb25zdHJ1Y3RvciggQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgY29udHJvbERpcjogTmdDb250cm9sICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGlmICggY29udHJvbERpciApIHtcclxuICAgICAgY29udHJvbERpci52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuXHJcbiAgICB0aGlzLnJlZ2lzdGVyVmFsaWRhdGlvbiggdGhpcy5jb250cm9sRGlyLCB0aGlzLnZhbGlkYXRlU2VsZiApO1xyXG4gIH1cclxuXHJcbiAgb25WYWx1ZUNoYW5nZSggdmFsdWU6IGFueSApIHtcclxuICAgIHRoaXMuZW1haWwgPSB2YWx1ZTtcclxuICAgIHRoaXMuX29uQ2hhbmdlKCB2YWx1ZSApO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCB2YWx1ZSApO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKCBldmVudDogYW55ICkge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkKCBldmVudCApO1xyXG4gICAgdGhpcy5ibHVyLmVtaXQoIGV2ZW50LnRhcmdldC52YWx1ZSApO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSggdmFsdWU6IGFueSApOiB2b2lkIHtcclxuICAgIGlmICggdmFsdWUgKSB7XHJcbiAgICAgIHRoaXMuZW1haWwgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVTZWxmKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuXHJcbiAgICBpZiAoIHRoaXMuZW1haWwgKSB7XHJcblxyXG4gICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fZm9ybWF0Q3JpdGVyaWEudGVzdCggdGhpcy5lbWFpbCApO1xyXG4gICAgICBpZiAoIHJlc3VsdCApIHtcclxuICAgICAgICByZXN1bHQgPSB0aGlzLl9hc2NpaVByaW50YWJsZS50ZXN0KCB0aGlzLmVtYWlsICk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdCA/IG51bGwgOiB7IGludmFsaWRDaGFyczogdHJ1ZSB9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7IGludmFsaWRFbWFpbDogdHJ1ZSB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==