@true-engineering/true-react-common-ui-kit 2.0.1 → 2.1.1

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 (275) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +17 -0
  3. package/dist/components/Button/Button.d.ts +36 -1
  4. package/dist/components/Checkbox/Checkbox.d.ts +15 -2
  5. package/dist/components/DatePicker/DatePicker.d.ts +4 -5
  6. package/dist/components/DatePicker/types.d.ts +1 -1
  7. package/dist/components/FiltersPane/FilterMultiSelect/FilterMultiSelect.d.ts +1 -1
  8. package/dist/components/FiltersPane/FilterSelect/FilterSelect.d.ts +13 -1
  9. package/dist/components/FiltersPane/FilterWithDates/FilterWithDates.d.ts +1 -1
  10. package/dist/components/FiltersPane/FilterWithPeriod/FilterWithPeriod.d.ts +1 -1
  11. package/dist/components/FiltersPane/FilterWrapper/FilterWrapper.d.ts +1 -1
  12. package/dist/components/FiltersPane/FiltersPane.d.ts +2 -2
  13. package/dist/components/FiltersPane/FiltersPaneSearch/FiltersPaneSearch.d.ts +1 -1
  14. package/dist/components/FiltersPane/types.d.ts +1 -1
  15. package/dist/components/Flag/augment.d.ts +1 -1
  16. package/dist/components/FlexibleTable/FlexibleTable.d.ts +1 -1
  17. package/dist/components/FlexibleTable/TableRow.d.ts +1 -1
  18. package/dist/components/Icon/Icon.d.ts +2 -2
  19. package/dist/components/Icon/complexIcons/augment.d.ts +1 -1
  20. package/dist/components/Input/Input.d.ts +18 -1
  21. package/dist/components/MoreMenu/MoreMenu.d.ts +3 -0
  22. package/dist/components/MultiSelect/MultiSelectInput/MultiSelectInput.d.ts +1 -1
  23. package/dist/components/MultiSelectList/MultiSelectList.d.ts +1 -1
  24. package/dist/components/Notification/Notification.d.ts +6 -0
  25. package/dist/components/PhoneInput/PhoneInput.d.ts +1 -1
  26. package/dist/components/RadioButton/RadioButton.d.ts +4 -3
  27. package/dist/components/Select/Select.d.ts +3 -3
  28. package/dist/components/Switch/Switch.d.ts +10 -4
  29. package/dist/components/TextWithTooltip/TextWithTooltip.d.ts +1 -1
  30. package/dist/components/ThemedPreloader/ThemedPreloader.d.ts +3 -0
  31. package/dist/components/Toaster/Toaster.d.ts +13 -0
  32. package/dist/components/Tooltip/Tooltip.d.ts +6 -0
  33. package/dist/helpers/snippets.d.ts +1 -1
  34. package/dist/helpers/utils.d.ts +15 -1
  35. package/dist/true-react-common-ui-kit.js +3873 -3875
  36. package/dist/true-react-common-ui-kit.js.map +1 -1
  37. package/dist/true-react-common-ui-kit.umd.cjs +3893 -3895
  38. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  39. package/dist/types.d.ts +3 -0
  40. package/dist/vite-env.d.ts +1 -1
  41. package/package.json +2 -1
  42. package/src/components/AccountInfo/AccountInfo.stories.tsx +32 -35
  43. package/src/components/AccountInfo/AccountInfo.styles.ts +55 -55
  44. package/src/components/AccountInfo/AccountInfo.tsx +77 -106
  45. package/src/components/AccountInfo/index.ts +2 -2
  46. package/src/components/AddButton/AddButton.stories.tsx +21 -21
  47. package/src/components/AddButton/AddButton.styles.ts +34 -34
  48. package/src/components/AddButton/AddButton.tsx +48 -49
  49. package/src/components/AddButton/index.ts +2 -2
  50. package/src/components/Button/Button.stories.tsx +52 -61
  51. package/src/components/Button/Button.styles.ts +196 -196
  52. package/src/components/Button/Button.tsx +187 -207
  53. package/src/components/Button/index.ts +2 -2
  54. package/src/components/Checkbox/Checkbox.stories.tsx +32 -35
  55. package/src/components/Checkbox/Checkbox.styles.ts +62 -62
  56. package/src/components/Checkbox/Checkbox.tsx +100 -106
  57. package/src/components/Checkbox/index.ts +2 -2
  58. package/src/components/CloseButton/CloseButton.styles.ts +34 -34
  59. package/src/components/CloseButton/CloseButton.tsx +35 -37
  60. package/src/components/CloseButton/index.ts +2 -2
  61. package/src/components/Colors/Colors.stories.tsx +7 -7
  62. package/src/components/Colors/Colors.styles.ts +38 -38
  63. package/src/components/Colors/Colors.tsx +26 -34
  64. package/src/components/Colors/index.ts +2 -2
  65. package/src/components/CssBaseline/CssBaseline.styles.ts +15 -15
  66. package/src/components/CssBaseline/CssBaseline.tsx +15 -17
  67. package/src/components/CssBaseline/index.ts +2 -2
  68. package/src/components/DateInput/DateInput.stories.tsx +61 -67
  69. package/src/components/DateInput/DateInput.styles.ts +14 -14
  70. package/src/components/DateInput/DateInput.tsx +82 -101
  71. package/src/components/DateInput/constants.ts +2 -2
  72. package/src/components/DateInput/index.ts +3 -3
  73. package/src/components/DatePicker/DatePicker.stories.tsx +87 -90
  74. package/src/components/DatePicker/DatePicker.styles.ts +44 -44
  75. package/src/components/DatePicker/DatePicker.tsx +322 -354
  76. package/src/components/DatePicker/DatePickerHeader/DatePickerHeader.styles.ts +84 -84
  77. package/src/components/DatePicker/DatePickerHeader/DatePickerHeader.tsx +79 -80
  78. package/src/components/DatePicker/DatePickerHeader/index.ts +2 -2
  79. package/src/components/DatePicker/constants.ts +1 -1
  80. package/src/components/DatePicker/helpers.ts +19 -24
  81. package/src/components/DatePicker/index.ts +3 -3
  82. package/src/components/DatePicker/types.ts +45 -40
  83. package/src/components/Description/Description.stories.tsx +27 -29
  84. package/src/components/Description/Description.styles.ts +31 -31
  85. package/src/components/Description/Description.tsx +60 -69
  86. package/src/components/Description/index.ts +2 -2
  87. package/src/components/FiltersPane/FilterInterval/FilterInterval.styles.ts +64 -64
  88. package/src/components/FiltersPane/FilterInterval/FilterInterval.tsx +143 -162
  89. package/src/components/FiltersPane/FilterInterval/index.ts +1 -1
  90. package/src/components/FiltersPane/FilterMultiSelect/FilterMultiSelect.tsx +10 -14
  91. package/src/components/FiltersPane/FilterMultiSelect/index.ts +1 -1
  92. package/src/components/FiltersPane/FilterSelect/FilterSelect.styles.ts +143 -144
  93. package/src/components/FiltersPane/FilterSelect/FilterSelect.tsx +347 -397
  94. package/src/components/FiltersPane/FilterSelect/index.ts +1 -1
  95. package/src/components/FiltersPane/FilterSelect/locales.ts +37 -37
  96. package/src/components/FiltersPane/FilterValueView/FilterValueView.styles.tsx +15 -15
  97. package/src/components/FiltersPane/FilterValueView/FilterValueView.tsx +166 -186
  98. package/src/components/FiltersPane/FilterValueView/index.tsx +1 -1
  99. package/src/components/FiltersPane/FilterWithDates/FilterWithDates.styles.ts +60 -60
  100. package/src/components/FiltersPane/FilterWithDates/FilterWithDates.tsx +183 -210
  101. package/src/components/FiltersPane/FilterWithDates/index.ts +1 -1
  102. package/src/components/FiltersPane/FilterWithPeriod/FilterWithPeriod.styles.ts +17 -17
  103. package/src/components/FiltersPane/FilterWithPeriod/FilterWithPeriod.tsx +198 -231
  104. package/src/components/FiltersPane/FilterWithPeriod/index.ts +1 -1
  105. package/src/components/FiltersPane/FilterWrapper/FilterWrapper.styles.ts +110 -110
  106. package/src/components/FiltersPane/FilterWrapper/FilterWrapper.tsx +346 -360
  107. package/src/components/FiltersPane/FilterWrapper/index.ts +1 -1
  108. package/src/components/FiltersPane/FiltersPane.stories.tsx +295 -308
  109. package/src/components/FiltersPane/FiltersPane.styles.ts +71 -71
  110. package/src/components/FiltersPane/FiltersPane.tsx +151 -193
  111. package/src/components/FiltersPane/FiltersPaneSearch/FiltersPaneSearch.styles.ts +109 -109
  112. package/src/components/FiltersPane/FiltersPaneSearch/FiltersPaneSearch.tsx +155 -175
  113. package/src/components/FiltersPane/FiltersPaneSearch/index.ts +1 -1
  114. package/src/components/FiltersPane/index.ts +20 -20
  115. package/src/components/FiltersPane/locales.ts +107 -107
  116. package/src/components/FiltersPane/types.ts +112 -126
  117. package/src/components/Flag/Flag.stories.tsx +29 -29
  118. package/src/components/Flag/Flag.styles.ts +18 -18
  119. package/src/components/Flag/Flag.tsx +27 -28
  120. package/src/components/Flag/augment.d.ts +1 -1
  121. package/src/components/Flag/index.ts +2 -2
  122. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +3 -5
  123. package/src/components/FlexibleTable/FlexibleTable.styles.ts +131 -131
  124. package/src/components/FlexibleTable/FlexibleTable.tsx +205 -243
  125. package/src/components/FlexibleTable/TableRow.tsx +152 -171
  126. package/src/components/FlexibleTable/TableValue.tsx +75 -81
  127. package/src/components/FlexibleTable/fixture-test.ts +254 -254
  128. package/src/components/FlexibleTable/index.ts +3 -3
  129. package/src/components/FlexibleTable/types.ts +52 -58
  130. package/src/components/Icon/ComplexIconBoilerplate.tsx +17 -17
  131. package/src/components/Icon/Icon.stories.tsx +85 -88
  132. package/src/components/Icon/Icon.styles.ts +10 -10
  133. package/src/components/Icon/Icon.tsx +32 -34
  134. package/src/components/Icon/IconBoilerplate.tsx +42 -42
  135. package/src/components/Icon/complexIcons/augment.d.ts +1 -1
  136. package/src/components/Icon/complexIcons/avatarGreen.svg +57 -57
  137. package/src/components/Icon/complexIcons/icons.ts +7 -7
  138. package/src/components/Icon/complexIcons/index.ts +1 -1
  139. package/src/components/Icon/icons/icons.ts +838 -838
  140. package/src/components/Icon/icons/index.ts +1 -1
  141. package/src/components/Icon/index.ts +4 -4
  142. package/src/components/IncrementInput/ChangeButton.tsx +33 -34
  143. package/src/components/IncrementInput/IncrementInput.stories.tsx +31 -34
  144. package/src/components/IncrementInput/IncrementInput.styles.ts +77 -77
  145. package/src/components/IncrementInput/IncrementInput.tsx +79 -95
  146. package/src/components/IncrementInput/index.ts +2 -2
  147. package/src/components/Input/Input.stories.tsx +86 -92
  148. package/src/components/Input/Input.styles.ts +307 -307
  149. package/src/components/Input/Input.tsx +306 -321
  150. package/src/components/Input/index.ts +2 -2
  151. package/src/components/List/List.stories.tsx +62 -62
  152. package/src/components/List/List.styles.ts +52 -52
  153. package/src/components/List/List.tsx +61 -82
  154. package/src/components/List/index.ts +2 -2
  155. package/src/components/Modal/Modal.stories.tsx +105 -113
  156. package/src/components/Modal/Modal.styles.ts +305 -308
  157. package/src/components/Modal/Modal.tsx +181 -210
  158. package/src/components/Modal/index.ts +2 -2
  159. package/src/components/MoreMenu/MoreMenu.stories.tsx +46 -46
  160. package/src/components/MoreMenu/MoreMenu.styles.ts +70 -70
  161. package/src/components/MoreMenu/MoreMenu.tsx +89 -102
  162. package/src/components/MoreMenu/index.ts +2 -2
  163. package/src/components/MultiSelect/MultiSelect.stories.tsx +46 -46
  164. package/src/components/MultiSelect/MultiSelect.styles.ts +55 -55
  165. package/src/components/MultiSelect/MultiSelect.tsx +89 -98
  166. package/src/components/MultiSelect/MultiSelectInput/MultiSelectInput.styles.ts +73 -73
  167. package/src/components/MultiSelect/MultiSelectInput/MultiSelectInput.tsx +51 -62
  168. package/src/components/MultiSelect/MultiSelectInput/index.ts +1 -1
  169. package/src/components/MultiSelect/index.ts +3 -3
  170. package/src/components/MultiSelectList/MultiSelectList.styles.ts +124 -125
  171. package/src/components/MultiSelectList/MultiSelectList.tsx +451 -519
  172. package/src/components/MultiSelectList/index.ts +2 -2
  173. package/src/components/MultiSelectList/locales.ts +37 -37
  174. package/src/components/Notification/Notification.stories.tsx +46 -51
  175. package/src/components/Notification/Notification.styles.ts +50 -50
  176. package/src/components/Notification/Notification.tsx +75 -84
  177. package/src/components/Notification/index.ts +2 -2
  178. package/src/components/NumberInput/NumberInput.stories.tsx +35 -36
  179. package/src/components/NumberInput/NumberInput.tsx +133 -154
  180. package/src/components/NumberInput/helpers.ts +85 -87
  181. package/src/components/NumberInput/index.ts +1 -1
  182. package/src/components/PhoneInput/PhoneInput.stories.tsx +70 -71
  183. package/src/components/PhoneInput/PhoneInput.styles.ts +84 -84
  184. package/src/components/PhoneInput/PhoneInput.tsx +194 -223
  185. package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +21 -21
  186. package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.styles.ts +100 -100
  187. package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.tsx +147 -171
  188. package/src/components/PhoneInput/PhoneInputCountryList/index.ts +2 -2
  189. package/src/components/PhoneInput/index.ts +6 -6
  190. package/src/components/PhoneInput/phone-info.ts +2147 -2167
  191. package/src/components/PhoneInput/types.ts +16 -16
  192. package/src/components/RadioButton/RadioButton.stories.tsx +46 -46
  193. package/src/components/RadioButton/RadioButton.styles.ts +37 -37
  194. package/src/components/RadioButton/RadioButton.tsx +54 -56
  195. package/src/components/RadioButton/index.ts +2 -2
  196. package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +61 -66
  197. package/src/components/ScrollIntoViewIfNeeded/index.ts +1 -1
  198. package/src/components/SearchInput/SearchInput.stories.tsx +23 -24
  199. package/src/components/SearchInput/SearchInput.styles.ts +50 -50
  200. package/src/components/SearchInput/SearchInput.tsx +49 -63
  201. package/src/components/SearchInput/index.ts +2 -2
  202. package/src/components/Select/MultiSelect.stories.tsx +240 -263
  203. package/src/components/Select/Select.stories.tsx +235 -258
  204. package/src/components/Select/Select.styles.ts +96 -96
  205. package/src/components/Select/Select.tsx +49 -108
  206. package/src/components/Select/SelectList/SelectList.styles.ts +72 -72
  207. package/src/components/Select/SelectList/SelectList.tsx +152 -165
  208. package/src/components/Select/SelectList/index.ts +1 -1
  209. package/src/components/Select/SelectListItem/SelectListItem.styles.ts +14 -14
  210. package/src/components/Select/SelectListItem/SelectListItem.tsx +67 -73
  211. package/src/components/Select/constants.ts +2 -2
  212. package/src/components/Select/helpers.ts +26 -29
  213. package/src/components/Select/index.ts +4 -4
  214. package/src/components/Select/types.ts +1 -1
  215. package/src/components/SmartInput/SmartInput.stories.tsx +50 -63
  216. package/src/components/SmartInput/SmartInput.tsx +147 -180
  217. package/src/components/SmartInput/helpers.ts +85 -85
  218. package/src/components/SmartInput/index.ts +1 -1
  219. package/src/components/Switch/Switch.stories.tsx +40 -40
  220. package/src/components/Switch/Switch.styles.ts +75 -75
  221. package/src/components/Switch/Switch.tsx +82 -89
  222. package/src/components/Switch/index.ts +2 -2
  223. package/src/components/TextArea/TextArea.stories.tsx +35 -35
  224. package/src/components/TextArea/TextArea.styles.ts +153 -153
  225. package/src/components/TextArea/TextArea.tsx +165 -178
  226. package/src/components/TextArea/index.ts +2 -2
  227. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +53 -53
  228. package/src/components/TextWithInfo/TextWithInfo.styles.ts +60 -60
  229. package/src/components/TextWithInfo/TextWithInfo.tsx +60 -67
  230. package/src/components/TextWithInfo/index.ts +2 -2
  231. package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +58 -58
  232. package/src/components/TextWithTooltip/TextWithTooltip.styles.ts +19 -19
  233. package/src/components/TextWithTooltip/TextWithTooltip.tsx +143 -163
  234. package/src/components/TextWithTooltip/index.ts +2 -2
  235. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +41 -41
  236. package/src/components/ThemedPreloader/ThemedPreloader.styles.ts +21 -21
  237. package/src/components/ThemedPreloader/ThemedPreloader.tsx +50 -56
  238. package/src/components/ThemedPreloader/components/DefaultPreloader/DefaultPreloader.tsx +29 -34
  239. package/src/components/ThemedPreloader/components/DefaultPreloader/index.ts +1 -1
  240. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.styles.ts +54 -54
  241. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.tsx +18 -18
  242. package/src/components/ThemedPreloader/components/DotsPreloader/index.ts +2 -2
  243. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.styles.ts +11 -11
  244. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.tsx +25 -32
  245. package/src/components/ThemedPreloader/components/SvgPreloader/index.ts +2 -2
  246. package/src/components/ThemedPreloader/components/index.ts +2 -2
  247. package/src/components/ThemedPreloader/index.ts +2 -2
  248. package/src/components/Toaster/Toaster.stories.tsx +30 -34
  249. package/src/components/Toaster/Toaster.styles.ts +59 -59
  250. package/src/components/Toaster/Toaster.tsx +105 -113
  251. package/src/components/Toaster/index.ts +2 -2
  252. package/src/components/Tooltip/Tooltip.stories.tsx +19 -21
  253. package/src/components/Tooltip/Tooltip.styles.ts +45 -45
  254. package/src/components/Tooltip/Tooltip.tsx +35 -40
  255. package/src/components/Tooltip/index.ts +3 -3
  256. package/src/components/Tooltip/types.ts +1 -1
  257. package/src/components/index.ts +36 -36
  258. package/src/helpers/colors.ts +3 -2
  259. package/src/helpers/dateHelpers/date-helpers.ts +9 -9
  260. package/src/helpers/index.ts +4 -4
  261. package/src/helpers/phone.ts +87 -106
  262. package/src/helpers/popper-helpers.ts +17 -17
  263. package/src/helpers/snippets.tsx +5 -5
  264. package/src/helpers/utils.ts +231 -261
  265. package/src/hooks/index.ts +6 -6
  266. package/src/hooks/use-did-mount-effect.ts +18 -21
  267. package/src/hooks/use-dropdown.ts +82 -85
  268. package/src/hooks/use-is-mounted.ts +15 -15
  269. package/src/hooks/use-on-click-outside.ts +77 -92
  270. package/src/hooks/use-theme.ts +32 -36
  271. package/src/hooks/use-tweak-styles.ts +13 -14
  272. package/src/index.ts +6 -6
  273. package/src/theme.ts +149 -155
  274. package/src/types.ts +98 -105
  275. package/src/vite-env.d.ts +1 -1
@@ -1,107 +1,107 @@
1
- import merge from 'lodash-es/merge';
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-es/merge';
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,112 @@
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 { IMultiSelectListValues } from '../MultiSelectList';
3
+ import { IFilterIntervalProps } from './FilterInterval';
4
+ import { IFilterMultiSelectProps } from './FilterMultiSelect';
5
+ import { IFilterSelectProps } from './FilterSelect';
6
+ import { IFilterWithDatesProps } from './FilterWithDates';
7
+ import { IFilterWithPeriodProps } from './FilterWithPeriod';
8
+ import { IFilterLocaleKey, IPartialFilterLocale } from './locales';
9
+
10
+ export const PERIODS = ['THIS_MONTH', 'LAST_MONTH', 'THIS_YEAR', 'LAST_YEAR', 'CUSTOM'] as const;
11
+
12
+ export type IPeriodType = (typeof PERIODS)[number];
13
+
14
+ export type IFilterMultiSelectValues<Option = string> = IMultiSelectListValues<Option>;
15
+
16
+ export type IPeriodsList = Array<IPeriodType | [string, IPeriodGetter]>;
17
+
18
+ export interface IFiltersPaneSearchPayload<Value> {
19
+ value?: string;
20
+ field?: Value;
21
+ }
22
+
23
+ export interface IFilterValueViewProps<Value> {
24
+ value?: Value;
25
+ filter: ConfigItem<Value>;
26
+ }
27
+
28
+ export interface IDatePeriod {
29
+ from: Date | null;
30
+ to: Date | null;
31
+ }
32
+
33
+ export interface IPeriod extends IDatePeriod {
34
+ periodType: string;
35
+ label?: string;
36
+ }
37
+
38
+ export type IPeriodGetter = () => IDatePeriod;
39
+
40
+ export type IFilterWithDatesValue = IDatePeriod;
41
+
42
+ export type MultiSelectOptionType<Value> = Value | undefined extends
43
+ | IFilterMultiSelectValues<infer Option>
44
+ | undefined
45
+ ? Option
46
+ : unknown;
47
+
48
+ export interface IConfigItemBasicBase<Value> {
49
+ name: string;
50
+ isInline?: boolean;
51
+ requiredFilledFilters?: string[];
52
+ localeKey?: IFilterLocaleKey;
53
+ locale?: IPartialFilterLocale;
54
+ getSelectedValueView?: (v: Value) => ReactNode;
55
+ }
56
+
57
+ export type IIntervalConfigItem<Value> = IConfigItemBasicBase<Value> & {
58
+ type: 'interval';
59
+ } & Omit<IFilterIntervalProps, 'value' | 'onChange' | 'labelName'>;
60
+
61
+ export interface IBooleanConfigItem<Value> extends IConfigItemBasicBase<Value> {
62
+ type: 'boolean';
63
+ }
64
+
65
+ export type IMultiSelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
66
+ type: 'multiSelect';
67
+ } & Omit<IFilterMultiSelectProps<Value, MultiSelectOptionType<Value>>, 'value' | 'onChange'>;
68
+
69
+ export type ISelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
70
+ type: 'select';
71
+ } & Omit<IFilterSelectProps<Value>, 'value' | 'onChange'>;
72
+
73
+ // Дата без периодов
74
+ export type IDateRangeWithoutPeriodConfigItem<Value> = IConfigItemBasicBase<Value> & {
75
+ type: 'dateRangeWithoutPeriod';
76
+ dateFormat?: string;
77
+ } & Omit<IFilterWithDatesProps, 'value' | 'onChange' | 'onStartBtnSubmit' | 'onEndBtnSubmit'>;
78
+
79
+ // Дата С ПЕРИОДАМИ
80
+ export type IDateRangeConfigItem<Value> = IConfigItemBasicBase<Value> & {
81
+ type: 'dateRange';
82
+ dateFormat?: string;
83
+ } & Omit<IFilterWithPeriodProps, 'value' | 'onChange' | 'setIsOpen'>;
84
+
85
+ export type CustomComponent<Value> = FC<{
86
+ value?: Value;
87
+ onChange: (v?: Value) => void;
88
+ onClose?: () => void;
89
+ filter: ICustomConfigItem<Value>;
90
+ localeKey?: IFilterLocaleKey;
91
+ locale?: IPartialFilterLocale;
92
+ }>;
93
+
94
+ export interface ICustomConfigItem<Value> extends IConfigItemBasicBase<Value> {
95
+ [key: string]: any;
96
+ type: 'custom';
97
+ component: CustomComponent<Value>;
98
+ valueViewType?: 'range' | 'multiple';
99
+ }
100
+
101
+ export type ConfigItem<Value> =
102
+ | ISelectConfigItem<Value>
103
+ | IMultiSelectConfigItem<Value>
104
+ | ICustomConfigItem<Value>
105
+ | IDateRangeWithoutPeriodConfigItem<Value>
106
+ | IDateRangeConfigItem<Value>
107
+ | IIntervalConfigItem<Value>
108
+ | IBooleanConfigItem<Value>;
109
+
110
+ export type ConfigType<Values> = {
111
+ [K in keyof Values]: ConfigItem<Values[K]>;
112
+ };
@@ -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 { countries } from 'country-flag-icons';
2
+ import { ComponentStory } from '@storybook/react';
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,27 @@
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 { hasFlag } from 'country-flag-icons';
3
+ import Flags from 'country-flag-icons/react/3x2';
4
+ import { useTheme } from '../../hooks';
5
+ import { ICommonProps } from '../../types';
6
+ import { Icon } from '../Icon';
7
+ import { FlagStyles, styles } from './Flag.styles';
8
+
9
+ export interface IFlagProps extends ICommonProps {
10
+ tweakStyles?: FlagStyles;
11
+ countryCode?: string;
12
+ }
13
+
14
+ export const Flag: FC<IFlagProps> = ({ countryCode = '', tweakStyles }) => {
15
+ const { classes } = useTheme('Flag', styles, tweakStyles);
16
+ const CC = countryCode.toUpperCase();
17
+
18
+ const TheFlag = hasFlag(CC)
19
+ ? Flags[CC as keyof typeof Flags]
20
+ : () => (
21
+ <div className={classes.noFlag}>
22
+ <Icon type="minus" />
23
+ </div>
24
+ );
25
+
26
+ return <TheFlag className={classes.root} />;
27
+ };
@@ -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';
@@ -1,8 +1,8 @@
1
- import { ComponentStory } from '@storybook/react';
2
1
  import { FC } from 'react';
2
+ import { ComponentStory } from '@storybook/react';
3
3
  import { FlexibleTable } from './FlexibleTable';
4
- import { FlexibleTableConfigType } from './types';
5
4
  import content from './fixture-test';
5
+ import { FlexibleTableConfigType } from './types';
6
6
 
7
7
  export default {
8
8
  title: 'Table/FlexibleTable',
@@ -49,9 +49,7 @@ const config: FlexibleTableConfigType<ITableContent> = {
49
49
  },
50
50
  };
51
51
 
52
- const Template: ComponentStory<typeof FlexibleTable<ITableContent>> = (
53
- args,
54
- ) => (
52
+ const Template: ComponentStory<typeof FlexibleTable<ITableContent>> = (args) => (
55
53
  <FlexibleTable<ITableContent>
56
54
  {...args}
57
55
  uniqueField="contractCode"