kwikid-forms
Version:
KwikID's JSON Configuration based Forms Renderer and Builder
44 lines • 5.02 kB
JavaScript
import { __decorate } from "tslib";
import { FormControl, FormGroup } from "@angular/forms";
import { isNotEmptyValue, logMethod } from "kwikid-toolkit";
export class KwikIDFormBuilderFormEditorService {
createNestedFormGroup(object) {
const formGroup = {};
for (const index in object) {
if (isNotEmptyValue(index)) {
formGroup[index] = new FormControl(object[index]);
}
}
return new FormGroup(formGroup);
}
downloadJSON(object) {
const DATA = JSON.stringify(object); // Convert object to JSON string
const type = "application/json";
const FILE_NAME = `${object.key}.json`;
const blob = new Blob([DATA], { type });
const url = window.URL.createObjectURL(blob);
const link = document.createElement("a");
link.download = FILE_NAME;
link.href = url;
link.click();
window.URL.revokeObjectURL(url);
}
copyToClipboard(text) {
if (typeof text === "string") {
navigator.clipboard.writeText(text);
}
else {
navigator.clipboard.writeText(JSON.stringify(text));
}
}
}
__decorate([
logMethod
], KwikIDFormBuilderFormEditorService.prototype, "createNestedFormGroup", null);
__decorate([
logMethod
], KwikIDFormBuilderFormEditorService.prototype, "downloadJSON", null);
__decorate([
logMethod
], KwikIDFormBuilderFormEditorService.prototype, "copyToClipboard", null);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5mb3JtLWVkaXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvYnVpbGRlci9idWlsZGVyLWZvcm0tZWRpdG9yL2J1aWxkZXIuZm9ybS1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE1BQU0sT0FBTyxrQ0FBa0M7SUFFN0MscUJBQXFCLENBQUMsTUFBYTtRQUNqQyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFFckIsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUU7WUFDMUIsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNuRDtTQUNGO1FBRUQsT0FBTyxJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBR0QsWUFBWSxDQUFDLE1BQVc7UUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGdDQUFnQztRQUNyRSxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQztRQUNoQyxNQUFNLFNBQVMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUV2QyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFHRCxlQUFlLENBQUMsSUFBUztRQUN2QixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM1QixTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNyQzthQUFNO1lBQ0wsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztDQUNGO0FBbkNDO0lBREMsU0FBUzsrRUFXVDtBQUdEO0lBREMsU0FBUztzRUFhVDtBQUdEO0lBREMsU0FBUzt5RUFPVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IGlzTm90RW1wdHlWYWx1ZSwgbG9nTWV0aG9kIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5cbmV4cG9ydCBjbGFzcyBLd2lrSURGb3JtQnVpbGRlckZvcm1FZGl0b3JTZXJ2aWNlIHtcbiAgQGxvZ01ldGhvZFxuICBjcmVhdGVOZXN0ZWRGb3JtR3JvdXAob2JqZWN0OiBhbnlbXSk6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgZm9ybUdyb3VwID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGluZGV4IGluIG9iamVjdCkge1xuICAgICAgaWYgKGlzTm90RW1wdHlWYWx1ZShpbmRleCkpIHtcbiAgICAgICAgZm9ybUdyb3VwW2luZGV4XSA9IG5ldyBGb3JtQ29udHJvbChvYmplY3RbaW5kZXhdKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEZvcm1Hcm91cChmb3JtR3JvdXApO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBkb3dubG9hZEpTT04ob2JqZWN0OiBhbnkpIHtcbiAgICBjb25zdCBEQVRBID0gSlNPTi5zdHJpbmdpZnkob2JqZWN0KTsgLy8gQ29udmVydCBvYmplY3QgdG8gSlNPTiBzdHJpbmdcbiAgICBjb25zdCB0eXBlID0gXCJhcHBsaWNhdGlvbi9qc29uXCI7XG4gICAgY29uc3QgRklMRV9OQU1FID0gYCR7b2JqZWN0LmtleX0uanNvbmA7XG5cbiAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW0RBVEFdLCB7IHR5cGUgfSk7XG4gICAgY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICAgIGxpbmsuZG93bmxvYWQgPSBGSUxFX05BTUU7XG4gICAgbGluay5ocmVmID0gdXJsO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBjb3B5VG9DbGlwYm9hcmQodGV4dDogYW55KSB7XG4gICAgaWYgKHR5cGVvZiB0ZXh0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkodGV4dCkpO1xuICAgIH1cbiAgfVxufVxuIl19