@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
@@ -1,76 +1,76 @@
1
- import { SpaceProps, space } from '../../../helpers/styled/space';
2
- import {
3
- ThemeColor,
4
- ThemeColorWithIntensity,
5
- } from '../../../providers/ThemeProvider/types';
6
- import styled, { css } from 'styled-components';
7
-
8
- import { getColorWithIntensity } from '../../../providers/ThemeProvider/helpers';
9
-
10
- export const TabsViewContainer = styled.div`
11
- display: flex;
12
- flex-direction: column;
13
- height: 100%;
14
- `;
15
-
16
- export const TabsListContainer = styled.div<SpaceProps>`
17
- display: flex;
18
- gap: var(--space-4);
19
- flex-shrink: 0;
20
- overflow-x: scroll;
21
- scrollbar-width: none;
22
- font-size: var(--text-lg);
23
- white-space: nowrap;
24
-
25
- ${space}
26
- `;
27
-
28
- export const TabContainer = styled.div<{
29
- $color?: ThemeColorWithIntensity | ThemeColor;
30
- $isActive?: boolean;
31
- }>`
32
- display: flex;
33
- align-items: center;
34
- height: var(--space-8);
35
- gap: var(--space-2);
36
- cursor: pointer;
37
- padding: 0 var(--space-2);
38
- color: var(--color-text-800);
39
-
40
- svg {
41
- height: var(--space-4);
42
- width: var(--space-4);
43
- fill: var(--color-base-800);
44
- }
45
-
46
- ${({ $color = 'primary' }) => css`
47
- &:hover {
48
- color: var(--color-${getColorWithIntensity($color, 500)});
49
- svg {
50
- fill: var(--color-${getColorWithIntensity($color, 500)});
51
- }
52
- }
53
- `};
54
-
55
- ${({ $isActive, $color = 'primary' }) =>
56
- $isActive &&
57
- css`
58
- border-bottom: var(--space-0_5) solid;
59
- color: var(--color-${getColorWithIntensity($color, 500)});
60
- svg {
61
- fill: var(--color-${getColorWithIntensity($color, 500)});
62
- }
63
- `}
64
- `;
65
-
66
- export const TabContentContainer = styled.div<{
67
- $isOverflow?: boolean;
68
- }>`
69
- display: flex;
70
- height: 100%;
71
-
72
- ${({ $isOverflow }) => css`
73
- overflow: ${$isOverflow ? 'auto' : 'hidden'};
74
- scroll-behavior: smooth;
75
- `}
76
- `;
1
+ import { SpaceProps, space } from '../../../helpers/styled/space';
2
+ import {
3
+ ThemeColor,
4
+ ThemeColorWithIntensity,
5
+ } from '../../../providers/ThemeProvider/types';
6
+ import styled, { css } from 'styled-components';
7
+
8
+ import { getColorWithIntensity } from '../../../providers/ThemeProvider/helpers';
9
+
10
+ export const TabsViewContainer = styled.div`
11
+ display: flex;
12
+ flex-direction: column;
13
+ height: 100%;
14
+ `;
15
+
16
+ export const TabsListContainer = styled.div<SpaceProps>`
17
+ display: flex;
18
+ gap: var(--space-4);
19
+ flex-shrink: 0;
20
+ overflow-x: scroll;
21
+ scrollbar-width: none;
22
+ font-size: var(--text-lg);
23
+ white-space: nowrap;
24
+
25
+ ${space}
26
+ `;
27
+
28
+ export const TabContainer = styled.div<{
29
+ $color?: ThemeColorWithIntensity | ThemeColor;
30
+ $isActive?: boolean;
31
+ }>`
32
+ display: flex;
33
+ align-items: center;
34
+ height: var(--space-8);
35
+ gap: var(--space-2);
36
+ cursor: pointer;
37
+ padding: 0 var(--space-2);
38
+ color: var(--color-text-800);
39
+
40
+ svg {
41
+ height: var(--space-4);
42
+ width: var(--space-4);
43
+ fill: var(--color-base-800);
44
+ }
45
+
46
+ ${({ $color = 'primary' }) => css`
47
+ &:hover {
48
+ color: var(--color-${getColorWithIntensity($color, 500)});
49
+ svg {
50
+ fill: var(--color-${getColorWithIntensity($color, 500)});
51
+ }
52
+ }
53
+ `};
54
+
55
+ ${({ $isActive, $color = 'primary' }) =>
56
+ $isActive &&
57
+ css`
58
+ border-bottom: var(--space-0_5) solid;
59
+ color: var(--color-${getColorWithIntensity($color, 500)});
60
+ svg {
61
+ fill: var(--color-${getColorWithIntensity($color, 500)});
62
+ }
63
+ `}
64
+ `;
65
+
66
+ export const TabContentContainer = styled.div<{
67
+ $isOverflow?: boolean;
68
+ }>`
69
+ display: flex;
70
+ height: 100%;
71
+
72
+ ${({ $isOverflow }) => css`
73
+ overflow: ${$isOverflow ? 'auto' : 'hidden'};
74
+ scroll-behavior: smooth;
75
+ `}
76
+ `;
@@ -1,15 +1,15 @@
1
- import {
2
- ThemeColor,
3
- ThemeColorWithIntensity,
4
- } from '../../../providers/ThemeProvider/types';
5
-
6
- import { IconFC } from '../../../Icons';
7
- import { ReactNode } from 'react';
8
-
9
- export type Tab = {
10
- color?: ThemeColorWithIntensity | ThemeColor;
11
- content: ReactNode;
12
- icon?: IconFC;
13
- key?: string;
14
- tabName: string;
15
- };
1
+ import {
2
+ ThemeColor,
3
+ ThemeColorWithIntensity,
4
+ } from '../../../providers/ThemeProvider/types';
5
+
6
+ import { IconFC } from '../../../Icons';
7
+ import { ReactNode } from 'react';
8
+
9
+ export type Tab = {
10
+ color?: ThemeColorWithIntensity | ThemeColor;
11
+ content: ReactNode;
12
+ icon?: IconFC;
13
+ key?: string;
14
+ tabName: string;
15
+ };
@@ -1,10 +1,10 @@
1
- import { DeepPartial } from '../types';
2
-
3
- export type EnvType = 'dev' | 'test' | 'staging' | 'prod';
4
-
5
- export type Config = {
6
- webSocketUrl: string;
7
- httpServerUrl: `${string}/`;
8
- };
9
-
10
- export type PartialConfig = DeepPartial<Config>;
1
+ import { DeepPartial } from '../types';
2
+
3
+ export type EnvType = 'dev' | 'test' | 'staging' | 'prod';
4
+
5
+ export type Config = {
6
+ webSocketUrl: string;
7
+ httpServerUrl: `${string}/`;
8
+ };
9
+
10
+ export type PartialConfig = DeepPartial<Config>;
@@ -1,9 +1,9 @@
1
- import { FC } from 'react';
2
-
3
- export const withDisplayName = <P = {}>(
4
- component: FC<P>,
5
- displayName: string
6
- ) => {
7
- component.displayName = displayName;
8
- return component;
9
- };
1
+ import { FC } from 'react';
2
+
3
+ export const withDisplayName = <P = {}>(
4
+ component: FC<P>,
5
+ displayName: string
6
+ ) => {
7
+ component.displayName = displayName;
8
+ return component;
9
+ };
@@ -1,17 +1,17 @@
1
- import moment from 'moment';
2
-
3
- export const formatDate = (
4
- date: moment.MomentInput,
5
- format: string = 'DD/MM/YYYY'
6
- ): string => {
7
- const m = moment.utc(date);
8
- return m.isValid() ? m.format(format) : '';
9
- };
10
-
11
- export const formatDateTime = (
12
- date: moment.MomentInput,
13
- format: string = 'DD/MM/YYYY HH:mm:ss'
14
- ): string => {
15
- const m = moment.utc(date);
16
- return m.isValid() ? m.format(format) : '';
17
- };
1
+ import moment from 'moment';
2
+
3
+ export const formatDate = (
4
+ date: moment.MomentInput,
5
+ format: string = 'DD/MM/YYYY'
6
+ ): string => {
7
+ const m = moment.utc(date);
8
+ return m.isValid() ? m.format(format) : '';
9
+ };
10
+
11
+ export const formatDateTime = (
12
+ date: moment.MomentInput,
13
+ format: string = 'DD/MM/YYYY HH:mm:ss'
14
+ ): string => {
15
+ const m = moment.utc(date);
16
+ return m.isValid() ? m.format(format) : '';
17
+ };
@@ -1,14 +1,14 @@
1
- let scrollBarSize: number[] | undefined = undefined;
2
-
3
- export const getScrollBarSize = () => {
4
- if (!scrollBarSize) {
5
- const el = document.createElement('div');
6
- el.style.cssText = 'overflow:scroll; visibility:hidden; position:absolute;';
7
- document.body.appendChild(el);
8
- const width = el.offsetWidth - el.clientWidth;
9
- const height = el.offsetHeight - el.clientHeight;
10
- el.remove();
11
- scrollBarSize = [width, height];
12
- }
13
- return scrollBarSize;
14
- };
1
+ let scrollBarSize: number[] | undefined = undefined;
2
+
3
+ export const getScrollBarSize = () => {
4
+ if (!scrollBarSize) {
5
+ const el = document.createElement('div');
6
+ el.style.cssText = 'overflow:scroll; visibility:hidden; position:absolute;';
7
+ document.body.appendChild(el);
8
+ const width = el.offsetWidth - el.clientWidth;
9
+ const height = el.offsetHeight - el.clientHeight;
10
+ el.remove();
11
+ scrollBarSize = [width, height];
12
+ }
13
+ return scrollBarSize;
14
+ };
@@ -1,63 +1,63 @@
1
- export const formatMoney = (number: number, decimals = 2, currency = 'EUR') =>
2
- new Intl.NumberFormat(navigator.language, {
3
- style: 'currency',
4
- currency,
5
- minimumFractionDigits: decimals,
6
- maximumFractionDigits: decimals,
7
- currencyDisplay: 'narrowSymbol',
8
- }).format(number);
9
-
10
- export const formatPercentage = (number: number, decimals = 2) =>
11
- new Intl.NumberFormat(navigator.language, {
12
- style: 'percent',
13
- minimumFractionDigits: decimals,
14
- maximumFractionDigits: decimals,
15
- }).format(number);
16
-
17
- export const formatNumber = (number: number, decimals = 2) =>
18
- new Intl.NumberFormat(navigator.language, {
19
- minimumFractionDigits: decimals,
20
- maximumFractionDigits: decimals,
21
- }).format(number);
22
-
23
- export const formatNumberInvariant = (number: number, decimals = 2) =>
24
- new Intl.NumberFormat('es-US', {
25
- minimumFractionDigits: decimals,
26
- maximumFractionDigits: decimals,
27
- }).format(number);
28
-
29
- const getDecimalSeparator = () => {
30
- const numberWithDecimal = 1.1; // A number with a decimal point
31
- const formattedNumber = new Intl.NumberFormat().format(numberWithDecimal);
32
- return formattedNumber.replace(/\d/g, ''); // Remove all digits to isolate the separator
33
- };
34
-
35
- export const decimalSeparator = getDecimalSeparator();
36
-
37
- export const parseNumber = (value: string) => {
38
- const number = value
39
- .replace(new RegExp(`[^\\d${decimalSeparator}]`, 'g'), '')
40
- .replace(decimalSeparator, '.');
41
- return parseFloat(number);
42
- };
43
-
44
- export const getCurrencySymbol = (currency: string) => {
45
- const formatter = new Intl.NumberFormat(navigator.language, {
46
- style: 'currency',
47
- currency,
48
- minimumFractionDigits: 0,
49
- maximumFractionDigits: 0,
50
- currencyDisplay: 'narrowSymbol',
51
- });
52
-
53
- // Format a number and extract the currency symbol
54
- const parts = formatter.formatToParts(1);
55
- const currencySymbol = parts.find((part) => part.type === 'currency')?.value;
56
-
57
- // Determine if the currency symbol is a prefix or suffix
58
- const isPrefix =
59
- parts.findIndex((part) => part.type === 'currency') <
60
- parts.findIndex((part) => part.type === 'integer');
61
-
62
- return isPrefix ? [currencySymbol, undefined] : [undefined, currencySymbol];
63
- };
1
+ export const formatMoney = (number: number, decimals = 2, currency = 'EUR') =>
2
+ new Intl.NumberFormat(navigator.language, {
3
+ style: 'currency',
4
+ currency,
5
+ minimumFractionDigits: decimals,
6
+ maximumFractionDigits: decimals,
7
+ currencyDisplay: 'narrowSymbol',
8
+ }).format(number);
9
+
10
+ export const formatPercentage = (number: number, decimals = 2) =>
11
+ new Intl.NumberFormat(navigator.language, {
12
+ style: 'percent',
13
+ minimumFractionDigits: decimals,
14
+ maximumFractionDigits: decimals,
15
+ }).format(number);
16
+
17
+ export const formatNumber = (number: number, decimals = 2) =>
18
+ new Intl.NumberFormat(navigator.language, {
19
+ minimumFractionDigits: decimals,
20
+ maximumFractionDigits: decimals,
21
+ }).format(number);
22
+
23
+ export const formatNumberInvariant = (number: number, decimals = 2) =>
24
+ new Intl.NumberFormat('es-US', {
25
+ minimumFractionDigits: decimals,
26
+ maximumFractionDigits: decimals,
27
+ }).format(number);
28
+
29
+ const getDecimalSeparator = () => {
30
+ const numberWithDecimal = 1.1; // A number with a decimal point
31
+ const formattedNumber = new Intl.NumberFormat().format(numberWithDecimal);
32
+ return formattedNumber.replace(/\d/g, ''); // Remove all digits to isolate the separator
33
+ };
34
+
35
+ export const decimalSeparator = getDecimalSeparator();
36
+
37
+ export const parseNumber = (value: string) => {
38
+ const number = value
39
+ .replace(new RegExp(`[^\\d${decimalSeparator}]`, 'g'), '')
40
+ .replace(decimalSeparator, '.');
41
+ return parseFloat(number);
42
+ };
43
+
44
+ export const getCurrencySymbol = (currency: string) => {
45
+ const formatter = new Intl.NumberFormat(navigator.language, {
46
+ style: 'currency',
47
+ currency,
48
+ minimumFractionDigits: 0,
49
+ maximumFractionDigits: 0,
50
+ currencyDisplay: 'narrowSymbol',
51
+ });
52
+
53
+ // Format a number and extract the currency symbol
54
+ const parts = formatter.formatToParts(1);
55
+ const currencySymbol = parts.find((part) => part.type === 'currency')?.value;
56
+
57
+ // Determine if the currency symbol is a prefix or suffix
58
+ const isPrefix =
59
+ parts.findIndex((part) => part.type === 'currency') <
60
+ parts.findIndex((part) => part.type === 'integer');
61
+
62
+ return isPrefix ? [currencySymbol, undefined] : [undefined, currencySymbol];
63
+ };
@@ -1,83 +1,83 @@
1
- const XS_BREAKPOINT = 320;
2
- const SM_BREAKPOINT = 480;
3
- const MD_BREAKPOINT = 768;
4
- const LG_BREAKPOINT = 992;
5
- const XL_BREAKPOINT = 1200;
6
-
7
- type MediaQueryKey = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
8
- const boundaries: Record<MediaQueryKey, [number, number]> = {
9
- xs: [0, XS_BREAKPOINT - 1],
10
- sm: [XS_BREAKPOINT, SM_BREAKPOINT - 1],
11
- md: [SM_BREAKPOINT, MD_BREAKPOINT - 1],
12
- lg: [MD_BREAKPOINT, LG_BREAKPOINT - 1],
13
- xl: [LG_BREAKPOINT, XL_BREAKPOINT - 1],
14
- xxl: [XL_BREAKPOINT, 999999],
15
- };
16
-
17
- export const findBreakpoint = (width: number): MediaQueryKey =>
18
- ((Object.keys(boundaries) as MediaQueryKey[]).find(
19
- (bp) => width >= boundaries[bp][0] && width < boundaries[bp][1]
20
- ) as MediaQueryKey) ?? 'xs';
21
-
22
- export const isSmallerThanOrEqual = (
23
- mq: MediaQueryKey,
24
- currentMq: MediaQueryKey
25
- ) => boundaries[currentMq][0] <= boundaries[mq][0];
26
- export const isGreaterThanOrEqual = (
27
- mq: MediaQueryKey,
28
- currentMq: MediaQueryKey
29
- ) => boundaries[currentMq][0] >= boundaries[mq][0];
30
-
31
- export const mediaQueries = {
32
- xs: `@media screen and (max-width: ${XS_BREAKPOINT - 1}px)`,
33
- sm: `@media screen and (min-width: ${XS_BREAKPOINT}px) and (max-width: ${
34
- SM_BREAKPOINT - 1
35
- }px)`,
36
- md: `@media screen and (min-width: ${SM_BREAKPOINT}px) and (max-width: ${
37
- MD_BREAKPOINT - 1
38
- }px)`,
39
- lg: `@media screen and (min-width: ${MD_BREAKPOINT}px) and (max-width: ${
40
- LG_BREAKPOINT - 1
41
- }px)`,
42
- xl: `@media screen and (min-width: ${LG_BREAKPOINT}px) and (max-width: ${
43
- XL_BREAKPOINT - 1
44
- }px)`,
45
- xxl: `@media screen and (min-width: ${XL_BREAKPOINT}px)`,
46
-
47
- smDown: `@media screen and (max-width: ${SM_BREAKPOINT - 1}px)`,
48
- mdDown: `@media screen and (max-width: ${MD_BREAKPOINT - 1}px)`,
49
- lgDown: `@media screen and (max-width: ${LG_BREAKPOINT - 1}px)`,
50
- xlDown: `@media screen and (max-width: ${XL_BREAKPOINT - 1}px)`,
51
-
52
- smUp: `@media screen and (min-width: ${XS_BREAKPOINT}px)`,
53
- mdUp: `@media screen and (min-width: ${SM_BREAKPOINT}px)`,
54
- lgUp: `@media screen and (min-width: ${MD_BREAKPOINT}px)`,
55
- xlUp: `@media screen and (min-width: ${LG_BREAKPOINT}px)`,
56
- };
57
-
58
- export const containerQueries = {
59
- xs: `@container (width <= ${XS_BREAKPOINT - 1}px)`,
60
- sm: `@container (width >= ${XS_BREAKPOINT}px) and (width <= ${
61
- SM_BREAKPOINT - 1
62
- }px)`,
63
- md: `@container (width >= ${SM_BREAKPOINT}px) and (width <= ${
64
- MD_BREAKPOINT - 1
65
- }px)`,
66
- lg: `@container (width >= ${MD_BREAKPOINT}px) and (width <= ${
67
- LG_BREAKPOINT - 1
68
- }px)`,
69
- xl: `@container (width >= ${LG_BREAKPOINT}px) and (width <= ${
70
- XL_BREAKPOINT - 1
71
- }px)`,
72
- xxl: `@container (width >= ${XL_BREAKPOINT}px)`,
73
-
74
- smDown: `@container (width <= ${SM_BREAKPOINT - 1}px)`,
75
- mdDown: `@container (width <= ${MD_BREAKPOINT - 1}px)`,
76
- lgDown: `@container (width <= ${LG_BREAKPOINT - 1}px)`,
77
- xlDown: `@container (width <= ${XL_BREAKPOINT - 1}px)`,
78
-
79
- smUp: `@container (width >= ${XS_BREAKPOINT}px)`,
80
- mdUp: `@container (width >= ${SM_BREAKPOINT}px)`,
81
- lgUp: `@container (width >= ${MD_BREAKPOINT}px)`,
82
- xlUp: `@container (width >= ${LG_BREAKPOINT}px)`,
83
- };
1
+ const XS_BREAKPOINT = 320;
2
+ const SM_BREAKPOINT = 480;
3
+ const MD_BREAKPOINT = 768;
4
+ const LG_BREAKPOINT = 992;
5
+ const XL_BREAKPOINT = 1200;
6
+
7
+ type MediaQueryKey = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
8
+ const boundaries: Record<MediaQueryKey, [number, number]> = {
9
+ xs: [0, XS_BREAKPOINT - 1],
10
+ sm: [XS_BREAKPOINT, SM_BREAKPOINT - 1],
11
+ md: [SM_BREAKPOINT, MD_BREAKPOINT - 1],
12
+ lg: [MD_BREAKPOINT, LG_BREAKPOINT - 1],
13
+ xl: [LG_BREAKPOINT, XL_BREAKPOINT - 1],
14
+ xxl: [XL_BREAKPOINT, 999999],
15
+ };
16
+
17
+ export const findBreakpoint = (width: number): MediaQueryKey =>
18
+ ((Object.keys(boundaries) as MediaQueryKey[]).find(
19
+ (bp) => width >= boundaries[bp][0] && width < boundaries[bp][1]
20
+ ) as MediaQueryKey) ?? 'xs';
21
+
22
+ export const isSmallerThanOrEqual = (
23
+ mq: MediaQueryKey,
24
+ currentMq: MediaQueryKey
25
+ ) => boundaries[currentMq][0] <= boundaries[mq][0];
26
+ export const isGreaterThanOrEqual = (
27
+ mq: MediaQueryKey,
28
+ currentMq: MediaQueryKey
29
+ ) => boundaries[currentMq][0] >= boundaries[mq][0];
30
+
31
+ export const mediaQueries = {
32
+ xs: `@media screen and (max-width: ${XS_BREAKPOINT - 1}px)`,
33
+ sm: `@media screen and (min-width: ${XS_BREAKPOINT}px) and (max-width: ${
34
+ SM_BREAKPOINT - 1
35
+ }px)`,
36
+ md: `@media screen and (min-width: ${SM_BREAKPOINT}px) and (max-width: ${
37
+ MD_BREAKPOINT - 1
38
+ }px)`,
39
+ lg: `@media screen and (min-width: ${MD_BREAKPOINT}px) and (max-width: ${
40
+ LG_BREAKPOINT - 1
41
+ }px)`,
42
+ xl: `@media screen and (min-width: ${LG_BREAKPOINT}px) and (max-width: ${
43
+ XL_BREAKPOINT - 1
44
+ }px)`,
45
+ xxl: `@media screen and (min-width: ${XL_BREAKPOINT}px)`,
46
+
47
+ smDown: `@media screen and (max-width: ${SM_BREAKPOINT - 1}px)`,
48
+ mdDown: `@media screen and (max-width: ${MD_BREAKPOINT - 1}px)`,
49
+ lgDown: `@media screen and (max-width: ${LG_BREAKPOINT - 1}px)`,
50
+ xlDown: `@media screen and (max-width: ${XL_BREAKPOINT - 1}px)`,
51
+
52
+ smUp: `@media screen and (min-width: ${XS_BREAKPOINT}px)`,
53
+ mdUp: `@media screen and (min-width: ${SM_BREAKPOINT}px)`,
54
+ lgUp: `@media screen and (min-width: ${MD_BREAKPOINT}px)`,
55
+ xlUp: `@media screen and (min-width: ${LG_BREAKPOINT}px)`,
56
+ };
57
+
58
+ export const containerQueries = {
59
+ xs: `@container (width <= ${XS_BREAKPOINT - 1}px)`,
60
+ sm: `@container (width >= ${XS_BREAKPOINT}px) and (width <= ${
61
+ SM_BREAKPOINT - 1
62
+ }px)`,
63
+ md: `@container (width >= ${SM_BREAKPOINT}px) and (width <= ${
64
+ MD_BREAKPOINT - 1
65
+ }px)`,
66
+ lg: `@container (width >= ${MD_BREAKPOINT}px) and (width <= ${
67
+ LG_BREAKPOINT - 1
68
+ }px)`,
69
+ xl: `@container (width >= ${LG_BREAKPOINT}px) and (width <= ${
70
+ XL_BREAKPOINT - 1
71
+ }px)`,
72
+ xxl: `@container (width >= ${XL_BREAKPOINT}px)`,
73
+
74
+ smDown: `@container (width <= ${SM_BREAKPOINT - 1}px)`,
75
+ mdDown: `@container (width <= ${MD_BREAKPOINT - 1}px)`,
76
+ lgDown: `@container (width <= ${LG_BREAKPOINT - 1}px)`,
77
+ xlDown: `@container (width <= ${XL_BREAKPOINT - 1}px)`,
78
+
79
+ smUp: `@container (width >= ${XS_BREAKPOINT}px)`,
80
+ mdUp: `@container (width >= ${SM_BREAKPOINT}px)`,
81
+ lgUp: `@container (width >= ${MD_BREAKPOINT}px)`,
82
+ xlUp: `@container (width >= ${LG_BREAKPOINT}px)`,
83
+ };