@asaleh37/ui-base 26.2.16 → 27.5.26

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 (176) hide show
  1. package/.env.development +1 -1
  2. package/.github/workflows/publish-npm.yml +49 -49
  3. package/README.md +51 -51
  4. package/__ODockerfile +14 -14
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +1 -1
  8. package/dist/index.mjs.map +1 -1
  9. package/eslint.config.js +29 -29
  10. package/index.html +20 -20
  11. package/package.json +122 -122
  12. package/public/manifest.json +21 -21
  13. package/rollup.config-1748377725725.cjs +50 -50
  14. package/rollup.config.js +45 -45
  15. package/src/components/App.tsx +155 -155
  16. package/src/components/BaseApp.tsx +75 -75
  17. package/src/components/ExampleTrial.tsx +24 -24
  18. package/src/components/administration/admin/ChangePasswordPanel.tsx +128 -128
  19. package/src/components/administration/admin/CustomPersonGrid.tsx +361 -361
  20. package/src/components/administration/admin/OrgMemberRoleForm.tsx +83 -83
  21. package/src/components/administration/admin/OrgProvidedPersonGrid.tsx +347 -347
  22. package/src/components/administration/admin/OrganizationApplicationModuleGrid.tsx +107 -107
  23. package/src/components/administration/admin/OrganizationGrid.tsx +118 -118
  24. package/src/components/administration/admin/OrganizationMemberGrid.tsx +190 -190
  25. package/src/components/administration/admin/OrganizationMemberRoleGrid.tsx +87 -87
  26. package/src/components/administration/admin/OrganizationRankGrid.tsx +133 -133
  27. package/src/components/administration/admin/OrganizationUnitGrid.tsx +143 -143
  28. package/src/components/administration/admin/OrganizationUnitTypeGrid.tsx +108 -108
  29. package/src/components/administration/admin/PersonGrid.tsx +27 -27
  30. package/src/components/administration/admin/RoleAuthoritiesForm.tsx +82 -82
  31. package/src/components/administration/admin/SystemApplicationAuthorityGrid.tsx +117 -117
  32. package/src/components/administration/admin/SystemApplicationGrid.tsx +83 -83
  33. package/src/components/administration/admin/SystemApplicationModuleGrid.tsx +96 -96
  34. package/src/components/administration/admin/SystemApplicationRoleAuthorityGrid.tsx +75 -75
  35. package/src/components/administration/admin/SystemApplicationRoleGrid.tsx +116 -116
  36. package/src/components/administration/dev/AttachmentConfigGrid.tsx +224 -224
  37. package/src/components/administration/dev/AttachmentGrid.tsx +172 -172
  38. package/src/components/administration/dev/BluePrintGrid.tsx +129 -129
  39. package/src/components/administration/dev/DashboardGrid.tsx +173 -173
  40. package/src/components/administration/dev/DashboardWidgetGrid.tsx +164 -164
  41. package/src/components/administration/dev/DataQueryGrid.tsx +216 -216
  42. package/src/components/administration/dev/DataQueryParameterGrid.tsx +191 -191
  43. package/src/components/administration/dev/DataQueryParametersForm.tsx +84 -84
  44. package/src/components/administration/dev/DatasourceConnectionGrid.tsx +151 -151
  45. package/src/components/administration/dev/EntityParameterGrid.tsx +322 -322
  46. package/src/components/administration/dev/LookupGrid.tsx +120 -120
  47. package/src/components/administration/dev/MailAttachmentGrid.tsx +172 -172
  48. package/src/components/administration/dev/MailBodyGrid.tsx +216 -216
  49. package/src/components/administration/dev/MailNotificationQueueGrid.tsx +245 -245
  50. package/src/components/administration/dev/MailRecipientGrid.tsx +170 -170
  51. package/src/components/administration/dev/MailSenderConfigGrid.tsx +486 -486
  52. package/src/components/administration/dev/MailTemplateGrid.tsx +385 -385
  53. package/src/components/administration/dev/NotificationGrid.tsx +435 -435
  54. package/src/components/administration/dev/NotificationQueueGrid.tsx +222 -222
  55. package/src/components/administration/dev/ReportGrid.tsx +503 -503
  56. package/src/components/administration/dev/ReportParameterGrid.tsx +186 -186
  57. package/src/components/administration/dev/ReportParametersForm.tsx +84 -84
  58. package/src/components/administration/dev/WidgetGrid.tsx +380 -380
  59. package/src/components/administration/dev/WorkflowDocumentActionGrid.tsx +264 -264
  60. package/src/components/administration/dev/WorkflowDocumentActionHistoryGrid.tsx +172 -172
  61. package/src/components/administration/dev/WorkflowDocumentActionMailGrid.tsx +161 -161
  62. package/src/components/administration/dev/WorkflowDocumentGrid.tsx +357 -357
  63. package/src/components/administration/dev/WorkflowDocumentMailLogGrid.tsx +218 -218
  64. package/src/components/administration/dev/WorkflowDocumentStatusGrid.tsx +243 -243
  65. package/src/components/common/AzureLogin.tsx +222 -222
  66. package/src/components/common/ChangeOrgForm.tsx +85 -85
  67. package/src/components/common/Home.tsx +43 -43
  68. package/src/components/common/LanguageSwitcher.tsx +25 -25
  69. package/src/components/common/LayoutHandlers.tsx +11 -11
  70. package/src/components/common/LoadingMask.tsx +24 -24
  71. package/src/components/common/Login.tsx +268 -268
  72. package/src/components/common/MobileLogin.tsx +229 -229
  73. package/src/components/common/MyNotificationsPanel.tsx +109 -109
  74. package/src/components/common/NoLicenseComponent.tsx +79 -79
  75. package/src/components/common/NotificationItem.tsx +138 -138
  76. package/src/components/index.ts +10 -10
  77. package/src/components/msalConfig.ts +11 -11
  78. package/src/components/templates/DataEntryTemplates/DataEntryTypes.ts +361 -361
  79. package/src/components/templates/DataEntryTemplates/DataEntryUtil.ts +297 -297
  80. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormAction.tsx +60 -60
  81. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementField.tsx +238 -238
  82. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementGroup.tsx +108 -108
  83. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/CheckBox.tsx +66 -66
  84. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/ComboBox.tsx +164 -164
  85. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/Datefield.tsx +70 -70
  86. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/DatetimeField.tsx +71 -71
  87. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/FiltersPanel.tsx +237 -237
  88. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/SystemLookupCombobox.tsx +56 -56
  89. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/TemplateTextField.tsx +20 -20
  90. package/src/components/templates/DataEntryTemplates/TemplateDataForm/TemplateForm.tsx +431 -431
  91. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/DataGridColumnsUtil.tsx +197 -197
  92. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid.tsx +1044 -1044
  93. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridMultiRecordAction.tsx +89 -89
  94. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridRecordAction.tsx +95 -95
  95. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridTopBar.tsx +251 -251
  96. package/src/components/templates/TransferList.tsx +256 -256
  97. package/src/components/templates/Window/ConfirmationWindow.tsx +55 -55
  98. package/src/components/templates/attachment/AttachmentCard.tsx +141 -141
  99. package/src/components/templates/attachment/AttachmentImageViewer.tsx +85 -85
  100. package/src/components/templates/attachment/AttachmentPanel.tsx +285 -285
  101. package/src/components/templates/index.ts +35 -35
  102. package/src/components/templates/report/ExcelReportViewer.tsx +71 -71
  103. package/src/components/templates/report/ReportViewer.tsx +261 -261
  104. package/src/components/templates/report/ReportViewerRoute.tsx +9 -9
  105. package/src/components/templates/visuals/DashboardRouteView.tsx +9 -9
  106. package/src/components/templates/visuals/DashboardViewer.tsx +192 -192
  107. package/src/components/templates/visuals/WidgetViewer.tsx +208 -208
  108. package/src/components/templates/visuals/charts/TemplateBarChart.tsx +23 -23
  109. package/src/components/templates/visuals/charts/TemplateDataCard.tsx +35 -35
  110. package/src/components/templates/visuals/charts/TemplateGauge.tsx +21 -21
  111. package/src/components/templates/visuals/charts/TemplateLineChart.tsx +22 -22
  112. package/src/components/templates/visuals/charts/TemplateLineProgress.tsx +42 -42
  113. package/src/components/templates/visuals/charts/TemplatePieChart.tsx +24 -24
  114. package/src/components/templates/workflow/WorkflowDocumentPanel.tsx +611 -611
  115. package/src/components/templates/workflow/WorkflowDocumentTimeLine.tsx +145 -145
  116. package/src/components/templates/workflow/WorkflowRouteComponent.tsx +14 -14
  117. package/src/examples/ExampleGrid.tsx +134 -134
  118. package/src/hooks/UseConfirmationWindow.tsx +56 -56
  119. package/src/hooks/UseMobile.tsx +13 -13
  120. package/src/hooks/UseSession.tsx +59 -59
  121. package/src/hooks/UseWindow.tsx +111 -111
  122. package/src/hooks/index.ts +22 -22
  123. package/src/hooks/useApiActions.ts +124 -124
  124. package/src/hooks/useAxios.tsx +340 -340
  125. package/src/hooks/useCommonStore.tsx +29 -29
  126. package/src/hooks/useInterval.tsx +23 -23
  127. package/src/hooks/useLoadingMask.tsx +16 -16
  128. package/src/hooks/useLookupGridColumn.tsx +35 -35
  129. package/src/hooks/useParameterPanel.tsx +171 -171
  130. package/src/index.ts +4 -4
  131. package/src/layout/DrawerHeader.tsx +10 -10
  132. package/src/layout/Layout.tsx +102 -102
  133. package/src/layout/MainContent.tsx +115 -115
  134. package/src/layout/MobileDrawer.tsx +103 -103
  135. package/src/layout/NavigationTree.tsx +360 -360
  136. package/src/layout/NotificationButton.tsx +207 -207
  137. package/src/layout/RouteWrapper.tsx +63 -63
  138. package/src/layout/SideBar.tsx +85 -85
  139. package/src/layout/TopBar.tsx +317 -317
  140. package/src/locales/arabic/adminLocalsAr.json +94 -94
  141. package/src/locales/arabic/common.json +44 -44
  142. package/src/locales/arabic/devLocalsAr.json +317 -317
  143. package/src/locales/arabic/index.ts +9 -9
  144. package/src/locales/english/adminLocalsEn.json +97 -97
  145. package/src/locales/english/common.json +43 -43
  146. package/src/locales/english/devLocalsEn.json +318 -318
  147. package/src/locales/english/index.ts +9 -9
  148. package/src/locales/i18n.ts +8 -8
  149. package/src/locales/index.ts +9 -9
  150. package/src/main.tsx +41 -41
  151. package/src/navigationItems/Administration/adminNavigationItems.tsx +231 -231
  152. package/src/navigationItems/Administration/index.tsx +16 -16
  153. package/src/navigationItems/common/CommonNavigationItems.tsx +12 -12
  154. package/src/navigationItems/common/index.tsx +7 -7
  155. package/src/navigationItems/index.tsx +35 -35
  156. package/src/redux/features/administration/AdministrationStoresMetaData.ts +164 -164
  157. package/src/redux/features/common/AppInfoSlice.ts +95 -95
  158. package/src/redux/features/common/AppLayoutSlice.ts +29 -29
  159. package/src/redux/features/common/CommonStoreSlice.ts +44 -44
  160. package/src/redux/features/common/LoadingMaskSlice.ts +30 -30
  161. package/src/redux/features/common/SideBarSlice.ts +27 -27
  162. package/src/redux/features/common/UserSessionSlice.ts +54 -54
  163. package/src/redux/store.ts +29 -29
  164. package/src/routes/administration/adminRoutes.tsx +99 -99
  165. package/src/routes/administration/devRoutes.tsx +129 -129
  166. package/src/routes/administration/index.ts +10 -10
  167. package/src/routes/index.ts +5 -5
  168. package/src/routes/types/index.ts +6 -6
  169. package/src/styles/index.css +19 -19
  170. package/src/types/index.ts +8 -8
  171. package/src/util/AppUtils.ts +73 -73
  172. package/src/util/constants.ts +6 -6
  173. package/src/util/index.ts +5 -5
  174. package/tsconfig.json +135 -135
  175. package/vite.config.ts +24 -24
  176. package/package-lock.json/342/200/216 +0 -9040
@@ -1,145 +1,145 @@
1
- import Typography from "@mui/material/Typography";
2
- import { workflowDocumentActionHistory } from "./WorkflowDocumentPanel";
3
- import { useSelector } from "react-redux";
4
- import { Avatar, Box, Divider, Paper, Stack } from "@mui/material";
5
- import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
6
- import { useTranslation } from "react-i18next";
7
- import AttachmentImageViewer from "../attachment/AttachmentImageViewer";
8
-
9
- type WorkflowDocumentTimeLineProp = {
10
- actionHistory: Array<workflowDocumentActionHistory>;
11
- };
12
-
13
- const WorkflowDocumentTimeLine: React.FC<WorkflowDocumentTimeLineProp> = (
14
- props
15
- ) => {
16
- const AppLayout = useSelector((state: any) => state.AppLayout);
17
- const { t } = useTranslation();
18
- return (
19
- <Paper
20
- sx={{
21
- display: "flex",
22
- flexDirection: "column",
23
- // flexGrow: 1,
24
- width: 600,
25
- padding: 1,
26
- margin: 1,
27
- alignItems: "center",
28
- justifyContent: "center",
29
- }}
30
- >
31
- <Box
32
- sx={{
33
- width: "100%",
34
- display: "flex",
35
- alignItems: "center",
36
- justifyContent: "center",
37
- fontSize: 18,
38
- fontWeight: "bold",
39
- }}
40
- >
41
- <FontAwesomeIcon
42
- icon="history"
43
- style={{ marginRight: 10, marginLeft: 10 }}
44
- />
45
- {t("WF_ACTION_HISTORY_LABEL")}
46
- </Box>
47
- <Box
48
- sx={{
49
- flexGrow: 1,
50
- width: "100%",
51
- display: "flex",
52
- flexDirection: "column",
53
- overflowY: "auto",
54
- alignItems: "center",
55
- justifyContent: "flex-start",
56
- }}
57
- >
58
- {props.actionHistory.map((actionHistoryRecord, index) => {
59
- return (
60
- <>
61
- <Box
62
- sx={{
63
- display: "flex",
64
- alignItems: "center",
65
- justifyContent: "center",
66
- width: "100%",
67
- marginBottom: 2,
68
- }}
69
- >
70
- <Box
71
- sx={{
72
- display: "flex",
73
- flex: 1,
74
- flexDirection: "column",
75
- alignItems: "flex-end",
76
- justifyContent: "center",
77
- }}
78
- >
79
- <Box sx={{ marginBottom: 0.2 }}>
80
- {actionHistoryRecord.actionTime}
81
- </Box>
82
- <Typography>
83
- via {actionHistoryRecord.actionMethod}
84
- </Typography>
85
- </Box>
86
- <Box
87
- sx={{
88
- display: "flex",
89
- flexDirection: "column",
90
- alignItems: "center",
91
- justifyContent: "center",
92
- position: "relative",
93
- marginRight: 2,
94
- marginLeft: 2,
95
- }}
96
- >
97
- <AttachmentImageViewer
98
- showAsAvatar={true}
99
- attachmentCode="EMPLOYEE_PHOTOS"
100
- refKey={
101
- actionHistoryRecord?.personId
102
- ? actionHistoryRecord?.personId + ""
103
- : undefined
104
- }
105
- style={{ m: 1, width: 70, height: 70 }}
106
- />
107
- {index !== props.actionHistory.length - 1 ? (
108
- <Box sx={{ marginTop: 11, position: "absolute" }}>|</Box>
109
- ) : (
110
- <></>
111
- )}
112
- </Box>
113
- <Box
114
- sx={{
115
- display: "flex",
116
- flex: 1,
117
- flexDirection: "column",
118
- alignItems: "flex-start",
119
- justifyContent: "center",
120
- }}
121
- >
122
- <Box sx={{ width: "100%" }}>
123
- {AppLayout.appDirection === "ltr"
124
- ? `${actionHistoryRecord?.documentActionEnName}`
125
- : `${actionHistoryRecord?.documentActionArName}`}
126
- {actionHistoryRecord?.actionComment
127
- ? " - " + actionHistoryRecord.actionComment
128
- : ""}
129
- </Box>
130
- <Box sx={{ width: "100%" }}>
131
- {AppLayout.appDirection === "ltr"
132
- ? `${actionHistoryRecord?.employeeEnName}`
133
- : `${actionHistoryRecord?.employeeArName}`}
134
- </Box>
135
- </Box>
136
- </Box>
137
- </>
138
- );
139
- })}
140
- </Box>
141
- </Paper>
142
- );
143
- };
144
-
145
- export default WorkflowDocumentTimeLine;
1
+ import Typography from "@mui/material/Typography";
2
+ import { workflowDocumentActionHistory } from "./WorkflowDocumentPanel";
3
+ import { useSelector } from "react-redux";
4
+ import { Avatar, Box, Divider, Paper, Stack } from "@mui/material";
5
+ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
6
+ import { useTranslation } from "react-i18next";
7
+ import AttachmentImageViewer from "../attachment/AttachmentImageViewer";
8
+
9
+ type WorkflowDocumentTimeLineProp = {
10
+ actionHistory: Array<workflowDocumentActionHistory>;
11
+ };
12
+
13
+ const WorkflowDocumentTimeLine: React.FC<WorkflowDocumentTimeLineProp> = (
14
+ props
15
+ ) => {
16
+ const AppLayout = useSelector((state: any) => state.AppLayout);
17
+ const { t } = useTranslation();
18
+ return (
19
+ <Paper
20
+ sx={{
21
+ display: "flex",
22
+ flexDirection: "column",
23
+ // flexGrow: 1,
24
+ width: 600,
25
+ padding: 1,
26
+ margin: 1,
27
+ alignItems: "center",
28
+ justifyContent: "center",
29
+ }}
30
+ >
31
+ <Box
32
+ sx={{
33
+ width: "100%",
34
+ display: "flex",
35
+ alignItems: "center",
36
+ justifyContent: "center",
37
+ fontSize: 18,
38
+ fontWeight: "bold",
39
+ }}
40
+ >
41
+ <FontAwesomeIcon
42
+ icon="history"
43
+ style={{ marginRight: 10, marginLeft: 10 }}
44
+ />
45
+ {t("WF_ACTION_HISTORY_LABEL")}
46
+ </Box>
47
+ <Box
48
+ sx={{
49
+ flexGrow: 1,
50
+ width: "100%",
51
+ display: "flex",
52
+ flexDirection: "column",
53
+ overflowY: "auto",
54
+ alignItems: "center",
55
+ justifyContent: "flex-start",
56
+ }}
57
+ >
58
+ {props.actionHistory.map((actionHistoryRecord, index) => {
59
+ return (
60
+ <>
61
+ <Box
62
+ sx={{
63
+ display: "flex",
64
+ alignItems: "center",
65
+ justifyContent: "center",
66
+ width: "100%",
67
+ marginBottom: 2,
68
+ }}
69
+ >
70
+ <Box
71
+ sx={{
72
+ display: "flex",
73
+ flex: 1,
74
+ flexDirection: "column",
75
+ alignItems: "flex-end",
76
+ justifyContent: "center",
77
+ }}
78
+ >
79
+ <Box sx={{ marginBottom: 0.2 }}>
80
+ {actionHistoryRecord.actionTime}
81
+ </Box>
82
+ <Typography>
83
+ via {actionHistoryRecord.actionMethod}
84
+ </Typography>
85
+ </Box>
86
+ <Box
87
+ sx={{
88
+ display: "flex",
89
+ flexDirection: "column",
90
+ alignItems: "center",
91
+ justifyContent: "center",
92
+ position: "relative",
93
+ marginRight: 2,
94
+ marginLeft: 2,
95
+ }}
96
+ >
97
+ <AttachmentImageViewer
98
+ showAsAvatar={true}
99
+ attachmentCode="EMPLOYEE_PHOTOS"
100
+ refKey={
101
+ actionHistoryRecord?.personId
102
+ ? actionHistoryRecord?.personId + ""
103
+ : undefined
104
+ }
105
+ style={{ m: 1, width: 70, height: 70 }}
106
+ />
107
+ {index !== props.actionHistory.length - 1 ? (
108
+ <Box sx={{ marginTop: 11, position: "absolute" }}>|</Box>
109
+ ) : (
110
+ <></>
111
+ )}
112
+ </Box>
113
+ <Box
114
+ sx={{
115
+ display: "flex",
116
+ flex: 1,
117
+ flexDirection: "column",
118
+ alignItems: "flex-start",
119
+ justifyContent: "center",
120
+ }}
121
+ >
122
+ <Box sx={{ width: "100%" }}>
123
+ {AppLayout.appDirection === "ltr"
124
+ ? `${actionHistoryRecord?.documentActionEnName}`
125
+ : `${actionHistoryRecord?.documentActionArName}`}
126
+ {actionHistoryRecord?.actionComment
127
+ ? " - " + actionHistoryRecord.actionComment
128
+ : ""}
129
+ </Box>
130
+ <Box sx={{ width: "100%" }}>
131
+ {AppLayout.appDirection === "ltr"
132
+ ? `${actionHistoryRecord?.employeeEnName}`
133
+ : `${actionHistoryRecord?.employeeArName}`}
134
+ </Box>
135
+ </Box>
136
+ </Box>
137
+ </>
138
+ );
139
+ })}
140
+ </Box>
141
+ </Paper>
142
+ );
143
+ };
144
+
145
+ export default WorkflowDocumentTimeLine;
@@ -1,14 +1,14 @@
1
- import { useParams } from "react-router-dom";
2
- import WorkflowDocumentPanel from "./WorkflowDocumentPanel";
3
-
4
- const WorkflowRouteComponent: React.FC = () => {
5
- const { workflowDocumentCode, refDocumentId } = useParams();
6
- return (
7
- <WorkflowDocumentPanel
8
- workFlowDocumentCode={workflowDocumentCode}
9
- refDocumentId={refDocumentId}
10
- />
11
- );
12
- };
13
-
14
- export default WorkflowRouteComponent;
1
+ import { useParams } from "react-router-dom";
2
+ import WorkflowDocumentPanel from "./WorkflowDocumentPanel";
3
+
4
+ const WorkflowRouteComponent: React.FC = () => {
5
+ const { workflowDocumentCode, refDocumentId } = useParams();
6
+ return (
7
+ <WorkflowDocumentPanel
8
+ workFlowDocumentCode={workflowDocumentCode}
9
+ refDocumentId={refDocumentId}
10
+ />
11
+ );
12
+ };
13
+
14
+ export default WorkflowRouteComponent;
@@ -1,134 +1,134 @@
1
- import { useState } from "react";
2
- import { FormElementProps, TemplateGrid } from "../components";
3
- import { useApiActions } from "../hooks";
4
-
5
- const ExampleGrid: React.FC = () => {
6
- const [data, setData] = useState([]);
7
- const options = [
8
- { value: 1, display: "Male" },
9
- { value: 2, display: "Female" },
10
- ];
11
- const apiActions = useApiActions({
12
- findAll: undefined,
13
- commonStoreKey: undefined,
14
- deleteById: undefined,
15
- deleteByIdParamName: undefined,
16
- findById: undefined,
17
- findByIdParamName: undefined,
18
- save: undefined,
19
- setData: setData,
20
- });
21
- const elements: FormElementProps[] = [
22
- {
23
- mode: "props",
24
- props: { fieldLabel: "ID", fieldName: "id", fieldType: "number" },
25
- type: "field",
26
- },
27
- {
28
- mode: "props",
29
- props: {
30
- fieldLabel: "Gender",
31
- fieldName: "gender",
32
- fieldType: "combobox",
33
- options,
34
- optionValueField: "value",
35
- optionDisplayField: "display",
36
- formProps: {
37
- onValueChangeCallBack(
38
- formValues,
39
- value,
40
- formManager,
41
- formActions,
42
- selectedRecord
43
- ) {
44
- if (value == 1) {
45
- formActions.disableField("bithdate");
46
- formManager.setValue("bithdate", new Date());
47
- formManager.setValue("active", true);
48
- formManager.setValue("type", value);
49
- } else {
50
- formActions.enableField("bithdate");
51
- formManager.setValue("bithdate", null);
52
- formManager.setValue("active", false);
53
- }
54
- formManager.setValue("type", value);
55
- },
56
- },
57
- },
58
- type: "field",
59
- },
60
- {
61
- mode: "props",
62
- props: {
63
- fieldLabel: "Gender",
64
- fieldName: "type",
65
- fieldType: "combobox",
66
- options,
67
- optionValueField: "value",
68
- optionDisplayField: "display",
69
- },
70
- type: "field",
71
- },
72
- {
73
- mode: "props",
74
- props: {
75
- fieldLabel: "Name",
76
- fieldName: "name",
77
- required: true,
78
- fieldType: "text",
79
- gridProps: { hidden: false },
80
- formProps: {
81
- onValueChangeCallBack(
82
- formValues,
83
- value,
84
- formManager,
85
- formActions,
86
- selectedRecord
87
- ) {},
88
- },
89
- },
90
- type: "field",
91
- },
92
- {
93
- mode: "props",
94
- props: {
95
- fieldLabel: "Birthdate",
96
- fieldName: "bithdate",
97
- required: true,
98
- fieldType: "date",
99
- gridProps: { hidden: false },
100
- },
101
- type: "field",
102
- },
103
- {
104
- mode: "props",
105
- props: {
106
- fieldLabel: "Active",
107
- fieldName: "active",
108
- required: true,
109
- fieldType: "checkbox",
110
- gridProps: { hidden: false },
111
- },
112
- type: "field",
113
- },
114
- ];
115
- return (
116
- <TemplateGrid
117
- apiActions={apiActions}
118
- data={data}
119
- setData={setData}
120
- editMode={{
121
- editMode: "modal",
122
- specs: {
123
- modalTitle: "Example Modal Form",
124
- modalIcon: "user",
125
- },
126
- }}
127
- formElements={elements}
128
- girdIcon={"user"}
129
- gridTitle="Example Grid "
130
- />
131
- );
132
- };
133
-
134
- export default ExampleGrid;
1
+ import { useState } from "react";
2
+ import { FormElementProps, TemplateGrid } from "../components";
3
+ import { useApiActions } from "../hooks";
4
+
5
+ const ExampleGrid: React.FC = () => {
6
+ const [data, setData] = useState([]);
7
+ const options = [
8
+ { value: 1, display: "Male" },
9
+ { value: 2, display: "Female" },
10
+ ];
11
+ const apiActions = useApiActions({
12
+ findAll: undefined,
13
+ commonStoreKey: undefined,
14
+ deleteById: undefined,
15
+ deleteByIdParamName: undefined,
16
+ findById: undefined,
17
+ findByIdParamName: undefined,
18
+ save: undefined,
19
+ setData: setData,
20
+ });
21
+ const elements: FormElementProps[] = [
22
+ {
23
+ mode: "props",
24
+ props: { fieldLabel: "ID", fieldName: "id", fieldType: "number" },
25
+ type: "field",
26
+ },
27
+ {
28
+ mode: "props",
29
+ props: {
30
+ fieldLabel: "Gender",
31
+ fieldName: "gender",
32
+ fieldType: "combobox",
33
+ options,
34
+ optionValueField: "value",
35
+ optionDisplayField: "display",
36
+ formProps: {
37
+ onValueChangeCallBack(
38
+ formValues,
39
+ value,
40
+ formManager,
41
+ formActions,
42
+ selectedRecord
43
+ ) {
44
+ if (value == 1) {
45
+ formActions.disableField("bithdate");
46
+ formManager.setValue("bithdate", new Date());
47
+ formManager.setValue("active", true);
48
+ formManager.setValue("type", value);
49
+ } else {
50
+ formActions.enableField("bithdate");
51
+ formManager.setValue("bithdate", null);
52
+ formManager.setValue("active", false);
53
+ }
54
+ formManager.setValue("type", value);
55
+ },
56
+ },
57
+ },
58
+ type: "field",
59
+ },
60
+ {
61
+ mode: "props",
62
+ props: {
63
+ fieldLabel: "Gender",
64
+ fieldName: "type",
65
+ fieldType: "combobox",
66
+ options,
67
+ optionValueField: "value",
68
+ optionDisplayField: "display",
69
+ },
70
+ type: "field",
71
+ },
72
+ {
73
+ mode: "props",
74
+ props: {
75
+ fieldLabel: "Name",
76
+ fieldName: "name",
77
+ required: true,
78
+ fieldType: "text",
79
+ gridProps: { hidden: false },
80
+ formProps: {
81
+ onValueChangeCallBack(
82
+ formValues,
83
+ value,
84
+ formManager,
85
+ formActions,
86
+ selectedRecord
87
+ ) {},
88
+ },
89
+ },
90
+ type: "field",
91
+ },
92
+ {
93
+ mode: "props",
94
+ props: {
95
+ fieldLabel: "Birthdate",
96
+ fieldName: "bithdate",
97
+ required: true,
98
+ fieldType: "date",
99
+ gridProps: { hidden: false },
100
+ },
101
+ type: "field",
102
+ },
103
+ {
104
+ mode: "props",
105
+ props: {
106
+ fieldLabel: "Active",
107
+ fieldName: "active",
108
+ required: true,
109
+ fieldType: "checkbox",
110
+ gridProps: { hidden: false },
111
+ },
112
+ type: "field",
113
+ },
114
+ ];
115
+ return (
116
+ <TemplateGrid
117
+ apiActions={apiActions}
118
+ data={data}
119
+ setData={setData}
120
+ editMode={{
121
+ editMode: "modal",
122
+ specs: {
123
+ modalTitle: "Example Modal Form",
124
+ modalIcon: "user",
125
+ },
126
+ }}
127
+ formElements={elements}
128
+ girdIcon={"user"}
129
+ gridTitle="Example Grid "
130
+ />
131
+ );
132
+ };
133
+
134
+ export default ExampleGrid;