impaktapps-ui-builder 0.0.101-alpha.21 → 0.0.101-alpha.213

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 (23) hide show
  1. package/dist/impaktapps-ui-builder.es.js +520 -284
  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/apiSection.d.ts +0 -3
  6. package/dist/src/impaktapps-ui-builder/builder/build/uischema/buildPropertiesSection.d.ts +10 -13
  7. package/dist/src/impaktapps-ui-builder/builder/elements/UiSchema/event/schema.d.ts +6 -0
  8. package/dist/src/impaktapps-ui-builder/builder/services/component.d.ts +2 -0
  9. package/dist/src/impaktapps-ui-builder/builder/services/event.d.ts +6 -0
  10. package/package.json +1 -1
  11. package/src/impaktapps-ui-builder/builder/build/buildText.ts +21 -18
  12. package/src/impaktapps-ui-builder/builder/build/buildUiSchema.ts +14 -10
  13. package/src/impaktapps-ui-builder/builder/build/uischema/buildPropertiesSection.ts +88 -76
  14. package/src/impaktapps-ui-builder/builder/build/uischema/eventSection.ts +2 -2
  15. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/schema.ts +6 -6
  16. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/uiSchema.ts +68 -9
  17. package/src/impaktapps-ui-builder/builder/elements/UiSchema/PageMaster/uiSchema.ts +23 -16
  18. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/schema.ts +15 -12
  19. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/uiSchema.ts +41 -201
  20. package/src/impaktapps-ui-builder/builder/services/component.ts +177 -32
  21. package/src/impaktapps-ui-builder/builder/services/event.ts +159 -59
  22. package/src/impaktapps-ui-builder/runtime/services/events.ts +8 -1
  23. package/src/impaktapps-ui-builder/runtime/services/service.ts +5 -4
@@ -10,54 +10,137 @@ import { ValueTab } from "../build/uischema/valueTab";
10
10
  import { ValidationSection } from "../build/uischema/validationSections";
11
11
  import { getFormdataFromSessionStorage, okHandler, saveFormdataInSessionStorage, saveHandler } from "./utils";
12
12
  const sectionLabels = {
13
- Select: ["Core", "Properties", "Value", "Event", "Style", "Validation"],
14
- MultipleSelect: ["Core", "Properties", "Value", "Event", "Style", "Validation"],
15
- Table: ["Core", "Components", "Properties", "Event", "Style", "Validation"],
16
- LeaderBoard: ["Core", "Components", "Properties", "Event", "Style", "Validation"],
13
+ Select: ["Core", "Properties", "Value", "Events", "Style", "Validation"],
14
+ MultipleSelect: ["Core", "Properties", "Value", "Events", "Style", "Validation"],
15
+ Table: ["Core", "Components", "Properties", "Events", "Style", "Validation"],
16
+ LeaderBoard: ["Core", "Components", "Properties", "Events", "Style", "Validation"],
17
17
  WrapperSection: ["Core", "Components", "Properties", "Style", "Validation"],
18
18
  TabSection: ["Core", "Components", "Properties", "Style", "Validation"],
19
- SpeedoMeter: ["Core", "Properties", "Event", "Style", "Validation"],
20
- card: ["Core", "Properties", "Event", "Style", "Validation"],
21
- UploadFile: ["Core", "Event", "Style", "Validation"],
22
- Graph: ["Core", "Properties", "Event", "Style", "Validation"],
23
- DownloadFile: ["Core", "Event", "Style", "Validation"],
24
- Box: ["Core", "Event", "Style", "Validation"],
25
- Properties: ["Core", "Properties", "Event", "Style", "Validation"],
26
- ProgressBarCard: ["Core", "Properties", "Event", "Style", "Validation"],
27
- RankCard: ["Core", "Properties", "Event", "Style", "Validation"],
28
- Slider: ["Core", "Components", "Event", "Style", "Validation"],
29
- Timer: ["Core", "Event", "Style", "Validation"],
30
- Rank: ["Core", "Event", "Style", "Validation"],
31
- Button: ["Core", "Properties", "Event", "Style", "Validation"],
19
+ SpeedoMeter: ["Core", "Properties", "Events", "Style", "Validation"],
20
+ card: ["Core", "Properties", "Events", "Style", "Validation"],
21
+ UploadFile: ["Core", "Events", "Style", "Validation"],
22
+ Graph: ["Core", "Properties", "Events", "Style", "Validation"],
23
+ DownloadFile: ["Core", "Events", "Style", "Validation"],
24
+ Box: ["Core", "Events", "Style", "Validation"],
25
+ Properties: ["Core", "Properties", "Events", "Style", "Validation"],
26
+ ProgressBarCard: ["Core", "Properties", "Events", "Style", "Validation"],
27
+ RankCard: ["Core", "Properties", "Events", "Style", "Validation"],
28
+ Slider: ["Core", "Components", "Events", "Style", "Validation"],
29
+ Timer: ["Core", "Events", "Style", "Validation"],
30
+ Rank: ["Core", "Events", "Style", "Validation"],
31
+ Button: ["Core", "Properties", "Events", "Style", "Validation"],
32
32
  Array: ["Core", "Components", "Validation"],
33
- Radio: ["Core", "Properties", "Event", "Style", "Validation"],
34
- Text: ["Core", "Properties", "Event", "Style", "Validation"],
35
- TextArea: ["Core", "Properties", "Event", "Style", "Validation"],
33
+ Radio: ["Core", "Properties", "Events", "Style", "Validation"],
34
+ Text: ["Core", "Properties", "Events", "Style", "Validation"],
35
+ TextArea: ["Core", "Properties", "Events", "Style", "Validation"],
36
36
  PopUp: ["Core", "Components", "Properties", "Style"],
37
- Stepper: ["Core", "Components", "Properties", "Event", "Style"],
38
- DataGrid: ["Core", "Components", "Properties", "Event", "Style"],
39
- InputSlider: ["Core", "Properties", "Event", "Style", "Validation"],
40
- TreeMap: ["Core", "Components", "Properties", "Event", "Style"],
37
+ Stepper: ["Core", "Components", "Properties", "Events", "Style"],
38
+ DataGrid: ["Core", "Components", "Properties", "Events", "Style"],
39
+ InputSlider: ["Core", "Properties", "Events", "Style", "Validation"],
40
+ TreeMap: ["Core", "Components", "Properties", "Events", "Style"],
41
41
  ColumnGroup: ["Core", "Components"],
42
- Thought: ["Core", "Properties", "Event", "Style", "Validation"]
42
+ Thought: ["Core", "Properties", "Events", "Style", "Validation"]
43
43
  }
44
44
 
45
45
  export function refreshPage (type: string, store: any) {
46
46
  const UiSchema = _.cloneDeep(componentBasicUiSchema(store.theme.myTheme))
47
+ const currentConfig = JSON.parse(sessionStorage.getItem("pageFormdata"));
47
48
  if (type) {
48
49
  const sectionUiSchema = {
49
50
  Core: CoreSection,
50
51
  Value: ValueTab,
51
52
  Style: StyleSection,
52
- Event: EventSection(store.theme.myTheme),
53
+ Events: EventSection(store.theme.myTheme),
53
54
  Components: TableSection(store.theme.myTheme),
54
55
  Properties: buildPropertiesSection(type),
55
56
  Validation: ValidationSection
56
57
  }
57
58
  const elements = sectionLabels[type]?.map(e => sectionUiSchema[e]);
58
- UiSchema.elements[0].config.main.tabLabels = sectionLabels[type] || ["Core", "Style", "Event", "Validation"];
59
+ UiSchema.elements[0].config.main.tabLabels = sectionLabels[type] || ["Core", "Style", "Events", "Validation"];
59
60
  UiSchema.elements[0].elements = elements || [CoreSection, StyleSection, EventSection(store.theme.myTheme), ValidationSection];
60
61
  }
62
+
63
+ // Get Widget Type of parent
64
+ const path = store.searchParams?.get("path");
65
+ const lastDotIndex = path.lastIndexOf('.')
66
+ const parentPath = path.slice(0,lastDotIndex)
67
+
68
+ const parentObj = _.get(currentConfig, parentPath)
69
+
70
+ if(parentObj?.type === "Table"){
71
+ UiSchema.elements[0].elements[0].elements[4] =
72
+ {
73
+ type: "Control",
74
+ scope: "#/properties/columnFormat",
75
+ options: {
76
+ widget: "SelectInputField",
77
+ },
78
+ config: {
79
+ layout: { xs: 6, sm: 6, md: 4, lg: 3 },
80
+ main: {
81
+ label: "Column Format",
82
+
83
+ },
84
+ },
85
+ };
86
+ UiSchema.elements[0].elements[0].elements[6] =
87
+ {
88
+ type: "Control",
89
+ scope: "#/properties/filteringOptions",
90
+ options: {
91
+ widget: "SelectInputField",
92
+ },
93
+ config: {
94
+ layout: { xs: 6, sm: 6, md: 4, lg: 3 },
95
+ main: {
96
+ label: "Filter Mode",
97
+ multiple: true
98
+ },
99
+ },
100
+ };
101
+ UiSchema.elements[0].elements[0].elements[5] =
102
+ {
103
+ type: "Control",
104
+ scope: "#/properties/enableFilter",
105
+ options: {
106
+ widget: "RadioInputField",
107
+ },
108
+ config: {
109
+ layout: { xs: 6, sm: 6, md: 4, lg: 3 },
110
+ main: {
111
+ label: "Enable Filter",
112
+ options: ["Yes", "No"],
113
+ },
114
+ },
115
+ },
116
+ UiSchema.elements[0].elements[0].elements[7] =
117
+ {
118
+ type: "Control",
119
+ scope: "#/properties/enableSorting",
120
+ options: {
121
+ widget: "RadioInputField",
122
+ },
123
+ config: {
124
+ layout: { xs: 6, sm: 6, md: 4, lg: 3 },
125
+ main: {
126
+ label: "Enable Sorting",
127
+ options: ["Yes", "No"],
128
+ },
129
+ },
130
+ },
131
+ UiSchema.elements[0].elements[0].elements[8] =
132
+ {
133
+ type: "Control",
134
+ scope: "#/properties/proc",
135
+ config: {
136
+ layout: { xs: 6, sm: 6, md: 8, lg: 3 },
137
+ },
138
+ options: {
139
+ widget: "EmptyBox",
140
+ },
141
+ };
142
+ }
143
+
61
144
  if (sessionStorage.getItem("copiedConfig") ) {
62
145
  this.ElementPathSetter(UiSchema);
63
146
  }
@@ -84,6 +167,35 @@ export default (store: any, dynamicData: any, submitHandler: any, service: any)
84
167
  if (sessionStorage.getItem("copiedConfig") ) {
85
168
  schema.properties.RemoveItemButton.disabled = false;
86
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
+
189
+ arr.map((e) => {
190
+ const data = _.get(config, e)
191
+ pathArray.push({
192
+ label: data?.name || data?.eventType || "NewComponent",
193
+ path: `/Component?path=${e}${id ? `&id=${id}` : ''}`
194
+ });
195
+ })
196
+ }
197
+
198
+ schema.properties.pageName.path = pathArray
87
199
  return schema;
88
200
  },
89
201
  okHandler: () => okHandler(store),
@@ -194,6 +306,10 @@ export default (store: any, dynamicData: any, submitHandler: any, service: any)
194
306
 
195
307
  this.ElementPathSetter(uiSchema,copiedFormData);
196
308
  sessionStorage.setItem('copiedConfig',JSON.stringify(copiedFormData));
309
+ store.setNotify({
310
+ SuccessMessage: `${elementType} Copied Successfully`,
311
+ Success: true,
312
+ })
197
313
  store.setSchema(schema);
198
314
  store.setUiSchema(uiSchema);
199
315
  },
@@ -219,16 +335,16 @@ export default (store: any, dynamicData: any, submitHandler: any, service: any)
219
335
 
220
336
  const copiedConfig = JSON.parse(sessionStorage.getItem("copiedConfig"));
221
337
  const notificationMessages = {
222
- Event: " The event cannot be integrated into the component section.",
223
- Component: "The component cannot be integrated into the event section."
338
+ Events: " The Events cannot be integrated into the component section.",
339
+ Component: "The component cannot be integrated into the Events section."
224
340
  };
225
341
  if(copiedConfig.Handler && elementType === "Component"){
226
342
  store.setNotify({
227
- FailMessage: notificationMessages.Event,
343
+ FailMessage: notificationMessages.Events,
228
344
  Fail: true,
229
345
  });
230
346
  }
231
- else if(copiedConfig.name && elementType === "Event"){
347
+ else if(copiedConfig.name && elementType === "Events"){
232
348
  store.setNotify({
233
349
  FailMessage: notificationMessages.Component,
234
350
  Fail: true,
@@ -256,7 +372,36 @@ export default (store: any, dynamicData: any, submitHandler: any, service: any)
256
372
  },
257
373
  ElementPathSetter: function(uiSchema: any,copiedFormData?: any){
258
374
  const formData = copiedFormData || JSON.parse(sessionStorage.getItem("copiedConfig"));
259
- uiSchema.elements[2].elements[1].config.main.heading = `Copied Path: ${formData.pageName}`;
375
+ if(uiSchema?.elements?.[1]?.elements?.[0]?.config?.main?.headerIcons){
376
+ uiSchema.elements[1].elements[0].config.main.headerIcons.elements[1].widget.config.main.tooltipMessage = `Copied Component: ${formData.name}`;
377
+ }
378
+ else if(uiSchema?.elements?.[0]?.elements?.[1]?.elements?.[0]?.config?.main?.headerIcons){
379
+ uiSchema.elements[0].elements[1].elements[0].config.main.headerIcons.elements[1].widget.config.main.tooltipMessage = `Copied Component: ${formData.name}`;
380
+ }
381
+
382
+
383
+ if(uiSchema?.elements?.[1]?.elements?.[1]?.config?.main?.headerIcons){
384
+ uiSchema.elements[1].elements[1].config.main.headerIcons.elements[1].widget.config.main.tooltipMessage = `Copied Event: ${formData.eventType}`;
385
+ }
386
+ else if(uiSchema?.elements?.[0]?.elements?.[1]?.config?.main?.headerIcons){
387
+ uiSchema.elements[0].elements[1].config.main.headerIcons.elements[1].widget.config.main.tooltipMessage = `Copied Component: ${formData.eventType}`;
388
+ }
389
+ },
390
+
391
+
392
+ onNavigatePopupYes: function() {
393
+ try{
394
+ store.navigate(sessionStorage.getItem("pendingNavigatePath"))
395
+ }
396
+ catch(e){
397
+ store.setNotify({
398
+ FailMessage: "Couldn't navigate page",
399
+ Fail: true,
400
+ })
401
+ }
402
+ },
403
+ onNavigatePopupNo: function() {
404
+ store.updateDialog(`${store.path}popup`)
260
405
  }
261
406
  }
262
407
  };
@@ -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,56 @@ 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
+ };
158
258
  };
@@ -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
@@ -294,7 +294,7 @@ export default (funcParams: funcParamsProps) => {
294
294
  fontSize: "12px",
295
295
  cursor: "pointer",
296
296
  marginLeft: "2px",
297
-
297
+
298
298
  top: 3,
299
299
  right: "12px",
300
300
  position: "absolute",
@@ -319,12 +319,12 @@ export default (funcParams: funcParamsProps) => {
319
319
  await executeRefreshHandler({
320
320
  config: {}, componentName: "",
321
321
  store: funcParams.store, dynamicData: funcParams.dynamicData, userValue: funcParams.userValue, service: funcParams.service,
322
- serviceHolder: this, eventGroups, formDataHolder
322
+ serviceHolder: this, eventGroups, formDataHolder: {}
323
323
  })
324
324
  funcParams.store.setSchema(
325
325
  (pre: any) => {
326
326
  return {
327
- ...schema,...pre, properties:
327
+ ...schema, ...pre, properties:
328
328
  { ...schema.properties, ...pre.properties, }
329
329
  }
330
330
  }
@@ -336,7 +336,8 @@ export default (funcParams: funcParamsProps) => {
336
336
  if (eventGroups.onCellRenderer) {
337
337
  let finalResponse = {};
338
338
  const path = funcParams.dynamicData?.tableButtonPath || funcParams?.dynamicData?.path?.split(".")[0];
339
- for (const eventConfig of eventGroups?.onCellRenderer[path]) {
339
+
340
+ for (const eventConfig of eventGroups?.onCellRenderer?.[path]) {
340
341
  executeEventsParameters.store.functionParameters = cellParams
341
342
  finalResponse = executeEvents({
342
343
  ...executeEventsParameters,