impaktapps-ui-builder 1.0.3 → 1.0.5

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 (122) hide show
  1. package/dist/impaktapps-ui-builder.es.js +2278 -1161
  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/buildAreaGraph.d.ts +2 -0
  6. package/dist/src/impaktapps-ui-builder/builder/build/buildArray.d.ts +1 -11
  7. package/dist/src/impaktapps-ui-builder/builder/build/buildCamera.d.ts +1 -0
  8. package/dist/src/impaktapps-ui-builder/builder/build/buildConfig.d.ts +2 -1
  9. package/dist/src/impaktapps-ui-builder/builder/build/buildGroupButton.d.ts +1 -0
  10. package/dist/src/impaktapps-ui-builder/builder/build/buildHorizontalLayout.d.ts +1 -0
  11. package/dist/src/impaktapps-ui-builder/builder/build/buildImage.d.ts +1 -0
  12. package/dist/src/impaktapps-ui-builder/builder/build/buildMetricCard.d.ts +1 -0
  13. package/dist/src/impaktapps-ui-builder/builder/build/buildOTP_inputs.d.ts +1 -0
  14. package/dist/src/impaktapps-ui-builder/builder/build/buildPdfViewer.d.ts +1 -0
  15. package/dist/src/impaktapps-ui-builder/builder/build/buildPopover.d.ts +1 -0
  16. package/dist/src/impaktapps-ui-builder/builder/build/buildStackBarLineGraph.d.ts +2 -0
  17. package/dist/src/impaktapps-ui-builder/builder/build/buildUiSchema.d.ts +2 -1
  18. package/dist/src/impaktapps-ui-builder/builder/build/uischema/apiSection.d.ts +1 -3
  19. package/dist/src/impaktapps-ui-builder/builder/build/uischema/box.d.ts +10 -2
  20. package/dist/src/impaktapps-ui-builder/builder/build/uischema/buildPropertiesSection.d.ts +1 -1
  21. package/dist/src/impaktapps-ui-builder/builder/build/uischema/button.d.ts +6 -1
  22. package/dist/src/impaktapps-ui-builder/builder/build/uischema/buttonGroup.d.ts +22 -0
  23. package/dist/src/impaktapps-ui-builder/builder/build/uischema/card.d.ts +173 -171
  24. package/dist/src/impaktapps-ui-builder/builder/build/uischema/coreSection.d.ts +82 -72
  25. package/dist/src/impaktapps-ui-builder/builder/build/uischema/eventSection.d.ts +18 -50
  26. package/dist/src/impaktapps-ui-builder/builder/build/uischema/graph.d.ts +50 -4
  27. package/dist/src/impaktapps-ui-builder/builder/build/uischema/horizontalLayout.d.ts +13 -0
  28. package/dist/src/impaktapps-ui-builder/builder/build/uischema/metricCard.d.ts +17 -0
  29. package/dist/src/impaktapps-ui-builder/builder/build/uischema/multiSelect.d.ts +1 -0
  30. package/dist/src/impaktapps-ui-builder/builder/build/uischema/pdfViewer.d.ts +19 -0
  31. package/dist/src/impaktapps-ui-builder/builder/build/uischema/refresh.d.ts +0 -3
  32. package/dist/src/impaktapps-ui-builder/builder/build/uischema/selectInputField.d.ts +1 -0
  33. package/dist/src/impaktapps-ui-builder/builder/build/uischema/table.d.ts +1 -0
  34. package/dist/src/impaktapps-ui-builder/builder/build/uischema/tableSection.d.ts +15 -66
  35. package/dist/src/impaktapps-ui-builder/builder/build/uischema/validationSections.d.ts +48 -38
  36. package/dist/src/impaktapps-ui-builder/builder/build/uischema/valueTab.d.ts +0 -3
  37. package/dist/src/impaktapps-ui-builder/builder/build/uischema/wrapperSection.d.ts +4 -1
  38. package/dist/src/impaktapps-ui-builder/builder/services/utils.d.ts +2 -1
  39. package/dist/src/impaktapps-ui-builder/lib/index.d.ts +1 -0
  40. package/dist/src/impaktapps-ui-builder/runtime/services/downloadFile.d.ts +5 -2
  41. package/dist/src/impaktapps-ui-builder/runtime/services/service.d.ts +10 -4
  42. package/package.json +1 -1
  43. package/src/impaktapps-ui-builder/builder/build/buildAadharCard.ts +2 -2
  44. package/src/impaktapps-ui-builder/builder/build/buildAreaGraph.ts +66 -0
  45. package/src/impaktapps-ui-builder/builder/build/buildArray.ts +35 -15
  46. package/src/impaktapps-ui-builder/builder/build/buildButton.ts +1 -1
  47. package/src/impaktapps-ui-builder/builder/build/buildCamera.ts +50 -0
  48. package/src/impaktapps-ui-builder/builder/build/buildCard.ts +10 -10
  49. package/src/impaktapps-ui-builder/builder/build/buildCheckbox.ts +1 -1
  50. package/src/impaktapps-ui-builder/builder/build/buildConfig.ts +34 -16
  51. package/src/impaktapps-ui-builder/builder/build/buildDataGrid.ts +2 -2
  52. package/src/impaktapps-ui-builder/builder/build/buildDate.ts +35 -13
  53. package/src/impaktapps-ui-builder/builder/build/buildDownloadFile.ts +7 -0
  54. package/src/impaktapps-ui-builder/builder/build/buildEmptyBox.ts +1 -0
  55. package/src/impaktapps-ui-builder/builder/build/buildFileInput.ts +42 -28
  56. package/src/impaktapps-ui-builder/builder/build/buildGroupButton.ts +24 -0
  57. package/src/impaktapps-ui-builder/builder/build/buildHorizontalBarGraph.ts +10 -4
  58. package/src/impaktapps-ui-builder/builder/build/buildHorizontalLayout.ts +15 -0
  59. package/src/impaktapps-ui-builder/builder/build/buildImage.ts +38 -0
  60. package/src/impaktapps-ui-builder/builder/build/buildLabel.ts +3 -0
  61. package/src/impaktapps-ui-builder/builder/build/buildLeaderboard.ts +4 -1
  62. package/src/impaktapps-ui-builder/builder/build/buildLineGraph.ts +10 -4
  63. package/src/impaktapps-ui-builder/builder/build/buildMetricCard.tsx +37 -0
  64. package/src/impaktapps-ui-builder/builder/build/buildMultiSelect.ts +12 -0
  65. package/src/impaktapps-ui-builder/builder/build/buildOTP_inputs.ts +44 -0
  66. package/src/impaktapps-ui-builder/builder/build/buildPdfViewer.ts +16 -0
  67. package/src/impaktapps-ui-builder/builder/build/buildPieGraph.ts +7 -4
  68. package/src/impaktapps-ui-builder/builder/build/buildPop.ts +3 -2
  69. package/src/impaktapps-ui-builder/builder/build/buildPopover.ts +40 -0
  70. package/src/impaktapps-ui-builder/builder/build/buildProgressBar.ts +31 -21
  71. package/src/impaktapps-ui-builder/builder/build/buildRadio.ts +11 -3
  72. package/src/impaktapps-ui-builder/builder/build/buildSelect.ts +12 -0
  73. package/src/impaktapps-ui-builder/builder/build/buildStackBarGraph.ts +10 -4
  74. package/src/impaktapps-ui-builder/builder/build/buildStackBarLineGraph.ts +72 -0
  75. package/src/impaktapps-ui-builder/builder/build/buildTabSection.ts +5 -0
  76. package/src/impaktapps-ui-builder/builder/build/buildTable.ts +24 -8
  77. package/src/impaktapps-ui-builder/builder/build/buildText.ts +15 -0
  78. package/src/impaktapps-ui-builder/builder/build/buildTextArea.ts +2 -2
  79. package/src/impaktapps-ui-builder/builder/build/buildThoughtOfTheDay.ts +1 -1
  80. package/src/impaktapps-ui-builder/builder/build/buildTreeMap.ts +2 -1
  81. package/src/impaktapps-ui-builder/builder/build/buildUiSchema.ts +140 -130
  82. package/src/impaktapps-ui-builder/builder/build/buildUplaodFile.ts +6 -0
  83. package/src/impaktapps-ui-builder/builder/build/buildWrapperSection.ts +8 -3
  84. package/src/impaktapps-ui-builder/builder/build/uischema/apiSection.ts +0 -6
  85. package/src/impaktapps-ui-builder/builder/build/uischema/array.ts +1 -1
  86. package/src/impaktapps-ui-builder/builder/build/uischema/box.ts +5 -2
  87. package/src/impaktapps-ui-builder/builder/build/uischema/buildPropertiesSection.ts +398 -141
  88. package/src/impaktapps-ui-builder/builder/build/uischema/button.ts +1 -1
  89. package/src/impaktapps-ui-builder/builder/build/uischema/buttonGroup.ts +17 -0
  90. package/src/impaktapps-ui-builder/builder/build/uischema/card.ts +142 -169
  91. package/src/impaktapps-ui-builder/builder/build/uischema/coreSection.ts +127 -133
  92. package/src/impaktapps-ui-builder/builder/build/uischema/dateInputField.ts +2 -2
  93. package/src/impaktapps-ui-builder/builder/build/uischema/emptyBox.ts +1 -1
  94. package/src/impaktapps-ui-builder/builder/build/uischema/eventSection.ts +30 -54
  95. package/src/impaktapps-ui-builder/builder/build/uischema/file.ts +3 -3
  96. package/src/impaktapps-ui-builder/builder/build/uischema/graph.ts +37 -4
  97. package/src/impaktapps-ui-builder/builder/build/uischema/horizontalLayout.ts +11 -0
  98. package/src/impaktapps-ui-builder/builder/build/uischema/metricCard.ts +13 -0
  99. package/src/impaktapps-ui-builder/builder/build/uischema/multiSelect.ts +4 -2
  100. package/src/impaktapps-ui-builder/builder/build/uischema/pdfViewer.ts +18 -0
  101. package/src/impaktapps-ui-builder/builder/build/uischema/refresh.ts +0 -3
  102. package/src/impaktapps-ui-builder/builder/build/uischema/selectInputField.ts +3 -1
  103. package/src/impaktapps-ui-builder/builder/build/uischema/table.ts +1 -0
  104. package/src/impaktapps-ui-builder/builder/build/uischema/tableSection.ts +34 -60
  105. package/src/impaktapps-ui-builder/builder/build/uischema/textInputField.ts +1 -1
  106. package/src/impaktapps-ui-builder/builder/build/uischema/validationSections.ts +58 -113
  107. package/src/impaktapps-ui-builder/builder/build/uischema/valueTab.ts +0 -3
  108. package/src/impaktapps-ui-builder/builder/build/uischema/wrapperSection.ts +4 -1
  109. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/schema.ts +228 -59
  110. package/src/impaktapps-ui-builder/builder/elements/UiSchema/Component/uiSchema.ts +121 -119
  111. package/src/impaktapps-ui-builder/builder/elements/UiSchema/PageMaster/schema.ts +1 -1
  112. package/src/impaktapps-ui-builder/builder/elements/UiSchema/PageMaster/uiSchema.ts +94 -106
  113. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/schema.ts +11 -5
  114. package/src/impaktapps-ui-builder/builder/elements/UiSchema/event/uiSchema.ts +31 -55
  115. package/src/impaktapps-ui-builder/builder/services/component.ts +173 -86
  116. package/src/impaktapps-ui-builder/builder/services/event.ts +3 -0
  117. package/src/impaktapps-ui-builder/builder/services/pageMaster.ts +18 -15
  118. package/src/impaktapps-ui-builder/builder/services/utils.ts +15 -3
  119. package/src/impaktapps-ui-builder/lib/index.ts +10 -9
  120. package/src/impaktapps-ui-builder/runtime/services/downloadFile.ts +33 -18
  121. package/src/impaktapps-ui-builder/runtime/services/events.ts +9 -11
  122. package/src/impaktapps-ui-builder/runtime/services/service.ts +123 -165
@@ -1,3 +1,4 @@
1
+ import { createLayoutFormat } from "./buildConfig";
1
2
  import Table from "./uischema/table";
2
3
  import _ from "lodash";
3
4
 
@@ -10,6 +11,9 @@ export const buildTable = (config: any, componentScope: string) => {
10
11
  if (config.lazyLoading) {
11
12
  table.config.main.lazyLoading = config.lazyLoading === "YES" ? true : false;
12
13
  }
14
+ if (config.defaultColumnSize) {
15
+ table.config.main.defaultColumnSize = config.defaultColumnSize
16
+ }
13
17
  if (config.enableRowMovement) {
14
18
  table.config.main.enableRowMovement = config.enableRowMovement === "YES" ? true : false;
15
19
  }
@@ -20,6 +24,9 @@ export const buildTable = (config: any, componentScope: string) => {
20
24
  if (config.enableExpandAll) {
21
25
  table.config.main.enableExpandAll = config.enableExpandAll === "YES" ? true : false;
22
26
  }
27
+ if (config.filterFromLeafRows) {
28
+ table.config.main.filterFromLeafRows = config.filterFromLeafRows === "YES" ? true : false;
29
+ }
23
30
  if (config.paginateExpandedRows) {
24
31
  table.config.main.paginateExpandedRows = config.paginateExpandedRows === "YES" ? true : false;
25
32
  }
@@ -38,28 +45,28 @@ export const buildTable = (config: any, componentScope: string) => {
38
45
  if (config.downloadAllData) {
39
46
  table.config.main.downloadAllData = config.downloadAllData === "YES" ? true : false
40
47
  }
41
- if(config.disableGlobalSearch){
48
+ if (config.disableGlobalSearch) {
42
49
  table.config.main.disableGlobalSearch = config.disableGlobalSearch === "YES" ? true : false
43
50
  }
44
- if(config.disableColumnFilter){
51
+ if (config.disableColumnFilter) {
45
52
  table.config.main.disableColumnFilter = config.disableColumnFilter === "YES" ? true : false
46
53
  }
47
- if(config.disableSorting){
54
+ if (config.disableSorting) {
48
55
  table.config.main.disableSorting = config.disableSorting === "YES" ? true : false
49
56
  }
50
- if(config.disableEditColumn){
57
+ if (config.disableEditColumn) {
51
58
  table.config.main.disableEditColumn = config.disableEditColumn === "YES" ? true : false
52
59
  }
53
- if(config.disableFullScreenToggle){
60
+ if (config.disableFullScreenToggle) {
54
61
  table.config.main.disableFullScreenToggle = config.disableFullScreenToggle === "YES" ? true : false
55
62
  }
56
- if(config.disableDensityToggle){
63
+ if (config.disableDensityToggle) {
57
64
  table.config.main.disableDensityToggle = config.disableDensityToggle === "YES" ? true : false
58
65
  }
59
- if(config.disableDownloadFile){
66
+ if (config.disableDownloadFile) {
60
67
  table.config.main.disableDownloadFile = config.disableDownloadFile === "YES" ? true : false
61
68
  }
62
- if(config.disablePagination){
69
+ if (config.disablePagination) {
63
70
  table.config.main.disablePagination = config.disablePagination === "YES" ? true : false
64
71
  }
65
72
  if (config.Table_Download_Keys_Name) {
@@ -68,5 +75,14 @@ export const buildTable = (config: any, componentScope: string) => {
68
75
  if (config.selectKey) {
69
76
  table.config.main.selectKey = config.selectKey
70
77
  }
78
+ if (config.maxPageSize) {
79
+ table.config.main.maxPageSize = config.maxPageSize
80
+ }
81
+ if(config.initialDensity){
82
+ table.config.main.initialDensity = config.initialDensity
83
+ }
84
+ if(config.layout){
85
+ table.config.layout = createLayoutFormat(config.layout)
86
+ }
71
87
  return table;
72
88
  };
@@ -11,15 +11,30 @@ export const buildTextField = (config: any, componentScope: string) => {
11
11
  if (config.multiline) {
12
12
  inputField.config.main.multiline = config.multiline === "YES" ? true : false;
13
13
  }
14
+ if (config.keyName) {
15
+ inputField.config.main.keyName = config.keyName;
16
+ }
14
17
  if (config.InputFormatingAndMasking) {
15
18
  inputField.config.main.formatStrArray = config.InputFormatingAndMasking.map(e => e.formatElement);
16
19
  }
17
20
  if (config.placeholder) {
18
21
  inputField.config.main.placeholder = config.placeholder;
19
22
  }
23
+ if (config.variant) {
24
+ inputField.config.main.variant = config.variant;
25
+ }
20
26
  if (config.layout) {
21
27
  inputField.config.layout = createLayoutFormat(config.layout)
22
28
  }
29
+ if (config.toolTip) {
30
+ inputField.config.main.toolTip = config.toolTip;
31
+ }
32
+ if (config.toolTipPosition) {
33
+ inputField.config.main.toolTipPosition = config.toolTipPosition;
34
+ }
35
+ if(config.iconName){
36
+ inputField.config.main.startIcon = config.iconName;
37
+ }
23
38
  inputField.config.main.errorMessage = `${config.name} is empty or invalid`;
24
39
  inputField.scope = componentScope;
25
40
  return inputField;
@@ -10,7 +10,7 @@ const TextArea = {
10
10
  widget: "TextArea",
11
11
  },
12
12
  config: {
13
- layout:{xs:12,sm:12,md:5.5,lg:5.5},
13
+ layout:12,
14
14
  style:{
15
15
  containerStyle:{
16
16
  borderRadius:"20px",
@@ -37,7 +37,7 @@ export const buildTextArea = (config:any,componentScope:string) =>{
37
37
  textArea.config.main.heading = config.label;
38
38
 
39
39
  if(config.layout){
40
- textArea.config.layout = createLayoutFormat(config.layout)
40
+ textArea.config.layout = createLayoutFormat(config.layout, config.type)
41
41
  }
42
42
  if (config.style) {
43
43
  textArea.config.style = JSON.parse(config.style)
@@ -10,7 +10,7 @@ export const buildThoughtOfTheDay = (config,componentScope) =>{
10
10
  thought.config.main.thought = `${config.thought}`
11
11
  }
12
12
  if(config.layout){
13
- thought.config.layout = createLayoutFormat(config.layout)
13
+ thought.config.layout = createLayoutFormat(config.layout, config.type)
14
14
  }
15
15
  if(config.label){
16
16
  thought.config.main.label = config.label;
@@ -5,6 +5,7 @@ const TreeMap = {
5
5
  "type": "Control",
6
6
  "scope": "#/properties/TreeMap2",
7
7
  "config": {
8
+ layout: 12,
8
9
  "main": {
9
10
  "layout": "cartsian",
10
11
  orientation: "vertical",
@@ -34,7 +35,7 @@ export const buildTreeMap = (config, componentScope) => {
34
35
  treMap.config.main.header = config.label;
35
36
  }
36
37
  if (config.layout) {
37
- treMap.config.layout = createLayoutFormat(config.layout);
38
+ treMap.config.layout = createLayoutFormat(config.layout, config.type);
38
39
  }
39
40
  if (config.orientation) {
40
41
  treMap.config.main.orientation = config.orientation;
@@ -1,6 +1,4 @@
1
1
  import _ from "lodash";
2
- import emptyBox from "./uischema/emptyBox";
3
- import cardSlider from "./uischema/cardSlider";
4
2
  import { buildLeaderBoard } from "./buildLeaderboard";
5
3
  import { buildProgressBarCard } from "./buildProgressBarCard";
6
4
  import { buildProgressBar } from "./buildProgressBar";
@@ -19,6 +17,7 @@ import { buildLabel } from "./buildLabel";
19
17
  import { buildUploadFile } from "./buildUplaodFile";
20
18
  import { buildDownloadFile } from "./buildDownloadFile";
21
19
  import { buildCard } from "./buildCard";
20
+ import { buildMetricCard } from "./buildMetricCard";
22
21
  import { buildDate, buildDateTime } from "./buildDate";
23
22
  import { buildRankCard } from "./buildRankCard";
24
23
  import { buildRollAndDice } from "./buildRollAndDice";
@@ -40,136 +39,98 @@ import { buildDataGrid } from "./buildDataGrid";
40
39
  import { buildInputSlider } from "./buildInputSlider";
41
40
  import { buildTreeMap } from "./buildTreeMap";
42
41
  import { buildThoughtOfTheDay } from "./buildThoughtOfTheDay";
42
+ import { buildHorizontalLayout } from "./buildHorizontalLayout";
43
+ import { buildImage } from "./buildImage";
44
+ import buildAreaGraph from "./buildAreaGraph";
45
+ import buildStackBarLineGraph from "./buildStackBarLineGraph";
46
+ import { buildCamera } from "./buildCamera";
47
+ import { buildButtonGroup } from "./buildGroupButton";
48
+ import { buildPopOver } from "./buildPopover";
49
+ import { buildOTP_Input } from "./buildOTP_inputs";
50
+ import { buildPdfViewer } from "./buildPdfViewer";
43
51
  export let schema = {
44
52
  type: "object",
45
53
  properties: {},
46
54
  required: []
47
55
  };
48
- //MultipleSelect
49
- function buildRule(configObj: any, tableName?: string, arrayHolderName?: boolean) {
50
- if (arrayHolderName) {
51
- if (schema.properties?.[tableName]?.items?.properties) {
52
- if (!schema.properties?.[tableName]?.items?.properties?.[configObj.name]) {
53
- schema.properties[tableName].items.properties[configObj.name] = {};
54
- if (configObj.type === "Select" && configObj.value?.length > 0) {
55
- schema.properties[tableName].items.properties[configObj.name] = {
56
- oneOf: configObj.value.map((e) => {
57
- return { const: e.value, title: e.label }
58
- })
59
- }
60
- }
61
- else if (configObj.type === "MultipleSelect" && configObj.value?.length > 0) {
62
- schema.properties[tableName].items.properties[configObj.name] = {
63
- items: {
64
- oneOf: configObj.value.map((e) => {
65
- return { const: e.value, title: e.label }
66
- })
67
- }
68
- }
69
- }
70
- }
71
- }
72
- } else if ((configObj.type === "Select" || configObj.type === "MultipleSelect") && configObj.value?.length > 0) {
73
- if (configObj.type === "Select") {
74
- schema.properties[configObj.name] = {
75
- oneOf: configObj.value.map((e) => {
76
- return { const: e.value, title: e.label }
77
- })
78
- }
79
- }
80
- else if (configObj.type === "MultipleSelect") {
81
- schema.properties[configObj.name] = {
56
+ function buildOneOf(values: any[]) {
57
+ return values.map((e) => ({
58
+ const: e.value,
59
+ title: e.label
60
+ }));
61
+ }
62
+ export function buildSchemaFromConfig(config: any, parentSchema: any) {
63
+ if (config.elements) {
64
+ if (config.type === "Array") {
65
+ parentSchema.properties ??= {};
66
+ parentSchema.properties[config.name] ??= {
67
+ type: "array",
82
68
  items: {
83
- oneOf: configObj.value.map((e) => {
84
- return { const: e.value, title: e.label }
85
- })
86
- }
87
- }
88
- }
89
- }
90
- if (configObj.validation) {
91
- configObj.validation.forEach((rule: any) => {
92
- if (tableName) {
93
- if (schema.properties?.[tableName]?.items?.properties) {
94
- if (!schema.properties?.[tableName]?.items?.properties?.[configObj.name]) {
95
- schema.properties[tableName].items.properties[configObj.name] = {};
96
- if (configObj.type === "Select" || configObj.value?.length > 0) {
97
- schema.properties[tableName].items.properties[configObj.name] = {
98
- oneOf: configObj.value.map((e) => {
99
- return { const: e.value, title: e.label }
100
- })
101
- }
102
- }
103
- else if (configObj.type === "MultipleSelect" || configObj.value?.length > 0) {
104
- schema.properties[tableName].items.properties[configObj.name] = {
105
- items: {
106
- oneOf: configObj.value.map((e) => {
107
- return { const: e.value, title: e.label }
108
- })
109
- }
110
- }
111
- }
112
- }
113
- if (rule.validationType === "required") {
114
- schema.properties?.[tableName]?.items?.required.push(configObj.name)
115
- } else {
116
- schema.properties[tableName].items.properties[configObj.name]["type"] = "string"
117
- schema.properties[tableName].items.properties[configObj.name][rule.validationType] =
118
- isNaN(rule.validationValue) ?
119
- rule.validationValue : Number(rule.validationValue)
120
- }
121
-
122
- }
123
- } else {
124
- if (!schema.properties[configObj.name]) {
125
- schema.properties[configObj.name] = {};
126
- }
127
- if (rule.validationType === "required") {
128
- schema.required.push(configObj.name)
129
- } else {
130
- schema.properties[configObj.name]["type"] = "string"
131
- schema.properties[configObj.name][rule.validationType] =
132
- isNaN(rule.validationValue) ?
133
- rule.validationValue : Number(rule.validationValue)
134
- }
135
- }
136
- });
137
- }
69
+ type: "object",
70
+ properties: {},
71
+ required: [],
72
+ },
73
+ };
138
74
 
75
+ const arrayItemSchema = parentSchema.properties[config.name].items;
139
76
 
140
- }
141
- export const buildSchema = (config: any, tableName?: string, isArrayType?: boolean) => {
142
- buildRule(config, tableName, isArrayType);
143
- if (config?.elements) {
144
- if (config.type == "Table" || config.type == "Array") {
145
- if (!schema.properties[config.name]) {
146
- schema.properties[config.name] = {
147
- type: "array",
148
- items: {
149
- type: "object",
150
- properties: {},
151
- required: []
152
- }
153
- }
154
- }
155
- config.elements.map((e, elemInd) => {
156
- buildSchema(e, config.name, config.type === "Array" ? true : false)
157
- })
77
+ config.elements?.forEach((child: any) =>
78
+ buildSchemaFromConfig(child, arrayItemSchema)
79
+ );
80
+ return;
81
+ } else {
82
+ config.elements?.forEach((child: any) =>
83
+ buildSchemaFromConfig(child, parentSchema)
84
+ );
85
+ return;
158
86
  }
159
- else {
160
- config.elements.map((e, elemInd) => {
161
- buildSchema(e)
162
- })
87
+ }
88
+ parentSchema.properties ??= {};
89
+ parentSchema.properties[config.name] ??= {};
90
+ const fieldSchema = parentSchema.properties[config.name];
91
+ config.validation?.forEach((v: any) => {
92
+ if (v.validationType === "required") {
93
+ parentSchema.required ??= [];
94
+ parentSchema.required.push(config.name);
95
+ } else if (v.validationType === "readOnly") {
96
+ fieldSchema.type = "string";
97
+ fieldSchema.disabled = true;
98
+ } else {
99
+ fieldSchema.type = "string";
100
+ fieldSchema[v.validationType] = isNaN(v.validationValue)
101
+ ? v.validationValue
102
+ : Number(v.validationValue);
163
103
  }
104
+ });
105
+ if (config.type === "Select" && config.value?.length) {
106
+ fieldSchema.oneOf = config.value.map((v: any) => ({
107
+ const: v.value,
108
+ title: v.label,
109
+ }));
110
+ }
111
+ if (config.type === "MultipleSelect" && config.value?.length) {
112
+ fieldSchema.type = "array";
113
+ fieldSchema.items = {
114
+ oneOf: config.value.map((v: any) => ({
115
+ const: v.value,
116
+ title: v.label,
117
+ })),
118
+ };
164
119
  }
165
- return schema;
166
120
  }
167
121
 
122
+ export const buildSchema = (config) => {
123
+ buildSchemaFromConfig(config, schema)
124
+ return schema;
125
+ }
168
126
 
169
127
  const buildUiSchema = (config: any, store?: any) => {
170
128
  let elements: any = {};
171
129
  const componentScope = `#/properties/${config.name}`;
172
130
  switch (config.type) {
131
+ case "OTP_Input":
132
+ elements = buildOTP_Input(config, componentScope);
133
+ break;
173
134
  case "TreeMap":
174
135
  elements = buildTreeMap(config, componentScope)
175
136
  break;
@@ -188,6 +149,9 @@ const buildUiSchema = (config: any, store?: any) => {
188
149
  case "PopUp":
189
150
  elements = buildPopUp(config, componentScope);
190
151
  break;
152
+ case "PopOver":
153
+ elements = buildPopOver(config, componentScope);
154
+ break;
191
155
  case "FileInput":
192
156
  elements = buildFileInput(config, componentScope);
193
157
  break;
@@ -206,6 +170,9 @@ const buildUiSchema = (config: any, store?: any) => {
206
170
  case "WrapperSection":
207
171
  elements = buildWrapperSection(config, componentScope);
208
172
  break;
173
+ case "HorizontalLayout":
174
+ elements = buildHorizontalLayout(config, componentScope);
175
+ break;
209
176
  case "Text":
210
177
  elements = buildTextField(config, componentScope);
211
178
  break;
@@ -225,6 +192,9 @@ const buildUiSchema = (config: any, store?: any) => {
225
192
 
226
193
  elements = buildButton(config, componentScope);
227
194
  break;
195
+ case "ButtonGroup":
196
+ elements = buildButtonGroup(config, componentScope);
197
+ break;
228
198
  case "Table":
229
199
  elements = buildTable(config, componentScope);
230
200
  break;
@@ -249,6 +219,9 @@ const buildUiSchema = (config: any, store?: any) => {
249
219
  case "card":
250
220
  elements = buildCard(config, componentScope, store);
251
221
  break;
222
+ case "MetricCard":
223
+ elements = buildMetricCard(config, componentScope, store);
224
+ break;
252
225
  case "Graph":
253
226
  switch (config.graphType) {
254
227
  case "BarGraph":
@@ -265,6 +238,12 @@ const buildUiSchema = (config: any, store?: any) => {
265
238
  case "HorizontalStackBarGraph":
266
239
  elements = buildHorizontalBarGraph(config, componentScope);
267
240
  break;
241
+ case "AreaGraph":
242
+ elements = buildAreaGraph(config, componentScope);
243
+ break;
244
+ case "StackBarLineGraph":
245
+ elements = buildStackBarLineGraph(config, componentScope);
246
+ break;
268
247
  default:
269
248
  elements = buildStackbarGraph(config, componentScope);
270
249
  break;
@@ -307,6 +286,14 @@ const buildUiSchema = (config: any, store?: any) => {
307
286
  case "Thought":
308
287
  elements = buildThoughtOfTheDay(config, componentScope);
309
288
  break;
289
+ case "Image":
290
+ elements = buildImage(config, componentScope);
291
+ break;
292
+ case "Camera":
293
+ elements = buildCamera(config, componentScope)
294
+ break;
295
+ case "PdfViewer":
296
+ elements = buildPdfViewer(config, componentScope);
310
297
  break;
311
298
  default:
312
299
  schema = {
@@ -319,7 +306,17 @@ const buildUiSchema = (config: any, store?: any) => {
319
306
 
320
307
  if (config?.elements) {
321
308
  if (config?.type === "LeaderBoard") {
322
- return elements;
309
+ const rowElements = []
310
+ config.elements.map((cellElem) => {
311
+ const commonProperties = {
312
+ accessorKey: cellElem.name,
313
+ type: cellElem.type === "ColumnGroup" ? "ColumnGroup" : cellElem.columnFormat,
314
+ header: cellElem.label || cellElem.name,
315
+ columnKey: cellElem.columnKey
316
+ }
317
+ rowElements.push({ ...commonProperties })
318
+ })
319
+ elements.elements = rowElements;
323
320
  }
324
321
  else if (config.type == "ColumnGroup") {
325
322
  const sizeMap = {}
@@ -329,12 +326,26 @@ const buildUiSchema = (config: any, store?: any) => {
329
326
  });
330
327
  }
331
328
  elements.elements = config.elements.map((cellElem, elemInd) => {
332
- return {
329
+ const commonProperties = {
333
330
  accessorKey: cellElem.name,
331
+ type: cellElem.type === "ColumnGroup" ? "ColumnGroup" : cellElem.columnFormat,
334
332
  header: cellElem.label || cellElem.name,
335
333
  size: sizeMap[cellElem.name] || 180,
336
- type: cellElem.columnFormat,
337
- elements: cellElem.type == "ColumnGroup" ? cellElem.elements.map((childCellElem) => buildUiSchema(childCellElem, store)) : []
334
+ enableColumnFilter: cellElem.enableFilter === "No" ? false : true,
335
+ columnFilterModeOptions: cellElem.filteringOptions,
336
+ enableSorting: cellElem.enableSorting === "No" ? false : true,
337
+ columnKey: cellElem.columnKey,
338
+ dateFormat: cellElem.dateFormat,
339
+ }
340
+ if (cellElem.type) {
341
+ const tableElem = {
342
+ widget: cellElem.type != "ColumnGroup" ? buildUiSchema(cellElem, store) : undefined,
343
+ ...commonProperties,
344
+ ...(cellElem.type === "ColumnGroup" ? buildUiSchema(cellElem, store) : {})
345
+ }
346
+ return tableElem
347
+ } else {
348
+ return { ...commonProperties }
338
349
  }
339
350
  })
340
351
  } else if (config.type == "Table") {
@@ -351,13 +362,14 @@ const buildUiSchema = (config: any, store?: any) => {
351
362
  config.elements.filter((cellElem, elemInd) => {
352
363
  const commonProperties = {
353
364
  accessorKey: cellElem.name,
354
- type: cellElem.columnFormat,
365
+ type: cellElem.type === "ColumnGroup" ? "ColumnGroup" : cellElem.columnFormat,
355
366
  header: cellElem.label || cellElem.name,
356
367
  size: sizeMap[cellElem.name] || 180,
357
368
  enableColumnFilter: cellElem.enableFilter === "No" ? false : true,
358
369
  columnFilterModeOptions: cellElem.filteringOptions,
359
370
  enableSorting: cellElem.enableSorting === "No" ? false : true,
360
- columnKey: cellElem.columnKey
371
+ columnKey: cellElem.columnKey,
372
+ dateFormat: cellElem.dateFormat,
361
373
  }
362
374
  if (cellElem.type) {
363
375
  if (cellElem.elementType == "action") {
@@ -367,14 +379,13 @@ const buildUiSchema = (config: any, store?: any) => {
367
379
  }
368
380
  if (cellElem.elementType == "tableHeader") {
369
381
  const headerElem = buildUiSchema(cellElem, store);
370
- tableHeaderElements.push({widget:headerElem});
382
+ tableHeaderElements.push({ widget: headerElem });
371
383
  return false;
372
384
  }
373
385
  const tableElem = {
374
386
  widget: cellElem.type != "ColumnGroup" ? buildUiSchema(cellElem, store) : undefined,
375
- elements: cellElem.type == "ColumnGroup" ? cellElem.elements.map((childCellElem) => buildUiSchema(childCellElem, store)) : [],
376
- ...commonProperties
377
-
387
+ ...commonProperties,
388
+ ...(cellElem.type === "ColumnGroup" ? buildUiSchema(cellElem, store) : {})
378
389
  }
379
390
  rowElements.push(tableElem)
380
391
  } else {
@@ -386,18 +397,17 @@ const buildUiSchema = (config: any, store?: any) => {
386
397
  elements.config.action = tableActionElement;
387
398
  elements.config.main.headerIcons.elements = tableHeaderElements;
388
399
  }
389
-
390
- else if (config.type == "Array") {
391
- elements.options.detail.elements = config.elements.map((e: any, elemInd: number) => {
392
- return buildUiSchema(e, store)
393
- });
394
- }
395
400
  else {
396
401
  elements.elements = config.elements.map((e: any, elemInd: number) => {
397
402
  return buildUiSchema(e, store)
398
403
  });
399
404
  }
400
405
  }
406
+ if (config.tabLabelElements) {
407
+ elements.tabLabelElements = config.tabLabelElements.map((e: any, elemInd: number) => {
408
+ return buildUiSchema(e, store)
409
+ });
410
+ }
401
411
  return elements;
402
412
  }
403
413
 
@@ -16,6 +16,12 @@ export const buildUploadFile = (config, componentScope) => {
16
16
  if (config.required) {
17
17
  UploadFile.config.main.required = true;
18
18
  }
19
+ if (config.toolTip) {
20
+ UploadFile.config.main.toolTip = config.toolTip;
21
+ }
22
+ if (config.toolTipPosition) {
23
+ UploadFile.config.main.toolTipPosition = config.toolTipPosition;
24
+ }
19
25
  UploadFile.config.main.errorMessage = config.errorMessage;
20
26
  return UploadFile;
21
27
  }
@@ -8,14 +8,19 @@ export const buildWrapperSection = (config, componentScope) => {
8
8
  wrapper.config.main.label = config.label;
9
9
  wrapper.config.main.divider = config.divider === "YES" ? true : false;
10
10
  wrapper.config.main.isAccordion = config.isAccordion === "No" ? false : true;
11
- if(config.defaultStyle){
12
- wrapper.config.defaultStyle = config.defaultStyle ==="YES" ? true : false;
11
+ wrapper.config.main.defaultClosed = config.defaultClosed === "YES" ? true : false;
12
+ wrapper.config.main.icon = config.iconUrl;
13
+ wrapper.config.main.rowSpacing = Number(config.rowSpacing);
14
+ wrapper.config.main.columnSpacing = Number(config.columnSpacing);
15
+ wrapper.config.main.spacing = Number(config.spacing);
16
+ if (config.defaultStyle) {
17
+ wrapper.config.defaultStyle = config.defaultStyle === "YES" ? true : false;
13
18
  }
14
19
  if (config.style) {
15
20
  wrapper.config.style = JSON.parse(config.style)
16
21
  }
17
22
  if (config.layout) {
18
- wrapper.config.layout = createLayoutFormat(config.layout)
23
+ wrapper.config.layout = createLayoutFormat(config.layout, config.type)
19
24
  }
20
25
  return wrapper;
21
26
  }
@@ -49,9 +49,6 @@ export const APISection = {
49
49
  {
50
50
  type: "Control",
51
51
  scope: "#/properties/headers",
52
- options: {
53
- widget: "Array",
54
- },
55
52
  config: {
56
53
  layout: 12,
57
54
  main: {
@@ -113,9 +110,6 @@ export const APISection = {
113
110
  {
114
111
  type: "Control",
115
112
  scope: "#/properties/body",
116
- options: {
117
- widget: "Array",
118
- },
119
113
  config: {
120
114
  layout: 12,
121
115
  main: {
@@ -2,7 +2,7 @@ export const ArrayLayout = {
2
2
  "type": "Control",
3
3
  "scope": "#/properties/adjustments",
4
4
  "config": {
5
- "layout": 11.5
5
+ "layout": 12
6
6
  },
7
7
  "options": {
8
8
  "name": "adjustments",
@@ -6,8 +6,11 @@
6
6
  widget: "Box",
7
7
  },
8
8
 
9
- config: { layout: 12,
10
- main: {},
9
+ config: { layout: { xs: 6, sm: 6, md: 4, lg: 3 },
10
+ main: {
11
+ iconName: "",
12
+ onClick: "onClick",
13
+ },
11
14
  style:{
12
15
  // fontWeight:300
13
16
  }