UNPKG

angular-bootstrap-italia

Version:

<p align="center"> <h1 align="center">Bootstrap Italia + Angular 9</h1>

97 lines 13.5 kB
import { __decorate, __read, __spread } from "tslib"; import { Component, Input, Output, EventEmitter } from '@angular/core'; // Services import { DynamicFormControlService } from '../dynamic-form-control.service'; var DynamicModalFormComponent = /** @class */ (function () { function DynamicModalFormComponent(qcs) { this.qcs = qcs; this.rows = []; this.submitEvent = new EventEmitter(); this.newInsertEvent = new EventEmitter(); } DynamicModalFormComponent.prototype.ngOnInit = function () { this.needConfirm = false; var elements = [].concat.apply([], __spread(this.rows.map(function (e) { return e.items; }))); this.form = this.qcs.toFormGroup(elements, this.defaultState); }; DynamicModalFormComponent.prototype.ngOnChanges = function (changes) { var _this = this; if (changes.defaultState && this.defaultState) { Object.keys(this.defaultState).forEach(function (key) { if (_this.form.get(key)) { _this.form.get(key).setValue(_this.defaultState[key]); } }); } }; DynamicModalFormComponent.prototype.toggleConfirm = function (state) { this.needConfirm = state; }; DynamicModalFormComponent.prototype.resetForm = function () { this.needConfirm = false; this.form.reset(); }; Object.defineProperty(DynamicModalFormComponent.prototype, "flatValues", { get: function () { var _this = this; var formKeys = Object.keys(this.form.getRawValue()); var elements = [].concat.apply([], __spread(this.rows.map(function (e) { return e.items; }))); return formKeys.map(function (key) { var _a, _b; var value; if (typeof _this.form.get(key).value !== 'object') { value = _this.form.get(key).value; } else { var elemKey = ((_b = (_a = elements.find(function (elem) { return elem.key === key; })) === null || _a === void 0 ? void 0 : _a.asyncParams) === null || _b === void 0 ? void 0 : _b.searchField) || elements.find(function (elem) { return elem.key === key; }).formattedValueKey; value = _this.form.get(key).value[elemKey]; } return { label: elements.find(function (elem) { return elem.key === key; }).label, value: value }; }); }, enumerable: true, configurable: true }); DynamicModalFormComponent.prototype.onSubmit = function () { var _this = this; var rawValue = this.form.getRawValue(); if (this.defaultState) { var extraKeys = Object.keys(this.defaultState).filter(function (x) { return !Object.keys(rawValue).includes(x); }); extraKeys.forEach(function (key) { rawValue[key] = _this.defaultState[key]; }); } this.submitEvent.emit(rawValue); }; DynamicModalFormComponent.prototype.emitNewInsert = function (event) { this.newInsertEvent.emit(event); }; DynamicModalFormComponent.ctorParameters = function () { return [ { type: DynamicFormControlService } ]; }; __decorate([ Input() ], DynamicModalFormComponent.prototype, "rows", void 0); __decorate([ Input() ], DynamicModalFormComponent.prototype, "defaultState", void 0); __decorate([ Output() ], DynamicModalFormComponent.prototype, "submitEvent", void 0); __decorate([ Output() ], DynamicModalFormComponent.prototype, "newInsertEvent", void 0); DynamicModalFormComponent = __decorate([ Component({ selector: 'lib-dynamic-modal-form', template: "<div>\n <form (ngSubmit)=\"onSubmit()\" [formGroup]=\"form\">\n\n <div class=\"modal-body\">\n\n <div class=\"mt-3\" *ngIf=\"!needConfirm\">\n <div *ngFor=\"let row of rows\">\n <div class=\"form-row\">\n <div *ngFor=\"let item of row.items\" [ngClass]=\"item.class\">\n <lib-dynamic-form-element [field]=\"item\" [form]=\"form\" (newInsertEvent)=\"emitNewInsert($event)\">\n </lib-dynamic-form-element>\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"needConfirm\">\n\n <div class=\"link-list-wrapper\">\n <ul class=\"link-list\">\n <li *ngFor=\"let elem of flatValues\">\n <span class=\"font-weight-bold\">{{ elem.label }}: </span>\n {{ elem.value }}\n </li>\n </ul>\n </div>\n\n <p class=\"font-weight-bold\">Vuoi confermare il salvataggio?</p>\n\n </div>\n\n </div>\n\n <div class=\"modal-footer mt-3\">\n\n <button class=\"btn btn-outline-secondary btn-sm\" type=\"button\" data-dismiss=\"modal\" (click)=\"form.reset()\"\n *ngIf=\"!needConfirm\">Annulla</button>\n <button class=\"btn btn-primary btn-sm\" type=\"button\" [disabled]=\"!form.valid\" (click)=\"toggleConfirm(true)\"\n *ngIf=\"!needConfirm\">Salva</button>\n\n <button class=\"btn btn-outline-secondary btn-sm\" type=\"button\" (click)=\"toggleConfirm(false)\"\n *ngIf=\"needConfirm\">Annulla</button>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\" [disabled]=\"!form.valid\"\n *ngIf=\"needConfirm\">Conferma</button>\n\n </div>\n\n </form>\n\n</div>\n", styles: [""] }) ], DynamicModalFormComponent); return DynamicModalFormComponent; }()); export { DynamicModalFormComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tb2RhbC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItYm9vdHN0cmFwLWl0YWxpYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLW1vZGFsLWZvcm0vZHluYW1pYy1tb2RhbC1mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFNekcsV0FBVztBQUNYLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBUTVFO0lBYUUsbUNBQW9CLEdBQThCO1FBQTlCLFFBQUcsR0FBSCxHQUFHLENBQTJCO1FBWHpDLFNBQUksR0FBc0IsRUFBRSxDQUFDO1FBRzVCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVqQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFNUSxDQUFDO0lBRXZELDRDQUFRLEdBQVI7UUFDRSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsTUFBTSxPQUFULEVBQUUsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQVAsQ0FBTyxDQUFDLEVBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELCtDQUFXLEdBQVgsVUFBWSxPQUFzQjtRQUFsQyxpQkFRQztRQVBDLElBQUksT0FBTyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFBLEdBQUc7Z0JBQ3hDLElBQUksS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3RCLEtBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ3JEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxpREFBYSxHQUFiLFVBQWMsS0FBYztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBRUQsNkNBQVMsR0FBVDtRQUNFLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELHNCQUFJLGlEQUFVO2FBQWQ7WUFBQSxpQkFvQkM7WUFuQkMsSUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDdEQsSUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDLE1BQU0sT0FBVCxFQUFFLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsS0FBSyxFQUFQLENBQU8sQ0FBQyxFQUFDLENBQUM7WUFFM0QsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQUEsR0FBRzs7Z0JBQ3JCLElBQUksS0FBSyxDQUFDO2dCQUNWLElBQUksT0FBTyxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFO29CQUNoRCxLQUFLLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO2lCQUNsQztxQkFBTTtvQkFDTCxJQUFNLE9BQU8sR0FBRyxhQUFBLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBaEIsQ0FBZ0IsQ0FBQywwQ0FBRSxXQUFXLDBDQUFFLFdBQVcsS0FDNUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFoQixDQUFnQixDQUFDLENBQUMsaUJBQWlCLENBQUM7b0JBRS9ELEtBQUssR0FBRyxLQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQzNDO2dCQUVELE9BQU87b0JBQ0wsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBaEIsQ0FBZ0IsQ0FBQyxDQUFDLEtBQUs7b0JBQ3BELEtBQUssT0FBQTtpQkFDTixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDOzs7T0FBQTtJQUVELDRDQUFRLEdBQVI7UUFBQSxpQkFXQztRQVZDLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFekMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQWxDLENBQWtDLENBQUMsQ0FBQztZQUNqRyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQUEsR0FBRztnQkFDbkIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxpREFBYSxHQUFiLFVBQWMsS0FBSztRQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOztnQkFqRXdCLHlCQUF5Qjs7SUFYekM7UUFBUixLQUFLLEVBQUU7MkRBQThCO0lBQzdCO1FBQVIsS0FBSyxFQUFFO21FQUFtQjtJQUVqQjtRQUFULE1BQU0sRUFBRTtrRUFBa0M7SUFFakM7UUFBVCxNQUFNLEVBQUU7cUVBQXFDO0lBUG5DLHlCQUF5QjtRQUxyQyxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsd0JBQXdCO1lBQ2xDLG9xREFBa0Q7O1NBRW5ELENBQUM7T0FDVyx5QkFBeUIsQ0FnRnJDO0lBQUQsZ0NBQUM7Q0FBQSxBQWhGRCxJQWdGQztTQWhGWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy8gTW9kZWxzXG5pbXBvcnQgeyBGb3JtUm93IH0gZnJvbSAnLi4vLi4vZm9ybS9mb3JtLXJvdyc7XG5cbi8vIFNlcnZpY2VzXG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLWNvbnRyb2wuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWR5bmFtaWMtbW9kYWwtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLW1vZGFsLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLW1vZGFsLWZvcm0uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljTW9kYWxGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIHJvd3M6IEZvcm1Sb3c8c3RyaW5nPltdID0gW107XG4gIEBJbnB1dCgpIGRlZmF1bHRTdGF0ZTogYW55O1xuXG4gIEBPdXRwdXQoKSBzdWJtaXRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgbmV3SW5zZXJ0RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIG5lZWRDb25maXJtOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcWNzOiBEeW5hbWljRm9ybUNvbnRyb2xTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm5lZWRDb25maXJtID0gZmFsc2U7XG5cbiAgICBjb25zdCBlbGVtZW50cyA9IFtdLmNvbmNhdCguLi50aGlzLnJvd3MubWFwKGUgPT4gZS5pdGVtcykpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMucWNzLnRvRm9ybUdyb3VwKGVsZW1lbnRzLCB0aGlzLmRlZmF1bHRTdGF0ZSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuZGVmYXVsdFN0YXRlICYmIHRoaXMuZGVmYXVsdFN0YXRlKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmRlZmF1bHRTdGF0ZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAodGhpcy5mb3JtLmdldChrZXkpKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmdldChrZXkpLnNldFZhbHVlKHRoaXMuZGVmYXVsdFN0YXRlW2tleV0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVDb25maXJtKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5uZWVkQ29uZmlybSA9IHN0YXRlO1xuICB9XG5cbiAgcmVzZXRGb3JtKCkge1xuICAgIHRoaXMubmVlZENvbmZpcm0gPSBmYWxzZTtcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgfVxuXG4gIGdldCBmbGF0VmFsdWVzKCkge1xuICAgIGNvbnN0IGZvcm1LZXlzID0gT2JqZWN0LmtleXModGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xuICAgIGNvbnN0IGVsZW1lbnRzID0gW10uY29uY2F0KC4uLnRoaXMucm93cy5tYXAoZSA9PiBlLml0ZW1zKSk7XG5cbiAgICByZXR1cm4gZm9ybUtleXMubWFwKGtleSA9PiB7XG4gICAgICBsZXQgdmFsdWU7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuZm9ybS5nZXQoa2V5KS52YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdmFsdWUgPSB0aGlzLmZvcm0uZ2V0KGtleSkudmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBlbGVtS2V5ID0gZWxlbWVudHMuZmluZChlbGVtID0+IGVsZW0ua2V5ID09PSBrZXkpPy5hc3luY1BhcmFtcz8uc2VhcmNoRmllbGRcbiAgICAgICAgICB8fCBlbGVtZW50cy5maW5kKGVsZW0gPT4gZWxlbS5rZXkgPT09IGtleSkuZm9ybWF0dGVkVmFsdWVLZXk7XG5cbiAgICAgICAgdmFsdWUgPSB0aGlzLmZvcm0uZ2V0KGtleSkudmFsdWVbZWxlbUtleV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsOiBlbGVtZW50cy5maW5kKGVsZW0gPT4gZWxlbS5rZXkgPT09IGtleSkubGFiZWwsXG4gICAgICAgIHZhbHVlXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgY29uc3QgcmF3VmFsdWUgPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKTtcblxuICAgIGlmICh0aGlzLmRlZmF1bHRTdGF0ZSkge1xuICAgICAgY29uc3QgZXh0cmFLZXlzID0gT2JqZWN0LmtleXModGhpcy5kZWZhdWx0U3RhdGUpLmZpbHRlcih4ID0+ICFPYmplY3Qua2V5cyhyYXdWYWx1ZSkuaW5jbHVkZXMoeCkpO1xuICAgICAgZXh0cmFLZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgcmF3VmFsdWVba2V5XSA9IHRoaXMuZGVmYXVsdFN0YXRlW2tleV07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnN1Ym1pdEV2ZW50LmVtaXQocmF3VmFsdWUpO1xuICB9XG5cbiAgZW1pdE5ld0luc2VydChldmVudCkge1xuICAgIHRoaXMubmV3SW5zZXJ0RXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxufVxuIl19