@asaleh37/ui-base 1.2.30 → 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 +92 -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 +50 -50
  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 -7
  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;
@@ -42,12 +53,12 @@ type CommonStoresInterface = {
42
53
  };
43
54
  storeKeys: Array<String>;
44
55
  };
45
- interface StoreMetaData {
56
+ type StoreMetaData = {
46
57
  url: string;
47
58
  data: Array<any>;
48
59
  autoLoad: boolean;
49
60
  authority?: string;
50
- }
61
+ };
51
62
 
52
63
  type AppInfo = {
53
64
  documentTitle: string | null;
@@ -55,6 +66,8 @@ type AppInfo = {
55
66
  appName: string | null;
56
67
  appVersion: string | null;
57
68
  appLogo: any | null;
69
+ isUserProfileManaged?: boolean;
70
+ isLocalizationEnabled?: boolean;
58
71
  businessLocals?: {
59
72
  ar: {
60
73
  [key: string]: string;
@@ -63,6 +76,20 @@ type AppInfo = {
63
76
  [key: string]: string;
64
77
  };
65
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
+ };
66
93
  businessRoutes?: Array<SystemRoute>;
67
94
  businessNavigationItems?: Array<ExtendedTreeItemProps>;
68
95
  businessReduxReducers?: {
@@ -73,6 +100,7 @@ type AppInfo = {
73
100
  };
74
101
  muiPremiumKey: string;
75
102
  enableAdministrationModule: boolean;
103
+ enableUINotifications: Boolean;
76
104
  appTheme?: {
77
105
  light: {
78
106
  primaryColor: string;
@@ -83,6 +111,10 @@ type AppInfo = {
83
111
  secondaryColor: string;
84
112
  };
85
113
  };
114
+ checkLicense?: {
115
+ endpoint: string;
116
+ interval: number;
117
+ };
86
118
  };
87
119
 
88
120
  declare const BaseApp: React.FC<AppInfo>;
@@ -100,6 +132,7 @@ interface CheckBoxProps {
100
132
  value: any;
101
133
  disabled?: boolean;
102
134
  required?: boolean;
135
+ hidden?: boolean;
103
136
  label: string;
104
137
  checkedValue?: any;
105
138
  unCheckedValue?: any;
@@ -114,8 +147,14 @@ interface ComboBoxProps {
114
147
  label: string;
115
148
  disabled?: boolean;
116
149
  required?: boolean;
117
- options: Array<any>;
150
+ groupField?: string;
151
+ commonStoreKey?: string;
152
+ dataQueryId?: number;
153
+ storeUrl?: string;
154
+ storeLoadParam?: any;
155
+ options?: Array<any>;
118
156
  errorMessage?: any;
157
+ hidden?: boolean;
119
158
  displayField: string;
120
159
  valueField: string;
121
160
  sx?: any;
@@ -127,6 +166,7 @@ interface DatefieldProps {
127
166
  label: string;
128
167
  disabled?: boolean;
129
168
  required?: boolean;
169
+ hidden?: boolean;
130
170
  sx?: any;
131
171
  format?: string;
132
172
  errorMessage?: any;
@@ -140,6 +180,7 @@ interface DatetimeFieldProps {
140
180
  label: string;
141
181
  disabled?: boolean;
142
182
  required?: boolean;
183
+ hidden?: boolean;
143
184
  format?: string;
144
185
  sx?: any;
145
186
  errorMessage?: any;
@@ -157,6 +198,7 @@ type SystemLookupListProps = {
157
198
  label: string;
158
199
  disabled?: boolean;
159
200
  required?: boolean;
201
+ hidden?: boolean;
160
202
  errorMessage?: any;
161
203
  sx?: any;
162
204
  };
@@ -185,6 +227,7 @@ type RecordAction = {
185
227
  label?: string;
186
228
  icon: IconProp;
187
229
  isConfirmationRequired?: boolean;
230
+ isIdRequired?: Boolean;
188
231
  confirmationMessage?: string;
189
232
  authority?: string;
190
233
  getActionIconStyleForRecord?: (record: any) => object;
@@ -240,6 +283,11 @@ type TemplateGridColDef = GridColDef & {
240
283
  options?: Array<object>;
241
284
  displayField?: string;
242
285
  valueField?: string;
286
+ commonStoreKey?: string;
287
+ dataQueryId?: number;
288
+ storeUrl?: string;
289
+ storeLoadParam?: any;
290
+ comboboxGroupField?: string;
243
291
  };
244
292
  type TemplateGridAttachmentProps = {
245
293
  attachmentCode: string;
@@ -270,13 +318,21 @@ type TemplateGridProps = {
270
318
  enableExport?: boolean;
271
319
  enableDensitySelector?: boolean;
272
320
  hideInfoBar?: boolean;
321
+ hideCreateBtn?: boolean;
273
322
  hideBackButton?: boolean;
274
323
  apiActions: ApiActions;
275
324
  rowSelectionModel?: GridRowSelectionModel;
276
325
  setRowSelectionModel?: any;
277
326
  setSelectedRecord?: any;
278
327
  setSelectedRecordIds?: any;
279
- 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
+ }>;
280
336
  editMode: {
281
337
  editMode: "none";
282
338
  } | {
@@ -315,6 +371,12 @@ type RecordFieldProps = {
315
371
  fieldLabel: string;
316
372
  fieldType: "text" | "number" | "date" | "datetime" | "combobox" | "checkbox" | "html" | "lookup" | "custom";
317
373
  lookupType?: string;
374
+ comboboxValueDataType?: "number" | "string";
375
+ comboboxGroupField?: string;
376
+ commonStoreKey?: string;
377
+ dataQueryId?: number;
378
+ storeUrl?: string;
379
+ storeLoadParam?: any;
318
380
  required?: boolean;
319
381
  disabled?: boolean;
320
382
  hidden?: boolean;
@@ -329,9 +391,9 @@ type RecordFieldProps = {
329
391
  gridProps?: TemplateGridColumnProps;
330
392
  formProps?: {
331
393
  fieldSize?: FormElementSize;
394
+ fieldLabelFn?: (record: any) => string;
332
395
  fieldHeight?: number;
333
396
  style?: SxProps;
334
- onValueChangeCallBack?: (value: any, formManager: UseFormReturn, formActions?: FormActionProps, selectedRecord?: any) => void;
335
397
  };
336
398
  };
337
399
  type FormElementGroupProps = {
@@ -345,7 +407,9 @@ type FormElementGroupProps = {
345
407
  formActions?: any;
346
408
  hiddenFields?: string[];
347
409
  disabledFields?: string[];
410
+ formValuesChangeCallBk?: FormValueChangeCallBk;
348
411
  };
412
+ type FormValueChangeCallBk = (formValues: any, formActions: FormActionProps, formManager: UseFormReturn, fieldName?: string, newValue?: any, selectedRecord?: any) => void;
349
413
  type FormElementFieldProps = {
350
414
  fieldInfo: RecordFieldProps;
351
415
  formManager?: UseFormReturn;
@@ -353,6 +417,7 @@ type FormElementFieldProps = {
353
417
  formActions?: any;
354
418
  hiddenFields?: string[];
355
419
  disabledFields?: string[];
420
+ formValuesChangeCallBk?: FormValueChangeCallBk;
356
421
  };
357
422
  type FormElementNodeProps = {
358
423
  formManager?: UseFormReturn;
@@ -392,7 +457,7 @@ type TemplateFormProps = {
392
457
  apiActions: ApiActions;
393
458
  preSaveValidation?: (record: any) => boolean | Promise<boolean>;
394
459
  formSavedSuccessfullyCallBk?: (response: any) => void;
395
- formLoadCallBk?: (formActions: FormActionProps, formManager: UseFormReturn, record: any) => void;
460
+ formValuesChangeCallBk?: FormValueChangeCallBk;
396
461
  formCloseCallBk?: () => void;
397
462
  saveButtonSpecs?: {
398
463
  label?: string;
@@ -408,6 +473,11 @@ type TemplateFormProps = {
408
473
  actionButtonVariant?: "text" | "outlined" | "contained";
409
474
  actionButtonColor?: "inherit" | "primary" | "secondary" | "success" | "error" | "info" | "warning";
410
475
  };
476
+ validationSchema?: z.ZodObject<any, "strip", z.ZodTypeAny, {
477
+ [x: string]: any;
478
+ }, {
479
+ [x: string]: any;
480
+ }>;
411
481
  };
412
482
  type TemplateGridTopBarProps = GridToolbarProps & ToolbarPropsOverrides & {
413
483
  templateProps: TemplateGridProps;
@@ -451,6 +521,7 @@ type AttachmentImageViewerProps = {
451
521
  refKey?: string;
452
522
  category?: string;
453
523
  showAsAvatar?: boolean;
524
+ onErrorImage?: string;
454
525
  style?: SxProps;
455
526
  };
456
527
  declare const AttachmentImageViewer: React.FC<AttachmentImageViewerProps>;
@@ -548,6 +619,8 @@ declare const TemplatePieChart: React.FC<WidgetProps>;
548
619
 
549
620
  declare const DashboardRouteView: React.FC;
550
621
 
622
+ declare const FormElementField: React.FC<FormElementFieldProps>;
623
+
551
624
  interface APIRequest {
552
625
  endPointURI: string;
553
626
  parameters?: any;
@@ -597,6 +670,7 @@ declare const useIsMobile: (breakpoint?: number) => boolean;
597
670
  declare const useSession: () => {
598
671
  UserSession: any;
599
672
  isUserAuthorized: (authorityCode: string) => boolean;
673
+ isCurrentOrganizationAuthorizedToModule: (moduleCode: string) => Boolean;
600
674
  UserInfo: any;
601
675
  };
602
676
 
@@ -618,12 +692,20 @@ declare const useWindow: (props: TemplateWindowProp) => {
618
692
  Window: react.FC<WindowProps>;
619
693
  };
620
694
 
695
+ declare const useCommonStore: (storeKey: string) => {
696
+ reload: () => Promise<void>;
697
+ data: any[];
698
+ store: StoreMetaData;
699
+ };
700
+
621
701
  declare function hasDigitsOnly(str: string): boolean;
622
702
  declare function isNumber(value: any): boolean;
623
703
  declare function isNumeric(value: string): boolean;
624
704
  declare function capitalizeFirstLetter(str: string): string;
625
705
  declare function isValidEmail(email: any): boolean;
626
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;
627
709
 
628
710
  declare const DATE_FORMAT = "YYYY-MM-DD";
629
711
  declare const DATE_TIME_FORMAT = "YYYY-MM-DD HH:mm:ss";
@@ -632,5 +714,5 @@ declare const LIGHT_THEME_INITIAL_SECANDARY_COLOR = "#ff6d00";
632
714
  declare const DARK_THEME_INITIAL_MAIN_COLOR = "#ea690e";
633
715
  declare const DARK_THEME_INITIAL_SECANDARY_COLOR = "#74776B";
634
716
 
635
- 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 };
636
- export type { CommonStores, CommonStoresInterface, 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 };