angular-bootstrap-italia
Version:
<p align="center"> <h1 align="center">Bootstrap Italia + Angular 9</h1>
78 lines • 11.4 kB
JavaScript
import { __decorate } from "tslib";
import { Component, Input, Output, EventEmitter } from '@angular/core';
let DynamicFormElementComponent = class DynamicFormElementComponent {
constructor() {
this.newInsertEvent = new EventEmitter();
this.parentValue = null;
}
ngOnInit() {
if (this.field.parentFieldKey) {
this.parentSubscription = this.form.get(this.field.parentFieldKey)
.valueChanges
.subscribe(newValue => {
var _a, _b, _c, _d;
let validParent = false;
if (this.form.get(this.field.parentFieldKey).valid && ((_a = this.parentField) === null || _a === void 0 ? void 0 : _a.controlType) !== 'autocomplete') {
validParent = true;
}
else if (((_b = this.form.get(this.field.parentFieldKey)) === null || _b === void 0 ? void 0 : _b.value) && typeof this.form.get(this.field.parentFieldKey).value === 'object'
&& Object.keys(this.form.get(this.field.parentFieldKey).value).length > 0) {
validParent = true;
}
if (validParent) {
if ((_c = this.form.get(this.field.key)) === null || _c === void 0 ? void 0 : _c.disabled) {
this.form.get(this.field.key).enable();
}
}
else {
if ((_d = this.form.get(this.field.key)) === null || _d === void 0 ? void 0 : _d.enable) {
this.form.get(this.field.key).reset();
this.form.get(this.field.key).disable();
}
}
this.parentValue = newValue;
});
}
}
ngOnDestroy() {
if (this.parentSubscription) {
this.parentSubscription.unsubscribe();
}
}
get isValid() {
return this.form.controls[this.field.key].valid;
}
get isTouched() {
return this.form.controls[this.field.key].touched;
}
get isDirty() {
return this.form.controls[this.field.key].dirty;
}
get isPristine() {
return this.form.controls[this.field.key].pristine;
}
emitNewInsert(event) {
this.newInsertEvent.emit(event);
}
};
__decorate([
Input()
], DynamicFormElementComponent.prototype, "field", void 0);
__decorate([
Input()
], DynamicFormElementComponent.prototype, "form", void 0);
__decorate([
Input()
], DynamicFormElementComponent.prototype, "parentField", void 0);
__decorate([
Output()
], DynamicFormElementComponent.prototype, "newInsertEvent", void 0);
DynamicFormElementComponent = __decorate([
Component({
selector: 'lib-dynamic-form-element',
template: "<div [ngSwitch]=\"field.controlType\">\r\n\r\n <lib-checkbox *ngSwitchCase=\"'checkbox'\" [field]=\"field\" [form]=\"form\" [valid]=\"isValid && (isTouched || isDirty)\"\r\n [invalid]=\"!isValid && (isTouched || isDirty)\">\r\n </lib-checkbox>\r\n\r\n <lib-textbox *ngSwitchCase=\"'textbox'\" [field]=\"field\" [form]=\"form\" [valid]=\"isValid && (isTouched || isDirty)\"\r\n [invalid]=\"!isValid && (isTouched || isDirty)\"></lib-textbox>\r\n\r\n <lib-textbox-number *ngSwitchCase=\"'textbox-number'\" [field]=\"field\" [form]=\"form\"\r\n [valid]=\"isValid && (isTouched || isDirty)\" [invalid]=\"!isValid && (isTouched || isDirty)\" [min]=\"field.min\" [max]=\"field.max\"></lib-textbox-number>\r\n\r\n <lib-textarea *ngSwitchCase=\"'textarea'\" [field]=\"field\" [form]=\"form\" [valid]=\"isValid && (isTouched || isDirty)\"\r\n [invalid]=\"!isValid && (isTouched || isDirty)\"></lib-textarea>\r\n\r\n <lib-select *ngSwitchCase=\"'dropdown'\" [field]=\"field\" [form]=\"form\" [valid]=\"isValid && (isTouched || isDirty)\"\r\n [invalid]=\"!isValid && (isTouched || isDirty)\"></lib-select>\r\n\r\n <lib-typeahead *ngSwitchCase=\"'autocomplete'\" [field]=\"field\" [form]=\"form\" [parentValue]=\"parentValue\" (newInsertEvent)=\"emitNewInsert($event)\"></lib-typeahead>\r\n\r\n <lib-date-picker *ngSwitchCase=\"'datepicker'\" [field]=\"field\" [form]=\"form\" [valid]=\"isValid && (isTouched || isDirty)\"\r\n [invalid]=\"!isValid && (isTouched || isDirty)\"></lib-date-picker>\r\n\r\n</div>\r\n",
styles: [""]
})
], DynamicFormElementComponent);
export { DynamicFormElementComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWVsZW1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1ib290c3RyYXAtaXRhbGlhLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS1lbGVtZW50L2R5bmFtaWMtZm9ybS1lbGVtZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFhMUYsSUFBYSwyQkFBMkIsR0FBeEMsTUFBYSwyQkFBMkI7SUFZdEM7UUFOVSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFJOUMsZ0JBQVcsR0FBVyxJQUFJLENBQUM7SUFFWCxDQUFDO0lBRWpCLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztpQkFDL0QsWUFBWTtpQkFDWixTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7O2dCQUNwQixJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7Z0JBRXhCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxXQUFXLE1BQUssY0FBYyxFQUFFO29CQUN0RyxXQUFXLEdBQUcsSUFBSSxDQUFDO2lCQUNwQjtxQkFBTSxJQUFJLE9BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsMENBQUUsS0FBSyxLQUNyRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsS0FBSyxLQUFLLFFBQVE7dUJBQ2xFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUMzRSxXQUFXLEdBQUcsSUFBSSxDQUFDO2lCQUNwQjtnQkFFRCxJQUFJLFdBQVcsRUFBRTtvQkFDZixVQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLDBDQUFFLFFBQVEsRUFBRTt3QkFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztxQkFDeEM7aUJBQ0Y7cUJBQU07b0JBQ0wsVUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQywwQ0FBRSxNQUFNLEVBQUU7d0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7cUJBQ3pDO2lCQUNGO2dCQUVELElBQUksQ0FBQyxXQUFXLEdBQUksUUFBUSxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzNCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3JELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBSztRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0NBRUYsQ0FBQTtBQXRFVTtJQUFSLEtBQUssRUFBRTswREFBeUI7QUFDeEI7SUFBUixLQUFLLEVBQUU7eURBQWlCO0FBRWhCO0lBQVIsS0FBSyxFQUFFO2dFQUErQjtBQUU3QjtJQUFULE1BQU0sRUFBRTttRUFBcUM7QUFObkMsMkJBQTJCO0lBTHZDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsZ2dEQUFvRDs7S0FFckQsQ0FBQztHQUNXLDJCQUEyQixDQXVFdkM7U0F2RVksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vLyBNb2RlbHNcclxuaW1wb3J0IHsgRm9ybUJhc2UgfSBmcm9tICcuLi8uLi9mb3JtL2Zvcm0tYmFzZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZHluYW1pYy1mb3JtLWVsZW1lbnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0tZWxlbWVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1mb3JtLWVsZW1lbnQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1FbGVtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBGb3JtQmFzZTxzdHJpbmc+O1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuXHJcbiAgQElucHV0KCkgcGFyZW50RmllbGQ6IEZvcm1CYXNlPHN0cmluZz47XHJcblxyXG4gIEBPdXRwdXQoKSBuZXdJbnNlcnRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgcGFyZW50U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHBhcmVudFZhbHVlOiBvYmplY3QgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpZWxkLnBhcmVudEZpZWxkS2V5KSB7XHJcbiAgICAgIHRoaXMucGFyZW50U3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLnBhcmVudEZpZWxkS2V5KVxyXG4gICAgICAgIC52YWx1ZUNoYW5nZXNcclxuICAgICAgICAuc3Vic2NyaWJlKG5ld1ZhbHVlID0+IHtcclxuICAgICAgICAgIGxldCB2YWxpZFBhcmVudCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQucGFyZW50RmllbGRLZXkpLnZhbGlkICYmIHRoaXMucGFyZW50RmllbGQ/LmNvbnRyb2xUeXBlICE9PSAnYXV0b2NvbXBsZXRlJykge1xyXG4gICAgICAgICAgICB2YWxpZFBhcmVudCA9IHRydWU7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5wYXJlbnRGaWVsZEtleSk/LnZhbHVlXHJcbiAgICAgICAgICAgICYmIHR5cGVvZiB0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQucGFyZW50RmllbGRLZXkpLnZhbHVlID09PSAnb2JqZWN0J1xyXG4gICAgICAgICAgICAmJiBPYmplY3Qua2V5cyh0aGlzLmZvcm0uZ2V0KHRoaXMuZmllbGQucGFyZW50RmllbGRLZXkpLnZhbHVlKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHZhbGlkUGFyZW50ID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodmFsaWRQYXJlbnQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5rZXkpPy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5rZXkpLmVuYWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLmtleSk/LmVuYWJsZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5rZXkpLnJlc2V0KCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLmZpZWxkLmtleSkuZGlzYWJsZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5wYXJlbnRWYWx1ZSAgPSBuZXdWYWx1ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucGFyZW50U3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMucGFyZW50U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgaXNWYWxpZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5maWVsZC5rZXldLnZhbGlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVG91Y2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5maWVsZC5rZXldLnRvdWNoZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNEaXJ0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5maWVsZC5rZXldLmRpcnR5O1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzUHJpc3RpbmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMuZmllbGQua2V5XS5wcmlzdGluZTtcclxuICB9XHJcblxyXG4gIGVtaXROZXdJbnNlcnQoZXZlbnQpIHtcclxuICAgIHRoaXMubmV3SW5zZXJ0RXZlbnQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=