@asaleh37/ui-base 25.8.1-4 → 25.8.1-6

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 (161) hide show
  1. package/.github/workflows/publish-npm.yml +49 -49
  2. package/README.md +51 -51
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.mjs +1 -1
  6. package/dist/index.mjs.map +1 -1
  7. package/eslint.config.js +29 -29
  8. package/index.html +13 -13
  9. package/package.json +120 -120
  10. package/rollup.config-1748377725725.cjs +34 -34
  11. package/rollup.config.js +45 -45
  12. package/src/components/App.tsx +123 -123
  13. package/src/components/BaseApp.tsx +53 -53
  14. package/src/components/administration/admin/ChangePasswordPanel.tsx +128 -128
  15. package/src/components/administration/admin/OrgMemberRoleForm.tsx +83 -83
  16. package/src/components/administration/admin/OrganizationApplicationModuleGrid.tsx +107 -107
  17. package/src/components/administration/admin/OrganizationGrid.tsx +118 -118
  18. package/src/components/administration/admin/OrganizationMemberGrid.tsx +176 -176
  19. package/src/components/administration/admin/OrganizationMemberRoleGrid.tsx +87 -87
  20. package/src/components/administration/admin/OrganizationRankGrid.tsx +133 -133
  21. package/src/components/administration/admin/OrganizationUnitGrid.tsx +143 -143
  22. package/src/components/administration/admin/OrganizationUnitTypeGrid.tsx +108 -108
  23. package/src/components/administration/admin/PersonGrid.tsx +361 -361
  24. package/src/components/administration/admin/RoleAuthoritiesForm.tsx +82 -82
  25. package/src/components/administration/admin/SystemApplicationAuthorityGrid.tsx +117 -117
  26. package/src/components/administration/admin/SystemApplicationGrid.tsx +83 -83
  27. package/src/components/administration/admin/SystemApplicationModuleGrid.tsx +96 -96
  28. package/src/components/administration/admin/SystemApplicationRoleAuthorityGrid.tsx +75 -75
  29. package/src/components/administration/admin/SystemApplicationRoleGrid.tsx +116 -116
  30. package/src/components/administration/dev/AttachmentConfigGrid.tsx +223 -223
  31. package/src/components/administration/dev/AttachmentGrid.tsx +172 -172
  32. package/src/components/administration/dev/BluePrintGrid.tsx +129 -129
  33. package/src/components/administration/dev/DashboardGrid.tsx +173 -173
  34. package/src/components/administration/dev/DashboardWidgetGrid.tsx +164 -164
  35. package/src/components/administration/dev/DataQueryGrid.tsx +206 -206
  36. package/src/components/administration/dev/DataQueryParameterGrid.tsx +191 -191
  37. package/src/components/administration/dev/DataQueryParametersForm.tsx +84 -84
  38. package/src/components/administration/dev/DatasourceConnectionGrid.tsx +150 -150
  39. package/src/components/administration/dev/EntityParameterGrid.tsx +279 -279
  40. package/src/components/administration/dev/LookupGrid.tsx +120 -120
  41. package/src/components/administration/dev/MailAttachmentGrid.tsx +155 -155
  42. package/src/components/administration/dev/MailBodyGrid.tsx +216 -216
  43. package/src/components/administration/dev/MailNotificationQueueGrid.tsx +245 -245
  44. package/src/components/administration/dev/MailRecipientGrid.tsx +169 -169
  45. package/src/components/administration/dev/MailSenderConfigGrid.tsx +478 -478
  46. package/src/components/administration/dev/MailTemplateGrid.tsx +384 -384
  47. package/src/components/administration/dev/NotificationGrid.tsx +432 -432
  48. package/src/components/administration/dev/NotificationQueueGrid.tsx +222 -222
  49. package/src/components/administration/dev/ReportGrid.tsx +506 -506
  50. package/src/components/administration/dev/ReportParameterGrid.tsx +186 -186
  51. package/src/components/administration/dev/ReportParametersForm.tsx +84 -84
  52. package/src/components/administration/dev/WidgetGrid.tsx +431 -431
  53. package/src/components/administration/dev/WorkflowDocumentActionGrid.tsx +264 -264
  54. package/src/components/administration/dev/WorkflowDocumentActionHistoryGrid.tsx +172 -172
  55. package/src/components/administration/dev/WorkflowDocumentActionMailGrid.tsx +161 -161
  56. package/src/components/administration/dev/WorkflowDocumentGrid.tsx +377 -377
  57. package/src/components/administration/dev/WorkflowDocumentMailLogGrid.tsx +218 -218
  58. package/src/components/administration/dev/WorkflowDocumentStatusGrid.tsx +243 -243
  59. package/src/components/common/ChangeOrgForm.tsx +81 -81
  60. package/src/components/common/Home.tsx +43 -43
  61. package/src/components/common/LanguageSwitcher.tsx +25 -25
  62. package/src/components/common/LayoutHandlers.tsx +11 -11
  63. package/src/components/common/LoadingMask.tsx +24 -24
  64. package/src/components/common/Login.tsx +214 -214
  65. package/src/components/common/MyNotificationsPanel.tsx +109 -109
  66. package/src/components/common/NotificationItem.tsx +138 -138
  67. package/src/components/index.ts +11 -11
  68. package/src/components/templates/DataEntryTemplates/DataEntryTypes.ts +324 -324
  69. package/src/components/templates/DataEntryTemplates/DataEntryUtil.ts +248 -248
  70. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormAction.tsx +60 -60
  71. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementField.tsx +231 -231
  72. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementGroup.tsx +106 -106
  73. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/CheckBox.tsx +64 -64
  74. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/ComboBox.tsx +93 -93
  75. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/Datefield.tsx +65 -65
  76. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/DatetimeField.tsx +64 -64
  77. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/FiltersPanel.tsx +237 -237
  78. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/SystemLookupCombobox.tsx +55 -55
  79. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/TemplateTextField.tsx +17 -17
  80. package/src/components/templates/DataEntryTemplates/TemplateDataForm/TemplateForm.tsx +387 -387
  81. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/DataGridColumnsUtil.tsx +189 -189
  82. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid.tsx +998 -998
  83. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridMultiRecordAction.tsx +89 -89
  84. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridRecordAction.tsx +95 -95
  85. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridTopBar.tsx +227 -227
  86. package/src/components/templates/TransferList.tsx +256 -256
  87. package/src/components/templates/Window/ConfirmationWindow.tsx +55 -55
  88. package/src/components/templates/attachment/AttachmentCard.tsx +141 -141
  89. package/src/components/templates/attachment/AttachmentImageViewer.tsx +83 -83
  90. package/src/components/templates/attachment/AttachmentPanel.tsx +285 -285
  91. package/src/components/templates/index.ts +33 -33
  92. package/src/components/templates/report/ExcelReportViewer.tsx +71 -71
  93. package/src/components/templates/report/ReportViewer.tsx +382 -382
  94. package/src/components/templates/visuals/DashboardRouteView.tsx +9 -9
  95. package/src/components/templates/visuals/DashboardViewer.tsx +148 -148
  96. package/src/components/templates/visuals/WidgetViewer.tsx +198 -198
  97. package/src/components/templates/visuals/charts/TemplateBarChart.tsx +23 -23
  98. package/src/components/templates/visuals/charts/TemplateDataCard.tsx +35 -35
  99. package/src/components/templates/visuals/charts/TemplateGauge.tsx +21 -21
  100. package/src/components/templates/visuals/charts/TemplateLineChart.tsx +22 -22
  101. package/src/components/templates/visuals/charts/TemplateLineProgress.tsx +42 -42
  102. package/src/components/templates/visuals/charts/TemplatePieChart.tsx +24 -24
  103. package/src/components/templates/workflow/WorkflowDocumentPanel.tsx +606 -606
  104. package/src/components/templates/workflow/WorkflowDocumentTimeLine.tsx +140 -140
  105. package/src/components/templates/workflow/WorkflowRouteComponent.tsx +14 -14
  106. package/src/hooks/UseConfirmationWindow.tsx +54 -54
  107. package/src/hooks/UseMobile.tsx +13 -13
  108. package/src/hooks/UseSession.tsx +59 -59
  109. package/src/hooks/UseWindow.tsx +107 -107
  110. package/src/hooks/index.ts +7 -7
  111. package/src/hooks/useApiActions.ts +124 -124
  112. package/src/hooks/useAxios.tsx +316 -316
  113. package/src/hooks/useInterval.tsx +23 -23
  114. package/src/hooks/useLoadingMask.tsx +16 -16
  115. package/src/hooks/useLookupGridColumn.tsx +35 -35
  116. package/src/index.ts +4 -4
  117. package/src/layout/DrawerHeader.tsx +10 -10
  118. package/src/layout/Layout.tsx +90 -90
  119. package/src/layout/MainContent.tsx +117 -117
  120. package/src/layout/MobileDrawer.tsx +103 -103
  121. package/src/layout/NavigationTree.tsx +298 -298
  122. package/src/layout/NotificationButton.tsx +207 -207
  123. package/src/layout/RouteWrapper.tsx +63 -63
  124. package/src/layout/SideBar.tsx +85 -85
  125. package/src/layout/TopBar.tsx +289 -289
  126. package/src/locales/arabic/adminLocalsAr.json +93 -93
  127. package/src/locales/arabic/common.json +44 -44
  128. package/src/locales/arabic/devLocalsAr.json +317 -317
  129. package/src/locales/arabic/index.ts +9 -9
  130. package/src/locales/english/adminLocalsEn.json +96 -96
  131. package/src/locales/english/common.json +43 -43
  132. package/src/locales/english/devLocalsEn.json +318 -318
  133. package/src/locales/english/index.ts +9 -9
  134. package/src/locales/i18n.ts +8 -8
  135. package/src/locales/index.ts +9 -9
  136. package/src/main.tsx +23 -23
  137. package/src/navigationItems/Administration/adminNavigationItems.tsx +223 -223
  138. package/src/navigationItems/Administration/index.tsx +16 -16
  139. package/src/navigationItems/common/CommonNavigationItems.tsx +12 -12
  140. package/src/navigationItems/common/index.tsx +7 -7
  141. package/src/navigationItems/index.tsx +35 -35
  142. package/src/redux/features/administration/AdministrationStoresMetaData.ts +148 -148
  143. package/src/redux/features/common/AppInfoSlice.ts +65 -65
  144. package/src/redux/features/common/AppLayoutSlice.ts +29 -29
  145. package/src/redux/features/common/CommonStoreSlice.ts +44 -44
  146. package/src/redux/features/common/LoadingMaskSlice.ts +30 -30
  147. package/src/redux/features/common/SideBarSlice.ts +27 -27
  148. package/src/redux/features/common/UserSessionSlice.ts +54 -54
  149. package/src/redux/store.ts +29 -29
  150. package/src/routes/administration/adminRoutes.tsx +99 -99
  151. package/src/routes/administration/devRoutes.tsx +129 -129
  152. package/src/routes/administration/index.ts +8 -8
  153. package/src/routes/index.ts +11 -11
  154. package/src/routes/types/index.ts +6 -6
  155. package/src/styles/index.css +19 -19
  156. package/src/types/index.ts +8 -8
  157. package/src/util/AppUtils.ts +53 -53
  158. package/src/util/constants.ts +6 -6
  159. package/src/util/index.ts +2 -2
  160. package/tsconfig.json +135 -135
  161. package/vite.config.ts +24 -24
@@ -1,324 +1,324 @@
1
- import { attachment } from "./../attachment/AttachmentCard";
2
- import { IconProp } from "@fortawesome/fontawesome-svg-core";
3
- import {
4
- DataGridPremiumProps,
5
- GridColDef,
6
- GridRowSelectionModel,
7
- GridToolbarProps,
8
- ToolbarPropsOverrides,
9
- } from "@mui/x-data-grid-premium";
10
- import { UseFormReturn } from "react-hook-form";
11
- import { SxProps, TextFieldProps } from "@mui/material";
12
- import { ApiActions } from "../../../hooks/useApiActions";
13
- export type MakeOptional<T, K extends keyof T> = Omit<T, K> &
14
- Partial<Pick<T, K>>;
15
-
16
- // Generic Types for Data Entry
17
- export type RecordAction = {
18
- label?: string;
19
- icon: IconProp;
20
- isConfirmationRequired?: boolean;
21
- confirmationMessage?: string;
22
- authority?: string;
23
- getActionIconStyleForRecord?: (record: any) => object;
24
- isActionVisibleForRecord?: (record: any) => boolean;
25
- isActionDisabledForRecord?: (record: any) => boolean;
26
- actionFn: (
27
- data: any | Array<any>,
28
- recordIdsToProcessActionOn?: Array<any>
29
- ) => Promise<void>;
30
- preActionValidation?: (record: any) => boolean | Promise<boolean>;
31
- postActionCallBack?: (record: any) => any | void;
32
- gridActionProps?: {
33
- showInMenu?: boolean;
34
- multiRecord?: boolean;
35
- reloadGridAfterAction?: boolean;
36
- };
37
- formActionProps?: {
38
- enabled?: boolean;
39
- actionButtonVariant?: "text" | "outlined" | "contained";
40
- actionButtonColor?:
41
- | "inherit"
42
- | "primary"
43
- | "secondary"
44
- | "success"
45
- | "error"
46
- | "info"
47
- | "warning";
48
- };
49
- record?: any;
50
- reloadData?: (parameters?: any) => Promise<void>;
51
- recordsToProcessActionOn?: Array<any>;
52
- recordIdsToProcessActionOn?: Array<any>;
53
- };
54
-
55
- export type EditDeleteAction = {
56
- isEnabled: boolean;
57
- authority?: string;
58
- isActionVisibleForRecord?: (record: any) => boolean;
59
- isActionDisabledForRecord?: (record: any) => boolean;
60
- preActionValidation?: (record: any) => boolean | Promise<boolean>;
61
- postActionCallBack?: (record: any) => any | void;
62
- gridActionProps?: {
63
- showInMenu?: boolean;
64
- };
65
- formActionProps?: {
66
- actionButtonVariant?: "text" | "outlined" | "contained";
67
- actionButtonColor?:
68
- | "inherit"
69
- | "primary"
70
- | "secondary"
71
- | "success"
72
- | "error"
73
- | "info"
74
- | "warning";
75
- };
76
- record?: any;
77
- reloadData?: (parameters?: any) => Promise<void>;
78
- };
79
-
80
- // Template Grid Types
81
-
82
- export type TemplateGridColumnProps = {
83
- hidden?: boolean;
84
- searchable?: boolean;
85
- options?: Array<object>;
86
- displayField?: string;
87
- valueField?: string;
88
- muiProps?: MakeOptional<GridColDef, "field">;
89
- };
90
-
91
- export type TemplateGridColDef = GridColDef & {
92
- lookupType?: string;
93
- hidden?: boolean;
94
- searchable?: boolean;
95
- options?: Array<object>;
96
- displayField?: string;
97
- valueField?: string;
98
- };
99
-
100
- export type TemplateGridAttachmentProps = {
101
- attachmentCode: string;
102
- enableAttachFn?: (record: any) => boolean;
103
- };
104
-
105
- export type TemplateGridProps = {
106
- workFlowDocumentCode?: string;
107
- attachment?: TemplateGridAttachmentProps;
108
- formElements: Array<FormElementProps>;
109
- gridStateKey?: string;
110
- data: Array<any>;
111
- setData: any;
112
- keyColumnName?: any;
113
- autoLoad?: boolean;
114
- gridTitle: string;
115
- girdIcon: IconProp;
116
- editAction?: EditDeleteAction;
117
- deleteAction?: EditDeleteAction;
118
- rowActions?: Array<RecordAction>;
119
- gridLoadParameters?: Array<FormElementProps>;
120
- gridLoadParametersValues?: { [key: string]: any };
121
- setGridLoadParametersValues?: any;
122
- tBar?: any;
123
- disableDefaultAction?: boolean;
124
- enableQuickSearch?: boolean;
125
- enableExport?: boolean;
126
- enableDensitySelector?: boolean;
127
- hideInfoBar?: boolean;
128
- hideBackButton?: boolean;
129
- apiActions: ApiActions;
130
- rowSelectionModel?: GridRowSelectionModel;
131
- setRowSelectionModel?: any;
132
- setSelectedRecord?: any;
133
- setSelectedRecordIds?: any;
134
- formLoadCallBk?: (
135
- formActions: FormActionProps,
136
- formManager: UseFormReturn,
137
- record: any
138
- ) => void;
139
- editMode:
140
- | { editMode: "none" }
141
- | {
142
- editMode: "row";
143
- reloadAfterSave?: boolean;
144
- }
145
- | {
146
- editMode: "modal";
147
- specs?: {
148
- modalTitle?: string;
149
- modalIcon?: IconProp;
150
- modalHeight?: any;
151
- modalWidth?: any;
152
- modalMinHeight?: any;
153
- modalMinWidth?: any;
154
- formComponent?: React.FC<ModalFormProps>;
155
- };
156
- }
157
- | {
158
- editMode: "form";
159
- specs: {
160
- formRoute: string;
161
- };
162
- };
163
- muiProps?: MakeOptional<DataGridPremiumProps, "rows" | "columns">;
164
- };
165
-
166
- // Form Types
167
- export type ModalFormProps = {
168
- recordIdToEdit?: any;
169
- formCloseCallBk?: () => void;
170
- };
171
-
172
- export type FormElementSize = {
173
- lg?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
174
- md?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
175
- sm?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
176
- };
177
-
178
- export type RecordFieldProps = {
179
- fieldName: string;
180
- fieldLabel: string;
181
- fieldType:
182
- | "text"
183
- | "number"
184
- | "date"
185
- | "datetime"
186
- | "combobox"
187
- | "checkbox"
188
- | "html"
189
- | "lookup"
190
- | "custom";
191
- lookupType?: string;
192
- required?: boolean;
193
- disabled?: boolean;
194
- hidden?: boolean;
195
- dateFormat?: string;
196
- defaultValue?: any;
197
- options?: Array<any>;
198
- optionValueField?: string;
199
- optionDisplayField?: string;
200
- checkedValue?: any;
201
- unCheckedValue?: any;
202
- muiTextFieldProps?: TextFieldProps;
203
- gridProps?: TemplateGridColumnProps;
204
- formProps?: {
205
- fieldSize?: FormElementSize;
206
- fieldHeight?: number;
207
- style?: SxProps;
208
- onValueChangeCallBack?: (
209
- value: any,
210
- formManager: UseFormReturn,
211
- formActions?: FormActionProps,
212
- selectedRecord?: any
213
- ) => void;
214
- };
215
- };
216
-
217
- export type FormElementGroupProps = {
218
- style?: SxProps;
219
- icon?: IconProp;
220
- label?: string;
221
- elements?: Array<FormElementProps>;
222
- actions?: Array<RecordAction>;
223
- formManager?: UseFormReturn;
224
- formValues?: any;
225
- formActions?: any;
226
- hiddenFields?: string[];
227
- disabledFields?: string[];
228
- };
229
-
230
- export type FormElementFieldProps = {
231
- fieldInfo: RecordFieldProps;
232
- formManager?: UseFormReturn;
233
- formValues?: any;
234
- formActions?: any;
235
- hiddenFields?: string[];
236
- disabledFields?: string[];
237
- };
238
-
239
- export type FormElementNodeProps = {
240
- formManager?: UseFormReturn;
241
- formValues: any;
242
- formActions?: any;
243
- };
244
-
245
- export type FormElementProps =
246
- | {
247
- type: "group";
248
- props: FormElementGroupProps;
249
- }
250
- | {
251
- type: "field";
252
- mode: "node";
253
- node: React.FC<FormElementNodeProps>;
254
- props?: RecordFieldProps;
255
- }
256
- | {
257
- type: "field";
258
- mode: "props";
259
- props: RecordFieldProps;
260
- };
261
-
262
- export type FormActionProps = {
263
- setFieldValue: (fieldName: string, fieldValue: any) => void;
264
- hideField: (fieldName: string) => void;
265
- showField: (fieldName: string) => void;
266
- disableField: (fieldName: string) => void;
267
- enableField: (fieldName: string) => void;
268
- };
269
-
270
- export type TemplateFormProps = {
271
- workFlowDocumentCode?: string;
272
- attachment?: TemplateGridAttachmentProps;
273
- keyColumnName?: any;
274
- elements: Array<FormElementProps>;
275
- findByIdParamName?: string;
276
- recordIdToEdit?: any;
277
- formRouteRecordIdParamName?: string;
278
- actions?: Array<RecordAction>;
279
- editAuthorityKey?: string;
280
- apiActions: ApiActions;
281
- preSaveValidation?: (record: any) => boolean | Promise<boolean>;
282
- formSavedSuccessfullyCallBk?: (response: any) => void;
283
- formLoadCallBk?: (
284
- formActions: FormActionProps,
285
- formManager: UseFormReturn,
286
- record: any
287
- ) => void;
288
- formCloseCallBk?: () => void;
289
- saveButtonSpecs?: {
290
- label?: string;
291
- icon?: IconProp;
292
- hidden?: boolean;
293
- actionButtonVariant?: "text" | "outlined" | "contained";
294
- actionButtonColor?:
295
- | "inherit"
296
- | "primary"
297
- | "secondary"
298
- | "success"
299
- | "error"
300
- | "info"
301
- | "warning";
302
- };
303
- cancelButtonSpecs?: {
304
- label?: string;
305
- icon?: IconProp;
306
- hidden?: boolean;
307
- actionButtonVariant?: "text" | "outlined" | "contained";
308
- actionButtonColor?:
309
- | "inherit"
310
- | "primary"
311
- | "secondary"
312
- | "success"
313
- | "error"
314
- | "info"
315
- | "warning";
316
- };
317
- };
318
-
319
- export type TemplateGridTopBarProps = GridToolbarProps &
320
- ToolbarPropsOverrides & {
321
- templateProps: TemplateGridProps;
322
- handleCreateNewRecord?: () => void;
323
- clearGridState: () => void;
324
- };
1
+ import { attachment } from "./../attachment/AttachmentCard";
2
+ import { IconProp } from "@fortawesome/fontawesome-svg-core";
3
+ import {
4
+ DataGridPremiumProps,
5
+ GridColDef,
6
+ GridRowSelectionModel,
7
+ GridToolbarProps,
8
+ ToolbarPropsOverrides,
9
+ } from "@mui/x-data-grid-premium";
10
+ import { UseFormReturn } from "react-hook-form";
11
+ import { SxProps, TextFieldProps } from "@mui/material";
12
+ import { ApiActions } from "../../../hooks/useApiActions";
13
+ export type MakeOptional<T, K extends keyof T> = Omit<T, K> &
14
+ Partial<Pick<T, K>>;
15
+
16
+ // Generic Types for Data Entry
17
+ export type RecordAction = {
18
+ label?: string;
19
+ icon: IconProp;
20
+ isConfirmationRequired?: boolean;
21
+ confirmationMessage?: string;
22
+ authority?: string;
23
+ getActionIconStyleForRecord?: (record: any) => object;
24
+ isActionVisibleForRecord?: (record: any) => boolean;
25
+ isActionDisabledForRecord?: (record: any) => boolean;
26
+ actionFn: (
27
+ data: any | Array<any>,
28
+ recordIdsToProcessActionOn?: Array<any>
29
+ ) => Promise<void>;
30
+ preActionValidation?: (record: any) => boolean | Promise<boolean>;
31
+ postActionCallBack?: (record: any) => any | void;
32
+ gridActionProps?: {
33
+ showInMenu?: boolean;
34
+ multiRecord?: boolean;
35
+ reloadGridAfterAction?: boolean;
36
+ };
37
+ formActionProps?: {
38
+ enabled?: boolean;
39
+ actionButtonVariant?: "text" | "outlined" | "contained";
40
+ actionButtonColor?:
41
+ | "inherit"
42
+ | "primary"
43
+ | "secondary"
44
+ | "success"
45
+ | "error"
46
+ | "info"
47
+ | "warning";
48
+ };
49
+ record?: any;
50
+ reloadData?: (parameters?: any) => Promise<void>;
51
+ recordsToProcessActionOn?: Array<any>;
52
+ recordIdsToProcessActionOn?: Array<any>;
53
+ };
54
+
55
+ export type EditDeleteAction = {
56
+ isEnabled: boolean;
57
+ authority?: string;
58
+ isActionVisibleForRecord?: (record: any) => boolean;
59
+ isActionDisabledForRecord?: (record: any) => boolean;
60
+ preActionValidation?: (record: any) => boolean | Promise<boolean>;
61
+ postActionCallBack?: (record: any) => any | void;
62
+ gridActionProps?: {
63
+ showInMenu?: boolean;
64
+ };
65
+ formActionProps?: {
66
+ actionButtonVariant?: "text" | "outlined" | "contained";
67
+ actionButtonColor?:
68
+ | "inherit"
69
+ | "primary"
70
+ | "secondary"
71
+ | "success"
72
+ | "error"
73
+ | "info"
74
+ | "warning";
75
+ };
76
+ record?: any;
77
+ reloadData?: (parameters?: any) => Promise<void>;
78
+ };
79
+
80
+ // Template Grid Types
81
+
82
+ export type TemplateGridColumnProps = {
83
+ hidden?: boolean;
84
+ searchable?: boolean;
85
+ options?: Array<object>;
86
+ displayField?: string;
87
+ valueField?: string;
88
+ muiProps?: MakeOptional<GridColDef, "field">;
89
+ };
90
+
91
+ export type TemplateGridColDef = GridColDef & {
92
+ lookupType?: string;
93
+ hidden?: boolean;
94
+ searchable?: boolean;
95
+ options?: Array<object>;
96
+ displayField?: string;
97
+ valueField?: string;
98
+ };
99
+
100
+ export type TemplateGridAttachmentProps = {
101
+ attachmentCode: string;
102
+ enableAttachFn?: (record: any) => boolean;
103
+ };
104
+
105
+ export type TemplateGridProps = {
106
+ workFlowDocumentCode?: string;
107
+ attachment?: TemplateGridAttachmentProps;
108
+ formElements: Array<FormElementProps>;
109
+ gridStateKey?: string;
110
+ data: Array<any>;
111
+ setData: any;
112
+ keyColumnName?: any;
113
+ autoLoad?: boolean;
114
+ gridTitle: string;
115
+ girdIcon: IconProp;
116
+ editAction?: EditDeleteAction;
117
+ deleteAction?: EditDeleteAction;
118
+ rowActions?: Array<RecordAction>;
119
+ gridLoadParameters?: Array<FormElementProps>;
120
+ gridLoadParametersValues?: { [key: string]: any };
121
+ setGridLoadParametersValues?: any;
122
+ tBar?: any;
123
+ disableDefaultAction?: boolean;
124
+ enableQuickSearch?: boolean;
125
+ enableExport?: boolean;
126
+ enableDensitySelector?: boolean;
127
+ hideInfoBar?: boolean;
128
+ hideBackButton?: boolean;
129
+ apiActions: ApiActions;
130
+ rowSelectionModel?: GridRowSelectionModel;
131
+ setRowSelectionModel?: any;
132
+ setSelectedRecord?: any;
133
+ setSelectedRecordIds?: any;
134
+ formLoadCallBk?: (
135
+ formActions: FormActionProps,
136
+ formManager: UseFormReturn,
137
+ record: any
138
+ ) => void;
139
+ editMode:
140
+ | { editMode: "none" }
141
+ | {
142
+ editMode: "row";
143
+ reloadAfterSave?: boolean;
144
+ }
145
+ | {
146
+ editMode: "modal";
147
+ specs?: {
148
+ modalTitle?: string;
149
+ modalIcon?: IconProp;
150
+ modalHeight?: any;
151
+ modalWidth?: any;
152
+ modalMinHeight?: any;
153
+ modalMinWidth?: any;
154
+ formComponent?: React.FC<ModalFormProps>;
155
+ };
156
+ }
157
+ | {
158
+ editMode: "form";
159
+ specs: {
160
+ formRoute: string;
161
+ };
162
+ };
163
+ muiProps?: MakeOptional<DataGridPremiumProps, "rows" | "columns">;
164
+ };
165
+
166
+ // Form Types
167
+ export type ModalFormProps = {
168
+ recordIdToEdit?: any;
169
+ formCloseCallBk?: () => void;
170
+ };
171
+
172
+ export type FormElementSize = {
173
+ lg?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
174
+ md?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
175
+ sm?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
176
+ };
177
+
178
+ export type RecordFieldProps = {
179
+ fieldName: string;
180
+ fieldLabel: string;
181
+ fieldType:
182
+ | "text"
183
+ | "number"
184
+ | "date"
185
+ | "datetime"
186
+ | "combobox"
187
+ | "checkbox"
188
+ | "html"
189
+ | "lookup"
190
+ | "custom";
191
+ lookupType?: string;
192
+ required?: boolean;
193
+ disabled?: boolean;
194
+ hidden?: boolean;
195
+ dateFormat?: string;
196
+ defaultValue?: any;
197
+ options?: Array<any>;
198
+ optionValueField?: string;
199
+ optionDisplayField?: string;
200
+ checkedValue?: any;
201
+ unCheckedValue?: any;
202
+ muiTextFieldProps?: TextFieldProps;
203
+ gridProps?: TemplateGridColumnProps;
204
+ formProps?: {
205
+ fieldSize?: FormElementSize;
206
+ fieldHeight?: number;
207
+ style?: SxProps;
208
+ onValueChangeCallBack?: (
209
+ value: any,
210
+ formManager: UseFormReturn,
211
+ formActions?: FormActionProps,
212
+ selectedRecord?: any
213
+ ) => void;
214
+ };
215
+ };
216
+
217
+ export type FormElementGroupProps = {
218
+ style?: SxProps;
219
+ icon?: IconProp;
220
+ label?: string;
221
+ elements?: Array<FormElementProps>;
222
+ actions?: Array<RecordAction>;
223
+ formManager?: UseFormReturn;
224
+ formValues?: any;
225
+ formActions?: any;
226
+ hiddenFields?: string[];
227
+ disabledFields?: string[];
228
+ };
229
+
230
+ export type FormElementFieldProps = {
231
+ fieldInfo: RecordFieldProps;
232
+ formManager?: UseFormReturn;
233
+ formValues?: any;
234
+ formActions?: any;
235
+ hiddenFields?: string[];
236
+ disabledFields?: string[];
237
+ };
238
+
239
+ export type FormElementNodeProps = {
240
+ formManager?: UseFormReturn;
241
+ formValues: any;
242
+ formActions?: any;
243
+ };
244
+
245
+ export type FormElementProps =
246
+ | {
247
+ type: "group";
248
+ props: FormElementGroupProps;
249
+ }
250
+ | {
251
+ type: "field";
252
+ mode: "node";
253
+ node: React.FC<FormElementNodeProps>;
254
+ props?: RecordFieldProps;
255
+ }
256
+ | {
257
+ type: "field";
258
+ mode: "props";
259
+ props: RecordFieldProps;
260
+ };
261
+
262
+ export type FormActionProps = {
263
+ setFieldValue: (fieldName: string, fieldValue: any) => void;
264
+ hideField: (fieldName: string) => void;
265
+ showField: (fieldName: string) => void;
266
+ disableField: (fieldName: string) => void;
267
+ enableField: (fieldName: string) => void;
268
+ };
269
+
270
+ export type TemplateFormProps = {
271
+ workFlowDocumentCode?: string;
272
+ attachment?: TemplateGridAttachmentProps;
273
+ keyColumnName?: any;
274
+ elements: Array<FormElementProps>;
275
+ findByIdParamName?: string;
276
+ recordIdToEdit?: any;
277
+ formRouteRecordIdParamName?: string;
278
+ actions?: Array<RecordAction>;
279
+ editAuthorityKey?: string;
280
+ apiActions: ApiActions;
281
+ preSaveValidation?: (record: any) => boolean | Promise<boolean>;
282
+ formSavedSuccessfullyCallBk?: (response: any) => void;
283
+ formLoadCallBk?: (
284
+ formActions: FormActionProps,
285
+ formManager: UseFormReturn,
286
+ record: any
287
+ ) => void;
288
+ formCloseCallBk?: () => void;
289
+ saveButtonSpecs?: {
290
+ label?: string;
291
+ icon?: IconProp;
292
+ hidden?: boolean;
293
+ actionButtonVariant?: "text" | "outlined" | "contained";
294
+ actionButtonColor?:
295
+ | "inherit"
296
+ | "primary"
297
+ | "secondary"
298
+ | "success"
299
+ | "error"
300
+ | "info"
301
+ | "warning";
302
+ };
303
+ cancelButtonSpecs?: {
304
+ label?: string;
305
+ icon?: IconProp;
306
+ hidden?: boolean;
307
+ actionButtonVariant?: "text" | "outlined" | "contained";
308
+ actionButtonColor?:
309
+ | "inherit"
310
+ | "primary"
311
+ | "secondary"
312
+ | "success"
313
+ | "error"
314
+ | "info"
315
+ | "warning";
316
+ };
317
+ };
318
+
319
+ export type TemplateGridTopBarProps = GridToolbarProps &
320
+ ToolbarPropsOverrides & {
321
+ templateProps: TemplateGridProps;
322
+ handleCreateNewRecord?: () => void;
323
+ clearGridState: () => void;
324
+ };