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

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 (21) hide show
  1. package/dist/impaktapps-ui-builder.es.js +538 -289
  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/event.d.ts +6 -0
  8. package/package.json +1 -1
  9. package/src/impaktapps-ui-builder/builder/build/buildText.ts +21 -18
  10. package/src/impaktapps-ui-builder/builder/build/buildUiSchema.ts +14 -10
  11. package/src/impaktapps-ui-builder/builder/build/uischema/buildPropertiesSection.ts +88 -73
  12. package/src/impaktapps-ui-builder/builder/build/uischema/eventSection.ts +2 -2
  13. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/schema.ts +5 -5
  14. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/uiSchema.ts +68 -9
  15. package/src/impaktapps-ui-builder/builder/elements/UiSchema/PageMaster/uiSchema.ts +41 -17
  16. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/schema.ts +15 -12
  17. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/uiSchema.ts +41 -201
  18. package/src/impaktapps-ui-builder/builder/services/component.ts +161 -32
  19. package/src/impaktapps-ui-builder/builder/services/event.ts +159 -59
  20. package/src/impaktapps-ui-builder/runtime/services/events.ts +8 -1
  21. package/src/impaktapps-ui-builder/runtime/services/service.ts +29 -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[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
@@ -89,6 +89,30 @@ export default (funcParams: funcParamsProps) => {
89
89
  }))
90
90
  }
91
91
  const config = pageData?.config;
92
+ const programId = JSON.parse(window.sessionStorage.getItem("ProgramID") || "{}")?.value || "programID";
93
+ const queryParams = funcParams.store.searchParam;
94
+ console.log("queryParams ",queryParams)
95
+ if(queryParams?.get("ProgramID") !== programId)
96
+ {
97
+ funcParams.store.setSearchParams({...queryParams, ProgramID: programId})
98
+ funcParams.store.navigate(
99
+ 0
100
+ );
101
+ }
102
+
103
+ // const pathParts = funcParams.store.location.pathname.split("/");
104
+ // const programId = JSON.parse(window.sessionStorage.getItem("ProgramID") || "{}")?.value || "programID";
105
+ // if (config?.programIdRequired && programId) {
106
+ // if (pathParts.length < 2) {
107
+ // funcParams.store.navigate(
108
+ // `${funcParams.store.location.pathname}/${programId}`
109
+ // );
110
+ // } else if(pathParts[2] !== programId+"") {
111
+ // pathParts[2] = programId;
112
+ // const newPath = pathParts.slice(0, 3).join("/");
113
+ // funcParams.store.navigate(newPath);
114
+ // }
115
+ // }
92
116
  const uiSchema = pageData?.uiSchema;
93
117
  const event = new CustomEvent('pageNameChanged', {
94
118
  detail: { pageName: config.label }
@@ -294,7 +318,7 @@ export default (funcParams: funcParamsProps) => {
294
318
  fontSize: "12px",
295
319
  cursor: "pointer",
296
320
  marginLeft: "2px",
297
-
321
+
298
322
  top: 3,
299
323
  right: "12px",
300
324
  position: "absolute",
@@ -319,12 +343,12 @@ export default (funcParams: funcParamsProps) => {
319
343
  await executeRefreshHandler({
320
344
  config: {}, componentName: "",
321
345
  store: funcParams.store, dynamicData: funcParams.dynamicData, userValue: funcParams.userValue, service: funcParams.service,
322
- serviceHolder: this, eventGroups, formDataHolder
346
+ serviceHolder: this, eventGroups, formDataHolder: {}
323
347
  })
324
348
  funcParams.store.setSchema(
325
349
  (pre: any) => {
326
350
  return {
327
- ...schema,...pre, properties:
351
+ ...schema, ...pre, properties:
328
352
  { ...schema.properties, ...pre.properties, }
329
353
  }
330
354
  }
@@ -336,7 +360,8 @@ export default (funcParams: funcParamsProps) => {
336
360
  if (eventGroups.onCellRenderer) {
337
361
  let finalResponse = {};
338
362
  const path = funcParams.dynamicData?.tableButtonPath || funcParams?.dynamicData?.path?.split(".")[0];
339
- for (const eventConfig of eventGroups?.onCellRenderer[path]) {
363
+
364
+ for (const eventConfig of eventGroups?.onCellRenderer?.[path]) {
340
365
  executeEventsParameters.store.functionParameters = cellParams
341
366
  finalResponse = executeEvents({
342
367
  ...executeEventsParameters,