@ngneat/reactive-forms
Version:
(Angular Reactive) Forms with Benefits
33 lines • 7.3 kB
JavaScript
import { Injectable } from "@angular/core";
import { UntypedFormBuilder } from '@angular/forms';
import { FormControl, FormGroup } from "..";
import { FormArray } from "./form-array";
import * as i0 from "@angular/core";
export class FormBuilder extends UntypedFormBuilder {
control(formState, validatorOrOpts, asyncValidator) {
return new FormControl(formState, validatorOrOpts, asyncValidator);
}
array(controlsConfig, validatorOrOpts, asyncValidator) {
const controls = controlsConfig.map(c => this._createControl(c));
return new FormArray(controls, validatorOrOpts, asyncValidator);
}
group(controlsConfig, options) {
const controls = this._reduceControls(controlsConfig);
let validators = null;
let asyncValidators = null;
let updateOn;
if (options != null) {
validators = options.validators != null ? options.validators : null;
asyncValidators = options.asyncValidators != null ? options.asyncValidators : null;
updateOn = options.updateOn != null ? options.updateOn : undefined;
}
return new FormGroup(controls, { asyncValidators, updateOn, validators });
}
}
FormBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormBuilder, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
FormBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormBuilder, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormBuilder, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9yZWFjdGl2ZS1mb3Jtcy9zcmMvbGliL2Zvcm0tYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBNkQsa0JBQWtCLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1SCxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQztBQUM1QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUl6QyxNQUFNLE9BQU8sV0FBWSxTQUFRLGtCQUFrQjtJQUVqRCxPQUFPLENBQ0wsU0FBeUIsRUFDekIsZUFBOEQsRUFDOUQsY0FBNkQ7UUFFN0QsT0FBTyxJQUFJLFdBQVcsQ0FBSSxTQUFTLEVBQUUsZUFBZSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxLQUFLLENBQ0gsY0FBeUIsRUFDekIsZUFBNEQsRUFDNUQsY0FBMkQ7UUFDM0QsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLElBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUxRSxPQUFPLElBQUksU0FBUyxDQUFZLFFBQVEsRUFBRSxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUdELEtBQUssQ0FDSCxjQUEyQixFQUMzQixPQUFnQztRQUVoQyxNQUFNLFFBQVEsR0FBSSxJQUFZLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRS9ELElBQUksVUFBVSxHQUFRLElBQUksQ0FBQztRQUMzQixJQUFJLGVBQWUsR0FBUSxJQUFJLENBQUM7UUFDaEMsSUFBSSxRQUFhLENBQUM7UUFFbEIsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ25CLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3BFLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25GLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1NBQ3BFO1FBRUQsT0FBTyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQzs7d0dBckNVLFdBQVc7NEdBQVgsV0FBVyxjQURFLE1BQU07MkZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFic3RyYWN0Q29udHJvbE9wdGlvbnMsIEFzeW5jVmFsaWRhdG9yRm4sIFVudHlwZWRGb3JtQnVpbGRlciwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBGb3JtQXJyYXkgfSBmcm9tIFwiLi9mb3JtLWFycmF5XCI7XG5pbXBvcnQgeyBCb3hlZFZhbHVlLCBDb250cm9sc09mIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGb3JtQnVpbGRlciBleHRlbmRzIFVudHlwZWRGb3JtQnVpbGRlciB7XG5cbiAgY29udHJvbDxUPihcbiAgICBmb3JtU3RhdGU/OiBCb3hlZFZhbHVlPFQ+LFxuICAgIHZhbGlkYXRvck9yT3B0cz86IENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRm9ybUNvbnRyb2w+WzFdLFxuICAgIGFzeW5jVmFsaWRhdG9yPzogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBGb3JtQ29udHJvbD5bMl1cbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBGb3JtQ29udHJvbDxUPihmb3JtU3RhdGUsIHZhbGlkYXRvck9yT3B0cywgYXN5bmNWYWxpZGF0b3IpO1xuICB9XG5cbiAgYXJyYXk8VCwgQ29udHJvbCBleHRlbmRzIEFic3RyYWN0Q29udHJvbCA9IFQgZXh0ZW5kcyBSZWNvcmQ8YW55LCBhbnk+ID8gRm9ybUdyb3VwPENvbnRyb2xzT2Y8VD4+IDogRm9ybUNvbnRyb2w8VD4+KFxuICAgIGNvbnRyb2xzQ29uZmlnOiBDb250cm9sW10sXG4gICAgdmFsaWRhdG9yT3JPcHRzPzogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBGb3JtQXJyYXk+WzFdLFxuICAgIGFzeW5jVmFsaWRhdG9yPzogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBGb3JtQXJyYXk+WzJdKSB7XG4gICAgY29uc3QgY29udHJvbHMgPSBjb250cm9sc0NvbmZpZy5tYXAoYyA9PiAodGhpcyBhcyBhbnkpLl9jcmVhdGVDb250cm9sKGMpKTtcblxuICAgIHJldHVybiBuZXcgRm9ybUFycmF5PFQsQ29udHJvbD4oY29udHJvbHMsIHZhbGlkYXRvck9yT3B0cywgYXN5bmNWYWxpZGF0b3IpO1xuICB9XG5cblxuICBncm91cDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oXG4gICAgY29udHJvbHNDb25maWc6IENvbnRyb2xzPFQ+LFxuICAgIG9wdGlvbnM/OiBBYnN0cmFjdENvbnRyb2xPcHRpb25zLFxuICApOiBGb3JtR3JvdXA8R3JvdXBSZXNvbHZlckZvcm1CdWlsZGVyPFQ+PiB7XG4gICAgY29uc3QgY29udHJvbHMgPSAodGhpcyBhcyBhbnkpLl9yZWR1Y2VDb250cm9scyhjb250cm9sc0NvbmZpZyk7XG5cbiAgICBsZXQgdmFsaWRhdG9yczogYW55ID0gbnVsbDtcbiAgICBsZXQgYXN5bmNWYWxpZGF0b3JzOiBhbnkgPSBudWxsO1xuICAgIGxldCB1cGRhdGVPbjogYW55O1xuXG4gICAgaWYgKG9wdGlvbnMgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycyA9IG9wdGlvbnMudmFsaWRhdG9ycyAhPSBudWxsID8gb3B0aW9ucy52YWxpZGF0b3JzIDogbnVsbDtcbiAgICAgIGFzeW5jVmFsaWRhdG9ycyA9IG9wdGlvbnMuYXN5bmNWYWxpZGF0b3JzICE9IG51bGwgPyBvcHRpb25zLmFzeW5jVmFsaWRhdG9ycyA6IG51bGw7XG4gICAgICB1cGRhdGVPbiA9IG9wdGlvbnMudXBkYXRlT24gIT0gbnVsbCA/IG9wdGlvbnMudXBkYXRlT24gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBGb3JtR3JvdXAoY29udHJvbHMsIHsgYXN5bmNWYWxpZGF0b3JzLCB1cGRhdGVPbiwgdmFsaWRhdG9ycyB9KTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBHcm91cFJlc29sdmVyRm9ybUJ1aWxkZXI8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+ID0ge1xuICBbSyBpbiBrZXlvZiBUXTpcbiAgLy8geyBrZXk6IGJ1aWxkZXIuZ3JvdXAvYXJyYXkoKS9Gb3JtQ29udHJvbChbXSkgfVxuICBUW0tdIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sID8gVFtLXSA6XG5cbiAgLy8geyBrZXk6IFsnJ10sIFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0gfVxuICBUW0tdIGV4dGVuZHMgKGluZmVyIFUpW10gPyBGb3JtQ29udHJvbDxSZXNvbHZlVHlwZUFycmF5PFU+PiA6XG5cbiAgLy8geyBrZXk6ICcnIH1cbiAgRm9ybUNvbnRyb2w8VFtLXT5cbn1cblxudHlwZSBGb3JtQ29udHJvbEJ1aWxkZXJPcHRpb25zPFQ+ID0gW1QsIChWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW10gfCBudWxsKT8sIChBc3luY1ZhbGlkYXRvckZuIHwgQXN5bmNWYWxpZGF0b3JGbltdIHwgbnVsbCk/XVxuXG4vLyB7IGtleTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSB9IC0gZ2V0IHRoZSBmaXJzdCBrZXkgdHlwZVxudHlwZSBSZXNvbHZlVHlwZUFycmF5PFU+ID0gRXhjbHVkZTxVLCBudWxsIHwgVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdIHwgQXN5bmNWYWxpZGF0b3JGbiB8IEFzeW5jVmFsaWRhdG9yRm5bXT5cblxudHlwZSBDb250cm9sczxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2wgPyBUW0tdIDpcbiAgVFtLXSBleHRlbmRzIChpbmZlciBVKVtdID8gRm9ybUNvbnRyb2xCdWlsZGVyT3B0aW9uczxSZXNvbHZlVHlwZUFycmF5PFU+PiA6XG4gIFRbS10gZXh0ZW5kcyBSZWNvcmQ8YW55LCBhbnk+ID8gRm9ybUdyb3VwPENvbnRyb2xzPFRbS10+PiA6XG4gIFRbS11cbn1cbiJdfQ==