@asaleh37/ui-base 26.2.131 → 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 +2 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +2 -2
  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 -155
  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,322 +1,322 @@
1
- import { useState } from "react";
2
- import TemplateGrid from "../../templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid";
3
- import { useApiActions } from "../../../hooks";
4
- import {
5
- FormElementProps,
6
- FormValueChangeCallBk,
7
- } from "../../templates/DataEntryTemplates/DataEntryTypes";
8
- import { useTranslation } from "react-i18next";
9
- import { useSelector } from "react-redux";
10
- import { DATE_FORMAT, DATE_TIME_FORMAT } from "../../../util";
11
-
12
- const EntityParameterGrid: React.FC = () => {
13
- const { t } = useTranslation();
14
- const SystemParameterTypes = useSelector(
15
- (state: any) => state.commonStores.stores.SystemParameterTypes.data,
16
- );
17
- const [data, setData] = useState([]);
18
- const apiActions = useApiActions({
19
- commonStoreKey: "SystemEntityParameters",
20
- deleteById: "api/v1/dev/entityparameter",
21
- save: "api/v1/dev/entityparameter",
22
- findById: "api/v1/dev/entityparameter",
23
- setData: setData,
24
- });
25
-
26
- const SystemDataQueries = useSelector(
27
- (state: any) => state.commonStores.stores.SystemDataQueries.data,
28
- );
29
- const adjustFormAccordingFormValues: FormValueChangeCallBk = (
30
- formValues: any,
31
- formActions,
32
- formManager,
33
- fieldName,
34
- newValue,
35
- selectedRecord,
36
- ) => {
37
- if (fieldName) {
38
- if (fieldName === "parameterType") {
39
- if (newValue === "combobox") {
40
- formManager.setValue("parameterValueFormat", null);
41
- formActions.showField("parameterDataQueryId");
42
- formActions.showField("parameterDataset");
43
- formActions.showField("parameterDisplayField");
44
- formActions.showField("comboboxValueDataType");
45
- formActions.showField("parameterValueField");
46
- formActions.hideField("parameterValueFormat");
47
- } else {
48
- formActions.hideField("parameterDataQueryId");
49
- formActions.hideField("parameterDataset");
50
- formActions.hideField("parameterDisplayField");
51
- formActions.hideField("parameterValueField");
52
- formActions.hideField("comboboxValueDataType");
53
- }
54
- if (newValue === "date" || newValue === "datetime") {
55
- formActions.showField("parameterValueFormat");
56
- if (newValue === "date") {
57
- formManager.setValue("parameterValueFormat", DATE_FORMAT);
58
- } else {
59
- formManager.setValue("parameterValueFormat", DATE_TIME_FORMAT);
60
- }
61
- } else {
62
- formActions.hideField("parameterValueFormat");
63
- formManager.setValue("parameterValueFormat", null);
64
- }
65
- } else if (fieldName == "parameterDataQueryId") {
66
- if (newValue != null && newValue != "") {
67
- formManager.setValue("parameterDataset", null);
68
- formActions.hideField("parameterDataset");
69
- } else {
70
- formActions.showField("parameterDataset");
71
- }
72
- } else if (fieldName == "parameterDataset") {
73
- if (newValue != null && newValue != "") {
74
- formManager.setValue("parameterDataQueryId", null);
75
- formActions.hideField("parameterDataQueryId");
76
- } else {
77
- formActions.showField("parameterDataQueryId");
78
- }
79
- }
80
- } else {
81
- if (formValues?.parameterType === "combobox") {
82
- formManager.setValue("parameterValueFormat", null);
83
- formActions.showField("parameterDataQueryId");
84
- formActions.showField("parameterDataset");
85
- formActions.showField("parameterDisplayField");
86
- formActions.showField("parameterValueField");
87
- formActions.hideField("parameterValueFormat");
88
- } else if (formValues?.parameterType === "date") {
89
- formActions.hideField("parameterDataQueryId");
90
- formActions.hideField("parameterDataset");
91
- formActions.hideField("parameterDisplayField");
92
- formActions.hideField("parameterValueField");
93
- formActions.showField("parameterValueFormat");
94
- formManager.setValue("parameterValueFormat", DATE_FORMAT);
95
- } else if (formValues?.parameterType === "datetime") {
96
- formActions.hideField("parameterDataQueryId");
97
- formActions.hideField("parameterDataset");
98
- formActions.hideField("parameterDisplayField");
99
- formActions.hideField("parameterValueField");
100
- formActions.showField("parameterValueFormat");
101
- formManager.setValue("parameterValueFormat", DATE_TIME_FORMAT);
102
- } else {
103
- formManager.setValue("parameterValueFormat", null);
104
- formActions.hideField("parameterDataQueryId");
105
- formActions.hideField("parameterDataset");
106
- formActions.hideField("parameterDisplayField");
107
- formActions.hideField("parameterValueField");
108
- formActions.hideField("parameterValueFormat");
109
- }
110
- }
111
- };
112
-
113
- const formElements: Array<FormElementProps> = [
114
- {
115
- type: "field",
116
- mode: "props",
117
- props: {
118
- fieldLabel: "id",
119
- fieldName: "id",
120
- fieldType: "number",
121
- hidden: true,
122
- gridProps: {
123
- hidden: true,
124
- },
125
- },
126
- },
127
- {
128
- type: "field",
129
- mode: "props",
130
- props: {
131
- fieldLabel: "createTime",
132
- fieldName: "createTime",
133
- fieldType: "datetime",
134
- hidden: true,
135
- gridProps: {
136
- hidden: true,
137
- },
138
- },
139
- },
140
- {
141
- type: "field",
142
- mode: "props",
143
- props: {
144
- fieldLabel: "createdBy",
145
- fieldName: "createdBy",
146
- fieldType: "text",
147
- hidden: true,
148
- gridProps: {
149
- hidden: true,
150
- },
151
- },
152
- },
153
- {
154
- type: "field",
155
- mode: "props",
156
- props: {
157
- fieldLabel: "lastUpdateBy",
158
- fieldName: "lastUpdateBy",
159
- fieldType: "text",
160
- hidden: true,
161
- gridProps: {
162
- hidden: true,
163
- },
164
- },
165
- },
166
- {
167
- type: "field",
168
- mode: "props",
169
- props: {
170
- fieldLabel: "lastUpdateTime",
171
- fieldName: "lastUpdateTime",
172
- fieldType: "datetime",
173
- hidden: true,
174
- gridProps: {
175
- hidden: true,
176
- },
177
- },
178
- },
179
-
180
- {
181
- type: "field",
182
- mode: "props",
183
- props: {
184
- fieldLabel: "ENTITY_PARAMETER_PARAMETER_CODE",
185
- fieldName: "parameterCode",
186
- required: true,
187
- fieldType: "text",
188
- },
189
- },
190
- {
191
- type: "field",
192
- mode: "props",
193
- props: {
194
- fieldLabel: "ENTITY_PARAMETER_PARAMETER_LABEL",
195
- fieldName: "parameterLabel",
196
- required: true,
197
- fieldType: "text",
198
- },
199
- },
200
- {
201
- type: "field",
202
- mode: "props",
203
- props: {
204
- fieldLabel: "ENTITY_PARAMETER_PARAMETER_TYPE",
205
- fieldName: "parameterType",
206
- required: true,
207
- fieldType: "combobox",
208
- options: SystemParameterTypes,
209
- comboboxValueDataType: "string",
210
- optionDisplayField: "value",
211
- optionValueField: "value",
212
- },
213
- },
214
- {
215
- type: "field",
216
- mode: "props",
217
- props: {
218
- fieldLabel: "ENTITY_PARAMETER_PARAMETER_DATA_QUERY_ID",
219
- fieldName: "parameterDataQueryId",
220
- hidden: true,
221
- required: false,
222
- fieldType: "combobox",
223
- options: SystemDataQueries,
224
- optionDisplayField: "queryName",
225
- optionValueField: "id",
226
- },
227
- },
228
- {
229
- type: "field",
230
- mode: "props",
231
- props: {
232
- fieldLabel: "ENTITY_PARAMETER_PARAMETER_DATASET",
233
- fieldName: "parameterDataset",
234
- hidden: true,
235
- required: false,
236
- fieldType: "text",
237
- },
238
- },
239
- {
240
- type: "field",
241
- mode: "props",
242
- props: {
243
- fieldLabel: "ENTITY_PARAMETER_PARAMETER_DISPLAY_FIELD",
244
- fieldName: "parameterDisplayField",
245
- hidden: true,
246
- required: false,
247
- fieldType: "text",
248
- },
249
- },
250
-
251
- {
252
- type: "field",
253
- mode: "props",
254
- props: {
255
- fieldLabel: "ENTITY_PARAMETER_PARAMETER_VALUE_FIELD",
256
- fieldName: "parameterValueField",
257
- hidden: true,
258
- required: false,
259
- fieldType: "text",
260
- },
261
- },
262
- {
263
- type: "field",
264
- mode: "props",
265
- props: {
266
- fieldLabel: "Value Type",
267
- fieldName: "comboboxValueDataType",
268
- fieldType: "combobox",
269
- options: [{ value: "string" }, { value: "number" }],
270
- comboboxValueDataType: "string",
271
- optionDisplayField: "value",
272
- optionValueField: "value",
273
- },
274
- },
275
- {
276
- type: "field",
277
- mode: "props",
278
- props: {
279
- fieldLabel: "ENTITY_PARAMETER_PARAMETER_VALUE_FORMAT",
280
- fieldName: "parameterValueFormat",
281
- required: false,
282
- hidden: true,
283
- fieldType: "text",
284
- },
285
- },
286
- {
287
- type: "field",
288
- mode: "props",
289
- props: {
290
- fieldLabel: "ENTITY_PARAMETER_ENABLED",
291
- fieldName: "enabled",
292
- required: false,
293
- fieldType: "checkbox",
294
- },
295
- },
296
- ];
297
-
298
- return (
299
- <TemplateGrid
300
- apiActions={apiActions}
301
- data={data}
302
- setData={setData}
303
- editMode={{
304
- editMode: "modal",
305
- specs: {
306
- modalTitle: "Entity Parameter",
307
- modalIcon: "p",
308
- modalWidth: 300,
309
- },
310
- }}
311
- formElements={formElements}
312
- keyColumnName={"id"}
313
- gridTitle={t("ENTITY_PARAMETER_PLURAL")}
314
- girdIcon="p"
315
- formProps={{ formValuesChangeCallBk: adjustFormAccordingFormValues }}
316
- editAction={{ isEnabled: true, authority: "ENTITY_PARAMETER_EDIT" }}
317
- deleteAction={{ isEnabled: true, authority: "ENTITY_PARAMETER_DELETE" }}
318
- />
319
- );
320
- };
321
-
322
- export default EntityParameterGrid;
1
+ import { useState } from "react";
2
+ import TemplateGrid from "../../templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid";
3
+ import { useApiActions } from "../../../hooks";
4
+ import {
5
+ FormElementProps,
6
+ FormValueChangeCallBk,
7
+ } from "../../templates/DataEntryTemplates/DataEntryTypes";
8
+ import { useTranslation } from "react-i18next";
9
+ import { useSelector } from "react-redux";
10
+ import { DATE_FORMAT, DATE_TIME_FORMAT } from "../../../util";
11
+
12
+ const EntityParameterGrid: React.FC = () => {
13
+ const { t } = useTranslation();
14
+ const SystemParameterTypes = useSelector(
15
+ (state: any) => state.commonStores.stores.SystemParameterTypes.data,
16
+ );
17
+ const [data, setData] = useState([]);
18
+ const apiActions = useApiActions({
19
+ commonStoreKey: "SystemEntityParameters",
20
+ deleteById: "api/v1/dev/entityparameter",
21
+ save: "api/v1/dev/entityparameter",
22
+ findById: "api/v1/dev/entityparameter",
23
+ setData: setData,
24
+ });
25
+
26
+ const SystemDataQueries = useSelector(
27
+ (state: any) => state.commonStores.stores.SystemDataQueries.data,
28
+ );
29
+ const adjustFormAccordingFormValues: FormValueChangeCallBk = (
30
+ formValues: any,
31
+ formActions,
32
+ formManager,
33
+ fieldName,
34
+ newValue,
35
+ selectedRecord,
36
+ ) => {
37
+ if (fieldName) {
38
+ if (fieldName === "parameterType") {
39
+ if (newValue === "combobox") {
40
+ formManager.setValue("parameterValueFormat", null);
41
+ formActions.showField("parameterDataQueryId");
42
+ formActions.showField("parameterDataset");
43
+ formActions.showField("parameterDisplayField");
44
+ formActions.showField("comboboxValueDataType");
45
+ formActions.showField("parameterValueField");
46
+ formActions.hideField("parameterValueFormat");
47
+ } else {
48
+ formActions.hideField("parameterDataQueryId");
49
+ formActions.hideField("parameterDataset");
50
+ formActions.hideField("parameterDisplayField");
51
+ formActions.hideField("parameterValueField");
52
+ formActions.hideField("comboboxValueDataType");
53
+ }
54
+ if (newValue === "date" || newValue === "datetime") {
55
+ formActions.showField("parameterValueFormat");
56
+ if (newValue === "date") {
57
+ formManager.setValue("parameterValueFormat", DATE_FORMAT);
58
+ } else {
59
+ formManager.setValue("parameterValueFormat", DATE_TIME_FORMAT);
60
+ }
61
+ } else {
62
+ formActions.hideField("parameterValueFormat");
63
+ formManager.setValue("parameterValueFormat", null);
64
+ }
65
+ } else if (fieldName == "parameterDataQueryId") {
66
+ if (newValue != null && newValue != "") {
67
+ formManager.setValue("parameterDataset", null);
68
+ formActions.hideField("parameterDataset");
69
+ } else {
70
+ formActions.showField("parameterDataset");
71
+ }
72
+ } else if (fieldName == "parameterDataset") {
73
+ if (newValue != null && newValue != "") {
74
+ formManager.setValue("parameterDataQueryId", null);
75
+ formActions.hideField("parameterDataQueryId");
76
+ } else {
77
+ formActions.showField("parameterDataQueryId");
78
+ }
79
+ }
80
+ } else {
81
+ if (formValues?.parameterType === "combobox") {
82
+ formManager.setValue("parameterValueFormat", null);
83
+ formActions.showField("parameterDataQueryId");
84
+ formActions.showField("parameterDataset");
85
+ formActions.showField("parameterDisplayField");
86
+ formActions.showField("parameterValueField");
87
+ formActions.hideField("parameterValueFormat");
88
+ } else if (formValues?.parameterType === "date") {
89
+ formActions.hideField("parameterDataQueryId");
90
+ formActions.hideField("parameterDataset");
91
+ formActions.hideField("parameterDisplayField");
92
+ formActions.hideField("parameterValueField");
93
+ formActions.showField("parameterValueFormat");
94
+ formManager.setValue("parameterValueFormat", DATE_FORMAT);
95
+ } else if (formValues?.parameterType === "datetime") {
96
+ formActions.hideField("parameterDataQueryId");
97
+ formActions.hideField("parameterDataset");
98
+ formActions.hideField("parameterDisplayField");
99
+ formActions.hideField("parameterValueField");
100
+ formActions.showField("parameterValueFormat");
101
+ formManager.setValue("parameterValueFormat", DATE_TIME_FORMAT);
102
+ } else {
103
+ formManager.setValue("parameterValueFormat", null);
104
+ formActions.hideField("parameterDataQueryId");
105
+ formActions.hideField("parameterDataset");
106
+ formActions.hideField("parameterDisplayField");
107
+ formActions.hideField("parameterValueField");
108
+ formActions.hideField("parameterValueFormat");
109
+ }
110
+ }
111
+ };
112
+
113
+ const formElements: Array<FormElementProps> = [
114
+ {
115
+ type: "field",
116
+ mode: "props",
117
+ props: {
118
+ fieldLabel: "id",
119
+ fieldName: "id",
120
+ fieldType: "number",
121
+ hidden: true,
122
+ gridProps: {
123
+ hidden: true,
124
+ },
125
+ },
126
+ },
127
+ {
128
+ type: "field",
129
+ mode: "props",
130
+ props: {
131
+ fieldLabel: "createTime",
132
+ fieldName: "createTime",
133
+ fieldType: "datetime",
134
+ hidden: true,
135
+ gridProps: {
136
+ hidden: true,
137
+ },
138
+ },
139
+ },
140
+ {
141
+ type: "field",
142
+ mode: "props",
143
+ props: {
144
+ fieldLabel: "createdBy",
145
+ fieldName: "createdBy",
146
+ fieldType: "text",
147
+ hidden: true,
148
+ gridProps: {
149
+ hidden: true,
150
+ },
151
+ },
152
+ },
153
+ {
154
+ type: "field",
155
+ mode: "props",
156
+ props: {
157
+ fieldLabel: "lastUpdateBy",
158
+ fieldName: "lastUpdateBy",
159
+ fieldType: "text",
160
+ hidden: true,
161
+ gridProps: {
162
+ hidden: true,
163
+ },
164
+ },
165
+ },
166
+ {
167
+ type: "field",
168
+ mode: "props",
169
+ props: {
170
+ fieldLabel: "lastUpdateTime",
171
+ fieldName: "lastUpdateTime",
172
+ fieldType: "datetime",
173
+ hidden: true,
174
+ gridProps: {
175
+ hidden: true,
176
+ },
177
+ },
178
+ },
179
+
180
+ {
181
+ type: "field",
182
+ mode: "props",
183
+ props: {
184
+ fieldLabel: "ENTITY_PARAMETER_PARAMETER_CODE",
185
+ fieldName: "parameterCode",
186
+ required: true,
187
+ fieldType: "text",
188
+ },
189
+ },
190
+ {
191
+ type: "field",
192
+ mode: "props",
193
+ props: {
194
+ fieldLabel: "ENTITY_PARAMETER_PARAMETER_LABEL",
195
+ fieldName: "parameterLabel",
196
+ required: true,
197
+ fieldType: "text",
198
+ },
199
+ },
200
+ {
201
+ type: "field",
202
+ mode: "props",
203
+ props: {
204
+ fieldLabel: "ENTITY_PARAMETER_PARAMETER_TYPE",
205
+ fieldName: "parameterType",
206
+ required: true,
207
+ fieldType: "combobox",
208
+ options: SystemParameterTypes,
209
+ comboboxValueDataType: "string",
210
+ optionDisplayField: "value",
211
+ optionValueField: "value",
212
+ },
213
+ },
214
+ {
215
+ type: "field",
216
+ mode: "props",
217
+ props: {
218
+ fieldLabel: "ENTITY_PARAMETER_PARAMETER_DATA_QUERY_ID",
219
+ fieldName: "parameterDataQueryId",
220
+ hidden: true,
221
+ required: false,
222
+ fieldType: "combobox",
223
+ options: SystemDataQueries,
224
+ optionDisplayField: "queryName",
225
+ optionValueField: "id",
226
+ },
227
+ },
228
+ {
229
+ type: "field",
230
+ mode: "props",
231
+ props: {
232
+ fieldLabel: "ENTITY_PARAMETER_PARAMETER_DATASET",
233
+ fieldName: "parameterDataset",
234
+ hidden: true,
235
+ required: false,
236
+ fieldType: "text",
237
+ },
238
+ },
239
+ {
240
+ type: "field",
241
+ mode: "props",
242
+ props: {
243
+ fieldLabel: "ENTITY_PARAMETER_PARAMETER_DISPLAY_FIELD",
244
+ fieldName: "parameterDisplayField",
245
+ hidden: true,
246
+ required: false,
247
+ fieldType: "text",
248
+ },
249
+ },
250
+
251
+ {
252
+ type: "field",
253
+ mode: "props",
254
+ props: {
255
+ fieldLabel: "ENTITY_PARAMETER_PARAMETER_VALUE_FIELD",
256
+ fieldName: "parameterValueField",
257
+ hidden: true,
258
+ required: false,
259
+ fieldType: "text",
260
+ },
261
+ },
262
+ {
263
+ type: "field",
264
+ mode: "props",
265
+ props: {
266
+ fieldLabel: "Value Type",
267
+ fieldName: "comboboxValueDataType",
268
+ fieldType: "combobox",
269
+ options: [{ value: "string" }, { value: "number" }],
270
+ comboboxValueDataType: "string",
271
+ optionDisplayField: "value",
272
+ optionValueField: "value",
273
+ },
274
+ },
275
+ {
276
+ type: "field",
277
+ mode: "props",
278
+ props: {
279
+ fieldLabel: "ENTITY_PARAMETER_PARAMETER_VALUE_FORMAT",
280
+ fieldName: "parameterValueFormat",
281
+ required: false,
282
+ hidden: true,
283
+ fieldType: "text",
284
+ },
285
+ },
286
+ {
287
+ type: "field",
288
+ mode: "props",
289
+ props: {
290
+ fieldLabel: "ENTITY_PARAMETER_ENABLED",
291
+ fieldName: "enabled",
292
+ required: false,
293
+ fieldType: "checkbox",
294
+ },
295
+ },
296
+ ];
297
+
298
+ return (
299
+ <TemplateGrid
300
+ apiActions={apiActions}
301
+ data={data}
302
+ setData={setData}
303
+ editMode={{
304
+ editMode: "modal",
305
+ specs: {
306
+ modalTitle: "Entity Parameter",
307
+ modalIcon: "p",
308
+ modalWidth: 300,
309
+ },
310
+ }}
311
+ formElements={formElements}
312
+ keyColumnName={"id"}
313
+ gridTitle={t("ENTITY_PARAMETER_PLURAL")}
314
+ girdIcon="p"
315
+ formProps={{ formValuesChangeCallBk: adjustFormAccordingFormValues }}
316
+ editAction={{ isEnabled: true, authority: "ENTITY_PARAMETER_EDIT" }}
317
+ deleteAction={{ isEnabled: true, authority: "ENTITY_PARAMETER_DELETE" }}
318
+ />
319
+ );
320
+ };
321
+
322
+ export default EntityParameterGrid;