impaktapps-ui-builder 1.0.200 → 1.0.202

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 (86) hide show
  1. package/dist/impaktapps-ui-builder.es.js +1125 -525
  2. package/dist/impaktapps-ui-builder.es.js.map +1 -1
  3. package/dist/impaktapps-ui-builder.umd.js +13 -13
  4. package/dist/impaktapps-ui-builder.umd.js.map +1 -1
  5. package/dist/src/impaktapps-ui-builder/builder/build/buildAreaGraph.d.ts +2 -0
  6. package/dist/src/impaktapps-ui-builder/builder/build/buildCamera.d.ts +1 -0
  7. package/dist/src/impaktapps-ui-builder/builder/build/buildConfig.d.ts +1 -0
  8. package/dist/src/impaktapps-ui-builder/builder/build/buildGroupButton.d.ts +1 -0
  9. package/dist/src/impaktapps-ui-builder/builder/build/buildHierarchyChart.d.ts +1 -0
  10. package/dist/src/impaktapps-ui-builder/builder/build/buildMetricCard.d.ts +1 -0
  11. package/dist/src/impaktapps-ui-builder/builder/build/buildOTP_inputs.d.ts +1 -0
  12. package/dist/src/impaktapps-ui-builder/builder/build/buildPdfViewer.d.ts +1 -0
  13. package/dist/src/impaktapps-ui-builder/builder/build/buildPopover.d.ts +1 -0
  14. package/dist/src/impaktapps-ui-builder/builder/build/buildStackBarLineGraph.d.ts +2 -0
  15. package/dist/src/impaktapps-ui-builder/builder/build/uischema/box.d.ts +1 -0
  16. package/dist/src/impaktapps-ui-builder/builder/build/uischema/buttonGroup.d.ts +22 -0
  17. package/dist/src/impaktapps-ui-builder/builder/build/uischema/card.d.ts +173 -197
  18. package/dist/src/impaktapps-ui-builder/builder/build/uischema/graph.d.ts +25 -5
  19. package/dist/src/impaktapps-ui-builder/builder/build/uischema/hierarchyChart.d.ts +22 -0
  20. package/dist/src/impaktapps-ui-builder/builder/build/uischema/metricCard.d.ts +17 -0
  21. package/dist/src/impaktapps-ui-builder/builder/build/uischema/multiSelect.d.ts +1 -0
  22. package/dist/src/impaktapps-ui-builder/builder/build/uischema/pdfViewer.d.ts +19 -0
  23. package/dist/src/impaktapps-ui-builder/builder/build/uischema/selectInputField.d.ts +1 -0
  24. package/dist/src/impaktapps-ui-builder/builder/build/uischema/tableSection.d.ts +1 -1
  25. package/dist/src/impaktapps-ui-builder/builder/build/uischema/wrapperSection.d.ts +3 -1
  26. package/dist/src/impaktapps-ui-builder/builder/services/utils.d.ts +2 -1
  27. package/dist/src/impaktapps-ui-builder/runtime/services/service.d.ts +3 -0
  28. package/package.json +1 -1
  29. package/src/impaktapps-ui-builder/builder/build/buildAreaGraph.ts +22 -14
  30. package/src/impaktapps-ui-builder/builder/build/buildArray.ts +10 -6
  31. package/src/impaktapps-ui-builder/builder/build/buildCamera.ts +50 -0
  32. package/src/impaktapps-ui-builder/builder/build/buildCard.ts +10 -10
  33. package/src/impaktapps-ui-builder/builder/build/buildConfig.ts +19 -7
  34. package/src/impaktapps-ui-builder/builder/build/buildDate.ts +32 -16
  35. package/src/impaktapps-ui-builder/builder/build/buildDownloadFile.ts +6 -0
  36. package/src/impaktapps-ui-builder/builder/build/buildEmptyBox.ts +4 -0
  37. package/src/impaktapps-ui-builder/builder/build/buildFileInput.ts +42 -43
  38. package/src/impaktapps-ui-builder/builder/build/buildGroupButton.ts +24 -0
  39. package/src/impaktapps-ui-builder/builder/build/buildHierarchyChart.ts +35 -0
  40. package/src/impaktapps-ui-builder/builder/build/buildHorizontalBarGraph.ts +3 -3
  41. package/src/impaktapps-ui-builder/builder/build/buildImage.ts +6 -3
  42. package/src/impaktapps-ui-builder/builder/build/buildLineGraph.ts +3 -3
  43. package/src/impaktapps-ui-builder/builder/build/buildMetricCard.tsx +37 -0
  44. package/src/impaktapps-ui-builder/builder/build/buildMultiSelect.ts +9 -0
  45. package/src/impaktapps-ui-builder/builder/build/buildOTP_inputs.ts +44 -0
  46. package/src/impaktapps-ui-builder/builder/build/buildPdfViewer.ts +16 -0
  47. package/src/impaktapps-ui-builder/builder/build/buildPieGraph.ts +3 -3
  48. package/src/impaktapps-ui-builder/builder/build/buildPop.ts +1 -0
  49. package/src/impaktapps-ui-builder/builder/build/buildPopover.ts +40 -0
  50. package/src/impaktapps-ui-builder/builder/build/buildProgressBar.ts +31 -21
  51. package/src/impaktapps-ui-builder/builder/build/buildRadio.ts +6 -0
  52. package/src/impaktapps-ui-builder/builder/build/buildSelect.ts +9 -0
  53. package/src/impaktapps-ui-builder/builder/build/buildStackBarGraph.ts +3 -3
  54. package/src/impaktapps-ui-builder/builder/build/buildStackBarLineGraph.ts +72 -0
  55. package/src/impaktapps-ui-builder/builder/build/buildTabSection.ts +2 -0
  56. package/src/impaktapps-ui-builder/builder/build/buildTable.ts +4 -3
  57. package/src/impaktapps-ui-builder/builder/build/buildText.ts +9 -0
  58. package/src/impaktapps-ui-builder/builder/build/buildUiSchema.ts +41 -3
  59. package/src/impaktapps-ui-builder/builder/build/buildUplaodFile.ts +6 -0
  60. package/src/impaktapps-ui-builder/builder/build/buildWrapperSection.ts +7 -2
  61. package/src/impaktapps-ui-builder/builder/build/uischema/box.ts +2 -1
  62. package/src/impaktapps-ui-builder/builder/build/uischema/buildPropertiesSection.ts +242 -25
  63. package/src/impaktapps-ui-builder/builder/build/uischema/buttonGroup.ts +17 -0
  64. package/src/impaktapps-ui-builder/builder/build/uischema/card.ts +142 -188
  65. package/src/impaktapps-ui-builder/builder/build/uischema/coreSection.ts +0 -1
  66. package/src/impaktapps-ui-builder/builder/build/uischema/graph.ts +22 -6
  67. package/src/impaktapps-ui-builder/builder/build/uischema/hierarchyChart.ts +13 -0
  68. package/src/impaktapps-ui-builder/builder/build/uischema/metricCard.ts +13 -0
  69. package/src/impaktapps-ui-builder/builder/build/uischema/multiSelect.ts +2 -0
  70. package/src/impaktapps-ui-builder/builder/build/uischema/pdfViewer.ts +18 -0
  71. package/src/impaktapps-ui-builder/builder/build/uischema/selectInputField.ts +2 -0
  72. package/src/impaktapps-ui-builder/builder/build/uischema/tableSection.ts +5 -6
  73. package/src/impaktapps-ui-builder/builder/build/uischema/wrapperSection.ts +3 -1
  74. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/schema.ts +96 -2
  75. package/src/impaktapps-ui-builder/builder/elements/UiSchema/PageMaster/uiSchema.ts +17 -0
  76. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/schema.ts +3 -4
  77. package/src/impaktapps-ui-builder/builder/services/component.ts +150 -107
  78. package/src/impaktapps-ui-builder/builder/services/event.ts +3 -0
  79. package/src/impaktapps-ui-builder/builder/services/pageMaster.ts +4 -1
  80. package/src/impaktapps-ui-builder/builder/services/utils.ts +15 -3
  81. package/src/impaktapps-ui-builder/runtime/services/downloadFile.ts +6 -7
  82. package/src/impaktapps-ui-builder/runtime/services/service.ts +34 -5
  83. package/dist/src/impaktapps-ui-builder/builder/build/buildDataCard.d.ts +0 -1
  84. package/dist/src/impaktapps-ui-builder/builder/build/uischema/dataCard.d.ts +0 -320
  85. package/src/impaktapps-ui-builder/builder/build/buildDataCard.tsx +0 -44
  86. package/src/impaktapps-ui-builder/builder/build/uischema/dataCard.ts +0 -207
@@ -66,7 +66,7 @@ export default (funcParams: funcParamsProps) => {
66
66
  let executeEventsParameters: handlersProps = {
67
67
  config: {}, componentName: "",
68
68
  store: funcParams.store, dynamicData: funcParams.dynamicData, userValue: funcParams.userValue, service: funcParams.service,
69
- serviceHolder: { downloadFile, download: downloadFileFromUrl, ...funcParams.functionsProvider }, eventGroups,
69
+ serviceHolder: { downloadFile, downloadFileFromUrl: downloadFileFromUrl, ...funcParams.functionsProvider }, eventGroups,
70
70
  functionsProvider: funcParams.functionsProvider, formDataHolder
71
71
  };
72
72
  return {
@@ -80,7 +80,7 @@ export default (funcParams: funcParamsProps) => {
80
80
  const config = pageData?.config;
81
81
  const uiSchema = pageData?.uiSchema;
82
82
  const event = new CustomEvent('pageNameChanged', {
83
- detail: { pageName: config.label, hasBackIcon: config.hasBackIcon === "NO" ? false : true }
83
+ detail: { pageName: config.label, pageIconUrl: config.pageIconUrl, hasBackIcon: config.hasBackIcon === "NO" ? false : true }
84
84
  });
85
85
  window.dispatchEvent(event)
86
86
  const theme = funcParams?.store?.theme?.myTheme;
@@ -101,6 +101,7 @@ export default (funcParams: funcParamsProps) => {
101
101
  }
102
102
  }
103
103
  )
104
+
104
105
  executeRefreshHandler({
105
106
  config: {}, componentName: "",
106
107
  store: funcParams.store, dynamicData: funcParams.dynamicData, userValue: funcParams.userValue, service: funcParams.service,
@@ -111,6 +112,24 @@ export default (funcParams: funcParamsProps) => {
111
112
  funcParams.store.setUiSchema(uiSchema);
112
113
  });
113
114
  },
115
+ getStyle: () => {
116
+ const cloneEventGroup = _.cloneDeep(eventGroups)
117
+ if (cloneEventGroup.setStyle) {
118
+ let finalResponse = {};
119
+ const path = funcParams.dynamicData?.tableButtonPath || funcParams?.dynamicData.path?.split(".").pop();
120
+ if (cloneEventGroup?.setStyle?.[path]) {
121
+ for (const eventConfig of cloneEventGroup?.setStyle?.[path]) {
122
+ finalResponse = executeEvents({
123
+ ...executeEventsParameters,
124
+ config: eventConfig,
125
+ componentName: path
126
+ })
127
+ }
128
+ return finalResponse
129
+ }
130
+ }
131
+ return {}
132
+ },
114
133
  onCellRenderer: (cellParams) => {
115
134
  const cloneEventGroup = _.cloneDeep(eventGroups)
116
135
  if (cloneEventGroup.onCellRenderer) {
@@ -139,6 +158,9 @@ export default (funcParams: funcParamsProps) => {
139
158
  onFileDelete: async function () {
140
159
  this.callHandler("onFileDelete")
141
160
  },
161
+ onClose: function () {
162
+ this.callHandler("onClose")
163
+ },
142
164
  onMount: function () {
143
165
  this.callHandler("onMount")
144
166
  },
@@ -168,11 +190,19 @@ export default (funcParams: funcParamsProps) => {
168
190
  { key: "sorting", value: paginationValues.sorting || [] },
169
191
  { key: "filters", value: paginationValues.tableColumnConfig || [] },
170
192
  { key: "globalFilter", value: paginationValues.globalFilter ?? '' },
171
- { key: "expandedRowIds", value: paginationValues.expandedRowIds ?? [] }
193
+ { key: "parentIds", value: paginationValues.parentIds},
194
+ { key: "isExpandAll", value: paginationValues.isExpandAll},
172
195
  ]
173
196
  const response = await this.callExecuteEvents(paginationValues, apiBody, "onLoad");
174
197
  return response?.data;
175
198
  },
199
+ onNodeExpandChange: async function (param) {
200
+ const apiBody = [
201
+ { key: "expandedNodeId", value: param.expandedNodeId }
202
+ ]
203
+ const response = await this.callExecuteEvents(param, apiBody, "onNodeExpandChange");
204
+ return response?.data;
205
+ },
176
206
  getSelectOptions: async function (param) {
177
207
  if (param.serachValue !== "" && param.serachValue !== undefined) {
178
208
  const apiBody = [
@@ -190,8 +220,7 @@ export default (funcParams: funcParamsProps) => {
190
220
 
191
221
  const promises = ChangeEventsKeysArray.flatMap((componentName: string) => {
192
222
  if (
193
- funcParams.store?.formData[componentName] === funcParams.store.newData[componentName] ||
194
- funcParams.store?.newData[componentName] === undefined
223
+ funcParams.store?.formData[componentName] === funcParams.store.newData[componentName]
195
224
  ) {
196
225
  return [];
197
226
  }
@@ -1 +0,0 @@
1
- export declare const buildDataCard: (config: any, componentScope: any, store: any) => any;
@@ -1,320 +0,0 @@
1
- export default function DataCard(theme: any): {
2
- type: string;
3
- config: {
4
- main: {};
5
- style: {
6
- wrapperStyle: {
7
- position: string;
8
- top: string;
9
- transform: string;
10
- marginBottom: number;
11
- borderRadius: string;
12
- };
13
- componentsBoxStyle: {
14
- boxShadow: string;
15
- flexDirection: string;
16
- overflow: string;
17
- flexWrap: string;
18
- width: string;
19
- background: string;
20
- border: string;
21
- borderRadius: string;
22
- padding: string;
23
- height: string;
24
- minHeight: string;
25
- position: string;
26
- marginLeft: string;
27
- transition: string;
28
- "&:hover": {
29
- transform: string;
30
- boxShadow: string;
31
- };
32
- };
33
- };
34
- layout: {
35
- xs: number;
36
- sm: number;
37
- md: number;
38
- lg: number;
39
- };
40
- };
41
- elements: ({
42
- type: string;
43
- scope: string;
44
- config: {
45
- main: {
46
- url: string;
47
- heading?: undefined;
48
- spacing?: undefined;
49
- rowSpacing?: undefined;
50
- columnSpacing?: undefined;
51
- gap?: undefined;
52
- };
53
- style: {
54
- containerStyle: {
55
- position: string;
56
- top: string;
57
- right: string;
58
- display: string;
59
- justifyContent: string;
60
- alignItems: string;
61
- background: string;
62
- borderRadius: string;
63
- width: string;
64
- height: string;
65
- padding: string;
66
- };
67
- imageStyle: {
68
- width: string;
69
- height: string;
70
- padding: string;
71
- margin: string;
72
- opacity: number;
73
- };
74
- color?: undefined;
75
- justifyContent?: undefined;
76
- background?: undefined;
77
- margin?: undefined;
78
- marginBottom?: undefined;
79
- paddingRight?: undefined;
80
- whiteSpace?: undefined;
81
- wordWrap?: undefined;
82
- overflowWrap?: undefined;
83
- fontStyle?: undefined;
84
- fontSize?: undefined;
85
- fontWeight?: undefined;
86
- letterSpacing?: undefined;
87
- textTransform?: undefined;
88
- fontFamily?: undefined;
89
- maxWidth?: undefined;
90
- lineHeight?: undefined;
91
- height?: undefined;
92
- display?: undefined;
93
- width?: undefined;
94
- opacity?: undefined;
95
- componentsBoxStyle?: undefined;
96
- };
97
- layout?: undefined;
98
- };
99
- options: {
100
- widget: string;
101
- };
102
- elements?: undefined;
103
- } | {
104
- type: string;
105
- scope: string;
106
- config: {
107
- main: {
108
- heading: string;
109
- url?: undefined;
110
- spacing?: undefined;
111
- rowSpacing?: undefined;
112
- columnSpacing?: undefined;
113
- gap?: undefined;
114
- };
115
- style: {
116
- color: string;
117
- justifyContent: string;
118
- background: string;
119
- margin: string;
120
- marginBottom: string;
121
- paddingRight: string;
122
- whiteSpace: string;
123
- wordWrap: string;
124
- overflowWrap: string;
125
- fontStyle: string;
126
- fontSize: string;
127
- fontWeight: string;
128
- letterSpacing: string;
129
- textTransform: string;
130
- fontFamily: string;
131
- maxWidth: string;
132
- lineHeight: string;
133
- height: string;
134
- containerStyle?: undefined;
135
- imageStyle?: undefined;
136
- display?: undefined;
137
- width?: undefined;
138
- opacity?: undefined;
139
- componentsBoxStyle?: undefined;
140
- };
141
- layout?: undefined;
142
- };
143
- options: {
144
- widget: string;
145
- };
146
- elements?: undefined;
147
- } | {
148
- type: string;
149
- scope: string;
150
- config: {
151
- main: {
152
- heading: string;
153
- url?: undefined;
154
- spacing?: undefined;
155
- rowSpacing?: undefined;
156
- columnSpacing?: undefined;
157
- gap?: undefined;
158
- };
159
- style: {
160
- color: string;
161
- display: string;
162
- fontSize: {
163
- xs: string;
164
- md: string;
165
- };
166
- fontWeight: string;
167
- background: string;
168
- justifyContent: string;
169
- width: string;
170
- margin: string;
171
- marginBottom: string;
172
- lineHeight: string;
173
- maxWidth: string;
174
- whiteSpace: string;
175
- opacity: number;
176
- containerStyle?: undefined;
177
- imageStyle?: undefined;
178
- paddingRight?: undefined;
179
- wordWrap?: undefined;
180
- overflowWrap?: undefined;
181
- fontStyle?: undefined;
182
- letterSpacing?: undefined;
183
- textTransform?: undefined;
184
- fontFamily?: undefined;
185
- height?: undefined;
186
- componentsBoxStyle?: undefined;
187
- };
188
- layout?: undefined;
189
- };
190
- options: {
191
- widget: string;
192
- };
193
- elements?: undefined;
194
- } | {
195
- type: string;
196
- config: {
197
- main: {
198
- spacing: number;
199
- rowSpacing: number;
200
- columnSpacing: number;
201
- gap: number;
202
- url?: undefined;
203
- heading?: undefined;
204
- };
205
- style: {
206
- componentsBoxStyle: {
207
- display: string;
208
- flexDirection: string;
209
- alignItems: string;
210
- justifyContent: string;
211
- background: string;
212
- borderRadius: string;
213
- padding: string;
214
- width: string;
215
- whiteSpace: string;
216
- gap: string;
217
- margin: string;
218
- paddingLeft: string;
219
- paddingRight: string;
220
- };
221
- containerStyle?: undefined;
222
- imageStyle?: undefined;
223
- color?: undefined;
224
- justifyContent?: undefined;
225
- background?: undefined;
226
- margin?: undefined;
227
- marginBottom?: undefined;
228
- paddingRight?: undefined;
229
- whiteSpace?: undefined;
230
- wordWrap?: undefined;
231
- overflowWrap?: undefined;
232
- fontStyle?: undefined;
233
- fontSize?: undefined;
234
- fontWeight?: undefined;
235
- letterSpacing?: undefined;
236
- textTransform?: undefined;
237
- fontFamily?: undefined;
238
- maxWidth?: undefined;
239
- lineHeight?: undefined;
240
- height?: undefined;
241
- display?: undefined;
242
- width?: undefined;
243
- opacity?: undefined;
244
- };
245
- layout: {
246
- xs: string;
247
- };
248
- };
249
- elements: ({
250
- type: string;
251
- scope: string;
252
- config: {
253
- main: {
254
- url: string;
255
- heading?: undefined;
256
- };
257
- style: {
258
- containerStyle: {
259
- display: string;
260
- alignItems: string;
261
- justifyContent: string;
262
- margin: string;
263
- padding: string;
264
- };
265
- imageStyle: {
266
- width: string;
267
- height: string;
268
- filter: string;
269
- display: string;
270
- };
271
- color?: undefined;
272
- fontSize?: undefined;
273
- fontWeight?: undefined;
274
- background?: undefined;
275
- margin?: undefined;
276
- padding?: undefined;
277
- lineHeight?: undefined;
278
- display?: undefined;
279
- alignItems?: undefined;
280
- };
281
- layout: {
282
- xs: string;
283
- };
284
- };
285
- options: {
286
- widget: string;
287
- };
288
- } | {
289
- type: string;
290
- scope: string;
291
- config: {
292
- main: {
293
- heading: string;
294
- url?: undefined;
295
- };
296
- style: {
297
- color: string;
298
- fontSize: string;
299
- fontWeight: string;
300
- background: string;
301
- margin: string;
302
- padding: string;
303
- lineHeight: string;
304
- display: string;
305
- alignItems: string;
306
- containerStyle?: undefined;
307
- imageStyle?: undefined;
308
- };
309
- layout: {
310
- xs: string;
311
- };
312
- };
313
- options: {
314
- widget: string;
315
- };
316
- })[];
317
- scope?: undefined;
318
- options?: undefined;
319
- })[];
320
- };
@@ -1,44 +0,0 @@
1
- import DataCard from "./uischema/dataCard";
2
- import _ from "lodash";
3
- import { createLayoutFormat } from "./buildConfig";
4
-
5
- export const buildDataCard = (config,componentScope,store) =>{
6
- const card: any = _.cloneDeep(DataCard(store.theme.myTheme));
7
- if (config.style) {
8
- const parsedStyle = JSON.parse(config.style);
9
- card.config.wrapperStyle = parsedStyle;
10
-
11
- card.elements[1].config.style = {...card.elements[1].config.style,...(parsedStyle.labelStyle ?? {}),};
12
- card.elements[3].config.style.componentsBoxStyle = {...card.elements[3].config.style.componentsBoxStyle,...(parsedStyle.descriptionBoxStyle ?? {})};
13
- card.elements[2].config.style = {...card.elements[2].config.style,...(parsedStyle.valueStyle ?? {})};
14
- card.config.componentsBoxStyle = {...card.config.componentsBoxStyle,...(parsedStyle.componentsBoxStyle ?? {})};
15
- card.elements[0].config.style.containerStyle = {...card.elements[0].config.style.containerStyle,...(parsedStyle.imageContainerStyle ?? {})};
16
- }
17
- card.elements[2].scope = `#/properties/${config.name}/properties/value`;
18
- card.elements[0].scope = `#/properties/${config.name}/properties/url`;
19
- card.elements[3].elements[1].scope = `#/properties/${config.name}/properties/description`;
20
- card.elements[1].scope = `#/properties/${config.name}/properties/label`;
21
- card.elements[3].elements[0].scope = `#/properties/${config.name}/properties/trendIconUrl`;
22
- if(config.layout){
23
- card.config.layout = createLayoutFormat(config.layout)
24
- }
25
- if(config.label){
26
- card.elements[1].config.main.heading = config.label;
27
- }
28
- if(config.url){
29
- card.elements[0].config.main.url = config.url;
30
- }
31
- if(config.description){
32
- card.elements[3].elements[1].config.main.heading = config.description;
33
- }
34
- if(config.value){
35
- card.elements[2].config.main.heading = config.value;
36
- }
37
- if (config.trendIconUrl) {
38
- card.elements[3].elements[0].config.main.url = config.trendIconUrl;
39
- }
40
-
41
- return card;
42
- }
43
-
44
-
@@ -1,207 +0,0 @@
1
- export default function DataCard(theme) {
2
- const uiSchema = {
3
- type: "WrapperLayout",
4
- config: {
5
- main: {},
6
- style: {
7
- wrapperStyle: {
8
- position: "relative",
9
- top: "50%",
10
- transform: "translateY(-50%)",
11
- marginBottom: 0,
12
- borderRadius: "8px",
13
- },
14
- componentsBoxStyle: {
15
- boxShadow: "0px 2px 6px rgba(0, 0, 0, 0.06)",
16
- flexDirection: "column",
17
- overflow: "hidden",
18
- flexWrap: "nowrap",
19
- width: "90% !important",
20
- background: "#F9FAFB",
21
- border: "2px solid #E5E7EB",
22
- borderRadius: "16px",
23
- padding: "24px 20px 20px 24px",
24
- height: "100%",
25
- minHeight: "140px",
26
- position: "relative",
27
- marginLeft: "0px",
28
- transition: "all 0.3s ease",
29
- "&:hover": {
30
- transform: "translateY(-6px)",
31
- boxShadow: "0px 8px 16px rgba(0, 0, 0, 0.08)",
32
- },
33
- },
34
- },
35
- layout: { xs: 12, sm: 12, md: 6, lg: 3 },
36
- },
37
-
38
- elements: [
39
- {
40
- type: "Control",
41
- scope: "#/properties/programType",
42
- config: {
43
- main: {
44
- url: "https://unpkg.com/heroicons@2.0.18/24/outline/information-circle.svg",
45
- },
46
- style: {
47
- containerStyle: {
48
- position: "absolute",
49
- top: "20px",
50
- right: "20px",
51
- display: "flex",
52
- justifyContent: "center",
53
- alignItems: "center",
54
- background: "#F3F4F6",
55
- borderRadius: "20%",
56
- width: "48px",
57
- height: "48px",
58
- padding: "12px",
59
- },
60
- imageStyle: {
61
- width: "24px",
62
- height: "24px",
63
- padding: "0px",
64
- margin: "0px",
65
- opacity: 0.7,
66
- },
67
- },
68
- },
69
- options: { widget: "Image" },
70
- },
71
- {
72
- type: "Control",
73
- scope: "#/properties/programType",
74
- config: {
75
- main: {
76
- heading: "METRIC",
77
- },
78
- style: {
79
- color: "#9CA3AF",
80
- justifyContent: "flex-start",
81
- background: "inherit",
82
- margin: "0px",
83
- marginBottom: "16px",
84
- paddingRight: "60px",
85
-
86
- whiteSpace: "normal",
87
- wordWrap: "break-word",
88
- overflowWrap: "break-word",
89
-
90
- fontStyle: "normal",
91
- fontSize: "12px",
92
- fontWeight: "600",
93
- letterSpacing: "0.3px",
94
- textTransform: "uppercase",
95
- fontFamily: "Arial",
96
-
97
- maxWidth: "24%",
98
- lineHeight: "1.2",
99
- height: "20px",
100
- },
101
- },
102
- options: { widget: "Box" },
103
- },
104
- {
105
- type: "Control",
106
- scope: "#/properties/programType",
107
- config: {
108
- main: {
109
- heading: "--",
110
- },
111
- style: {
112
- color: "#111827",
113
- display: "flex",
114
- fontSize: { xs: "36px", md: "42px" },
115
- fontWeight: "700",
116
- background: "inherit",
117
- justifyContent: "flex-start",
118
- width: "100%",
119
- margin: "0px",
120
- marginBottom: "16px",
121
- lineHeight: "1",
122
- maxWidth: "200px",
123
- whiteSpace: "nowrap",
124
- opacity: 0.85,
125
- },
126
- },
127
- options: { widget: "Box" },
128
- },
129
- {
130
- type: "WrapperLayout",
131
- config: {
132
- main: { spacing: 0, rowSpacing: 0, columnSpacing: 0, gap: 0 },
133
- style: {
134
- componentsBoxStyle: {
135
- display: "flex",
136
- flexDirection: "row",
137
- alignItems: "center",
138
- justifyContent: "flex-start",
139
- background: "#E5E7EB",
140
- borderRadius: "999px",
141
- padding: "6px 14px",
142
- width: "fit-content",
143
- whiteSpace: "nowrap",
144
- gap: "6px",
145
- margin: "0px",
146
- paddingLeft: "20px",
147
- paddingRight: "20px",
148
- },
149
- },
150
- layout: { xs: "auto" },
151
- },
152
-
153
- elements: [
154
- {
155
- type: "Control",
156
- scope: "#/properties/programType",
157
- config: {
158
- main: {
159
- url: "https://unpkg.com/heroicons@2.0.18/24/outline/arrow-right.svg",
160
- },
161
- style: {
162
- containerStyle: {
163
- display: "flex",
164
- alignItems: "center",
165
- justifyContent: "center",
166
- margin: "0px",
167
- padding: "0px",
168
- },
169
- imageStyle: {
170
- width: "14px",
171
- height: "14px",
172
- filter: "brightness(0) invert(0.5)",
173
- display: "block",
174
- },
175
- },
176
- layout: { xs: "auto" },
177
- },
178
- options: { widget: "Image" },
179
- },
180
- {
181
- type: "Control",
182
- scope: "#/properties/programType",
183
- config: {
184
- main: {
185
- heading: "—",
186
- },
187
- style: {
188
- color: "#6B7280",
189
- fontSize: "12px",
190
- fontWeight: "550",
191
- background: "transparent",
192
- margin: "0px",
193
- padding: "0px",
194
- lineHeight: "1",
195
- display: "flex",
196
- alignItems: "center",
197
- },
198
- layout: { xs: "auto" },
199
- },
200
- options: { widget: "Box" },
201
- },
202
- ],
203
- },
204
- ],
205
- };
206
- return uiSchema
207
- }