@true-engineering/true-react-common-ui-kit 3.0.3 → 3.0.5

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 (300) hide show
  1. package/LICENSE +201 -201
  2. package/dist/components/FiltersPane/FiltersPane.d.ts +0 -1
  3. package/dist/components/FiltersPane/components/FilterMultiSelect/FilterMultiSelect.d.ts +0 -1
  4. package/dist/components/FiltersPane/components/FilterValueView/FilterValueView.d.ts +0 -1
  5. package/dist/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.d.ts +1 -1
  6. package/dist/components/Flag/augment.d.ts +1 -1
  7. package/dist/components/Icon/complexIcons/augment.d.ts +1 -1
  8. package/dist/components/MultiSelect/MultiSelect.d.ts +0 -1
  9. package/dist/components/TextWithInfo/TextWithInfo.styles.d.ts +1 -1
  10. package/dist/true-react-common-ui-kit.js +91 -79
  11. package/dist/true-react-common-ui-kit.js.map +1 -1
  12. package/dist/true-react-common-ui-kit.umd.cjs +91 -79
  13. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  14. package/dist/vite-env.d.ts +1 -1
  15. package/package.json +94 -94
  16. package/src/components/AccountInfo/AccountInfo.stories.tsx +32 -32
  17. package/src/components/AccountInfo/AccountInfo.styles.ts +51 -51
  18. package/src/components/AccountInfo/AccountInfo.tsx +79 -79
  19. package/src/components/AccountInfo/constants.ts +1 -1
  20. package/src/components/AccountInfo/index.ts +2 -2
  21. package/src/components/AddButton/AddButton.stories.tsx +21 -21
  22. package/src/components/AddButton/AddButton.styles.ts +34 -34
  23. package/src/components/AddButton/AddButton.tsx +49 -49
  24. package/src/components/AddButton/index.ts +2 -2
  25. package/src/components/Button/Button.stories.tsx +56 -56
  26. package/src/components/Button/Button.styles.ts +200 -200
  27. package/src/components/Button/Button.tsx +147 -147
  28. package/src/components/Button/constants.ts +9 -9
  29. package/src/components/Button/index.ts +3 -3
  30. package/src/components/Button/types.ts +5 -5
  31. package/src/components/Checkbox/Checkbox.stories.tsx +28 -28
  32. package/src/components/Checkbox/Checkbox.styles.ts +47 -47
  33. package/src/components/Checkbox/Checkbox.tsx +83 -83
  34. package/src/components/Checkbox/index.ts +2 -2
  35. package/src/components/CloseButton/CloseButton.styles.ts +33 -33
  36. package/src/components/CloseButton/CloseButton.tsx +33 -33
  37. package/src/components/CloseButton/index.ts +2 -2
  38. package/src/components/Colors/Colors.stories.tsx +7 -7
  39. package/src/components/Colors/Colors.styles.ts +36 -36
  40. package/src/components/Colors/Colors.tsx +26 -26
  41. package/src/components/Colors/index.ts +1 -1
  42. package/src/components/CssBaseline/CssBaseline.styles.ts +14 -14
  43. package/src/components/CssBaseline/CssBaseline.tsx +13 -13
  44. package/src/components/CssBaseline/index.ts +2 -2
  45. package/src/components/DateInput/DateInput.stories.tsx +61 -61
  46. package/src/components/DateInput/DateInput.styles.ts +18 -18
  47. package/src/components/DateInput/DateInput.tsx +87 -87
  48. package/src/components/DateInput/constants.ts +2 -2
  49. package/src/components/DateInput/index.ts +3 -3
  50. package/src/components/DatePicker/DatePicker.stories.tsx +88 -88
  51. package/src/components/DatePicker/DatePicker.styles.ts +38 -38
  52. package/src/components/DatePicker/DatePicker.tsx +306 -306
  53. package/src/components/DatePicker/components/DatePickerHeader/DatePickerHeader.styles.ts +88 -88
  54. package/src/components/DatePicker/components/DatePickerHeader/DatePickerHeader.tsx +89 -89
  55. package/src/components/DatePicker/components/DatePickerHeader/index.ts +2 -2
  56. package/src/components/DatePicker/components/PopperContainer/PopperContainer.tsx +6 -6
  57. package/src/components/DatePicker/components/PopperContainer/index.ts +1 -1
  58. package/src/components/DatePicker/components/index.ts +2 -2
  59. package/src/components/DatePicker/constants.ts +6 -6
  60. package/src/components/DatePicker/helpers.ts +23 -23
  61. package/src/components/DatePicker/index.ts +4 -4
  62. package/src/components/DatePicker/types.ts +45 -45
  63. package/src/components/Description/Description.stories.tsx +27 -27
  64. package/src/components/Description/Description.styles.ts +30 -30
  65. package/src/components/Description/Description.tsx +59 -59
  66. package/src/components/Description/constants.ts +1 -1
  67. package/src/components/Description/index.ts +2 -2
  68. package/src/components/FiltersPane/FiltersPane.stories.tsx +287 -287
  69. package/src/components/FiltersPane/FiltersPane.styles.ts +87 -87
  70. package/src/components/FiltersPane/FiltersPane.tsx +155 -155
  71. package/src/components/FiltersPane/components/Filter/Filter.tsx +203 -203
  72. package/src/components/FiltersPane/components/Filter/index.ts +1 -1
  73. package/src/components/FiltersPane/components/FilterInterval/FilterInterval.styles.ts +61 -61
  74. package/src/components/FiltersPane/components/FilterInterval/FilterInterval.tsx +154 -154
  75. package/src/components/FiltersPane/components/FilterInterval/index.ts +2 -2
  76. package/src/components/FiltersPane/components/FilterMultiSelect/FilterMultiSelect.tsx +10 -10
  77. package/src/components/FiltersPane/components/FilterMultiSelect/index.ts +1 -1
  78. package/src/components/FiltersPane/components/FilterSelect/FilterSelect.styles.ts +140 -140
  79. package/src/components/FiltersPane/components/FilterSelect/FilterSelect.tsx +354 -354
  80. package/src/components/FiltersPane/components/FilterSelect/index.ts +2 -2
  81. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.styles.tsx +15 -15
  82. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.tsx +165 -165
  83. package/src/components/FiltersPane/components/FilterValueView/index.tsx +2 -2
  84. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.ts +68 -68
  85. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.tsx +210 -210
  86. package/src/components/FiltersPane/components/FilterWithDates/index.ts +2 -2
  87. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.styles.ts +21 -21
  88. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.tsx +177 -177
  89. package/src/components/FiltersPane/components/FilterWithPeriod/index.ts +2 -2
  90. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.styles.ts +115 -115
  91. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.tsx +167 -167
  92. package/src/components/FiltersPane/components/FilterWrapper/index.ts +2 -2
  93. package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.styles.ts +117 -117
  94. package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.tsx +165 -165
  95. package/src/components/FiltersPane/components/FiltersPaneSearch/index.ts +2 -2
  96. package/src/components/FiltersPane/components/index.ts +9 -9
  97. package/src/components/FiltersPane/constants.ts +137 -137
  98. package/src/components/FiltersPane/helpers.ts +26 -26
  99. package/src/components/FiltersPane/index.ts +5 -5
  100. package/src/components/FiltersPane/types.ts +156 -156
  101. package/src/components/Flag/Flag.stories.tsx +29 -29
  102. package/src/components/Flag/Flag.styles.ts +17 -17
  103. package/src/components/Flag/Flag.tsx +25 -25
  104. package/src/components/Flag/augment.d.ts +1 -1
  105. package/src/components/Flag/index.ts +2 -2
  106. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +353 -353
  107. package/src/components/FlexibleTable/FlexibleTable.styles.ts +103 -103
  108. package/src/components/FlexibleTable/FlexibleTable.tsx +260 -260
  109. package/src/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.styles.ts +32 -32
  110. package/src/components/FlexibleTable/components/FlexibleTableCell/FlexibleTableCell.tsx +69 -69
  111. package/src/components/FlexibleTable/components/FlexibleTableCell/index.ts +2 -2
  112. package/src/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.styles.ts +23 -23
  113. package/src/components/FlexibleTable/components/FlexibleTableRow/FlexibleTableRow.tsx +155 -155
  114. package/src/components/FlexibleTable/components/FlexibleTableRow/index.ts +2 -2
  115. package/src/components/FlexibleTable/components/index.ts +2 -2
  116. package/src/components/FlexibleTable/constants.ts +1 -1
  117. package/src/components/FlexibleTable/helpers.ts +15 -15
  118. package/src/components/FlexibleTable/index.ts +4 -4
  119. package/src/components/FlexibleTable/types.ts +52 -52
  120. package/src/components/Icon/Icon.stories.tsx +86 -86
  121. package/src/components/Icon/Icon.styles.ts +10 -10
  122. package/src/components/Icon/Icon.tsx +26 -26
  123. package/src/components/Icon/complexIcons/augment.d.ts +1 -1
  124. package/src/components/Icon/complexIcons/avatarGreen.svg +57 -57
  125. package/src/components/Icon/complexIcons/icons.ts +5 -5
  126. package/src/components/Icon/complexIcons/index.ts +1 -1
  127. package/src/components/Icon/components/ComplexIconBoilerplate/ComplexIconBoilerplate.tsx +16 -16
  128. package/src/components/Icon/components/ComplexIconBoilerplate/index.ts +1 -1
  129. package/src/components/Icon/components/IconBolerplate/IconBoilerplate.tsx +43 -43
  130. package/src/components/Icon/components/IconBolerplate/index.ts +1 -1
  131. package/src/components/Icon/components/index.ts +2 -2
  132. package/src/components/Icon/helpers.tsx +9 -9
  133. package/src/components/Icon/icons-list.ts +856 -856
  134. package/src/components/Icon/index.ts +5 -5
  135. package/src/components/Icon/snippet.tsx +6 -6
  136. package/src/components/Icon/types.ts +18 -18
  137. package/src/components/IncrementInput/IncrementInput.stories.tsx +31 -31
  138. package/src/components/IncrementInput/IncrementInput.styles.ts +77 -77
  139. package/src/components/IncrementInput/IncrementInput.tsx +104 -104
  140. package/src/components/IncrementInput/index.ts +2 -2
  141. package/src/components/Input/Input.stories.tsx +86 -86
  142. package/src/components/Input/Input.styles.ts +307 -307
  143. package/src/components/Input/Input.tsx +310 -310
  144. package/src/components/Input/constants.ts +1 -1
  145. package/src/components/Input/index.ts +3 -3
  146. package/src/components/Input/types.ts +6 -6
  147. package/src/components/List/List.stories.tsx +70 -70
  148. package/src/components/List/List.styles.ts +51 -51
  149. package/src/components/List/List.tsx +33 -33
  150. package/src/components/List/components/ListItem/ListItem.styles.ts +47 -47
  151. package/src/components/List/components/ListItem/ListItem.tsx +57 -57
  152. package/src/components/List/components/ListItem/index.ts +2 -2
  153. package/src/components/List/components/index.ts +1 -1
  154. package/src/components/List/index.ts +3 -3
  155. package/src/components/Modal/Modal.stories.tsx +105 -105
  156. package/src/components/Modal/Modal.styles.ts +303 -303
  157. package/src/components/Modal/Modal.tsx +186 -186
  158. package/src/components/Modal/index.ts +3 -3
  159. package/src/components/Modal/types.ts +17 -17
  160. package/src/components/MoreMenu/MoreMenu.stories.tsx +46 -46
  161. package/src/components/MoreMenu/MoreMenu.styles.ts +68 -68
  162. package/src/components/MoreMenu/MoreMenu.tsx +93 -93
  163. package/src/components/MoreMenu/index.ts +2 -2
  164. package/src/components/MultiSelect/MultiSelect.stories.tsx +46 -46
  165. package/src/components/MultiSelect/MultiSelect.styles.ts +59 -59
  166. package/src/components/MultiSelect/MultiSelect.tsx +101 -101
  167. package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.styles.ts +73 -73
  168. package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.tsx +53 -53
  169. package/src/components/MultiSelect/components/MultiSelectInput/index.ts +2 -2
  170. package/src/components/MultiSelect/components/index.ts +1 -1
  171. package/src/components/MultiSelect/index.ts +4 -4
  172. package/src/components/MultiSelect/types.ts +1 -1
  173. package/src/components/MultiSelectList/MultiSelectList.styles.ts +136 -136
  174. package/src/components/MultiSelectList/MultiSelectList.tsx +458 -458
  175. package/src/components/MultiSelectList/constants.ts +21 -21
  176. package/src/components/MultiSelectList/helpers.ts +11 -11
  177. package/src/components/MultiSelectList/index.ts +3 -3
  178. package/src/components/MultiSelectList/types.ts +15 -15
  179. package/src/components/Notification/Notification.stories.tsx +46 -46
  180. package/src/components/Notification/Notification.styles.ts +55 -55
  181. package/src/components/Notification/Notification.tsx +75 -75
  182. package/src/components/Notification/index.ts +3 -3
  183. package/src/components/Notification/types.ts +1 -1
  184. package/src/components/NumberInput/NumberInput.stories.tsx +35 -35
  185. package/src/components/NumberInput/NumberInput.tsx +133 -133
  186. package/src/components/NumberInput/helpers.ts +86 -86
  187. package/src/components/NumberInput/index.ts +1 -1
  188. package/src/components/PhoneInput/PhoneInput.stories.tsx +70 -70
  189. package/src/components/PhoneInput/PhoneInput.styles.ts +89 -89
  190. package/src/components/PhoneInput/PhoneInput.tsx +210 -210
  191. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +21 -21
  192. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.styles.ts +103 -103
  193. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.tsx +155 -155
  194. package/src/components/PhoneInput/components/PhoneInputCountryList/index.ts +2 -2
  195. package/src/components/PhoneInput/components/index.ts +1 -1
  196. package/src/components/PhoneInput/constants.ts +3 -3
  197. package/src/components/PhoneInput/index.ts +4 -4
  198. package/src/components/PhoneInput/types.ts +16 -16
  199. package/src/components/RadioButton/RadioButton.stories.tsx +46 -46
  200. package/src/components/RadioButton/RadioButton.styles.ts +37 -37
  201. package/src/components/RadioButton/RadioButton.tsx +55 -55
  202. package/src/components/RadioButton/index.ts +2 -2
  203. package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +54 -54
  204. package/src/components/ScrollIntoViewIfNeeded/constants.ts +12 -12
  205. package/src/components/ScrollIntoViewIfNeeded/index.ts +1 -1
  206. package/src/components/SearchInput/SearchInput.stories.tsx +23 -23
  207. package/src/components/SearchInput/SearchInput.styles.ts +50 -50
  208. package/src/components/SearchInput/SearchInput.tsx +56 -56
  209. package/src/components/SearchInput/index.ts +2 -2
  210. package/src/components/Select/MultiSelect.stories.tsx +240 -240
  211. package/src/components/Select/Select.stories.tsx +235 -235
  212. package/src/components/Select/Select.styles.ts +146 -146
  213. package/src/components/Select/Select.tsx +574 -574
  214. package/src/components/Select/components/SelectList/SelectList.styles.ts +71 -71
  215. package/src/components/Select/components/SelectList/SelectList.tsx +157 -157
  216. package/src/components/Select/components/SelectList/index.ts +2 -2
  217. package/src/components/Select/components/SelectListItem/SelectListItem.styles.ts +14 -14
  218. package/src/components/Select/components/SelectListItem/SelectListItem.tsx +68 -68
  219. package/src/components/Select/components/SelectListItem/index.ts +1 -1
  220. package/src/components/Select/components/index.ts +2 -2
  221. package/src/components/Select/constants.ts +2 -2
  222. package/src/components/Select/helpers.ts +27 -27
  223. package/src/components/Select/index.ts +4 -4
  224. package/src/components/Select/types.ts +1 -1
  225. package/src/components/Skeleton/Skeleton.stories.tsx +19 -19
  226. package/src/components/Skeleton/Skeleton.styles.ts +46 -46
  227. package/src/components/Skeleton/Skeleton.tsx +12 -12
  228. package/src/components/Skeleton/index.ts +2 -2
  229. package/src/components/SmartInput/SmartInput.stories.tsx +51 -51
  230. package/src/components/SmartInput/SmartInput.tsx +124 -124
  231. package/src/components/SmartInput/constants.ts +84 -84
  232. package/src/components/SmartInput/helpers.ts +13 -13
  233. package/src/components/SmartInput/index.ts +2 -2
  234. package/src/components/SmartInput/types.ts +11 -11
  235. package/src/components/Switch/Switch.stories.tsx +40 -40
  236. package/src/components/Switch/Switch.styles.ts +75 -75
  237. package/src/components/Switch/Switch.tsx +76 -76
  238. package/src/components/Switch/index.ts +3 -3
  239. package/src/components/Switch/types.ts +4 -4
  240. package/src/components/TextArea/TextArea.stories.tsx +35 -35
  241. package/src/components/TextArea/TextArea.styles.ts +157 -153
  242. package/src/components/TextArea/TextArea.tsx +171 -171
  243. package/src/components/TextArea/index.ts +2 -2
  244. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +53 -53
  245. package/src/components/TextWithInfo/TextWithInfo.styles.ts +59 -59
  246. package/src/components/TextWithInfo/TextWithInfo.tsx +61 -61
  247. package/src/components/TextWithInfo/index.ts +2 -2
  248. package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +58 -58
  249. package/src/components/TextWithTooltip/TextWithTooltip.styles.ts +21 -21
  250. package/src/components/TextWithTooltip/TextWithTooltip.tsx +149 -149
  251. package/src/components/TextWithTooltip/index.ts +2 -2
  252. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +41 -41
  253. package/src/components/ThemedPreloader/ThemedPreloader.styles.ts +26 -26
  254. package/src/components/ThemedPreloader/ThemedPreloader.tsx +55 -55
  255. package/src/components/ThemedPreloader/components/DefaultPreloader/DefaultPreloader.tsx +29 -29
  256. package/src/components/ThemedPreloader/components/DefaultPreloader/index.ts +1 -1
  257. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.styles.ts +54 -54
  258. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.tsx +15 -15
  259. package/src/components/ThemedPreloader/components/DotsPreloader/index.ts +2 -2
  260. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.styles.ts +11 -11
  261. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.tsx +24 -24
  262. package/src/components/ThemedPreloader/components/SvgPreloader/index.ts +2 -2
  263. package/src/components/ThemedPreloader/components/index.ts +3 -3
  264. package/src/components/ThemedPreloader/constants.ts +1 -1
  265. package/src/components/ThemedPreloader/index.ts +4 -4
  266. package/src/components/ThemedPreloader/types.ts +3 -3
  267. package/src/components/Toaster/Toaster.stories.tsx +30 -30
  268. package/src/components/Toaster/Toaster.styles.ts +60 -60
  269. package/src/components/Toaster/Toaster.tsx +114 -114
  270. package/src/components/Toaster/constants.ts +1 -1
  271. package/src/components/Toaster/index.ts +3 -3
  272. package/src/components/Toaster/types.ts +1 -1
  273. package/src/components/Tooltip/Tooltip.stories.tsx +19 -19
  274. package/src/components/Tooltip/Tooltip.styles.ts +49 -49
  275. package/src/components/Tooltip/Tooltip.tsx +39 -39
  276. package/src/components/Tooltip/index.ts +3 -3
  277. package/src/components/Tooltip/types.ts +1 -1
  278. package/src/components/index.ts +37 -37
  279. package/src/constants/index.ts +1 -1
  280. package/src/constants/phone-info.ts +2147 -2147
  281. package/src/helpers/index.ts +3 -3
  282. package/src/helpers/misc.ts +158 -158
  283. package/src/helpers/phone.ts +91 -91
  284. package/src/helpers/popper-helpers.ts +17 -17
  285. package/src/hooks/index.ts +7 -7
  286. package/src/hooks/use-did-mount-effect.ts +18 -18
  287. package/src/hooks/use-dropdown.ts +82 -82
  288. package/src/hooks/use-is-mounted.ts +15 -15
  289. package/src/hooks/use-merged-refs.ts +4 -4
  290. package/src/hooks/use-mixed-styles.ts +14 -14
  291. package/src/hooks/use-on-click-outside.ts +77 -77
  292. package/src/hooks/use-tweak-styles.ts +57 -57
  293. package/src/index.ts +6 -6
  294. package/src/theme/Provider.tsx +21 -21
  295. package/src/theme/common.ts +160 -149
  296. package/src/theme/helpers.ts +74 -74
  297. package/src/theme/index.ts +4 -4
  298. package/src/theme/types.ts +141 -141
  299. package/src/types.ts +26 -26
  300. package/src/vite-env.d.ts +1 -1
@@ -1,2 +1,2 @@
1
- export * from './FilterSelect';
2
- export type { IFilterSelectStyles } from './FilterSelect.styles';
1
+ export * from './FilterSelect';
2
+ export type { IFilterSelectStyles } from './FilterSelect.styles';
@@ -1,15 +1,15 @@
1
- import { createThemedStyles, ITweakStyles } from '../../../../theme';
2
-
3
- export const useStyles = createThemedStyles('FilterValueView', {
4
- text: {
5
- overflow: 'hidden',
6
- textOverflow: 'ellipsis',
7
- whiteSpace: 'nowrap',
8
- },
9
-
10
- count: {
11
- whiteSpace: 'pre',
12
- },
13
- });
14
-
15
- export type IFilterValueViewStyles = ITweakStyles<typeof useStyles>;
1
+ import { createThemedStyles, ITweakStyles } from '../../../../theme';
2
+
3
+ export const useStyles = createThemedStyles('FilterValueView', {
4
+ text: {
5
+ overflow: 'hidden',
6
+ textOverflow: 'ellipsis',
7
+ whiteSpace: 'nowrap',
8
+ },
9
+
10
+ count: {
11
+ whiteSpace: 'pre',
12
+ },
13
+ });
14
+
15
+ export type IFilterValueViewStyles = ITweakStyles<typeof useStyles>;
@@ -1,165 +1,165 @@
1
- import { useMemo } from 'react';
2
- import { format } from 'date-fns';
3
- import { ICommonProps } from '../../../../types';
4
- import { IMultiSelectListValues } from '../../../MultiSelectList';
5
- import { DEFAULT_DATE_FORMAT } from '../../constants';
6
- import { defaultConvertFunction, getLocale } from '../../helpers';
7
- import { IDateRangeConfigItem, IFilterWithDatesValue, IPeriod } from '../../types';
8
- import type { IFilterWrapperProps } from '../FilterWrapper';
9
- import { IFilterValueViewStyles, useStyles } from './FilterValueView.styles';
10
-
11
- export function FilterValueView<Values, Key extends keyof Values>({
12
- locale,
13
- localeKey,
14
- filter,
15
- value,
16
- tweakStyles,
17
- }: Omit<IFilterWrapperProps<Values, Key>, 'onChange' | 'filtersPaneRef' | 'tweakStyles'> &
18
- ICommonProps<IFilterValueViewStyles>): JSX.Element {
19
- const classes = useStyles({ theme: tweakStyles });
20
-
21
- if (value === undefined || value === null) {
22
- return <></>;
23
- }
24
-
25
- const translatesLocaleKey = filter.localeKey ?? localeKey;
26
- const translates = useMemo(
27
- () => getLocale(translatesLocaleKey, locale, filter.locale),
28
- [localeKey, locale, filter.locale],
29
- );
30
-
31
- if (filter.getSelectedValueView !== undefined) {
32
- return <span className={classes.text}>{filter.getSelectedValueView(value)}</span>;
33
- }
34
-
35
- const isMultiple = filter.type === 'custom' && filter.valueViewType === 'multiple';
36
- const isRange = filter.type === 'custom' && filter.valueViewType === 'range';
37
- const isDate = filter.type === 'dateRange' || filter.type === 'dateRangeWithoutPeriod';
38
-
39
- const displayValue = (v: any): string => {
40
- if (v === undefined || v === null) {
41
- return '';
42
- }
43
-
44
- if (v instanceof Date) {
45
- return format(
46
- v,
47
- (filter as IDateRangeConfigItem<IFilterWithDatesValue>).dateFormat || DEFAULT_DATE_FORMAT,
48
- );
49
- }
50
-
51
- if (typeof v === 'object' && v.value !== undefined) {
52
- return String(v.value);
53
- }
54
-
55
- if (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') {
56
- return String(v);
57
- }
58
-
59
- console.warn(
60
- `%c Ошибка конфигурации фильтра ${filter.name}. Невозможно отобразить значение фильтра. Задайте filterValueViewComponent или filterValueViewType.`,
61
- 'background: orange; color: black',
62
- );
63
-
64
- return '';
65
- };
66
-
67
- if (filter.type === 'select') {
68
- const getView = filter.getValueView ?? defaultConvertFunction;
69
- return <span className={classes.text}>{getView(value)}</span>;
70
- }
71
-
72
- if (filter.type === 'multiSelect') {
73
- const multiSelectValue = value as unknown as IMultiSelectListValues<any>;
74
- const getView = filter.getValueView ?? defaultConvertFunction;
75
- const { include } = multiSelectValue;
76
-
77
- return (
78
- <>
79
- {Array.isArray(include) && include.length > 0 && (
80
- <>
81
- <span className={classes.text}>{getView(include[0])}</span>
82
- <span className={classes.count}>
83
- {include.length > 1 && ` (+${include.length - 1})`}
84
- </span>
85
- </>
86
- )}
87
- </>
88
- );
89
- }
90
-
91
- if (filter.type === 'interval') {
92
- const intervalValue = value as unknown as number[];
93
- const intervalValueFrom = intervalValue[0];
94
- const intervalValueTo = intervalValue[1];
95
-
96
- const intervals = [];
97
- if (intervalValueFrom !== undefined) {
98
- intervals.push(`${translates.from.toLowerCase()} ${String(intervalValueFrom)}`);
99
- }
100
- if (intervalValueTo !== undefined) {
101
- intervals.push(`${translates.to.toLowerCase()} ${String(intervalValueTo)}`);
102
- }
103
-
104
- return <span className={classes.text}>{intervals.join(' ')}</span>;
105
- }
106
-
107
- if (isMultiple) {
108
- return (
109
- <>
110
- {Array.isArray(value) && value.length > 0 && (
111
- <>
112
- <span className={classes.text}>{displayValue(value[0])}</span>
113
- <span className={classes.count}>{value.length > 1 && ` (+${value.length - 1})`}</span>
114
- </>
115
- )}
116
- </>
117
- );
118
- }
119
-
120
- if (isDate) {
121
- const { from, to, periodType, label } = value as unknown as IPeriod;
122
- const hasFrom = from !== undefined && from !== null;
123
- const hasTo = to !== undefined && to !== null;
124
-
125
- if (periodType !== 'CUSTOM') {
126
- return <span className={classes.text}>{displayValue(label)}</span>;
127
- }
128
-
129
- const range = [];
130
- if (hasFrom) {
131
- if (!hasTo) {
132
- range.push(translates.from.toLowerCase());
133
- }
134
- range.push(displayValue(from));
135
- }
136
- if (hasTo) {
137
- if (hasFrom) {
138
- range.push('—');
139
- } else {
140
- range.push(translates.to.toLowerCase());
141
- }
142
- range.push(displayValue(to));
143
- }
144
-
145
- return <span className={classes.text}>{range.join(' ')}</span>;
146
- }
147
-
148
- if (isRange && Array.isArray(value)) {
149
- const rangeValue = value as unknown as number[];
150
- const rangeValueFrom = rangeValue[0];
151
- const rangeValueTo = rangeValue[1];
152
-
153
- const range = [];
154
- if (rangeValueFrom !== undefined) {
155
- range.push(`${translates.from.toLowerCase()} ${String(rangeValueFrom)}`);
156
- }
157
- if (rangeValueTo !== undefined) {
158
- range.push(`${translates.to.toLowerCase()} ${String(rangeValueTo)}`);
159
- }
160
-
161
- return <span className={classes.text}>{range.join(' ')}</span>;
162
- }
163
-
164
- return <span className={classes.text}>{displayValue(value)}</span>;
165
- }
1
+ import { useMemo } from 'react';
2
+ import { format } from 'date-fns';
3
+ import { ICommonProps } from '../../../../types';
4
+ import { IMultiSelectListValues } from '../../../MultiSelectList';
5
+ import { DEFAULT_DATE_FORMAT } from '../../constants';
6
+ import { defaultConvertFunction, getLocale } from '../../helpers';
7
+ import { IDateRangeConfigItem, IFilterWithDatesValue, IPeriod } from '../../types';
8
+ import type { IFilterWrapperProps } from '../FilterWrapper';
9
+ import { IFilterValueViewStyles, useStyles } from './FilterValueView.styles';
10
+
11
+ export function FilterValueView<Values, Key extends keyof Values>({
12
+ locale,
13
+ localeKey,
14
+ filter,
15
+ value,
16
+ tweakStyles,
17
+ }: Omit<IFilterWrapperProps<Values, Key>, 'onChange' | 'filtersPaneRef' | 'tweakStyles'> &
18
+ ICommonProps<IFilterValueViewStyles>): JSX.Element {
19
+ const classes = useStyles({ theme: tweakStyles });
20
+
21
+ if (value === undefined || value === null) {
22
+ return <></>;
23
+ }
24
+
25
+ const translatesLocaleKey = filter.localeKey ?? localeKey;
26
+ const translates = useMemo(
27
+ () => getLocale(translatesLocaleKey, locale, filter.locale),
28
+ [localeKey, locale, filter.locale],
29
+ );
30
+
31
+ if (filter.getSelectedValueView !== undefined) {
32
+ return <span className={classes.text}>{filter.getSelectedValueView(value)}</span>;
33
+ }
34
+
35
+ const isMultiple = filter.type === 'custom' && filter.valueViewType === 'multiple';
36
+ const isRange = filter.type === 'custom' && filter.valueViewType === 'range';
37
+ const isDate = filter.type === 'dateRange' || filter.type === 'dateRangeWithoutPeriod';
38
+
39
+ const displayValue = (v: any): string => {
40
+ if (v === undefined || v === null) {
41
+ return '';
42
+ }
43
+
44
+ if (v instanceof Date) {
45
+ return format(
46
+ v,
47
+ (filter as IDateRangeConfigItem<IFilterWithDatesValue>).dateFormat || DEFAULT_DATE_FORMAT,
48
+ );
49
+ }
50
+
51
+ if (typeof v === 'object' && v.value !== undefined) {
52
+ return String(v.value);
53
+ }
54
+
55
+ if (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean') {
56
+ return String(v);
57
+ }
58
+
59
+ console.warn(
60
+ `%c Ошибка конфигурации фильтра ${filter.name}. Невозможно отобразить значение фильтра. Задайте filterValueViewComponent или filterValueViewType.`,
61
+ 'background: orange; color: black',
62
+ );
63
+
64
+ return '';
65
+ };
66
+
67
+ if (filter.type === 'select') {
68
+ const getView = filter.getValueView ?? defaultConvertFunction;
69
+ return <span className={classes.text}>{getView(value)}</span>;
70
+ }
71
+
72
+ if (filter.type === 'multiSelect') {
73
+ const multiSelectValue = value as unknown as IMultiSelectListValues<any>;
74
+ const getView = filter.getValueView ?? defaultConvertFunction;
75
+ const { include } = multiSelectValue;
76
+
77
+ return (
78
+ <>
79
+ {Array.isArray(include) && include.length > 0 && (
80
+ <>
81
+ <span className={classes.text}>{getView(include[0])}</span>
82
+ <span className={classes.count}>
83
+ {include.length > 1 && ` (+${include.length - 1})`}
84
+ </span>
85
+ </>
86
+ )}
87
+ </>
88
+ );
89
+ }
90
+
91
+ if (filter.type === 'interval') {
92
+ const intervalValue = value as unknown as number[];
93
+ const intervalValueFrom = intervalValue[0];
94
+ const intervalValueTo = intervalValue[1];
95
+
96
+ const intervals = [];
97
+ if (intervalValueFrom !== undefined) {
98
+ intervals.push(`${translates.from.toLowerCase()} ${String(intervalValueFrom)}`);
99
+ }
100
+ if (intervalValueTo !== undefined) {
101
+ intervals.push(`${translates.to.toLowerCase()} ${String(intervalValueTo)}`);
102
+ }
103
+
104
+ return <span className={classes.text}>{intervals.join(' ')}</span>;
105
+ }
106
+
107
+ if (isMultiple) {
108
+ return (
109
+ <>
110
+ {Array.isArray(value) && value.length > 0 && (
111
+ <>
112
+ <span className={classes.text}>{displayValue(value[0])}</span>
113
+ <span className={classes.count}>{value.length > 1 && ` (+${value.length - 1})`}</span>
114
+ </>
115
+ )}
116
+ </>
117
+ );
118
+ }
119
+
120
+ if (isDate) {
121
+ const { from, to, periodType, label } = value as unknown as IPeriod;
122
+ const hasFrom = from !== undefined && from !== null;
123
+ const hasTo = to !== undefined && to !== null;
124
+
125
+ if (periodType !== 'CUSTOM') {
126
+ return <span className={classes.text}>{displayValue(label)}</span>;
127
+ }
128
+
129
+ const range = [];
130
+ if (hasFrom) {
131
+ if (!hasTo) {
132
+ range.push(translates.from.toLowerCase());
133
+ }
134
+ range.push(displayValue(from));
135
+ }
136
+ if (hasTo) {
137
+ if (hasFrom) {
138
+ range.push('—');
139
+ } else {
140
+ range.push(translates.to.toLowerCase());
141
+ }
142
+ range.push(displayValue(to));
143
+ }
144
+
145
+ return <span className={classes.text}>{range.join(' ')}</span>;
146
+ }
147
+
148
+ if (isRange && Array.isArray(value)) {
149
+ const rangeValue = value as unknown as number[];
150
+ const rangeValueFrom = rangeValue[0];
151
+ const rangeValueTo = rangeValue[1];
152
+
153
+ const range = [];
154
+ if (rangeValueFrom !== undefined) {
155
+ range.push(`${translates.from.toLowerCase()} ${String(rangeValueFrom)}`);
156
+ }
157
+ if (rangeValueTo !== undefined) {
158
+ range.push(`${translates.to.toLowerCase()} ${String(rangeValueTo)}`);
159
+ }
160
+
161
+ return <span className={classes.text}>{range.join(' ')}</span>;
162
+ }
163
+
164
+ return <span className={classes.text}>{displayValue(value)}</span>;
165
+ }
@@ -1,2 +1,2 @@
1
- export * from './FilterValueView';
2
- export type { IFilterValueViewStyles } from './FilterValueView.styles';
1
+ export * from './FilterValueView';
2
+ export type { IFilterValueViewStyles } from './FilterValueView.styles';
@@ -1,68 +1,68 @@
1
- import cloneDeep from 'lodash-es/cloneDeep';
2
- import { colors, createThemedStyles, ITweakStyles } from '../../../../theme';
3
- import { IButtonStyles } from '../../../Button';
4
- import { IDatePickerStyles } from '../../../DatePicker';
5
- import { innerTextButtonStyles } from '../../FiltersPane.styles';
6
-
7
- export const useStyles = createThemedStyles('FilterWithDates', {
8
- root: {
9
- background: colors.CLASSIC_WHITE,
10
- position: 'relative',
11
- zIndex: 20,
12
- },
13
-
14
- container: {
15
- display: 'flex',
16
- gap: 20,
17
- padding: [8, 20],
18
- },
19
-
20
- containerItem: {
21
- width: '50%',
22
- height: 44,
23
- },
24
-
25
- btnRow: {
26
- display: 'flex',
27
- flexDirection: 'row-reverse',
28
- justifyContent: 'space-between',
29
- padding: 8,
30
- },
31
-
32
- datepicker: {},
33
- });
34
-
35
- export const clearButtonStyles = cloneDeep(innerTextButtonStyles);
36
-
37
- export const backButtonStyles = innerTextButtonStyles;
38
-
39
- const PICKER_TOP_MARGIN = 28;
40
- const PICKER_WITH_BUTTONS_TOP_MARGIN = 60;
41
- const START_PICKER_LEFT_MARGIN = -20;
42
- const END_PICKER_LEFT_MARGIN = -170;
43
-
44
- export const startDatePickerStyles: IDatePickerStyles = {
45
- popper: { marginTop: PICKER_TOP_MARGIN, marginLeft: START_PICKER_LEFT_MARGIN },
46
- };
47
-
48
- export const startDatePickerWithButtonStyles: IDatePickerStyles = {
49
- popper: { marginTop: PICKER_WITH_BUTTONS_TOP_MARGIN, marginLeft: START_PICKER_LEFT_MARGIN },
50
- };
51
-
52
- export const endDatePickerStyles: IDatePickerStyles = {
53
- popper: { marginTop: PICKER_TOP_MARGIN, marginLeft: END_PICKER_LEFT_MARGIN },
54
- };
55
-
56
- export const endDatePickerWithButtonStyles: IDatePickerStyles = {
57
- popper: { marginTop: PICKER_WITH_BUTTONS_TOP_MARGIN, marginLeft: END_PICKER_LEFT_MARGIN },
58
- };
59
-
60
- export type IFilterWithDatesStyles = ITweakStyles<
61
- typeof useStyles,
62
- {
63
- tweakClearButton: IButtonStyles;
64
- tweakBackButton: IButtonStyles;
65
- tweakStartDatePicker: IDatePickerStyles;
66
- tweakEndDatePicker: IDatePickerStyles;
67
- }
68
- >;
1
+ import cloneDeep from 'lodash-es/cloneDeep';
2
+ import { colors, createThemedStyles, ITweakStyles } from '../../../../theme';
3
+ import { IButtonStyles } from '../../../Button';
4
+ import { IDatePickerStyles } from '../../../DatePicker';
5
+ import { innerTextButtonStyles } from '../../FiltersPane.styles';
6
+
7
+ export const useStyles = createThemedStyles('FilterWithDates', {
8
+ root: {
9
+ background: colors.CLASSIC_WHITE,
10
+ position: 'relative',
11
+ zIndex: 20,
12
+ },
13
+
14
+ container: {
15
+ display: 'flex',
16
+ gap: 20,
17
+ padding: [8, 20],
18
+ },
19
+
20
+ containerItem: {
21
+ width: '50%',
22
+ height: 44,
23
+ },
24
+
25
+ btnRow: {
26
+ display: 'flex',
27
+ flexDirection: 'row-reverse',
28
+ justifyContent: 'space-between',
29
+ padding: 8,
30
+ },
31
+
32
+ datepicker: {},
33
+ });
34
+
35
+ export const clearButtonStyles = cloneDeep(innerTextButtonStyles);
36
+
37
+ export const backButtonStyles = innerTextButtonStyles;
38
+
39
+ const PICKER_TOP_MARGIN = 28;
40
+ const PICKER_WITH_BUTTONS_TOP_MARGIN = 60;
41
+ const START_PICKER_LEFT_MARGIN = -20;
42
+ const END_PICKER_LEFT_MARGIN = -170;
43
+
44
+ export const startDatePickerStyles: IDatePickerStyles = {
45
+ popper: { marginTop: PICKER_TOP_MARGIN, marginLeft: START_PICKER_LEFT_MARGIN },
46
+ };
47
+
48
+ export const startDatePickerWithButtonStyles: IDatePickerStyles = {
49
+ popper: { marginTop: PICKER_WITH_BUTTONS_TOP_MARGIN, marginLeft: START_PICKER_LEFT_MARGIN },
50
+ };
51
+
52
+ export const endDatePickerStyles: IDatePickerStyles = {
53
+ popper: { marginTop: PICKER_TOP_MARGIN, marginLeft: END_PICKER_LEFT_MARGIN },
54
+ };
55
+
56
+ export const endDatePickerWithButtonStyles: IDatePickerStyles = {
57
+ popper: { marginTop: PICKER_WITH_BUTTONS_TOP_MARGIN, marginLeft: END_PICKER_LEFT_MARGIN },
58
+ };
59
+
60
+ export type IFilterWithDatesStyles = ITweakStyles<
61
+ typeof useStyles,
62
+ {
63
+ tweakClearButton: IButtonStyles;
64
+ tweakBackButton: IButtonStyles;
65
+ tweakStartDatePicker: IDatePickerStyles;
66
+ tweakEndDatePicker: IDatePickerStyles;
67
+ }
68
+ >;