UNPKG

moh-common-lib

Version:

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

198 lines 17.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, Input, Output, EventEmitter, Optional, Self } from '@angular/core'; import { NgControl } from '@angular/forms'; import { CANADA } from '../country/country.component'; import { AbstractFormControl } from '../../models/abstract-form-control'; import { LabelReplacementTag } from '../../models/error-message.interface'; /** @type {?} */ export var BRITISH_COLUMBIA = 'BC'; /** * @record */ export function ProvinceList() { } if (false) { /** @type {?} */ ProvinceList.prototype.provinceCode; /** @type {?} */ ProvinceList.prototype.description; /** @type {?} */ ProvinceList.prototype.country; } /** @type {?} */ export var PROVINCE_LIST = [ { provinceCode: 'AB', description: 'Alberta', country: CANADA }, { provinceCode: 'BC', description: 'British Columbia', country: CANADA }, { provinceCode: 'MB', description: 'Manitoba', country: CANADA }, { provinceCode: 'NB', description: 'New Brunswick', country: CANADA }, { provinceCode: 'NL', description: 'Newfoundland and Labrador', country: CANADA }, { provinceCode: 'NS', description: 'Nova Scotia', country: CANADA }, { provinceCode: 'ON', description: 'Ontario', country: CANADA }, { provinceCode: 'PE', description: 'Prince Edward Island', country: CANADA }, { provinceCode: 'QC', description: 'Quebec', country: CANADA }, { provinceCode: 'SK', description: 'Saskatchewan', country: CANADA }, { provinceCode: 'NT', description: 'Northwest Territories', country: CANADA }, { provinceCode: 'NU', description: 'Nunavut', country: CANADA }, { provinceCode: 'YT', description: 'Yukon', country: CANADA } ]; /** * @param {?} provinceCode * @return {?} */ export function getProvinceDescription(provinceCode) { /** @type {?} */ var provObj = PROVINCE_LIST.find((/** * @param {?} val * @return {?} */ function (val) { return provinceCode === val.provinceCode && CANADA === val.country; })); return provObj ? provObj.description : provinceCode; } var ProvinceComponent = /** @class */ (function (_super) { tslib_1.__extends(ProvinceComponent, _super); function ProvinceComponent(controlDir) { var _this = _super.call(this) || this; _this.controlDir = controlDir; _this.label = 'Province'; _this.provinceList = PROVINCE_LIST; _this.labelforId = 'province_' + _this.objectId; _this.required = false; _this.placeholder = 'Please select a province'; _this.maxlength = '250'; _this.useDropDownList = true; _this.valueChange = new EventEmitter(); _this.blur = new EventEmitter(); _this._defaultErrMsg = { required: LabelReplacementTag + ' is required.', invalidChar: LabelReplacementTag + ' must contain letters and may include special characters such as hyphens, ' + 'periods, apostrophes and blank characters.' }; if (controlDir) { controlDir.valueAccessor = _this; } return _this; } Object.defineProperty(ProvinceComponent.prototype, "value", { get: /** * @return {?} */ function () { return this.province; }, set: /** * @param {?} val * @return {?} */ function (val) { if (val) { this.province = val; } }, enumerable: true, configurable: true }); /** * @return {?} */ ProvinceComponent.prototype.ngOnInit = /** * @return {?} */ function () { _super.prototype.ngOnInit.call(this); }; /** * @param {?} value * @return {?} */ ProvinceComponent.prototype.onValueChange = /** * @param {?} value * @return {?} */ function (value) { if (value !== this.province) { this._onChange(value); this.valueChange.emit(value); this.province = value; } }; /** * @param {?} event * @return {?} */ ProvinceComponent.prototype.onBlur = /** * @param {?} event * @return {?} */ function (event) { this._onTouched(event); this.blur.emit(event); }; /** * @param {?} value * @return {?} */ ProvinceComponent.prototype.writeValue = /** * @param {?} value * @return {?} */ function (value) { if (value !== undefined) { this.province = value; } }; ProvinceComponent.decorators = [ { type: Component, args: [{ selector: 'common-province', template: "<label for=\"{{labelforId}}\" class=\"control-label\">{{label}}</label>\r\n\r\n<div *ngIf=\"useDropDownList; else NotDropDownList\">\r\n <ng-select [items]=\"provinceList\"\r\n [ngModel]=\"province\"\r\n (ngModelChange)=\"onValueChange($event)\"\r\n (blur)=\"onBlur($event)\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n labelForId=\"{{labelforId}}\"\r\n bindValue=\"provinceCode\"\r\n bindLabel=\"description\"\r\n [clearable]=\"!required\"\r\n placeholder=\"{{ placeholder }}\"></ng-select>\r\n</div>\r\n\r\n<!-- Error messages for input -->\r\n<common-error-container\r\n [displayError]=\"controlDir && !disabled && (controlDir.touched || controlDir.dirty) && controlDir.errors\">\r\n <div *ngIf=\"controlDir?.errors?.required\">\r\n {{_defaultErrMsg.required}}\r\n </div>\r\n <div *ngIf=\"controlDir?.errors?.invalidChar\">\r\n {{_defaultErrMsg.invalidChar}}\r\n </div>\r\n</common-error-container>\r\n\r\n<ng-template #NotDropDownList>\r\n <input class=\"form-control\"\r\n spellcheck=\"false\"\r\n type=\"text\"\r\n id=\"{{labelforId}}\"\r\n [value]=\"province\"\r\n (change)=\"onValueChange($event.target.value)\"\r\n (blur)=\"onBlur($event)\"\r\n [disabled]=\"disabled\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n autocomplete=\"off\"/>\r\n</ng-template>\r\n", styles: [""] }] } ]; /** @nocollapse */ ProvinceComponent.ctorParameters = function () { return [ { type: NgControl, decorators: [{ type: Optional }, { type: Self }] } ]; }; ProvinceComponent.propDecorators = { label: [{ type: Input }], provinceList: [{ type: Input }], labelforId: [{ type: Input }], required: [{ type: Input }], placeholder: [{ type: Input }], maxlength: [{ type: Input }], useDropDownList: [{ type: Input }], value: [{ type: Input }], valueChange: [{ type: Output }], blur: [{ type: Output }] }; return ProvinceComponent; }(AbstractFormControl)); export { ProvinceComponent }; if (false) { /** @type {?} */ ProvinceComponent.prototype.label; /** @type {?} */ ProvinceComponent.prototype.provinceList; /** @type {?} */ ProvinceComponent.prototype.labelforId; /** @type {?} */ ProvinceComponent.prototype.required; /** @type {?} */ ProvinceComponent.prototype.placeholder; /** @type {?} */ ProvinceComponent.prototype.maxlength; /** @type {?} */ ProvinceComponent.prototype.useDropDownList; /** @type {?} */ ProvinceComponent.prototype.valueChange; /** @type {?} */ ProvinceComponent.prototype.blur; /** @type {?} */ ProvinceComponent.prototype.province; /** @type {?} */ ProvinceComponent.prototype._defaultErrMsg; /** @type {?} */ ProvinceComponent.prototype.controlDir; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW9oLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9wcm92aW5jZS9wcm92aW5jZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RSxPQUFPLEVBQWdCLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBRXpGLE1BQU0sS0FBTyxnQkFBZ0IsR0FBRyxJQUFJOzs7O0FBQ3BDLGtDQUlDOzs7SUFIQyxvQ0FBcUI7O0lBQ3JCLG1DQUFvQjs7SUFDcEIsK0JBQWdCOzs7QUFHbEIsTUFBTSxLQUFPLGFBQWEsR0FBbUI7SUFDM0MsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtJQUMvRCxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7SUFDeEUsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtJQUNoRSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFO0lBQ3JFLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsT0FBTyxF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LENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjtJQUNILENBQUM7Ozs7O0lBRUQsa0NBQU07Ozs7SUFBTixVQUFRLEtBQVU7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBRSxLQUFLLENBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBRSxLQUFLLENBQUUsQ0FBQztJQUMxQixDQUFDOzs7OztJQUVELHNDQUFVOzs7O0lBQVYsVUFBWSxLQUFVO1FBQ3BCLElBQUssS0FBSyxLQUFLLFNBQVMsRUFBRztZQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjtJQUNILENBQUM7O2dCQWhFRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsMGdEQUF3Qzs7aUJBRXpDOzs7O2dCQXJDUSxTQUFTLHVCQXFFRixRQUFRLFlBQUksSUFBSTs7O3dCQTdCN0IsS0FBSzsrQkFDTCxLQUFLOzZCQUNMLEtBQUs7MkJBQ0wsS0FBSzs4QkFDTCxLQUFLOzRCQUNMLEtBQUs7a0NBQ0wsS0FBSzt3QkFDTCxLQUFLOzhCQVVMLE1BQU07dUJBQ04sTUFBTTs7SUF3Q1Qsd0JBQUM7Q0FBQSxBQWpFRCxDQUt1QyxtQkFBbUIsR0E0RHpEO1NBNURZLGlCQUFpQjs7O0lBRTVCLGtDQUFvQzs7SUFDcEMseUNBQXNEOztJQUN0RCx1Q0FBMEQ7O0lBQzFELHFDQUFtQzs7SUFDbkMsd0NBQTBEOztJQUMxRCxzQ0FBbUM7O0lBQ25DLDRDQUF5Qzs7SUFXekMsd0NBQXlFOztJQUN6RSxpQ0FBNEQ7O0lBRTVELHFDQUFpQjs7SUFFakIsMkNBSUU7O0lBR1csdUNBQWdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9wdGlvbmFsLCBTZWxmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDQU5BREEgfSBmcm9tICcuLi9jb3VudHJ5L2NvdW50cnkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWJzdHJhY3RGb3JtQ29udHJvbCB9IGZyb20gJy4uLy4uL21vZGVscy9hYnN0cmFjdC1mb3JtLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UsIExhYmVsUmVwbGFjZW1lbnRUYWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXJyb3ItbWVzc2FnZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJSSVRJU0hfQ09MVU1CSUEgPSAnQkMnO1xyXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpbmNlTGlzdCB7XHJcbiAgcHJvdmluY2VDb2RlOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICBjb3VudHJ5OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBQUk9WSU5DRV9MSVNUOiBQcm92aW5jZUxpc3RbXSA9IFtcclxuICB7IHByb3ZpbmNlQ29kZTogJ0FCJywgZGVzY3JpcHRpb246ICdBbGJlcnRhJywgY291bnRyeTogQ0FOQURBIH0sXHJcbiAgeyBwcm92aW5jZUNvZGU6ICdCQycsIGRlc2NyaXB0aW9uOiAnQnJpdGlzaCBDb2x1bWJpYScsIGNvdW50cnk6IENBTkFEQSB9LFxyXG4gIHsgcHJvdmluY2VDb2RlOiAnTUInLCBkZXNjcmlwdGlvbjogJ01hbml0b2JhJywgY291bnRyeTogQ0FOQURBIH0sXHJcbiAgeyBwcm92aW5jZUNvZGU6ICdOQicsIGRlc2NyaXB0aW9uOiAnTmV3IEJydW5zd2ljaycsIGNvdW50cnk6IENBTkFEQSB9LFxyXG4gIHsgcHJvdmluY2VDb2RlOiAnTkwnLCBkZXNjcmlwdGlvbjogJ05ld2ZvdW5kbGFuZCBhbmQgTGFicmFkb3InLCBjb3VudHJ5OiBDQU5BREEgfSxcclxuICB7IHByb3ZpbmNlQ29kZTogJ05TJywgZGVzY3JpcHRpb246ICdOb3ZhIFNjb3RpYScsIGNvdW50cnk6IENBTkFEQSB9LFxyXG4gIHsgcHJvdmluY2VDb2RlOiAnT04nLCBkZXNjcmlwdGlvbjogJ09udGFyaW8nLCBjb3VudHJ5OiBDQU5BREEgfSxcclxuICB7IHByb3ZpbmNlQ29kZTogJ1BFJywgZGVzY3JpcHRpb246ICdQcmluY2UgRWR3YXJkIElzbGFuZCcsIGNvdW50cnk6IENBTkFEQSB9LFxyXG4gIHsgcHJvdmluY2VDb2RlOiAnUUMnLCBkZXNjcmlwdGlvbjogJ1F1ZWJlYycsIGNvdW50cnk6IENBTkFEQSB9LFxyXG4gIHsgcHJvdmluY2VDb2RlOiAnU0snLCBkZXNjcmlwdGlvbjogJ1Nhc2thdGNoZXdhbicsIGNvdW50cnk6IENBTkFEQSB9LFxyXG4gIHsgcHJvdmluY2VDb2RlOiAnTlQnLCBkZXNjcmlwdGlvbjogJ05vcnRod2VzdCBUZXJyaXRvcmllcycsIGNvdW50cnk6IENBTkFEQSB9LFxyXG4gIHsgcHJvdmluY2VDb2RlOiAnTlUnLCBkZXNjcmlwdGlvbjogJ051bmF2dXQnLCBjb3VudHJ5OiBDQU5BREEgfSxcclxuICB7IHByb3ZpbmNlQ29kZTogJ1lUJywgZGVzY3JpcHRpb246ICdZdWtvbicsIGNvdW50cnk6IENBTkFEQSB9XHJcbl07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvdmluY2VEZXNjcmlwdGlvbiggcHJvdmluY2VDb2RlOiBzdHJpbmcgKSB7XHJcbiAgY29uc3QgcHJvdk9iaiA9IFBST1ZJTkNFX0xJU1QuZmluZCggdmFsID0+IHByb3ZpbmNlQ29kZSA9PT0gdmFsLnByb3ZpbmNlQ29kZSAmJiBDQU5BREEgPT09IHZhbC5jb3VudHJ5ICk7XHJcbiAgcmV0dXJuIHByb3ZPYmogPyBwcm92T2JqLmRlc2NyaXB0aW9uIDogcHJvdmluY2VDb2RlO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvbW1vbi1wcm92aW5jZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb3ZpbmNlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcm92aW5jZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm92aW5jZUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Rm9ybUNvbnRyb2wgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ1Byb3ZpbmNlJztcclxuICBASW5wdXQoKSBwcm92aW5jZUxpc3Q6IFByb3ZpbmNlTGlzdFtdID0gUFJPVklOQ0VfTElTVDtcclxuICBASW5wdXQoKSBsYWJlbGZvcklkOiBzdHJpbmcgPSAncHJvdmluY2VfJyArIHRoaXMub2JqZWN0SWQ7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1BsZWFzZSBzZWxlY3QgYSBwcm92aW5jZSc7XHJcbiAgQElucHV0KCkgbWF4bGVuZ3RoOiBzdHJpbmcgPSAnMjUwJztcclxuICBASW5wdXQoKSB1c2VEcm9wRG93bkxpc3Q6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKCB2YWw6IHN0cmluZyApIHtcclxuICAgIGlmICggdmFsICkge1xyXG4gICAgICB0aGlzLnByb3ZpbmNlID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgdmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm92aW5jZTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgcHJvdmluY2U6IHN0cmluZztcclxuXHJcbiAgX2RlZmF1bHRFcnJNc2c6IEVycm9yTWVzc2FnZSA9IHtcclxuICAgIHJlcXVpcmVkOiBMYWJlbFJlcGxhY2VtZW50VGFnICsgJyBpcyByZXF1aXJlZC4nLFxyXG4gICAgaW52YWxpZENoYXI6IExhYmVsUmVwbGFjZW1lbnRUYWcgKyAnIG11c3QgY29udGFpbiBsZXR0ZXJzIGFuZCBtYXkgaW5jbHVkZSBzcGVjaWFsIGNoYXJhY3RlcnMgc3VjaCBhcyBoeXBoZW5zLCAnICtcclxuICAgICAgICAgICAgICAgICAncGVyaW9kcywgYXBvc3Ryb3BoZXMgYW5kIGJsYW5rIGNoYXJhY3RlcnMuJ1xyXG4gIH07XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvciggQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgY29udHJvbERpcjogTmdDb250cm9sICkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIGlmICggY29udHJvbERpciApIHtcclxuICAgICAgY29udHJvbERpci52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcblxyXG4gIG9uVmFsdWVDaGFuZ2UoIHZhbHVlOiBhbnkgKSB7XHJcbiAgICBpZiAoIHZhbHVlICE9PSB0aGlzLnByb3ZpbmNlICkge1xyXG4gICAgICB0aGlzLl9vbkNoYW5nZSggdmFsdWUgKTtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KCB2YWx1ZSApO1xyXG4gICAgICB0aGlzLnByb3ZpbmNlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkJsdXIoIGV2ZW50OiBhbnkgKSB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQoIGV2ZW50ICk7XHJcbiAgICB0aGlzLmJsdXIuZW1pdCggZXZlbnQgKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUoIHZhbHVlOiBhbnkgKTogdm9pZCB7XHJcbiAgICBpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XHJcbiAgICAgIHRoaXMucHJvdmluY2UgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19