@addev-be/ui 2.4.5 → 2.4.7

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 (238) hide show
  1. package/assets/icons/arrow-down-1-9.svg +1 -1
  2. package/assets/icons/arrow-down-a-z.svg +1 -1
  3. package/assets/icons/arrow-up-z-a.svg +1 -1
  4. package/assets/icons/check.svg +1 -1
  5. package/assets/icons/circle-check.svg +1 -1
  6. package/assets/icons/down.svg +1 -1
  7. package/assets/icons/filter-full.svg +1 -1
  8. package/assets/icons/filter.svg +1 -1
  9. package/assets/icons/hashtag.svg +1 -1
  10. package/assets/icons/image-slash.svg +1 -1
  11. package/assets/icons/left.svg +1 -1
  12. package/assets/icons/magnifier.svg +1 -1
  13. package/assets/icons/phone.svg +1 -1
  14. package/assets/icons/right.svg +1 -1
  15. package/assets/icons/sort-calendar-ascending.svg +5 -5
  16. package/assets/icons/spinner-third.svg +1 -1
  17. package/assets/icons/table-columns.svg +1 -1
  18. package/assets/icons/table-footer-slash.svg +4 -4
  19. package/assets/icons/table-footer.svg +3 -3
  20. package/assets/icons/up.svg +1 -1
  21. package/assets/icons/user-tie.svg +1 -1
  22. package/assets/icons/x-bar.svg +3 -3
  23. package/dist/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.js +9 -8
  24. package/dist/components/data/AdvancedRequestDataGrid/helpers/columns.js +21 -72
  25. package/dist/components/data/AdvancedRequestDataGrid/index.js +2 -2
  26. package/dist/components/data/AdvancedRequestDataGrid/types.d.ts +1 -1
  27. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +10 -0
  28. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +173 -0
  29. package/dist/components/data/DataGrid/DataGridFooter.js +1 -1
  30. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +13 -0
  31. package/dist/components/data/DataGrid/FilterValuesScroller.js +73 -0
  32. package/dist/components/data/DataGrid/VirtualScroller.d.ts +11 -0
  33. package/dist/components/data/DataGrid/VirtualScroller.js +41 -0
  34. package/dist/components/data/DataGrid/helpers/advancedRequests.d.ts +12 -0
  35. package/dist/components/data/DataGrid/helpers/advancedRequests.js +53 -0
  36. package/dist/components/data/DataGrid/helpers.d.ts +28 -0
  37. package/dist/components/data/DataGrid/helpers.js +436 -0
  38. package/dist/components/data/DataGrid/styles.js +6 -3
  39. package/dist/components/data/SmartQueryDataGrid/helpers/columns.d.ts +20 -0
  40. package/dist/components/data/SmartQueryDataGrid/helpers/columns.js +160 -0
  41. package/dist/components/data/SmartQueryDataGrid/helpers/hooks.d.ts +5 -0
  42. package/dist/components/data/SmartQueryDataGrid/helpers/hooks.js +41 -0
  43. package/dist/components/data/SmartQueryDataGrid/helpers/index.d.ts +2 -0
  44. package/dist/components/data/SmartQueryDataGrid/helpers/index.js +18 -0
  45. package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.d.ts +3 -0
  46. package/dist/components/data/SmartQueryDataGrid/helpers/smartQueries.js +15 -0
  47. package/dist/components/data/SmartQueryDataGrid/hooks.d.ts +9 -0
  48. package/dist/components/data/SmartQueryDataGrid/hooks.js +63 -0
  49. package/dist/components/data/SmartQueryDataGrid/index.d.ts +12 -0
  50. package/dist/components/data/SmartQueryDataGrid/index.js +242 -0
  51. package/dist/components/data/SmartQueryDataGrid/types.d.ts +22 -0
  52. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.d.ts +2 -1
  53. package/dist/components/data/SqlRequestDataGrid/SqlRequestForeignListEditableCell.js +2 -3
  54. package/dist/components/forms/Form/InputWithLabel.d.ts +2 -0
  55. package/dist/components/forms/Form/InputWithLabel.js +10 -0
  56. package/dist/components/forms/Form/types.d.ts +7 -0
  57. package/dist/components/forms/Form/types.js +2 -0
  58. package/dist/config/types.d.ts +11 -0
  59. package/dist/config/types.js +2 -0
  60. package/dist/helpers/react.d.ts +2 -0
  61. package/dist/helpers/react.js +8 -0
  62. package/dist/services/index.js +17 -7
  63. package/dist/services/requests/userPermissions.d.ts +4 -0
  64. package/dist/services/requests/userPermissions.js +20 -0
  65. package/eslint.config.js +3 -3
  66. package/package.json +2 -2
  67. package/src/Icons.tsx +138 -138
  68. package/src/components/auth/LoginForm.tsx +86 -86
  69. package/src/components/auth/LoginPage.tsx +32 -32
  70. package/src/components/auth/PasswordRecoveryForm.tsx +53 -53
  71. package/src/components/auth/PasswordResetForm.tsx +112 -112
  72. package/src/components/auth/styles.ts +14 -14
  73. package/src/components/data/DataGrid/DataGridCell.tsx +81 -81
  74. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +9 -9
  75. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -59
  76. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +182 -182
  77. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  78. package/src/components/data/DataGrid/DataGridEditableCell/CheckboxEditableCell.tsx +37 -37
  79. package/src/components/data/DataGrid/DataGridEditableCell/DateEditableCell.tsx +38 -38
  80. package/src/components/data/DataGrid/DataGridEditableCell/NumberEditableCell.tsx +71 -71
  81. package/src/components/data/DataGrid/DataGridEditableCell/TextEditableCell.tsx +37 -37
  82. package/src/components/data/DataGrid/DataGridEditableCell/index.tsx +106 -106
  83. package/src/components/data/DataGrid/DataGridEditableCell/styles.ts +35 -35
  84. package/src/components/data/DataGrid/DataGridEditableCell/types.ts +18 -18
  85. package/src/components/data/DataGrid/DataGridFilterMenu/FilterValuesScroller.tsx +129 -129
  86. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +81 -81
  87. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +370 -370
  88. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +97 -97
  89. package/src/components/data/DataGrid/DataGridFooter.tsx +47 -45
  90. package/src/components/data/DataGrid/DataGridHeader.tsx +74 -74
  91. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +112 -112
  92. package/src/components/data/DataGrid/DataGridRowTemplate.tsx +83 -83
  93. package/src/components/data/DataGrid/DataGridToolbar.tsx +134 -134
  94. package/src/components/data/DataGrid/FilterModalContent/index.tsx +137 -137
  95. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  96. package/src/components/data/DataGrid/constants.ts +6 -6
  97. package/src/components/data/DataGrid/helpers/columns.tsx +456 -456
  98. package/src/components/data/DataGrid/helpers/filters.ts +287 -287
  99. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  100. package/src/components/data/DataGrid/hooks/index.ts +29 -29
  101. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +383 -383
  102. package/src/components/data/DataGrid/hooks/useDataGridChangedRows.ts +97 -97
  103. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +174 -174
  104. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  105. package/src/components/data/DataGrid/hooks/useRefreshModal.tsx +48 -48
  106. package/src/components/data/DataGrid/index.tsx +111 -111
  107. package/src/components/data/DataGrid/styles.ts +434 -430
  108. package/src/components/data/DataGrid/types.ts +380 -380
  109. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +526 -526
  110. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  111. package/src/components/data/SqlRequestDataGrid/helpers/rows.ts +24 -24
  112. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  113. package/src/components/data/SqlRequestDataGrid/index.tsx +417 -417
  114. package/src/components/data/SqlRequestDataGrid/styles.ts +15 -15
  115. package/src/components/data/SqlRequestDataGrid/types.ts +74 -74
  116. package/src/components/data/SqlRequestForeignList/index.tsx +254 -254
  117. package/src/components/data/SqlRequestForeignList/styles.ts +43 -43
  118. package/src/components/data/SqlRequestForeignList/types.ts +32 -32
  119. package/src/components/data/SqlRequestGrid/filters/FiltersSidebar.tsx +108 -108
  120. package/src/components/data/SqlRequestGrid/filters/styles.ts +88 -88
  121. package/src/components/data/SqlRequestGrid/helpers/index.ts +1 -1
  122. package/src/components/data/SqlRequestGrid/helpers/sqlRequests.ts +16 -16
  123. package/src/components/data/SqlRequestGrid/index.tsx +304 -304
  124. package/src/components/data/SqlRequestGrid/styles.ts +20 -20
  125. package/src/components/data/SqlRequestGrid/types.ts +73 -73
  126. package/src/components/data/VirtualScroller/hooks.ts +71 -71
  127. package/src/components/data/VirtualScroller/index.tsx +89 -89
  128. package/src/components/data/VirtualScroller/styles.ts +57 -57
  129. package/src/components/data/VirtualScroller/types.ts +10 -10
  130. package/src/components/forms/AutoTextArea.tsx +48 -48
  131. package/src/components/forms/Button.tsx +132 -132
  132. package/src/components/forms/Form/Checkbox.tsx +12 -12
  133. package/src/components/forms/Form/CustomSelect.tsx +86 -86
  134. package/src/components/forms/Form/FormGroup.tsx +31 -31
  135. package/src/components/forms/Form/Input.tsx +16 -16
  136. package/src/components/forms/Form/Row.tsx +32 -32
  137. package/src/components/forms/Form/Select.tsx +82 -82
  138. package/src/components/forms/Form/TextArea.tsx +17 -17
  139. package/src/components/forms/Form/index.tsx +48 -48
  140. package/src/components/forms/Form/styles.ts +184 -184
  141. package/src/components/forms/IconButton.tsx +61 -61
  142. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  143. package/src/components/forms/NumberInput.tsx +53 -53
  144. package/src/components/forms/Select.tsx +34 -34
  145. package/src/components/forms/VerticalLabel.tsx +20 -20
  146. package/src/components/forms/styles.ts +42 -42
  147. package/src/components/layout/Columns.ts +28 -28
  148. package/src/components/layout/Dropdown/index.tsx +113 -113
  149. package/src/components/layout/Dropdown/styles.ts +53 -53
  150. package/src/components/layout/Flexbox.ts +21 -21
  151. package/src/components/layout/Grid/index.tsx +8 -8
  152. package/src/components/layout/Grid/styles.ts +34 -34
  153. package/src/components/layout/Loading/index.tsx +29 -29
  154. package/src/components/layout/Loading/styles.ts +29 -29
  155. package/src/components/layout/Masonry/index.tsx +29 -29
  156. package/src/components/layout/Masonry/styles.ts +20 -20
  157. package/src/components/layout/Modal/index.tsx +51 -51
  158. package/src/components/layout/Modal/styles.ts +125 -125
  159. package/src/components/search/HighlightedText.tsx +41 -41
  160. package/src/components/search/QuickSearchBar.tsx +102 -102
  161. package/src/components/search/QuickSearchResults.tsx +86 -86
  162. package/src/components/search/styles.ts +96 -96
  163. package/src/components/search/types.ts +29 -29
  164. package/src/components/ui/Avatar/index.tsx +54 -54
  165. package/src/components/ui/Card/index.tsx +14 -14
  166. package/src/components/ui/Card/styles.ts +37 -37
  167. package/src/components/ui/ContextMenu/index.tsx +79 -79
  168. package/src/components/ui/ContextMenu/styles.ts +119 -119
  169. package/src/components/ui/Ellipsis.tsx +33 -33
  170. package/src/components/ui/Label.tsx +93 -93
  171. package/src/components/ui/Message/index.tsx +57 -57
  172. package/src/components/ui/Message/styles.ts +44 -44
  173. package/src/components/ui/TabsView/TabsList.tsx +44 -44
  174. package/src/components/ui/TabsView/TabsView.tsx +38 -38
  175. package/src/components/ui/TabsView/styles.ts +76 -76
  176. package/src/components/ui/TabsView/types.ts +15 -15
  177. package/src/config/index.ts +10 -10
  178. package/src/helpers/components.ts +9 -9
  179. package/src/helpers/dates.ts +17 -17
  180. package/src/helpers/getScrollbarSize.ts +14 -14
  181. package/src/helpers/numbers.ts +63 -63
  182. package/src/helpers/responsive.ts +83 -83
  183. package/src/helpers/styled/space.ts +114 -114
  184. package/src/helpers/styled/typography.ts +25 -25
  185. package/src/helpers/text.ts +13 -13
  186. package/src/helpers/types.ts +9 -9
  187. package/src/hooks/useContainerMediaQuery.ts +7 -7
  188. package/src/hooks/useElementSize.ts +24 -24
  189. package/src/hooks/useMediaQuery.ts +9 -9
  190. package/src/hooks/useMediaQueryForWidth.ts +35 -35
  191. package/src/hooks/useMutableState.ts +25 -25
  192. package/src/hooks/useShowArchived.ts +28 -28
  193. package/src/hooks/useWindowSize.ts +20 -20
  194. package/src/index.ts +102 -102
  195. package/src/providers/AuthenticationProvider/helpers.ts +3 -3
  196. package/src/providers/AuthenticationProvider/index.tsx +303 -303
  197. package/src/providers/LoadingProvider/index.tsx +47 -47
  198. package/src/providers/PortalsProvider/index.tsx +54 -54
  199. package/src/providers/PortalsProvider/styles.ts +31 -31
  200. package/src/providers/SettingsProvider/index.tsx +70 -70
  201. package/src/providers/ThemeProvider/defaultTheme.ts +470 -470
  202. package/src/providers/ThemeProvider/helpers.ts +84 -84
  203. package/src/providers/ThemeProvider/index.ts +66 -66
  204. package/src/providers/ThemeProvider/types.ts +134 -134
  205. package/src/providers/ToastProvider/index.tsx +93 -93
  206. package/src/providers/TrackingProvider/index.tsx +71 -71
  207. package/src/providers/UiProviders/index.tsx +76 -76
  208. package/src/providers/UiProviders/styles.ts +10 -10
  209. package/src/providers/hooks.ts +14 -14
  210. package/src/services/HttpService.ts +92 -92
  211. package/src/services/WebSocketService.ts +155 -155
  212. package/src/services/advancedRequests.ts +102 -102
  213. package/src/services/base.ts +23 -23
  214. package/src/services/globalSearch.ts +32 -32
  215. package/src/services/hooks.ts +92 -92
  216. package/src/services/requests/auth.ts +44 -44
  217. package/src/services/requests/generic.ts +62 -62
  218. package/src/services/requests/tracking.ts +12 -12
  219. package/src/services/requests/userProfiles.ts +35 -35
  220. package/src/services/requests/users.ts +28 -28
  221. package/src/services/smartQueries.ts +122 -122
  222. package/src/services/sqlRequests.ts +111 -111
  223. package/src/services/types/auth.ts +98 -98
  224. package/src/services/types/base.ts +10 -10
  225. package/src/services/types/generic.ts +82 -82
  226. package/src/services/types/tracking.ts +29 -29
  227. package/src/services/types/userProfiles.ts +79 -79
  228. package/src/services/types/users.ts +74 -74
  229. package/src/services/updateSqlRequests.ts +32 -32
  230. package/src/styles/animations.scss +30 -30
  231. package/src/styles/index.scss +42 -42
  232. package/src/types.ts +8 -8
  233. package/src/typings.d.ts +2 -2
  234. package/tsconfig.json +18 -18
  235. package/dist/services/requests/printing.d.ts +0 -2
  236. package/dist/services/requests/printing.js +0 -8
  237. package/dist/services/types/printing.d.ts +0 -8
  238. /package/dist/{services/types/printing.js → components/data/SmartQueryDataGrid/types.js} +0 -0
@@ -0,0 +1,22 @@
1
+ import { ConditionDTO, FieldDTO } from '../../../services/smartQueries';
2
+ import { DataGridColumn, DataGridFilter, DataGridFilterType, DataGridProps } from '../DataGrid/types';
3
+ import { SmartQueries } from '../../../services';
4
+ export type SmartQueryDataGridFilter<T extends DataGridFilterType = DataGridFilterType> = DataGridFilter<T> & {
5
+ field?: FieldDTO;
6
+ };
7
+ export type SmartQueryDataGridFilters = Record<string, SmartQueryDataGridFilter>;
8
+ export type SmartQueryDataGridColumn<R> = DataGridColumn<R> & {
9
+ filter?: SmartQueryDataGridFilter;
10
+ field?: FieldDTO;
11
+ filterField?: string;
12
+ sortField?: string;
13
+ ignore?: boolean;
14
+ };
15
+ export type SmartQueryDataGridColumns<R> = Record<string, SmartQueryDataGridColumn<R>>;
16
+ export type SmartQueryDataGridProps<R> = Omit<DataGridProps<R>, 'rows' | 'columns'> & {
17
+ columns: SmartQueryDataGridColumns<R>;
18
+ type: string;
19
+ conditions?: ConditionDTO[];
20
+ initialFooters?: Record<string, SmartQueries.FooterFunction>;
21
+ parser?: (row: SmartQueries.RequestRow<R>) => R;
22
+ };
@@ -1,2 +1,3 @@
1
+ import { ForwardedRef } from 'react';
1
2
  import { SqlRequestForeignListProps } from '../SqlRequestForeignList/types';
2
- export declare const SqlRequestForeignListEditableCell: <R extends Record<string, any>>(props: SqlRequestForeignListProps<R> & import("react").RefAttributes<HTMLDivElement>) => import("react").JSX.Element | null;
3
+ export declare const SqlRequestForeignListEditableCell: <R extends Record<string, any>>(props: SqlRequestForeignListProps<R>, ref: ForwardedRef<HTMLDivElement>) => import("react/jsx-runtime").JSX.Element;
@@ -13,7 +13,6 @@ var __assign = (this && this.__assign) || function () {
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.SqlRequestForeignListEditableCell = void 0;
15
15
  var jsx_runtime_1 = require("react/jsx-runtime");
16
- var react_1 = require("react");
17
16
  var SqlRequestForeignList_1 = require("../SqlRequestForeignList");
18
- var SqlRequestForeignListEditableCellInner = function (props, ref) { return (0, jsx_runtime_1.jsx)(SqlRequestForeignList_1.SqlRequestForeignList, __assign({}, props, { ref: ref })); };
19
- exports.SqlRequestForeignListEditableCell = (0, react_1.forwardRef)(SqlRequestForeignListEditableCellInner);
17
+ var SqlRequestForeignListEditableCell = function (props, ref) { return (0, jsx_runtime_1.jsx)(SqlRequestForeignList_1.SqlRequestForeignList, __assign({}, props, { ref: ref })); };
18
+ exports.SqlRequestForeignListEditableCell = SqlRequestForeignListEditableCell;
@@ -0,0 +1,2 @@
1
+ import { InputContainerProps } from './types';
2
+ export declare const InputWithLabel: ({ label, icon: Icon, readOnly, children, }: InputContainerProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InputWithLabel = void 0;
4
+ var jsx_runtime_1 = require("react/jsx-runtime");
5
+ var styles_1 = require("./styles");
6
+ var InputWithLabel = function (_a) {
7
+ var label = _a.label, Icon = _a.icon, readOnly = _a.readOnly, children = _a.children;
8
+ return ((0, jsx_runtime_1.jsxs)(styles_1.InputContainer, { className: readOnly ? 'read-only' : '', children: [(label || Icon) && ((0, jsx_runtime_1.jsxs)("span", { children: [Icon && (0, jsx_runtime_1.jsx)(Icon, {}), label] })), children] }));
9
+ };
10
+ exports.InputWithLabel = InputWithLabel;
@@ -0,0 +1,7 @@
1
+ import { IconFC } from '../../../Icons';
2
+ import { PropsWithChildren } from 'react';
3
+ export type InputContainerProps = PropsWithChildren<{
4
+ label?: string;
5
+ icon?: IconFC;
6
+ readOnly?: boolean;
7
+ }>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ export type EnvType = 'dev' | 'test' | 'staging' | 'prod';
2
+ export type Config = {
3
+ webSocketUrl: string;
4
+ httpServerUrl: `${string}/`;
5
+ invoicingEnabled?: boolean;
6
+ };
7
+ type DeepPartial<T> = T extends object ? {
8
+ [P in keyof T]?: DeepPartial<T[P]>;
9
+ } : T;
10
+ export type PartialConfig = DeepPartial<Config>;
11
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import { ForwardRefExoticComponent, ForwardRefRenderFunction, PropsWithoutRef, RefAttributes } from 'react';
2
+ export declare const forwardRefGeneric: <T, P = {}>(render: ForwardRefRenderFunction<T, PropsWithoutRef<P>>) => ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<T>>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.forwardRefGeneric = void 0;
4
+ var react_1 = require("react");
5
+ var forwardRefGeneric = function (render) {
6
+ return (0, react_1.forwardRef)(render);
7
+ };
8
+ exports.forwardRefGeneric = forwardRefGeneric;
@@ -18,13 +18,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
18
18
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
19
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
20
  };
21
- var __importStar = (this && this.__importStar) || function (mod) {
22
- if (mod && mod.__esModule) return mod;
23
- var result = {};
24
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
- __setModuleDefault(result, mod);
26
- return result;
27
- };
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
29
39
  exports.SmartQueries = void 0;
30
40
  __exportStar(require("./WebSocketService"), exports);
@@ -0,0 +1,4 @@
1
+ export declare const useGetUserPermissionRequestHandler: () => (data: GetUserPermissionRequestDTO) => Promise<GetUserPermissionResponseDTO>;
2
+ export declare const useGetAllUserPermissionsRequestHandler: () => (data: GetAllUserPermissionsRequestDTO) => Promise<GetAllUserPermissionsResponseDTO>;
3
+ export declare const useSaveUserPermissionRequestHandler: () => (data: SaveUserPermissionRequestDTO) => Promise<SaveUserPermissionResponseDTO>;
4
+ export declare const useDeleteUserPermissionRequestHandler: () => (data: DeleteUserPermissionRequestDTO) => Promise<DeleteUserPermissionResponseDTO>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDeleteUserPermissionRequestHandler = exports.useSaveUserPermissionRequestHandler = exports.useGetAllUserPermissionsRequestHandler = exports.useGetUserPermissionRequestHandler = void 0;
4
+ var hooks_1 = require("../hooks");
5
+ var useGetUserPermissionRequestHandler = function () {
6
+ return (0, hooks_1.useLoadingRequestHandler)('GetUserPermission');
7
+ };
8
+ exports.useGetUserPermissionRequestHandler = useGetUserPermissionRequestHandler;
9
+ var useGetAllUserPermissionsRequestHandler = function () {
10
+ return (0, hooks_1.useLoadingRequestHandler)('GetAllUserPermissions');
11
+ };
12
+ exports.useGetAllUserPermissionsRequestHandler = useGetAllUserPermissionsRequestHandler;
13
+ var useSaveUserPermissionRequestHandler = function () {
14
+ return (0, hooks_1.useLoadingRequestHandler)('SaveUserPermission');
15
+ };
16
+ exports.useSaveUserPermissionRequestHandler = useSaveUserPermissionRequestHandler;
17
+ var useDeleteUserPermissionRequestHandler = function () {
18
+ return (0, hooks_1.useLoadingRequestHandler)('DeleteUserPermission');
19
+ };
20
+ exports.useDeleteUserPermissionRequestHandler = useDeleteUserPermissionRequestHandler;
package/eslint.config.js CHANGED
@@ -1,3 +1,3 @@
1
- import { eslintReactConfig } from '@addev-be/framework-utils/eslint/react.config.mjs';
2
-
3
- export default [...eslintReactConfig, { ignores: ['dist'] }];
1
+ import { eslintReactConfig } from '@addev-be/framework-utils/eslint/react.config.mjs';
2
+
3
+ export default [...eslintReactConfig, { ignores: ['dist'] }];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@addev-be/ui",
3
- "version": "2.4.5",
3
+ "version": "2.4.7",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "watch": "tsc -b --watch",
@@ -20,7 +20,7 @@
20
20
  "update-version": "../../node/update-version.mjs"
21
21
  },
22
22
  "devDependencies": {
23
- "@addev-be/framework-utils": "^2.4.5",
23
+ "@addev-be/framework-utils": "^2.4.7",
24
24
  "@types/lodash": "^4.17.20",
25
25
  "@types/react": "^19.1.13",
26
26
  "@types/react-dom": "^19.1.9",
package/src/Icons.tsx CHANGED
@@ -1,138 +1,138 @@
1
- import { FC, SVGProps, useEffect, useState } from 'react';
2
-
3
- import AngleLeftIcon from '../assets/icons/angle-left.svg?react';
4
- import AngleRightIcon from '../assets/icons/angle-right.svg?react';
5
- import ArrowDown19Icon from '../assets/icons/arrow-down-1-9.svg?react';
6
- import ArrowDownAZIcon from '../assets/icons/arrow-down-a-z.svg?react';
7
- import ArrowDownBigSmallIcon from '../assets/icons/arrow-down-big-small.svg?react';
8
- import ArrowUp91Icon from '../assets/icons/arrow-up-9-1.svg?react';
9
- import ArrowUpBigSmallIcon from '../assets/icons/arrow-up-big-small.svg?react';
10
- import ArrowUpZAIcon from '../assets/icons/arrow-up-z-a.svg?react';
11
- import ArrowsRotateIcon from '../assets/icons/arrows-rotate.svg?react';
12
- import ArrowsUpDownIcon from '../assets/icons/arrows-up-down.svg?react';
13
- import BarsIcon from '../assets/icons/bars.svg?react';
14
- import CheckIcon from '../assets/icons/check.svg?react';
15
- import ChevronDownIcon from '../assets/icons/chevron-down.svg?react';
16
- import ChevronLeftIcon from '../assets/icons/chevron-left.svg?react';
17
- import ChevronRightIcon from '../assets/icons/chevron-right.svg?react';
18
- import CircleCheckIcon from '../assets/icons/circle-check.svg?react';
19
- import CircleInfoIcon from '../assets/icons/circle-info.svg?react';
20
- import CircleXMarkIcon from '../assets/icons/circle-xmark.svg?react';
21
- import CopyIcon from '../assets/icons/copy.svg?react';
22
- import DownIcon from '../assets/icons/down.svg?react';
23
- import EllipsisIcon from '../assets/icons/ellipsis.svg?react';
24
- import FilterFullIcon from '../assets/icons/filter-full.svg?react';
25
- import FilterIcon from '../assets/icons/filter.svg?react';
26
- import FilterSlashIcon from '../assets/icons/filter-slash.svg?react';
27
- import FloppyDiskIcon from '../assets/icons/floppy-disk.svg?react';
28
- import HashtagIcon from '../assets/icons/hashtag.svg?react';
29
- import ImageSlashIcon from '../assets/icons/image-slash.svg?react';
30
- import LeftIcon from '../assets/icons/left.svg?react';
31
- import MagnifierIcon from '../assets/icons/magnifier.svg?react';
32
- import PhoneIcon from '../assets/icons/phone.svg?react';
33
- import PlusIcon from '../assets/icons/plus.svg?react';
34
- import RightIcon from '../assets/icons/right.svg?react';
35
- import SigmaIcon from '../assets/icons/sigma.svg?react';
36
- import SortCalendarAscendingIcon from '../assets/icons/sort-calendar-ascending.svg?react';
37
- import SortCalendarDescendingIcon from '../assets/icons/sort-calendar-descending.svg?react';
38
- import SpinnerIcon from '../assets/icons/spinner-third.svg?react';
39
- import TableColumnsIcon from '../assets/icons/table-columns.svg?react';
40
- import TableFooterIcon from '../assets/icons/table-footer.svg?react';
41
- import TableFooterSlashIcon from '../assets/icons/table-footer-slash.svg?react';
42
- import TableIcon from '../assets/icons/table.svg?react';
43
- import TallyIcon from '../assets/icons/tally.svg?react';
44
- import TrashCanIcon from '../assets/icons/trash-can.svg?react';
45
- import TriangleExclamationIcon from '../assets/icons/triangle-exclamation.svg?react';
46
- import UpIcon from '../assets/icons/up.svg?react';
47
- import UserTieIcon from '../assets/icons/user-tie.svg?react';
48
- import XBarIcon from '../assets/icons/x-bar.svg?react';
49
- import XMarkIcon from '../assets/icons/xmark.svg?react';
50
- import XMarkLargeIcon from '../assets/icons/xmark-large.svg?react';
51
-
52
- type IconFCProps = SVGProps<SVGSVGElement>;
53
- export type IconFC = FC<IconFCProps>;
54
-
55
- type AnimatedIconProps = {
56
- icons: FC[];
57
- speed?: number;
58
- };
59
-
60
- export const AnimatedIcon: FC<AnimatedIconProps & IconFCProps> = ({
61
- icons,
62
- speed = 150,
63
- ...props
64
- }) => {
65
- const [currentIcon, setCurrentIcon] = useState(0);
66
-
67
- useEffect(() => {
68
- const interval = setInterval(() => {
69
- setCurrentIcon((currentIcon) => (currentIcon + 1) % icons.length);
70
- }, speed);
71
-
72
- return () => {
73
- clearInterval(interval);
74
- };
75
- }, [icons.length, speed]);
76
-
77
- const Icon = icons[currentIcon];
78
- return <Icon {...props} />;
79
- };
80
-
81
- export const LoadingIcon: FC<IconFCProps> = ({ className, ...props }) => (
82
- <SpinnerIcon className={`animate-spin ${className}`} {...props} />
83
- );
84
-
85
- export const BlankIcon: FC<IconFCProps> = (props) => (
86
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props} />
87
- );
88
-
89
- export {
90
- AngleLeftIcon,
91
- AngleRightIcon,
92
- ArrowDown19Icon,
93
- ArrowDownAZIcon,
94
- ArrowDownBigSmallIcon,
95
- ArrowsRotateIcon,
96
- ArrowsUpDownIcon,
97
- ArrowUp91Icon,
98
- ArrowUpBigSmallIcon,
99
- ArrowUpZAIcon,
100
- BarsIcon,
101
- CheckIcon,
102
- ChevronDownIcon,
103
- ChevronLeftIcon,
104
- ChevronRightIcon,
105
- CircleCheckIcon,
106
- CircleInfoIcon,
107
- CircleXMarkIcon,
108
- CopyIcon,
109
- DownIcon,
110
- EllipsisIcon,
111
- FilterFullIcon,
112
- FilterIcon,
113
- FilterSlashIcon,
114
- FloppyDiskIcon,
115
- HashtagIcon,
116
- ImageSlashIcon,
117
- LeftIcon,
118
- MagnifierIcon,
119
- PhoneIcon,
120
- PlusIcon,
121
- RightIcon,
122
- SigmaIcon,
123
- SortCalendarAscendingIcon,
124
- SortCalendarDescendingIcon,
125
- SpinnerIcon,
126
- TableColumnsIcon,
127
- TableFooterIcon,
128
- TableFooterSlashIcon,
129
- TableIcon,
130
- TallyIcon,
131
- TrashCanIcon,
132
- TriangleExclamationIcon,
133
- UpIcon,
134
- UserTieIcon,
135
- XBarIcon,
136
- XMarkIcon,
137
- XMarkLargeIcon,
138
- };
1
+ import { FC, SVGProps, useEffect, useState } from 'react';
2
+
3
+ import AngleLeftIcon from '../assets/icons/angle-left.svg?react';
4
+ import AngleRightIcon from '../assets/icons/angle-right.svg?react';
5
+ import ArrowDown19Icon from '../assets/icons/arrow-down-1-9.svg?react';
6
+ import ArrowDownAZIcon from '../assets/icons/arrow-down-a-z.svg?react';
7
+ import ArrowDownBigSmallIcon from '../assets/icons/arrow-down-big-small.svg?react';
8
+ import ArrowUp91Icon from '../assets/icons/arrow-up-9-1.svg?react';
9
+ import ArrowUpBigSmallIcon from '../assets/icons/arrow-up-big-small.svg?react';
10
+ import ArrowUpZAIcon from '../assets/icons/arrow-up-z-a.svg?react';
11
+ import ArrowsRotateIcon from '../assets/icons/arrows-rotate.svg?react';
12
+ import ArrowsUpDownIcon from '../assets/icons/arrows-up-down.svg?react';
13
+ import BarsIcon from '../assets/icons/bars.svg?react';
14
+ import CheckIcon from '../assets/icons/check.svg?react';
15
+ import ChevronDownIcon from '../assets/icons/chevron-down.svg?react';
16
+ import ChevronLeftIcon from '../assets/icons/chevron-left.svg?react';
17
+ import ChevronRightIcon from '../assets/icons/chevron-right.svg?react';
18
+ import CircleCheckIcon from '../assets/icons/circle-check.svg?react';
19
+ import CircleInfoIcon from '../assets/icons/circle-info.svg?react';
20
+ import CircleXMarkIcon from '../assets/icons/circle-xmark.svg?react';
21
+ import CopyIcon from '../assets/icons/copy.svg?react';
22
+ import DownIcon from '../assets/icons/down.svg?react';
23
+ import EllipsisIcon from '../assets/icons/ellipsis.svg?react';
24
+ import FilterFullIcon from '../assets/icons/filter-full.svg?react';
25
+ import FilterIcon from '../assets/icons/filter.svg?react';
26
+ import FilterSlashIcon from '../assets/icons/filter-slash.svg?react';
27
+ import FloppyDiskIcon from '../assets/icons/floppy-disk.svg?react';
28
+ import HashtagIcon from '../assets/icons/hashtag.svg?react';
29
+ import ImageSlashIcon from '../assets/icons/image-slash.svg?react';
30
+ import LeftIcon from '../assets/icons/left.svg?react';
31
+ import MagnifierIcon from '../assets/icons/magnifier.svg?react';
32
+ import PhoneIcon from '../assets/icons/phone.svg?react';
33
+ import PlusIcon from '../assets/icons/plus.svg?react';
34
+ import RightIcon from '../assets/icons/right.svg?react';
35
+ import SigmaIcon from '../assets/icons/sigma.svg?react';
36
+ import SortCalendarAscendingIcon from '../assets/icons/sort-calendar-ascending.svg?react';
37
+ import SortCalendarDescendingIcon from '../assets/icons/sort-calendar-descending.svg?react';
38
+ import SpinnerIcon from '../assets/icons/spinner-third.svg?react';
39
+ import TableColumnsIcon from '../assets/icons/table-columns.svg?react';
40
+ import TableFooterIcon from '../assets/icons/table-footer.svg?react';
41
+ import TableFooterSlashIcon from '../assets/icons/table-footer-slash.svg?react';
42
+ import TableIcon from '../assets/icons/table.svg?react';
43
+ import TallyIcon from '../assets/icons/tally.svg?react';
44
+ import TrashCanIcon from '../assets/icons/trash-can.svg?react';
45
+ import TriangleExclamationIcon from '../assets/icons/triangle-exclamation.svg?react';
46
+ import UpIcon from '../assets/icons/up.svg?react';
47
+ import UserTieIcon from '../assets/icons/user-tie.svg?react';
48
+ import XBarIcon from '../assets/icons/x-bar.svg?react';
49
+ import XMarkIcon from '../assets/icons/xmark.svg?react';
50
+ import XMarkLargeIcon from '../assets/icons/xmark-large.svg?react';
51
+
52
+ type IconFCProps = SVGProps<SVGSVGElement>;
53
+ export type IconFC = FC<IconFCProps>;
54
+
55
+ type AnimatedIconProps = {
56
+ icons: FC[];
57
+ speed?: number;
58
+ };
59
+
60
+ export const AnimatedIcon: FC<AnimatedIconProps & IconFCProps> = ({
61
+ icons,
62
+ speed = 150,
63
+ ...props
64
+ }) => {
65
+ const [currentIcon, setCurrentIcon] = useState(0);
66
+
67
+ useEffect(() => {
68
+ const interval = setInterval(() => {
69
+ setCurrentIcon((currentIcon) => (currentIcon + 1) % icons.length);
70
+ }, speed);
71
+
72
+ return () => {
73
+ clearInterval(interval);
74
+ };
75
+ }, [icons.length, speed]);
76
+
77
+ const Icon = icons[currentIcon];
78
+ return <Icon {...props} />;
79
+ };
80
+
81
+ export const LoadingIcon: FC<IconFCProps> = ({ className, ...props }) => (
82
+ <SpinnerIcon className={`animate-spin ${className}`} {...props} />
83
+ );
84
+
85
+ export const BlankIcon: FC<IconFCProps> = (props) => (
86
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" {...props} />
87
+ );
88
+
89
+ export {
90
+ AngleLeftIcon,
91
+ AngleRightIcon,
92
+ ArrowDown19Icon,
93
+ ArrowDownAZIcon,
94
+ ArrowDownBigSmallIcon,
95
+ ArrowsRotateIcon,
96
+ ArrowsUpDownIcon,
97
+ ArrowUp91Icon,
98
+ ArrowUpBigSmallIcon,
99
+ ArrowUpZAIcon,
100
+ BarsIcon,
101
+ CheckIcon,
102
+ ChevronDownIcon,
103
+ ChevronLeftIcon,
104
+ ChevronRightIcon,
105
+ CircleCheckIcon,
106
+ CircleInfoIcon,
107
+ CircleXMarkIcon,
108
+ CopyIcon,
109
+ DownIcon,
110
+ EllipsisIcon,
111
+ FilterFullIcon,
112
+ FilterIcon,
113
+ FilterSlashIcon,
114
+ FloppyDiskIcon,
115
+ HashtagIcon,
116
+ ImageSlashIcon,
117
+ LeftIcon,
118
+ MagnifierIcon,
119
+ PhoneIcon,
120
+ PlusIcon,
121
+ RightIcon,
122
+ SigmaIcon,
123
+ SortCalendarAscendingIcon,
124
+ SortCalendarDescendingIcon,
125
+ SpinnerIcon,
126
+ TableColumnsIcon,
127
+ TableFooterIcon,
128
+ TableFooterSlashIcon,
129
+ TableIcon,
130
+ TallyIcon,
131
+ TrashCanIcon,
132
+ TriangleExclamationIcon,
133
+ UpIcon,
134
+ UserTieIcon,
135
+ XBarIcon,
136
+ XMarkIcon,
137
+ XMarkLargeIcon,
138
+ };
@@ -1,86 +1,86 @@
1
- import { FC, useCallback, useEffect, useRef, useState } from 'react';
2
- import { Link, redirect } from 'react-router-dom';
3
-
4
- import { Button } from '../forms/Button';
5
- import { Card } from '../ui/Card';
6
- import { FormContainer } from './styles';
7
- import { Input } from '../forms/styles';
8
- import { Message } from '../ui/Message';
9
- import { StackedLabel } from '../forms/VerticalLabel';
10
- import { useAuthentication } from '../../providers/hooks';
11
-
12
- export const LoginForm: FC = () => {
13
- const [username, setUsername] = useState(
14
- localStorage.getItem('username') || ''
15
- );
16
- const [password, setPassword] = useState('');
17
- const [isLoading, setIsLoading] = useState(false);
18
- const [error, setError] = useState('');
19
- const usernameInputRef = useRef<HTMLInputElement>(null);
20
- const passwordInputRef = useRef<HTMLInputElement>(null);
21
-
22
- const { login } = useAuthentication();
23
-
24
- const onLoginClicked = useCallback(() => {
25
- setError('');
26
- setIsLoading(true);
27
- login(username, password).then((success) => {
28
- setIsLoading(false);
29
- if (success) {
30
- localStorage.setItem('username', username);
31
- redirect('/');
32
- } else {
33
- setError('Identifiants invalides');
34
- }
35
- });
36
- }, [login, password, username]);
37
-
38
- useEffect(() => {
39
- if (usernameInputRef.current && passwordInputRef.current) {
40
- const input = !username
41
- ? usernameInputRef.current
42
- : passwordInputRef.current;
43
- input.select();
44
- input.focus();
45
- }
46
- // eslint-disable-next-line react-hooks/exhaustive-deps
47
- }, []);
48
-
49
- if (isLoading) return <div>Chargement...</div>;
50
-
51
- return (
52
- <Card>
53
- <FormContainer>
54
- <StackedLabel label="Adresse e-mail / Nom d'utilisateur">
55
- <Input
56
- ref={usernameInputRef}
57
- type="email"
58
- autoComplete="email"
59
- required
60
- value={username}
61
- onChange={(e) => setUsername(e.target.value)}
62
- />
63
- </StackedLabel>
64
-
65
- <StackedLabel label="Mot de passe">
66
- <Input
67
- ref={passwordInputRef}
68
- type="password"
69
- autoComplete="current-password"
70
- required
71
- value={password}
72
- onChange={(e) => setPassword(e.target.value)}
73
- />
74
- </StackedLabel>
75
-
76
- {error && <Message type="error">{error}</Message>}
77
-
78
- <Button $color="primary" onClick={onLoginClicked}>
79
- Se connecter
80
- </Button>
81
-
82
- <Link to="/recover">Mot de passe oublié ?</Link>
83
- </FormContainer>
84
- </Card>
85
- );
86
- };
1
+ import { FC, useCallback, useEffect, useRef, useState } from 'react';
2
+ import { Link, redirect } from 'react-router-dom';
3
+
4
+ import { Button } from '../forms/Button';
5
+ import { Card } from '../ui/Card';
6
+ import { FormContainer } from './styles';
7
+ import { Input } from '../forms/styles';
8
+ import { Message } from '../ui/Message';
9
+ import { StackedLabel } from '../forms/VerticalLabel';
10
+ import { useAuthentication } from '../../providers/hooks';
11
+
12
+ export const LoginForm: FC = () => {
13
+ const [username, setUsername] = useState(
14
+ localStorage.getItem('username') || ''
15
+ );
16
+ const [password, setPassword] = useState('');
17
+ const [isLoading, setIsLoading] = useState(false);
18
+ const [error, setError] = useState('');
19
+ const usernameInputRef = useRef<HTMLInputElement>(null);
20
+ const passwordInputRef = useRef<HTMLInputElement>(null);
21
+
22
+ const { login } = useAuthentication();
23
+
24
+ const onLoginClicked = useCallback(() => {
25
+ setError('');
26
+ setIsLoading(true);
27
+ login(username, password).then((success) => {
28
+ setIsLoading(false);
29
+ if (success) {
30
+ localStorage.setItem('username', username);
31
+ redirect('/');
32
+ } else {
33
+ setError('Identifiants invalides');
34
+ }
35
+ });
36
+ }, [login, password, username]);
37
+
38
+ useEffect(() => {
39
+ if (usernameInputRef.current && passwordInputRef.current) {
40
+ const input = !username
41
+ ? usernameInputRef.current
42
+ : passwordInputRef.current;
43
+ input.select();
44
+ input.focus();
45
+ }
46
+ // eslint-disable-next-line react-hooks/exhaustive-deps
47
+ }, []);
48
+
49
+ if (isLoading) return <div>Chargement...</div>;
50
+
51
+ return (
52
+ <Card>
53
+ <FormContainer>
54
+ <StackedLabel label="Adresse e-mail / Nom d'utilisateur">
55
+ <Input
56
+ ref={usernameInputRef}
57
+ type="email"
58
+ autoComplete="email"
59
+ required
60
+ value={username}
61
+ onChange={(e) => setUsername(e.target.value)}
62
+ />
63
+ </StackedLabel>
64
+
65
+ <StackedLabel label="Mot de passe">
66
+ <Input
67
+ ref={passwordInputRef}
68
+ type="password"
69
+ autoComplete="current-password"
70
+ required
71
+ value={password}
72
+ onChange={(e) => setPassword(e.target.value)}
73
+ />
74
+ </StackedLabel>
75
+
76
+ {error && <Message type="error">{error}</Message>}
77
+
78
+ <Button $color="primary" onClick={onLoginClicked}>
79
+ Se connecter
80
+ </Button>
81
+
82
+ <Link to="/recover">Mot de passe oublié ?</Link>
83
+ </FormContainer>
84
+ </Card>
85
+ );
86
+ };