@true-engineering/true-react-common-ui-kit 2.1.1 → 2.3.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 (258) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +16 -0
  3. package/dist/components/Button/Button.d.ts +3 -4
  4. package/dist/components/Flag/augment.d.ts +1 -1
  5. package/dist/components/Icon/complexIcons/augment.d.ts +1 -1
  6. package/dist/components/Input/Input.d.ts +3 -4
  7. package/dist/components/List/List.d.ts +3 -4
  8. package/dist/components/Modal/Modal.d.ts +3 -3
  9. package/dist/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.d.ts +4 -4
  10. package/dist/components/Select/Select.d.ts +2 -3
  11. package/dist/helpers/deprecated.d.ts +12 -0
  12. package/dist/helpers/index.d.ts +2 -2
  13. package/dist/helpers/misc.d.ts +19 -0
  14. package/dist/helpers/snippets.d.ts +3 -3
  15. package/dist/true-react-common-ui-kit.js +389 -405
  16. package/dist/true-react-common-ui-kit.js.map +1 -1
  17. package/dist/true-react-common-ui-kit.umd.cjs +389 -406
  18. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  19. package/dist/types.d.ts +3 -1
  20. package/dist/vite-env.d.ts +1 -1
  21. package/package.json +93 -92
  22. package/src/components/AccountInfo/AccountInfo.stories.tsx +32 -32
  23. package/src/components/AccountInfo/AccountInfo.styles.ts +55 -55
  24. package/src/components/AccountInfo/AccountInfo.tsx +77 -77
  25. package/src/components/AccountInfo/index.ts +2 -2
  26. package/src/components/AddButton/AddButton.stories.tsx +21 -21
  27. package/src/components/AddButton/AddButton.styles.ts +34 -34
  28. package/src/components/AddButton/AddButton.tsx +48 -48
  29. package/src/components/AddButton/index.ts +2 -2
  30. package/src/components/Button/Button.stories.tsx +52 -52
  31. package/src/components/Button/Button.styles.ts +196 -196
  32. package/src/components/Button/Button.tsx +167 -187
  33. package/src/components/Button/index.ts +2 -2
  34. package/src/components/Checkbox/Checkbox.stories.tsx +32 -32
  35. package/src/components/Checkbox/Checkbox.styles.ts +62 -62
  36. package/src/components/Checkbox/Checkbox.tsx +105 -100
  37. package/src/components/Checkbox/index.ts +2 -2
  38. package/src/components/CloseButton/CloseButton.styles.ts +34 -34
  39. package/src/components/CloseButton/CloseButton.tsx +35 -35
  40. package/src/components/CloseButton/index.ts +2 -2
  41. package/src/components/Colors/Colors.stories.tsx +7 -7
  42. package/src/components/Colors/Colors.styles.ts +38 -38
  43. package/src/components/Colors/Colors.tsx +26 -26
  44. package/src/components/Colors/index.ts +2 -2
  45. package/src/components/CssBaseline/CssBaseline.styles.ts +15 -15
  46. package/src/components/CssBaseline/CssBaseline.tsx +15 -15
  47. package/src/components/CssBaseline/index.ts +2 -2
  48. package/src/components/DateInput/DateInput.stories.tsx +61 -61
  49. package/src/components/DateInput/DateInput.styles.ts +14 -14
  50. package/src/components/DateInput/DateInput.tsx +82 -82
  51. package/src/components/DateInput/constants.ts +2 -2
  52. package/src/components/DateInput/index.ts +3 -3
  53. package/src/components/DatePicker/DatePicker.stories.tsx +87 -87
  54. package/src/components/DatePicker/DatePicker.styles.ts +44 -44
  55. package/src/components/DatePicker/DatePicker.tsx +327 -322
  56. package/src/components/DatePicker/DatePickerHeader/DatePickerHeader.styles.ts +84 -84
  57. package/src/components/DatePicker/DatePickerHeader/DatePickerHeader.tsx +79 -79
  58. package/src/components/DatePicker/DatePickerHeader/index.ts +2 -2
  59. package/src/components/DatePicker/constants.ts +1 -1
  60. package/src/components/DatePicker/helpers.ts +23 -19
  61. package/src/components/DatePicker/index.ts +3 -3
  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 +31 -31
  65. package/src/components/Description/Description.tsx +60 -60
  66. package/src/components/Description/index.ts +2 -2
  67. package/src/components/FiltersPane/FilterInterval/FilterInterval.styles.ts +64 -64
  68. package/src/components/FiltersPane/FilterInterval/FilterInterval.tsx +143 -143
  69. package/src/components/FiltersPane/FilterInterval/index.ts +1 -1
  70. package/src/components/FiltersPane/FilterMultiSelect/FilterMultiSelect.tsx +10 -10
  71. package/src/components/FiltersPane/FilterMultiSelect/index.ts +1 -1
  72. package/src/components/FiltersPane/FilterSelect/FilterSelect.styles.ts +143 -143
  73. package/src/components/FiltersPane/FilterSelect/FilterSelect.tsx +348 -347
  74. package/src/components/FiltersPane/FilterSelect/index.ts +1 -1
  75. package/src/components/FiltersPane/FilterSelect/locales.ts +37 -37
  76. package/src/components/FiltersPane/FilterValueView/FilterValueView.styles.tsx +15 -15
  77. package/src/components/FiltersPane/FilterValueView/FilterValueView.tsx +166 -166
  78. package/src/components/FiltersPane/FilterValueView/index.tsx +1 -1
  79. package/src/components/FiltersPane/FilterWithDates/FilterWithDates.styles.ts +60 -60
  80. package/src/components/FiltersPane/FilterWithDates/FilterWithDates.tsx +184 -183
  81. package/src/components/FiltersPane/FilterWithDates/index.ts +1 -1
  82. package/src/components/FiltersPane/FilterWithPeriod/FilterWithPeriod.styles.ts +17 -17
  83. package/src/components/FiltersPane/FilterWithPeriod/FilterWithPeriod.tsx +198 -198
  84. package/src/components/FiltersPane/FilterWithPeriod/index.ts +1 -1
  85. package/src/components/FiltersPane/FilterWrapper/FilterWrapper.styles.ts +110 -110
  86. package/src/components/FiltersPane/FilterWrapper/FilterWrapper.tsx +346 -346
  87. package/src/components/FiltersPane/FilterWrapper/index.ts +1 -1
  88. package/src/components/FiltersPane/FiltersPane.stories.tsx +295 -295
  89. package/src/components/FiltersPane/FiltersPane.styles.ts +71 -71
  90. package/src/components/FiltersPane/FiltersPane.tsx +151 -151
  91. package/src/components/FiltersPane/FiltersPaneSearch/FiltersPaneSearch.styles.ts +109 -109
  92. package/src/components/FiltersPane/FiltersPaneSearch/FiltersPaneSearch.tsx +155 -155
  93. package/src/components/FiltersPane/FiltersPaneSearch/index.ts +1 -1
  94. package/src/components/FiltersPane/index.ts +20 -20
  95. package/src/components/FiltersPane/locales.ts +107 -107
  96. package/src/components/FiltersPane/types.ts +112 -112
  97. package/src/components/Flag/Flag.stories.tsx +29 -29
  98. package/src/components/Flag/Flag.styles.ts +18 -18
  99. package/src/components/Flag/Flag.tsx +27 -27
  100. package/src/components/Flag/augment.d.ts +1 -1
  101. package/src/components/Flag/index.ts +2 -2
  102. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +84 -84
  103. package/src/components/FlexibleTable/FlexibleTable.styles.ts +131 -131
  104. package/src/components/FlexibleTable/FlexibleTable.tsx +205 -205
  105. package/src/components/FlexibleTable/TableRow.tsx +152 -152
  106. package/src/components/FlexibleTable/TableValue.tsx +75 -75
  107. package/src/components/FlexibleTable/fixture-test.ts +254 -254
  108. package/src/components/FlexibleTable/index.ts +3 -3
  109. package/src/components/FlexibleTable/types.ts +52 -52
  110. package/src/components/Icon/ComplexIconBoilerplate.tsx +17 -17
  111. package/src/components/Icon/Icon.stories.tsx +85 -85
  112. package/src/components/Icon/Icon.styles.ts +10 -10
  113. package/src/components/Icon/Icon.tsx +32 -32
  114. package/src/components/Icon/IconBoilerplate.tsx +42 -42
  115. package/src/components/Icon/complexIcons/augment.d.ts +1 -1
  116. package/src/components/Icon/complexIcons/avatarGreen.svg +57 -57
  117. package/src/components/Icon/complexIcons/icons.ts +7 -7
  118. package/src/components/Icon/complexIcons/index.ts +1 -1
  119. package/src/components/Icon/icons/icons.ts +838 -838
  120. package/src/components/Icon/icons/index.ts +1 -1
  121. package/src/components/Icon/index.ts +4 -4
  122. package/src/components/IncrementInput/ChangeButton.tsx +33 -33
  123. package/src/components/IncrementInput/IncrementInput.stories.tsx +31 -31
  124. package/src/components/IncrementInput/IncrementInput.styles.ts +77 -77
  125. package/src/components/IncrementInput/IncrementInput.tsx +80 -79
  126. package/src/components/IncrementInput/index.ts +2 -2
  127. package/src/components/Input/Input.stories.tsx +86 -86
  128. package/src/components/Input/Input.styles.ts +307 -307
  129. package/src/components/Input/Input.tsx +311 -306
  130. package/src/components/Input/index.ts +2 -2
  131. package/src/components/List/List.stories.tsx +62 -62
  132. package/src/components/List/List.styles.ts +52 -52
  133. package/src/components/List/List.tsx +64 -61
  134. package/src/components/List/index.ts +2 -2
  135. package/src/components/Modal/Modal.stories.tsx +105 -105
  136. package/src/components/Modal/Modal.styles.ts +305 -305
  137. package/src/components/Modal/Modal.tsx +200 -181
  138. package/src/components/Modal/index.ts +2 -2
  139. package/src/components/MoreMenu/MoreMenu.stories.tsx +46 -46
  140. package/src/components/MoreMenu/MoreMenu.styles.ts +70 -70
  141. package/src/components/MoreMenu/MoreMenu.tsx +90 -89
  142. package/src/components/MoreMenu/index.ts +2 -2
  143. package/src/components/MultiSelect/MultiSelect.stories.tsx +46 -46
  144. package/src/components/MultiSelect/MultiSelect.styles.ts +55 -55
  145. package/src/components/MultiSelect/MultiSelect.tsx +89 -89
  146. package/src/components/MultiSelect/MultiSelectInput/MultiSelectInput.styles.ts +73 -73
  147. package/src/components/MultiSelect/MultiSelectInput/MultiSelectInput.tsx +51 -51
  148. package/src/components/MultiSelect/MultiSelectInput/index.ts +1 -1
  149. package/src/components/MultiSelect/index.ts +3 -3
  150. package/src/components/MultiSelectList/MultiSelectList.styles.ts +124 -124
  151. package/src/components/MultiSelectList/MultiSelectList.tsx +451 -451
  152. package/src/components/MultiSelectList/index.ts +2 -2
  153. package/src/components/MultiSelectList/locales.ts +37 -37
  154. package/src/components/Notification/Notification.stories.tsx +46 -46
  155. package/src/components/Notification/Notification.styles.ts +50 -50
  156. package/src/components/Notification/Notification.tsx +79 -75
  157. package/src/components/Notification/index.ts +2 -2
  158. package/src/components/NumberInput/NumberInput.stories.tsx +35 -35
  159. package/src/components/NumberInput/NumberInput.tsx +133 -133
  160. package/src/components/NumberInput/helpers.ts +86 -85
  161. package/src/components/NumberInput/index.ts +1 -1
  162. package/src/components/PhoneInput/PhoneInput.stories.tsx +70 -70
  163. package/src/components/PhoneInput/PhoneInput.styles.ts +84 -84
  164. package/src/components/PhoneInput/PhoneInput.tsx +194 -194
  165. package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +21 -21
  166. package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.styles.ts +100 -100
  167. package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.tsx +147 -147
  168. package/src/components/PhoneInput/PhoneInputCountryList/index.ts +2 -2
  169. package/src/components/PhoneInput/index.ts +6 -6
  170. package/src/components/PhoneInput/phone-info.ts +2147 -2147
  171. package/src/components/PhoneInput/types.ts +16 -16
  172. package/src/components/RadioButton/RadioButton.stories.tsx +46 -46
  173. package/src/components/RadioButton/RadioButton.styles.ts +37 -37
  174. package/src/components/RadioButton/RadioButton.tsx +55 -54
  175. package/src/components/RadioButton/index.ts +2 -2
  176. package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +61 -61
  177. package/src/components/ScrollIntoViewIfNeeded/index.ts +1 -1
  178. package/src/components/SearchInput/SearchInput.stories.tsx +23 -23
  179. package/src/components/SearchInput/SearchInput.styles.ts +50 -50
  180. package/src/components/SearchInput/SearchInput.tsx +50 -49
  181. package/src/components/SearchInput/index.ts +2 -2
  182. package/src/components/Select/MultiSelect.stories.tsx +240 -240
  183. package/src/components/Select/Select.stories.tsx +235 -235
  184. package/src/components/Select/Select.styles.ts +96 -96
  185. package/src/components/Select/Select.tsx +575 -575
  186. package/src/components/Select/SelectList/SelectList.styles.ts +72 -72
  187. package/src/components/Select/SelectList/SelectList.tsx +158 -152
  188. package/src/components/Select/SelectList/index.ts +1 -1
  189. package/src/components/Select/SelectListItem/SelectListItem.styles.ts +14 -14
  190. package/src/components/Select/SelectListItem/SelectListItem.tsx +68 -67
  191. package/src/components/Select/constants.ts +2 -2
  192. package/src/components/Select/helpers.ts +26 -26
  193. package/src/components/Select/index.ts +4 -4
  194. package/src/components/Select/types.ts +1 -1
  195. package/src/components/SmartInput/SmartInput.stories.tsx +50 -50
  196. package/src/components/SmartInput/SmartInput.tsx +147 -147
  197. package/src/components/SmartInput/helpers.ts +85 -85
  198. package/src/components/SmartInput/index.ts +1 -1
  199. package/src/components/Switch/Switch.stories.tsx +40 -40
  200. package/src/components/Switch/Switch.styles.ts +75 -75
  201. package/src/components/Switch/Switch.tsx +83 -82
  202. package/src/components/Switch/index.ts +2 -2
  203. package/src/components/TextArea/TextArea.stories.tsx +35 -35
  204. package/src/components/TextArea/TextArea.styles.ts +153 -153
  205. package/src/components/TextArea/TextArea.tsx +165 -165
  206. package/src/components/TextArea/index.ts +2 -2
  207. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +53 -53
  208. package/src/components/TextWithInfo/TextWithInfo.styles.ts +60 -60
  209. package/src/components/TextWithInfo/TextWithInfo.tsx +60 -60
  210. package/src/components/TextWithInfo/index.ts +2 -2
  211. package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +58 -58
  212. package/src/components/TextWithTooltip/TextWithTooltip.styles.ts +19 -19
  213. package/src/components/TextWithTooltip/TextWithTooltip.tsx +143 -143
  214. package/src/components/TextWithTooltip/index.ts +2 -2
  215. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +41 -41
  216. package/src/components/ThemedPreloader/ThemedPreloader.styles.ts +21 -21
  217. package/src/components/ThemedPreloader/ThemedPreloader.tsx +50 -50
  218. package/src/components/ThemedPreloader/components/DefaultPreloader/DefaultPreloader.tsx +29 -29
  219. package/src/components/ThemedPreloader/components/DefaultPreloader/index.ts +1 -1
  220. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.styles.ts +54 -54
  221. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.tsx +18 -18
  222. package/src/components/ThemedPreloader/components/DotsPreloader/index.ts +2 -2
  223. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.styles.ts +11 -11
  224. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.tsx +25 -25
  225. package/src/components/ThemedPreloader/components/SvgPreloader/index.ts +2 -2
  226. package/src/components/ThemedPreloader/components/index.ts +2 -2
  227. package/src/components/ThemedPreloader/index.ts +2 -2
  228. package/src/components/Toaster/Toaster.stories.tsx +30 -30
  229. package/src/components/Toaster/Toaster.styles.ts +59 -59
  230. package/src/components/Toaster/Toaster.tsx +110 -105
  231. package/src/components/Toaster/index.ts +2 -2
  232. package/src/components/Tooltip/Tooltip.stories.tsx +19 -19
  233. package/src/components/Tooltip/Tooltip.styles.ts +45 -45
  234. package/src/components/Tooltip/Tooltip.tsx +35 -35
  235. package/src/components/Tooltip/index.ts +3 -3
  236. package/src/components/Tooltip/types.ts +1 -1
  237. package/src/components/index.ts +36 -36
  238. package/src/helpers/deprecated.ts +22 -0
  239. package/src/helpers/index.ts +4 -4
  240. package/src/helpers/{utils.ts → misc.ts} +158 -231
  241. package/src/helpers/phone.ts +87 -87
  242. package/src/helpers/popper-helpers.ts +17 -17
  243. package/src/helpers/snippets.tsx +6 -5
  244. package/src/hooks/index.ts +6 -6
  245. package/src/hooks/use-did-mount-effect.ts +18 -18
  246. package/src/hooks/use-dropdown.ts +82 -82
  247. package/src/hooks/use-is-mounted.ts +15 -15
  248. package/src/hooks/use-on-click-outside.ts +77 -77
  249. package/src/hooks/use-theme.ts +32 -32
  250. package/src/hooks/use-tweak-styles.ts +13 -13
  251. package/src/index.ts +6 -6
  252. package/src/theme.ts +149 -149
  253. package/src/types.ts +107 -98
  254. package/src/vite-env.d.ts +1 -1
  255. package/dist/helpers/colors.d.ts +0 -2
  256. package/dist/helpers/utils.d.ts +0 -43
  257. package/src/helpers/colors.ts +0 -3
  258. package/src/helpers/dateHelpers/date-helpers.ts +0 -9
@@ -1,112 +1,112 @@
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
+ 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 { 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
+ 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,27 +1,27 @@
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
+ 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,84 +1,84 @@
1
- import { FC } from 'react';
2
- import { ComponentStory } from '@storybook/react';
3
- import { FlexibleTable } from './FlexibleTable';
4
- import content from './fixture-test';
5
- import { FlexibleTableConfigType } from './types';
6
-
7
- export default {
8
- title: 'Table/FlexibleTable',
9
- component: FlexibleTable,
10
- };
11
-
12
- interface ITableContent {
13
- contractCode: string;
14
- validFrom: Date;
15
- validTo: Date;
16
- title: string;
17
- signDate: Date;
18
- partner: string;
19
- partnerDescription: string;
20
- parentContract: string;
21
- currency: string;
22
- status: string;
23
- }
24
-
25
- const Temp: FC<{ value: string | undefined }> = ({ value }) => <>{value}</>;
26
- const Temp1: FC<{ value: string }> = ({ value }) => <>{value}</>;
27
-
28
- const config: FlexibleTableConfigType<ITableContent> = {
29
- contractCode: {
30
- title: 'Contract Code',
31
- },
32
- title: {
33
- component: Temp,
34
- title: 'Title',
35
- minWidth: 320,
36
- },
37
- validFrom: {
38
- title: 'Valid From',
39
- },
40
- validTo: {
41
- title: 'Valid From',
42
- },
43
- signDate: {
44
- title: 'Sign Date',
45
- },
46
- partner: {
47
- component: Temp1,
48
- title: 'Partner',
49
- },
50
- };
51
-
52
- const Template: ComponentStory<typeof FlexibleTable<ITableContent>> = (args) => (
53
- <FlexibleTable<ITableContent>
54
- {...args}
55
- uniqueField="contractCode"
56
- expandableRowComponent={(item, _, close) =>
57
- item.contractCode === 'OB_UT_M119' ? (
58
- <div onClick={close}>всем привет :) {item.contractCode}</div>
59
- ) : null
60
- }
61
- content={content}
62
- config={config}
63
- />
64
- );
65
-
66
- export const Default = Template.bind({});
67
-
68
- Default.args = {
69
- isHorizontallyScrollable: true,
70
- isFirstColumnSticky: true,
71
- };
72
-
73
- Default.parameters = {
74
- controls: {
75
- exclude: [
76
- 'data',
77
- 'testId',
78
- 'onHeadClick',
79
- 'onRowClick',
80
- 'onRowHover',
81
- 'expandableRowComponent',
82
- ],
83
- },
84
- };
1
+ import { FC } from 'react';
2
+ import { ComponentStory } from '@storybook/react';
3
+ import { FlexibleTable } from './FlexibleTable';
4
+ import content from './fixture-test';
5
+ import { FlexibleTableConfigType } from './types';
6
+
7
+ export default {
8
+ title: 'Table/FlexibleTable',
9
+ component: FlexibleTable,
10
+ };
11
+
12
+ interface ITableContent {
13
+ contractCode: string;
14
+ validFrom: Date;
15
+ validTo: Date;
16
+ title: string;
17
+ signDate: Date;
18
+ partner: string;
19
+ partnerDescription: string;
20
+ parentContract: string;
21
+ currency: string;
22
+ status: string;
23
+ }
24
+
25
+ const Temp: FC<{ value: string | undefined }> = ({ value }) => <>{value}</>;
26
+ const Temp1: FC<{ value: string }> = ({ value }) => <>{value}</>;
27
+
28
+ const config: FlexibleTableConfigType<ITableContent> = {
29
+ contractCode: {
30
+ title: 'Contract Code',
31
+ },
32
+ title: {
33
+ component: Temp,
34
+ title: 'Title',
35
+ minWidth: 320,
36
+ },
37
+ validFrom: {
38
+ title: 'Valid From',
39
+ },
40
+ validTo: {
41
+ title: 'Valid From',
42
+ },
43
+ signDate: {
44
+ title: 'Sign Date',
45
+ },
46
+ partner: {
47
+ component: Temp1,
48
+ title: 'Partner',
49
+ },
50
+ };
51
+
52
+ const Template: ComponentStory<typeof FlexibleTable<ITableContent>> = (args) => (
53
+ <FlexibleTable<ITableContent>
54
+ {...args}
55
+ uniqueField="contractCode"
56
+ expandableRowComponent={(item, _, close) =>
57
+ item.contractCode === 'OB_UT_M119' ? (
58
+ <div onClick={close}>всем привет :) {item.contractCode}</div>
59
+ ) : null
60
+ }
61
+ content={content}
62
+ config={config}
63
+ />
64
+ );
65
+
66
+ export const Default = Template.bind({});
67
+
68
+ Default.args = {
69
+ isHorizontallyScrollable: true,
70
+ isFirstColumnSticky: true,
71
+ };
72
+
73
+ Default.parameters = {
74
+ controls: {
75
+ exclude: [
76
+ 'data',
77
+ 'testId',
78
+ 'onHeadClick',
79
+ 'onRowClick',
80
+ 'onRowHover',
81
+ 'expandableRowComponent',
82
+ ],
83
+ },
84
+ };