moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
135 lines • 10.1 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, Output, EventEmitter, ViewChild, ElementRef, forwardRef } from '@angular/core';
import { ControlContainer, NgForm, NG_VALUE_ACCESSOR } from '@angular/forms';
/**
* BUTTONGROUPCOMPONENT IS **DEPRECATED**! **DO NOT USE** UNLESS YOU KNOW WHAT YOU'RE
* DOING.
*
* If you need a Yes/No toggle, \@see RadioComponent
* @deprecated
*
*
*
*
* \@example
* <common-button-group [showError]="showError"
* [errorMessageRequired]="requiredErrMsg"
* label="Please select a value"
* [data]="data.value" (dataChange)="setMovedToBCPermanently($event)" >
* </common-button-group>
*
* @export
*/
export class ButtonGroupComponent {
constructor() {
this.required = true;
this.showError = false;
this.disabled = false;
this.errorMessageRequired = 'Field is required.';
this.label = 'Default Checkbox';
this.dataChange = new EventEmitter();
this._onChange = (/**
* @param {?} _
* @return {?}
*/
(_) => { });
this._onTouched = (/**
* @return {?}
*/
() => { });
}
/**
* @param {?} val
* @return {?}
*/
setButtonGrpVal(val) {
this.dataChange.emit(val);
this._onChange(val);
this._onTouched();
}
/**
* @return {?}
*/
focus() {
this.buttonGroup.nativeElement.focus();
this._onTouched();
}
/**
* @param {?} fn
* @return {?}
*/
registerOnChange(fn) {
this._onChange = fn;
}
/**
* @param {?} fn
* @return {?}
*/
registerOnTouched(fn) {
this._onTouched = fn;
}
/**
* @param {?} value
* @return {?}
*/
writeValue(value) {
this.data = value;
}
}
ButtonGroupComponent.decorators = [
{ type: Component, args: [{
selector: 'common-button-group',
template: "<div role=\"dialog\" aria-labelledby=\"btn\">\r\n <p id=\"btn\" class=\"control-label\">{{label}}</p>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button #buttonGroup *ngFor='let answer of [{\"value\": true, \"label\": \"Yes\"}, {\"value\": false, \"label\": \"No\"}]'\r\n [class.btn-radio]=\"data === answer.value\" (click)=\"setButtonGrpVal(answer.value)\" \r\n type=\"button\" class=\"btn btn-default control-label\"> {{answer.label}} \r\n </button>\r\n </div>\r\n <div *ngIf='showError && (data === undefined || data === null)'>\r\n <div class=\"text-danger\">{{errorMessageRequired}}</div>\r\n </div>\r\n</div>\r\n",
viewProviders: [
{ provide: ControlContainer, useExisting: forwardRef((/**
* @return {?}
*/
() => NgForm)) }
],
providers: [
{ provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef((/**
* @return {?}
*/
() => ButtonGroupComponent)) }
],
styles: [".btn-radio,.btn-radio:hover,.btn-radio:not(:hover){background:#2962ff;color:#fff}.btn-radio::-moz-selection{background:#2962ff}.btn-radio::selection{background:#2962ff}.btn-radio:active{background:#2962ff}"]
}] }
];
/** @nocollapse */
ButtonGroupComponent.ctorParameters = () => [];
ButtonGroupComponent.propDecorators = {
data: [{ type: Input }],
required: [{ type: Input }],
showError: [{ type: Input }],
disabled: [{ type: Input }],
errorMessageRequired: [{ type: Input }],
label: [{ type: Input }],
dataChange: [{ type: Output }],
buttonGroup: [{ type: ViewChild, args: ['buttonGroup',] }]
};
if (false) {
/** @type {?} */
ButtonGroupComponent.prototype.data;
/** @type {?} */
ButtonGroupComponent.prototype.required;
/** @type {?} */
ButtonGroupComponent.prototype.showError;
/** @type {?} */
ButtonGroupComponent.prototype.disabled;
/** @type {?} */
ButtonGroupComponent.prototype.errorMessageRequired;
/** @type {?} */
ButtonGroupComponent.prototype.label;
/** @type {?} */
ButtonGroupComponent.prototype.dataChange;
/** @type {?} */
ButtonGroupComponent.prototype.buttonGroup;
/** @type {?} */
ButtonGroupComponent.prototype._onChange;
/** @type {?} */
ButtonGroupComponent.prototype._onTouched;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21vaC1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYnV0dG9uLWdyb3VwL2J1dHRvbi1ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLGdCQUFnQixFQUF3QixNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQ25HLE1BQU0sT0FBTyxvQkFBb0I7SUFjL0I7UUFYUyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQix5QkFBb0IsR0FBVyxvQkFBb0IsQ0FBQztRQUNwRCxVQUFLLEdBQVcsa0JBQWtCLENBQUM7UUFDbEMsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBR25FLGNBQVM7Ozs7UUFBRyxDQUFDLENBQU0sRUFBRSxFQUFFLEdBQUUsQ0FBQyxFQUFDO1FBQzNCLGVBQVU7OztRQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQztJQUVkLENBQUM7Ozs7O0lBRWhCLGVBQWUsQ0FBQyxHQUFRO1FBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7Ozs7O0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDOzs7OztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDOzs7WUFoREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLG9wQkFBNEM7Z0JBRTVDLGFBQWEsRUFBRTtvQkFDYixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsVUFBVTs7O3dCQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO2lCQUN0RTtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsVUFBVTs7O3dCQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixFQUFFLEVBQUM7aUJBQ2pHOzthQUNGOzs7OzttQkFHRSxLQUFLO3VCQUNMLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxLQUFLO21DQUNMLEtBQUs7b0JBQ0wsS0FBSzt5QkFDTCxNQUFNOzBCQUNOLFNBQVMsU0FBQyxhQUFhOzs7O0lBUHhCLG9DQUF1Qjs7SUFDdkIsd0NBQWtDOztJQUNsQyx5Q0FBb0M7O0lBQ3BDLHdDQUFtQzs7SUFDbkMsb0RBQTZEOztJQUM3RCxxQ0FBNEM7O0lBQzVDLDBDQUEwRTs7SUFDMUUsMkNBQWtEOztJQUVsRCx5Q0FBa0M7O0lBQ2xDLDBDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nRm9ybSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG4vKipcclxuICogQlVUVE9OR1JPVVBDT01QT05FTlQgSVMgKipERVBSRUNBVEVEKiohICAqKkRPIE5PVCBVU0UqKiBVTkxFU1MgWU9VIEtOT1cgV0hBVCBZT1UnUkVcclxuICogRE9JTkcuXHJcbiAqXHJcbiAqIElmIHlvdSBuZWVkIGEgWWVzL05vIHRvZ2dsZSwgQHNlZSBSYWRpb0NvbXBvbmVudFxyXG4gKiBAZGVwcmVjYXRlZFxyXG4gKlxyXG4gKlxyXG4gKlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiAgICAgICA8Y29tbW9uLWJ1dHRvbi1ncm91cCBbc2hvd0Vycm9yXT1cInNob3dFcnJvclwiXHJcbiAqICAgICAgICAgIFtlcnJvck1lc3NhZ2VSZXF1aXJlZF09XCJyZXF1aXJlZEVyck1zZ1wiXHJcbiAqICAgICAgICAgIGxhYmVsPVwiUGxlYXNlIHNlbGVjdCBhIHZhbHVlXCJcclxuICogICAgICAgICAgW2RhdGFdPVwiZGF0YS52YWx1ZVwiIChkYXRhQ2hhbmdlKT1cInNldE1vdmVkVG9CQ1Blcm1hbmVudGx5KCRldmVudClcIiA+XHJcbiAqICAgICAgICAgPC9jb21tb24tYnV0dG9uLWdyb3VwPlxyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqL1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29tbW9uLWJ1dHRvbi1ncm91cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYnV0dG9uLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgdmlld1Byb3ZpZGVyczogW1xyXG4gICAgeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOZ0Zvcm0gKSB9XHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIG11bHRpOiB0cnVlLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCdXR0b25Hcm91cENvbXBvbmVudCApfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBASW5wdXQoKSBkYXRhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHJlcXVpcmVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaG93RXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZVJlcXVpcmVkOiBzdHJpbmcgPSAnRmllbGQgaXMgcmVxdWlyZWQuJztcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJ0RlZmF1bHQgQ2hlY2tib3gnO1xyXG4gIEBPdXRwdXQoKSBkYXRhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQFZpZXdDaGlsZCgnYnV0dG9uR3JvdXAnKSBidXR0b25Hcm91cDogRWxlbWVudFJlZjtcclxuXHJcbiAgcHVibGljIF9vbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xyXG4gIHB1YmxpYyBfb25Ub3VjaGVkID0gKCkgPT4ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgc2V0QnV0dG9uR3JwVmFsKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLmRhdGFDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgdGhpcy5fb25DaGFuZ2UodmFsKTtcclxuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMoKSB7XHJcbiAgICB0aGlzLmJ1dHRvbkdyb3VwLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0YSA9IHZhbHVlO1xyXG4gIH1cclxufVxyXG4iXX0=