@true-engineering/true-react-common-ui-kit 1.12.1 → 2.0.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.
- package/LICENSE +201 -201
- package/dist/components/DateInput/DateInput.d.ts +8 -8
- package/dist/components/DateInput/DateInput.styles.d.ts +2 -2
- package/dist/components/DateInput/constants.d.ts +2 -0
- package/dist/components/DateInput/index.d.ts +1 -0
- package/dist/components/DatePicker/DatePicker.d.ts +16 -24
- package/dist/components/DatePicker/DatePicker.styles.d.ts +12 -24
- package/dist/components/DatePicker/DatePickerHeader/DatePickerHeader.d.ts +3 -9
- package/dist/components/DatePicker/DatePickerHeader/index.d.ts +1 -0
- package/dist/components/DatePicker/constants.d.ts +1 -0
- package/dist/components/DatePicker/helpers.d.ts +3 -0
- package/dist/components/DatePicker/index.d.ts +1 -2
- package/dist/components/DatePicker/types.d.ts +4 -0
- package/dist/components/FiltersPane/FilterWithDates/FilterWithDates.d.ts +1 -1
- package/dist/components/Flag/augment.d.ts +1 -1
- package/dist/components/Icon/complexIcons/augment.d.ts +1 -1
- package/dist/helpers/utils.d.ts +2 -1
- package/dist/style.css +125 -50
- package/dist/true-react-common-ui-kit.js +389 -425
- package/dist/true-react-common-ui-kit.js.map +1 -1
- package/dist/true-react-common-ui-kit.umd.cjs +389 -425
- package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/vite-env.d.ts +1 -1
- package/package.json +91 -91
- package/src/components/AccountInfo/AccountInfo.stories.tsx +35 -35
- package/src/components/AccountInfo/AccountInfo.styles.ts +55 -55
- package/src/components/AccountInfo/AccountInfo.tsx +106 -106
- package/src/components/AccountInfo/index.ts +2 -2
- package/src/components/AddButton/AddButton.stories.tsx +21 -21
- package/src/components/AddButton/AddButton.styles.ts +34 -34
- package/src/components/AddButton/AddButton.tsx +49 -49
- package/src/components/AddButton/index.ts +2 -2
- package/src/components/Button/Button.stories.tsx +61 -61
- package/src/components/Button/Button.styles.ts +196 -196
- package/src/components/Button/Button.tsx +207 -207
- package/src/components/Button/index.ts +2 -2
- package/src/components/Checkbox/Checkbox.stories.tsx +35 -35
- package/src/components/Checkbox/Checkbox.styles.ts +62 -62
- package/src/components/Checkbox/Checkbox.tsx +106 -106
- package/src/components/Checkbox/index.ts +2 -2
- package/src/components/CloseButton/CloseButton.styles.ts +34 -34
- package/src/components/CloseButton/CloseButton.tsx +37 -37
- package/src/components/CloseButton/index.ts +2 -2
- package/src/components/Colors/Colors.stories.tsx +7 -7
- package/src/components/Colors/Colors.styles.ts +38 -38
- package/src/components/Colors/Colors.tsx +34 -34
- package/src/components/Colors/index.ts +2 -2
- package/src/components/CssBaseline/CssBaseline.styles.ts +15 -15
- package/src/components/CssBaseline/CssBaseline.tsx +17 -17
- package/src/components/CssBaseline/index.ts +2 -2
- package/src/components/DateInput/DateInput.stories.tsx +67 -63
- package/src/components/DateInput/DateInput.styles.ts +14 -14
- package/src/components/DateInput/DateInput.tsx +101 -60
- package/src/components/DateInput/constants.ts +2 -0
- package/src/components/DateInput/index.ts +3 -2
- package/src/components/DatePicker/DatePicker.stories.tsx +90 -96
- package/src/components/DatePicker/DatePicker.styles.ts +44 -54
- package/src/components/DatePicker/DatePicker.tsx +354 -358
- package/src/components/DatePicker/DatePickerHeader/DatePickerHeader.styles.ts +84 -84
- package/src/components/DatePicker/DatePickerHeader/DatePickerHeader.tsx +80 -94
- package/src/components/DatePicker/DatePickerHeader/index.ts +2 -1
- package/src/components/DatePicker/constants.ts +1 -0
- package/src/components/DatePicker/helpers.ts +24 -0
- package/src/components/DatePicker/index.ts +3 -4
- package/src/components/DatePicker/types.ts +40 -0
- package/src/components/Description/Description.stories.tsx +29 -29
- package/src/components/Description/Description.styles.ts +31 -31
- package/src/components/Description/Description.tsx +69 -69
- package/src/components/Description/index.ts +2 -2
- package/src/components/FiltersPane/FilterInterval/FilterInterval.styles.ts +64 -64
- package/src/components/FiltersPane/FilterInterval/FilterInterval.tsx +162 -162
- package/src/components/FiltersPane/FilterInterval/index.ts +1 -1
- package/src/components/FiltersPane/FilterMultiSelect/FilterMultiSelect.tsx +14 -14
- package/src/components/FiltersPane/FilterMultiSelect/index.ts +1 -1
- package/src/components/FiltersPane/FilterSelect/FilterSelect.styles.ts +144 -144
- package/src/components/FiltersPane/FilterSelect/FilterSelect.tsx +397 -397
- package/src/components/FiltersPane/FilterSelect/index.ts +1 -1
- package/src/components/FiltersPane/FilterSelect/locales.ts +37 -37
- package/src/components/FiltersPane/FilterValueView/FilterValueView.styles.tsx +15 -15
- package/src/components/FiltersPane/FilterValueView/FilterValueView.tsx +186 -186
- package/src/components/FiltersPane/FilterValueView/index.tsx +1 -1
- package/src/components/FiltersPane/FilterWithDates/FilterWithDates.styles.ts +60 -60
- package/src/components/FiltersPane/FilterWithDates/FilterWithDates.tsx +210 -222
- package/src/components/FiltersPane/FilterWithDates/index.ts +1 -1
- package/src/components/FiltersPane/FilterWithPeriod/FilterWithPeriod.styles.ts +17 -17
- package/src/components/FiltersPane/FilterWithPeriod/FilterWithPeriod.tsx +231 -231
- package/src/components/FiltersPane/FilterWithPeriod/index.ts +1 -1
- package/src/components/FiltersPane/FilterWrapper/FilterWrapper.styles.ts +110 -110
- package/src/components/FiltersPane/FilterWrapper/FilterWrapper.tsx +360 -360
- package/src/components/FiltersPane/FilterWrapper/index.ts +1 -1
- package/src/components/FiltersPane/FiltersPane.stories.tsx +308 -308
- package/src/components/FiltersPane/FiltersPane.styles.ts +71 -71
- package/src/components/FiltersPane/FiltersPane.tsx +193 -193
- package/src/components/FiltersPane/FiltersPaneSearch/FiltersPaneSearch.styles.ts +109 -109
- package/src/components/FiltersPane/FiltersPaneSearch/FiltersPaneSearch.tsx +175 -175
- package/src/components/FiltersPane/FiltersPaneSearch/index.ts +1 -1
- package/src/components/FiltersPane/index.ts +20 -20
- package/src/components/FiltersPane/locales.ts +107 -107
- package/src/components/FiltersPane/types.ts +126 -126
- package/src/components/Flag/Flag.stories.tsx +29 -29
- package/src/components/Flag/Flag.styles.ts +18 -18
- package/src/components/Flag/Flag.tsx +28 -28
- package/src/components/Flag/augment.d.ts +1 -1
- package/src/components/Flag/index.ts +2 -2
- package/src/components/FlexibleTable/FlexibleTable.stories.tsx +86 -86
- package/src/components/FlexibleTable/FlexibleTable.styles.ts +131 -131
- package/src/components/FlexibleTable/FlexibleTable.tsx +243 -243
- package/src/components/FlexibleTable/TableRow.tsx +171 -171
- package/src/components/FlexibleTable/TableValue.tsx +81 -81
- package/src/components/FlexibleTable/fixture-test.ts +254 -254
- package/src/components/FlexibleTable/index.ts +3 -3
- package/src/components/FlexibleTable/types.ts +58 -58
- package/src/components/Icon/ComplexIconBoilerplate.tsx +17 -17
- package/src/components/Icon/Icon.stories.tsx +88 -88
- package/src/components/Icon/Icon.styles.ts +10 -10
- package/src/components/Icon/Icon.tsx +34 -34
- package/src/components/Icon/IconBoilerplate.tsx +42 -42
- package/src/components/Icon/complexIcons/augment.d.ts +1 -1
- package/src/components/Icon/complexIcons/avatarGreen.svg +57 -57
- package/src/components/Icon/complexIcons/icons.ts +7 -7
- package/src/components/Icon/complexIcons/index.ts +1 -1
- package/src/components/Icon/icons/icons.ts +838 -838
- package/src/components/Icon/icons/index.ts +1 -1
- package/src/components/Icon/index.ts +4 -4
- package/src/components/IncrementInput/ChangeButton.tsx +34 -34
- package/src/components/IncrementInput/IncrementInput.stories.tsx +34 -34
- package/src/components/IncrementInput/IncrementInput.styles.ts +77 -77
- package/src/components/IncrementInput/IncrementInput.tsx +95 -95
- package/src/components/IncrementInput/index.ts +2 -2
- package/src/components/Input/Input.stories.tsx +92 -92
- package/src/components/Input/Input.styles.ts +307 -307
- package/src/components/Input/Input.tsx +321 -321
- package/src/components/Input/index.ts +2 -2
- package/src/components/List/List.stories.tsx +62 -62
- package/src/components/List/List.styles.ts +52 -52
- package/src/components/List/List.tsx +82 -82
- package/src/components/List/index.ts +2 -2
- package/src/components/Modal/Modal.stories.tsx +113 -113
- package/src/components/Modal/Modal.styles.ts +308 -308
- package/src/components/Modal/Modal.tsx +210 -210
- package/src/components/Modal/index.ts +2 -2
- package/src/components/MoreMenu/MoreMenu.stories.tsx +46 -46
- package/src/components/MoreMenu/MoreMenu.styles.ts +70 -70
- package/src/components/MoreMenu/MoreMenu.tsx +102 -102
- package/src/components/MoreMenu/index.ts +2 -2
- package/src/components/MultiSelect/MultiSelect.stories.tsx +46 -46
- package/src/components/MultiSelect/MultiSelect.styles.ts +55 -55
- package/src/components/MultiSelect/MultiSelect.tsx +98 -98
- package/src/components/MultiSelect/MultiSelectInput/MultiSelectInput.styles.ts +73 -73
- package/src/components/MultiSelect/MultiSelectInput/MultiSelectInput.tsx +62 -62
- package/src/components/MultiSelect/MultiSelectInput/index.ts +1 -1
- package/src/components/MultiSelect/index.ts +3 -3
- package/src/components/MultiSelectList/MultiSelectList.styles.ts +125 -125
- package/src/components/MultiSelectList/MultiSelectList.tsx +519 -519
- package/src/components/MultiSelectList/index.ts +2 -2
- package/src/components/MultiSelectList/locales.ts +37 -37
- package/src/components/Notification/Notification.stories.tsx +51 -51
- package/src/components/Notification/Notification.styles.ts +50 -50
- package/src/components/Notification/Notification.tsx +84 -84
- package/src/components/Notification/index.ts +2 -2
- package/src/components/NumberInput/NumberInput.stories.tsx +36 -36
- package/src/components/NumberInput/NumberInput.tsx +154 -154
- package/src/components/NumberInput/helpers.ts +87 -87
- package/src/components/NumberInput/index.ts +1 -1
- package/src/components/PhoneInput/PhoneInput.stories.tsx +71 -71
- package/src/components/PhoneInput/PhoneInput.styles.ts +84 -84
- package/src/components/PhoneInput/PhoneInput.tsx +223 -223
- package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +21 -21
- package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.styles.ts +100 -100
- package/src/components/PhoneInput/PhoneInputCountryList/PhoneInputCountryList.tsx +171 -171
- package/src/components/PhoneInput/PhoneInputCountryList/index.ts +2 -2
- package/src/components/PhoneInput/index.ts +6 -6
- package/src/components/PhoneInput/phone-info.ts +2167 -2167
- package/src/components/PhoneInput/types.ts +16 -16
- package/src/components/RadioButton/RadioButton.stories.tsx +46 -46
- package/src/components/RadioButton/RadioButton.styles.ts +37 -37
- package/src/components/RadioButton/RadioButton.tsx +56 -56
- package/src/components/RadioButton/index.ts +2 -2
- package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +66 -66
- package/src/components/ScrollIntoViewIfNeeded/index.ts +1 -1
- package/src/components/SearchInput/SearchInput.stories.tsx +24 -24
- package/src/components/SearchInput/SearchInput.styles.ts +50 -50
- package/src/components/SearchInput/SearchInput.tsx +63 -63
- package/src/components/SearchInput/index.ts +2 -2
- package/src/components/Select/MultiSelect.stories.tsx +263 -263
- package/src/components/Select/Select.stories.tsx +258 -258
- package/src/components/Select/Select.styles.ts +96 -96
- package/src/components/Select/Select.tsx +630 -630
- package/src/components/Select/SelectList/SelectList.styles.ts +72 -72
- package/src/components/Select/SelectList/SelectList.tsx +165 -165
- package/src/components/Select/SelectList/index.ts +1 -1
- package/src/components/Select/SelectListItem/SelectListItem.styles.ts +14 -14
- package/src/components/Select/SelectListItem/SelectListItem.tsx +73 -73
- package/src/components/Select/constants.ts +2 -2
- package/src/components/Select/helpers.ts +29 -29
- package/src/components/Select/index.ts +4 -4
- package/src/components/Select/types.ts +1 -1
- package/src/components/SmartInput/SmartInput.stories.tsx +63 -63
- package/src/components/SmartInput/SmartInput.tsx +180 -180
- package/src/components/SmartInput/helpers.ts +85 -85
- package/src/components/SmartInput/index.ts +1 -1
- package/src/components/Switch/Switch.stories.tsx +40 -40
- package/src/components/Switch/Switch.styles.ts +75 -75
- package/src/components/Switch/Switch.tsx +89 -89
- package/src/components/Switch/index.ts +2 -2
- package/src/components/TextArea/TextArea.stories.tsx +35 -35
- package/src/components/TextArea/TextArea.styles.ts +153 -153
- package/src/components/TextArea/TextArea.tsx +178 -178
- package/src/components/TextArea/index.ts +2 -2
- package/src/components/TextWithInfo/TextWithInfo.stories.tsx +53 -53
- package/src/components/TextWithInfo/TextWithInfo.styles.ts +60 -60
- package/src/components/TextWithInfo/TextWithInfo.tsx +67 -67
- package/src/components/TextWithInfo/index.ts +2 -2
- package/src/components/TextWithTooltip/TextWithTooltip.stories.tsx +58 -58
- package/src/components/TextWithTooltip/TextWithTooltip.styles.ts +19 -19
- package/src/components/TextWithTooltip/TextWithTooltip.tsx +163 -163
- package/src/components/TextWithTooltip/index.ts +2 -2
- package/src/components/ThemedPreloader/ThemedPreloader.stories.tsx +41 -41
- package/src/components/ThemedPreloader/ThemedPreloader.styles.ts +21 -21
- package/src/components/ThemedPreloader/ThemedPreloader.tsx +56 -56
- package/src/components/ThemedPreloader/components/DefaultPreloader/DefaultPreloader.tsx +34 -34
- package/src/components/ThemedPreloader/components/DefaultPreloader/index.ts +1 -1
- package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.styles.ts +54 -54
- package/src/components/ThemedPreloader/components/DotsPreloader/DotsPreloader.tsx +18 -18
- package/src/components/ThemedPreloader/components/DotsPreloader/index.ts +2 -2
- package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.styles.ts +11 -11
- package/src/components/ThemedPreloader/components/SvgPreloader/SvgPreloader.tsx +32 -32
- package/src/components/ThemedPreloader/components/SvgPreloader/index.ts +2 -2
- package/src/components/ThemedPreloader/components/index.ts +2 -2
- package/src/components/ThemedPreloader/index.ts +2 -2
- package/src/components/Toaster/Toaster.stories.tsx +34 -34
- package/src/components/Toaster/Toaster.styles.ts +59 -59
- package/src/components/Toaster/Toaster.tsx +113 -113
- package/src/components/Toaster/index.ts +2 -2
- package/src/components/Tooltip/Tooltip.stories.tsx +21 -21
- package/src/components/Tooltip/Tooltip.styles.ts +45 -45
- package/src/components/Tooltip/Tooltip.tsx +40 -40
- package/src/components/Tooltip/index.ts +3 -3
- package/src/components/Tooltip/types.ts +1 -1
- package/src/components/index.ts +36 -36
- package/src/helpers/colors.ts +2 -2
- package/src/helpers/dateHelpers/date-helpers.ts +9 -9
- package/src/helpers/index.ts +4 -4
- package/src/helpers/phone.ts +106 -106
- package/src/helpers/popper-helpers.ts +17 -17
- package/src/helpers/snippets.tsx +5 -5
- package/src/helpers/utils.ts +261 -250
- package/src/hooks/index.ts +6 -6
- package/src/hooks/use-did-mount-effect.ts +21 -21
- package/src/hooks/use-dropdown.ts +85 -85
- package/src/hooks/use-is-mounted.ts +15 -15
- package/src/hooks/use-on-click-outside.ts +92 -92
- package/src/hooks/use-theme.ts +36 -36
- package/src/hooks/use-tweak-styles.ts +14 -14
- package/src/index.ts +6 -6
- package/src/theme.ts +155 -155
- package/src/types.ts +105 -106
- package/src/vite-env.d.ts +1 -1
- package/dist/components/DatePicker/DatePickerInput/DatePickerInput.d.ts +0 -11
- package/dist/components/DatePicker/DatePickerInput/DatePickerInput.styles.d.ts +0 -20
- package/dist/components/DatePicker/DatePickerInput/index.d.ts +0 -1
- package/src/components/DatePicker/DatePickerInput/DatePickerInput.styles.ts +0 -25
- package/src/components/DatePicker/DatePickerInput/DatePickerInput.tsx +0 -31
- package/src/components/DatePicker/DatePickerInput/index.ts +0 -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,126 @@
|
|
|
1
|
-
import { FC, ReactNode } from 'react';
|
|
2
|
-
import { IFilterIntervalProps } from './FilterInterval';
|
|
3
|
-
import { IFilterMultiSelectProps } from './FilterMultiSelect';
|
|
4
|
-
import { IFilterSelectProps } from './FilterSelect';
|
|
5
|
-
import { IFilterWithDatesProps } from './FilterWithDates';
|
|
6
|
-
import { IFilterWithPeriodProps } from './FilterWithPeriod';
|
|
7
|
-
import { IFilterLocaleKey, IPartialFilterLocale } from './locales';
|
|
8
|
-
import { IMultiSelectListValues } from '../MultiSelectList';
|
|
9
|
-
|
|
10
|
-
export const PERIODS = [
|
|
11
|
-
'THIS_MONTH',
|
|
12
|
-
'LAST_MONTH',
|
|
13
|
-
'THIS_YEAR',
|
|
14
|
-
'LAST_YEAR',
|
|
15
|
-
'CUSTOM',
|
|
16
|
-
] as const;
|
|
17
|
-
|
|
18
|
-
export type IPeriodType = (typeof PERIODS)[number];
|
|
19
|
-
|
|
20
|
-
export type IFilterMultiSelectValues<Option = string> =
|
|
21
|
-
IMultiSelectListValues<Option>;
|
|
22
|
-
|
|
23
|
-
export type IPeriodsList = Array<IPeriodType | [string, IPeriodGetter]>;
|
|
24
|
-
|
|
25
|
-
export interface IFiltersPaneSearchPayload<Value> {
|
|
26
|
-
value?: string;
|
|
27
|
-
field?: Value;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export interface IFilterValueViewProps<Value> {
|
|
31
|
-
value?: Value;
|
|
32
|
-
filter: ConfigItem<Value>;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface IDatePeriod {
|
|
36
|
-
from: Date | null;
|
|
37
|
-
to: Date | null;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export interface IPeriod extends IDatePeriod {
|
|
41
|
-
periodType: string;
|
|
42
|
-
label?: string;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export type IPeriodGetter = () => IDatePeriod;
|
|
46
|
-
|
|
47
|
-
export type IFilterWithDatesValue = IDatePeriod;
|
|
48
|
-
|
|
49
|
-
export type MultiSelectOptionType<Value> = Value | undefined extends
|
|
50
|
-
| IFilterMultiSelectValues<infer Option>
|
|
51
|
-
| undefined
|
|
52
|
-
? Option
|
|
53
|
-
: unknown;
|
|
54
|
-
|
|
55
|
-
export interface IConfigItemBasicBase<Value> {
|
|
56
|
-
name: string;
|
|
57
|
-
isInline?: boolean;
|
|
58
|
-
requiredFilledFilters?: string[];
|
|
59
|
-
localeKey?: IFilterLocaleKey;
|
|
60
|
-
locale?: IPartialFilterLocale;
|
|
61
|
-
getSelectedValueView?: (v: Value) => ReactNode;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export type IIntervalConfigItem<Value> = IConfigItemBasicBase<Value> & {
|
|
65
|
-
type: 'interval';
|
|
66
|
-
} & Omit<IFilterIntervalProps, 'value' | 'onChange' | 'labelName'>;
|
|
67
|
-
|
|
68
|
-
export interface IBooleanConfigItem<Value> extends IConfigItemBasicBase<Value> {
|
|
69
|
-
type: 'boolean';
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export type IMultiSelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
|
|
73
|
-
type: 'multiSelect';
|
|
74
|
-
} & Omit<
|
|
75
|
-
IFilterMultiSelectProps<Value, MultiSelectOptionType<Value>>,
|
|
76
|
-
'value' | 'onChange'
|
|
77
|
-
>;
|
|
78
|
-
|
|
79
|
-
export type ISelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
|
|
80
|
-
type: 'select';
|
|
81
|
-
} & Omit<IFilterSelectProps<Value>, 'value' | 'onChange'>;
|
|
82
|
-
|
|
83
|
-
// Дата без периодов
|
|
84
|
-
export type IDateRangeWithoutPeriodConfigItem<Value> =
|
|
85
|
-
IConfigItemBasicBase<Value> & {
|
|
86
|
-
type: 'dateRangeWithoutPeriod';
|
|
87
|
-
dateFormat?: string;
|
|
88
|
-
} & Omit<
|
|
89
|
-
IFilterWithDatesProps,
|
|
90
|
-
'value' | 'onChange' | 'onStartBtnSubmit' | 'onEndBtnSubmit'
|
|
91
|
-
>;
|
|
92
|
-
|
|
93
|
-
// Дата С ПЕРИОДАМИ
|
|
94
|
-
export type IDateRangeConfigItem<Value> = IConfigItemBasicBase<Value> & {
|
|
95
|
-
type: 'dateRange';
|
|
96
|
-
dateFormat?: string;
|
|
97
|
-
} & Omit<IFilterWithPeriodProps, 'value' | 'onChange' | 'setIsOpen'>;
|
|
98
|
-
|
|
99
|
-
export type CustomComponent<Value> = FC<{
|
|
100
|
-
value?: Value;
|
|
101
|
-
onChange: (v?: Value) => void;
|
|
102
|
-
onClose?: () => void;
|
|
103
|
-
filter: ICustomConfigItem<Value>;
|
|
104
|
-
localeKey?: IFilterLocaleKey;
|
|
105
|
-
locale?: IPartialFilterLocale;
|
|
106
|
-
}>;
|
|
107
|
-
|
|
108
|
-
export interface ICustomConfigItem<Value> extends IConfigItemBasicBase<Value> {
|
|
109
|
-
[key: string]: any;
|
|
110
|
-
type: 'custom';
|
|
111
|
-
component: CustomComponent<Value>;
|
|
112
|
-
valueViewType?: 'range' | 'multiple';
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export type ConfigItem<Value> =
|
|
116
|
-
| ISelectConfigItem<Value>
|
|
117
|
-
| IMultiSelectConfigItem<Value>
|
|
118
|
-
| ICustomConfigItem<Value>
|
|
119
|
-
| IDateRangeWithoutPeriodConfigItem<Value>
|
|
120
|
-
| IDateRangeConfigItem<Value>
|
|
121
|
-
| IIntervalConfigItem<Value>
|
|
122
|
-
| IBooleanConfigItem<Value>;
|
|
123
|
-
|
|
124
|
-
export type ConfigType<Values> = {
|
|
125
|
-
[K in keyof Values]: ConfigItem<Values[K]>;
|
|
126
|
-
};
|
|
1
|
+
import { FC, ReactNode } from 'react';
|
|
2
|
+
import { IFilterIntervalProps } from './FilterInterval';
|
|
3
|
+
import { IFilterMultiSelectProps } from './FilterMultiSelect';
|
|
4
|
+
import { IFilterSelectProps } from './FilterSelect';
|
|
5
|
+
import { IFilterWithDatesProps } from './FilterWithDates';
|
|
6
|
+
import { IFilterWithPeriodProps } from './FilterWithPeriod';
|
|
7
|
+
import { IFilterLocaleKey, IPartialFilterLocale } from './locales';
|
|
8
|
+
import { IMultiSelectListValues } from '../MultiSelectList';
|
|
9
|
+
|
|
10
|
+
export const PERIODS = [
|
|
11
|
+
'THIS_MONTH',
|
|
12
|
+
'LAST_MONTH',
|
|
13
|
+
'THIS_YEAR',
|
|
14
|
+
'LAST_YEAR',
|
|
15
|
+
'CUSTOM',
|
|
16
|
+
] as const;
|
|
17
|
+
|
|
18
|
+
export type IPeriodType = (typeof PERIODS)[number];
|
|
19
|
+
|
|
20
|
+
export type IFilterMultiSelectValues<Option = string> =
|
|
21
|
+
IMultiSelectListValues<Option>;
|
|
22
|
+
|
|
23
|
+
export type IPeriodsList = Array<IPeriodType | [string, IPeriodGetter]>;
|
|
24
|
+
|
|
25
|
+
export interface IFiltersPaneSearchPayload<Value> {
|
|
26
|
+
value?: string;
|
|
27
|
+
field?: Value;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface IFilterValueViewProps<Value> {
|
|
31
|
+
value?: Value;
|
|
32
|
+
filter: ConfigItem<Value>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface IDatePeriod {
|
|
36
|
+
from: Date | null;
|
|
37
|
+
to: Date | null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export interface IPeriod extends IDatePeriod {
|
|
41
|
+
periodType: string;
|
|
42
|
+
label?: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export type IPeriodGetter = () => IDatePeriod;
|
|
46
|
+
|
|
47
|
+
export type IFilterWithDatesValue = IDatePeriod;
|
|
48
|
+
|
|
49
|
+
export type MultiSelectOptionType<Value> = Value | undefined extends
|
|
50
|
+
| IFilterMultiSelectValues<infer Option>
|
|
51
|
+
| undefined
|
|
52
|
+
? Option
|
|
53
|
+
: unknown;
|
|
54
|
+
|
|
55
|
+
export interface IConfigItemBasicBase<Value> {
|
|
56
|
+
name: string;
|
|
57
|
+
isInline?: boolean;
|
|
58
|
+
requiredFilledFilters?: string[];
|
|
59
|
+
localeKey?: IFilterLocaleKey;
|
|
60
|
+
locale?: IPartialFilterLocale;
|
|
61
|
+
getSelectedValueView?: (v: Value) => ReactNode;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export type IIntervalConfigItem<Value> = IConfigItemBasicBase<Value> & {
|
|
65
|
+
type: 'interval';
|
|
66
|
+
} & Omit<IFilterIntervalProps, 'value' | 'onChange' | 'labelName'>;
|
|
67
|
+
|
|
68
|
+
export interface IBooleanConfigItem<Value> extends IConfigItemBasicBase<Value> {
|
|
69
|
+
type: 'boolean';
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export type IMultiSelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
|
|
73
|
+
type: 'multiSelect';
|
|
74
|
+
} & Omit<
|
|
75
|
+
IFilterMultiSelectProps<Value, MultiSelectOptionType<Value>>,
|
|
76
|
+
'value' | 'onChange'
|
|
77
|
+
>;
|
|
78
|
+
|
|
79
|
+
export type ISelectConfigItem<Value> = IConfigItemBasicBase<Value> & {
|
|
80
|
+
type: 'select';
|
|
81
|
+
} & Omit<IFilterSelectProps<Value>, 'value' | 'onChange'>;
|
|
82
|
+
|
|
83
|
+
// Дата без периодов
|
|
84
|
+
export type IDateRangeWithoutPeriodConfigItem<Value> =
|
|
85
|
+
IConfigItemBasicBase<Value> & {
|
|
86
|
+
type: 'dateRangeWithoutPeriod';
|
|
87
|
+
dateFormat?: string;
|
|
88
|
+
} & Omit<
|
|
89
|
+
IFilterWithDatesProps,
|
|
90
|
+
'value' | 'onChange' | 'onStartBtnSubmit' | 'onEndBtnSubmit'
|
|
91
|
+
>;
|
|
92
|
+
|
|
93
|
+
// Дата С ПЕРИОДАМИ
|
|
94
|
+
export type IDateRangeConfigItem<Value> = IConfigItemBasicBase<Value> & {
|
|
95
|
+
type: 'dateRange';
|
|
96
|
+
dateFormat?: string;
|
|
97
|
+
} & Omit<IFilterWithPeriodProps, 'value' | 'onChange' | 'setIsOpen'>;
|
|
98
|
+
|
|
99
|
+
export type CustomComponent<Value> = FC<{
|
|
100
|
+
value?: Value;
|
|
101
|
+
onChange: (v?: Value) => void;
|
|
102
|
+
onClose?: () => void;
|
|
103
|
+
filter: ICustomConfigItem<Value>;
|
|
104
|
+
localeKey?: IFilterLocaleKey;
|
|
105
|
+
locale?: IPartialFilterLocale;
|
|
106
|
+
}>;
|
|
107
|
+
|
|
108
|
+
export interface ICustomConfigItem<Value> extends IConfigItemBasicBase<Value> {
|
|
109
|
+
[key: string]: any;
|
|
110
|
+
type: 'custom';
|
|
111
|
+
component: CustomComponent<Value>;
|
|
112
|
+
valueViewType?: 'range' | 'multiple';
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export type ConfigItem<Value> =
|
|
116
|
+
| ISelectConfigItem<Value>
|
|
117
|
+
| IMultiSelectConfigItem<Value>
|
|
118
|
+
| ICustomConfigItem<Value>
|
|
119
|
+
| IDateRangeWithoutPeriodConfigItem<Value>
|
|
120
|
+
| IDateRangeConfigItem<Value>
|
|
121
|
+
| IIntervalConfigItem<Value>
|
|
122
|
+
| IBooleanConfigItem<Value>;
|
|
123
|
+
|
|
124
|
+
export type ConfigType<Values> = {
|
|
125
|
+
[K in keyof Values]: ConfigItem<Values[K]>;
|
|
126
|
+
};
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { ComponentStory } from '@storybook/react';
|
|
2
|
-
import { countries } from 'country-flag-icons';
|
|
3
|
-
import { Flag } from './Flag';
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
title: 'Flag',
|
|
7
|
-
component: Flag,
|
|
8
|
-
argTypes: {
|
|
9
|
-
countryCode: { control: 'select', options: countries },
|
|
10
|
-
},
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
const Template: ComponentStory<typeof Flag> = (args) => (
|
|
14
|
-
<div style={{ width: 60, height: 40 }}>
|
|
15
|
-
<Flag {...args} />
|
|
16
|
-
</div>
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
export const Default = Template.bind({});
|
|
20
|
-
|
|
21
|
-
Default.args = {
|
|
22
|
-
countryCode: 'ug',
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
Default.parameters = {
|
|
26
|
-
controls: {
|
|
27
|
-
exclude: ['data'],
|
|
28
|
-
},
|
|
29
|
-
};
|
|
1
|
+
import { ComponentStory } from '@storybook/react';
|
|
2
|
+
import { countries } from 'country-flag-icons';
|
|
3
|
+
import { Flag } from './Flag';
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Flag',
|
|
7
|
+
component: Flag,
|
|
8
|
+
argTypes: {
|
|
9
|
+
countryCode: { control: 'select', options: countries },
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const Template: ComponentStory<typeof Flag> = (args) => (
|
|
14
|
+
<div style={{ width: 60, height: 40 }}>
|
|
15
|
+
<Flag {...args} />
|
|
16
|
+
</div>
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export const Default = Template.bind({});
|
|
20
|
+
|
|
21
|
+
Default.args = {
|
|
22
|
+
countryCode: 'ug',
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
Default.parameters = {
|
|
26
|
+
controls: {
|
|
27
|
+
exclude: ['data'],
|
|
28
|
+
},
|
|
29
|
+
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { colors } from '../../theme';
|
|
2
|
-
import { ComponentStyles } from '../../types';
|
|
3
|
-
|
|
4
|
-
export const styles = {
|
|
5
|
-
root: {
|
|
6
|
-
// приходится хардкодить в компоненте, тк либа Flags выдает флаги с 2-3 пиксельным отступом снизу
|
|
7
|
-
// если будет нужно, то можно вынести border на уровень пропсов
|
|
8
|
-
border: [1, 'solid', colors.BORDER_MAIN],
|
|
9
|
-
borderRadius: 2,
|
|
10
|
-
},
|
|
11
|
-
|
|
12
|
-
noFlag: {
|
|
13
|
-
width: 20,
|
|
14
|
-
color: colors.FONT_MEDIUM,
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export type FlagStyles = ComponentStyles<typeof styles>;
|
|
1
|
+
import { colors } from '../../theme';
|
|
2
|
+
import { ComponentStyles } from '../../types';
|
|
3
|
+
|
|
4
|
+
export const styles = {
|
|
5
|
+
root: {
|
|
6
|
+
// приходится хардкодить в компоненте, тк либа Flags выдает флаги с 2-3 пиксельным отступом снизу
|
|
7
|
+
// если будет нужно, то можно вынести border на уровень пропсов
|
|
8
|
+
border: [1, 'solid', colors.BORDER_MAIN],
|
|
9
|
+
borderRadius: 2,
|
|
10
|
+
},
|
|
11
|
+
|
|
12
|
+
noFlag: {
|
|
13
|
+
width: 20,
|
|
14
|
+
color: colors.FONT_MEDIUM,
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export type FlagStyles = ComponentStyles<typeof styles>;
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { FC } from 'react';
|
|
2
|
-
import Flags from 'country-flag-icons/react/3x2';
|
|
3
|
-
import { hasFlag } from 'country-flag-icons';
|
|
4
|
-
import { useTheme } from '../../hooks';
|
|
5
|
-
import { Icon } from '../Icon';
|
|
6
|
-
import { ICommonProps } from '../../types';
|
|
7
|
-
|
|
8
|
-
import { FlagStyles, styles } from './Flag.styles';
|
|
9
|
-
|
|
10
|
-
export interface IFlagProps extends ICommonProps {
|
|
11
|
-
tweakStyles?: FlagStyles;
|
|
12
|
-
countryCode?: string;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export const Flag: FC<IFlagProps> = ({ countryCode = '', tweakStyles }) => {
|
|
16
|
-
const { classes } = useTheme('Flag', styles, tweakStyles);
|
|
17
|
-
const CC = countryCode.toUpperCase();
|
|
18
|
-
|
|
19
|
-
const TheFlag = hasFlag(CC)
|
|
20
|
-
? Flags[CC as keyof typeof Flags]
|
|
21
|
-
: () => (
|
|
22
|
-
<div className={classes.noFlag}>
|
|
23
|
-
<Icon type="minus" />
|
|
24
|
-
</div>
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
return <TheFlag className={classes.root} />;
|
|
28
|
-
};
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import Flags from 'country-flag-icons/react/3x2';
|
|
3
|
+
import { hasFlag } from 'country-flag-icons';
|
|
4
|
+
import { useTheme } from '../../hooks';
|
|
5
|
+
import { Icon } from '../Icon';
|
|
6
|
+
import { ICommonProps } from '../../types';
|
|
7
|
+
|
|
8
|
+
import { FlagStyles, styles } from './Flag.styles';
|
|
9
|
+
|
|
10
|
+
export interface IFlagProps extends ICommonProps {
|
|
11
|
+
tweakStyles?: FlagStyles;
|
|
12
|
+
countryCode?: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const Flag: FC<IFlagProps> = ({ countryCode = '', tweakStyles }) => {
|
|
16
|
+
const { classes } = useTheme('Flag', styles, tweakStyles);
|
|
17
|
+
const CC = countryCode.toUpperCase();
|
|
18
|
+
|
|
19
|
+
const TheFlag = hasFlag(CC)
|
|
20
|
+
? Flags[CC as keyof typeof Flags]
|
|
21
|
+
: () => (
|
|
22
|
+
<div className={classes.noFlag}>
|
|
23
|
+
<Icon type="minus" />
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
return <TheFlag className={classes.root} />;
|
|
28
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
declare module 'country-flag-icons/react/3x2';
|
|
1
|
+
declare module 'country-flag-icons/react/3x2';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './Flag';
|
|
2
|
-
export type { FlagStyles } from './Flag.styles';
|
|
1
|
+
export * from './Flag';
|
|
2
|
+
export type { FlagStyles } from './Flag.styles';
|