impaktapps-ui-builder 0.0.101-alpha.11 → 0.0.101-alpha.110

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 (36) hide show
  1. package/dist/impaktapps-ui-builder.es.js +1157 -805
  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 +62 -59
  6. package/dist/src/impaktapps-ui-builder/builder/build/uischema/buildPropertiesSection.d.ts +17 -21
  7. package/dist/src/impaktapps-ui-builder/builder/build/uischema/coreSection.d.ts +98 -95
  8. package/dist/src/impaktapps-ui-builder/builder/build/uischema/eventSection.d.ts +26 -33
  9. package/dist/src/impaktapps-ui-builder/builder/build/uischema/refresh.d.ts +52 -38
  10. package/dist/src/impaktapps-ui-builder/builder/build/uischema/styleSection.d.ts +7 -8
  11. package/dist/src/impaktapps-ui-builder/builder/build/uischema/tableSection.d.ts +29 -33
  12. package/dist/src/impaktapps-ui-builder/builder/build/uischema/validationSections.d.ts +56 -37
  13. package/dist/src/impaktapps-ui-builder/builder/build/uischema/valueTab.d.ts +56 -36
  14. package/dist/src/impaktapps-ui-builder/builder/elements/UiSchema/event/schema.d.ts +6 -0
  15. package/dist/src/impaktapps-ui-builder/builder/services/event.d.ts +6 -0
  16. package/package.json +1 -1
  17. package/src/impaktapps-ui-builder/builder/build/buildText.ts +21 -18
  18. package/src/impaktapps-ui-builder/builder/build/buildUiSchema.ts +14 -10
  19. package/src/impaktapps-ui-builder/builder/build/uischema/apiSection.ts +111 -96
  20. package/src/impaktapps-ui-builder/builder/build/uischema/buildPropertiesSection.ts +101 -95
  21. package/src/impaktapps-ui-builder/builder/build/uischema/coreSection.ts +189 -110
  22. package/src/impaktapps-ui-builder/builder/build/uischema/eventSection.ts +39 -17
  23. package/src/impaktapps-ui-builder/builder/build/uischema/refresh.ts +44 -44
  24. package/src/impaktapps-ui-builder/builder/build/uischema/styleSection.ts +9 -13
  25. package/src/impaktapps-ui-builder/builder/build/uischema/tableSection.ts +40 -18
  26. package/src/impaktapps-ui-builder/builder/build/uischema/validationSections.ts +117 -48
  27. package/src/impaktapps-ui-builder/builder/build/uischema/valueTab.ts +113 -45
  28. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/schema.ts +23 -23
  29. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/uiSchema.ts +118 -50
  30. package/src/impaktapps-ui-builder/builder/elements/UiSchema/PageMaster/uiSchema.ts +46 -20
  31. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/schema.ts +15 -12
  32. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/uiSchema.ts +188 -295
  33. package/src/impaktapps-ui-builder/builder/services/component.ts +161 -32
  34. package/src/impaktapps-ui-builder/builder/services/event.ts +165 -65
  35. package/src/impaktapps-ui-builder/runtime/services/events.ts +8 -1
  36. package/src/impaktapps-ui-builder/runtime/services/service.ts +9 -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,20 @@ 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
+ }
260
389
  }
261
390
  }
262
391
  };
@@ -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[1].elements[0].elements[2] = getRadioInputField("isSync","Run in Sync",["Yes","No"])
32
- uiSchema.elements[1].elements[0].elements[3] = {
41
+ uiSchema.elements[0].elements[0].elements[2] = getRadioInputField(
42
+ "isSync",
43
+ "Run in Sync",
44
+ ["Yes", "No"]
45
+ );
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
- layout: { xs: 0, sm: 6, md: 0, lg: 0 },
54
+ layout: { xs: 6, sm: 6, md: 0, lg: 3 },
41
55
  main: {},
42
- style:{}
56
+ style: {},
43
57
  },
44
58
  };
45
- uiSchema.elements[1].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[1].elements[0].elements[2] = emptyBox;
50
- uiSchema.elements[1].elements[0].elements[3] = APISection;
51
- schema.required = ["eventType", "Handler", "method", "path"]
66
+ uiSchema.elements[0].elements[0].elements[2] = emptyBox("emptyBox", {
67
+ xs: 0,
68
+ sm: 0,
69
+ md: 4,
70
+ lg: 6,
71
+ });
72
+ uiSchema.elements[0].elements[0].elements[3] = APISection;
73
+ schema.required = ["eventType", "Handler", "method", "path"];
52
74
  } else if (handlerType === "inBuiltFunction") {
53
-
54
- uiSchema.elements[1].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
- ])
59
- uiSchema.elements[1].elements[0].elements[3] = {
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
+ );
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
- layout: { xs: 6, sm: 6, md: 0, lg: 0 },
92
+ layout: { xs: 6, sm: 6, md: 0, lg: 3 },
68
93
  main: {},
69
- style:{}
94
+ style: {},
70
95
  },
71
96
  };
72
- uiSchema.elements[1].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[1].elements[0].elements[2] = emptyBox;
76
- uiSchema.elements[1].elements[0].elements[3] = refreshSectionUiSchema;
77
- schema.properties.refreshElements.required = ["value"]
78
- schema.properties.refreshElements.items.required = ["value"]
79
- schema.required = ["eventType", "Handler", "refreshElements"]
104
+ uiSchema.elements[0].elements[0].elements[2] = emptyBox("emptyBox", {
105
+ xs: 0,
106
+ sm: 0,
107
+ md: 4,
108
+ lg: 6,
109
+ });
110
+ uiSchema.elements[0].elements[0].elements[3] = refreshSectionUiSchema;
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
@@ -89,6 +89,10 @@ export default (funcParams: funcParamsProps) => {
89
89
  }))
90
90
  }
91
91
  const config = pageData?.config;
92
+ if(config?.programIdRequired){
93
+ console.log(funcParams.store)
94
+ funcParams.store.navigate(funcParams.store.location.pathname+`/${window.sessionStorage.getItem("ProgramID")}`)
95
+ }
92
96
  const uiSchema = pageData?.uiSchema;
93
97
  const event = new CustomEvent('pageNameChanged', {
94
98
  detail: { pageName: config.label }
@@ -294,7 +298,7 @@ export default (funcParams: funcParamsProps) => {
294
298
  fontSize: "12px",
295
299
  cursor: "pointer",
296
300
  marginLeft: "2px",
297
-
301
+
298
302
  top: 3,
299
303
  right: "12px",
300
304
  position: "absolute",
@@ -319,12 +323,12 @@ export default (funcParams: funcParamsProps) => {
319
323
  await executeRefreshHandler({
320
324
  config: {}, componentName: "",
321
325
  store: funcParams.store, dynamicData: funcParams.dynamicData, userValue: funcParams.userValue, service: funcParams.service,
322
- serviceHolder: this, eventGroups, formDataHolder
326
+ serviceHolder: this, eventGroups, formDataHolder: {}
323
327
  })
324
328
  funcParams.store.setSchema(
325
329
  (pre: any) => {
326
330
  return {
327
- ...schema,...pre, properties:
331
+ ...schema, ...pre, properties:
328
332
  { ...schema.properties, ...pre.properties, }
329
333
  }
330
334
  }
@@ -336,7 +340,8 @@ export default (funcParams: funcParamsProps) => {
336
340
  if (eventGroups.onCellRenderer) {
337
341
  let finalResponse = {};
338
342
  const path = funcParams.dynamicData?.tableButtonPath || funcParams?.dynamicData?.path?.split(".")[0];
339
- for (const eventConfig of eventGroups?.onCellRenderer[path]) {
343
+
344
+ for (const eventConfig of eventGroups?.onCellRenderer?.[path]) {
340
345
  executeEventsParameters.store.functionParameters = cellParams
341
346
  finalResponse = executeEvents({
342
347
  ...executeEventsParameters,