@true-engineering/true-react-common-ui-kit 1.3.0 → 1.4.0

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 (247) hide show
  1. package/LICENSE +201 -201
  2. package/dist/components/Flag/augment.d.ts +1 -1
  3. package/dist/components/Icon/complexIcons/augment.d.ts +1 -1
  4. package/dist/components/Input/Input.d.ts +3 -3
  5. package/dist/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.d.ts +1 -1
  6. package/dist/components/Select/Select.d.ts +8 -3
  7. package/dist/components/Select/Select.styles.d.ts +10 -0
  8. package/dist/components/Select/SelectList/SelectList.d.ts +4 -3
  9. package/dist/components/Select/SelectList/SelectList.styles.d.ts +9 -0
  10. package/dist/helpers/snippets.d.ts +3 -0
  11. package/dist/helpers/utils.d.ts +1 -0
  12. package/dist/hooks/use-dropdown.d.ts +1 -1
  13. package/dist/true-react-common-ui-kit.js +400 -349
  14. package/dist/true-react-common-ui-kit.js.map +1 -1
  15. package/dist/true-react-common-ui-kit.umd.cjs +400 -349
  16. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  17. package/dist/vite-env.d.ts +1 -1
  18. package/package.json +91 -91
  19. package/src/components/AccountInfo/AccountInfo.stories.tsx +35 -35
  20. package/src/components/AccountInfo/AccountInfo.styles.ts +55 -55
  21. package/src/components/AccountInfo/AccountInfo.tsx +106 -106
  22. package/src/components/AccountInfo/index.ts +2 -2
  23. package/src/components/AddButton/AddButton.stories.tsx +21 -21
  24. package/src/components/AddButton/AddButton.styles.ts +34 -34
  25. package/src/components/AddButton/AddButton.tsx +49 -49
  26. package/src/components/AddButton/index.ts +2 -2
  27. package/src/components/Button/Button.stories.tsx +61 -61
  28. package/src/components/Button/Button.styles.ts +196 -196
  29. package/src/components/Button/Button.tsx +195 -195
  30. package/src/components/Button/index.ts +2 -2
  31. package/src/components/Checkbox/Checkbox.stories.tsx +35 -35
  32. package/src/components/Checkbox/Checkbox.styles.ts +59 -59
  33. package/src/components/Checkbox/Checkbox.tsx +93 -93
  34. package/src/components/Checkbox/index.ts +2 -2
  35. package/src/components/CloseButton/CloseButton.styles.ts +34 -34
  36. package/src/components/CloseButton/CloseButton.tsx +37 -37
  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 +38 -38
  40. package/src/components/Colors/Colors.tsx +34 -34
  41. package/src/components/Colors/index.ts +2 -2
  42. package/src/components/CssBaseline/CssBaseline.styles.ts +15 -15
  43. package/src/components/CssBaseline/CssBaseline.tsx +17 -17
  44. package/src/components/CssBaseline/index.ts +2 -2
  45. package/src/components/DateInput/DateInput.stories.tsx +63 -63
  46. package/src/components/DateInput/DateInput.styles.ts +14 -14
  47. package/src/components/DateInput/DateInput.tsx +60 -60
  48. package/src/components/DateInput/index.ts +2 -2
  49. package/src/components/DatePicker/DatePicker.stories.tsx +96 -96
  50. package/src/components/DatePicker/DatePicker.styles.ts +54 -54
  51. package/src/components/DatePicker/DatePicker.tsx +358 -358
  52. package/src/components/DatePicker/DatePickerHeader/DatePickerHeader.styles.ts +84 -84
  53. package/src/components/DatePicker/DatePickerHeader/DatePickerHeader.tsx +94 -94
  54. package/src/components/DatePicker/DatePickerHeader/index.ts +1 -1
  55. package/src/components/DatePicker/DatePickerInput/DatePickerInput.styles.ts +25 -25
  56. package/src/components/DatePicker/DatePickerInput/DatePickerInput.tsx +31 -31
  57. package/src/components/DatePicker/DatePickerInput/index.ts +1 -1
  58. package/src/components/DatePicker/index.ts +4 -4
  59. package/src/components/Description/Description.stories.tsx +29 -29
  60. package/src/components/Description/Description.styles.ts +31 -31
  61. package/src/components/Description/Description.tsx +69 -69
  62. package/src/components/Description/index.ts +2 -2
  63. package/src/components/FiltersPane/FilterInterval/FilterInterval.styles.ts +64 -64
  64. package/src/components/FiltersPane/FilterInterval/FilterInterval.tsx +162 -162
  65. package/src/components/FiltersPane/FilterInterval/index.ts +1 -1
  66. package/src/components/FiltersPane/FilterMultiSelect/FilterMultiSelect.tsx +14 -14
  67. package/src/components/FiltersPane/FilterMultiSelect/index.ts +1 -1
  68. package/src/components/FiltersPane/FilterSelect/FilterSelect.styles.ts +144 -144
  69. package/src/components/FiltersPane/FilterSelect/FilterSelect.tsx +397 -397
  70. package/src/components/FiltersPane/FilterSelect/index.ts +1 -1
  71. package/src/components/FiltersPane/FilterSelect/locales.ts +37 -37
  72. package/src/components/FiltersPane/FilterValueView/FilterValueView.styles.tsx +15 -15
  73. package/src/components/FiltersPane/FilterValueView/FilterValueView.tsx +186 -186
  74. package/src/components/FiltersPane/FilterValueView/index.tsx +1 -1
  75. package/src/components/FiltersPane/FilterWithDates/FilterWithDates.styles.ts +60 -60
  76. package/src/components/FiltersPane/FilterWithDates/FilterWithDates.tsx +222 -222
  77. package/src/components/FiltersPane/FilterWithDates/index.ts +1 -1
  78. package/src/components/FiltersPane/FilterWithPeriod/FilterWithPeriod.styles.ts +17 -17
  79. package/src/components/FiltersPane/FilterWithPeriod/FilterWithPeriod.tsx +231 -231
  80. package/src/components/FiltersPane/FilterWithPeriod/index.ts +1 -1
  81. package/src/components/FiltersPane/FilterWrapper/FilterWrapper.styles.ts +110 -110
  82. package/src/components/FiltersPane/FilterWrapper/FilterWrapper.tsx +360 -360
  83. package/src/components/FiltersPane/FilterWrapper/index.ts +1 -1
  84. package/src/components/FiltersPane/FiltersPane.stories.tsx +308 -307
  85. package/src/components/FiltersPane/FiltersPane.styles.ts +71 -71
  86. package/src/components/FiltersPane/FiltersPane.tsx +193 -193
  87. package/src/components/FiltersPane/FiltersPaneSearch/FiltersPaneSearch.styles.ts +109 -109
  88. package/src/components/FiltersPane/FiltersPaneSearch/FiltersPaneSearch.tsx +175 -175
  89. package/src/components/FiltersPane/FiltersPaneSearch/index.ts +1 -1
  90. package/src/components/FiltersPane/index.ts +20 -20
  91. package/src/components/FiltersPane/locales.ts +107 -107
  92. package/src/components/FiltersPane/types.ts +126 -126
  93. package/src/components/Flag/Flag.stories.tsx +29 -29
  94. package/src/components/Flag/Flag.styles.ts +18 -18
  95. package/src/components/Flag/Flag.tsx +28 -28
  96. package/src/components/Flag/augment.d.ts +1 -1
  97. package/src/components/Flag/index.ts +2 -2
  98. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +80 -80
  99. package/src/components/FlexibleTable/FlexibleTable.styles.ts +131 -131
  100. package/src/components/FlexibleTable/FlexibleTable.tsx +243 -243
  101. package/src/components/FlexibleTable/TableRow.tsx +171 -166
  102. package/src/components/FlexibleTable/TableValue.tsx +83 -83
  103. package/src/components/FlexibleTable/fixture-test.ts +254 -254
  104. package/src/components/FlexibleTable/index.ts +3 -3
  105. package/src/components/FlexibleTable/types.ts +58 -58
  106. package/src/components/Icon/ComplexIconBoilerplate.tsx +17 -17
  107. package/src/components/Icon/Icon.stories.tsx +88 -88
  108. package/src/components/Icon/Icon.styles.ts +10 -10
  109. package/src/components/Icon/Icon.tsx +34 -34
  110. package/src/components/Icon/IconBoilerplate.tsx +42 -42
  111. package/src/components/Icon/complexIcons/augment.d.ts +1 -1
  112. package/src/components/Icon/complexIcons/avatarGreen.svg +57 -57
  113. package/src/components/Icon/complexIcons/icons.ts +7 -7
  114. package/src/components/Icon/complexIcons/index.ts +1 -1
  115. package/src/components/Icon/icons/icons.ts +838 -838
  116. package/src/components/Icon/icons/index.ts +1 -1
  117. package/src/components/Icon/index.ts +4 -4
  118. package/src/components/IncrementInput/ChangeButton.tsx +34 -34
  119. package/src/components/IncrementInput/IncrementInput.stories.tsx +34 -34
  120. package/src/components/IncrementInput/IncrementInput.styles.ts +77 -77
  121. package/src/components/IncrementInput/IncrementInput.tsx +95 -95
  122. package/src/components/IncrementInput/index.ts +2 -2
  123. package/src/components/Input/Input.stories.tsx +92 -92
  124. package/src/components/Input/Input.styles.ts +305 -305
  125. package/src/components/Input/Input.tsx +310 -308
  126. package/src/components/Input/index.ts +2 -2
  127. package/src/components/List/List.stories.tsx +62 -62
  128. package/src/components/List/List.styles.ts +52 -52
  129. package/src/components/List/List.tsx +82 -82
  130. package/src/components/List/index.ts +2 -2
  131. package/src/components/Modal/Modal.stories.tsx +113 -113
  132. package/src/components/Modal/Modal.styles.ts +308 -308
  133. package/src/components/Modal/Modal.tsx +210 -210
  134. package/src/components/Modal/index.ts +2 -2
  135. package/src/components/MoreMenu/MoreMenu.stories.tsx +46 -46
  136. package/src/components/MoreMenu/MoreMenu.styles.ts +70 -70
  137. package/src/components/MoreMenu/MoreMenu.tsx +102 -102
  138. package/src/components/MoreMenu/index.ts +2 -2
  139. package/src/components/MultiSelect/MultiSelect.stories.tsx +46 -46
  140. package/src/components/MultiSelect/MultiSelect.styles.ts +55 -55
  141. package/src/components/MultiSelect/MultiSelect.tsx +98 -98
  142. package/src/components/MultiSelect/MultiSelectInput/MultiSelectInput.styles.ts +73 -73
  143. package/src/components/MultiSelect/MultiSelectInput/MultiSelectInput.tsx +62 -62
  144. package/src/components/MultiSelect/MultiSelectInput/index.ts +1 -1
  145. package/src/components/MultiSelect/index.ts +3 -3
  146. package/src/components/MultiSelectList/MultiSelectList.styles.ts +125 -125
  147. package/src/components/MultiSelectList/MultiSelectList.tsx +519 -519
  148. package/src/components/MultiSelectList/index.ts +2 -2
  149. package/src/components/MultiSelectList/locales.ts +37 -37
  150. package/src/components/Notification/Notification.stories.tsx +51 -51
  151. package/src/components/Notification/Notification.styles.ts +50 -50
  152. package/src/components/Notification/Notification.tsx +84 -84
  153. package/src/components/Notification/index.ts +2 -2
  154. package/src/components/NumberInput/NumberInput.stories.tsx +35 -35
  155. package/src/components/NumberInput/NumberInput.tsx +142 -142
  156. package/src/components/NumberInput/helpers.ts +68 -68
  157. package/src/components/NumberInput/index.ts +1 -1
  158. package/src/components/PhoneInput/PhoneInput.stories.tsx +71 -71
  159. package/src/components/PhoneInput/PhoneInput.styles.ts +84 -84
  160. package/src/components/PhoneInput/PhoneInput.tsx +223 -223
  161. package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +21 -21
  162. package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.styles.ts +100 -100
  163. package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.tsx +171 -171
  164. package/src/components/PhoneInput/PhoneInputCountryList/index.ts +2 -2
  165. package/src/components/PhoneInput/index.ts +6 -6
  166. package/src/components/PhoneInput/phone-info.ts +2167 -2167
  167. package/src/components/PhoneInput/types.ts +16 -16
  168. package/src/components/RadioButton/RadioButton.stories.tsx +46 -46
  169. package/src/components/RadioButton/RadioButton.styles.ts +37 -37
  170. package/src/components/RadioButton/RadioButton.tsx +56 -56
  171. package/src/components/RadioButton/index.ts +2 -2
  172. package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +66 -66
  173. package/src/components/ScrollIntoViewIfNeeded/index.ts +1 -1
  174. package/src/components/SearchInput/SearchInput.stories.tsx +24 -24
  175. package/src/components/SearchInput/SearchInput.styles.ts +50 -50
  176. package/src/components/SearchInput/SearchInput.tsx +63 -63
  177. package/src/components/SearchInput/index.ts +2 -2
  178. package/src/components/Select/Select.stories.tsx +258 -242
  179. package/src/components/Select/Select.styles.ts +85 -74
  180. package/src/components/Select/Select.tsx +501 -452
  181. package/src/components/Select/SelectList/SelectList.styles.ts +68 -57
  182. package/src/components/Select/SelectList/SelectList.tsx +139 -130
  183. package/src/components/Select/SelectList/index.ts +1 -1
  184. package/src/components/Select/helpers.ts +21 -21
  185. package/src/components/Select/index.ts +3 -3
  186. package/src/components/SmartInput/SmartInput.stories.tsx +63 -63
  187. package/src/components/SmartInput/SmartInput.tsx +180 -180
  188. package/src/components/SmartInput/helpers.ts +85 -85
  189. package/src/components/SmartInput/index.ts +1 -1
  190. package/src/components/Switch/Switch.stories.tsx +40 -40
  191. package/src/components/Switch/Switch.styles.ts +75 -75
  192. package/src/components/Switch/Switch.tsx +89 -89
  193. package/src/components/Switch/index.ts +2 -2
  194. package/src/components/TextArea/TextArea.stories.tsx +35 -35
  195. package/src/components/TextArea/TextArea.styles.ts +153 -153
  196. package/src/components/TextArea/TextArea.tsx +178 -178
  197. package/src/components/TextArea/index.ts +2 -2
  198. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +53 -53
  199. package/src/components/TextWithInfo/TextWithInfo.styles.ts +60 -60
  200. package/src/components/TextWithInfo/TextWithInfo.tsx +67 -67
  201. package/src/components/TextWithInfo/index.ts +2 -2
  202. package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +58 -58
  203. package/src/components/TextWithTooltip/TextWithTooltip.styles.ts +19 -19
  204. package/src/components/TextWithTooltip/TextWithTooltip.tsx +163 -163
  205. package/src/components/TextWithTooltip/index.ts +2 -2
  206. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +41 -41
  207. package/src/components/ThemedPreloader/ThemedPreloader.styles.ts +21 -21
  208. package/src/components/ThemedPreloader/ThemedPreloader.tsx +56 -56
  209. package/src/components/ThemedPreloader/components/DefaultPreloader/DefaultPreloader.tsx +34 -34
  210. package/src/components/ThemedPreloader/components/DefaultPreloader/index.ts +1 -1
  211. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.styles.ts +54 -54
  212. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.tsx +18 -18
  213. package/src/components/ThemedPreloader/components/DotsPreloader/index.ts +2 -2
  214. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.styles.ts +11 -11
  215. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.tsx +32 -32
  216. package/src/components/ThemedPreloader/components/SvgPreloader/index.ts +2 -2
  217. package/src/components/ThemedPreloader/components/index.ts +2 -2
  218. package/src/components/ThemedPreloader/index.ts +2 -2
  219. package/src/components/Toaster/Toaster.stories.tsx +34 -34
  220. package/src/components/Toaster/Toaster.styles.ts +59 -59
  221. package/src/components/Toaster/Toaster.tsx +113 -113
  222. package/src/components/Toaster/index.ts +2 -2
  223. package/src/components/Tooltip/Tooltip.stories.tsx +21 -21
  224. package/src/components/Tooltip/Tooltip.styles.ts +45 -45
  225. package/src/components/Tooltip/Tooltip.tsx +40 -40
  226. package/src/components/Tooltip/index.ts +3 -3
  227. package/src/components/Tooltip/types.ts +1 -1
  228. package/src/components/index.ts +36 -36
  229. package/src/helpers/colors.ts +2 -2
  230. package/src/helpers/data-attributes.ts +18 -18
  231. package/src/helpers/dateHelpers/date-helpers.ts +9 -9
  232. package/src/helpers/index.ts +5 -5
  233. package/src/helpers/phone.ts +106 -106
  234. package/src/helpers/popper-helpers.ts +17 -17
  235. package/src/helpers/snippets.tsx +5 -0
  236. package/src/helpers/utils.ts +178 -164
  237. package/src/hooks/index.ts +6 -6
  238. package/src/hooks/use-did-mount-effect.ts +21 -21
  239. package/src/hooks/use-dropdown.ts +85 -85
  240. package/src/hooks/use-is-mounted.ts +15 -15
  241. package/src/hooks/use-on-click-outside.ts +92 -92
  242. package/src/hooks/use-theme.ts +36 -36
  243. package/src/hooks/use-tweak-styles.ts +14 -14
  244. package/src/index.ts +5 -5
  245. package/src/theme.ts +155 -155
  246. package/src/types.ts +106 -106
  247. package/src/vite-env.d.ts +1 -1
@@ -1,107 +1,107 @@
1
- import { merge } from 'lodash';
2
-
3
- export interface IFilterLocale {
4
- clear: string;
5
- all: string;
6
- other: string;
7
- chosen: string;
8
- searchPlaceholder: string;
9
- displayedFields: string;
10
- nothingFound: string;
11
- from: string;
12
- to: string;
13
- back: string;
14
- months: string[];
15
- periods: {
16
- [key: string]: string;
17
- THIS_MONTH: string;
18
- LAST_MONTH: string;
19
- THIS_YEAR: string;
20
- LAST_YEAR: string;
21
- CUSTOM: string;
22
- };
23
- }
24
-
25
- export type IPartialFilterLocale = Partial<Omit<IFilterLocale, 'periods'>> & {
26
- periods?: Partial<IFilterLocale['periods']>;
27
- };
28
-
29
- export const FilterLocales: Record<string, IFilterLocale> = {
30
- ru: {
31
- clear: 'Очистить',
32
- all: 'Все',
33
- other: 'Остальные',
34
- chosen: 'Выбранные',
35
- nothingFound: 'Не найдено',
36
- from: 'От',
37
- to: 'До',
38
- back: 'Назад',
39
- searchPlaceholder: 'Поиск',
40
- displayedFields: 'Поля для поиска',
41
- months: [
42
- 'Январь',
43
- 'Февраль',
44
- 'Март',
45
- 'Апрель',
46
- 'Май',
47
- 'Июнь',
48
- 'Июль',
49
- 'Август',
50
- 'Сентябрь',
51
- 'Октябрь',
52
- 'Ноябрь',
53
- 'Декабрь',
54
- ],
55
- periods: {
56
- THIS_MONTH: 'Этот месяц',
57
- LAST_MONTH: 'Прошлый месяц',
58
- THIS_YEAR: 'Этот год',
59
- LAST_YEAR: 'Прошлый год',
60
- CUSTOM: 'Другой период',
61
- },
62
- },
63
-
64
- en: {
65
- clear: 'Clear',
66
- all: 'All',
67
- other: 'Others',
68
- chosen: 'Chosen',
69
- nothingFound: 'Nothing found',
70
- from: 'From',
71
- to: 'To',
72
- back: 'Back',
73
- searchPlaceholder: 'Search',
74
- displayedFields: 'Displayed fields',
75
- months: [
76
- 'January',
77
- 'February',
78
- 'March',
79
- 'April',
80
- 'May',
81
- 'June',
82
- 'July',
83
- 'August',
84
- 'September',
85
- 'October',
86
- 'November',
87
- 'December',
88
- ],
89
- periods: {
90
- THIS_MONTH: 'This month',
91
- LAST_MONTH: 'Previous month',
92
- THIS_YEAR: 'This year',
93
- LAST_YEAR: 'Previous year',
94
- CUSTOM: 'Custom',
95
- },
96
- },
97
- };
98
-
99
- export type IFilterLocaleKey = keyof typeof FilterLocales;
100
-
101
- export const DEFAULT_LOCALE: IFilterLocaleKey = 'en';
102
-
103
- export const getLocale = (
104
- key: IFilterLocaleKey = DEFAULT_LOCALE,
105
- custom?: IPartialFilterLocale,
106
- custom2?: IPartialFilterLocale,
107
- ): IFilterLocale => merge({}, FilterLocales[key], custom, custom2);
1
+ import { merge } from 'lodash';
2
+
3
+ export interface IFilterLocale {
4
+ clear: string;
5
+ all: string;
6
+ other: string;
7
+ chosen: string;
8
+ searchPlaceholder: string;
9
+ displayedFields: string;
10
+ nothingFound: string;
11
+ from: string;
12
+ to: string;
13
+ back: string;
14
+ months: string[];
15
+ periods: {
16
+ [key: string]: string;
17
+ THIS_MONTH: string;
18
+ LAST_MONTH: string;
19
+ THIS_YEAR: string;
20
+ LAST_YEAR: string;
21
+ CUSTOM: string;
22
+ };
23
+ }
24
+
25
+ export type IPartialFilterLocale = Partial<Omit<IFilterLocale, 'periods'>> & {
26
+ periods?: Partial<IFilterLocale['periods']>;
27
+ };
28
+
29
+ export const FilterLocales: Record<string, IFilterLocale> = {
30
+ ru: {
31
+ clear: 'Очистить',
32
+ all: 'Все',
33
+ other: 'Остальные',
34
+ chosen: 'Выбранные',
35
+ nothingFound: 'Не найдено',
36
+ from: 'От',
37
+ to: 'До',
38
+ back: 'Назад',
39
+ searchPlaceholder: 'Поиск',
40
+ displayedFields: 'Поля для поиска',
41
+ months: [
42
+ 'Январь',
43
+ 'Февраль',
44
+ 'Март',
45
+ 'Апрель',
46
+ 'Май',
47
+ 'Июнь',
48
+ 'Июль',
49
+ 'Август',
50
+ 'Сентябрь',
51
+ 'Октябрь',
52
+ 'Ноябрь',
53
+ 'Декабрь',
54
+ ],
55
+ periods: {
56
+ THIS_MONTH: 'Этот месяц',
57
+ LAST_MONTH: 'Прошлый месяц',
58
+ THIS_YEAR: 'Этот год',
59
+ LAST_YEAR: 'Прошлый год',
60
+ CUSTOM: 'Другой период',
61
+ },
62
+ },
63
+
64
+ en: {
65
+ clear: 'Clear',
66
+ all: 'All',
67
+ other: 'Others',
68
+ chosen: 'Chosen',
69
+ nothingFound: 'Nothing found',
70
+ from: 'From',
71
+ to: 'To',
72
+ back: 'Back',
73
+ searchPlaceholder: 'Search',
74
+ displayedFields: 'Displayed fields',
75
+ months: [
76
+ 'January',
77
+ 'February',
78
+ 'March',
79
+ 'April',
80
+ 'May',
81
+ 'June',
82
+ 'July',
83
+ 'August',
84
+ 'September',
85
+ 'October',
86
+ 'November',
87
+ 'December',
88
+ ],
89
+ periods: {
90
+ THIS_MONTH: 'This month',
91
+ LAST_MONTH: 'Previous month',
92
+ THIS_YEAR: 'This year',
93
+ LAST_YEAR: 'Previous year',
94
+ CUSTOM: 'Custom',
95
+ },
96
+ },
97
+ };
98
+
99
+ export type IFilterLocaleKey = keyof typeof FilterLocales;
100
+
101
+ export const DEFAULT_LOCALE: IFilterLocaleKey = 'en';
102
+
103
+ export const getLocale = (
104
+ key: IFilterLocaleKey = DEFAULT_LOCALE,
105
+ custom?: IPartialFilterLocale,
106
+ custom2?: IPartialFilterLocale,
107
+ ): IFilterLocale => merge({}, FilterLocales[key], custom, custom2);
@@ -1,126 +1,126 @@
1
- import { FC, ReactNode } from 'react';
2
- import { IFilterIntervalProps } from './FilterInterval';
3
- import { IFilterMultiSelectProps } from './FilterMultiSelect';
4
- import { IFilterSelectProps } from './FilterSelect';
5
- import { IFilterWithDatesProps } from './FilterWithDates';
6
- import { IFilterWithPeriodProps } from './FilterWithPeriod';
7
- import { IFilterLocaleKey, IPartialFilterLocale } from './locales';
8
- import { IMultiSelectListValues } from '../MultiSelectList';
9
-
10
- export const PERIODS = [
11
- 'THIS_MONTH',
12
- 'LAST_MONTH',
13
- 'THIS_YEAR',
14
- 'LAST_YEAR',
15
- 'CUSTOM',
16
- ] as const;
17
-
18
- export type IPeriodType = (typeof PERIODS)[number];
19
-
20
- export type IFilterMultiSelectValues<Option = string> =
21
- IMultiSelectListValues<Option>;
22
-
23
- export type IPeriodsList = Array<IPeriodType | [string, IPeriodGetter]>;
24
-
25
- export interface IFiltersPaneSearchPayload<Value> {
26
- value?: string;
27
- field?: Value;
28
- }
29
-
30
- export interface IFilterValueViewProps<Value> {
31
- value?: Value;
32
- filter: ConfigItem<Value>;
33
- }
34
-
35
- export interface IDatePeriod {
36
- from: Date | null;
37
- to: Date | null;
38
- }
39
-
40
- export interface IPeriod extends IDatePeriod {
41
- periodType: string;
42
- label?: string;
43
- }
44
-
45
- export type IPeriodGetter = () => IDatePeriod;
46
-
47
- export type IFilterWithDatesValue = IDatePeriod;
48
-
49
- export type MultiSelectOptionType<Value> = Value | undefined extends
50
- | IFilterMultiSelectValues<infer Option>
51
- | undefined
52
- ? Option
53
- : unknown;
54
-
55
- export interface IConfigItemBasicBase<Value> {
56
- name: string;
57
- isInline?: boolean;
58
- requiredFilledFilters?: string[];
59
- localeKey?: IFilterLocaleKey;
60
- locale?: IPartialFilterLocale;
61
- getSelectedValueView?: (v: Value) => ReactNode;
62
- }
63
-
64
- export type IIntervalConfigItem<Value> = IConfigItemBasicBase<Value> & {
65
- type: 'interval';
66
- } & Omit<IFilterIntervalProps, 'value' | 'onChange' | 'labelName'>;
67
-
68
- export interface IBooleanConfigItem<Value> extends IConfigItemBasicBase<Value> {
69
- type: 'boolean';
70
- }
71
-
72
- export type IMultiSelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
73
- type: 'multiSelect';
74
- } & Omit<
75
- IFilterMultiSelectProps<Value, MultiSelectOptionType<Value>>,
76
- 'value' | 'onChange'
77
- >;
78
-
79
- export type ISelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
80
- type: 'select';
81
- } & Omit<IFilterSelectProps<Value>, 'value' | 'onChange'>;
82
-
83
- // Дата без периодов
84
- export type IDateRangeWithoutPeriodConfigItem<Value> =
85
- IConfigItemBasicBase<Value> & {
86
- type: 'dateRangeWithoutPeriod';
87
- dateFormat?: string;
88
- } & Omit<
89
- IFilterWithDatesProps,
90
- 'value' | 'onChange' | 'onStartBtnSubmit' | 'onEndBtnSubmit'
91
- >;
92
-
93
- // Дата С ПЕРИОДАМИ
94
- export type IDateRangeConfigItem<Value> = IConfigItemBasicBase<Value> & {
95
- type: 'dateRange';
96
- dateFormat?: string;
97
- } & Omit<IFilterWithPeriodProps, 'value' | 'onChange' | 'setIsOpen'>;
98
-
99
- export type CustomComponent<Value> = FC<{
100
- value?: Value;
101
- onChange: (v?: Value) => void;
102
- onClose?: () => void;
103
- filter: ICustomConfigItem<Value>;
104
- localeKey?: IFilterLocaleKey;
105
- locale?: IPartialFilterLocale;
106
- }>;
107
-
108
- export interface ICustomConfigItem<Value> extends IConfigItemBasicBase<Value> {
109
- [key: string]: any;
110
- type: 'custom';
111
- component: CustomComponent<Value>;
112
- valueViewType?: 'range' | 'multiple';
113
- }
114
-
115
- export type ConfigItem<Value> =
116
- | ISelectConfigItem<Value>
117
- | IMultiSelectConfigItem<Value>
118
- | ICustomConfigItem<Value>
119
- | IDateRangeWithoutPeriodConfigItem<Value>
120
- | IDateRangeConfigItem<Value>
121
- | IIntervalConfigItem<Value>
122
- | IBooleanConfigItem<Value>;
123
-
124
- export type ConfigType<Values> = {
125
- [K in keyof Values]: ConfigItem<Values[K]>;
126
- };
1
+ import { FC, ReactNode } from 'react';
2
+ import { IFilterIntervalProps } from './FilterInterval';
3
+ import { IFilterMultiSelectProps } from './FilterMultiSelect';
4
+ import { IFilterSelectProps } from './FilterSelect';
5
+ import { IFilterWithDatesProps } from './FilterWithDates';
6
+ import { IFilterWithPeriodProps } from './FilterWithPeriod';
7
+ import { IFilterLocaleKey, IPartialFilterLocale } from './locales';
8
+ import { IMultiSelectListValues } from '../MultiSelectList';
9
+
10
+ export const PERIODS = [
11
+ 'THIS_MONTH',
12
+ 'LAST_MONTH',
13
+ 'THIS_YEAR',
14
+ 'LAST_YEAR',
15
+ 'CUSTOM',
16
+ ] as const;
17
+
18
+ export type IPeriodType = (typeof PERIODS)[number];
19
+
20
+ export type IFilterMultiSelectValues<Option = string> =
21
+ IMultiSelectListValues<Option>;
22
+
23
+ export type IPeriodsList = Array<IPeriodType | [string, IPeriodGetter]>;
24
+
25
+ export interface IFiltersPaneSearchPayload<Value> {
26
+ value?: string;
27
+ field?: Value;
28
+ }
29
+
30
+ export interface IFilterValueViewProps<Value> {
31
+ value?: Value;
32
+ filter: ConfigItem<Value>;
33
+ }
34
+
35
+ export interface IDatePeriod {
36
+ from: Date | null;
37
+ to: Date | null;
38
+ }
39
+
40
+ export interface IPeriod extends IDatePeriod {
41
+ periodType: string;
42
+ label?: string;
43
+ }
44
+
45
+ export type IPeriodGetter = () => IDatePeriod;
46
+
47
+ export type IFilterWithDatesValue = IDatePeriod;
48
+
49
+ export type MultiSelectOptionType<Value> = Value | undefined extends
50
+ | IFilterMultiSelectValues<infer Option>
51
+ | undefined
52
+ ? Option
53
+ : unknown;
54
+
55
+ export interface IConfigItemBasicBase<Value> {
56
+ name: string;
57
+ isInline?: boolean;
58
+ requiredFilledFilters?: string[];
59
+ localeKey?: IFilterLocaleKey;
60
+ locale?: IPartialFilterLocale;
61
+ getSelectedValueView?: (v: Value) => ReactNode;
62
+ }
63
+
64
+ export type IIntervalConfigItem<Value> = IConfigItemBasicBase<Value> & {
65
+ type: 'interval';
66
+ } & Omit<IFilterIntervalProps, 'value' | 'onChange' | 'labelName'>;
67
+
68
+ export interface IBooleanConfigItem<Value> extends IConfigItemBasicBase<Value> {
69
+ type: 'boolean';
70
+ }
71
+
72
+ export type IMultiSelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
73
+ type: 'multiSelect';
74
+ } & Omit<
75
+ IFilterMultiSelectProps<Value, MultiSelectOptionType<Value>>,
76
+ 'value' | 'onChange'
77
+ >;
78
+
79
+ export type ISelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
80
+ type: 'select';
81
+ } & Omit<IFilterSelectProps<Value>, 'value' | 'onChange'>;
82
+
83
+ // Дата без периодов
84
+ export type IDateRangeWithoutPeriodConfigItem<Value> =
85
+ IConfigItemBasicBase<Value> & {
86
+ type: 'dateRangeWithoutPeriod';
87
+ dateFormat?: string;
88
+ } & Omit<
89
+ IFilterWithDatesProps,
90
+ 'value' | 'onChange' | 'onStartBtnSubmit' | 'onEndBtnSubmit'
91
+ >;
92
+
93
+ // Дата С ПЕРИОДАМИ
94
+ export type IDateRangeConfigItem<Value> = IConfigItemBasicBase<Value> & {
95
+ type: 'dateRange';
96
+ dateFormat?: string;
97
+ } & Omit<IFilterWithPeriodProps, 'value' | 'onChange' | 'setIsOpen'>;
98
+
99
+ export type CustomComponent<Value> = FC<{
100
+ value?: Value;
101
+ onChange: (v?: Value) => void;
102
+ onClose?: () => void;
103
+ filter: ICustomConfigItem<Value>;
104
+ localeKey?: IFilterLocaleKey;
105
+ locale?: IPartialFilterLocale;
106
+ }>;
107
+
108
+ export interface ICustomConfigItem<Value> extends IConfigItemBasicBase<Value> {
109
+ [key: string]: any;
110
+ type: 'custom';
111
+ component: CustomComponent<Value>;
112
+ valueViewType?: 'range' | 'multiple';
113
+ }
114
+
115
+ export type ConfigItem<Value> =
116
+ | ISelectConfigItem<Value>
117
+ | IMultiSelectConfigItem<Value>
118
+ | ICustomConfigItem<Value>
119
+ | IDateRangeWithoutPeriodConfigItem<Value>
120
+ | IDateRangeConfigItem<Value>
121
+ | IIntervalConfigItem<Value>
122
+ | IBooleanConfigItem<Value>;
123
+
124
+ export type ConfigType<Values> = {
125
+ [K in keyof Values]: ConfigItem<Values[K]>;
126
+ };
@@ -1,29 +1,29 @@
1
- import { ComponentStory } from '@storybook/react';
2
- import { countries } from 'country-flag-icons';
3
- import { Flag } from './Flag';
4
-
5
- export default {
6
- title: 'Flag',
7
- component: Flag,
8
- argTypes: {
9
- countryCode: { control: 'select', options: countries },
10
- },
11
- };
12
-
13
- const Template: ComponentStory<typeof Flag> = (args) => (
14
- <div style={{ width: 60, height: 40 }}>
15
- <Flag {...args} />
16
- </div>
17
- );
18
-
19
- export const Default = Template.bind({});
20
-
21
- Default.args = {
22
- countryCode: 'ug',
23
- };
24
-
25
- Default.parameters = {
26
- controls: {
27
- exclude: ['data'],
28
- },
29
- };
1
+ import { ComponentStory } from '@storybook/react';
2
+ import { countries } from 'country-flag-icons';
3
+ import { Flag } from './Flag';
4
+
5
+ export default {
6
+ title: 'Flag',
7
+ component: Flag,
8
+ argTypes: {
9
+ countryCode: { control: 'select', options: countries },
10
+ },
11
+ };
12
+
13
+ const Template: ComponentStory<typeof Flag> = (args) => (
14
+ <div style={{ width: 60, height: 40 }}>
15
+ <Flag {...args} />
16
+ </div>
17
+ );
18
+
19
+ export const Default = Template.bind({});
20
+
21
+ Default.args = {
22
+ countryCode: 'ug',
23
+ };
24
+
25
+ Default.parameters = {
26
+ controls: {
27
+ exclude: ['data'],
28
+ },
29
+ };
@@ -1,18 +1,18 @@
1
- import { colors } from '../../theme';
2
- import { ComponentStyles } from '../../types';
3
-
4
- export const styles = {
5
- root: {
6
- // приходится хардкодить в компоненте, тк либа Flags выдает флаги с 2-3 пиксельным отступом снизу
7
- // если будет нужно, то можно вынести border на уровень пропсов
8
- border: [1, 'solid', colors.BORDER_MAIN],
9
- borderRadius: 2,
10
- },
11
-
12
- noFlag: {
13
- width: 20,
14
- color: colors.FONT_MEDIUM,
15
- },
16
- };
17
-
18
- export type FlagStyles = ComponentStyles<typeof styles>;
1
+ import { colors } from '../../theme';
2
+ import { ComponentStyles } from '../../types';
3
+
4
+ export const styles = {
5
+ root: {
6
+ // приходится хардкодить в компоненте, тк либа Flags выдает флаги с 2-3 пиксельным отступом снизу
7
+ // если будет нужно, то можно вынести border на уровень пропсов
8
+ border: [1, 'solid', colors.BORDER_MAIN],
9
+ borderRadius: 2,
10
+ },
11
+
12
+ noFlag: {
13
+ width: 20,
14
+ color: colors.FONT_MEDIUM,
15
+ },
16
+ };
17
+
18
+ export type FlagStyles = ComponentStyles<typeof styles>;
@@ -1,28 +1,28 @@
1
- import { FC } from 'react';
2
- import Flags from 'country-flag-icons/react/3x2';
3
- import { hasFlag } from 'country-flag-icons';
4
- import { useTheme } from '../../hooks';
5
- import { Icon } from '../Icon';
6
- import { ICommonProps } from '../../types';
7
-
8
- import { FlagStyles, styles } from './Flag.styles';
9
-
10
- export interface IFlagProps extends ICommonProps {
11
- tweakStyles?: FlagStyles;
12
- countryCode?: string;
13
- }
14
-
15
- export const Flag: FC<IFlagProps> = ({ countryCode = '', tweakStyles }) => {
16
- const { classes } = useTheme('Flag', styles, tweakStyles);
17
- const CC = countryCode.toUpperCase();
18
-
19
- const TheFlag = hasFlag(CC)
20
- ? Flags[CC as keyof typeof Flags]
21
- : () => (
22
- <div className={classes.noFlag}>
23
- <Icon type="minus" />
24
- </div>
25
- );
26
-
27
- return <TheFlag className={classes.root} />;
28
- };
1
+ import { FC } from 'react';
2
+ import Flags from 'country-flag-icons/react/3x2';
3
+ import { hasFlag } from 'country-flag-icons';
4
+ import { useTheme } from '../../hooks';
5
+ import { Icon } from '../Icon';
6
+ import { ICommonProps } from '../../types';
7
+
8
+ import { FlagStyles, styles } from './Flag.styles';
9
+
10
+ export interface IFlagProps extends ICommonProps {
11
+ tweakStyles?: FlagStyles;
12
+ countryCode?: string;
13
+ }
14
+
15
+ export const Flag: FC<IFlagProps> = ({ countryCode = '', tweakStyles }) => {
16
+ const { classes } = useTheme('Flag', styles, tweakStyles);
17
+ const CC = countryCode.toUpperCase();
18
+
19
+ const TheFlag = hasFlag(CC)
20
+ ? Flags[CC as keyof typeof Flags]
21
+ : () => (
22
+ <div className={classes.noFlag}>
23
+ <Icon type="minus" />
24
+ </div>
25
+ );
26
+
27
+ return <TheFlag className={classes.root} />;
28
+ };
@@ -1 +1 @@
1
- declare module 'country-flag-icons/react/3x2';
1
+ declare module 'country-flag-icons/react/3x2';
@@ -1,2 +1,2 @@
1
- export * from './Flag';
2
- export type { FlagStyles } from './Flag.styles';
1
+ export * from './Flag';
2
+ export type { FlagStyles } from './Flag.styles';