impaktapps-ui-builder 0.0.101-alpha.22 → 0.0.101-alpha.220

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.
Files changed (25) hide show
  1. package/dist/impaktapps-ui-builder.es.js +562 -285
  2. package/dist/impaktapps-ui-builder.es.js.map +1 -1
  3. package/dist/impaktapps-ui-builder.umd.js +15 -15
  4. package/dist/impaktapps-ui-builder.umd.js.map +1 -1
  5. package/dist/src/impaktapps-ui-builder/builder/build/uischema/buildPropertiesSection.d.ts +10 -10
  6. package/dist/src/impaktapps-ui-builder/builder/elements/UiSchema/event/schema.d.ts +6 -0
  7. package/dist/src/impaktapps-ui-builder/builder/services/component.d.ts +2 -0
  8. package/dist/src/impaktapps-ui-builder/builder/services/event.d.ts +8 -0
  9. package/package.json +1 -1
  10. package/src/impaktapps-ui-builder/builder/build/buildText.ts +21 -18
  11. package/src/impaktapps-ui-builder/builder/build/buildUiSchema.ts +18 -19
  12. package/src/impaktapps-ui-builder/builder/build/uischema/buildPropertiesSection.ts +88 -73
  13. package/src/impaktapps-ui-builder/builder/build/uischema/coreSection.ts +1 -60
  14. package/src/impaktapps-ui-builder/builder/build/uischema/eventSection.ts +2 -2
  15. package/src/impaktapps-ui-builder/builder/build/uischema/validationSections.ts +0 -52
  16. package/src/impaktapps-ui-builder/builder/build/uischema/valueTab.ts +0 -50
  17. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/schema.ts +25 -27
  18. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/uiSchema.ts +46 -159
  19. package/src/impaktapps-ui-builder/builder/elements/UiSchema/PageMaster/uiSchema.ts +23 -97
  20. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/schema.ts +15 -12
  21. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/uiSchema.ts +43 -259
  22. package/src/impaktapps-ui-builder/builder/services/component.ts +217 -56
  23. package/src/impaktapps-ui-builder/builder/services/event.ts +175 -59
  24. package/src/impaktapps-ui-builder/runtime/services/events.ts +8 -1
  25. package/src/impaktapps-ui-builder/runtime/services/service.ts +5 -111
@@ -1,107 +1,199 @@
1
1
  import { EventSchema } from "../elements/UiSchema/event/schema";
2
2
  import { EventUiSchema } from "../elements/UiSchema/event/uiSchema";
3
3
  import Component from "./component";
4
- import { okHandler, saveFormdataInSessionStorage, saveHandler, getFormdataFromSessionStorage } from "./utils";
4
+ import {
5
+ okHandler,
6
+ saveFormdataInSessionStorage,
7
+ saveHandler,
8
+ getFormdataFromSessionStorage,
9
+ } from "./utils";
5
10
  import { APISection } from "../build/uischema/apiSection";
6
- import { getRadioInputField, getSelectField, getTextArea } from "../build/uischema/buildPropertiesSection";
11
+ import {
12
+ emptyBox,
13
+ getRadioInputField,
14
+ getSelectField,
15
+ getTextArea,
16
+ } from "../build/uischema/buildPropertiesSection";
7
17
  import { refreshSectionUiSchema } from "../build/uischema/refresh";
8
18
  import _ from "lodash";
9
- import emptyBox from "../build/uischema/emptyBox";
10
19
 
11
20
  export default (
12
21
  store: any,
13
22
  dynamicData: any,
14
23
  submitHandler: any,
15
24
  service: any,
16
- functionsName?: { const: string, title: string }[]
25
+ functionsName?: { const: string; title: string }[]
17
26
  ) => {
18
27
  return {
19
28
  setPage: async function () {
20
29
  const formdata = await this.getFormData();
21
30
  store.setFormdata(formdata);
22
31
  const schema = await this.getSchema();
32
+ console.log("SettingSchema>>",schema)
23
33
  store.setSchema(schema);
24
- this.refreshPage(formdata.Handler, store)
34
+ this.refreshPage(formdata.Handler, store);
25
35
  },
26
36
  refreshPage: (handlerType: any, store: any) => {
27
37
  const uiSchema = _.cloneDeep(EventUiSchema(store.theme.myTheme));
28
- const schema: any = _.cloneDeep(EventSchema)
38
+ const schema: any = _.cloneDeep(EventSchema);
29
39
  if (handlerType) {
30
40
  if (handlerType === "custom") {
31
- uiSchema.elements[0].elements[0].elements[2] = getRadioInputField("isSync","Run in Sync",["Yes","No"])
41
+ uiSchema.elements[0].elements[0].elements[2] = getRadioInputField(
42
+ "isSync",
43
+ "Run in Sync",
44
+ ["Yes", "No"]
45
+ );
32
46
  uiSchema.elements[0].elements[0].elements[3] = {
33
47
  type: "Control",
34
48
  scope: "#/properties/emptyBox",
35
49
  options: {
36
50
  widget: "EmptyBox",
37
51
  },
38
-
52
+
39
53
  config: {
40
54
  layout: { xs: 6, sm: 6, md: 0, lg: 3 },
41
55
  main: {},
42
- style:{}
56
+ style: {},
43
57
  },
44
58
  };
45
- uiSchema.elements[0].elements[0].elements[4] = getTextArea("eventCode", "Write Custom Code", false)
46
- schema.required = ["eventType", "Handler", "eventCode"]
47
-
59
+ uiSchema.elements[0].elements[0].elements[4] = getTextArea(
60
+ "eventCode",
61
+ "Write Custom Code",
62
+ false
63
+ );
64
+ schema.required = ["eventType", "Handler", "eventCode"];
48
65
  } else if (handlerType === "api") {
49
- uiSchema.elements[0].elements[0].elements[2] = emptyBox;
66
+ uiSchema.elements[0].elements[0].elements[2] = emptyBox("emptyBox", {
67
+ xs: 0,
68
+ sm: 0,
69
+ md: 4,
70
+ lg: 6,
71
+ });
50
72
  uiSchema.elements[0].elements[0].elements[3] = APISection;
51
- schema.required = ["eventType", "Handler", "method", "path"]
73
+ schema.required = ["eventType", "Handler", "method", "path"];
52
74
  } else if (handlerType === "inBuiltFunction") {
53
-
54
- uiSchema.elements[0].elements[0].elements[2] = getSelectField("inBuiltFunctionType", "Function Name", [
55
- { label: "RankProvider", value: "RankProvider" },
56
- { label: "Download File", value: "downloadFile" },
57
- { label: "Download Blob File", value: "downloadBlobFile" }
58
- ])
75
+ uiSchema.elements[0].elements[0].elements[2] = getSelectField(
76
+ "inBuiltFunctionType",
77
+ "Function Name",
78
+ [
79
+ { label: "RankProvider", value: "RankProvider" },
80
+ { label: "Download File", value: "downloadFile" },
81
+ { label: "Download Blob File", value: "downloadBlobFile" },
82
+ ]
83
+ );
59
84
  uiSchema.elements[0].elements[0].elements[3] = {
60
85
  type: "Control",
61
86
  scope: "#/properties/emptyBox",
62
87
  options: {
63
88
  widget: "EmptyBox",
64
89
  },
65
-
90
+
66
91
  config: {
67
92
  layout: { xs: 6, sm: 6, md: 0, lg: 3 },
68
93
  main: {},
69
- style:{}
94
+ style: {},
70
95
  },
71
96
  };
72
- uiSchema.elements[0].elements[0].elements[4] = getTextArea("funcParametersCode", "Write Custom Code for Functions Parameter", true);
73
- schema.required = ["eventType", "Handler", "inBuiltFunctionType"]
97
+ uiSchema.elements[0].elements[0].elements[4] = getTextArea(
98
+ "funcParametersCode",
99
+ "Write Custom Code for Functions Parameter",
100
+ true
101
+ );
102
+ schema.required = ["eventType", "Handler", "inBuiltFunctionType"];
74
103
  } else if (handlerType === "refresh") {
75
- uiSchema.elements[0].elements[0].elements[2] = emptyBox;
104
+ uiSchema.elements[0].elements[0].elements[2] = emptyBox("emptyBox", {
105
+ xs: 0,
106
+ sm: 0,
107
+ md: 4,
108
+ lg: 6,
109
+ });
76
110
  uiSchema.elements[0].elements[0].elements[3] = refreshSectionUiSchema;
77
- schema.properties.refreshElements.required = ["value"]
78
- schema.properties.refreshElements.items.required = ["value"]
79
- schema.required = ["eventType", "Handler", "refreshElements"]
111
+ schema.properties.refreshElements.required = ["value"];
112
+ schema.properties.refreshElements.items.required = ["value"];
113
+ schema.required = ["eventType", "Handler", "refreshElements"];
80
114
  }
81
115
  }
82
116
  if (functionsName) {
83
117
  schema.properties.inBuiltFunctionType.oneOf = [
84
118
  ...schema.properties.inBuiltFunctionType.oneOf,
85
- ...functionsName
86
- ]
119
+ ...functionsName,
120
+ ];
87
121
  }
88
- if (sessionStorage.getItem("copiedConfig") ) {
89
- Component(store, dynamicData, submitHandler, service).ElementPathSetter(uiSchema);
122
+ if (sessionStorage.getItem("copiedConfig")) {
123
+ Component(store, dynamicData, submitHandler, service).ElementPathSetter(
124
+ uiSchema
125
+ );
90
126
  schema.properties.RemoveItemButton.disabled = false;
91
127
  }
92
- store.setSchema(schema)
93
- store.setUiSchema(uiSchema)
128
+
129
+
130
+ const config = JSON.parse(sessionStorage.getItem("pageFormdata"));
131
+ const path = store.searchParams?.get("path");
132
+ const id = store.searchParams?.get("id");
133
+
134
+ let pathArray = [{label: config.name ?? "NewPage", path: `/PageMaster${id ? `?id=${id}` : ''}`}];
135
+
136
+ if (path) {
137
+ const pathArrayAll = path.split(".");
138
+ const arr: any = [];
139
+ pathArrayAll.map((e: string, i: number) => {
140
+ if (i === 0) {
141
+ arr.push(e);
142
+ return;
143
+ }
144
+ arr.push(`${arr[i - 1]}.${e}`);
145
+ });
146
+
147
+ arr.map((e) => {
148
+ const data = _.get(config, e);
149
+ pathArray.push({
150
+ label: data?.name || data?.eventType || "NewComponent",
151
+ path: data?.eventType ? `/ComponentEvents?path=${e}${id ? `&id=${id}` : ''}` : `/Component?path=${e}${id ? `&id=${id}` : ''}`,
152
+ });
153
+ });
154
+ }
155
+ schema.properties.pageName.path = pathArray;
156
+ store.setSchema(schema);
157
+ store.setUiSchema(uiSchema);
94
158
  },
95
159
 
96
- getFormData: Component(store, dynamicData, submitHandler, service).getFormdata,
160
+ getFormData: Component(store, dynamicData, submitHandler, service)
161
+ .getFormdata,
97
162
  getUiSchema: function () {
98
163
  return EventUiSchema;
99
164
  },
100
165
  getSchema: () => {
101
166
  const schema = _.cloneDeep(EventSchema);
102
- if (sessionStorage.getItem("copiedConfig") ) {
167
+ if (sessionStorage.getItem("copiedConfig")) {
103
168
  schema.properties.RemoveItemButton.disabled = false;
104
169
  }
170
+
171
+ const config = JSON.parse(sessionStorage.getItem("pageFormdata"));
172
+ const path = store.searchParams?.get("path");
173
+ const id = store.searchParams?.get("id");
174
+
175
+ let pathArray = [{label: config.name ?? "NewPage", path: `/PageMaster${id ? `?id=${id}` : ''}`}];
176
+
177
+ if (path) {
178
+ const pathArrayAll = path.split(".");
179
+ const arr: any = [];
180
+ pathArrayAll.map((e: string, i: number) => {
181
+ if (i === 0) {
182
+ arr.push(e);
183
+ return;
184
+ }
185
+ arr.push(`${arr[i - 1]}.${e}`);
186
+ });
187
+
188
+ arr.map((e) => {
189
+ const data = _.get(config, e);
190
+ pathArray.push({
191
+ label: data?.name || data?.eventType || "NewComponent",
192
+ path: data?.eventType ? `/ComponentEvents?path=${e}${id ? `&id=${id}` : ''}` : `/Component?path=${e}${id ? `&id=${id}` : ''}`,
193
+ });
194
+ });
195
+ }
196
+ schema.properties.pageName.path = _.cloneDeep(pathArray);
105
197
  return schema;
106
198
  },
107
199
  okHandler: () => okHandler(store),
@@ -111,48 +203,72 @@ export default (
111
203
  store?.formData?.Handler !== store?.newData?.Handler &&
112
204
  store?.newData?.Handler !== undefined
113
205
  ) {
114
- this.refreshPage(store.newData.Handler || store.formdata.Handler, store)
206
+ this.refreshPage(
207
+ store.newData.Handler || store.formdata.Handler,
208
+ store
209
+ );
115
210
  }
116
211
  },
117
212
  addEvent: function () {
118
213
  const path = store.searchParams?.get("path");
119
214
  if (!Array.isArray(store.formData.events)) {
120
- store.formData.events = []
215
+ store.formData.events = [];
121
216
  }
122
- saveFormdataInSessionStorage(store.ctx.core.data, path)
123
- const finalPath = `${path}.events[${store.formData?.events?.length}]`
124
- store.searchParams.set("path", finalPath)
125
- store.setSearchParams(store.searchParams)
126
- this.setPage()
217
+ saveFormdataInSessionStorage(store.ctx.core.data, path);
218
+ const finalPath = `${path}.events[${store.formData?.events?.length}]`;
219
+ store.searchParams.set("path", finalPath);
220
+ store.setSearchParams(store.searchParams);
221
+ this.setPage();
127
222
  },
128
223
  editEvent: function () {
129
224
  const rowId = dynamicData.path.split(".")[1];
130
225
  const path = store.searchParams?.get("path");
131
- saveFormdataInSessionStorage(store.ctx.core.data, path)
132
- const finalPath = `${path}.events[${rowId}]`
133
- store.searchParams.set("path", finalPath)
134
- store.setSearchParams(store.searchParams)
135
- this.setPage()
136
-
226
+ saveFormdataInSessionStorage(store.ctx.core.data, path);
227
+ const finalPath = `${path}.events[${rowId}]`;
228
+ store.searchParams.set("path", finalPath);
229
+ store.setSearchParams(store.searchParams);
230
+ this.setPage();
137
231
  },
138
232
  deleteEvent: async function () {
139
- await Component(store, dynamicData, submitHandler, service).deleteEvent(false);
233
+ await Component(store, dynamicData, submitHandler, service).deleteEvent(
234
+ false
235
+ );
140
236
  store.updateDialog("popUpEvent");
141
237
  },
142
238
  backHandler: function () {
143
- store.navigate(-1)
239
+ store.navigate(-1);
144
240
  },
145
- deletePopUpEvent: function(){
241
+ deletePopUpEvent: function () {
146
242
  const rowId = dynamicData.path.split(".")[1];
147
- sessionStorage.setItem('rowId',rowId);
243
+ sessionStorage.setItem("rowId", rowId);
148
244
  store.updateDialog("popUpEvent");
149
245
  },
150
- copyPasteElement: function(){
151
- Component(store, dynamicData, submitHandler, service).copyPasteElement(store,this.setPage.bind(this));
246
+ copyPasteElement: function () {
247
+ Component(store, dynamicData, submitHandler, service).copyPasteElement(
248
+ store,
249
+ this.setPage.bind(this)
250
+ );
152
251
  },
153
- RemoveItemButton: function(){
154
- Component(store, dynamicData, submitHandler, service).RemoveItemButton(store)
252
+ RemoveItemButton: function () {
253
+ Component(store, dynamicData, submitHandler, service).RemoveItemButton(
254
+ store
255
+ );
155
256
  },
156
-
157
- }
257
+ onNavigatePopupYes: function() {
258
+ try{
259
+ store.navigate(sessionStorage.getItem("pendingNavigatePath"))
260
+ store.updateDialog(`pageNamepopup`)
261
+ }
262
+ catch(e){
263
+ store.updateDialog(`pageNamepopup`)
264
+ store.setNotify({
265
+ FailMessage: "Couldn't navigate page",
266
+ Fail: true,
267
+ })
268
+ }
269
+ },
270
+ onNavigatePopupNo: function() {
271
+ store.updateDialog(`pageNamepopup`)
272
+ }
273
+ };
158
274
  };
@@ -1,4 +1,4 @@
1
- import _, { cloneDeep } from "lodash";
1
+ import _ from "lodash";
2
2
  import { handlersProps } from "./interface";
3
3
  export const executeEvents = (params: handlersProps) => {
4
4
  let nextEvent = [];
@@ -186,6 +186,13 @@ function mergeFormdata(handlerResponse: any, componentName: string, eventConfig:
186
186
  store.setFormdata((pre: any) => { return { ...pre, ...handlerResponse?.data } })
187
187
  }
188
188
  }
189
+ else if (eventConfig.type === "Table" && eventConfig.lazyLoading) {
190
+ if (handlerResponse && handlerResponse?.data) {
191
+ formDataHolder[componentName] = handlerResponse.data?.data
192
+ formDataHolder[`${componentName}_RowCount`] = handlerResponse.data?.meta?.totalRowCount
193
+ store.setFormdata((pre) => { return { ...pre, ...formDataHolder } });
194
+ }
195
+ }
189
196
  else {
190
197
  if (handlerResponse) {
191
198
  formDataHolder[componentName] = handlerResponse.data
@@ -96,112 +96,6 @@ export default (funcParams: funcParamsProps) => {
96
96
  window.dispatchEvent(event)
97
97
  const theme = funcParams?.store?.theme?.myTheme;
98
98
  uiSchema.elements.push(
99
-
100
- // {
101
- // type: "HorizontalLayout",
102
- // config: {
103
- // main: {
104
- // direction: "row",
105
- // },
106
- // style: {
107
- // flexDirection: "row",
108
- // position: "absolute",
109
- // bottom: 0,
110
- // height: "fit-content",
111
- // overflow: "hidden",
112
- // zIndex: 1000,
113
- // width: "inherit",
114
- // },
115
- // },
116
- // elements: [
117
- // {
118
- // type: "Control",
119
- // scope: "#/properties/FooterText",
120
- // options: {
121
- // widget: "Box",
122
- // },
123
- // config: {
124
- // main: {
125
- // heading: "Copywriter@ACT21.IO",
126
- // },
127
- // style: {
128
- // color: theme?.palette?.text?.disabled || "#AFAFAF",
129
- // fontSize: "12px",
130
- // textAlign: "center",
131
- // lineHeight: 2,
132
- // width: "fit-content",
133
- // left: "50%",
134
- // position: "relative",
135
- // margin: 0,
136
- // flexGrow: 1,
137
- // height: 0,
138
- // transform: "translate(-50%, 0%)",
139
- // },
140
- // },
141
- // },
142
- // {
143
- // type: "Control",
144
- // scope: "#/properties/FooterBackIcon",
145
- // options: {
146
- // widget: "Box",
147
- // },
148
- // config: {
149
- // main: {
150
- // iconName: "PrevIcon",
151
- // onClick: "backHandler",
152
- // width: "fit-content",
153
- // },
154
- // style: {
155
- // fill: theme?.palette?.primary?.main,
156
- // width: 20,
157
- // height: 0,
158
- // // margin: 0,
159
- // top: 0,
160
- // right: { xs: "12px", sm: "84px" },
161
- // position: "absolute",
162
- // fontSize: "12px",
163
- // cursor: "pointer",
164
- // ":hover": {
165
- // fill: theme?.palette?.primary?.dark,
166
- // },
167
- // marginRight: "13px",
168
- // },
169
- // },
170
- // },
171
- // {
172
- // type: "Control",
173
- // scope: "#/properties/FooterBackHandlerText",
174
- // options: {
175
- // widget: "Box",
176
- // },
177
- // config: {
178
- // main: {
179
- // heading: "Previous Page",
180
- // onClick: "backHandler",
181
- // },
182
- // style: {
183
- // display: { xs: "none", sm: "flex" },
184
- // textAlign: "left",
185
- // lineHeight: 1,
186
- // height: 0,
187
- // width: "fit-content",
188
- // color: theme?.palette?.primary?.main,
189
- // fontSize: "14px",
190
- // cursor: "pointer",
191
- // marginLeft: "2px",
192
-
193
- // top: 3,
194
- // right: "12px",
195
- // position: "absolute",
196
- // ":hover": {
197
- // color: theme?.palette?.primary?.dark,
198
- // },
199
- // marginRight: "4px",
200
- // },
201
- // },
202
- // },
203
- // ],
204
- // }
205
99
  {
206
100
  type: "HorizontalLayout",
207
101
  config: {
@@ -260,7 +154,6 @@ export default (funcParams: funcParamsProps) => {
260
154
  fill: theme?.palette?.primary?.main,
261
155
  width: 20,
262
156
  height: 0,
263
- // margin: 0,
264
157
  top: 0,
265
158
  right: { xs: "12px", sm: "84px" },
266
159
  position: "absolute",
@@ -294,7 +187,7 @@ export default (funcParams: funcParamsProps) => {
294
187
  fontSize: "12px",
295
188
  cursor: "pointer",
296
189
  marginLeft: "2px",
297
-
190
+
298
191
  top: 3,
299
192
  right: "12px",
300
193
  position: "absolute",
@@ -319,12 +212,12 @@ export default (funcParams: funcParamsProps) => {
319
212
  await executeRefreshHandler({
320
213
  config: {}, componentName: "",
321
214
  store: funcParams.store, dynamicData: funcParams.dynamicData, userValue: funcParams.userValue, service: funcParams.service,
322
- serviceHolder: this, eventGroups, formDataHolder
215
+ serviceHolder: this, eventGroups, formDataHolder: {}
323
216
  })
324
217
  funcParams.store.setSchema(
325
218
  (pre: any) => {
326
219
  return {
327
- ...schema,...pre, properties:
220
+ ...schema, ...pre, properties:
328
221
  { ...schema.properties, ...pre.properties, }
329
222
  }
330
223
  }
@@ -336,7 +229,8 @@ export default (funcParams: funcParamsProps) => {
336
229
  if (eventGroups.onCellRenderer) {
337
230
  let finalResponse = {};
338
231
  const path = funcParams.dynamicData?.tableButtonPath || funcParams?.dynamicData?.path?.split(".")[0];
339
- for (const eventConfig of eventGroups?.onCellRenderer[path]) {
232
+
233
+ for (const eventConfig of eventGroups?.onCellRenderer?.[path]) {
340
234
  executeEventsParameters.store.functionParameters = cellParams
341
235
  finalResponse = executeEvents({
342
236
  ...executeEventsParameters,