kwikid-forms
Version:
KwikID's JSON Configuration based Forms Renderer and Builder
45 lines • 7.05 kB
JavaScript
import { __awaiter, __decorate } from "tslib";
import { FormControl, FormGroup } from "@angular/forms";
import { checkObjectKeyExists, logMethod } from "kwikid-toolkit";
import { Defaults } from "./helpers/form-view.defaults.helper";
import { convertFormFieldValueToKwikUIFormat } from "./helpers/form-view.fields.helper";
import { FormValidation } from "./helpers/form-view.form-validations.helper";
export class KwikIDFormViewService {
// 'init' stage of the form
createFormGroup(fields, object, takeAction) {
return __awaiter(this, void 0, void 0, function* () {
const formGroup = new FormGroup({});
for (const field of fields) {
if (field.isFormElement) {
const defaults = new Defaults(field, Object.assign(Object.assign({}, object), { FORM_FIELDS: fields }), takeAction);
let value = "";
if (checkObjectKeyExists(field, "default")) {
if (checkObjectKeyExists(field.default, "value")) {
value = yield defaults.getFormFieldValue();
}
}
if (checkObjectKeyExists(field, "default")) {
if (checkObjectKeyExists(field.default, "api")) {
yield defaults.getFormFieldApiValue();
}
}
if (checkObjectKeyExists(field, "default")) {
if (checkObjectKeyExists(field.default, "options")) {
if (field.default.options.triggers.includes("ON_INIT")) {
yield defaults.getFormFieldOptions();
}
}
}
value = convertFormFieldValueToKwikUIFormat(field, value);
const validators = new FormValidation().getFormFieldValidators(field);
formGroup.addControl(field.key, new FormControl({ value, disabled: field.disabled }, { validators }));
}
}
return formGroup;
});
}
}
__decorate([
logMethod
], KwikIDFormViewService.prototype, "createFormGroup", null);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvZm9ybS12aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFN0UsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQywyQkFBMkI7SUFFckIsZUFBZSxDQUFDLE1BQVcsRUFBRSxNQUFXLEVBQUUsVUFBZTs7WUFDN0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFcEMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7Z0JBQzFCLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtvQkFDdkIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQzNCLEtBQUssa0NBRUEsTUFBTSxLQUNULFdBQVcsRUFBRSxNQUFNLEtBRXJCLFVBQVUsQ0FDWCxDQUFDO29CQUNGLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDZixJQUFJLG9CQUFvQixDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsRUFBRTt3QkFDMUMsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFOzRCQUNoRCxLQUFLLEdBQUcsTUFBTSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt5QkFDNUM7cUJBQ0Y7b0JBRUQsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7d0JBQzFDLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRTs0QkFDOUMsTUFBTSxRQUFRLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzt5QkFDdkM7cUJBQ0Y7b0JBRUQsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7d0JBQzFDLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRTs0QkFDbEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dDQUN0RCxNQUFNLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDOzZCQUN0Qzt5QkFDRjtxQkFDRjtvQkFFRCxLQUFLLEdBQUcsbUNBQW1DLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUUxRCxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUV0RSxTQUFTLENBQUMsVUFBVSxDQUNsQixLQUFLLENBQUMsR0FBRyxFQUNULElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO2lCQUNIO2FBQ0Y7WUFFRCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0tBQUE7Q0FDRjtBQS9DQztJQURDLFNBQVM7NERBK0NUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgY2hlY2tPYmplY3RLZXlFeGlzdHMsIGxvZ01ldGhvZCB9IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgRGVmYXVsdHMgfSBmcm9tIFwiLi9oZWxwZXJzL2Zvcm0tdmlldy5kZWZhdWx0cy5oZWxwZXJcIjtcbmltcG9ydCB7IGNvbnZlcnRGb3JtRmllbGRWYWx1ZVRvS3dpa1VJRm9ybWF0IH0gZnJvbSBcIi4vaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlclwiO1xuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb24gfSBmcm9tIFwiLi9oZWxwZXJzL2Zvcm0tdmlldy5mb3JtLXZhbGlkYXRpb25zLmhlbHBlclwiO1xuXG5leHBvcnQgY2xhc3MgS3dpa0lERm9ybVZpZXdTZXJ2aWNlIHtcbiAgLy8gJ2luaXQnIHN0YWdlIG9mIHRoZSBmb3JtXG4gIEBsb2dNZXRob2RcbiAgYXN5bmMgY3JlYXRlRm9ybUdyb3VwKGZpZWxkczogYW55LCBvYmplY3Q6IGFueSwgdGFrZUFjdGlvbjogYW55KSB7XG4gICAgY29uc3QgZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG5cbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgaWYgKGZpZWxkLmlzRm9ybUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZGVmYXVsdHMgPSBuZXcgRGVmYXVsdHMoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4ub2JqZWN0LFxuICAgICAgICAgICAgRk9STV9GSUVMRFM6IGZpZWxkc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdGFrZUFjdGlvblxuICAgICAgICApO1xuICAgICAgICBsZXQgdmFsdWUgPSBcIlwiO1xuICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQsIFwiZGVmYXVsdFwiKSkge1xuICAgICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZC5kZWZhdWx0LCBcInZhbHVlXCIpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IGF3YWl0IGRlZmF1bHRzLmdldEZvcm1GaWVsZFZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRcIikpIHtcbiAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuZGVmYXVsdCwgXCJhcGlcIikpIHtcbiAgICAgICAgICAgIGF3YWl0IGRlZmF1bHRzLmdldEZvcm1GaWVsZEFwaVZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcImRlZmF1bHRcIikpIHtcbiAgICAgICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZmllbGQuZGVmYXVsdCwgXCJvcHRpb25zXCIpKSB7XG4gICAgICAgICAgICBpZiAoZmllbGQuZGVmYXVsdC5vcHRpb25zLnRyaWdnZXJzLmluY2x1ZGVzKFwiT05fSU5JVFwiKSkge1xuICAgICAgICAgICAgICBhd2FpdCBkZWZhdWx0cy5nZXRGb3JtRmllbGRPcHRpb25zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdmFsdWUgPSBjb252ZXJ0Rm9ybUZpZWxkVmFsdWVUb0t3aWtVSUZvcm1hdChmaWVsZCwgdmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBuZXcgRm9ybVZhbGlkYXRpb24oKS5nZXRGb3JtRmllbGRWYWxpZGF0b3JzKGZpZWxkKTtcblxuICAgICAgICBmb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICBmaWVsZC5rZXksXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKHsgdmFsdWUsIGRpc2FibGVkOiBmaWVsZC5kaXNhYmxlZCB9LCB7IHZhbGlkYXRvcnMgfSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZm9ybUdyb3VwO1xuICB9XG59XG4iXX0=