@true-engineering/true-react-common-ui-kit 2.5.0 → 2.7.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 (233) hide show
  1. package/README.md +26 -0
  2. package/dist/components/Icon/icons-list.d.ts +1 -1
  3. package/dist/components/Input/Input.d.ts +2 -2
  4. package/dist/components/List/List.d.ts +1 -1
  5. package/dist/components/List/List.styles.d.ts +0 -28
  6. package/dist/components/List/index.d.ts +0 -1
  7. package/dist/components/ListItem/ListItem.d.ts +6 -0
  8. package/dist/components/ListItem/ListItem.styles.d.ts +35 -0
  9. package/dist/components/ListItem/constants.d.ts +1 -0
  10. package/dist/components/ListItem/index.d.ts +3 -0
  11. package/dist/components/{List → ListItem}/types.d.ts +5 -0
  12. package/dist/components/MoreMenu/MoreMenu.d.ts +2 -2
  13. package/dist/components/index.d.ts +1 -0
  14. package/dist/helpers/index.d.ts +1 -0
  15. package/dist/true-react-common-ui-kit.js +175 -75
  16. package/dist/true-react-common-ui-kit.js.map +1 -1
  17. package/dist/true-react-common-ui-kit.umd.cjs +176 -76
  18. package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
  19. package/dist/types.d.ts +1 -1
  20. package/package.json +93 -93
  21. package/src/components/AccountInfo/AccountInfo.stories.tsx +32 -32
  22. package/src/components/AccountInfo/AccountInfo.tsx +76 -76
  23. package/src/components/AccountInfo/constants.ts +1 -1
  24. package/src/components/AddButton/AddButton.tsx +48 -48
  25. package/src/components/Button/Button.stories.tsx +56 -56
  26. package/src/components/Button/Button.tsx +153 -154
  27. package/src/components/Button/constants.ts +9 -9
  28. package/src/components/Button/index.ts +3 -3
  29. package/src/components/Button/types.ts +5 -5
  30. package/src/components/Checkbox/Checkbox.stories.tsx +32 -32
  31. package/src/components/Checkbox/Checkbox.tsx +105 -105
  32. package/src/components/CloseButton/CloseButton.styles.ts +34 -34
  33. package/src/components/CloseButton/CloseButton.tsx +35 -35
  34. package/src/components/Colors/Colors.tsx +26 -26
  35. package/src/components/CssBaseline/CssBaseline.tsx +15 -15
  36. package/src/components/DateInput/DateInput.stories.tsx +61 -61
  37. package/src/components/DateInput/DateInput.tsx +82 -82
  38. package/src/components/DatePicker/DatePicker.stories.tsx +87 -87
  39. package/src/components/DatePicker/DatePicker.styles.ts +44 -44
  40. package/src/components/DatePicker/DatePicker.tsx +309 -309
  41. package/src/components/DatePicker/components/DatePickerHeader/DatePickerHeader.styles.ts +84 -84
  42. package/src/components/DatePicker/components/DatePickerHeader/DatePickerHeader.tsx +79 -79
  43. package/src/components/DatePicker/components/DatePickerHeader/index.ts +2 -2
  44. package/src/components/DatePicker/components/PopperContainer/PopperContainer.tsx +6 -6
  45. package/src/components/DatePicker/components/PopperContainer/index.ts +1 -1
  46. package/src/components/DatePicker/components/index.ts +2 -2
  47. package/src/components/DatePicker/constants.ts +6 -6
  48. package/src/components/DatePicker/helpers.ts +23 -23
  49. package/src/components/DatePicker/index.ts +4 -4
  50. package/src/components/DatePicker/types.ts +45 -45
  51. package/src/components/Description/Description.stories.tsx +27 -27
  52. package/src/components/Description/Description.tsx +59 -59
  53. package/src/components/Description/constants.ts +1 -1
  54. package/src/components/FiltersPane/FiltersPane.stories.tsx +295 -295
  55. package/src/components/FiltersPane/FiltersPane.tsx +150 -150
  56. package/src/components/FiltersPane/components/Filter/Filter.tsx +203 -203
  57. package/src/components/FiltersPane/components/Filter/index.ts +1 -1
  58. package/src/components/FiltersPane/components/FilterInterval/FilterInterval.styles.ts +64 -64
  59. package/src/components/FiltersPane/components/FilterInterval/FilterInterval.tsx +141 -141
  60. package/src/components/FiltersPane/components/FilterInterval/index.ts +2 -2
  61. package/src/components/FiltersPane/components/FilterMultiSelect/FilterMultiSelect.tsx +10 -10
  62. package/src/components/FiltersPane/components/FilterMultiSelect/index.ts +1 -1
  63. package/src/components/FiltersPane/components/FilterSelect/FilterSelect.styles.ts +143 -143
  64. package/src/components/FiltersPane/components/FilterSelect/FilterSelect.tsx +346 -346
  65. package/src/components/FiltersPane/components/FilterSelect/index.ts +2 -2
  66. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.styles.tsx +15 -15
  67. package/src/components/FiltersPane/components/FilterValueView/FilterValueView.tsx +163 -163
  68. package/src/components/FiltersPane/components/FilterValueView/index.tsx +2 -2
  69. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.ts +60 -60
  70. package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.tsx +181 -181
  71. package/src/components/FiltersPane/components/FilterWithDates/index.ts +2 -2
  72. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.styles.ts +17 -17
  73. package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.tsx +174 -174
  74. package/src/components/FiltersPane/components/FilterWithPeriod/index.ts +2 -2
  75. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.styles.ts +110 -110
  76. package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.tsx +149 -149
  77. package/src/components/FiltersPane/components/FilterWrapper/index.ts +2 -2
  78. package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.styles.ts +109 -109
  79. package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.tsx +155 -155
  80. package/src/components/FiltersPane/components/FiltersPaneSearch/index.ts +2 -2
  81. package/src/components/FiltersPane/components/index.ts +9 -9
  82. package/src/components/FiltersPane/constants.ts +137 -137
  83. package/src/components/FiltersPane/helpers.ts +26 -26
  84. package/src/components/FiltersPane/index.ts +5 -5
  85. package/src/components/FiltersPane/types.ts +156 -156
  86. package/src/components/Flag/Flag.stories.tsx +29 -29
  87. package/src/components/Flag/Flag.tsx +27 -27
  88. package/src/components/FlexibleTable/FlexibleTable.stories.tsx +338 -338
  89. package/src/components/FlexibleTable/FlexibleTable.styles.ts +131 -131
  90. package/src/components/FlexibleTable/FlexibleTable.tsx +205 -205
  91. package/src/components/FlexibleTable/components/TableRow/TableRow.tsx +152 -152
  92. package/src/components/FlexibleTable/components/TableRow/index.ts +1 -1
  93. package/src/components/FlexibleTable/components/TableValue/TableValue.tsx +74 -74
  94. package/src/components/FlexibleTable/components/TableValue/index.ts +1 -1
  95. package/src/components/FlexibleTable/components/index.ts +2 -2
  96. package/src/components/FlexibleTable/constants.ts +1 -1
  97. package/src/components/FlexibleTable/types.ts +52 -52
  98. package/src/components/Icon/Icon.stories.tsx +86 -86
  99. package/src/components/Icon/Icon.tsx +27 -27
  100. package/src/components/Icon/complexIcons/icons.ts +5 -5
  101. package/src/components/Icon/components/ComplexIconBoilerplate/ComplexIconBoilerplate.tsx +16 -16
  102. package/src/components/Icon/components/ComplexIconBoilerplate/index.ts +1 -1
  103. package/src/components/Icon/components/IconBolerplate/IconBoilerplate.tsx +43 -43
  104. package/src/components/Icon/components/IconBolerplate/index.ts +1 -1
  105. package/src/components/Icon/components/index.ts +2 -2
  106. package/src/components/Icon/helpers.ts +9 -9
  107. package/src/components/Icon/icons-list.ts +856 -826
  108. package/src/components/Icon/index.ts +4 -4
  109. package/src/components/Icon/types.ts +16 -16
  110. package/src/components/IncrementInput/IncrementInput.stories.tsx +31 -31
  111. package/src/components/IncrementInput/IncrementInput.tsx +80 -80
  112. package/src/components/IncrementInput/components/ChangeButton/ChangeButton.tsx +33 -33
  113. package/src/components/IncrementInput/components/ChangeButton/index.ts +1 -1
  114. package/src/components/IncrementInput/components/index.ts +1 -1
  115. package/src/components/Input/Input.stories.tsx +86 -86
  116. package/src/components/Input/Input.tsx +308 -308
  117. package/src/components/Input/constants.ts +1 -1
  118. package/src/components/Input/index.ts +3 -3
  119. package/src/components/Input/types.ts +6 -6
  120. package/src/components/List/List.stories.tsx +63 -63
  121. package/src/components/List/List.styles.ts +0 -38
  122. package/src/components/List/List.tsx +36 -54
  123. package/src/components/List/index.ts +2 -3
  124. package/src/components/ListItem/ListItem.stories.tsx +67 -0
  125. package/src/components/ListItem/ListItem.styles.ts +48 -0
  126. package/src/components/ListItem/ListItem.tsx +44 -0
  127. package/src/components/ListItem/constants.ts +5 -0
  128. package/src/components/ListItem/index.ts +3 -0
  129. package/src/components/{List → ListItem}/types.ts +19 -13
  130. package/src/components/Modal/Modal.stories.tsx +105 -105
  131. package/src/components/Modal/Modal.styles.ts +305 -305
  132. package/src/components/Modal/Modal.tsx +184 -184
  133. package/src/components/Modal/index.ts +3 -3
  134. package/src/components/Modal/types.ts +17 -17
  135. package/src/components/MoreMenu/MoreMenu.styles.ts +70 -70
  136. package/src/components/MoreMenu/MoreMenu.tsx +90 -90
  137. package/src/components/MultiSelect/MultiSelect.stories.tsx +46 -46
  138. package/src/components/MultiSelect/MultiSelect.tsx +92 -92
  139. package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.styles.ts +73 -73
  140. package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.tsx +51 -51
  141. package/src/components/MultiSelect/components/MultiSelectInput/index.ts +2 -2
  142. package/src/components/MultiSelect/components/index.ts +1 -1
  143. package/src/components/MultiSelect/index.ts +4 -4
  144. package/src/components/MultiSelect/types.ts +1 -1
  145. package/src/components/MultiSelectList/MultiSelectList.styles.ts +124 -124
  146. package/src/components/MultiSelectList/MultiSelectList.tsx +441 -441
  147. package/src/components/MultiSelectList/constants.ts +21 -21
  148. package/src/components/MultiSelectList/helpers.ts +11 -11
  149. package/src/components/MultiSelectList/index.ts +3 -3
  150. package/src/components/MultiSelectList/types.ts +15 -15
  151. package/src/components/Notification/Notification.stories.tsx +46 -46
  152. package/src/components/Notification/Notification.styles.ts +50 -50
  153. package/src/components/Notification/Notification.tsx +78 -78
  154. package/src/components/Notification/index.ts +3 -3
  155. package/src/components/Notification/types.ts +1 -1
  156. package/src/components/NumberInput/NumberInput.stories.tsx +35 -35
  157. package/src/components/NumberInput/NumberInput.tsx +133 -133
  158. package/src/components/NumberInput/helpers.ts +86 -86
  159. package/src/components/PhoneInput/PhoneInput.stories.tsx +70 -70
  160. package/src/components/PhoneInput/PhoneInput.tsx +193 -193
  161. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +21 -21
  162. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.styles.ts +100 -100
  163. package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.tsx +145 -145
  164. package/src/components/PhoneInput/components/PhoneInputCountryList/index.ts +2 -2
  165. package/src/components/PhoneInput/components/index.ts +1 -1
  166. package/src/components/PhoneInput/constants.ts +3 -3
  167. package/src/components/PhoneInput/index.ts +5 -5
  168. package/src/components/PhoneInput/phone-info.ts +2147 -2147
  169. package/src/components/RadioButton/RadioButton.stories.tsx +46 -46
  170. package/src/components/RadioButton/RadioButton.tsx +55 -55
  171. package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +54 -54
  172. package/src/components/ScrollIntoViewIfNeeded/constants.ts +12 -12
  173. package/src/components/SearchInput/SearchInput.stories.tsx +23 -23
  174. package/src/components/SearchInput/SearchInput.styles.ts +50 -50
  175. package/src/components/SearchInput/SearchInput.tsx +51 -51
  176. package/src/components/Select/MultiSelect.stories.tsx +240 -240
  177. package/src/components/Select/Select.stories.tsx +235 -235
  178. package/src/components/Select/Select.tsx +574 -575
  179. package/src/components/Select/components/SelectList/SelectList.styles.ts +72 -72
  180. package/src/components/Select/components/SelectList/SelectList.tsx +158 -158
  181. package/src/components/Select/components/SelectList/index.ts +2 -2
  182. package/src/components/Select/components/SelectListItem/SelectListItem.styles.ts +14 -14
  183. package/src/components/Select/components/SelectListItem/SelectListItem.tsx +68 -68
  184. package/src/components/Select/components/SelectListItem/index.ts +1 -1
  185. package/src/components/Select/components/index.ts +2 -2
  186. package/src/components/Select/helpers.ts +26 -26
  187. package/src/components/Select/index.ts +4 -4
  188. package/src/components/SmartInput/SmartInput.stories.tsx +51 -51
  189. package/src/components/SmartInput/SmartInput.tsx +124 -124
  190. package/src/components/SmartInput/constants.ts +84 -84
  191. package/src/components/SmartInput/helpers.ts +13 -13
  192. package/src/components/SmartInput/index.ts +2 -2
  193. package/src/components/SmartInput/types.ts +11 -11
  194. package/src/components/Switch/Switch.stories.tsx +40 -40
  195. package/src/components/Switch/Switch.tsx +79 -79
  196. package/src/components/Switch/index.ts +3 -3
  197. package/src/components/Switch/types.ts +4 -4
  198. package/src/components/TextArea/TextArea.stories.tsx +35 -35
  199. package/src/components/TextArea/TextArea.tsx +174 -174
  200. package/src/components/TextWithInfo/TextWithInfo.stories.tsx +53 -53
  201. package/src/components/TextWithInfo/TextWithInfo.tsx +60 -60
  202. package/src/components/TextWithTooltip/TextWithTooltip.tsx +143 -143
  203. package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +41 -41
  204. package/src/components/ThemedPreloader/ThemedPreloader.tsx +47 -47
  205. package/src/components/ThemedPreloader/components/DefaultPreloader/DefaultPreloader.tsx +29 -29
  206. package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.tsx +18 -18
  207. package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.tsx +25 -25
  208. package/src/components/ThemedPreloader/components/index.ts +3 -3
  209. package/src/components/ThemedPreloader/constants.ts +1 -1
  210. package/src/components/ThemedPreloader/index.ts +4 -4
  211. package/src/components/ThemedPreloader/types.ts +3 -3
  212. package/src/components/Toaster/Toaster.stories.tsx +30 -30
  213. package/src/components/Toaster/Toaster.tsx +108 -108
  214. package/src/components/Toaster/constants.ts +1 -1
  215. package/src/components/Toaster/index.ts +3 -3
  216. package/src/components/Toaster/types.ts +1 -1
  217. package/src/components/Tooltip/Tooltip.stories.tsx +19 -19
  218. package/src/components/Tooltip/Tooltip.styles.ts +45 -45
  219. package/src/components/Tooltip/Tooltip.tsx +35 -35
  220. package/src/components/Tooltip/index.ts +3 -3
  221. package/src/components/index.ts +1 -0
  222. package/src/helpers/deprecated.ts +23 -23
  223. package/src/helpers/index.ts +5 -4
  224. package/src/helpers/misc.ts +158 -158
  225. package/src/helpers/phone.ts +87 -87
  226. package/src/helpers/snippets.tsx +6 -6
  227. package/src/hooks/use-did-mount-effect.ts +18 -18
  228. package/src/hooks/use-dropdown.ts +82 -82
  229. package/src/hooks/use-on-click-outside.ts +77 -77
  230. package/src/hooks/use-theme.ts +32 -32
  231. package/src/hooks/use-tweak-styles.ts +13 -13
  232. package/src/theme.ts +149 -149
  233. package/src/types.ts +109 -108
@@ -1,5 +1,5 @@
1
- export * from './FiltersPane';
2
- export * from './types';
3
- // TODO : подумать над тем чтобы вынести это все наружу
4
- export * from './components';
5
- export type { FiltersPaneStyles } from './FiltersPane.styles';
1
+ export * from './FiltersPane';
2
+ export * from './types';
3
+ // TODO : подумать над тем чтобы вынести это все наружу
4
+ export * from './components';
5
+ export type { FiltersPaneStyles } from './FiltersPane.styles';
@@ -1,156 +1,156 @@
1
- import { FC, ReactNode } from 'react';
2
- import { IDatePickerProps } from '../DatePicker';
3
- import { IMultiSelectListValues } from '../MultiSelectList';
4
- import {
5
- IFilterIntervalProps,
6
- IFilterMultiSelectProps,
7
- IFilterSelectProps,
8
- IFilterWithDatesProps,
9
- IFilterWithPeriodProps,
10
- } from './components';
11
- import { FilterLocales, PERIODS, SelectLocales } from './constants';
12
-
13
- export type IPeriodType = (typeof PERIODS)[number];
14
-
15
- export type IFilterMultiSelectValues<Option = string> = IMultiSelectListValues<Option>;
16
-
17
- export type IPeriodsList = Array<IPeriodType | [string, IPeriodGetter]>;
18
-
19
- export interface IFiltersPaneSearchPayload<Value> {
20
- value?: string;
21
- field?: Value;
22
- }
23
-
24
- export interface IFilterValueViewProps<Value> {
25
- value?: Value;
26
- filter: ConfigItem<Value>;
27
- }
28
-
29
- export interface IDatePeriod {
30
- from: Date | null;
31
- to: Date | null;
32
- }
33
-
34
- export interface IPeriod extends IDatePeriod {
35
- periodType: string;
36
- label?: string;
37
- }
38
-
39
- export type IPeriodGetter = () => IDatePeriod;
40
-
41
- export type IFilterWithDatesValue = IDatePeriod;
42
-
43
- export type MultiSelectOptionType<Value> = Value | undefined extends
44
- | IFilterMultiSelectValues<infer Option>
45
- | undefined
46
- ? Option
47
- : unknown;
48
-
49
- export interface IConfigItemBasicBase<Value> {
50
- name: string;
51
- isInline?: boolean;
52
- requiredFilledFilters?: string[];
53
- localeKey?: IFilterLocaleKey;
54
- locale?: IPartialFilterLocale;
55
- getSelectedValueView?: (v: Value) => ReactNode;
56
- }
57
-
58
- export type IIntervalConfigItem<Value> = IConfigItemBasicBase<Value> & {
59
- type: 'interval';
60
- } & Omit<IFilterIntervalProps, 'value' | 'onChange' | 'labelName'>;
61
-
62
- export interface IBooleanConfigItem<Value> extends IConfigItemBasicBase<Value> {
63
- type: 'boolean';
64
- }
65
-
66
- export type IMultiSelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
67
- type: 'multiSelect';
68
- } & Omit<IFilterMultiSelectProps<Value, MultiSelectOptionType<Value>>, 'value' | 'onChange'>;
69
-
70
- export type ISelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
71
- type: 'select';
72
- } & Omit<IFilterSelectProps<Value>, 'value' | 'onChange'>;
73
-
74
- // Дата без периодов
75
- export type IDateRangeWithoutPeriodConfigItem<Value> = IConfigItemBasicBase<Value> & {
76
- type: 'dateRangeWithoutPeriod';
77
- dateFormat?: string;
78
- } & Omit<IFilterWithDatesProps, 'value' | 'onChange' | 'onStartBtnSubmit' | 'onEndBtnSubmit'>;
79
-
80
- // Дата С ПЕРИОДАМИ
81
- export type IDateRangeConfigItem<Value> = IConfigItemBasicBase<Value> & {
82
- type: 'dateRange';
83
- dateFormat?: string;
84
- } & Omit<IFilterWithPeriodProps, 'value' | 'onChange' | 'setIsOpen'>;
85
-
86
- export type CustomComponent<Value> = FC<{
87
- value?: Value;
88
- onChange: (v?: Value) => void;
89
- onClose?: () => void;
90
- filter: ICustomConfigItem<Value>;
91
- localeKey?: IFilterLocaleKey;
92
- locale?: IPartialFilterLocale;
93
- }>;
94
-
95
- export interface ICustomConfigItem<Value> extends IConfigItemBasicBase<Value> {
96
- [key: string]: any;
97
- type: 'custom';
98
- component: CustomComponent<Value>;
99
- valueViewType?: 'range' | 'multiple';
100
- }
101
-
102
- export type ConfigItem<Value> =
103
- | ISelectConfigItem<Value>
104
- | IMultiSelectConfigItem<Value>
105
- | ICustomConfigItem<Value>
106
- | IDateRangeWithoutPeriodConfigItem<Value>
107
- | IDateRangeConfigItem<Value>
108
- | IIntervalConfigItem<Value>
109
- | IBooleanConfigItem<Value>;
110
-
111
- export type ConfigType<Values> = {
112
- [K in keyof Values]: ConfigItem<Values[K]>;
113
- };
114
-
115
- export interface IFilterLocale {
116
- clear: string;
117
- all: string;
118
- other: string;
119
- chosen: string;
120
- searchPlaceholder: string;
121
- displayedFields: string;
122
- nothingFound: string;
123
- from: string;
124
- to: string;
125
- back: string;
126
- months: string[];
127
- periods: {
128
- [key: string]: string;
129
- THIS_MONTH: string;
130
- LAST_MONTH: string;
131
- THIS_YEAR: string;
132
- LAST_YEAR: string;
133
- CUSTOM: string;
134
- };
135
- }
136
-
137
- export type IPartialFilterLocale = Partial<Omit<IFilterLocale, 'periods'>> & {
138
- periods?: Partial<IFilterLocale['periods']>;
139
- };
140
-
141
- export type IFilterLocaleKey = keyof typeof FilterLocales;
142
-
143
- export interface ISelectLocale {
144
- clear: string;
145
- all: string;
146
- chosen: string;
147
- searchPlaceholder: string;
148
- nothingFound: string;
149
- }
150
-
151
- export type ISelectLocaleKey = keyof typeof SelectLocales;
152
-
153
- export type IFilterWithDateDatePickerProps = Omit<
154
- IDatePickerProps,
155
- 'onChange' | 'value' | 'locale' | 'months' | 'selectedDate'
156
- >;
1
+ import { FC, ReactNode } from 'react';
2
+ import { IDatePickerProps } from '../DatePicker';
3
+ import { IMultiSelectListValues } from '../MultiSelectList';
4
+ import {
5
+ IFilterIntervalProps,
6
+ IFilterMultiSelectProps,
7
+ IFilterSelectProps,
8
+ IFilterWithDatesProps,
9
+ IFilterWithPeriodProps,
10
+ } from './components';
11
+ import { FilterLocales, PERIODS, SelectLocales } from './constants';
12
+
13
+ export type IPeriodType = (typeof PERIODS)[number];
14
+
15
+ export type IFilterMultiSelectValues<Option = string> = IMultiSelectListValues<Option>;
16
+
17
+ export type IPeriodsList = Array<IPeriodType | [string, IPeriodGetter]>;
18
+
19
+ export interface IFiltersPaneSearchPayload<Value> {
20
+ value?: string;
21
+ field?: Value;
22
+ }
23
+
24
+ export interface IFilterValueViewProps<Value> {
25
+ value?: Value;
26
+ filter: ConfigItem<Value>;
27
+ }
28
+
29
+ export interface IDatePeriod {
30
+ from: Date | null;
31
+ to: Date | null;
32
+ }
33
+
34
+ export interface IPeriod extends IDatePeriod {
35
+ periodType: string;
36
+ label?: string;
37
+ }
38
+
39
+ export type IPeriodGetter = () => IDatePeriod;
40
+
41
+ export type IFilterWithDatesValue = IDatePeriod;
42
+
43
+ export type MultiSelectOptionType<Value> = Value | undefined extends
44
+ | IFilterMultiSelectValues<infer Option>
45
+ | undefined
46
+ ? Option
47
+ : unknown;
48
+
49
+ export interface IConfigItemBasicBase<Value> {
50
+ name: string;
51
+ isInline?: boolean;
52
+ requiredFilledFilters?: string[];
53
+ localeKey?: IFilterLocaleKey;
54
+ locale?: IPartialFilterLocale;
55
+ getSelectedValueView?: (v: Value) => ReactNode;
56
+ }
57
+
58
+ export type IIntervalConfigItem<Value> = IConfigItemBasicBase<Value> & {
59
+ type: 'interval';
60
+ } & Omit<IFilterIntervalProps, 'value' | 'onChange' | 'labelName'>;
61
+
62
+ export interface IBooleanConfigItem<Value> extends IConfigItemBasicBase<Value> {
63
+ type: 'boolean';
64
+ }
65
+
66
+ export type IMultiSelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
67
+ type: 'multiSelect';
68
+ } & Omit<IFilterMultiSelectProps<Value, MultiSelectOptionType<Value>>, 'value' | 'onChange'>;
69
+
70
+ export type ISelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
71
+ type: 'select';
72
+ } & Omit<IFilterSelectProps<Value>, 'value' | 'onChange'>;
73
+
74
+ // Дата без периодов
75
+ export type IDateRangeWithoutPeriodConfigItem<Value> = IConfigItemBasicBase<Value> & {
76
+ type: 'dateRangeWithoutPeriod';
77
+ dateFormat?: string;
78
+ } & Omit<IFilterWithDatesProps, 'value' | 'onChange' | 'onStartBtnSubmit' | 'onEndBtnSubmit'>;
79
+
80
+ // Дата С ПЕРИОДАМИ
81
+ export type IDateRangeConfigItem<Value> = IConfigItemBasicBase<Value> & {
82
+ type: 'dateRange';
83
+ dateFormat?: string;
84
+ } & Omit<IFilterWithPeriodProps, 'value' | 'onChange' | 'setIsOpen'>;
85
+
86
+ export type CustomComponent<Value> = FC<{
87
+ value?: Value;
88
+ onChange: (v?: Value) => void;
89
+ onClose?: () => void;
90
+ filter: ICustomConfigItem<Value>;
91
+ localeKey?: IFilterLocaleKey;
92
+ locale?: IPartialFilterLocale;
93
+ }>;
94
+
95
+ export interface ICustomConfigItem<Value> extends IConfigItemBasicBase<Value> {
96
+ [key: string]: any;
97
+ type: 'custom';
98
+ component: CustomComponent<Value>;
99
+ valueViewType?: 'range' | 'multiple';
100
+ }
101
+
102
+ export type ConfigItem<Value> =
103
+ | ISelectConfigItem<Value>
104
+ | IMultiSelectConfigItem<Value>
105
+ | ICustomConfigItem<Value>
106
+ | IDateRangeWithoutPeriodConfigItem<Value>
107
+ | IDateRangeConfigItem<Value>
108
+ | IIntervalConfigItem<Value>
109
+ | IBooleanConfigItem<Value>;
110
+
111
+ export type ConfigType<Values> = {
112
+ [K in keyof Values]: ConfigItem<Values[K]>;
113
+ };
114
+
115
+ export interface IFilterLocale {
116
+ clear: string;
117
+ all: string;
118
+ other: string;
119
+ chosen: string;
120
+ searchPlaceholder: string;
121
+ displayedFields: string;
122
+ nothingFound: string;
123
+ from: string;
124
+ to: string;
125
+ back: string;
126
+ months: string[];
127
+ periods: {
128
+ [key: string]: string;
129
+ THIS_MONTH: string;
130
+ LAST_MONTH: string;
131
+ THIS_YEAR: string;
132
+ LAST_YEAR: string;
133
+ CUSTOM: string;
134
+ };
135
+ }
136
+
137
+ export type IPartialFilterLocale = Partial<Omit<IFilterLocale, 'periods'>> & {
138
+ periods?: Partial<IFilterLocale['periods']>;
139
+ };
140
+
141
+ export type IFilterLocaleKey = keyof typeof FilterLocales;
142
+
143
+ export interface ISelectLocale {
144
+ clear: string;
145
+ all: string;
146
+ chosen: string;
147
+ searchPlaceholder: string;
148
+ nothingFound: string;
149
+ }
150
+
151
+ export type ISelectLocaleKey = keyof typeof SelectLocales;
152
+
153
+ export type IFilterWithDateDatePickerProps = Omit<
154
+ IDatePickerProps,
155
+ 'onChange' | 'value' | 'locale' | 'months' | 'selectedDate'
156
+ >;
@@ -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,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
+ };