@skireal/form-builder
Version:
Form builder for Angular apps
57 lines • 7.76 kB
JavaScript
import { __assign, __decorate } from "tslib";
import { Injectable } from '@angular/core';
import { defaultFormOptionsObject } from '../constants/form-constants';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
var FormDataService = /** @class */ (function () {
function FormDataService() {
this.formOptionsFull = new BehaviorSubject(defaultFormOptionsObject);
}
FormDataService.prototype.setFormData = function (data) {
this.formOptionsFull.next(data);
};
FormDataService.prototype.getFormData = function () {
return this.formOptionsFull.asObservable();
};
FormDataService.prototype.prepareFormData = function (formData) {
var formOptionsFullObject = formData;
var formDataSteps = formData.formData.steps;
formDataSteps.forEach(function (stepFormData, index) {
var stepData = [];
stepFormData.addedFields.forEach(function (field) {
var _a, _b, _c;
var fieldData = __assign({}, field);
if ('step' in fieldData) {
delete fieldData.step;
}
if (fieldData.type === 'need-contact') {
delete fieldData.options;
}
var hasNonRequiredValidator = (_a = field.validators) === null || _a === void 0 ? void 0 : _a.some(function (validator) { return validator.type !== 'required'; });
var hasRequiredValidator = (_b = field.validators) === null || _b === void 0 ? void 0 : _b.some(function (validator) { return validator.type === 'required'; });
if (hasNonRequiredValidator && !hasRequiredValidator) {
(_c = fieldData.validators) === null || _c === void 0 ? void 0 : _c.push({
type: 'required',
errormsg: 'This field is required'
});
}
stepData.push(fieldData);
});
formOptionsFullObject.formData.steps[index] = {
title: "Step " + (index + 1),
addedFields: stepData,
conditionalLogicBlocks: stepFormData.conditionalLogicBlocks
};
});
return formOptionsFullObject;
};
FormDataService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormDataService_Factory() { return new FormDataService(); }, token: FormDataService, providedIn: "root" });
FormDataService = __decorate([
Injectable({
providedIn: 'root'
})
], FormDataService);
return FormDataService;
}());
export { FormDataService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2tpcmVhbC9mb3JtLWJ1aWxkZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZm9ybS1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFLbkQ7SUFBQTtRQUNVLG9CQUFlLEdBQXFDLElBQUksZUFBZSxDQUM3RSx3QkFBd0IsQ0FDekIsQ0FBQztLQXNESDtJQXBEQyxxQ0FBVyxHQUFYLFVBQVksSUFBcUI7UUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELHFDQUFXLEdBQVg7UUFDRSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELHlDQUFlLEdBQWYsVUFBZ0IsUUFBeUI7UUFDdkMsSUFBTSxxQkFBcUIsR0FBb0IsUUFBUSxDQUFDO1FBQ3hELElBQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBRTlDLGFBQWEsQ0FBQyxPQUFPLENBQUMsVUFBQyxZQUFZLEVBQUUsS0FBSztZQUN4QyxJQUFNLFFBQVEsR0FBZ0IsRUFBRSxDQUFDO1lBRWpDLFlBQVksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSzs7Z0JBQ3JDLElBQU0sU0FBUyxnQkFBbUIsS0FBSyxDQUFFLENBQUM7Z0JBRTFDLElBQUksTUFBTSxJQUFJLFNBQVMsRUFBRTtvQkFDdkIsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDO2lCQUN2QjtnQkFFRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssY0FBYyxFQUFFO29CQUNyQyxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUM7aUJBQzFCO2dCQUVELElBQU0sdUJBQXVCLFNBQUcsS0FBSyxDQUFDLFVBQVUsMENBQUUsSUFBSSxDQUNwRCxVQUFDLFNBQVMsSUFBSyxPQUFBLFNBQVMsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUE3QixDQUE2QixDQUM3QyxDQUFDO2dCQUNGLElBQU0sb0JBQW9CLFNBQUcsS0FBSyxDQUFDLFVBQVUsMENBQUUsSUFBSSxDQUNqRCxVQUFDLFNBQVMsSUFBSyxPQUFBLFNBQVMsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUE3QixDQUE2QixDQUM3QyxDQUFDO2dCQUVGLElBQUksdUJBQXVCLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDcEQsTUFBQSxTQUFTLENBQUMsVUFBVSwwQ0FBRSxJQUFJLENBQUM7d0JBQ3pCLElBQUksRUFBRSxVQUFVO3dCQUNoQixRQUFRLEVBQUUsd0JBQXdCO3FCQUNuQyxFQUFFO2lCQUNKO2dCQUVELFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFFSCxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHO2dCQUM1QyxLQUFLLEVBQUUsV0FBUSxLQUFLLEdBQUcsQ0FBQyxDQUFFO2dCQUMxQixXQUFXLEVBQUUsUUFBUTtnQkFDckIsc0JBQXNCLEVBQUUsWUFBWSxDQUFDLHNCQUFzQjthQUM1RCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7O0lBeERVLGVBQWU7UUFIM0IsVUFBVSxDQUFDO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQztPQUNXLGVBQWUsQ0F5RDNCOzBCQWpFRDtDQWlFQyxBQXpERCxJQXlEQztTQXpEWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUZpZWxkLCBGb3JtT3B0aW9uc0Z1bGwgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1jb25zdHJ1Y3Rvci5tb2RlbCc7XG5pbXBvcnQgeyBkZWZhdWx0Rm9ybU9wdGlvbnNPYmplY3QgfSBmcm9tICcuLi9jb25zdGFudHMvZm9ybS1jb25zdGFudHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1EYXRhU2VydmljZSB7XG4gIHByaXZhdGUgZm9ybU9wdGlvbnNGdWxsOiBCZWhhdmlvclN1YmplY3Q8Rm9ybU9wdGlvbnNGdWxsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybU9wdGlvbnNGdWxsPihcbiAgICBkZWZhdWx0Rm9ybU9wdGlvbnNPYmplY3RcbiAgKTtcblxuICBzZXRGb3JtRGF0YShkYXRhOiBGb3JtT3B0aW9uc0Z1bGwpIHtcbiAgICB0aGlzLmZvcm1PcHRpb25zRnVsbC5uZXh0KGRhdGEpO1xuICB9XG5cbiAgZ2V0Rm9ybURhdGEoKTogT2JzZXJ2YWJsZTxGb3JtT3B0aW9uc0Z1bGw+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtT3B0aW9uc0Z1bGwuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwcmVwYXJlRm9ybURhdGEoZm9ybURhdGE6IEZvcm1PcHRpb25zRnVsbCk6IEZvcm1PcHRpb25zRnVsbCB7XG4gICAgY29uc3QgZm9ybU9wdGlvbnNGdWxsT2JqZWN0OiBGb3JtT3B0aW9uc0Z1bGwgPSBmb3JtRGF0YTtcbiAgICBjb25zdCBmb3JtRGF0YVN0ZXBzID0gZm9ybURhdGEuZm9ybURhdGEuc3RlcHM7XG5cbiAgICBmb3JtRGF0YVN0ZXBzLmZvckVhY2goKHN0ZXBGb3JtRGF0YSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHN0ZXBEYXRhOiBGb3JtRmllbGRbXSA9IFtdO1xuXG4gICAgICBzdGVwRm9ybURhdGEuYWRkZWRGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGREYXRhOiBGb3JtRmllbGQgPSB7IC4uLmZpZWxkIH07XG5cbiAgICAgICAgaWYgKCdzdGVwJyBpbiBmaWVsZERhdGEpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGREYXRhLnN0ZXA7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmllbGREYXRhLnR5cGUgPT09ICduZWVkLWNvbnRhY3QnKSB7XG4gICAgICAgICAgZGVsZXRlIGZpZWxkRGF0YS5vcHRpb25zO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaGFzTm9uUmVxdWlyZWRWYWxpZGF0b3IgPSBmaWVsZC52YWxpZGF0b3JzPy5zb21lKFxuICAgICAgICAgICh2YWxpZGF0b3IpID0+IHZhbGlkYXRvci50eXBlICE9PSAncmVxdWlyZWQnXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGhhc1JlcXVpcmVkVmFsaWRhdG9yID0gZmllbGQudmFsaWRhdG9ycz8uc29tZShcbiAgICAgICAgICAodmFsaWRhdG9yKSA9PiB2YWxpZGF0b3IudHlwZSA9PT0gJ3JlcXVpcmVkJ1xuICAgICAgICApO1xuXG4gICAgICAgIGlmIChoYXNOb25SZXF1aXJlZFZhbGlkYXRvciAmJiAhaGFzUmVxdWlyZWRWYWxpZGF0b3IpIHtcbiAgICAgICAgICBmaWVsZERhdGEudmFsaWRhdG9ycz8ucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiAncmVxdWlyZWQnLFxuICAgICAgICAgICAgZXJyb3Jtc2c6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJ1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RlcERhdGEucHVzaChmaWVsZERhdGEpO1xuICAgICAgfSk7XG5cbiAgICAgIGZvcm1PcHRpb25zRnVsbE9iamVjdC5mb3JtRGF0YS5zdGVwc1tpbmRleF0gPSB7XG4gICAgICAgIHRpdGxlOiBgU3RlcCAke2luZGV4ICsgMX1gLFxuICAgICAgICBhZGRlZEZpZWxkczogc3RlcERhdGEsXG4gICAgICAgIGNvbmRpdGlvbmFsTG9naWNCbG9ja3M6IHN0ZXBGb3JtRGF0YS5jb25kaXRpb25hbExvZ2ljQmxvY2tzXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZvcm1PcHRpb25zRnVsbE9iamVjdDtcbiAgfVxufVxuIl19