UNPKG

moh-common-lib

Version:

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

201 lines 13.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { replaceLabelTag } from './error-message.interface'; import { Input } from '@angular/core'; import { Base } from './base'; import { MoHCommonLibraryError } from '../../helpers/library-error'; // Class does not get exported - used internally /** * @abstract */ var AbstractFormControl = /** @class */ (function (_super) { tslib_1.__extends(AbstractFormControl, _super); function AbstractFormControl() { var _this = _super !== null && _super.apply(this, arguments) || this; // Default messages - must be defined in each component _this._defaultErrMsg = {}; _this.disabled = false; // Required for implementing ControlValueAccessor _this._onChange = (/** * @param {?} _ * @return {?} */ function (_) { }); _this._onTouched = (/** * @param {?=} _ * @return {?} */ function (_) { }); return _this; } /** * @return {?} */ AbstractFormControl.prototype.ngOnInit = /** * @return {?} */ function () { this.setErrorMsg(); }; // Register change function // Register change function /** * @param {?} fn * @return {?} */ AbstractFormControl.prototype.registerOnChange = // Register change function /** * @param {?} fn * @return {?} */ function (fn) { this._onChange = fn; }; // Register touched function // Register touched function /** * @param {?} fn * @return {?} */ AbstractFormControl.prototype.registerOnTouched = // Register touched function /** * @param {?} fn * @return {?} */ function (fn) { this._onTouched = fn; }; // Disable control // Disable control /** * @param {?} isDisabled * @return {?} */ AbstractFormControl.prototype.setDisabledState = // Disable control /** * @param {?} isDisabled * @return {?} */ function (isDisabled) { this.disabled = isDisabled; }; /** * @protected * @return {?} */ AbstractFormControl.prototype.setErrorMsg = /** * @protected * @return {?} */ function () { var _this = this; this.validateLabel(); // Some components have logic based off no label being submitted - strip off '(optional)' /** @type {?} */ var _label = this.label ? this.label.replace(/\s*\(.*?\)\s*/g, '') : 'Field'; if (this.errorMessage) { Object.keys(this.errorMessage).map((/** * @param {?} x * @return {?} */ function (x) { return _this._defaultErrMsg[x] = _this.errorMessage[x]; })); } // Replace label tags with label Object.keys(this._defaultErrMsg).map((/** * @param {?} x * @return {?} */ function (x) { return _this._defaultErrMsg[x] = replaceLabelTag(_this._defaultErrMsg[x], _label); })); }; /** * Register self validating method * @param control control directive * @param fn function for validating self */ /** * Register self validating method * @protected * @param {?} ngControl * @param {?} fn function for validating self * @return {?} */ AbstractFormControl.prototype.registerValidation = /** * Register self validating method * @protected * @param {?} ngControl * @param {?} fn function for validating self * @return {?} */ function (ngControl, fn) { // Register validateSelf validator so that it will be added on component initialization. // Makes the component a self validating component. var _this = this; return Promise.resolve().then((/** * @return {?} */ function () { if (ngControl) { /** @type {?} */ var allValidators = [fn.bind(_this)]; if (ngControl.control.validator) { allValidators.push(ngControl.control.validator); } ngControl.control.setValidators(allValidators); ngControl.control.updateValueAndValidity(); return ngControl; } })); }; /** * @private * @return {?} */ AbstractFormControl.prototype.validateLabel = /** * @private * @return {?} */ function () { /** @type {?} */ var labelType = typeof this.label; // If labelType is falsy, do not throw the error, since we have a backup label in case it's falsy. if (labelType !== 'string' && this.label) { /** @type {?} */ var typeMsg = "<AbstractFormControl> Invalid input provided to [label]. Label must be a string and you provided a " + labelType; throw new MoHCommonLibraryError(typeMsg); } }; AbstractFormControl.propDecorators = { label: [{ type: Input }], disabled: [{ type: Input }], errorMessage: [{ type: Input }] }; return AbstractFormControl; }(Base)); export { AbstractFormControl }; if (false) { /** @type {?} */ AbstractFormControl.prototype._defaultErrMsg; /** @type {?} */ AbstractFormControl.prototype.label; /** @type {?} */ AbstractFormControl.prototype.disabled; /** @type {?} */ AbstractFormControl.prototype.errorMessage; /** @type {?} */ AbstractFormControl.prototype._onChange; /** @type {?} */ AbstractFormControl.prototype._onTouched; /** * @abstract * @param {?} value * @return {?} */ AbstractFormControl.prototype.writeValue = function (value) { }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZm9ybS1jb250cm9sLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW9oLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2Fic3RyYWN0LWZvcm0tY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQUdwRTtJQUFrRCwrQ0FBSTtJQUF0RDtRQUFBLHFFQXdGQzs7UUFyRlUsb0JBQWMsR0FBaUIsRUFBRSxDQUFDO1FBS2xDLGNBQVEsR0FBWSxLQUFLLENBQUM7O1FBT25DLGVBQVM7Ozs7UUFBRyxVQUFDLENBQU0sSUFBTSxDQUFDLEVBQUM7UUFDM0IsZ0JBQVU7Ozs7UUFBRyxVQUFDLENBQU8sSUFBTSxDQUFDLEVBQUM7O0lBd0UvQixDQUFDOzs7O0lBckVDLHNDQUFROzs7SUFBUjtRQUNFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBS0QsMkJBQTJCOzs7Ozs7SUFDM0IsOENBQWdCOzs7Ozs7SUFBaEIsVUFBa0IsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsNEJBQTRCOzs7Ozs7SUFDNUIsK0NBQWlCOzs7Ozs7SUFBakIsVUFBbUIsRUFBTztRQUN4QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsa0JBQWtCOzs7Ozs7SUFDbEIsOENBQWdCOzs7Ozs7SUFBaEIsVUFBa0IsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFFUyx5Q0FBVzs7OztJQUFyQjtRQUFBLGlCQVlDO1FBWEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDOzs7WUFHZixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUUsZ0JBQWdCLEVBQUUsRUFBRSxDQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU87UUFFaEYsSUFBSyxJQUFJLENBQUMsWUFBWSxFQUFHO1lBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLEdBQUc7Ozs7WUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBN0MsQ0FBNkMsRUFBRSxDQUFDO1NBQzFGO1FBRUQsZ0NBQWdDO1FBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUc7Ozs7UUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZSxDQUFFLEtBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUcsTUFBTSxDQUFFLEVBQTNFLENBQTJFLEVBQUUsQ0FBQztJQUMzSCxDQUFDO0lBRUQ7Ozs7T0FJRzs7Ozs7Ozs7SUFDTyxnREFBa0I7Ozs7Ozs7SUFBNUIsVUFBOEIsU0FBb0IsRUFBRSxFQUFvQjtRQUV0RSx3RkFBd0Y7UUFDeEYsbURBQW1EO1FBSHJELGlCQWtCQztRQWJDLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUk7OztRQUFDO1lBRTVCLElBQUssU0FBUyxFQUFHOztvQkFFVCxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxDQUFDO2dCQUNyQyxJQUFLLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFHO29CQUNqQyxhQUFhLENBQUMsSUFBSSxDQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFFLENBQUM7aUJBQ25EO2dCQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUMvQyxTQUFTLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQzNDLE9BQU8sU0FBUyxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDOzs7OztJQUVPLDJDQUFhOzs7O0lBQXJCOztZQUNRLFNBQVMsR0FBRyxPQUFPLElBQUksQ0FBQyxLQUFLO1FBQ25DLGtHQUFrRztRQUNsRyxJQUFJLFNBQVMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTs7Z0JBQ2xDLE9BQU8sR0FBRyx5R0FBdUcsU0FBVztZQUNsSSxNQUFNLElBQUkscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDOzt3QkFqRkEsS0FBSzsyQkFFTCxLQUFLOytCQUdMLEtBQUs7O0lBNkVSLDBCQUFDO0NBQUEsQUF4RkQsQ0FBa0QsSUFBSSxHQXdGckQ7U0F4RnFCLG1CQUFtQjs7O0lBR3ZDLDZDQUEyQzs7SUFHM0Msb0NBQWdDOztJQUVoQyx1Q0FBbUM7O0lBR25DLDJDQUFvQzs7SUFJcEMsd0NBQTJCOztJQUMzQix5Q0FBNkI7Ozs7OztJQVE3QixnRUFBd0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFcnJvck1lc3NhZ2UsIHJlcGxhY2VMYWJlbFRhZyB9IGZyb20gJy4vZXJyb3ItbWVzc2FnZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNb0hDb21tb25MaWJyYXJ5RXJyb3IgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2xpYnJhcnktZXJyb3InO1xyXG5cclxuLy8gQ2xhc3MgZG9lcyBub3QgZ2V0IGV4cG9ydGVkIC0gdXNlZCBpbnRlcm5hbGx5XHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZvcm1Db250cm9sIGV4dGVuZHMgQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICAvLyBEZWZhdWx0IG1lc3NhZ2VzIC0gbXVzdCBiZSBkZWZpbmVkIGluIGVhY2ggY29tcG9uZW50XHJcbiAgYWJzdHJhY3QgX2RlZmF1bHRFcnJNc2c6IEVycm9yTWVzc2FnZSA9IHt9O1xyXG5cclxuICAvLyBNdXN0IGJlIGRlZmluZWQgaW4gY29tcG9uZW50IGFzIGRlZmF1bHQgbGFiZWxzIGFyZSBzcGVjaWZpYyB0byBjb21wb25lbnRcclxuICBASW5wdXQoKSBhYnN0cmFjdCBsYWJlbDogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvLyBJbnB1dCB0byBhbGxvdyBkZXZlbG9wZXJzIHRvIGNoYW5nZSBkZWZhdWx0IG1lc3NhZ2VzXHJcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBFcnJvck1lc3NhZ2U7XHJcblxyXG5cclxuICAvLyBSZXF1aXJlZCBmb3IgaW1wbGVtZW50aW5nIENvbnRyb2xWYWx1ZUFjY2Vzc29yXHJcbiAgX29uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XHJcbiAgX29uVG91Y2hlZCA9IChfPzogYW55KSA9PiB7fTtcclxuXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRFcnJvck1zZygpO1xyXG4gIH1cclxuXHJcbiAgLy8gUmVxdWlyZWQgZm9yIGltcGxlbWVudGluZyBDb250cm9sVmFsdWVBY2Nlc3NvclxyXG4gIGFic3RyYWN0IHdyaXRlVmFsdWUoIHZhbHVlOiBhbnkgKTogdm9pZDtcclxuXHJcbiAgLy8gUmVnaXN0ZXIgY2hhbmdlIGZ1bmN0aW9uXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZSggZm46IGFueSApOiB2b2lkIHtcclxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICAvLyBSZWdpc3RlciB0b3VjaGVkIGZ1bmN0aW9uXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoIGZuOiBhbnkgKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIC8vIERpc2FibGUgY29udHJvbFxyXG4gIHNldERpc2FibGVkU3RhdGUoIGlzRGlzYWJsZWQ6IGJvb2xlYW4gKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzZXRFcnJvck1zZygpIHtcclxuICAgIHRoaXMudmFsaWRhdGVMYWJlbCgpO1xyXG5cclxuICAgIC8vIFNvbWUgY29tcG9uZW50cyBoYXZlIGxvZ2ljIGJhc2VkIG9mZiBubyBsYWJlbCBiZWluZyBzdWJtaXR0ZWQgLSBzdHJpcCBvZmYgJyhvcHRpb25hbCknXHJcbiAgICBjb25zdCBfbGFiZWwgPSB0aGlzLmxhYmVsID8gdGhpcy5sYWJlbC5yZXBsYWNlKCAvXFxzKlxcKC4qP1xcKVxccyovZywgJycgKSA6ICdGaWVsZCc7XHJcblxyXG4gICAgaWYgKCB0aGlzLmVycm9yTWVzc2FnZSApIHtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5lcnJvck1lc3NhZ2UpLm1hcCggeCA9PiB0aGlzLl9kZWZhdWx0RXJyTXNnW3hdID0gdGhpcy5lcnJvck1lc3NhZ2VbeF0gKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXBsYWNlIGxhYmVsIHRhZ3Mgd2l0aCBsYWJlbFxyXG4gICAgT2JqZWN0LmtleXModGhpcy5fZGVmYXVsdEVyck1zZykubWFwKCB4ID0+IHRoaXMuX2RlZmF1bHRFcnJNc2dbeF0gPSByZXBsYWNlTGFiZWxUYWcoIHRoaXMuX2RlZmF1bHRFcnJNc2dbeF0gLCBfbGFiZWwgKSApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXIgc2VsZiB2YWxpZGF0aW5nIG1ldGhvZFxyXG4gICAqIEBwYXJhbSBjb250cm9sIGNvbnRyb2wgZGlyZWN0aXZlXHJcbiAgICogQHBhcmFtIGZuIGZ1bmN0aW9uIGZvciB2YWxpZGF0aW5nIHNlbGZcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVnaXN0ZXJWYWxpZGF0aW9uKCBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgZm46IFZhbGlkYXRpb25FcnJvcnMpIHtcclxuXHJcbiAgICAvLyBSZWdpc3RlciB2YWxpZGF0ZVNlbGYgdmFsaWRhdG9yIHNvIHRoYXQgaXQgd2lsbCBiZSBhZGRlZCBvbiBjb21wb25lbnQgaW5pdGlhbGl6YXRpb24uXHJcbiAgICAvLyBNYWtlcyB0aGUgY29tcG9uZW50IGEgc2VsZiB2YWxpZGF0aW5nIGNvbXBvbmVudC5cclxuXHJcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XHJcblxyXG4gICAgICBpZiAoIG5nQ29udHJvbCApIHtcclxuXHJcbiAgICAgICAgY29uc3QgYWxsVmFsaWRhdG9ycyA9IFtmbi5iaW5kKHRoaXMpXTtcclxuICAgICAgICBpZiAoIG5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvciApIHtcclxuICAgICAgICAgIGFsbFZhbGlkYXRvcnMucHVzaCggbmdDb250cm9sLmNvbnRyb2wudmFsaWRhdG9yICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG5nQ29udHJvbC5jb250cm9sLnNldFZhbGlkYXRvcnMoYWxsVmFsaWRhdG9ycyk7XHJcbiAgICAgICAgbmdDb250cm9sLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgIHJldHVybiBuZ0NvbnRyb2w7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB2YWxpZGF0ZUxhYmVsKCkge1xyXG4gICAgY29uc3QgbGFiZWxUeXBlID0gdHlwZW9mIHRoaXMubGFiZWw7XHJcbiAgICAvLyBJZiBsYWJlbFR5cGUgaXMgZmFsc3ksIGRvIG5vdCB0aHJvdyB0aGUgZXJyb3IsIHNpbmNlIHdlIGhhdmUgYSBiYWNrdXAgbGFiZWwgaW4gY2FzZSBpdCdzIGZhbHN5LlxyXG4gICAgaWYgKGxhYmVsVHlwZSAhPT0gJ3N0cmluZycgJiYgdGhpcy5sYWJlbCkge1xyXG4gICAgICBjb25zdCB0eXBlTXNnID0gYDxBYnN0cmFjdEZvcm1Db250cm9sPiBJbnZhbGlkIGlucHV0IHByb3ZpZGVkIHRvIFtsYWJlbF0uICBMYWJlbCBtdXN0IGJlIGEgc3RyaW5nIGFuZCB5b3UgcHJvdmlkZWQgYSAke2xhYmVsVHlwZX1gO1xyXG4gICAgICB0aHJvdyBuZXcgTW9IQ29tbW9uTGlicmFyeUVycm9yKHR5cGVNc2cpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=