@addev-be/ui 0.2.5 → 0.2.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 (166) hide show
  1. package/assets/icons/arrow-down-1-9.svg +1 -0
  2. package/assets/icons/arrow-down-a-z.svg +1 -1
  3. package/assets/icons/arrow-down-big-small.svg +1 -0
  4. package/assets/icons/arrow-up-9-1.svg +1 -0
  5. package/assets/icons/arrow-up-big-small.svg +1 -0
  6. package/assets/icons/arrow-up-z-a.svg +1 -1
  7. package/assets/icons/check.svg +1 -1
  8. package/assets/icons/chevron-down.svg +1 -0
  9. package/assets/icons/down.svg +1 -1
  10. package/assets/icons/ellipsis.svg +1 -0
  11. package/assets/icons/filter-full.svg +1 -1
  12. package/assets/icons/filter.svg +1 -1
  13. package/assets/icons/hashtag.svg +1 -1
  14. package/assets/icons/image-slash.svg +1 -1
  15. package/assets/icons/left.svg +1 -1
  16. package/assets/icons/magnifier.svg +1 -1
  17. package/assets/icons/phone.svg +1 -1
  18. package/assets/icons/right.svg +1 -1
  19. package/assets/icons/sigma.svg +1 -0
  20. package/assets/icons/spinner-third.svg +1 -1
  21. package/assets/icons/table-columns.svg +1 -1
  22. package/assets/icons/table-footer-slash.svg +5 -0
  23. package/assets/icons/table-footer.svg +4 -0
  24. package/assets/icons/table.svg +1 -0
  25. package/assets/icons/tally.svg +1 -0
  26. package/assets/icons/up.svg +1 -1
  27. package/assets/icons/user-tie.svg +1 -1
  28. package/assets/icons/x-bar.svg +4 -0
  29. package/dist/Icons.d.ts +13 -1
  30. package/dist/Icons.js +25 -1
  31. package/dist/components/data/AdvancedRequestDataGrid/index.js +3 -3
  32. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.d.ts +1 -2
  33. package/dist/components/data/DataGrid/AdvancedRequestDataGrid.js +3 -5
  34. package/dist/components/data/DataGrid/DataGridCell.d.ts +1 -1
  35. package/dist/components/data/DataGrid/DataGridCell.js +5 -5
  36. package/dist/components/data/DataGrid/DataGridColumnsModal/hooks.js +2 -1
  37. package/dist/components/data/DataGrid/DataGridEditableCell.js +2 -7
  38. package/dist/components/data/DataGrid/DataGridFilterMenu/index.js +90 -10
  39. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.d.ts +3 -9
  40. package/dist/components/data/DataGrid/DataGridFilterMenu/styles.js +10 -37
  41. package/dist/components/data/DataGrid/DataGridFooter.d.ts +1 -1
  42. package/dist/components/data/DataGrid/DataGridFooter.js +35 -22
  43. package/dist/components/data/DataGrid/DataGridHeader.js +1 -3
  44. package/dist/components/data/DataGrid/DataGridHeaderCell.js +8 -23
  45. package/dist/components/data/DataGrid/FilterModalContent/index.d.ts +5 -5
  46. package/dist/components/data/DataGrid/FilterModalContent/index.js +11 -9
  47. package/dist/components/data/DataGrid/FilterValuesScroller.d.ts +8 -7
  48. package/dist/components/data/DataGrid/FilterValuesScroller.js +5 -6
  49. package/dist/components/data/DataGrid/helpers/columns.d.ts +1 -1
  50. package/dist/components/data/DataGrid/helpers/columns.js +72 -20
  51. package/dist/components/data/DataGrid/helpers/filters.d.ts +4 -3
  52. package/dist/components/data/DataGrid/helpers/filters.js +13 -5
  53. package/dist/components/data/DataGrid/hooks/useDataGrid.d.ts +1 -1
  54. package/dist/components/data/DataGrid/hooks/useDataGrid.js +60 -30
  55. package/dist/components/data/DataGrid/hooks/useDataGridCopy.d.ts +2 -2
  56. package/dist/components/data/DataGrid/hooks/useDataGridCopy.js +41 -40
  57. package/dist/components/data/DataGrid/hooks/useDataGridSettings.js +0 -1
  58. package/dist/components/data/DataGrid/index.d.ts +4 -2
  59. package/dist/components/data/DataGrid/index.js +38 -17
  60. package/dist/components/data/DataGrid/styles.d.ts +12 -5
  61. package/dist/components/data/DataGrid/styles.js +31 -18
  62. package/dist/components/data/DataGrid/types.d.ts +28 -16
  63. package/dist/components/data/SqlRequestDataGrid/helpers/columns.d.ts +1 -1
  64. package/dist/components/data/SqlRequestDataGrid/helpers/columns.js +30 -19
  65. package/dist/components/data/SqlRequestDataGrid/index.js +125 -37
  66. package/dist/components/data/SqlRequestDataGrid/types.d.ts +1 -0
  67. package/dist/components/data/index.d.ts +2 -0
  68. package/dist/components/data/index.js +2 -0
  69. package/dist/components/ui/ContextMenu/index.d.ts +11 -0
  70. package/dist/components/ui/ContextMenu/index.js +58 -0
  71. package/dist/components/ui/ContextMenu/styles.d.ts +18 -0
  72. package/dist/components/ui/ContextMenu/styles.js +56 -0
  73. package/dist/helpers/dates.d.ts +2 -0
  74. package/dist/helpers/dates.js +13 -0
  75. package/dist/services/advancedRequests.d.ts +1 -1
  76. package/dist/services/sqlRequests.d.ts +9 -4
  77. package/dist/services/sqlRequests.js +1 -0
  78. package/package.json +1 -1
  79. package/src/Icons.tsx +104 -80
  80. package/src/components/data/AdvancedRequestDataGrid/helpers/advancedRequests.ts +93 -93
  81. package/src/components/data/AdvancedRequestDataGrid/helpers/columns.tsx +262 -262
  82. package/src/components/data/AdvancedRequestDataGrid/helpers/index.ts +2 -2
  83. package/src/components/data/AdvancedRequestDataGrid/index.tsx +267 -269
  84. package/src/components/data/AdvancedRequestDataGrid/types.ts +47 -47
  85. package/src/components/data/DataGrid/DataGridCell.tsx +73 -73
  86. package/src/components/data/DataGrid/DataGridColumnsModal/helpers.ts +14 -14
  87. package/src/components/data/DataGrid/DataGridColumnsModal/hooks.tsx +59 -58
  88. package/src/components/data/DataGrid/DataGridColumnsModal/index.tsx +181 -181
  89. package/src/components/data/DataGrid/DataGridColumnsModal/styles.ts +104 -104
  90. package/src/components/data/DataGrid/DataGridEditableCell.tsx +43 -54
  91. package/src/components/data/DataGrid/DataGridFilterMenu/hooks.tsx +75 -75
  92. package/src/components/data/DataGrid/DataGridFilterMenu/index.tsx +364 -190
  93. package/src/components/data/DataGrid/DataGridFilterMenu/styles.ts +49 -100
  94. package/src/components/data/DataGrid/DataGridFooter.tsx +42 -64
  95. package/src/components/data/DataGrid/DataGridHeader.tsx +126 -126
  96. package/src/components/data/DataGrid/DataGridHeaderCell.tsx +132 -167
  97. package/src/components/data/DataGrid/FilterModalContent/index.tsx +124 -125
  98. package/src/components/data/DataGrid/FilterModalContent/styles.ts +22 -22
  99. package/src/components/data/DataGrid/FilterValuesScroller.tsx +133 -131
  100. package/src/components/data/DataGrid/VirtualScroller.tsx +46 -46
  101. package/src/components/data/DataGrid/helpers/columns.tsx +287 -196
  102. package/src/components/data/DataGrid/helpers/filters.ts +220 -207
  103. package/src/components/data/DataGrid/helpers/index.ts +2 -2
  104. package/src/components/data/DataGrid/hooks/index.ts +30 -30
  105. package/src/components/data/DataGrid/hooks/useDataGrid.tsx +305 -264
  106. package/src/components/data/DataGrid/hooks/useDataGridCopy.ts +170 -165
  107. package/src/components/data/DataGrid/hooks/useDataGridSettings.ts +48 -48
  108. package/src/components/data/DataGrid/index.tsx +139 -132
  109. package/src/components/data/DataGrid/styles.ts +347 -326
  110. package/src/components/data/DataGrid/types.ts +260 -240
  111. package/src/components/data/SqlRequestDataGrid/helpers/columns.tsx +259 -224
  112. package/src/components/data/SqlRequestDataGrid/helpers/index.ts +2 -2
  113. package/src/components/data/SqlRequestDataGrid/helpers/sqlRequests.ts +16 -16
  114. package/src/components/data/SqlRequestDataGrid/index.tsx +347 -252
  115. package/src/components/data/SqlRequestDataGrid/types.ts +47 -47
  116. package/src/components/data/index.ts +8 -8
  117. package/src/components/forms/Button.tsx +99 -99
  118. package/src/components/forms/IconButton.tsx +56 -56
  119. package/src/components/forms/IndeterminateCheckbox.tsx +46 -46
  120. package/src/components/forms/Select.tsx +40 -40
  121. package/src/components/forms/index.ts +5 -5
  122. package/src/components/forms/styles.ts +20 -20
  123. package/src/components/index.ts +3 -3
  124. package/src/components/layout/Dropdown/index.tsx +79 -79
  125. package/src/components/layout/Dropdown/styles.ts +44 -44
  126. package/src/components/layout/Loading/index.tsx +29 -29
  127. package/src/components/layout/Loading/styles.ts +29 -29
  128. package/src/components/layout/Modal/index.tsx +51 -51
  129. package/src/components/layout/Modal/styles.ts +110 -110
  130. package/src/components/layout/index.ts +3 -3
  131. package/src/components/ui/ContextMenu/index.tsx +73 -0
  132. package/src/components/ui/ContextMenu/styles.ts +115 -0
  133. package/src/config/index.ts +14 -14
  134. package/src/helpers/dates.ts +9 -9
  135. package/src/helpers/getScrollbarSize.ts +14 -14
  136. package/src/helpers/numbers.ts +20 -20
  137. package/src/hooks/index.ts +2 -2
  138. package/src/hooks/useElementSize.ts +24 -24
  139. package/src/hooks/useWindowSize.ts +20 -20
  140. package/src/index.ts +7 -7
  141. package/src/providers/PortalsProvider/index.tsx +54 -54
  142. package/src/providers/PortalsProvider/styles.ts +27 -27
  143. package/src/providers/SettingsProvider/index.tsx +70 -70
  144. package/src/providers/ThemeProvider/ThemeProvider.ts +55 -55
  145. package/src/providers/ThemeProvider/defaultTheme.ts +444 -444
  146. package/src/providers/ThemeProvider/index.ts +3 -3
  147. package/src/providers/ThemeProvider/types.ts +123 -123
  148. package/src/providers/UiProviders/index.tsx +65 -65
  149. package/src/providers/UiProviders/styles.ts +10 -10
  150. package/src/providers/hooks.ts +8 -8
  151. package/src/providers/index.ts +5 -5
  152. package/src/services/HttpService.ts +80 -80
  153. package/src/services/WebSocketService.ts +147 -147
  154. package/src/services/advancedRequests.ts +101 -101
  155. package/src/services/base.ts +31 -31
  156. package/src/services/hooks.ts +23 -23
  157. package/src/services/index.ts +2 -2
  158. package/src/services/sqlRequests.ts +110 -99
  159. package/src/styles/animations.scss +30 -30
  160. package/src/styles/index.scss +42 -42
  161. package/src/typings.d.ts +6 -6
  162. package/tsconfig.tsbuildinfo +1 -1
  163. package/dist/components/data/DataGrid/helpers.d.ts +0 -28
  164. package/dist/components/data/DataGrid/helpers.js +0 -436
  165. package/dist/config/types.d.ts +0 -11
  166. package/dist/config/types.js +0 -2
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || function (mod) {
23
+ if (mod && mod.__esModule) return mod;
24
+ var result = {};
25
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
+ __setModuleDefault(result, mod);
27
+ return result;
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.Divider = exports.MenuItemContainer = exports.SubMenu = exports.MenuContainer = void 0;
31
+ var styled_components_1 = __importStar(require("styled-components"));
32
+ var menuContainerCss = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n color: var(--color-neutral-900);\n border-radius: var(--rounded-md);\n padding: var(--space-1) 0;\n box-shadow: var(--shadow-lg);\n background-color: var(--color-neutral-100);\n min-width: 20em;\n outline: 1px solid var(--color-neutral-200);\n display: flex;\n flex-direction: column;\n"], ["\n position: absolute;\n color: var(--color-neutral-900);\n border-radius: var(--rounded-md);\n padding: var(--space-1) 0;\n box-shadow: var(--shadow-lg);\n background-color: var(--color-neutral-100);\n min-width: 20em;\n outline: 1px solid var(--color-neutral-200);\n display: flex;\n flex-direction: column;\n"])));
33
+ exports.MenuContainer = styled_components_1.default.div.attrs({
34
+ className: 'MenuContainer',
35
+ })(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", "\n inset: 0;\n"], ["\n ", "\n inset: 0;\n"])), menuContainerCss);
36
+ exports.MenuContainer.displayName = 'MenuContainer';
37
+ exports.SubMenu = styled_components_1.default.div.attrs({
38
+ className: 'SubMenu',
39
+ })(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", "\n top: 0;\n left: 100%;\n margin-top: -var(--space-1);\n"], ["\n ", "\n top: 0;\n left: 100%;\n margin-top: -var(--space-1);\n"])), menuContainerCss);
40
+ exports.SubMenu.displayName = 'SubMenu';
41
+ exports.MenuItemContainer = styled_components_1.default.div.attrs({
42
+ className: 'MenuItemContainer',
43
+ })(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n position: relative;\n display: flex;\n align-items: center;\n font-family: var(--font-sans);\n font-weight: normal;\n text-align: left;\n padding: var(--space-1) var(--space-2);\n font-size: var(--text-base);\n line-height: var(--leading-6);\n border: none;\n cursor: pointer;\n\n ", "\n\n ", "\n\n svg {\n fill: currentColor;\n width: var(--space-4);\n height: var(--space-4);\n margin-right: var(--space-2);\n }\n\n & > ", " {\n display: none;\n margin-top: calc(0px - var(--space-1));\n }\n &.opened > ", " {\n display: block;\n }\n"], ["\n position: relative;\n display: flex;\n align-items: center;\n font-family: var(--font-sans);\n font-weight: normal;\n text-align: left;\n padding: var(--space-1) var(--space-2);\n font-size: var(--text-base);\n line-height: var(--leading-6);\n border: none;\n cursor: pointer;\n\n ", "\n\n ", "\n\n svg {\n fill: currentColor;\n width: var(--space-4);\n height: var(--space-4);\n margin-right: var(--space-2);\n }\n\n & > ", " {\n display: none;\n margin-top: calc(0px - var(--space-1));\n }\n &.opened > ", " {\n display: block;\n }\n"])), function (_a) {
44
+ var $withArrow = _a.$withArrow;
45
+ return $withArrow && (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n &::after {\n content: '';\n position: absolute;\n right: var(--space-2);\n top: 50%;\n transform: translateY(-50%);\n border: 4px solid transparent;\n border-left-color: var(--color-neutral-600);\n }\n "], ["\n &::after {\n content: '';\n position: absolute;\n right: var(--space-2);\n top: 50%;\n transform: translateY(-50%);\n border: 4px solid transparent;\n border-left-color: var(--color-neutral-600);\n }\n "])));
46
+ }, function (_a) {
47
+ var $color = _a.$color, disabled = _a.disabled;
48
+ return disabled
49
+ ? (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n color: var(--color-neutral-300);\n background-color: var(--color-neutral-100);\n cursor: default;\n "], ["\n color: var(--color-neutral-300);\n background-color: var(--color-neutral-100);\n cursor: default;\n "]))) : $color
50
+ ? (0, styled_components_1.css)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n color: var(--color-", "-600);\n background-color: var(--color-neutral-100);\n &:hover {\n background-color: var(--color-", "-200);\n }\n "], ["\n color: var(--color-", "-600);\n background-color: var(--color-neutral-100);\n &:hover {\n background-color: var(--color-", "-200);\n }\n "])), $color, $color) : (0, styled_components_1.css)(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n color: var(--color-neutral-900);\n background-color: var(--color-neutral-100);\n &:hover {\n background-color: var(--color-neutral-200);\n }\n "], ["\n color: var(--color-neutral-900);\n background-color: var(--color-neutral-100);\n &:hover {\n background-color: var(--color-neutral-200);\n }\n "])));
51
+ }, exports.SubMenu, exports.SubMenu);
52
+ exports.MenuItemContainer.displayName = 'MenuItemContainer';
53
+ exports.Divider = styled_components_1.default.div.attrs({
54
+ className: 'Divider',
55
+ })(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n border-top: 1px solid var(--color-neutral-200);\n margin: var(--space-1) 0;\n"], ["\n border-top: 1px solid var(--color-neutral-200);\n margin: var(--space-1) 0;\n"])));
56
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9;
@@ -0,0 +1,2 @@
1
+ import moment from 'moment';
2
+ export declare const formatDate: (date: moment.MomentInput, format?: string) => string;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.formatDate = void 0;
7
+ var moment_1 = __importDefault(require("moment"));
8
+ var formatDate = function (date, format) {
9
+ if (format === void 0) { format = 'DD/MM/YYYY'; }
10
+ var m = moment_1.default.utc(date);
11
+ return m.isValid() ? m.format(format) : '';
12
+ };
13
+ exports.formatDate = formatDate;
@@ -31,7 +31,7 @@ export type AdvancedRequestRow<R> = {
31
31
  };
32
32
  export type AdvancedResponseDTO<T = any> = {
33
33
  data: AdvancedRequestRow<T>[];
34
- total?: number;
34
+ count?: number;
35
35
  };
36
36
  export type AdvancedRequestFieldDTO = string | {
37
37
  name: string;
@@ -14,27 +14,32 @@ export type ConditionDTO = {
14
14
  };
15
15
  export type OrderByDTO = {
16
16
  field: string;
17
+ type: string;
17
18
  direction?: 'ASC' | 'DESC';
18
19
  };
20
+ export type SqlRequestFooterFunction = 'sum' | 'avg' | 'count' | 'max' | 'min';
19
21
  export type SqlRequestDTO = {
20
22
  columns?: string[];
21
23
  returnColumns?: string[];
24
+ columnTypes?: string[];
25
+ totalColumns?: Record<string, SqlRequestFooterFunction>;
22
26
  conditions?: ConditionDTO[];
23
27
  orderBy?: OrderByDTO[];
24
28
  start?: number;
25
29
  length?: number;
26
- getTotal?: boolean;
30
+ getCount?: boolean;
27
31
  unique?: boolean;
28
32
  };
29
33
  export type SqlRequestRow<R> = {
30
- [K in keyof R]: R[K] extends string | number | null ? R[K] : string | number | null;
34
+ [K in keyof R]: R[K] extends string | number | null | undefined ? R[K] : string | number | null | undefined;
31
35
  };
32
36
  export type SqlResponseDTO<T = any> = {
33
37
  data: SqlRequestRow<T>[];
34
- total?: number;
38
+ count?: number;
39
+ totals?: Record<string, string | number | null | undefined>;
35
40
  };
36
41
  type SqlRequestHandler<T> = (request: SqlRequestDTO) => Promise<SqlResponseDTO<T>>;
37
42
  export declare const useSqlRequestHandler: <T = any>(name: string) => [SqlRequestHandler<T>, SqlRequestHandler<{
38
43
  Id: string;
39
- }>];
44
+ }>, SqlRequestHandler<Partial<T>>];
40
45
  export {};
@@ -6,5 +6,6 @@ var hooks_1 = require("./hooks");
6
6
  var useSqlRequestHandler = function (name) { return [
7
7
  (0, hooks_1.useWebSocketRequestHandler)(name),
8
8
  (0, hooks_1.useWebSocketRequestHandler)(name),
9
+ (0, hooks_1.useWebSocketRequestHandler)(name),
9
10
  ]; };
10
11
  exports.useSqlRequestHandler = useSqlRequestHandler;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@addev-be/ui",
3
- "version": "0.2.5",
3
+ "version": "0.2.7",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "watch": "tsc -b --watch",
package/src/Icons.tsx CHANGED
@@ -1,80 +1,104 @@
1
- import { FC, SVGProps, useEffect, useState } from 'react';
2
-
3
- import ArrowDownAZIcon from '../assets/icons/arrow-down-a-z.svg?react';
4
- import ArrowUpZAIcon from '../assets/icons/arrow-up-z-a.svg?react';
5
- import ArrowsRotateIcon from '../assets/icons/arrows-rotate.svg?react';
6
- import ArrowsUpDownIcon from '../assets/icons/arrows-up-down.svg?react';
7
- import CheckIcon from '../assets/icons/check.svg?react';
8
- import CopyIcon from '../assets/icons/copy.svg?react';
9
- import DownIcon from '../assets/icons/down.svg?react';
10
- import FilterFullIcon from '../assets/icons/filter-full.svg?react';
11
- import FilterIcon from '../assets/icons/filter.svg?react';
12
- import FilterSlashIcon from '../assets/icons/filter-slash.svg?react';
13
- import HashtagIcon from '../assets/icons/hashtag.svg?react';
14
- import ImageSlashIcon from '../assets/icons/image-slash.svg?react';
15
- import LeftIcon from '../assets/icons/left.svg?react';
16
- import MagnifierIcon from '../assets/icons/magnifier.svg?react';
17
- import PhoneIcon from '../assets/icons/phone.svg?react';
18
- import PlusIcon from '../assets/icons/plus.svg?react';
19
- import RightIcon from '../assets/icons/right.svg?react';
20
- import SpinnerIcon from '../assets/icons/spinner-third.svg?react';
21
- import TableColumnsIcon from '../assets/icons/table-columns.svg?react';
22
- import UpIcon from '../assets/icons/up.svg?react';
23
- import UserTieIcon from '../assets/icons/user-tie.svg?react';
24
-
25
- type IconFCProps = SVGProps<SVGSVGElement>;
26
- export type IconFC = FC<IconFCProps>;
27
-
28
- type AnimatedIconProps = {
29
- icons: FC[];
30
- speed?: number;
31
- };
32
-
33
- export const AnimatedIcon: FC<AnimatedIconProps & IconFCProps> = ({
34
- icons,
35
- speed = 150,
36
- ...props
37
- }) => {
38
- const [currentIcon, setCurrentIcon] = useState(0);
39
-
40
- useEffect(() => {
41
- const interval = setInterval(() => {
42
- setCurrentIcon((currentIcon) => (currentIcon + 1) % icons.length);
43
- }, speed);
44
-
45
- return () => {
46
- clearInterval(interval);
47
- };
48
- }, [icons.length, speed]);
49
-
50
- const Icon = icons[currentIcon];
51
- return <Icon {...props} />;
52
- };
53
-
54
- export const LoadingIcon: FC<IconFCProps> = ({ className, ...props }) => (
55
- <SpinnerIcon className={`animate-spin ${className}`} {...props} />
56
- );
57
-
58
- export {
59
- ArrowDownAZIcon,
60
- ArrowUpZAIcon,
61
- ArrowsRotateIcon,
62
- ArrowsUpDownIcon,
63
- CheckIcon,
64
- CopyIcon,
65
- DownIcon,
66
- FilterFullIcon,
67
- FilterIcon,
68
- FilterSlashIcon,
69
- HashtagIcon,
70
- ImageSlashIcon,
71
- LeftIcon,
72
- MagnifierIcon,
73
- PhoneIcon,
74
- PlusIcon,
75
- RightIcon,
76
- SpinnerIcon,
77
- TableColumnsIcon,
78
- UpIcon,
79
- UserTieIcon,
80
- };
1
+ import { FC, SVGProps, useEffect, useState } from 'react';
2
+
3
+ import ArrowDown19Icon from '../assets/icons/arrow-down-1-9.svg?react';
4
+ import ArrowDownAZIcon from '../assets/icons/arrow-down-a-z.svg?react';
5
+ import ArrowDownBigSmallIcon from '../assets/icons/arrow-down-big-small.svg?react';
6
+ import ArrowUp91Icon from '../assets/icons/arrow-up-9-1.svg?react';
7
+ import ArrowUpBigSmallIcon from '../assets/icons/arrow-up-big-small.svg?react';
8
+ import ArrowUpZAIcon from '../assets/icons/arrow-up-z-a.svg?react';
9
+ import ArrowsRotateIcon from '../assets/icons/arrows-rotate.svg?react';
10
+ import ArrowsUpDownIcon from '../assets/icons/arrows-up-down.svg?react';
11
+ import CheckIcon from '../assets/icons/check.svg?react';
12
+ import ChevronDownIcon from '../assets/icons/chevron-down.svg?react';
13
+ import CopyIcon from '../assets/icons/copy.svg?react';
14
+ import DownIcon from '../assets/icons/down.svg?react';
15
+ import EllipsisIcon from '../assets/icons/ellipsis.svg?react';
16
+ import FilterFullIcon from '../assets/icons/filter-full.svg?react';
17
+ import FilterIcon from '../assets/icons/filter.svg?react';
18
+ import FilterSlashIcon from '../assets/icons/filter-slash.svg?react';
19
+ import HashtagIcon from '../assets/icons/hashtag.svg?react';
20
+ import ImageSlashIcon from '../assets/icons/image-slash.svg?react';
21
+ import LeftIcon from '../assets/icons/left.svg?react';
22
+ import MagnifierIcon from '../assets/icons/magnifier.svg?react';
23
+ import PhoneIcon from '../assets/icons/phone.svg?react';
24
+ import PlusIcon from '../assets/icons/plus.svg?react';
25
+ import RightIcon from '../assets/icons/right.svg?react';
26
+ import SigmaIcon from '../assets/icons/sigma.svg?react';
27
+ import SpinnerIcon from '../assets/icons/spinner-third.svg?react';
28
+ import TableColumnsIcon from '../assets/icons/table-columns.svg?react';
29
+ import TableFooterIcon from '../assets/icons/table-footer.svg?react';
30
+ import TableFooterSlashIcon from '../assets/icons/table-footer-slash.svg?react';
31
+ import TableIcon from '../assets/icons/table.svg?react';
32
+ import TallyIcon from '../assets/icons/tally.svg?react';
33
+ import UpIcon from '../assets/icons/up.svg?react';
34
+ import UserTieIcon from '../assets/icons/user-tie.svg?react';
35
+ import XBarIcon from '../assets/icons/x-bar.svg?react';
36
+
37
+ type IconFCProps = SVGProps<SVGSVGElement>;
38
+ export type IconFC = FC<IconFCProps>;
39
+
40
+ type AnimatedIconProps = {
41
+ icons: FC[];
42
+ speed?: number;
43
+ };
44
+
45
+ export const AnimatedIcon: FC<AnimatedIconProps & IconFCProps> = ({
46
+ icons,
47
+ speed = 150,
48
+ ...props
49
+ }) => {
50
+ const [currentIcon, setCurrentIcon] = useState(0);
51
+
52
+ useEffect(() => {
53
+ const interval = setInterval(() => {
54
+ setCurrentIcon((currentIcon) => (currentIcon + 1) % icons.length);
55
+ }, speed);
56
+
57
+ return () => {
58
+ clearInterval(interval);
59
+ };
60
+ }, [icons.length, speed]);
61
+
62
+ const Icon = icons[currentIcon];
63
+ return <Icon {...props} />;
64
+ };
65
+
66
+ export const LoadingIcon: FC<IconFCProps> = ({ className, ...props }) => (
67
+ <SpinnerIcon className={`animate-spin ${className}`} {...props} />
68
+ );
69
+
70
+ export {
71
+ ArrowDownAZIcon,
72
+ ArrowDown19Icon,
73
+ ArrowDownBigSmallIcon,
74
+ ArrowUpZAIcon,
75
+ ArrowUpBigSmallIcon,
76
+ ArrowUp91Icon,
77
+ ArrowsRotateIcon,
78
+ ArrowsUpDownIcon,
79
+ CheckIcon,
80
+ ChevronDownIcon,
81
+ CopyIcon,
82
+ DownIcon,
83
+ EllipsisIcon,
84
+ FilterFullIcon,
85
+ FilterIcon,
86
+ FilterSlashIcon,
87
+ HashtagIcon,
88
+ ImageSlashIcon,
89
+ LeftIcon,
90
+ MagnifierIcon,
91
+ PhoneIcon,
92
+ PlusIcon,
93
+ RightIcon,
94
+ SigmaIcon,
95
+ SpinnerIcon,
96
+ TableColumnsIcon,
97
+ TableFooterIcon,
98
+ TableFooterSlashIcon,
99
+ TableIcon,
100
+ TallyIcon,
101
+ UpIcon,
102
+ UserTieIcon,
103
+ XBarIcon,
104
+ };
@@ -1,93 +1,93 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
-
3
- import {
4
- AdvancedRequestDTO,
5
- ConditionDTO,
6
- FieldDTO,
7
- OrderByDTO,
8
- } from '../../../../services/advancedRequests';
9
- import {
10
- AdvancedRequestDataGridColumns,
11
- AdvancedRequestDataGridFilters,
12
- } from '../types';
13
-
14
- import _ from 'lodash';
15
-
16
- export const getAdvancedRequestDto = <R>({
17
- type,
18
- columns,
19
- conditions = [],
20
- orderBy = [],
21
- start = 0,
22
- length = 100,
23
- getTotal = false,
24
- idField = { fieldName: 'Id' },
25
- }: {
26
- type: string;
27
- columns: AdvancedRequestDataGridColumns<R>;
28
- conditions?: ConditionDTO[];
29
- orderBy?: OrderByDTO[];
30
- start?: number;
31
- length?: number;
32
- getTotal?: boolean;
33
- idField?: FieldDTO | null;
34
- }): AdvancedRequestDTO => ({
35
- fields: [
36
- ...(idField === null ? [] : [idField]),
37
- ...Object.keys(columns).map((key) =>
38
- columns[key].field
39
- ? {
40
- ...columns[key].field,
41
- fieldName: columns[key].field?.fieldName ?? key,
42
- fieldAlias: key,
43
- }
44
- : {
45
- fieldName: key,
46
- fieldAlias: key,
47
- }
48
- ),
49
- ],
50
- conditions,
51
- orderBy,
52
- type,
53
- start,
54
- length,
55
- getTotal,
56
- });
57
-
58
- export const convertFiltersToConditions = <R>(
59
- filters: AdvancedRequestDataGridFilters,
60
- columns: AdvancedRequestDataGridColumns<R>
61
- ): Record<string, ConditionDTO> =>
62
- _.mapValues(filters, (filter, columnKey) => ({
63
- field:
64
- columns[columnKey].filterField ??
65
- columns[columnKey].field?.fieldAlias ??
66
- columns[columnKey].field?.fieldName ??
67
- columnKey,
68
- operator: filter.operator,
69
- value: ['inArray', 'inRange'].includes(filter.operator)
70
- ? filter.values
71
- : _.castArray<string | number | null>(filter.values)[0],
72
- }));
73
-
74
- export const parseJsonObjectFields = <R>(
75
- rows: any[],
76
- columns: AdvancedRequestDataGridColumns<R>,
77
- parser?: (row: any) => R
78
- ): R[] => {
79
- const jsonColumns = Object.keys(columns).filter(
80
- (key) => columns[key].field?.operator === 'jsonObject'
81
- );
82
- const parsedRows =
83
- jsonColumns.length === 0
84
- ? rows
85
- : rows.map((row) => {
86
- const parsedRow = { ...row };
87
- jsonColumns.forEach((key) => {
88
- parsedRow[key] = JSON.parse(parsedRow[key] ?? '{}');
89
- });
90
- return parsedRow;
91
- });
92
- return parser ? parsedRows.map(parser) : parsedRows;
93
- };
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
3
+ import {
4
+ AdvancedRequestDTO,
5
+ ConditionDTO,
6
+ FieldDTO,
7
+ OrderByDTO,
8
+ } from '../../../../services/advancedRequests';
9
+ import {
10
+ AdvancedRequestDataGridColumns,
11
+ AdvancedRequestDataGridFilters,
12
+ } from '../types';
13
+
14
+ import _ from 'lodash';
15
+
16
+ export const getAdvancedRequestDto = <R>({
17
+ type,
18
+ columns,
19
+ conditions = [],
20
+ orderBy = [],
21
+ start = 0,
22
+ length = 100,
23
+ getTotal = false,
24
+ idField = { fieldName: 'Id' },
25
+ }: {
26
+ type: string;
27
+ columns: AdvancedRequestDataGridColumns<R>;
28
+ conditions?: ConditionDTO[];
29
+ orderBy?: OrderByDTO[];
30
+ start?: number;
31
+ length?: number;
32
+ getTotal?: boolean;
33
+ idField?: FieldDTO | null;
34
+ }): AdvancedRequestDTO => ({
35
+ fields: [
36
+ ...(idField === null ? [] : [idField]),
37
+ ...Object.keys(columns).map((key) =>
38
+ columns[key].field
39
+ ? {
40
+ ...columns[key].field,
41
+ fieldName: columns[key].field?.fieldName ?? key,
42
+ fieldAlias: key,
43
+ }
44
+ : {
45
+ fieldName: key,
46
+ fieldAlias: key,
47
+ }
48
+ ),
49
+ ],
50
+ conditions,
51
+ orderBy,
52
+ type,
53
+ start,
54
+ length,
55
+ getTotal,
56
+ });
57
+
58
+ export const convertFiltersToConditions = <R>(
59
+ filters: AdvancedRequestDataGridFilters,
60
+ columns: AdvancedRequestDataGridColumns<R>
61
+ ): Record<string, ConditionDTO> =>
62
+ _.mapValues(filters, (filter, columnKey) => ({
63
+ field:
64
+ columns[columnKey].filterField ??
65
+ columns[columnKey].field?.fieldAlias ??
66
+ columns[columnKey].field?.fieldName ??
67
+ columnKey,
68
+ operator: filter.operator,
69
+ value: ['inArray', 'inRange'].includes(filter.operator)
70
+ ? filter.values
71
+ : _.castArray<string | number | null>(filter.values)[0],
72
+ }));
73
+
74
+ export const parseJsonObjectFields = <R>(
75
+ rows: any[],
76
+ columns: AdvancedRequestDataGridColumns<R>,
77
+ parser?: (row: any) => R
78
+ ): R[] => {
79
+ const jsonColumns = Object.keys(columns).filter(
80
+ (key) => columns[key].field?.operator === 'jsonObject'
81
+ );
82
+ const parsedRows =
83
+ jsonColumns.length === 0
84
+ ? rows
85
+ : rows.map((row) => {
86
+ const parsedRow = { ...row };
87
+ jsonColumns.forEach((key) => {
88
+ parsedRow[key] = JSON.parse(parsedRow[key] ?? '{}');
89
+ });
90
+ return parsedRow;
91
+ });
92
+ return parser ? parsedRows.map(parser) : parsedRows;
93
+ };