impaktapps-ui-builder 1.0.104 → 1.0.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/impaktapps-ui-builder.es.js +81 -113
- package/dist/impaktapps-ui-builder.es.js.map +1 -1
- package/dist/impaktapps-ui-builder.umd.js +11 -11
- package/dist/impaktapps-ui-builder.umd.js.map +1 -1
- package/dist/src/impaktapps-ui-builder/builder/build/buildUiSchema.d.ts +6 -1
- package/dist/src/impaktapps-ui-builder/lib/index.d.ts +1 -1
- package/dist/src/impaktapps-ui-builder/runtime/services/downloadFile.d.ts +1 -2
- package/dist/src/impaktapps-ui-builder/runtime/services/interface.d.ts +1 -0
- package/dist/src/impaktapps-ui-builder/runtime/services/service.d.ts +2 -3
- package/package.json +1 -1
- package/src/impaktapps-ui-builder/builder/build/buildUiSchema.ts +63 -15
- package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/schema.ts +0 -1
- package/src/impaktapps-ui-builder/lib/index.ts +1 -1
- package/src/impaktapps-ui-builder/runtime/services/downloadFile.ts +2 -19
- package/src/impaktapps-ui-builder/runtime/services/events.ts +20 -7
- package/src/impaktapps-ui-builder/runtime/services/interface.ts +1 -0
- package/src/impaktapps-ui-builder/runtime/services/service.ts +5 -6
|
@@ -3,6 +3,11 @@ export declare let schema: {
|
|
|
3
3
|
properties: {};
|
|
4
4
|
required: any[];
|
|
5
5
|
};
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function buildSchemaFromConfig(config: any, parentSchema: any): void;
|
|
7
|
+
export declare const buildSchema: (config: any) => {
|
|
8
|
+
type: string;
|
|
9
|
+
properties: {};
|
|
10
|
+
required: any[];
|
|
11
|
+
};
|
|
7
12
|
declare const buildUiSchema: (config: any, store?: any) => any;
|
|
8
13
|
export default buildUiSchema;
|
|
@@ -7,4 +7,4 @@ export { default as buildConfig } from "../builder/build/buildConfig";
|
|
|
7
7
|
export { default as buildUiSchema } from "../builder/build/buildUiSchema";
|
|
8
8
|
export { buildSchema } from "../builder/build/buildUiSchema";
|
|
9
9
|
export { default as clearFromSessionStorage } from "../builder/services/utils";
|
|
10
|
-
export {
|
|
10
|
+
export { downloadFile, downloadFileFromUrl } from "../runtime/services/downloadFile";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { downloadFile } from "./downloadFile";
|
|
2
2
|
interface funcParamsProps {
|
|
3
3
|
store: any;
|
|
4
4
|
dynamicData: any;
|
|
@@ -28,8 +28,7 @@ declare const _default: (funcParams: funcParamsProps) => {
|
|
|
28
28
|
onNext: (functionParameters: any) => Promise<void>;
|
|
29
29
|
onReset: (functionParameters: any) => Promise<void>;
|
|
30
30
|
callHandler: (eventType: string, functionParameters?: any) => Promise<void>;
|
|
31
|
-
downloadFile:
|
|
31
|
+
downloadFile: typeof downloadFile;
|
|
32
32
|
downloadFileFromUrl: (response: any, service: any) => void;
|
|
33
|
-
downloadFileFromBase64: typeof downloadFileFromBase64;
|
|
34
33
|
};
|
|
35
34
|
export default _default;
|
package/package.json
CHANGED
|
@@ -132,30 +132,78 @@ function buildNode(config: any): any {
|
|
|
132
132
|
};
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
export function
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
135
|
+
export function buildSchemaFromConfig(config: any, parentSchema: any) {
|
|
136
|
+
|
|
137
|
+
if (config.elements) {
|
|
138
|
+
// 2️⃣ Handle Array component
|
|
139
|
+
if (config.type === "Array") {
|
|
140
|
+
parentSchema.properties ??= {};
|
|
141
|
+
parentSchema.properties[config.name] ??= {
|
|
142
|
+
type: "array",
|
|
143
|
+
items: {
|
|
144
|
+
type: "object",
|
|
145
|
+
properties: {},
|
|
146
|
+
required: [],
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
const arrayItemSchema = parentSchema.properties[config.name].items;
|
|
141
151
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
152
|
+
config.elements?.forEach((child: any) =>
|
|
153
|
+
buildSchemaFromConfig(child, arrayItemSchema)
|
|
154
|
+
);
|
|
155
|
+
return;
|
|
156
|
+
} else {
|
|
157
|
+
config.elements?.forEach((child: any) =>
|
|
158
|
+
buildSchemaFromConfig(child, parentSchema)
|
|
159
|
+
);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
// 3️⃣ Handle normal field components
|
|
164
|
+
parentSchema.properties ??= {};
|
|
165
|
+
parentSchema.properties[config.name] ??= {};
|
|
145
166
|
|
|
146
|
-
|
|
167
|
+
const fieldSchema = parentSchema.properties[config.name];
|
|
147
168
|
|
|
148
|
-
|
|
149
|
-
|
|
169
|
+
// Required validation
|
|
170
|
+
config.validation?.forEach((v: any) => {
|
|
171
|
+
if (v.validationType === "required") {
|
|
172
|
+
parentSchema.required ??= [];
|
|
173
|
+
parentSchema.required.push(config.name);
|
|
174
|
+
} else {
|
|
175
|
+
fieldSchema.type = "string";
|
|
176
|
+
fieldSchema[v.validationType] = isNaN(v.validationValue)
|
|
177
|
+
? v.validationValue
|
|
178
|
+
: Number(v.validationValue);
|
|
150
179
|
}
|
|
151
180
|
});
|
|
152
181
|
|
|
153
|
-
|
|
154
|
-
|
|
182
|
+
// Select
|
|
183
|
+
if (config.type === "Select" && config.value?.length) {
|
|
184
|
+
fieldSchema.oneOf = config.value.map((v: any) => ({
|
|
185
|
+
const: v.value,
|
|
186
|
+
title: v.label,
|
|
187
|
+
}));
|
|
155
188
|
}
|
|
156
189
|
|
|
190
|
+
// MultipleSelect
|
|
191
|
+
if (config.type === "MultipleSelect" && config.value?.length) {
|
|
192
|
+
fieldSchema.type = "array";
|
|
193
|
+
fieldSchema.items = {
|
|
194
|
+
oneOf: config.value.map((v: any) => ({
|
|
195
|
+
const: v.value,
|
|
196
|
+
title: v.label,
|
|
197
|
+
})),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
export const buildSchema = (config) =>{
|
|
203
|
+
buildSchemaFromConfig(config,schema)
|
|
157
204
|
return schema;
|
|
158
|
-
|
|
205
|
+
|
|
206
|
+
}
|
|
159
207
|
|
|
160
208
|
const buildUiSchema = (config: any, store?: any) => {
|
|
161
209
|
let elements: any = {};
|
|
@@ -75,7 +75,6 @@ export const EventSchema = {
|
|
|
75
75
|
{ title: "RankProvider", const: "RankProvider" },
|
|
76
76
|
{ title: "Download File", const: "downloadFile" },
|
|
77
77
|
{ title: "downloadFileFromUrl", const: "downloadFileFromUrl" },
|
|
78
|
-
{ title: "downloadFileFromBase64", const: "downloadFileFromBase64" }
|
|
79
78
|
]
|
|
80
79
|
},
|
|
81
80
|
body: {
|
|
@@ -8,4 +8,4 @@ export { default as buildConfig } from "../builder/build/buildConfig"
|
|
|
8
8
|
export { default as buildUiSchema } from "../builder/build/buildUiSchema"
|
|
9
9
|
export { buildSchema } from "../builder/build/buildUiSchema"
|
|
10
10
|
export { default as clearFromSessionStorage } from "../builder/services/utils"
|
|
11
|
-
export {
|
|
11
|
+
export { downloadFile, downloadFileFromUrl } from "../runtime/services/downloadFile"
|
|
@@ -1,21 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
const typeArr = obj.name.split(".");
|
|
3
|
-
const data = obj.data;
|
|
4
|
-
const finalData = window.atob(data);
|
|
5
|
-
let file;
|
|
6
|
-
file = new File([finalData], typeArr[typeArr.length - 1]);
|
|
7
|
-
|
|
8
|
-
const url = URL.createObjectURL(file);
|
|
9
|
-
const link = document.createElement("a");
|
|
10
|
-
link.href = typeArr[typeArr.length - 1] === 'pdf' ? 'data:application/octet-stream;base64,' + data : url;
|
|
11
|
-
link.download = `${obj.name}`;
|
|
12
|
-
document.body.appendChild(link);
|
|
13
|
-
link.click();
|
|
14
|
-
|
|
15
|
-
URL.revokeObjectURL(url);
|
|
16
|
-
document.body.removeChild(link);
|
|
17
|
-
};
|
|
18
|
-
export function downloadFileFromBase64({ data, name }: { data: string; name: string }) {
|
|
1
|
+
export function downloadFile({ data, name }: { data: string; name: string }) {
|
|
19
2
|
const binary = window.atob(data);
|
|
20
3
|
const bytes = new Uint8Array(binary.length);
|
|
21
4
|
|
|
@@ -53,7 +36,7 @@ export const downloadFileFromUrl = (response: any, service) => {
|
|
|
53
36
|
keysArray.map((e, i) => {
|
|
54
37
|
url = url + `${i === 0 ? "?" : "&"}${e}=${response?.params[e]}`
|
|
55
38
|
})
|
|
56
|
-
}
|
|
39
|
+
};
|
|
57
40
|
const link = document.createElement('a');
|
|
58
41
|
link.href = url;
|
|
59
42
|
document.body.appendChild(link);
|
|
@@ -69,7 +69,8 @@ function executeEventsHandler(params: handlersProps) {
|
|
|
69
69
|
params.config,
|
|
70
70
|
params.store,
|
|
71
71
|
params.service,
|
|
72
|
-
params.formDataHolder
|
|
72
|
+
params.formDataHolder,
|
|
73
|
+
params.pageLoad
|
|
73
74
|
);
|
|
74
75
|
} else if (params.config.Handler === "onBackHandler") {
|
|
75
76
|
return params.store.functionParameters?.handleBack();
|
|
@@ -144,8 +145,7 @@ function executeCustomHandler(params: handlersProps) {
|
|
|
144
145
|
}
|
|
145
146
|
|
|
146
147
|
}
|
|
147
|
-
|
|
148
|
-
function mergeFormdata(handlerResponse: any, componentName: string, eventConfig: any, store: any, service: any, formDataHolder: any) {
|
|
148
|
+
function mergeFormdata(handlerResponse: any, componentName: string, eventConfig: any, store: any, service: any, formDataHolder: any, pageLoad: boolean) {
|
|
149
149
|
if (eventConfig.type === "Select" && handlerResponse?.data) {
|
|
150
150
|
if (!_.isEmpty(handlerResponse?.data)) {
|
|
151
151
|
store.setSchema((pre) => {
|
|
@@ -183,23 +183,36 @@ function mergeFormdata(handlerResponse: any, componentName: string, eventConfig:
|
|
|
183
183
|
...store.newData,
|
|
184
184
|
...handlerResponse?.data
|
|
185
185
|
}
|
|
186
|
-
|
|
186
|
+
formDataHolder = { ...formDataHolder, ...handlerResponse?.data }
|
|
187
|
+
if (!pageLoad) {
|
|
188
|
+
store.setFormdata((pre: any) => { return { ...pre, ...handlerResponse?.data } })
|
|
189
|
+
}
|
|
187
190
|
}
|
|
188
191
|
}
|
|
189
192
|
else if (eventConfig.type === "Table" && eventConfig.lazyLoading) {
|
|
190
193
|
if (handlerResponse && handlerResponse?.data) {
|
|
191
194
|
formDataHolder[componentName] = handlerResponse.data?.data
|
|
192
195
|
formDataHolder[`${componentName}_RowCount`] = handlerResponse.data?.meta?.totalRowCount
|
|
193
|
-
|
|
196
|
+
if (!pageLoad) {
|
|
197
|
+
store.setFormdata((pre: any) => {
|
|
198
|
+
return {
|
|
199
|
+
...pre,
|
|
200
|
+
[componentName]: handlerResponse.data?.data,
|
|
201
|
+
[`${componentName}_RowCount`]: handlerResponse.data?.meta?.totalRowCount
|
|
202
|
+
}
|
|
203
|
+
})
|
|
204
|
+
}
|
|
194
205
|
}
|
|
195
206
|
}
|
|
196
207
|
else {
|
|
197
208
|
if (handlerResponse) {
|
|
198
209
|
formDataHolder[componentName] = handlerResponse.data
|
|
199
|
-
|
|
210
|
+
if (!pageLoad) {
|
|
211
|
+
store.setFormdata((pre) => { return { ...pre, [componentName]: handlerResponse.data } });
|
|
212
|
+
}
|
|
200
213
|
}
|
|
201
214
|
}
|
|
202
|
-
}
|
|
215
|
+
};
|
|
203
216
|
|
|
204
217
|
const buildBodyFormat = (body: any[], formData: any, userValue: any, store: any) => {
|
|
205
218
|
let finalBody = { ...userValue?.payload };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _, { isEmpty } from "lodash";
|
|
2
|
-
import { downloadFileFromUrl, downloadFile
|
|
2
|
+
import { downloadFileFromUrl, downloadFile } from "./downloadFile";
|
|
3
3
|
import { executeEvents, executeRefreshHandler } from "./events";
|
|
4
4
|
import { handlersProps } from "./interface";
|
|
5
5
|
let compType: string;
|
|
@@ -66,7 +66,7 @@ export default (funcParams: funcParamsProps) => {
|
|
|
66
66
|
let executeEventsParameters: handlersProps = {
|
|
67
67
|
config: {}, componentName: "",
|
|
68
68
|
store: funcParams.store, dynamicData: funcParams.dynamicData, userValue: funcParams.userValue, service: funcParams.service,
|
|
69
|
-
serviceHolder: { downloadFile, download: downloadFileFromUrl,
|
|
69
|
+
serviceHolder: { downloadFile, download: downloadFileFromUrl, ...funcParams.functionsProvider }, eventGroups,
|
|
70
70
|
functionsProvider: funcParams.functionsProvider, formDataHolder
|
|
71
71
|
};
|
|
72
72
|
return {
|
|
@@ -90,7 +90,7 @@ export default (funcParams: funcParamsProps) => {
|
|
|
90
90
|
config: {}, componentName: "",
|
|
91
91
|
store: funcParams.store, dynamicData: funcParams.dynamicData, userValue: funcParams.userValue, service: funcParams.service,
|
|
92
92
|
functionsProvider: funcParams.functionsProvider,
|
|
93
|
-
serviceHolder: this, eventGroups, formDataHolder
|
|
93
|
+
serviceHolder: this, eventGroups, formDataHolder,
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
funcParams.store.setSchema(
|
|
@@ -104,9 +104,9 @@ export default (funcParams: funcParamsProps) => {
|
|
|
104
104
|
await executeRefreshHandler({
|
|
105
105
|
config: {}, componentName: "",
|
|
106
106
|
store: funcParams.store, dynamicData: funcParams.dynamicData, userValue: funcParams.userValue, service: funcParams.service,
|
|
107
|
-
serviceHolder: this, eventGroups, formDataHolder:
|
|
107
|
+
serviceHolder: this, eventGroups, formDataHolder: formDataHolder, pageLoad: true
|
|
108
108
|
})
|
|
109
|
-
|
|
109
|
+
funcParams.store.setFormdata((pre) => ({ ...pre, ...formDataHolder }))
|
|
110
110
|
uiSchema.elements.push(notifyUiSchema);
|
|
111
111
|
funcParams.store.setUiSchema(uiSchema);
|
|
112
112
|
},
|
|
@@ -259,7 +259,6 @@ export default (funcParams: funcParamsProps) => {
|
|
|
259
259
|
},
|
|
260
260
|
downloadFile: downloadFile,
|
|
261
261
|
downloadFileFromUrl: downloadFileFromUrl,
|
|
262
|
-
downloadFileFromBase64: downloadFileFromBase64,
|
|
263
262
|
...funcParams.functionsProvider
|
|
264
263
|
};
|
|
265
264
|
};
|