@asaleh37/ui-base 1.2.29 → 25.1.9

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 (179) hide show
  1. package/.github/workflows/publish-npm.yml +49 -0
  2. package/README.md +51 -51
  3. package/__ODockerfile +14 -0
  4. package/dist/index.d.ts +101 -10
  5. package/dist/index.js +135 -7
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +135 -7
  8. package/dist/index.mjs.map +1 -1
  9. package/eslint.config.js +29 -29
  10. package/index.html +20 -13
  11. package/package-lock.json/342/200/216 +9040 -0
  12. package/package.json +122 -119
  13. package/public/bg.jpg +0 -0
  14. package/public/ezzsteel.png +0 -0
  15. package/public/logo.png +0 -0
  16. package/public/manifest.json +21 -0
  17. package/public/no_user.png +0 -0
  18. package/rollup.config-1748377725725.cjs +34 -34
  19. package/rollup.config.js +45 -45
  20. package/src/components/App.tsx +155 -123
  21. package/src/components/BaseApp.tsx +75 -53
  22. package/src/components/ExampleTrial.tsx +24 -0
  23. package/src/components/administration/admin/ChangePasswordPanel.tsx +128 -0
  24. package/src/components/administration/admin/CustomPersonGrid.tsx +361 -0
  25. package/src/components/administration/admin/OrgMemberRoleForm.tsx +83 -83
  26. package/src/components/administration/admin/OrgProvidedPersonGrid.tsx +347 -0
  27. package/src/components/administration/admin/OrganizationApplicationModuleGrid.tsx +107 -107
  28. package/src/components/administration/admin/OrganizationGrid.tsx +118 -82
  29. package/src/components/administration/admin/OrganizationMemberGrid.tsx +190 -176
  30. package/src/components/administration/admin/OrganizationMemberRoleGrid.tsx +87 -87
  31. package/src/components/administration/admin/OrganizationRankGrid.tsx +133 -133
  32. package/src/components/administration/admin/OrganizationUnitGrid.tsx +143 -143
  33. package/src/components/administration/admin/OrganizationUnitTypeGrid.tsx +108 -108
  34. package/src/components/administration/admin/PersonGrid.tsx +27 -231
  35. package/src/components/administration/admin/RoleAuthoritiesForm.tsx +82 -82
  36. package/src/components/administration/admin/SystemApplicationAuthorityGrid.tsx +117 -126
  37. package/src/components/administration/admin/SystemApplicationGrid.tsx +83 -83
  38. package/src/components/administration/admin/SystemApplicationModuleGrid.tsx +96 -96
  39. package/src/components/administration/admin/SystemApplicationRoleAuthorityGrid.tsx +75 -67
  40. package/src/components/administration/admin/SystemApplicationRoleGrid.tsx +116 -116
  41. package/src/components/administration/dev/AttachmentConfigGrid.tsx +224 -213
  42. package/src/components/administration/dev/AttachmentGrid.tsx +172 -172
  43. package/src/components/administration/dev/BluePrintGrid.tsx +129 -129
  44. package/src/components/administration/dev/DashboardGrid.tsx +173 -173
  45. package/src/components/administration/dev/DashboardWidgetGrid.tsx +164 -164
  46. package/src/components/administration/dev/DataQueryGrid.tsx +216 -206
  47. package/src/components/administration/dev/DataQueryParameterGrid.tsx +191 -191
  48. package/src/components/administration/dev/DataQueryParametersForm.tsx +84 -84
  49. package/src/components/administration/dev/DatasourceConnectionGrid.tsx +151 -150
  50. package/src/components/administration/dev/EntityParameterGrid.tsx +307 -279
  51. package/src/components/administration/dev/LookupGrid.tsx +120 -120
  52. package/src/components/administration/dev/MailAttachmentGrid.tsx +155 -155
  53. package/src/components/administration/dev/MailBodyGrid.tsx +216 -216
  54. package/src/components/administration/dev/MailNotificationQueueGrid.tsx +245 -245
  55. package/src/components/administration/dev/MailRecipientGrid.tsx +170 -169
  56. package/src/components/administration/dev/MailSenderConfigGrid.tsx +480 -478
  57. package/src/components/administration/dev/MailTemplateGrid.tsx +385 -384
  58. package/src/components/administration/dev/NotificationGrid.tsx +435 -432
  59. package/src/components/administration/dev/NotificationQueueGrid.tsx +222 -222
  60. package/src/components/administration/dev/ReportGrid.tsx +503 -504
  61. package/src/components/administration/dev/ReportParameterGrid.tsx +186 -186
  62. package/src/components/administration/dev/ReportParametersForm.tsx +84 -84
  63. package/src/components/administration/dev/WidgetGrid.tsx +380 -431
  64. package/src/components/administration/dev/WorkflowDocumentActionGrid.tsx +264 -264
  65. package/src/components/administration/dev/WorkflowDocumentActionHistoryGrid.tsx +172 -172
  66. package/src/components/administration/dev/WorkflowDocumentActionMailGrid.tsx +161 -161
  67. package/src/components/administration/dev/WorkflowDocumentGrid.tsx +357 -377
  68. package/src/components/administration/dev/WorkflowDocumentMailLogGrid.tsx +218 -218
  69. package/src/components/administration/dev/WorkflowDocumentStatusGrid.tsx +243 -243
  70. package/src/components/common/AzureLogin.tsx +222 -0
  71. package/src/components/common/ChangeOrgForm.tsx +85 -81
  72. package/src/components/common/Home.tsx +43 -44
  73. package/src/components/common/LanguageSwitcher.tsx +25 -25
  74. package/src/components/common/LayoutHandlers.tsx +11 -11
  75. package/src/components/common/LoadingMask.tsx +24 -24
  76. package/src/components/common/Login.tsx +268 -214
  77. package/src/components/common/MobileLogin.tsx +229 -0
  78. package/src/components/common/MyNotificationsPanel.tsx +109 -104
  79. package/src/components/common/NoLicenseComponent.tsx +79 -0
  80. package/src/components/common/NotificationItem.tsx +138 -138
  81. package/src/components/index.ts +10 -9
  82. package/src/components/msalConfig.ts +11 -0
  83. package/src/components/templates/DataEntryTemplates/DataEntryTypes.ts +361 -324
  84. package/src/components/templates/DataEntryTemplates/DataEntryUtil.ts +297 -248
  85. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormAction.tsx +60 -60
  86. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementField.tsx +238 -231
  87. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormElementGroup.tsx +108 -106
  88. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/CheckBox.tsx +66 -64
  89. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/ComboBox.tsx +164 -93
  90. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/Datefield.tsx +70 -65
  91. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/DatetimeField.tsx +71 -64
  92. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/FiltersPanel.tsx +237 -237
  93. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/SystemLookupCombobox.tsx +56 -55
  94. package/src/components/templates/DataEntryTemplates/TemplateDataForm/FormFields/TemplateTextField.tsx +20 -17
  95. package/src/components/templates/DataEntryTemplates/TemplateDataForm/TemplateForm.tsx +431 -388
  96. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/DataGridColumnsUtil.tsx +197 -189
  97. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGrid.tsx +1044 -998
  98. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridMultiRecordAction.tsx +89 -89
  99. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridRecordAction.tsx +95 -95
  100. package/src/components/templates/DataEntryTemplates/TemplateDataGrid/TemplateGridTopBar.tsx +234 -227
  101. package/src/components/templates/TransferList.tsx +256 -257
  102. package/src/components/templates/Window/ConfirmationWindow.tsx +55 -55
  103. package/src/components/templates/attachment/AttachmentCard.tsx +141 -141
  104. package/src/components/templates/attachment/AttachmentImageViewer.tsx +85 -45
  105. package/src/components/templates/attachment/AttachmentPanel.tsx +285 -271
  106. package/src/components/templates/index.ts +35 -33
  107. package/src/components/templates/report/ExcelReportViewer.tsx +71 -72
  108. package/src/components/templates/report/ReportViewer.tsx +272 -383
  109. package/src/components/templates/visuals/DashboardRouteView.tsx +9 -9
  110. package/src/components/templates/visuals/DashboardViewer.tsx +192 -148
  111. package/src/components/templates/visuals/WidgetViewer.tsx +208 -198
  112. package/src/components/templates/visuals/charts/TemplateBarChart.tsx +23 -23
  113. package/src/components/templates/visuals/charts/TemplateDataCard.tsx +35 -35
  114. package/src/components/templates/visuals/charts/TemplateGauge.tsx +21 -21
  115. package/src/components/templates/visuals/charts/TemplateLineChart.tsx +22 -22
  116. package/src/components/templates/visuals/charts/TemplateLineProgress.tsx +42 -42
  117. package/src/components/templates/visuals/charts/TemplatePieChart.tsx +24 -24
  118. package/src/components/templates/workflow/WorkflowDocumentPanel.tsx +611 -606
  119. package/src/components/templates/workflow/WorkflowDocumentTimeLine.tsx +145 -140
  120. package/src/components/templates/workflow/WorkflowRouteComponent.tsx +14 -14
  121. package/src/examples/ExampleGrid.tsx +134 -0
  122. package/src/hooks/UseConfirmationWindow.tsx +56 -54
  123. package/src/hooks/UseMobile.tsx +13 -13
  124. package/src/hooks/UseSession.tsx +59 -40
  125. package/src/hooks/UseWindow.tsx +111 -107
  126. package/src/hooks/index.ts +22 -7
  127. package/src/hooks/useApiActions.ts +124 -124
  128. package/src/hooks/useAxios.tsx +340 -316
  129. package/src/hooks/useCommonStore.tsx +29 -0
  130. package/src/hooks/useInterval.tsx +23 -23
  131. package/src/hooks/useLoadingMask.tsx +16 -16
  132. package/src/hooks/useLookupGridColumn.tsx +35 -35
  133. package/src/hooks/useParameterPanel.tsx +159 -0
  134. package/src/index.ts +4 -4
  135. package/src/layout/DrawerHeader.tsx +10 -10
  136. package/src/layout/Layout.tsx +102 -90
  137. package/src/layout/MainContent.tsx +115 -114
  138. package/src/layout/MobileDrawer.tsx +103 -103
  139. package/src/layout/NavigationTree.tsx +309 -291
  140. package/src/layout/NotificationButton.tsx +207 -207
  141. package/src/layout/RouteWrapper.tsx +63 -36
  142. package/src/layout/SideBar.tsx +85 -85
  143. package/src/layout/TopBar.tsx +317 -217
  144. package/src/locales/arabic/adminLocalsAr.json +94 -93
  145. package/src/locales/arabic/common.json +44 -44
  146. package/src/locales/arabic/devLocalsAr.json +317 -317
  147. package/src/locales/arabic/index.ts +9 -9
  148. package/src/locales/english/adminLocalsEn.json +97 -96
  149. package/src/locales/english/common.json +43 -43
  150. package/src/locales/english/devLocalsEn.json +318 -318
  151. package/src/locales/english/index.ts +9 -9
  152. package/src/locales/i18n.ts +8 -8
  153. package/src/locales/index.ts +9 -9
  154. package/src/main.tsx +41 -23
  155. package/src/navigationItems/Administration/adminNavigationItems.tsx +231 -222
  156. package/src/navigationItems/Administration/index.tsx +16 -16
  157. package/src/navigationItems/common/CommonNavigationItems.tsx +12 -12
  158. package/src/navigationItems/common/index.tsx +7 -7
  159. package/src/navigationItems/index.tsx +35 -34
  160. package/src/redux/features/administration/AdministrationStoresMetaData.ts +164 -126
  161. package/src/redux/features/common/AppInfoSlice.ts +93 -63
  162. package/src/redux/features/common/AppLayoutSlice.ts +29 -29
  163. package/src/redux/features/common/CommonStoreSlice.ts +44 -44
  164. package/src/redux/features/common/LoadingMaskSlice.ts +30 -30
  165. package/src/redux/features/common/SideBarSlice.ts +27 -27
  166. package/src/redux/features/common/UserSessionSlice.ts +54 -54
  167. package/src/redux/store.ts +29 -29
  168. package/src/routes/administration/adminRoutes.tsx +99 -99
  169. package/src/routes/administration/devRoutes.tsx +129 -129
  170. package/src/routes/administration/index.ts +8 -8
  171. package/src/routes/index.ts +5 -11
  172. package/src/routes/types/index.ts +6 -5
  173. package/src/styles/index.css +19 -19
  174. package/src/types/index.ts +8 -2
  175. package/src/util/AppUtils.ts +73 -53
  176. package/src/util/constants.ts +6 -6
  177. package/src/util/index.ts +5 -2
  178. package/tsconfig.json +135 -135
  179. package/vite.config.ts +24 -23
@@ -0,0 +1,49 @@
1
+ name: Publish to npm
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - prod
7
+
8
+ jobs:
9
+ publish:
10
+ runs-on: ubuntu-latest
11
+
12
+ steps:
13
+ - name: Checkout repo
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Use Node.js
17
+ uses: actions/setup-node@v4
18
+ with:
19
+ node-version: 20
20
+ registry-url: "https://registry.npmjs.org/"
21
+
22
+ - name: Install dependencies
23
+ run: npm install --force
24
+
25
+ - name: Run build (optional)
26
+ run: npm run build
27
+
28
+ - name: Publish to npm
29
+ run: npm publish --tag latest
30
+ env:
31
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
32
+ notify:
33
+ needs: publish
34
+ runs-on: ubuntu-latest
35
+ if: always() # ensures this step runs regardless of success or failure
36
+ steps:
37
+ - name: Send email notification
38
+ uses: dawidd6/action-send-mail@v3
39
+ with:
40
+ server_address: smtp.gmail.com
41
+ server_port: 587
42
+ username: ${{ secrets.SMTP_USERNAME }}
43
+ password: ${{ secrets.SMTP_PASSWORD }}
44
+ subject: ui-base package publish job is finished
45
+ to: ahmed.saleh.mohamed.92@gmail.com
46
+ from: ${{ secrets.SMTP_USERNAME }}
47
+ body: |
48
+ The GitHub Actions workflow has finished.
49
+ Status: ${{ needs.publish.result }}
package/README.md CHANGED
@@ -1,52 +1,52 @@
1
- **UI Base** is a React JS template designed for quickly scaffolding robust, production-ready Enterprise Applications Interface. It incorporates enterprise-grade architectural patterns and integrates a suite of essential features to accelerate development, including:
2
-
3
- - A modular, layered architecture with a clean separation of concerns and industry-standard project structure.
4
-
5
- - [ ] Create new react project using vite.
6
-
7
- ```javascript
8
- npm create vite@latest YOUR_APP_NAME //choose typescript as template
9
- cd YOUR_APP_NAME
10
- npm install
11
- ```
12
-
13
- - [ ] Install the UI Base Dependency.
14
-
15
- ```javascript
16
- npm install @asaleh37/ui-base --force
17
- ```
18
-
19
- - [ ] replace the content of the file src/main.tsx
20
-
21
- ```javascript
22
- import { BaseApp } from "@asaleh37/ui-base";
23
- import { createRoot } from "react-dom/client";
24
-
25
- createRoot(document.getElementById("root")!).render(
26
-   <BaseApp
27
-     apiBaseUrl="YOUR_API_URL"
28
-     appLogo={"YOUR_APP_LOGO_PATH"}
29
-     appName="YOUR_APP_NAME"
30
-     appVersion="YOUR_APP_VERSION"
31
-     businessCommonStoresMetaData={{}}
32
-     businessNavigationItems={[]}
33
-     businessReduxReducers={{}}
34
-     businessRoutes={[]}
35
-     documentTitle="YOUR_HTML_DOCUMENT_TITLE"
36
-     enableAdministrationModule={true} // to enable administration module or not
37
- /* // To Change APP Coloring Theme modify the following colors
38
-     appTheme={{
39
-       dark: { primaryColor: "#b3a10c", secondaryColor: "#2b3c46" },
40
-       light: { primaryColor: "#2b3c46", secondaryColor: "#b3a10c" },
41
-     }}
42
- */
43
-   muiPremiumKey="YOUR_MUI_PREMIUM_KEY"
44
-   />
45
- );
46
- ```
47
-
48
- - [ ] then go to the root of your project and then run the following command
49
-
50
- ```javascript
51
- npm run dev
1
+ **UI Base** is a React JS template designed for quickly scaffolding robust, production-ready Enterprise Applications Interface. It incorporates enterprise-grade architectural patterns and integrates a suite of essential features to accelerate development, including:
2
+
3
+ - A modular, layered architecture with a clean separation of concerns and industry-standard project structure.
4
+
5
+ - [ ] Create new react project using vite.
6
+
7
+ ```javascript
8
+ npm create vite@latest YOUR_APP_NAME //choose typescript as template
9
+ cd YOUR_APP_NAME
10
+ npm install
11
+ ```
12
+
13
+ - [ ] Install the UI Base Dependency.
14
+
15
+ ```javascript
16
+ npm install @asaleh37/ui-base --force
17
+ ```
18
+
19
+ - [ ] replace the content of the file src/main.tsx
20
+
21
+ ```javascript
22
+ import { BaseApp } from "@asaleh37/ui-base";
23
+ import { createRoot } from "react-dom/client";
24
+
25
+ createRoot(document.getElementById("root")!).render(
26
+   <BaseApp
27
+     apiBaseUrl="YOUR_API_URL"
28
+     appLogo={"YOUR_APP_LOGO_PATH"}
29
+     appName="YOUR_APP_NAME"
30
+     appVersion="YOUR_APP_VERSION"
31
+     businessCommonStoresMetaData={{}}
32
+     businessNavigationItems={[]}
33
+     businessReduxReducers={{}}
34
+     businessRoutes={[]}
35
+     documentTitle="YOUR_HTML_DOCUMENT_TITLE"
36
+     enableAdministrationModule={true} // to enable administration module or not
37
+ /* // To Change APP Coloring Theme modify the following colors
38
+     appTheme={{
39
+       dark: { primaryColor: "#b3a10c", secondaryColor: "#2b3c46" },
40
+       light: { primaryColor: "#2b3c46", secondaryColor: "#b3a10c" },
41
+     }}
42
+ */
43
+   muiPremiumKey="YOUR_MUI_PREMIUM_KEY"
44
+   />
45
+ );
46
+ ```
47
+
48
+ - [ ] then go to the root of your project and then run the following command
49
+
50
+ ```javascript
51
+ npm run dev
52
52
  ```
package/__ODockerfile ADDED
@@ -0,0 +1,14 @@
1
+ # STEP 1 — Build static files
2
+ FROM node:18 AS build
3
+ WORKDIR /app
4
+
5
+ COPY package.json ./
6
+ RUN npm install --force
7
+
8
+ COPY . .
9
+ RUN npm run build
10
+
11
+ # STEP 2 — Nginx to serve static build
12
+ FROM nginx:1.25
13
+ COPY --from=build /app/dist /usr/share/nginx/html
14
+ EXPOSE 80
package/dist/index.d.ts CHANGED
@@ -1,22 +1,32 @@
1
+ import { GridColDef, GridRowSelectionModel, DataGridPremiumProps, GridToolbarProps, ToolbarPropsOverrides } from '@mui/x-data-grid-premium';
2
+ export { DataGridPremium } from '@mui/x-data-grid-premium';
1
3
  import { Reducer } from '@reduxjs/toolkit';
2
4
  import { IconProp } from '@fortawesome/fontawesome-svg-core';
3
5
  import { TextFieldProps, SxProps } from '@mui/material';
4
6
  export * from '@mui/material';
5
- export * from 'zod';
6
7
  export * from '@mui/lab';
7
8
  export { toast } from 'react-toastify';
8
9
  export { FontAwesomeIcon, FontAwesomeIconProps } from '@fortawesome/react-fontawesome';
9
10
  import * as react from 'react';
10
11
  import react__default from 'react';
11
- import { GridColDef, GridRowSelectionModel, DataGridPremiumProps, GridToolbarProps, ToolbarPropsOverrides } from '@mui/x-data-grid-premium';
12
12
  import { UseFormReturn } from 'react-hook-form';
13
+ export { useForm } from 'react-hook-form';
14
+ import { z } from 'zod';
15
+ import * as zod from 'zod';
16
+ export { zod as z };
13
17
  import { TFunction } from 'i18next';
14
18
  export * from '@mui/x-tree-view/models';
19
+ export { useTranslation } from 'react-i18next';
20
+ export { useNavigate, useParams } from 'react-router-dom';
21
+ export { zodResolver } from '@hookform/resolvers/zod';
22
+ export { useDispatch, useSelector } from 'react-redux';
15
23
  import { ResponseType } from 'axios';
24
+ export { default as axios } from 'axios';
16
25
 
17
26
  interface SystemRoute {
18
27
  path: string;
19
28
  component: React.FC;
29
+ applicationModule?: string;
20
30
  authority?: string;
21
31
  }
22
32
 
@@ -26,6 +36,7 @@ type ExtendedTreeItemProps = {
26
36
  label: string;
27
37
  action?: "NAVIGATION";
28
38
  authority?: string;
39
+ applicationModule?: string;
29
40
  actionPayload?: {
30
41
  path?: string;
31
42
  parameters?: object;
@@ -33,12 +44,21 @@ type ExtendedTreeItemProps = {
33
44
  children?: ExtendedTreeItemProps[];
34
45
  };
35
46
 
36
- interface StoreMetaData {
47
+ type CommonStores = {
48
+ [key: string]: StoreMetaData;
49
+ };
50
+ type CommonStoresInterface = {
51
+ stores: {
52
+ [key: string]: StoreMetaData;
53
+ };
54
+ storeKeys: Array<String>;
55
+ };
56
+ type StoreMetaData = {
37
57
  url: string;
38
58
  data: Array<any>;
39
59
  autoLoad: boolean;
40
60
  authority?: string;
41
- }
61
+ };
42
62
 
43
63
  type AppInfo = {
44
64
  documentTitle: string | null;
@@ -46,6 +66,8 @@ type AppInfo = {
46
66
  appName: string | null;
47
67
  appVersion: string | null;
48
68
  appLogo: any | null;
69
+ isUserProfileManaged?: boolean;
70
+ isLocalizationEnabled?: boolean;
49
71
  businessLocals?: {
50
72
  ar: {
51
73
  [key: string]: string;
@@ -54,6 +76,20 @@ type AppInfo = {
54
76
  [key: string]: string;
55
77
  };
56
78
  };
79
+ appThemeMode: "dark" | "light";
80
+ allowThemeChange?: boolean;
81
+ loginScreenStyle?: {
82
+ themeMode: "dark" | "light";
83
+ backgroundImageNameInPublicFolder?: string;
84
+ backgroundColor?: string;
85
+ };
86
+ authenticationMethod: "AZURE" | "APP";
87
+ azureConfiguration?: {
88
+ frontEndClientId: string;
89
+ tenantId: string;
90
+ redirectURL: string;
91
+ scopes: Array<string>;
92
+ };
57
93
  businessRoutes?: Array<SystemRoute>;
58
94
  businessNavigationItems?: Array<ExtendedTreeItemProps>;
59
95
  businessReduxReducers?: {
@@ -64,6 +100,7 @@ type AppInfo = {
64
100
  };
65
101
  muiPremiumKey: string;
66
102
  enableAdministrationModule: boolean;
103
+ enableUINotifications: Boolean;
67
104
  appTheme?: {
68
105
  light: {
69
106
  primaryColor: string;
@@ -74,6 +111,10 @@ type AppInfo = {
74
111
  secondaryColor: string;
75
112
  };
76
113
  };
114
+ checkLicense?: {
115
+ endpoint: string;
116
+ interval: number;
117
+ };
77
118
  };
78
119
 
79
120
  declare const BaseApp: React.FC<AppInfo>;
@@ -91,6 +132,7 @@ interface CheckBoxProps {
91
132
  value: any;
92
133
  disabled?: boolean;
93
134
  required?: boolean;
135
+ hidden?: boolean;
94
136
  label: string;
95
137
  checkedValue?: any;
96
138
  unCheckedValue?: any;
@@ -105,8 +147,14 @@ interface ComboBoxProps {
105
147
  label: string;
106
148
  disabled?: boolean;
107
149
  required?: boolean;
108
- options: Array<any>;
150
+ groupField?: string;
151
+ commonStoreKey?: string;
152
+ dataQueryId?: number;
153
+ storeUrl?: string;
154
+ storeLoadParam?: any;
155
+ options?: Array<any>;
109
156
  errorMessage?: any;
157
+ hidden?: boolean;
110
158
  displayField: string;
111
159
  valueField: string;
112
160
  sx?: any;
@@ -118,6 +166,7 @@ interface DatefieldProps {
118
166
  label: string;
119
167
  disabled?: boolean;
120
168
  required?: boolean;
169
+ hidden?: boolean;
121
170
  sx?: any;
122
171
  format?: string;
123
172
  errorMessage?: any;
@@ -131,6 +180,7 @@ interface DatetimeFieldProps {
131
180
  label: string;
132
181
  disabled?: boolean;
133
182
  required?: boolean;
183
+ hidden?: boolean;
134
184
  format?: string;
135
185
  sx?: any;
136
186
  errorMessage?: any;
@@ -148,6 +198,7 @@ type SystemLookupListProps = {
148
198
  label: string;
149
199
  disabled?: boolean;
150
200
  required?: boolean;
201
+ hidden?: boolean;
151
202
  errorMessage?: any;
152
203
  sx?: any;
153
204
  };
@@ -176,6 +227,7 @@ type RecordAction = {
176
227
  label?: string;
177
228
  icon: IconProp;
178
229
  isConfirmationRequired?: boolean;
230
+ isIdRequired?: Boolean;
179
231
  confirmationMessage?: string;
180
232
  authority?: string;
181
233
  getActionIconStyleForRecord?: (record: any) => object;
@@ -231,6 +283,11 @@ type TemplateGridColDef = GridColDef & {
231
283
  options?: Array<object>;
232
284
  displayField?: string;
233
285
  valueField?: string;
286
+ commonStoreKey?: string;
287
+ dataQueryId?: number;
288
+ storeUrl?: string;
289
+ storeLoadParam?: any;
290
+ comboboxGroupField?: string;
234
291
  };
235
292
  type TemplateGridAttachmentProps = {
236
293
  attachmentCode: string;
@@ -261,13 +318,21 @@ type TemplateGridProps = {
261
318
  enableExport?: boolean;
262
319
  enableDensitySelector?: boolean;
263
320
  hideInfoBar?: boolean;
321
+ hideCreateBtn?: boolean;
264
322
  hideBackButton?: boolean;
265
323
  apiActions: ApiActions;
266
324
  rowSelectionModel?: GridRowSelectionModel;
267
325
  setRowSelectionModel?: any;
268
326
  setSelectedRecord?: any;
269
327
  setSelectedRecordIds?: any;
270
- formLoadCallBk?: (formActions: FormActionProps, formManager: UseFormReturn, record: any) => void;
328
+ formProps?: {
329
+ formValuesChangeCallBk?: FormValueChangeCallBk;
330
+ };
331
+ validationSchema?: z.ZodObject<any, "strip", z.ZodTypeAny, {
332
+ [x: string]: any;
333
+ }, {
334
+ [x: string]: any;
335
+ }>;
271
336
  editMode: {
272
337
  editMode: "none";
273
338
  } | {
@@ -306,6 +371,12 @@ type RecordFieldProps = {
306
371
  fieldLabel: string;
307
372
  fieldType: "text" | "number" | "date" | "datetime" | "combobox" | "checkbox" | "html" | "lookup" | "custom";
308
373
  lookupType?: string;
374
+ comboboxValueDataType?: "number" | "string";
375
+ comboboxGroupField?: string;
376
+ commonStoreKey?: string;
377
+ dataQueryId?: number;
378
+ storeUrl?: string;
379
+ storeLoadParam?: any;
309
380
  required?: boolean;
310
381
  disabled?: boolean;
311
382
  hidden?: boolean;
@@ -320,9 +391,9 @@ type RecordFieldProps = {
320
391
  gridProps?: TemplateGridColumnProps;
321
392
  formProps?: {
322
393
  fieldSize?: FormElementSize;
394
+ fieldLabelFn?: (record: any) => string;
323
395
  fieldHeight?: number;
324
396
  style?: SxProps;
325
- onValueChangeCallBack?: (value: any, formManager: UseFormReturn, formActions?: FormActionProps, selectedRecord?: any) => void;
326
397
  };
327
398
  };
328
399
  type FormElementGroupProps = {
@@ -336,7 +407,9 @@ type FormElementGroupProps = {
336
407
  formActions?: any;
337
408
  hiddenFields?: string[];
338
409
  disabledFields?: string[];
410
+ formValuesChangeCallBk?: FormValueChangeCallBk;
339
411
  };
412
+ type FormValueChangeCallBk = (formValues: any, formActions: FormActionProps, formManager: UseFormReturn, fieldName?: string, newValue?: any, selectedRecord?: any) => void;
340
413
  type FormElementFieldProps = {
341
414
  fieldInfo: RecordFieldProps;
342
415
  formManager?: UseFormReturn;
@@ -344,6 +417,7 @@ type FormElementFieldProps = {
344
417
  formActions?: any;
345
418
  hiddenFields?: string[];
346
419
  disabledFields?: string[];
420
+ formValuesChangeCallBk?: FormValueChangeCallBk;
347
421
  };
348
422
  type FormElementNodeProps = {
349
423
  formManager?: UseFormReturn;
@@ -383,7 +457,7 @@ type TemplateFormProps = {
383
457
  apiActions: ApiActions;
384
458
  preSaveValidation?: (record: any) => boolean | Promise<boolean>;
385
459
  formSavedSuccessfullyCallBk?: (response: any) => void;
386
- formLoadCallBk?: (formActions: FormActionProps, formManager: UseFormReturn, record: any) => void;
460
+ formValuesChangeCallBk?: FormValueChangeCallBk;
387
461
  formCloseCallBk?: () => void;
388
462
  saveButtonSpecs?: {
389
463
  label?: string;
@@ -399,6 +473,11 @@ type TemplateFormProps = {
399
473
  actionButtonVariant?: "text" | "outlined" | "contained";
400
474
  actionButtonColor?: "inherit" | "primary" | "secondary" | "success" | "error" | "info" | "warning";
401
475
  };
476
+ validationSchema?: z.ZodObject<any, "strip", z.ZodTypeAny, {
477
+ [x: string]: any;
478
+ }, {
479
+ [x: string]: any;
480
+ }>;
402
481
  };
403
482
  type TemplateGridTopBarProps = GridToolbarProps & ToolbarPropsOverrides & {
404
483
  templateProps: TemplateGridProps;
@@ -442,6 +521,7 @@ type AttachmentImageViewerProps = {
442
521
  refKey?: string;
443
522
  category?: string;
444
523
  showAsAvatar?: boolean;
524
+ onErrorImage?: string;
445
525
  style?: SxProps;
446
526
  };
447
527
  declare const AttachmentImageViewer: React.FC<AttachmentImageViewerProps>;
@@ -539,6 +619,8 @@ declare const TemplatePieChart: React.FC<WidgetProps>;
539
619
 
540
620
  declare const DashboardRouteView: React.FC;
541
621
 
622
+ declare const FormElementField: React.FC<FormElementFieldProps>;
623
+
542
624
  interface APIRequest {
543
625
  endPointURI: string;
544
626
  parameters?: any;
@@ -588,6 +670,7 @@ declare const useIsMobile: (breakpoint?: number) => boolean;
588
670
  declare const useSession: () => {
589
671
  UserSession: any;
590
672
  isUserAuthorized: (authorityCode: string) => boolean;
673
+ isCurrentOrganizationAuthorizedToModule: (moduleCode: string) => Boolean;
591
674
  UserInfo: any;
592
675
  };
593
676
 
@@ -609,12 +692,20 @@ declare const useWindow: (props: TemplateWindowProp) => {
609
692
  Window: react.FC<WindowProps>;
610
693
  };
611
694
 
695
+ declare const useCommonStore: (storeKey: string) => {
696
+ reload: () => Promise<void>;
697
+ data: any[];
698
+ store: StoreMetaData;
699
+ };
700
+
612
701
  declare function hasDigitsOnly(str: string): boolean;
613
702
  declare function isNumber(value: any): boolean;
614
703
  declare function isNumeric(value: string): boolean;
615
704
  declare function capitalizeFirstLetter(str: string): string;
616
705
  declare function isValidEmail(email: any): boolean;
617
706
  declare function timeAgo(dateInput: any, appDirection: "ltr" | "rtl"): string;
707
+ declare const formatDate: (date: any, format: any) => string;
708
+ declare const parseStringToDate: (dateString: any, format: any) => Date;
618
709
 
619
710
  declare const DATE_FORMAT = "YYYY-MM-DD";
620
711
  declare const DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
@@ -623,5 +714,5 @@ declare const LIGHT_THEME_INITIAL_SECANDARY_COLOR = "#ff6d00";
623
714
  declare const DARK_THEME_INITIAL_MAIN_COLOR = "#ea690e";
624
715
  declare const DARK_THEME_INITIAL_SECANDARY_COLOR = "#74776B";
625
716
 
626
- export { AttachmentCard, AttachmentImageViewer, AttachmentPanel, BaseApp, CheckBox, ComboBox, DARK_THEME_INITIAL_MAIN_COLOR, DARK_THEME_INITIAL_SECANDARY_COLOR, DATE_FORMAT, DATE_TIME_FORMAT, DashboardRouteView, DashboardViewer, Datefield, DatetimeField, ExcelReportViewer, LIGHT_THEME_INITIAL_MAIN_COLOR, LIGHT_THEME_INITIAL_SECANDARY_COLOR, ReportViewer, SystemLookupCombobox, TemplateBarChart, TemplateDataCard, TemplateForm, TemplateGauge, TemplateGrid, TemplateLineChart, TemplateLineProgress, TemplatePieChart, TemplateTextField, TransferList, WorkflowDocumentPanel, WorkflowDocumentTimeLine, WorkflowRouteComponent, capitalizeFirstLetter, constructGridColumnsFromFields, constructValidationSchema, getAllFields, getElementFields, getGridSelection, hasDigitsOnly, isNumber, isNumeric, isValidEmail, timeAgo, useApiActions, useAxios, useConfirmationWindow, useIsMobile, useLoadingMask, useSession, useWindow };
627
- export type { EditDeleteAction, ExtendedTreeItemProps, FormActionProps, FormElementFieldProps, FormElementGroupProps, FormElementNodeProps, FormElementProps, FormElementSize, GridSelection, MakeOptional, ModalFormProps, RecordAction, RecordFieldProps, SystemRoute, TemplateFormProps, TemplateGridAttachmentProps, TemplateGridColDef, TemplateGridColumnProps, TemplateGridProps, TemplateGridTopBarProps, TransferListProps };
717
+ export { AttachmentCard, AttachmentImageViewer, AttachmentPanel, BaseApp, CheckBox, ComboBox, DARK_THEME_INITIAL_MAIN_COLOR, DARK_THEME_INITIAL_SECANDARY_COLOR, DATE_FORMAT, DATE_TIME_FORMAT, DashboardRouteView, DashboardViewer, Datefield, DatetimeField, ExcelReportViewer, FormElementField as FormElement, LIGHT_THEME_INITIAL_MAIN_COLOR, LIGHT_THEME_INITIAL_SECANDARY_COLOR, ReportViewer, SystemLookupCombobox, TemplateBarChart, TemplateDataCard, TemplateForm, TemplateGauge, TemplateGrid, TemplateLineChart, TemplateLineProgress, TemplatePieChart, TemplateTextField, TransferList, WorkflowDocumentPanel, WorkflowDocumentTimeLine, WorkflowRouteComponent, capitalizeFirstLetter, constructGridColumnsFromFields, constructValidationSchema, formatDate, getAllFields, getElementFields, getGridSelection, hasDigitsOnly, isNumber, isNumeric, isValidEmail, parseStringToDate, timeAgo, useApiActions, useAxios, useCommonStore, useConfirmationWindow, useIsMobile, useLoadingMask, useSession, useWindow };
718
+ export type { CommonStores, CommonStoresInterface, EditDeleteAction, ExtendedTreeItemProps, FormActionProps, FormElementFieldProps, FormElementGroupProps, FormElementNodeProps, FormElementProps, FormElementSize, FormValueChangeCallBk, GridSelection, MakeOptional, ModalFormProps, RecordAction, RecordFieldProps, StoreMetaData, SystemRoute, TemplateFormProps, TemplateGridAttachmentProps, TemplateGridColDef, TemplateGridColumnProps, TemplateGridProps, TemplateGridTopBarProps, TransferListProps };