UNPKG

moh-common-lib

Version:

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

117 lines 9.71 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, Optional, Self } from '@angular/core'; import { NgControl } from '@angular/forms'; import { AbstractFormControl } from '../../models/abstract-form-control'; import { LabelReplacementTag } from '../../models/error-message.interface'; /** * Checkbox component is a input checkbox * * \@example * <common-checkbox #addressChangeChkBx * label='Do you want to opt in?' * errorMessageRequired = 'Opt in should be selected' * (dataChange)="dataChange($event)" * [(data)]='person.hasOpted' [disabled]="isDisabled" * [required]="isrequired"> * </common-checkbox> * * @export */ export class CheckboxComponent extends AbstractFormControl { /** * @param {?} controlDir */ constructor(controlDir) { super(); this.controlDir = controlDir; this.defaultErrorMessage = ''; /** * You can bind to [(data)] OR you can use [(ngModel)] but don't use both. */ this.data = false; this.label = 'Default Checkbox'; this.required = false; // TOBE removed duing MSP stablization - then update MSP to use form control version // TOBE removed duing MSP stablization - then update MSP to use form control version this.dataChange = new EventEmitter(); this._defaultErrMsg = { required: `${LabelReplacementTag} is required.`, }; if (controlDir) { controlDir.valueAccessor = this; } } /** * @return {?} */ ngOnInit() { super.ngOnInit(); } /** * @param {?} event * @return {?} */ setCheckboxVal(event) { this.data = event; this.dataChange.emit(this.data); this._onChange(event); this._onTouched(); } /** * @return {?} */ focus() { this.checkbox.nativeElement.focus(); } /** * @param {?} value * @return {?} */ writeValue(value) { if (value !== undefined || value === null) { this.data = value; } } } CheckboxComponent.decorators = [ { type: Component, args: [{ selector: 'common-checkbox', template: "\r\n<input #checkbox\r\n type=\"checkbox\"\r\n class=\"input-lg form-check-input\"\r\n name=\"checkbox_{{objectId}}\"\r\n id=\"checkbox_{{objectId}}\"\r\n [ngModel]=\"data\"\r\n (ngModelChange)=\"setCheckboxVal($event);\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\">\r\n<label for=\"checkbox_{{objectId}}\" class=\"mb-2 pl-3 form-check-label\">{{label}}</label>\r\n\r\n<common-error-container\r\n [displayError]=\"controlDir && !disabled && (controlDir.touched || controlDir.dirty) && controlDir?.errors\">\r\n <div *ngIf=\"controlDir?.errors?.required\">{{_defaultErrMsg.required}}</div>\r\n</common-error-container>\r\n", styles: ["input[type=checkbox]{-webkit-transform:scale(1.5);transform:scale(1.5)}label{display:inline-block;height:auto;margin-bottom:0;padding-bottom:0;padding-left:10px;padding-top:2px;cursor:pointer;vertical-align:bottom}"] }] } ]; /** @nocollapse */ CheckboxComponent.ctorParameters = () => [ { type: NgControl, decorators: [{ type: Optional }, { type: Self }] } ]; CheckboxComponent.propDecorators = { data: [{ type: Input }], label: [{ type: Input }], required: [{ type: Input }], dataChange: [{ type: Output }], checkbox: [{ type: ViewChild, args: ['checkbox',] }] }; if (false) { /** @type {?} */ CheckboxComponent.prototype.defaultErrorMessage; /** * You can bind to [(data)] OR you can use [(ngModel)] but don't use both. * @type {?} */ CheckboxComponent.prototype.data; /** @type {?} */ CheckboxComponent.prototype.label; /** @type {?} */ CheckboxComponent.prototype.required; /** @type {?} */ CheckboxComponent.prototype.dataChange; /** @type {?} */ CheckboxComponent.prototype.checkbox; /** @type {?} */ CheckboxComponent.prototype._defaultErrMsg; /** @type {?} */ CheckboxComponent.prototype.controlDir; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW9oLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFzQnpGLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxtQkFBbUI7Ozs7SUFnQnhELFlBQXdDLFVBQXFCO1FBQzNELEtBQUssRUFBRSxDQUFDO1FBRDhCLGVBQVUsR0FBVixVQUFVLENBQVc7UUFmN0Qsd0JBQW1CLEdBQVcsRUFBRSxDQUFDOzs7O1FBS3hCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsVUFBSyxHQUFXLGtCQUFrQixDQUFDO1FBQ25DLGFBQVEsR0FBWSxLQUFLLENBQUMsQ0FBRSxvRkFBb0Y7O1FBQy9HLGVBQVUsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUcxRSxtQkFBYyxHQUFpQjtZQUM3QixRQUFRLEVBQUUsR0FBRyxtQkFBbUIsZUFBZTtTQUNoRCxDQUFDO1FBSUEsSUFBSyxVQUFVLEVBQUc7WUFDaEIsVUFBVSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDakM7SUFDSCxDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7O0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RDLENBQUM7Ozs7O0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSyxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUc7WUFDM0MsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7U0FDbkI7SUFDSCxDQUFDOzs7WUEvQ0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLCtxQkFBd0M7O2FBRXpDOzs7O1lBdkI4QixTQUFTLHVCQXdDeEIsUUFBUSxZQUFJLElBQUk7OzttQkFWN0IsS0FBSztvQkFDTCxLQUFLO3VCQUNMLEtBQUs7eUJBQ0wsTUFBTTt1QkFDTixTQUFTLFNBQUMsVUFBVTs7OztJQVRyQixnREFBaUM7Ozs7O0lBS2pDLGlDQUErQjs7SUFDL0Isa0NBQTRDOztJQUM1QyxxQ0FBbUM7O0lBQ25DLHVDQUEwRTs7SUFDMUUscUNBQTRDOztJQUU1QywyQ0FFRTs7SUFFVyx1Q0FBZ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFic3RyYWN0Rm9ybUNvbnRyb2wgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWJzdHJhY3QtZm9ybS1jb250cm9sJztcclxuaW1wb3J0IHsgRXJyb3JNZXNzYWdlLCBMYWJlbFJlcGxhY2VtZW50VGFnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Vycm9yLW1lc3NhZ2UuaW50ZXJmYWNlJztcclxuLyoqXHJcbiAqIENoZWNrYm94IGNvbXBvbmVudCBpcyBhIGlucHV0IGNoZWNrYm94XHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqICAgICAgIDxjb21tb24tY2hlY2tib3ggI2FkZHJlc3NDaGFuZ2VDaGtCeFxyXG4gKiAgICAgICAgICBsYWJlbD0nRG8geW91IHdhbnQgdG8gb3B0IGluPydcclxuICogICAgICAgICAgZXJyb3JNZXNzYWdlUmVxdWlyZWQgPSAnT3B0IGluIHNob3VsZCBiZSBzZWxlY3RlZCdcclxuICogICAgICAgICAgKGRhdGFDaGFuZ2UpPVwiZGF0YUNoYW5nZSgkZXZlbnQpXCJcclxuICogICAgICAgICAgIFsoZGF0YSldPSdwZXJzb24uaGFzT3B0ZWQnIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcclxuICogICAgICAgICAgW3JlcXVpcmVkXT1cImlzcmVxdWlyZWRcIj5cclxuICogICAgICAgPC9jb21tb24tY2hlY2tib3g+XHJcbiAqXHJcbiAqIEBleHBvcnRcclxuICovXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb21tb24tY2hlY2tib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZvcm1Db250cm9sIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgZGVmYXVsdEVycm9yTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFlvdSBjYW4gYmluZCB0byBbKGRhdGEpXSBPUiB5b3UgY2FuIHVzZSBbKG5nTW9kZWwpXSBidXQgZG9uJ3QgdXNlIGJvdGguXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnRGVmYXVsdCBDaGVja2JveCc7XHJcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTsgIC8vIFRPQkUgcmVtb3ZlZCBkdWluZyBNU1Agc3RhYmxpemF0aW9uIC0gdGhlbiB1cGRhdGUgTVNQIHRvIHVzZSBmb3JtIGNvbnRyb2wgdmVyc2lvblxyXG4gIEBPdXRwdXQoKSBkYXRhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQFZpZXdDaGlsZCgnY2hlY2tib3gnKSBjaGVja2JveDogRWxlbWVudFJlZjtcclxuXHJcbiAgX2RlZmF1bHRFcnJNc2c6IEVycm9yTWVzc2FnZSA9IHtcclxuICAgIHJlcXVpcmVkOiBgJHtMYWJlbFJlcGxhY2VtZW50VGFnfSBpcyByZXF1aXJlZC5gLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKCBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBjb250cm9sRGlyOiBOZ0NvbnRyb2wgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgaWYgKCBjb250cm9sRGlyICkge1xyXG4gICAgICBjb250cm9sRGlyLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tib3hWYWwoZXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGF0YSA9IGV2ZW50O1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQodGhpcy5kYXRhKTtcclxuICAgIHRoaXMuX29uQ2hhbmdlKGV2ZW50KTtcclxuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsICkge1xyXG4gICAgICB0aGlzLmRhdGEgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19