@skireal/form-builder
Version:
Form builder for Angular apps
56 lines • 7.53 kB
JavaScript
import { __decorate } from "tslib";
import { Injectable } from '@angular/core';
import { defaultFormOptionsObject } from '../constants/form-constants';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
let FormDataService = class FormDataService {
constructor() {
this.formOptionsFull = new BehaviorSubject(defaultFormOptionsObject);
}
setFormData(data) {
this.formOptionsFull.next(data);
}
getFormData() {
return this.formOptionsFull.asObservable();
}
prepareFormData(formData) {
const formOptionsFullObject = formData;
const formDataSteps = formData.formData.steps;
formDataSteps.forEach((stepFormData, index) => {
const stepData = [];
stepFormData.addedFields.forEach((field) => {
var _a, _b, _c;
const fieldData = Object.assign({}, field);
if ('step' in fieldData) {
delete fieldData.step;
}
if (fieldData.type === 'need-contact') {
delete fieldData.options;
}
const hasNonRequiredValidator = (_a = field.validators) === null || _a === void 0 ? void 0 : _a.some((validator) => validator.type !== 'required');
const hasRequiredValidator = (_b = field.validators) === null || _b === void 0 ? void 0 : _b.some((validator) => 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);
export { FormDataService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2tpcmVhbC9mb3JtLWJ1aWxkZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvZm9ybS1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFLbkQsSUFBYSxlQUFlLEdBQTVCLE1BQWEsZUFBZTtJQUE1QjtRQUNVLG9CQUFlLEdBQXFDLElBQUksZUFBZSxDQUM3RSx3QkFBd0IsQ0FDekIsQ0FBQztLQXNESDtJQXBEQyxXQUFXLENBQUMsSUFBcUI7UUFDL0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUF5QjtRQUN2QyxNQUFNLHFCQUFxQixHQUFvQixRQUFRLENBQUM7UUFDeEQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFFOUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM1QyxNQUFNLFFBQVEsR0FBZ0IsRUFBRSxDQUFDO1lBRWpDLFlBQVksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7O2dCQUN6QyxNQUFNLFNBQVMscUJBQW1CLEtBQUssQ0FBRSxDQUFDO2dCQUUxQyxJQUFJLE1BQU0sSUFBSSxTQUFTLEVBQUU7b0JBQ3ZCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQztpQkFDdkI7Z0JBRUQsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTtvQkFDckMsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDO2lCQUMxQjtnQkFFRCxNQUFNLHVCQUF1QixTQUFHLEtBQUssQ0FBQyxVQUFVLDBDQUFFLElBQUksQ0FDcEQsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUM3QyxDQUFDO2dCQUNGLE1BQU0sb0JBQW9CLFNBQUcsS0FBSyxDQUFDLFVBQVUsMENBQUUsSUFBSSxDQUNqRCxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxVQUFVLENBQzdDLENBQUM7Z0JBRUYsSUFBSSx1QkFBdUIsSUFBSSxDQUFDLG9CQUFvQixFQUFFO29CQUNwRCxNQUFBLFNBQVMsQ0FBQyxVQUFVLDBDQUFFLElBQUksQ0FBQzt3QkFDekIsSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLFFBQVEsRUFBRSx3QkFBd0I7cUJBQ25DLEVBQUU7aUJBQ0o7Z0JBRUQsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztZQUVILHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUc7Z0JBQzVDLEtBQUssRUFBRSxRQUFRLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQzFCLFdBQVcsRUFBRSxRQUFRO2dCQUNyQixzQkFBc0IsRUFBRSxZQUFZLENBQUMsc0JBQXNCO2FBQzVELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8scUJBQXFCLENBQUM7SUFDL0IsQ0FBQztDQUNGLENBQUE7O0FBekRZLGVBQWU7SUFIM0IsVUFBVSxDQUFDO1FBQ1YsVUFBVSxFQUFFLE1BQU07S0FDbkIsQ0FBQztHQUNXLGVBQWUsQ0F5RDNCO1NBekRZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZvcm1PcHRpb25zRnVsbCB9IGZyb20gJy4uL21vZGVscy9mb3JtLWNvbnN0cnVjdG9yLm1vZGVsJztcbmltcG9ydCB7IGRlZmF1bHRGb3JtT3B0aW9uc09iamVjdCB9IGZyb20gJy4uL2NvbnN0YW50cy9mb3JtLWNvbnN0YW50cyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRm9ybURhdGFTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBmb3JtT3B0aW9uc0Z1bGw6IEJlaGF2aW9yU3ViamVjdDxGb3JtT3B0aW9uc0Z1bGw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtT3B0aW9uc0Z1bGw+KFxuICAgIGRlZmF1bHRGb3JtT3B0aW9uc09iamVjdFxuICApO1xuXG4gIHNldEZvcm1EYXRhKGRhdGE6IEZvcm1PcHRpb25zRnVsbCkge1xuICAgIHRoaXMuZm9ybU9wdGlvbnNGdWxsLm5leHQoZGF0YSk7XG4gIH1cblxuICBnZXRGb3JtRGF0YSgpOiBPYnNlcnZhYmxlPEZvcm1PcHRpb25zRnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1PcHRpb25zRnVsbC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByZXBhcmVGb3JtRGF0YShmb3JtRGF0YTogRm9ybU9wdGlvbnNGdWxsKTogRm9ybU9wdGlvbnNGdWxsIHtcbiAgICBjb25zdCBmb3JtT3B0aW9uc0Z1bGxPYmplY3Q6IEZvcm1PcHRpb25zRnVsbCA9IGZvcm1EYXRhO1xuICAgIGNvbnN0IGZvcm1EYXRhU3RlcHMgPSBmb3JtRGF0YS5mb3JtRGF0YS5zdGVwcztcblxuICAgIGZvcm1EYXRhU3RlcHMuZm9yRWFjaCgoc3RlcEZvcm1EYXRhLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3Qgc3RlcERhdGE6IEZvcm1GaWVsZFtdID0gW107XG5cbiAgICAgIHN0ZXBGb3JtRGF0YS5hZGRlZEZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZERhdGE6IEZvcm1GaWVsZCA9IHsgLi4uZmllbGQgfTtcblxuICAgICAgICBpZiAoJ3N0ZXAnIGluIGZpZWxkRGF0YSkge1xuICAgICAgICAgIGRlbGV0ZSBmaWVsZERhdGEuc3RlcDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWVsZERhdGEudHlwZSA9PT0gJ25lZWQtY29udGFjdCcpIHtcbiAgICAgICAgICBkZWxldGUgZmllbGREYXRhLm9wdGlvbnM7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBoYXNOb25SZXF1aXJlZFZhbGlkYXRvciA9IGZpZWxkLnZhbGlkYXRvcnM/LnNvbWUoXG4gICAgICAgICAgKHZhbGlkYXRvcikgPT4gdmFsaWRhdG9yLnR5cGUgIT09ICdyZXF1aXJlZCdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgaGFzUmVxdWlyZWRWYWxpZGF0b3IgPSBmaWVsZC52YWxpZGF0b3JzPy5zb21lKFxuICAgICAgICAgICh2YWxpZGF0b3IpID0+IHZhbGlkYXRvci50eXBlID09PSAncmVxdWlyZWQnXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKGhhc05vblJlcXVpcmVkVmFsaWRhdG9yICYmICFoYXNSZXF1aXJlZFZhbGlkYXRvcikge1xuICAgICAgICAgIGZpZWxkRGF0YS52YWxpZGF0b3JzPy5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdyZXF1aXJlZCcsXG4gICAgICAgICAgICBlcnJvcm1zZzogJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBzdGVwRGF0YS5wdXNoKGZpZWxkRGF0YSk7XG4gICAgICB9KTtcblxuICAgICAgZm9ybU9wdGlvbnNGdWxsT2JqZWN0LmZvcm1EYXRhLnN0ZXBzW2luZGV4XSA9IHtcbiAgICAgICAgdGl0bGU6IGBTdGVwICR7aW5kZXggKyAxfWAsXG4gICAgICAgIGFkZGVkRmllbGRzOiBzdGVwRGF0YSxcbiAgICAgICAgY29uZGl0aW9uYWxMb2dpY0Jsb2Nrczogc3RlcEZvcm1EYXRhLmNvbmRpdGlvbmFsTG9naWNCbG9ja3NcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZm9ybU9wdGlvbnNGdWxsT2JqZWN0O1xuICB9XG59XG4iXX0=