@webdev-tools/ng-nested-reactive-forms
Version:
Implement Nested FormControl for Angular Reactive Forms.
55 lines • 6.88 kB
JavaScript
import { Input } from '@angular/core';
import { Validators } from '@angular/forms';
export function NrfControlOptions() { }
if (false) {
NrfControlOptions.prototype.disabled;
}
export class NrfControlOptionsComponent {
constructor() {
this.disabled = null;
this.min = null;
this.max = null;
this.required = null;
this.email = null;
this.minLength = null;
this.maxLength = null;
this.pattern = null;
this.updateOn = null;
}
ngOnInit() {
this.controlOptions = this.generateControlOptions();
}
generateControlOptions() {
return {
validators: Object.keys(Validators)
.filter((key) => this[key])
.map((key) => Validators[key]),
updateOn: this.updateOn,
disabled: this.disabled,
};
}
}
NrfControlOptionsComponent.propDecorators = {
disabled: [{ type: Input, args: ['disabled',] }],
min: [{ type: Input, args: ['min',] }],
max: [{ type: Input, args: ['max',] }],
required: [{ type: Input, args: ['required',] }],
email: [{ type: Input, args: ['email',] }],
minLength: [{ type: Input, args: ['minLength',] }],
maxLength: [{ type: Input, args: ['maxLength',] }],
pattern: [{ type: Input, args: ['pattern',] }],
updateOn: [{ type: Input, args: ['updateOn',] }]
};
if (false) {
NrfControlOptionsComponent.prototype.controlOptions;
NrfControlOptionsComponent.prototype.disabled;
NrfControlOptionsComponent.prototype.min;
NrfControlOptionsComponent.prototype.max;
NrfControlOptionsComponent.prototype.required;
NrfControlOptionsComponent.prototype.email;
NrfControlOptionsComponent.prototype.minLength;
NrfControlOptionsComponent.prototype.maxLength;
NrfControlOptionsComponent.prototype.pattern;
NrfControlOptionsComponent.prototype.updateOn;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1vcHRpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B3ZWJkZXYtdG9vbHMvbmctbmVzdGVkLXJlYWN0aXZlLWZvcm1zLyIsInNvdXJjZXMiOlsibGliL25lc3RlZC1jb250cm9sL2NvbnRyb2wtb3B0aW9ucy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXBFLHVDQUVDOztJQURDLHFDQUFrQjs7QUFRcEIsTUFBTSxPQUFnQiwwQkFBMEI7SUFBaEQ7UUFTcUIsYUFBUSxHQUFZLElBQUksQ0FBQztRQUs5QixRQUFHLEdBQW9CLElBQUksQ0FBQztRQUs1QixRQUFHLEdBQW9CLElBQUksQ0FBQztRQUt2QixhQUFRLEdBQVksSUFBSSxDQUFDO1FBTzVCLFVBQUssR0FBWSxJQUFJLENBQUM7UUFLbEIsY0FBUyxHQUFvQixJQUFJLENBQUM7UUFLbEMsY0FBUyxHQUFvQixJQUFJLENBQUM7UUFLcEMsWUFBTyxHQUFvQixJQUFJLENBQUM7UUFLL0IsYUFBUSxHQUFpQyxJQUFJLENBQUM7SUFxQm5FLENBQUM7SUFoQkMsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUtELHNCQUFzQjtRQUNwQixPQUFPO1lBQ0wsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO2lCQUNoQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDMUIsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDO0lBQ0osQ0FBQzs7O3VCQTlEQSxLQUFLLFNBQUMsVUFBVTtrQkFLaEIsS0FBSyxTQUFDLEtBQUs7a0JBS1gsS0FBSyxTQUFDLEtBQUs7dUJBS1gsS0FBSyxTQUFDLFVBQVU7b0JBT2hCLEtBQUssU0FBQyxPQUFPO3dCQUtiLEtBQUssU0FBQyxXQUFXO3dCQUtqQixLQUFLLFNBQUMsV0FBVztzQkFLakIsS0FBSyxTQUFDLFNBQVM7dUJBS2YsS0FBSyxTQUFDLFVBQVU7OztJQS9DakIsb0RBQWtDO0lBS2xDLDhDQUE0QztJQUs1Qyx5Q0FBMEM7SUFLMUMseUNBQTBDO0lBSzFDLDhDQUE0QztJQU81QywyQ0FBc0M7SUFLdEMsK0NBQXNEO0lBS3RELCtDQUFzRDtJQUt0RCw2Q0FBa0Q7SUFLbEQsOENBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sT3B0aW9ucywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLyogdHNsaW50OmRpc2FibGU6IHRlci1wYWRkZWQtYmxvY2tzICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTnJmQ29udHJvbE9wdGlvbnMgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2xPcHRpb25zIHtcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG59XG5cbi8vIHRzbGludDpkaXNhYmxlIG5vLWlucHV0LXJlbmFtZVxuXG4vKipcbiAqIElucHV0IHdyYXBwZXJzIGNvbXBvbmVudHMgc2hvdWxkIGV4dGVuZHMgdGhpcyBjbGFzcyB0byBwYXNzIGNvbnN0cmFpbnRzIGRvd253YXJkc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTnJmQ29udHJvbE9wdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogQSBsaXN0IG9mIFZhbGlkYXRvcnMgdG8gdmFsaWRhdGUgdGhlIGlucHV0IGFuZCB0aGUgdXBkYXRlLW9uIHN0cmF0ZWd5XG4gICAqL1xuICBjb250cm9sT3B0aW9uczogTnJmQ29udHJvbE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyBpbnB1dCB0byByZWFkb25seSBhbmQgYmxvY2sgYW55IGNoYW5nZXNcbiAgICovXG4gIEBJbnB1dCgnZGlzYWJsZWQnKSBkaXNhYmxlZDogYm9vbGVhbiA9IG51bGw7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgbG93ZXN0IG51bWJlciB2YWx1ZSB0aGF0IHRoaXMgaW5wdXQgc2hvdWxkIGFjY2VwdFxuICAgKi9cbiAgQElucHV0KCdtaW4nKSBtaW46IHN0cmluZyB8IG51bWJlciA9IG51bGw7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgbWF4aW11bSBudW1iZXIgdmFsdWUgdGhhdCB0aGlzIGlucHV0IHNob3VsZCBhY2NlcHRcbiAgICovXG4gIEBJbnB1dCgnbWF4JykgbWF4OiBzdHJpbmcgfCBudW1iZXIgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBTZXQgdGhpcyBpbnB1dCBhcyByZXF1aXJlZCBhbmQgZmFpbHMgd2hlbiBlbXB0eVxuICAgKi9cbiAgQElucHV0KCdyZXF1aXJlZCcpIHJlcXVpcmVkOiBib29sZWFuID0gbnVsbDtcblxuICAvLyBASW5wdXQoJ1JlcXVpcmVkVHJ1ZScpIHJlcXVpcmVkVHJ1ZTogc3RyaW5nID0gbnVsbDtcblxuICAvKipcbiAgICogU2V0IHRoaXMgaW5wdXQgYXMgYW4gZS1tYWlsIGFuZCB2YWxpZGF0ZXMgdGhlIGUtbWFpbCBwYXR0ZXJcbiAgICovXG4gIEBJbnB1dCgnZW1haWwnKSBlbWFpbDogYm9vbGVhbiA9IG51bGw7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgbWluaW11bSBjaGFyYWN0ZXJzIHF1YW50aXR5IHRoaXMgaW5wdXQgc2hvdWxkIGFjY2VwdFxuICAgKi9cbiAgQElucHV0KCdtaW5MZW5ndGgnKSBtaW5MZW5ndGg6IHN0cmluZyB8IG51bWJlciA9IG51bGw7XG5cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgbWF4aW11bSBjaGFyYWN0ZXJzIHF1YW50aXR5IHRoaXMgaW5wdXQgc2hvdWxkIGFjY2VwdFxuICAgKi9cbiAgQElucHV0KCdtYXhMZW5ndGgnKSBtYXhMZW5ndGg6IHN0cmluZyB8IG51bWJlciA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNldCBhIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byBtYXRjaCB0aGUgaW5wdXQgdmFsdWUgYWdhaW5zdCBhbmQgZmFpbHMgaWYgbm90IG1hdGNoXG4gICAqL1xuICBASW5wdXQoJ3BhdHRlcm4nKSBwYXR0ZXJuOiBzdHJpbmcgfCBSZWdFeHAgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgbmFtZSBmb3IgY29udHJvbCB0byB1cGRhdGUgdXBvbi5cbiAgICovXG4gIEBJbnB1dCgndXBkYXRlT24nKSB1cGRhdGVPbjogJ2NoYW5nZScgfCAnYmx1cicgfCAnc3VibWl0JyA9IG51bGw7XG5cbiAgLyoqXG4gICAqIENhY2hlIHRoZSB2YWxpZGF0b3JzIHRvIGVuaGFuY2UgdGhlIHBlcmZvcm1hbmNlXG4gICAqL1xuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNvbnRyb2xPcHRpb25zID0gdGhpcy5nZW5lcmF0ZUNvbnRyb2xPcHRpb25zKCk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgdGhlIGNvbnRyb2wgb3B0aW9ucyBiYXNlZCBvbiB0aGUgcHJvcGVydGllcyBzZXQgaW4gdGhpcyBjb21wb25lbnRcbiAgICovXG4gIGdlbmVyYXRlQ29udHJvbE9wdGlvbnMoKTogTnJmQ29udHJvbE9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICB2YWxpZGF0b3JzOiBPYmplY3Qua2V5cyhWYWxpZGF0b3JzKVxuICAgICAgICAuZmlsdGVyKChrZXkpID0+IHRoaXNba2V5XSlcbiAgICAgICAgLm1hcCgoa2V5KSA9PiBWYWxpZGF0b3JzW2tleV0pLFxuICAgICAgdXBkYXRlT246IHRoaXMudXBkYXRlT24sXG4gICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICB9O1xuICB9XG59XG4iXX0=