impaktapps-jsonforms 5.426.1244-alpha.6 → 5.426.1244-alpha.60

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 (98) hide show
  1. package/dist/impaktapps-jsonforms.d.ts +1 -0
  2. package/dist/impaktapps-jsonforms.es.js +113915 -0
  3. package/dist/impaktapps-jsonforms.es.js.map +1 -0
  4. package/dist/impaktapps-jsonforms.umd.js +535 -0
  5. package/dist/impaktapps-jsonforms.umd.js.map +1 -0
  6. package/dist/src/impaktapps-jsonforms/core/App/App.d.ts +3 -0
  7. package/dist/src/impaktapps-jsonforms/core/App/Home.d.ts +5 -0
  8. package/dist/src/impaktapps-jsonforms/core/AppWithoutRouter.d.ts +3 -0
  9. package/dist/src/impaktapps-jsonforms/lib/index.d.ts +5 -0
  10. package/dist/src/impaktapps-jsonforms/renderers/common/ButtonIcon.d.ts +1 -0
  11. package/dist/src/impaktapps-jsonforms/renderers/common/ComponentWrapper.d.ts +2 -0
  12. package/dist/src/impaktapps-jsonforms/renderers/common/Helpertext.d.ts +2 -0
  13. package/dist/src/impaktapps-jsonforms/renderers/common/LoaderInfo.d.ts +5 -0
  14. package/dist/src/impaktapps-jsonforms/renderers/common/Skeleton.d.ts +2 -0
  15. package/dist/src/impaktapps-jsonforms/renderers/common/const.d.ts +2 -0
  16. package/dist/src/impaktapps-jsonforms/renderers/common/fileDownloadFunction.d.ts +3 -0
  17. package/dist/src/impaktapps-jsonforms/renderers/common/formattingAndMasking.d.ts +9 -0
  18. package/dist/src/impaktapps-jsonforms/renderers/common/getComponentProps.d.ts +8 -0
  19. package/dist/src/impaktapps-jsonforms/renderers/common/getHiddenKeys.d.ts +2 -0
  20. package/dist/src/impaktapps-jsonforms/renderers/components/AutoComplete.d.ts +3 -0
  21. package/dist/src/impaktapps-jsonforms/renderers/components/Button.d.ts +4 -0
  22. package/dist/src/impaktapps-jsonforms/renderers/components/Checkbox.d.ts +3 -0
  23. package/dist/src/impaktapps-jsonforms/renderers/components/DataGrid.d.ts +3 -0
  24. package/dist/src/impaktapps-jsonforms/renderers/components/Date.d.ts +4 -0
  25. package/dist/src/impaktapps-jsonforms/renderers/components/DownloadFile.d.ts +4 -0
  26. package/dist/src/impaktapps-jsonforms/renderers/components/EmptyBox.d.ts +4 -0
  27. package/dist/src/impaktapps-jsonforms/renderers/components/FileInput.d.ts +3 -0
  28. package/dist/src/impaktapps-jsonforms/renderers/components/Graph.d.ts +3 -0
  29. package/dist/src/impaktapps-jsonforms/renderers/components/IconsButton.d.ts +4 -0
  30. package/dist/src/impaktapps-jsonforms/renderers/components/Image.d.ts +3 -0
  31. package/dist/src/impaktapps-jsonforms/renderers/components/Input.d.ts +4 -0
  32. package/dist/src/impaktapps-jsonforms/renderers/components/InputSlider.d.ts +2 -0
  33. package/dist/src/impaktapps-jsonforms/renderers/components/Label.d.ts +4 -0
  34. package/dist/src/impaktapps-jsonforms/renderers/components/Notify.d.ts +3 -0
  35. package/dist/src/impaktapps-jsonforms/renderers/components/Password.d.ts +4 -0
  36. package/dist/src/impaktapps-jsonforms/renderers/components/PopUp.d.ts +3 -0
  37. package/dist/src/impaktapps-jsonforms/renderers/components/ProgressBar.d.ts +2 -0
  38. package/dist/src/impaktapps-jsonforms/renderers/components/Radio.d.ts +4 -0
  39. package/dist/src/impaktapps-jsonforms/renderers/components/RankCard.d.ts +3 -0
  40. package/dist/src/impaktapps-jsonforms/renderers/components/RollAndDice.d.ts +3 -0
  41. package/dist/src/impaktapps-jsonforms/renderers/components/RunningBoyProgressBar.d.ts +3 -0
  42. package/dist/src/impaktapps-jsonforms/renderers/components/SVG.d.ts +3 -0
  43. package/dist/src/impaktapps-jsonforms/renderers/components/Slider.d.ts +3 -0
  44. package/dist/src/impaktapps-jsonforms/renderers/components/SpeedoMeter.d.ts +2 -0
  45. package/dist/src/impaktapps-jsonforms/renderers/components/Stepper.d.ts +3 -0
  46. package/dist/src/impaktapps-jsonforms/renderers/components/Table.d.ts +7 -0
  47. package/dist/src/impaktapps-jsonforms/renderers/components/TextArea.d.ts +3 -0
  48. package/dist/src/impaktapps-jsonforms/renderers/components/Timer.d.ts +3 -0
  49. package/dist/src/impaktapps-jsonforms/renderers/components/UploadFile.d.ts +4 -0
  50. package/dist/src/impaktapps-jsonforms/renderers/components/Wrapper.d.ts +3 -0
  51. package/dist/src/impaktapps-jsonforms/renderers/context/Context.d.ts +3 -0
  52. package/dist/src/impaktapps-jsonforms/renderers/context/impaktappsJsonformsStore.d.ts +59 -0
  53. package/dist/src/impaktapps-jsonforms/renderers/context/useImpaktappsJsonformsStore.d.ts +4 -0
  54. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlAutoComplete.d.ts +3 -0
  55. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlButton.d.ts +3 -0
  56. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlDate.d.ts +3 -0
  57. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlDownloadFile.d.ts +3 -0
  58. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlEmptyBox.d.ts +3 -0
  59. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlGraph.d.ts +3 -0
  60. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlIconButton.d.ts +3 -0
  61. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlInput.d.ts +3 -0
  62. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlInputSlider.d.ts +3 -0
  63. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlLabel.d.ts +3 -0
  64. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlNotify.d.ts +3 -0
  65. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlPassword.d.ts +3 -0
  66. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlProgressBar.d.ts +3 -0
  67. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlRadio.d.ts +3 -0
  68. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlSpeedoMeter.d.ts +3 -0
  69. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlTimer.d.ts +3 -0
  70. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlUploadFile.d.ts +3 -0
  71. package/dist/src/impaktapps-jsonforms/renderers/controls/ControlWrapper.d.ts +3 -0
  72. package/dist/src/impaktapps-jsonforms/renderers/index.d.ts +2 -0
  73. package/dist/src/impaktapps-jsonforms/renderers/interface/inputfieldProps.d.ts +39 -0
  74. package/dist/src/impaktapps-jsonforms/renderers/layouts/Horizontal.d.ts +9 -0
  75. package/dist/src/impaktapps-jsonforms/renderers/layouts/HorizontalControl.d.ts +10 -0
  76. package/dist/src/impaktapps-jsonforms/renderers/layouts/Slider.d.ts +3 -0
  77. package/dist/src/impaktapps-jsonforms/renderers/layouts/SliderControl.d.ts +11 -0
  78. package/dist/src/impaktapps-jsonforms/renderers/layouts/Tab.d.ts +4 -0
  79. package/dist/src/impaktapps-jsonforms/renderers/layouts/TabControl.d.ts +11 -0
  80. package/dist/src/impaktapps-jsonforms/renderers/layouts/Wrapper.d.ts +3 -0
  81. package/dist/src/impaktapps-jsonforms/renderers/layouts/WrapperControl.d.ts +11 -0
  82. package/dist/src/impaktapps-jsonforms/renderers/permissions/Permission.d.ts +7 -0
  83. package/dist/src/impaktapps-jsonforms/renderers/permissions/PermissionUtils.d.ts +3 -0
  84. package/dist/src/impaktapps-jsonforms/renderers/permissions/getFieldName.d.ts +1 -0
  85. package/dist/src/impaktapps-jsonforms/renderers/permissions/getMatchedPermissions.d.ts +3 -0
  86. package/dist/src/impaktapps-jsonforms/renderers/rankTester/rankTester.d.ts +3 -0
  87. package/dist/src/impaktapps-jsonforms/styles/StyleFactory.d.ts +26 -0
  88. package/dist/src/vite-env.d.ts +1 -0
  89. package/dist/style.css +1 -0
  90. package/package.json +1 -1
  91. package/src/impaktapps-jsonforms/renderers/common/ButtonIcon.tsx +35 -4
  92. package/src/impaktapps-jsonforms/renderers/components/Checkbox.tsx +5 -5
  93. package/src/impaktapps-jsonforms/renderers/components/Input.tsx +30 -3
  94. package/src/impaktapps-jsonforms/renderers/components/Label.tsx +19 -2
  95. package/src/impaktapps-jsonforms/renderers/components/Password.tsx +9 -2
  96. package/src/impaktapps-jsonforms/renderers/components/SVG.tsx +46 -0
  97. package/src/impaktapps-jsonforms/renderers/index.ts +2 -0
  98. package/src/impaktapps-jsonforms/styles/StyleFactory.tsx +22 -16
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ .slick-arrow{font-size:24px;color:red;background-color:transparent;border:none;outline:none}.slick-arrow:hover{color:#0f0}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #0bf;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports (outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports (outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "impaktapps-jsonforms",
3
- "version": "5.426.1244-alpha.6",
3
+ "version": "5.426.1244-alpha.60",
4
4
  "scripts": {
5
5
  "dev": "vite",
6
6
  "build": "tsc && vite build",
@@ -24,6 +24,9 @@ import CloseIcon from '@mui/icons-material/Close';
24
24
  import ReplayIcon from '@mui/icons-material/Replay';
25
25
  import ContentCopyIcon from '@mui/icons-material/ContentCopy';
26
26
  import AlarmIcon from '@mui/icons-material/Alarm';
27
+ import LockIcon from '@mui/icons-material/Lock';
28
+ import DraftsIcon from '@mui/icons-material/Drafts';
29
+ import PermPhoneMsgIcon from '@mui/icons-material/PermPhoneMsg';
27
30
  export function ButtonIcon(iconName: string, data: any) {
28
31
  switch (iconName) {
29
32
  case "AlarmIcon":
@@ -36,11 +39,11 @@ export function ButtonIcon(iconName: string, data: any) {
36
39
  return <FileCopyIcon sx={{ ...data?.iconStyle }} />;
37
40
  case "PauseIcon":
38
41
  return <PauseIcon sx={{ ...data?.iconStyle }} />;
39
- case "PlayIcon":
42
+ case "PlayIcon":
40
43
  return <PlayArrowIcon sx={{ ...data?.iconStyle }} />;
41
- case "CloseIcon":
44
+ case "CloseIcon":
42
45
  return <CloseIcon sx={{ ...data?.iconStyle }} />;
43
- case "ReplayIcon":
46
+ case "ReplayIcon":
44
47
  return <ReplayIcon sx={{ ...data?.iconStyle }} />;
45
48
  case "DeleteIcon":
46
49
  return <DeleteIcon sx={{ ...data?.iconStyle }} />;
@@ -76,8 +79,36 @@ export function ButtonIcon(iconName: string, data: any) {
76
79
  return <RefreshOutlinedIcon sx={{ ...data?.iconStyle }} />;
77
80
  case "DownloadIcon":
78
81
  return <DownloadIcon sx={{ ...data?.iconStyle }} />;
79
- case "SearchIcon":
82
+ case "SearchIcon":
80
83
  return <SearchIcon sx={{ ...data?.iconStyle }} />;
84
+ case "LockIcon":
85
+ return <LockIcon sx={{ ...data?.iconStyle }} />
86
+ case "DraftsIcon":
87
+ return <DraftsIcon sx={{ ...data?.iconStyle }} />
88
+ case "PermPhoneMsgIcon":
89
+ return <PermPhoneMsgIcon sx={{ ...data?.iconStyle }} />
90
+ case "PrevIcon":
91
+ return (
92
+ <svg fill="inherit" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
93
+ viewBox="0 0 473.654 473.654" enable-background="new 0 0 473.654 473.654" >
94
+ <circle cx="236.827" cy="236.827" r="236.827" />
95
+ <path fill="#FFFFFF" d="M338.465,207.969c-43.487,0-86.975,0-130.459,0c11.08-11.08,22.161-22.161,33.241-33.245
96
+ c25.56-25.56-14.259-65.084-39.883-39.456c-27.011,27.011-54.018,54.022-81.029,81.033c-10.841,10.841-10.549,28.907,0.213,39.669
97
+ c27.011,27.007,54.018,54.018,81.029,81.025c25.56,25.56,65.084-14.259,39.456-39.883c-11.013-11.013-22.026-22.026-33.039-33.035
98
+ c43.357,0,86.713,0,130.066,0C374.283,264.077,374.604,207.969,338.465,207.969z"/>
99
+
100
+ </svg>
101
+ );
102
+ case "VerifiedIcon":
103
+ return (
104
+ <svg id="Layer_1" height="inherit" viewBox="0 0 512 512" width="inherit" xmlns="http://www.w3.org/2000/svg" data-name="Layer 1">
105
+ <g id="VERIFIED">
106
+ <path fill={data?.iconStyle?.color1} d="m490.11 205.16q-15.94-15.43-31.94-31.09-.45-21.69-1.13-43.36c-.6-19.35-9-37.81-23.31-52.15s-32.87-22.65-52.24-23.26q-21.72-.67-43.44-1.12-15.66-15.94-31.05-31.84c-13.89-14.22-31.87-22.17-51-22.16s-37.12 8-50.92 22.16q-15.47 15.93-31.15 31.91-21.72.44-43.43 1.12c-39.88 1.36-74.2 35.63-75.56 75.4q-.67 21.69-1.13 43.36-16 15.65-31.94 31.08c-14.19 13.79-22.16 31.79-22.16 50.79s7.92 37 22.16 50.84q15.94 15.42 32 31.05.43 21.69 1.12 43.39c.61 19.38 9 37.79 23.3 52.15s32.85 22.65 52.25 23.25q21.72.69 43.44 1.13 15.66 15.93 31.11 31.82c13.83 14.22 31.83 22.17 51 22.16s37.12-7.94 51-22.15q15.45-15.92 31.12-31.88 21.72-.45 43.43-1.13c39.87-1.35 74.19-35.62 75.55-75.4q.68-21.67 1.12-43.34 16-15.66 31.95-31.09c14.19-13.78 22.16-31.76 22.16-50.83s-8.1-36.97-22.31-50.81z" />
107
+ <path fill={data?.iconStyle?.color2} d="m338.05 54.18q-15.66-15.94-31.05-31.84c-13.89-14.22-31.87-22.17-51-22.16s-37.12 8-50.92 22.16q-15.47 15.93-31.15 31.91-21.72.44-43.43 1.12c-39.88 1.36-74.2 35.63-75.56 75.4q-.67 21.69-1.13 43.36-16 15.65-31.94 31.08c-14.19 13.79-22.16 31.79-22.16 50.79s7.92 37 22.16 50.84q15.94 15.42 32 31.05.38 18.74 1 37.48a280.33 280.33 0 0 0 53.39 5.12c153.9 0 278.66-124.76 278.66-278.66a280.42 280.42 0 0 0 -3.92-46.45l-1.46-.08q-21.77-.67-43.49-1.12z" />
108
+ <path d="m383.44 223.57c-43.18 44.87-87.05 90.74-130.19 136.24a37.56 37.56 0 0 1 -27.25 11.78h-.17a38.25 38.25 0 0 1 -27.3-11.72q-34.6-35.73-69.42-71.2a37.36 37.36 0 0 1 .76-53.43 38.37 38.37 0 0 1 54 .67q20.69 21.21 41.43 42.54c34.25-35.89 68.67-72 102.55-107.54 14.38-15.13 38.37-15.38 53.79-.78s16.29 38.39 1.8 53.44z" fill="#fff" />
109
+ </g>
110
+ </svg>
111
+ );
81
112
  case "ExceptionIcon":
82
113
  return (
83
114
  <svg
@@ -26,11 +26,11 @@ function CheckBox(props: inputProps) {
26
26
  key={uuidv4()}
27
27
  checked={data}
28
28
  sx={{
29
- ...theme.InputFieldStyle, ...uischema?.config?.style,
30
- color: theme.myTheme.palette.action.active,
31
- "&.Mui-checked": {
32
- color: theme.myTheme.palette.action.active,
33
- },
29
+ ...theme.CheckBoxStyle, ...uischema?.config?.style,
30
+ // color: theme.myTheme.palette.action.active,
31
+ // "&.Mui-checked": {
32
+ // color: theme.myTheme.palette.action.active,
33
+ // },
34
34
  }}
35
35
  />
36
36
  }
@@ -12,6 +12,8 @@ import {
12
12
  formatAndMaskingProvider,
13
13
  prepareMaskingAndFormating,
14
14
  } from "../common/formattingAndMasking";
15
+ import { ButtonIcon } from "../common/ButtonIcon";
16
+ import { useJsonForms } from "@jsonforms/react";
15
17
  const Input = memo(function (props: inputProps) {
16
18
  const {
17
19
  data,
@@ -43,6 +45,14 @@ const Input = memo(function (props: inputProps) {
43
45
  );
44
46
  const onPointerEnter = () => setShowAdornment(true);
45
47
  const onPointerLeave = () => setShowAdornment(false);
48
+ const ctx = useJsonForms();
49
+ const callServiceProvider = (event: any) => {
50
+ serviceProvider(ctx, uischemaData, {
51
+ event,
52
+ path,
53
+ ...uischemaData.additionalData,
54
+ });
55
+ };
46
56
 
47
57
  useEffect(() => {
48
58
  if (data && uischemaData.formatStrArray && count === 0) {
@@ -92,15 +102,24 @@ const Input = memo(function (props: inputProps) {
92
102
  )}
93
103
  >
94
104
  <TextField
105
+ id={uischemaData?.id}
95
106
  key={path}
96
107
  required={required}
97
108
  autoFocus={uischemaData?.autoFocus}
98
109
  fullWidth
99
110
  sx={{ ...theme.InputFieldStyle, ...uischema?.config?.style }}
100
111
  value={uischemaData.formatStrArray ? maskedValue : inputText}
101
- onKeyDown={(e) => handleKeyDown(e)}
112
+ onKeyDown={(e) =>{
113
+ if(uischemaData.onKeyDown)
114
+ callServiceProvider(e)
115
+ else
116
+ handleKeyDown(e)
117
+ }}
102
118
  onChange={(e) => {
103
- handleInputChange(e);
119
+ if(uischemaData.onChange)
120
+ callServiceProvider(e)
121
+ else
122
+ handleInputChange(e);
104
123
  }}
105
124
  placeholder={uischemaData.placeholder}
106
125
  disabled={
@@ -113,13 +132,21 @@ const Input = memo(function (props: inputProps) {
113
132
  }
114
133
  onPointerEnter={(event) => onPointerEnter()}
115
134
  onPointerLeave={(event) => onPointerLeave()}
135
+ inputProps={uischemaData?.inputProps}
116
136
  InputProps={{
137
+ startAdornment: (<InputAdornment
138
+ position="start"
139
+ >
140
+ {uischemaData?.startAdornmentIcon
141
+ ? ButtonIcon(uischemaData?.startAdornmentIcon, uischemaData)
142
+ : <></>}
143
+ </InputAdornment>),
117
144
  endAdornment: (
118
145
  <InputAdornment
119
146
  position="end"
120
147
  style={{
121
148
  display:
122
- !showAdornment || !enabled || data === undefined
149
+ !showAdornment || !enabled || data === undefined || uischemaData?.hideEndAdornment
123
150
  ? "none"
124
151
  : "flex",
125
152
  position: "absolute",
@@ -6,14 +6,24 @@ import { getFieldName } from "../permissions/getFieldName";
6
6
  import { useJsonForms } from "@jsonforms/react";
7
7
  import ComponentWrapper from "../common/ComponentWrapper";
8
8
  import { getComponentProps } from "../common/getComponentProps";
9
+ import { ButtonIcon } from "../common/ButtonIcon";
9
10
 
10
11
  const Label = memo(function ({ uischema, path, data,schema,rootSchema }: inputProps) {
11
12
  const uischemaData = uischema?.config?.main;
12
- const { pageName, permissions, theme } = useContext(DataContext);
13
+ const { serviceProvider, pageName, permissions, theme } = useContext(DataContext);
14
+ const ctx = useJsonForms();
13
15
  const fieldName = getFieldName(path);
16
+ const callServiceProvider = (event: any) => {
17
+ serviceProvider(ctx, uischemaData, {
18
+ event,
19
+ path,
20
+ ...uischemaData.additionalData
21
+ });
22
+ };
14
23
  return (
15
24
  <ComponentWrapper
16
25
  {...getComponentProps(`${pageName}:${fieldName}`,permissions,schema,rootSchema)} >
26
+
17
27
  <Typography
18
28
 
19
29
  sx={{
@@ -22,8 +32,15 @@ const Label = memo(function ({ uischema, path, data,schema,rootSchema }: inputPr
22
32
  ...uischema?.config?.style,
23
33
  }}
24
34
  variant={uischemaData?.variant}
35
+ onClick={(e) => callServiceProvider(e)}
36
+ paragraph={uischemaData?.paragraph}
25
37
  >
26
- {data ? data : uischemaData?.heading}
38
+ {uischemaData?.isSvgIcon ?
39
+ (ButtonIcon(uischemaData?.iconName, uischema.config))
40
+ : uischemaData?.isInputLabel ?
41
+ (<label htmlFor={uischemaData?.htmlFor} style={{ ...uischema?.config?.style,}}>{data ? data : uischemaData?.heading}</label>)
42
+ : (data ? data : uischemaData?.heading)
43
+ }
27
44
  </Typography>
28
45
  </ComponentWrapper>
29
46
  );
@@ -15,6 +15,7 @@ import { inputProps } from "../interface/inputfieldProps";
15
15
  import { useDebouncedChange } from "@jsonforms/material-renderers";
16
16
  import { Visibility, VisibilityOff } from "@mui/icons-material";
17
17
  import { getComponentProps } from "../common/getComponentProps";
18
+ import { ButtonIcon } from "../common/ButtonIcon";
18
19
  const Password = memo(function (props: inputProps) {
19
20
  const { data, required, errors, schema,rootSchema, uischema, path, handleChange } =
20
21
  props;
@@ -39,7 +40,7 @@ const Password = memo(function (props: inputProps) {
39
40
  <ComponentWrapper
40
41
  {...getComponentProps(`${pageName}:${fieldName}`,permissions,schema,rootSchema)} >
41
42
  <TextField
42
-
43
+ id={uischemaData?.id}
43
44
  required={required}
44
45
  autoFocus={uischemaData?.autoFocus}
45
46
  fullWidth
@@ -52,7 +53,13 @@ const Password = memo(function (props: inputProps) {
52
53
  label={uischemaData?.label}
53
54
  size={uischemaData?.size || "medium"}
54
55
  type={showPassword ? "text" : "password"}
55
- InputProps={{
56
+ InputProps={{startAdornment: (<InputAdornment
57
+ position="start"
58
+ >
59
+ {uischemaData?.startAdornmentIcon
60
+ ? ButtonIcon(uischemaData?.startAdornmentIcon, uischemaData)
61
+ : <></>}
62
+ </InputAdornment>),
56
63
  endAdornment: (
57
64
  <InputAdornment position="end">
58
65
  <Tooltip title={showPassword ? "Hide Password" : "Show Password"}>
@@ -0,0 +1,46 @@
1
+ import { memo, useContext, useEffect, useState } from "react";
2
+ import { Box } from "@mui/material";
3
+ import { DataContext } from "../context/Context";
4
+ import { inputProps } from "../interface/inputfieldProps";
5
+ import { useJsonForms, withJsonFormsControlProps } from "@jsonforms/react";
6
+ import ComponentWrapper from "../common/ComponentWrapper";
7
+ import { getFieldName } from "../permissions/getFieldName";
8
+ import { getComponentProps } from "../common/getComponentProps";
9
+
10
+ const SVG = memo(function ({ uischema, path, data,schema,rootSchema }: inputProps) {
11
+ const uischemaData = uischema?.config?.main;
12
+ const { pageName, permissions, theme, serviceProvider} = useContext(DataContext);
13
+ const ctx = useJsonForms();
14
+ const fieldName = getFieldName(path);
15
+ const callServiceProvider = async (loadSvg: String) => {
16
+ const result = await serviceProvider(ctx, uischemaData, {
17
+ event: { _reactName: loadSvg },
18
+ path,
19
+ ...uischemaData.additionalData
20
+ });
21
+ return result
22
+ };
23
+
24
+ const [svgData, setSvgData] = useState(null)
25
+
26
+ useEffect(() => {
27
+ const fetchData = async () => {
28
+ try {
29
+ const result = await callServiceProvider("loadSvg");
30
+ setSvgData(result);
31
+ } catch (error) {
32
+ console.error('Error fetching SVG data:', error);
33
+ }
34
+ };
35
+
36
+ fetchData();
37
+ }, []);
38
+
39
+ return (
40
+ <ComponentWrapper
41
+ {...getComponentProps(`${pageName}:${fieldName}`,permissions,schema,rootSchema)}>
42
+ <Box dangerouslySetInnerHTML={{ __html: svgData }} style={{...uischema?.config?.style}}/>
43
+ </ComponentWrapper>
44
+ );
45
+ });
46
+ export default withJsonFormsControlProps(SVG);
@@ -37,6 +37,7 @@ import PopUp from "./components/PopUp";
37
37
  import Stepper from "./components/Stepper";
38
38
  import DataGrid from "./components/DataGrid";
39
39
  import StepperFun from "./components/Stepper"
40
+ import SVG from "./components/SVG";
40
41
  export const renderers:any = [
41
42
  ...materialRenderers,
42
43
  {
@@ -77,5 +78,6 @@ export const renderers:any = [
77
78
  { tester: rankTester("PopUp"), renderer: PopUp},
78
79
  { tester: rankTester("Stepper"), renderer:Stepper },
79
80
  { tester: rankTester("DataGrid"), renderer:DataGrid },
81
+ { tester: rankTester("SVG"), renderer:SVG },
80
82
  ];
81
83
  export default renderers;
@@ -67,7 +67,7 @@ export const useTheme = (objProvidedStyle: any) => {
67
67
  padding: myTheme.palette.shape.paddingInput,
68
68
  },
69
69
  "& .MuiInputLabel-root": {
70
- color: myTheme.palette.text.inputLabel,
70
+ color: myTheme.palette.text.inputLabel,
71
71
  fontWeight: myTheme.palette.typography.FontWeightlight,
72
72
  fontFamily: myTheme.palette.typography.fontFamily,
73
73
  fontSize: myTheme.palette.typography.fontSize,
@@ -89,9 +89,9 @@ export const useTheme = (objProvidedStyle: any) => {
89
89
  RadioStyle: objProvidedStyle?.RadioStyle || {
90
90
  borderRadius: myTheme.palette.shape.borderRadius,
91
91
  padding: "4px",
92
- border: `0.5px solid ${ myTheme.palette.text.radioBorder}`,
92
+ border: `0.5px solid ${myTheme.palette.text.radioBorder}`,
93
93
  background: myTheme.palette.background.input,
94
- color:myTheme.palette.text.input,
94
+ color: myTheme.palette.text.input,
95
95
  fontFamily: "inherit",
96
96
  "& .MuiTypography-body1": {
97
97
  fontSize: "14px", // custom label font size
@@ -100,9 +100,9 @@ export const useTheme = (objProvidedStyle: any) => {
100
100
  "& .MuiRadio-root": {
101
101
  color: myTheme.palette.text.primary,
102
102
  },
103
-
103
+
104
104
  "&:hover": {
105
- border: `0.8px solid ${ myTheme.palette.action.hover}`,
105
+ border: `0.8px solid ${myTheme.palette.action.hover}`,
106
106
  },
107
107
  "&:active": {
108
108
  border: `2.5px solid ${myTheme.palette.action.focus}`,
@@ -160,7 +160,7 @@ export const useTheme = (objProvidedStyle: any) => {
160
160
  fontWeight: "500",
161
161
  fontSize: "20px",
162
162
  background: "inherit",
163
- color: myTheme.palette.text.primary,
163
+ color: myTheme.palette.text.primary,
164
164
  },
165
165
  Buttonstyle: objProvidedStyle?.Buttonstyle || {
166
166
  borderRadius: "5px",
@@ -185,7 +185,7 @@ export const useTheme = (objProvidedStyle: any) => {
185
185
  background: myTheme.palette.background.iconButton,
186
186
  borderRadius: "10px",
187
187
  "&:hover": {
188
- color:myTheme.palette.action.iconButtonHoverColor,
188
+ color: myTheme.palette.action.iconButtonHoverColor,
189
189
  background: myTheme.palette.action.focusBackground
190
190
  },
191
191
  },
@@ -193,15 +193,15 @@ export const useTheme = (objProvidedStyle: any) => {
193
193
  height: "auto",
194
194
  width: "98%",
195
195
  margin: "15px auto ",
196
- color:myTheme.palette.text.primary,
197
- background:myTheme.palette.secondary.main,
196
+ color: myTheme.palette.text.primary,
197
+ background: myTheme.palette.secondary.main,
198
198
  borderRadius: "20px",
199
199
  },
200
200
  TabStyle: objProvidedStyle?.TabStyle || {
201
201
  fontWeight: myTheme.palette.typography.fontWeightMedium,
202
202
  fontFamily: "inherit",
203
- color: myTheme.palette.text.input,
204
- background:myTheme.palette.background.heading,
203
+ color: myTheme.palette.text.input,
204
+ background: myTheme.palette.background.heading,
205
205
  "&:hover": {
206
206
  color: myTheme.palette.action.hover,
207
207
  },
@@ -210,7 +210,7 @@ export const useTheme = (objProvidedStyle: any) => {
210
210
  },
211
211
  },
212
212
  TabsStyle: objProvidedStyle?.TabsStyle || {
213
- background:myTheme.palette.background.heading,
213
+ background: myTheme.palette.background.heading,
214
214
  fontFamily: "roboto",
215
215
  borderRadius: "20px 20px 0 0",
216
216
  "& .MuiTabs-flexContainer": {
@@ -218,7 +218,7 @@ export const useTheme = (objProvidedStyle: any) => {
218
218
  },
219
219
  },
220
220
  TabContainerStyle: objProvidedStyle?.TabContainerStyle || {
221
- background:myTheme.palette.secondary.main,
221
+ background: myTheme.palette.secondary.main,
222
222
  fontFamily: "roboto",
223
223
  borderRadius: "20px",
224
224
  width: "98%",
@@ -228,15 +228,15 @@ export const useTheme = (objProvidedStyle: any) => {
228
228
  DataGridStyle: objProvidedStyle?.DataGridStyle || {
229
229
  fontFamily: "roboto",
230
230
  borderRadius: myTheme.palette.shape.borderRadius,
231
- background:myTheme.palette.secondary.main,
231
+ background: myTheme.palette.secondary.main,
232
232
  },
233
233
  pageStyle: objProvidedStyle?.pageStyle || {
234
- boxSizing:"border-box",
234
+ boxSizing: "border-box",
235
235
  background: myTheme.palette.primary.main,
236
236
  minHeight: "100vh",
237
237
  margin: "1px 20px 20px 10px",
238
238
  height: "auto",
239
- padding:"10px 20px 20px 10px",
239
+ padding: "10px 20px 20px 10px",
240
240
  borderRadius: myTheme.palette.shape.borderRadius,
241
241
  fontFamily: myTheme.palette.typography.fontFamily,
242
242
  },
@@ -244,6 +244,12 @@ export const useTheme = (objProvidedStyle: any) => {
244
244
  width: "100%",
245
245
  paddingTop: "20px",
246
246
  },
247
+ CheckBoxStyle: objProvidedStyle?.CheckBoxStyle || {
248
+ color: myTheme.palette.action.active,
249
+ "&.Mui-checked": {
250
+ color: myTheme.palette.action.active,
251
+ },
252
+ },
247
253
  InputFieldStyle: objProvidedStyle?.InputFieldStyle || InputFieldStyle,
248
254
  useStyles: makeStyles({
249
255
  dateStyle: InputFieldStyle,