moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
79 lines • 5.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { AbstractBaseForm } from './abstract-base-form';
/**
* @abstract
*/
export class AbstractReactForm extends AbstractBaseForm {
/**
* Constructor
* @param {?} router
*/
constructor(router) {
super(router);
this.router = router;
}
/**
* Determines if the Continue button is disabled on the form action bar
* Can be overrided
* @return {?}
*/
canContinue() {
// Returns true if form is valid
return this.formGroup.valid;
}
/**
* Runs the angular 'markAsTouched()' on all form inputs.
* @protected
* @param {?=} fg
* @return {?}
*/
markAllInputsTouched(fg = null) {
// Passed in parameter, set each as touched
if (fg) {
if (Array.isArray(fg)) {
// For each form mark as touched to display errors
return fg.forEach((/**
* @param {?} x
* @return {?}
*/
x => {
this._markAllAsTouched(x);
}));
}
// Returns true if form is valid
this._markAllAsTouched(fg);
}
else {
this._markAllAsTouched(this.formGroup);
}
}
// Temporary until libray forms updated to version.
/**
* @private
* @param {?} fg
* @return {?}
*/
_markAllAsTouched(fg) {
/** @type {?} */
const controls = Object.keys(fg.controls);
for (const control of controls) {
fg.controls[control].markAsTouched();
}
}
}
if (false) {
/**
* Access to the form elements for validation
* @type {?}
*/
AbstractReactForm.prototype.formGroup;
/**
* @type {?}
* @protected
*/
AbstractReactForm.prototype.router;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtcmVhY3QtZm9ybS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21vaC1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9hYnN0cmFjdC1yZWFjdC1mb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUd4RCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGdCQUFnQjs7Ozs7SUFROUQsWUFBc0IsTUFBYztRQUNsQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFETSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRXBDLENBQUM7Ozs7OztJQU1ELFdBQVc7UUFFVCxnQ0FBZ0M7UUFDaEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDOzs7Ozs7O0lBR1Msb0JBQW9CLENBQUMsS0FBOEIsSUFBSTtRQUUvRCwyQ0FBMkM7UUFDM0MsSUFBSyxFQUFFLEVBQUc7WUFDUixJQUFLLEtBQUssQ0FBQyxPQUFPLENBQUUsRUFBRSxDQUFFLEVBQUc7Z0JBQ3pCLGtEQUFrRDtnQkFDbEQsT0FBTyxFQUFFLENBQUMsT0FBTzs7OztnQkFBRSxDQUFDLENBQUMsRUFBRTtvQkFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFFLENBQUMsQ0FBRSxDQUFDO2dCQUM5QixDQUFDLEVBQUMsQ0FBQzthQUNKO1lBQ0QsZ0NBQWdDO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBRSxFQUFFLENBQUUsQ0FBQztTQUM5QjthQUFNO1lBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFFLElBQUksQ0FBQyxTQUFTLENBQUUsQ0FBQztTQUMxQztJQUNILENBQUM7Ozs7Ozs7SUFHTyxpQkFBaUIsQ0FBQyxFQUFhOztjQUMvQixRQUFRLEdBQWtCLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUV4RCxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRTtZQUM5QixFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztDQUNGOzs7Ozs7SUE3Q0Msc0NBQXFCOzs7OztJQUtULG1DQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQWJzdHJhY3RCYXNlRm9ybSB9IGZyb20gJy4vYWJzdHJhY3QtYmFzZS1mb3JtJztcclxuXHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RSZWFjdEZvcm0gZXh0ZW5kcyBBYnN0cmFjdEJhc2VGb3JtIHtcclxuXHJcbiAgLyoqIEFjY2VzcyB0byB0aGUgZm9ybSBlbGVtZW50cyBmb3IgdmFsaWRhdGlvbiAqL1xyXG4gIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvclxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgc3VwZXIocm91dGVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgaWYgdGhlIENvbnRpbnVlIGJ1dHRvbiBpcyBkaXNhYmxlZCBvbiB0aGUgZm9ybSBhY3Rpb24gYmFyXHJcbiAgICogQ2FuIGJlIG92ZXJyaWRlZFxyXG4gICAqL1xyXG4gIGNhbkNvbnRpbnVlKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBmb3JtIGlzIHZhbGlkXHJcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAudmFsaWQ7XHJcbiAgfVxyXG5cclxuICAvKiogUnVucyB0aGUgYW5ndWxhciAnbWFya0FzVG91Y2hlZCgpJyBvbiBhbGwgZm9ybSBpbnB1dHMuICovXHJcbiAgcHJvdGVjdGVkIG1hcmtBbGxJbnB1dHNUb3VjaGVkKGZnOiBGb3JtR3JvdXAgfCBGb3JtR3JvdXBbXSA9IG51bGwpOiB2b2lkIHtcclxuXHJcbiAgICAvLyBQYXNzZWQgaW4gcGFyYW1ldGVyLCBzZXQgZWFjaCBhcyB0b3VjaGVkXHJcbiAgICBpZiAoIGZnICkge1xyXG4gICAgICBpZiAoIEFycmF5LmlzQXJyYXkoIGZnICkgKSB7XHJcbiAgICAgICAgLy8gRm9yIGVhY2ggZm9ybSBtYXJrIGFzIHRvdWNoZWQgdG8gZGlzcGxheSBlcnJvcnNcclxuICAgICAgICByZXR1cm4gZmcuZm9yRWFjaCggeCA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9tYXJrQWxsQXNUb3VjaGVkKCB4ICk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGZvcm0gaXMgdmFsaWRcclxuICAgICAgdGhpcy5fbWFya0FsbEFzVG91Y2hlZCggZmcgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX21hcmtBbGxBc1RvdWNoZWQoIHRoaXMuZm9ybUdyb3VwICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBUZW1wb3JhcnkgdW50aWwgbGlicmF5IGZvcm1zIHVwZGF0ZWQgdG8gdmVyc2lvbi5cclxuICBwcml2YXRlIF9tYXJrQWxsQXNUb3VjaGVkKGZnOiBGb3JtR3JvdXApIHtcclxuICAgIGNvbnN0IGNvbnRyb2xzOiBBcnJheTxzdHJpbmc+ID0gT2JqZWN0LmtleXMoZmcuY29udHJvbHMpO1xyXG5cclxuICAgIGZvciAoY29uc3QgY29udHJvbCBvZiBjb250cm9scykge1xyXG4gICAgICBmZy5jb250cm9sc1tjb250cm9sXS5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==