impaktapps-ui-builder 0.0.101-alpha.23 → 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 +526 -277
  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 +0 -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 +87 -72
  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 -58
  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,9 +1,19 @@
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 { emptyBox, 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
19
 
@@ -12,95 +22,178 @@ export default (
12
22
  dynamicData: any,
13
23
  submitHandler: any,
14
24
  service: any,
15
- functionsName?: { const: string, title: string }[]
25
+ functionsName?: { const: string; title: string }[]
16
26
  ) => {
17
27
  return {
18
28
  setPage: async function () {
19
29
  const formdata = await this.getFormData();
20
30
  store.setFormdata(formdata);
21
31
  const schema = await this.getSchema();
32
+ console.log("SettingSchema>>",schema)
22
33
  store.setSchema(schema);
23
- this.refreshPage(formdata.Handler, store)
34
+ this.refreshPage(formdata.Handler, store);
24
35
  },
25
36
  refreshPage: (handlerType: any, store: any) => {
26
37
  const uiSchema = _.cloneDeep(EventUiSchema(store.theme.myTheme));
27
- const schema: any = _.cloneDeep(EventSchema)
38
+ const schema: any = _.cloneDeep(EventSchema);
28
39
  if (handlerType) {
29
40
  if (handlerType === "custom") {
30
- 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
+ );
31
46
  uiSchema.elements[0].elements[0].elements[3] = {
32
47
  type: "Control",
33
48
  scope: "#/properties/emptyBox",
34
49
  options: {
35
50
  widget: "EmptyBox",
36
51
  },
37
-
52
+
38
53
  config: {
39
54
  layout: { xs: 6, sm: 6, md: 0, lg: 3 },
40
55
  main: {},
41
- style:{}
56
+ style: {},
42
57
  },
43
58
  };
44
- uiSchema.elements[0].elements[0].elements[4] = getTextArea("eventCode", "Write Custom Code", false)
45
- schema.required = ["eventType", "Handler", "eventCode"]
46
-
59
+ uiSchema.elements[0].elements[0].elements[4] = getTextArea(
60
+ "eventCode",
61
+ "Write Custom Code",
62
+ false
63
+ );
64
+ schema.required = ["eventType", "Handler", "eventCode"];
47
65
  } else if (handlerType === "api") {
48
- uiSchema.elements[0].elements[0].elements[2] = emptyBox("emptyBox", {xs: 6,sm: 6,md: 0,lg: 3});
66
+ uiSchema.elements[0].elements[0].elements[2] = emptyBox("emptyBox", {
67
+ xs: 0,
68
+ sm: 0,
69
+ md: 4,
70
+ lg: 6,
71
+ });
49
72
  uiSchema.elements[0].elements[0].elements[3] = APISection;
50
- schema.required = ["eventType", "Handler", "method", "path"]
73
+ schema.required = ["eventType", "Handler", "method", "path"];
51
74
  } else if (handlerType === "inBuiltFunction") {
52
-
53
- uiSchema.elements[0].elements[0].elements[2] = getSelectField("inBuiltFunctionType", "Function Name", [
54
- { label: "RankProvider", value: "RankProvider" },
55
- { label: "Download File", value: "downloadFile" },
56
- { label: "Download Blob File", value: "downloadBlobFile" }
57
- ])
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
+ );
58
84
  uiSchema.elements[0].elements[0].elements[3] = {
59
85
  type: "Control",
60
86
  scope: "#/properties/emptyBox",
61
87
  options: {
62
88
  widget: "EmptyBox",
63
89
  },
64
-
90
+
65
91
  config: {
66
92
  layout: { xs: 6, sm: 6, md: 0, lg: 3 },
67
93
  main: {},
68
- style:{}
94
+ style: {},
69
95
  },
70
96
  };
71
- uiSchema.elements[0].elements[0].elements[4] = getTextArea("funcParametersCode", "Write Custom Code for Functions Parameter", true);
72
- 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"];
73
103
  } else if (handlerType === "refresh") {
74
- uiSchema.elements[0].elements[0].elements[2] = emptyBox("emptyBox", {xs: 6,sm: 6,md: 0,lg: 3});
104
+ uiSchema.elements[0].elements[0].elements[2] = emptyBox("emptyBox", {
105
+ xs: 0,
106
+ sm: 0,
107
+ md: 4,
108
+ lg: 6,
109
+ });
75
110
  uiSchema.elements[0].elements[0].elements[3] = refreshSectionUiSchema;
76
- schema.properties.refreshElements.required = ["value"]
77
- schema.properties.refreshElements.items.required = ["value"]
78
- schema.required = ["eventType", "Handler", "refreshElements"]
111
+ schema.properties.refreshElements.required = ["value"];
112
+ schema.properties.refreshElements.items.required = ["value"];
113
+ schema.required = ["eventType", "Handler", "refreshElements"];
79
114
  }
80
115
  }
81
116
  if (functionsName) {
82
117
  schema.properties.inBuiltFunctionType.oneOf = [
83
118
  ...schema.properties.inBuiltFunctionType.oneOf,
84
- ...functionsName
85
- ]
119
+ ...functionsName,
120
+ ];
86
121
  }
87
- if (sessionStorage.getItem("copiedConfig") ) {
88
- Component(store, dynamicData, submitHandler, service).ElementPathSetter(uiSchema);
122
+ if (sessionStorage.getItem("copiedConfig")) {
123
+ Component(store, dynamicData, submitHandler, service).ElementPathSetter(
124
+ uiSchema
125
+ );
89
126
  schema.properties.RemoveItemButton.disabled = false;
90
127
  }
91
- store.setSchema(schema)
92
- 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);
93
158
  },
94
159
 
95
- getFormData: Component(store, dynamicData, submitHandler, service).getFormdata,
160
+ getFormData: Component(store, dynamicData, submitHandler, service)
161
+ .getFormdata,
96
162
  getUiSchema: function () {
97
163
  return EventUiSchema;
98
164
  },
99
165
  getSchema: () => {
100
166
  const schema = _.cloneDeep(EventSchema);
101
- if (sessionStorage.getItem("copiedConfig") ) {
167
+ if (sessionStorage.getItem("copiedConfig")) {
102
168
  schema.properties.RemoveItemButton.disabled = false;
103
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);
104
197
  return schema;
105
198
  },
106
199
  okHandler: () => okHandler(store),
@@ -110,48 +203,56 @@ export default (
110
203
  store?.formData?.Handler !== store?.newData?.Handler &&
111
204
  store?.newData?.Handler !== undefined
112
205
  ) {
113
- this.refreshPage(store.newData.Handler || store.formdata.Handler, store)
206
+ this.refreshPage(
207
+ store.newData.Handler || store.formdata.Handler,
208
+ store
209
+ );
114
210
  }
115
211
  },
116
212
  addEvent: function () {
117
213
  const path = store.searchParams?.get("path");
118
214
  if (!Array.isArray(store.formData.events)) {
119
- store.formData.events = []
215
+ store.formData.events = [];
120
216
  }
121
- saveFormdataInSessionStorage(store.ctx.core.data, path)
122
- const finalPath = `${path}.events[${store.formData?.events?.length}]`
123
- store.searchParams.set("path", finalPath)
124
- store.setSearchParams(store.searchParams)
125
- 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();
126
222
  },
127
223
  editEvent: function () {
128
224
  const rowId = dynamicData.path.split(".")[1];
129
225
  const path = store.searchParams?.get("path");
130
- saveFormdataInSessionStorage(store.ctx.core.data, path)
131
- const finalPath = `${path}.events[${rowId}]`
132
- store.searchParams.set("path", finalPath)
133
- store.setSearchParams(store.searchParams)
134
- this.setPage()
135
-
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();
136
231
  },
137
232
  deleteEvent: async function () {
138
- await Component(store, dynamicData, submitHandler, service).deleteEvent(false);
233
+ await Component(store, dynamicData, submitHandler, service).deleteEvent(
234
+ false
235
+ );
139
236
  store.updateDialog("popUpEvent");
140
237
  },
141
238
  backHandler: function () {
142
- store.navigate(-1)
239
+ store.navigate(-1);
143
240
  },
144
- deletePopUpEvent: function(){
241
+ deletePopUpEvent: function () {
145
242
  const rowId = dynamicData.path.split(".")[1];
146
- sessionStorage.setItem('rowId',rowId);
243
+ sessionStorage.setItem("rowId", rowId);
147
244
  store.updateDialog("popUpEvent");
148
245
  },
149
- copyPasteElement: function(){
150
- 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
+ );
151
251
  },
152
- RemoveItemButton: function(){
153
- Component(store, dynamicData, submitHandler, service).RemoveItemButton(store)
252
+ RemoveItemButton: function () {
253
+ Component(store, dynamicData, submitHandler, service).RemoveItemButton(
254
+ store
255
+ );
154
256
  },
155
-
156
- }
257
+ };
157
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,