@true-engineering/true-react-common-ui-kit 2.7.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -201
- package/dist/components/Button/Button.d.ts +2 -1
- package/dist/components/FiltersPane/components/Filter/Filter.d.ts +1 -1
- package/dist/components/FiltersPane/components/FilterValueView/FilterValueView.d.ts +1 -1
- package/dist/components/FiltersPane/constants.d.ts +1 -1
- package/dist/components/FiltersPane/types.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/components/Icon/helpers.d.ts +1 -1
- package/dist/components/Icon/index.d.ts +1 -0
- package/dist/{helpers/snippets.d.ts → components/Icon/snippet.d.ts} +1 -1
- package/dist/components/Icon/types.d.ts +2 -1
- package/dist/components/Input/Input.d.ts +2 -1
- package/dist/components/ListItem/types.d.ts +1 -1
- package/dist/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.d.ts +1 -1
- package/dist/components/NumberInput/helpers.d.ts +1 -1
- package/dist/components/PhoneInput/index.d.ts +0 -1
- package/dist/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.d.ts +1 -1
- package/dist/components/Select/Select.d.ts +2 -1
- package/dist/components/Tooltip/Tooltip.styles.d.ts +1 -1
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/phone-info.d.ts +2 -0
- package/dist/helpers/index.d.ts +0 -1
- package/dist/helpers/phone.d.ts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/true-react-common-ui-kit.js +24569 -24569
- package/dist/true-react-common-ui-kit.js.map +1 -1
- package/dist/true-react-common-ui-kit.umd.cjs +24569 -24569
- package/dist/true-react-common-ui-kit.umd.cjs.map +1 -1
- package/dist/types.d.ts +1 -3
- package/dist/vite-env.d.ts +1 -1
- package/package.json +94 -93
- package/src/components/AccountInfo/AccountInfo.stories.tsx +32 -32
- package/src/components/AccountInfo/AccountInfo.styles.ts +55 -55
- package/src/components/AccountInfo/AccountInfo.tsx +76 -76
- package/src/components/AccountInfo/constants.ts +1 -1
- 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 +48 -48
- package/src/components/AddButton/index.ts +2 -2
- package/src/components/Button/Button.stories.tsx +56 -56
- package/src/components/Button/Button.styles.ts +196 -196
- package/src/components/Button/Button.tsx +154 -153
- package/src/components/Button/constants.ts +9 -9
- package/src/components/Button/index.ts +3 -3
- package/src/components/Button/types.ts +5 -5
- package/src/components/Checkbox/Checkbox.stories.tsx +32 -32
- package/src/components/Checkbox/Checkbox.styles.ts +62 -62
- package/src/components/Checkbox/Checkbox.tsx +105 -105
- package/src/components/Checkbox/index.ts +2 -2
- package/src/components/CloseButton/CloseButton.styles.ts +34 -34
- package/src/components/CloseButton/CloseButton.tsx +35 -35
- 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 +26 -26
- package/src/components/Colors/index.ts +2 -2
- package/src/components/CssBaseline/CssBaseline.styles.ts +15 -15
- package/src/components/CssBaseline/CssBaseline.tsx +15 -15
- package/src/components/CssBaseline/index.ts +2 -2
- package/src/components/DateInput/DateInput.stories.tsx +61 -61
- package/src/components/DateInput/DateInput.styles.ts +14 -14
- package/src/components/DateInput/DateInput.tsx +82 -82
- package/src/components/DateInput/constants.ts +2 -2
- package/src/components/DateInput/index.ts +3 -3
- package/src/components/DatePicker/DatePicker.stories.tsx +87 -87
- package/src/components/DatePicker/DatePicker.styles.ts +44 -44
- package/src/components/DatePicker/DatePicker.tsx +309 -309
- package/src/components/DatePicker/components/DatePickerHeader/DatePickerHeader.styles.ts +84 -84
- package/src/components/DatePicker/components/DatePickerHeader/DatePickerHeader.tsx +79 -79
- package/src/components/DatePicker/components/DatePickerHeader/index.ts +2 -2
- package/src/components/DatePicker/components/PopperContainer/PopperContainer.tsx +6 -6
- package/src/components/DatePicker/components/PopperContainer/index.ts +1 -1
- package/src/components/DatePicker/components/index.ts +2 -2
- package/src/components/DatePicker/constants.ts +6 -6
- package/src/components/DatePicker/helpers.ts +23 -23
- package/src/components/DatePicker/index.ts +4 -4
- package/src/components/DatePicker/types.ts +45 -45
- package/src/components/Description/Description.stories.tsx +27 -27
- package/src/components/Description/Description.styles.ts +31 -31
- package/src/components/Description/Description.tsx +59 -59
- package/src/components/Description/constants.ts +1 -1
- package/src/components/Description/index.ts +2 -2
- package/src/components/FiltersPane/FiltersPane.stories.tsx +295 -295
- package/src/components/FiltersPane/FiltersPane.styles.ts +71 -71
- package/src/components/FiltersPane/FiltersPane.tsx +150 -150
- package/src/components/FiltersPane/components/Filter/Filter.tsx +203 -203
- package/src/components/FiltersPane/components/Filter/index.ts +1 -1
- package/src/components/FiltersPane/components/FilterInterval/FilterInterval.styles.ts +64 -64
- package/src/components/FiltersPane/components/FilterInterval/FilterInterval.tsx +141 -141
- package/src/components/FiltersPane/components/FilterInterval/index.ts +2 -2
- package/src/components/FiltersPane/components/FilterMultiSelect/FilterMultiSelect.tsx +10 -10
- package/src/components/FiltersPane/components/FilterMultiSelect/index.ts +1 -1
- package/src/components/FiltersPane/components/FilterSelect/FilterSelect.styles.ts +143 -143
- package/src/components/FiltersPane/components/FilterSelect/FilterSelect.tsx +346 -346
- package/src/components/FiltersPane/components/FilterSelect/index.ts +2 -2
- package/src/components/FiltersPane/components/FilterValueView/FilterValueView.styles.tsx +15 -15
- package/src/components/FiltersPane/components/FilterValueView/FilterValueView.tsx +163 -163
- package/src/components/FiltersPane/components/FilterValueView/index.tsx +2 -2
- package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.styles.ts +60 -60
- package/src/components/FiltersPane/components/FilterWithDates/FilterWithDates.tsx +181 -181
- package/src/components/FiltersPane/components/FilterWithDates/index.ts +2 -2
- package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.styles.ts +17 -17
- package/src/components/FiltersPane/components/FilterWithPeriod/FilterWithPeriod.tsx +174 -174
- package/src/components/FiltersPane/components/FilterWithPeriod/index.ts +2 -2
- package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.styles.ts +110 -110
- package/src/components/FiltersPane/components/FilterWrapper/FilterWrapper.tsx +149 -149
- package/src/components/FiltersPane/components/FilterWrapper/index.ts +2 -2
- package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.styles.ts +109 -109
- package/src/components/FiltersPane/components/FiltersPaneSearch/FiltersPaneSearch.tsx +155 -155
- package/src/components/FiltersPane/components/FiltersPaneSearch/index.ts +2 -2
- package/src/components/FiltersPane/components/index.ts +9 -9
- package/src/components/FiltersPane/constants.ts +137 -137
- package/src/components/FiltersPane/helpers.ts +26 -26
- package/src/components/FiltersPane/index.ts +5 -5
- package/src/components/FiltersPane/types.ts +156 -156
- package/src/components/Flag/Flag.stories.tsx +29 -29
- package/src/components/Flag/Flag.styles.ts +18 -18
- package/src/components/Flag/Flag.tsx +27 -27
- package/src/components/Flag/augment.d.ts +1 -1
- package/src/components/Flag/index.ts +2 -2
- package/src/components/FlexibleTable/FlexibleTable.stories.tsx +338 -338
- package/src/components/FlexibleTable/FlexibleTable.styles.ts +131 -131
- package/src/components/FlexibleTable/FlexibleTable.tsx +205 -205
- package/src/components/FlexibleTable/components/TableRow/TableRow.tsx +152 -152
- package/src/components/FlexibleTable/components/TableRow/index.ts +1 -1
- package/src/components/FlexibleTable/components/TableValue/TableValue.tsx +74 -74
- package/src/components/FlexibleTable/components/TableValue/index.ts +1 -1
- package/src/components/FlexibleTable/components/index.ts +2 -2
- package/src/components/FlexibleTable/constants.ts +1 -1
- package/src/components/FlexibleTable/index.ts +3 -3
- package/src/components/FlexibleTable/types.ts +52 -52
- package/src/components/Icon/Icon.stories.tsx +86 -86
- package/src/components/Icon/Icon.styles.ts +10 -10
- package/src/components/Icon/Icon.tsx +27 -27
- 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 +5 -5
- package/src/components/Icon/complexIcons/index.ts +1 -1
- package/src/components/Icon/components/ComplexIconBoilerplate/ComplexIconBoilerplate.tsx +16 -16
- package/src/components/Icon/components/ComplexIconBoilerplate/index.ts +1 -1
- package/src/components/Icon/components/IconBolerplate/IconBoilerplate.tsx +43 -43
- package/src/components/Icon/components/IconBolerplate/index.ts +1 -1
- package/src/components/Icon/components/index.ts +2 -2
- package/src/components/Icon/{helpers.ts → helpers.tsx} +9 -9
- package/src/components/Icon/icons-list.ts +856 -856
- package/src/components/Icon/index.ts +5 -4
- package/src/{helpers/snippets.tsx → components/Icon/snippet.tsx} +6 -6
- package/src/components/Icon/types.ts +18 -16
- package/src/components/IncrementInput/IncrementInput.stories.tsx +31 -31
- package/src/components/IncrementInput/IncrementInput.styles.ts +77 -77
- package/src/components/IncrementInput/IncrementInput.tsx +80 -80
- package/src/components/IncrementInput/components/ChangeButton/ChangeButton.tsx +33 -33
- package/src/components/IncrementInput/components/ChangeButton/index.ts +1 -1
- package/src/components/IncrementInput/components/index.ts +1 -1
- package/src/components/IncrementInput/index.ts +2 -2
- package/src/components/Input/Input.stories.tsx +86 -86
- package/src/components/Input/Input.styles.ts +307 -307
- package/src/components/Input/Input.tsx +308 -308
- package/src/components/Input/constants.ts +1 -1
- package/src/components/Input/index.ts +3 -3
- package/src/components/Input/types.ts +6 -6
- package/src/components/List/List.stories.tsx +63 -63
- package/src/components/List/List.styles.ts +14 -14
- package/src/components/List/List.tsx +36 -36
- package/src/components/List/index.ts +2 -2
- package/src/components/ListItem/ListItem.stories.tsx +67 -67
- package/src/components/ListItem/ListItem.styles.ts +48 -48
- package/src/components/ListItem/ListItem.tsx +45 -44
- package/src/components/ListItem/constants.ts +5 -5
- package/src/components/ListItem/index.ts +3 -3
- package/src/components/ListItem/types.ts +19 -19
- package/src/components/Modal/Modal.stories.tsx +105 -105
- package/src/components/Modal/Modal.styles.ts +305 -305
- package/src/components/Modal/Modal.tsx +184 -184
- package/src/components/Modal/index.ts +3 -3
- package/src/components/Modal/types.ts +17 -17
- package/src/components/MoreMenu/MoreMenu.stories.tsx +46 -46
- package/src/components/MoreMenu/MoreMenu.styles.ts +70 -70
- package/src/components/MoreMenu/MoreMenu.tsx +90 -90
- 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 +92 -92
- package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.styles.ts +73 -73
- package/src/components/MultiSelect/components/MultiSelectInput/MultiSelectInput.tsx +52 -51
- package/src/components/MultiSelect/components/MultiSelectInput/index.ts +2 -2
- package/src/components/MultiSelect/components/index.ts +1 -1
- package/src/components/MultiSelect/index.ts +4 -4
- package/src/components/MultiSelect/types.ts +1 -1
- package/src/components/MultiSelectList/MultiSelectList.styles.ts +124 -124
- package/src/components/MultiSelectList/MultiSelectList.tsx +441 -441
- package/src/components/MultiSelectList/constants.ts +21 -21
- package/src/components/MultiSelectList/helpers.ts +11 -11
- package/src/components/MultiSelectList/index.ts +3 -3
- package/src/components/MultiSelectList/types.ts +15 -15
- package/src/components/Notification/Notification.stories.tsx +46 -46
- package/src/components/Notification/Notification.styles.ts +50 -50
- package/src/components/Notification/Notification.tsx +78 -78
- package/src/components/Notification/index.ts +3 -3
- package/src/components/Notification/types.ts +1 -1
- package/src/components/NumberInput/NumberInput.stories.tsx +35 -35
- package/src/components/NumberInput/NumberInput.tsx +133 -133
- package/src/components/NumberInput/helpers.ts +86 -86
- package/src/components/NumberInput/index.ts +1 -1
- package/src/components/PhoneInput/PhoneInput.stories.tsx +70 -70
- package/src/components/PhoneInput/PhoneInput.styles.ts +84 -84
- package/src/components/PhoneInput/PhoneInput.tsx +193 -193
- package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.stories.tsx +21 -21
- package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.styles.ts +100 -100
- package/src/components/PhoneInput/components/PhoneInputCountryList/PhoneInputCountryList.tsx +145 -145
- package/src/components/PhoneInput/components/PhoneInputCountryList/index.ts +2 -2
- package/src/components/PhoneInput/components/index.ts +1 -1
- package/src/components/PhoneInput/constants.ts +3 -3
- package/src/components/PhoneInput/index.ts +4 -5
- 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 +55 -55
- package/src/components/RadioButton/index.ts +2 -2
- package/src/components/ScrollIntoViewIfNeeded/ScrollIntoViewIfNeeded.ts +54 -54
- package/src/components/ScrollIntoViewIfNeeded/constants.ts +12 -12
- package/src/components/ScrollIntoViewIfNeeded/index.ts +1 -1
- package/src/components/SearchInput/SearchInput.stories.tsx +23 -23
- package/src/components/SearchInput/SearchInput.styles.ts +50 -50
- package/src/components/SearchInput/SearchInput.tsx +51 -51
- package/src/components/SearchInput/index.ts +2 -2
- package/src/components/Select/MultiSelect.stories.tsx +240 -240
- package/src/components/Select/Select.stories.tsx +235 -235
- package/src/components/Select/Select.styles.ts +96 -96
- package/src/components/Select/Select.tsx +575 -574
- package/src/components/Select/components/SelectList/SelectList.styles.ts +72 -72
- package/src/components/Select/components/SelectList/SelectList.tsx +158 -158
- package/src/components/Select/components/SelectList/index.ts +2 -2
- package/src/components/Select/components/SelectListItem/SelectListItem.styles.ts +14 -14
- package/src/components/Select/components/SelectListItem/SelectListItem.tsx +68 -68
- package/src/components/Select/components/SelectListItem/index.ts +1 -1
- package/src/components/Select/components/index.ts +2 -2
- package/src/components/Select/constants.ts +2 -2
- package/src/components/Select/helpers.ts +26 -26
- package/src/components/Select/index.ts +4 -4
- package/src/components/Select/types.ts +1 -1
- package/src/components/SmartInput/SmartInput.stories.tsx +51 -51
- package/src/components/SmartInput/SmartInput.tsx +124 -124
- package/src/components/SmartInput/constants.ts +84 -84
- package/src/components/SmartInput/helpers.ts +13 -13
- package/src/components/SmartInput/index.ts +2 -2
- package/src/components/SmartInput/types.ts +11 -11
- package/src/components/Switch/Switch.stories.tsx +40 -40
- package/src/components/Switch/Switch.styles.ts +75 -75
- package/src/components/Switch/Switch.tsx +79 -79
- package/src/components/Switch/index.ts +3 -3
- package/src/components/Switch/types.ts +4 -4
- package/src/components/TextArea/TextArea.stories.tsx +35 -35
- package/src/components/TextArea/TextArea.styles.ts +153 -153
- package/src/components/TextArea/TextArea.tsx +174 -174
- 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 +60 -60
- 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 +143 -143
- 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 +47 -47
- package/src/components/ThemedPreloader/components/DefaultPreloader/DefaultPreloader.tsx +29 -29
- 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 +25 -25
- package/src/components/ThemedPreloader/components/SvgPreloader/index.ts +2 -2
- package/src/components/ThemedPreloader/components/index.ts +3 -3
- package/src/components/ThemedPreloader/constants.ts +1 -1
- package/src/components/ThemedPreloader/index.ts +4 -4
- package/src/components/ThemedPreloader/types.ts +3 -3
- package/src/components/Toaster/Toaster.stories.tsx +30 -30
- package/src/components/Toaster/Toaster.styles.ts +59 -59
- package/src/components/Toaster/Toaster.tsx +108 -108
- package/src/components/Toaster/constants.ts +1 -1
- package/src/components/Toaster/index.ts +3 -3
- package/src/components/Toaster/types.ts +1 -1
- package/src/components/Tooltip/Tooltip.stories.tsx +19 -19
- package/src/components/Tooltip/Tooltip.styles.ts +45 -45
- package/src/components/Tooltip/Tooltip.tsx +35 -35
- package/src/components/Tooltip/index.ts +3 -3
- package/src/components/Tooltip/types.ts +1 -1
- package/src/components/index.ts +37 -37
- package/src/constants/index.ts +1 -0
- package/src/{components/PhoneInput → constants}/phone-info.ts +2147 -2147
- package/src/helpers/deprecated.ts +23 -23
- package/src/helpers/index.ts +4 -5
- package/src/helpers/misc.ts +158 -158
- package/src/helpers/phone.ts +88 -87
- package/src/helpers/popper-helpers.ts +17 -17
- package/src/hooks/index.ts +6 -6
- package/src/hooks/use-did-mount-effect.ts +18 -18
- package/src/hooks/use-dropdown.ts +82 -82
- package/src/hooks/use-is-mounted.ts +15 -15
- package/src/hooks/use-on-click-outside.ts +77 -77
- package/src/hooks/use-theme.ts +32 -32
- package/src/hooks/use-tweak-styles.ts +13 -13
- package/src/index.ts +6 -6
- package/src/theme.ts +149 -149
- package/src/types.ts +100 -109
- package/src/vite-env.d.ts +1 -1
- package/dist/components/PhoneInput/phone-info.d.ts +0 -2
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
addClickHandler as addClickHandlerHelper,
|
|
3
|
-
addDataTestId as addDataTestIdHelper,
|
|
4
|
-
createFilter as createFilterHelper,
|
|
5
|
-
getSelectKeyHandler as getSelectKeyHandlerHelper,
|
|
6
|
-
getTestId as getTestIdHelper,
|
|
7
|
-
isEmpty as isEmptyHelper,
|
|
8
|
-
isNotEmpty as isNotEmptyHelper,
|
|
9
|
-
isNumberInteger,
|
|
10
|
-
isString,
|
|
11
|
-
isStringNotEmpty as isStringNotEmptyHelper,
|
|
12
|
-
} from '@true-engineering/true-react-platform-helpers';
|
|
13
|
-
|
|
14
|
-
export const isInt = isNumberInteger;
|
|
15
|
-
export const addClickHandler = addClickHandlerHelper;
|
|
16
|
-
export const addDataTestId = addDataTestIdHelper;
|
|
17
|
-
export const createFilter = createFilterHelper;
|
|
18
|
-
export const getSelectKeyHandler = getSelectKeyHandlerHelper;
|
|
19
|
-
export const getTestId = getTestIdHelper;
|
|
20
|
-
export const isStringNotEmpty = isStringNotEmptyHelper;
|
|
21
|
-
export const isEmpty = isEmptyHelper;
|
|
22
|
-
export const isNotEmpty = <T>(val: T | null | undefined): val is T =>
|
|
23
|
-
(isString(val) && isStringNotEmptyHelper(val)) || isNotEmptyHelper(val);
|
|
1
|
+
import {
|
|
2
|
+
addClickHandler as addClickHandlerHelper,
|
|
3
|
+
addDataTestId as addDataTestIdHelper,
|
|
4
|
+
createFilter as createFilterHelper,
|
|
5
|
+
getSelectKeyHandler as getSelectKeyHandlerHelper,
|
|
6
|
+
getTestId as getTestIdHelper,
|
|
7
|
+
isEmpty as isEmptyHelper,
|
|
8
|
+
isNotEmpty as isNotEmptyHelper,
|
|
9
|
+
isNumberInteger,
|
|
10
|
+
isString,
|
|
11
|
+
isStringNotEmpty as isStringNotEmptyHelper,
|
|
12
|
+
} from '@true-engineering/true-react-platform-helpers';
|
|
13
|
+
|
|
14
|
+
export const isInt = isNumberInteger;
|
|
15
|
+
export const addClickHandler = addClickHandlerHelper;
|
|
16
|
+
export const addDataTestId = addDataTestIdHelper;
|
|
17
|
+
export const createFilter = createFilterHelper;
|
|
18
|
+
export const getSelectKeyHandler = getSelectKeyHandlerHelper;
|
|
19
|
+
export const getTestId = getTestIdHelper;
|
|
20
|
+
export const isStringNotEmpty = isStringNotEmptyHelper;
|
|
21
|
+
export const isEmpty = isEmptyHelper;
|
|
22
|
+
export const isNotEmpty = <T>(val: T | null | undefined): val is T =>
|
|
23
|
+
(isString(val) && isStringNotEmptyHelper(val)) || isNotEmptyHelper(val);
|
package/src/helpers/index.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export * from './popper-helpers';
|
|
2
|
-
export * from './phone';
|
|
3
|
-
export * from './misc';
|
|
4
|
-
export * from './deprecated';
|
|
5
|
-
export * from './snippets';
|
|
1
|
+
export * from './popper-helpers';
|
|
2
|
+
export * from './phone';
|
|
3
|
+
export * from './misc';
|
|
4
|
+
export * from './deprecated';
|
package/src/helpers/misc.ts
CHANGED
|
@@ -1,158 +1,158 @@
|
|
|
1
|
-
import hexToRgba from 'hex-to-rgba';
|
|
2
|
-
import {
|
|
3
|
-
isNotEmpty,
|
|
4
|
-
isString,
|
|
5
|
-
isStringNotEmpty,
|
|
6
|
-
} from '@true-engineering/true-react-platform-helpers';
|
|
7
|
-
import { IDataAttributes } from '../types';
|
|
8
|
-
|
|
9
|
-
export const rgba = hexToRgba;
|
|
10
|
-
|
|
11
|
-
export const transformToKebab = (string: string): string => {
|
|
12
|
-
let result = '';
|
|
13
|
-
string.split('').forEach((char) => {
|
|
14
|
-
if (char.toLowerCase() === char) {
|
|
15
|
-
result += char;
|
|
16
|
-
} else {
|
|
17
|
-
result += `-${char.toLowerCase()}`;
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
return result;
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export const hasExactParent = (element: Element, parent: Element): boolean => {
|
|
25
|
-
if (element === parent) {
|
|
26
|
-
return true; // Found the exact parent
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const parentNode = getParentNode(element);
|
|
30
|
-
|
|
31
|
-
if (parentNode === element) {
|
|
32
|
-
return false; // Reached the top-level HTML element or Shadow DOM host
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return hasExactParent(parentNode, parent);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export const getParentNode = (element: Element | ShadowRoot | Document): Element =>
|
|
39
|
-
element.nodeName === 'HTML' || element === document
|
|
40
|
-
? (element as Element)
|
|
41
|
-
: (element.parentNode as Element) ?? (element as ShadowRoot).host;
|
|
42
|
-
|
|
43
|
-
export const getStyleComputedProperty = (element: Element): Partial<CSSStyleDeclaration> =>
|
|
44
|
-
element.nodeType !== 1 ? {} : getComputedStyle(element, null);
|
|
45
|
-
|
|
46
|
-
export const getScrollParent = (element: Element | Document): Element => {
|
|
47
|
-
if (!element) {
|
|
48
|
-
return document.body;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
switch (element.nodeName) {
|
|
52
|
-
case 'HTML':
|
|
53
|
-
case 'BODY':
|
|
54
|
-
return (element as Element).ownerDocument.body;
|
|
55
|
-
case '#document':
|
|
56
|
-
return (element as Document).body;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const { overflow, overflowX, overflowY } = getStyleComputedProperty(element as Element) ?? {};
|
|
60
|
-
if (/(auto|scroll|overlay)/.test((overflow ?? '') + (overflowY ?? '') + (overflowX ?? ''))) {
|
|
61
|
-
return element as Element;
|
|
62
|
-
}
|
|
63
|
-
return getScrollParent(getParentNode(element as Element));
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
export const isElementOffScreen = (element: HTMLElement, input?: HTMLElement): boolean => {
|
|
67
|
-
const el = element;
|
|
68
|
-
const scrollParent = getScrollParent(element);
|
|
69
|
-
|
|
70
|
-
const { scrollHeight: scrollHeightWithElement } = scrollParent;
|
|
71
|
-
el.hidden = true;
|
|
72
|
-
const { scrollHeight: scrollHeightWithoutElement } = scrollParent;
|
|
73
|
-
el.hidden = false;
|
|
74
|
-
|
|
75
|
-
const isOffscreen = scrollHeightWithElement !== scrollHeightWithoutElement;
|
|
76
|
-
|
|
77
|
-
if (isOffscreen && input !== undefined) {
|
|
78
|
-
const elRect = el.getBoundingClientRect();
|
|
79
|
-
const scrollParentRect = scrollParent.getBoundingClientRect();
|
|
80
|
-
const topOffset = elRect.top - scrollParentRect.top;
|
|
81
|
-
if (input.clientHeight + el.clientHeight > topOffset) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return isOffscreen;
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
export const getNumberInRange = (value: number, min = -Infinity, max = Infinity): number =>
|
|
90
|
-
Math.min(max, Math.max(min, value));
|
|
91
|
-
|
|
92
|
-
const DEFAULT_THOUSANDS_SEPARATOR = '\u2009';
|
|
93
|
-
|
|
94
|
-
export const formatStringNumber = (
|
|
95
|
-
val?: string,
|
|
96
|
-
separator = DEFAULT_THOUSANDS_SEPARATOR,
|
|
97
|
-
): string => {
|
|
98
|
-
if (val === undefined) {
|
|
99
|
-
return '';
|
|
100
|
-
}
|
|
101
|
-
const parts = val.split('.');
|
|
102
|
-
|
|
103
|
-
parts[0] = parts[0]
|
|
104
|
-
// убрать лидирующие нули
|
|
105
|
-
.replace(/^0+(?=\d)/, '')
|
|
106
|
-
// проставить сепараторы тысяч
|
|
107
|
-
.replace(/\B(?=(\d{3})+(?!\d))/g, separator);
|
|
108
|
-
return (parts[1] ?? '').length > 0 ? parts.join('.') : parts[0];
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
export const formatNumber = (val?: number, separator = DEFAULT_THOUSANDS_SEPARATOR): string => {
|
|
112
|
-
if (val === undefined || isNaN(val)) {
|
|
113
|
-
return '';
|
|
114
|
-
}
|
|
115
|
-
return formatStringNumber(String(val), separator);
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
export const removeStringFormat = (val?: string): string =>
|
|
119
|
-
(val ?? '').replace(',', '.').replace(/\s/g, '');
|
|
120
|
-
|
|
121
|
-
export const stringToNumber = (val?: string): number | undefined => {
|
|
122
|
-
const trimmed = removeStringFormat(val);
|
|
123
|
-
if (trimmed === '') {
|
|
124
|
-
return undefined;
|
|
125
|
-
}
|
|
126
|
-
const num = Number(trimmed);
|
|
127
|
-
return isNaN(num) ? undefined : num;
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
export const setCaretPosition = (elem: HTMLInputElement, caretPos: number | null): void => {
|
|
131
|
-
if (caretPos === null || elem === null) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
if (elem.selectionStart) {
|
|
135
|
-
elem.focus();
|
|
136
|
-
elem.setSelectionRange(caretPos, caretPos);
|
|
137
|
-
} else {
|
|
138
|
-
elem.focus();
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
export const isSpaceChar = (char?: string): boolean =>
|
|
143
|
-
char !== undefined && char.match(/\s/) !== null;
|
|
144
|
-
|
|
145
|
-
export const getNumberLength = (n?: number): number =>
|
|
146
|
-
n === undefined || isNaN(n) ? 0 : n.toString().length;
|
|
147
|
-
|
|
148
|
-
export const trimStringToMaxLength = (val: string, maxLength: number) =>
|
|
149
|
-
val.length > maxLength ? val.slice(0, maxLength) : val;
|
|
150
|
-
|
|
151
|
-
export const addDataAttributes = (data: IDataAttributes = {}): IDataAttributes =>
|
|
152
|
-
Object.fromEntries(
|
|
153
|
-
Object.entries(data).map(([key, value]) =>
|
|
154
|
-
(isString(value) && isStringNotEmpty(value)) || isNotEmpty(value)
|
|
155
|
-
? [`data-${transformToKebab(key)}`, value]
|
|
156
|
-
: [],
|
|
157
|
-
),
|
|
158
|
-
);
|
|
1
|
+
import hexToRgba from 'hex-to-rgba';
|
|
2
|
+
import {
|
|
3
|
+
isNotEmpty,
|
|
4
|
+
isString,
|
|
5
|
+
isStringNotEmpty,
|
|
6
|
+
} from '@true-engineering/true-react-platform-helpers';
|
|
7
|
+
import { IDataAttributes } from '../types';
|
|
8
|
+
|
|
9
|
+
export const rgba = hexToRgba;
|
|
10
|
+
|
|
11
|
+
export const transformToKebab = (string: string): string => {
|
|
12
|
+
let result = '';
|
|
13
|
+
string.split('').forEach((char) => {
|
|
14
|
+
if (char.toLowerCase() === char) {
|
|
15
|
+
result += char;
|
|
16
|
+
} else {
|
|
17
|
+
result += `-${char.toLowerCase()}`;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
return result;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const hasExactParent = (element: Element, parent: Element): boolean => {
|
|
25
|
+
if (element === parent) {
|
|
26
|
+
return true; // Found the exact parent
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const parentNode = getParentNode(element);
|
|
30
|
+
|
|
31
|
+
if (parentNode === element) {
|
|
32
|
+
return false; // Reached the top-level HTML element or Shadow DOM host
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return hasExactParent(parentNode, parent);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const getParentNode = (element: Element | ShadowRoot | Document): Element =>
|
|
39
|
+
element.nodeName === 'HTML' || element === document
|
|
40
|
+
? (element as Element)
|
|
41
|
+
: (element.parentNode as Element) ?? (element as ShadowRoot).host;
|
|
42
|
+
|
|
43
|
+
export const getStyleComputedProperty = (element: Element): Partial<CSSStyleDeclaration> =>
|
|
44
|
+
element.nodeType !== 1 ? {} : getComputedStyle(element, null);
|
|
45
|
+
|
|
46
|
+
export const getScrollParent = (element: Element | Document): Element => {
|
|
47
|
+
if (!element) {
|
|
48
|
+
return document.body;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
switch (element.nodeName) {
|
|
52
|
+
case 'HTML':
|
|
53
|
+
case 'BODY':
|
|
54
|
+
return (element as Element).ownerDocument.body;
|
|
55
|
+
case '#document':
|
|
56
|
+
return (element as Document).body;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const { overflow, overflowX, overflowY } = getStyleComputedProperty(element as Element) ?? {};
|
|
60
|
+
if (/(auto|scroll|overlay)/.test((overflow ?? '') + (overflowY ?? '') + (overflowX ?? ''))) {
|
|
61
|
+
return element as Element;
|
|
62
|
+
}
|
|
63
|
+
return getScrollParent(getParentNode(element as Element));
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export const isElementOffScreen = (element: HTMLElement, input?: HTMLElement): boolean => {
|
|
67
|
+
const el = element;
|
|
68
|
+
const scrollParent = getScrollParent(element);
|
|
69
|
+
|
|
70
|
+
const { scrollHeight: scrollHeightWithElement } = scrollParent;
|
|
71
|
+
el.hidden = true;
|
|
72
|
+
const { scrollHeight: scrollHeightWithoutElement } = scrollParent;
|
|
73
|
+
el.hidden = false;
|
|
74
|
+
|
|
75
|
+
const isOffscreen = scrollHeightWithElement !== scrollHeightWithoutElement;
|
|
76
|
+
|
|
77
|
+
if (isOffscreen && input !== undefined) {
|
|
78
|
+
const elRect = el.getBoundingClientRect();
|
|
79
|
+
const scrollParentRect = scrollParent.getBoundingClientRect();
|
|
80
|
+
const topOffset = elRect.top - scrollParentRect.top;
|
|
81
|
+
if (input.clientHeight + el.clientHeight > topOffset) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return isOffscreen;
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
export const getNumberInRange = (value: number, min = -Infinity, max = Infinity): number =>
|
|
90
|
+
Math.min(max, Math.max(min, value));
|
|
91
|
+
|
|
92
|
+
const DEFAULT_THOUSANDS_SEPARATOR = '\u2009';
|
|
93
|
+
|
|
94
|
+
export const formatStringNumber = (
|
|
95
|
+
val?: string,
|
|
96
|
+
separator = DEFAULT_THOUSANDS_SEPARATOR,
|
|
97
|
+
): string => {
|
|
98
|
+
if (val === undefined) {
|
|
99
|
+
return '';
|
|
100
|
+
}
|
|
101
|
+
const parts = val.split('.');
|
|
102
|
+
|
|
103
|
+
parts[0] = parts[0]
|
|
104
|
+
// убрать лидирующие нули
|
|
105
|
+
.replace(/^0+(?=\d)/, '')
|
|
106
|
+
// проставить сепараторы тысяч
|
|
107
|
+
.replace(/\B(?=(\d{3})+(?!\d))/g, separator);
|
|
108
|
+
return (parts[1] ?? '').length > 0 ? parts.join('.') : parts[0];
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
export const formatNumber = (val?: number, separator = DEFAULT_THOUSANDS_SEPARATOR): string => {
|
|
112
|
+
if (val === undefined || isNaN(val)) {
|
|
113
|
+
return '';
|
|
114
|
+
}
|
|
115
|
+
return formatStringNumber(String(val), separator);
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
export const removeStringFormat = (val?: string): string =>
|
|
119
|
+
(val ?? '').replace(',', '.').replace(/\s/g, '');
|
|
120
|
+
|
|
121
|
+
export const stringToNumber = (val?: string): number | undefined => {
|
|
122
|
+
const trimmed = removeStringFormat(val);
|
|
123
|
+
if (trimmed === '') {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
const num = Number(trimmed);
|
|
127
|
+
return isNaN(num) ? undefined : num;
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
export const setCaretPosition = (elem: HTMLInputElement, caretPos: number | null): void => {
|
|
131
|
+
if (caretPos === null || elem === null) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (elem.selectionStart) {
|
|
135
|
+
elem.focus();
|
|
136
|
+
elem.setSelectionRange(caretPos, caretPos);
|
|
137
|
+
} else {
|
|
138
|
+
elem.focus();
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export const isSpaceChar = (char?: string): boolean =>
|
|
143
|
+
char !== undefined && char.match(/\s/) !== null;
|
|
144
|
+
|
|
145
|
+
export const getNumberLength = (n?: number): number =>
|
|
146
|
+
n === undefined || isNaN(n) ? 0 : n.toString().length;
|
|
147
|
+
|
|
148
|
+
export const trimStringToMaxLength = (val: string, maxLength: number) =>
|
|
149
|
+
val.length > maxLength ? val.slice(0, maxLength) : val;
|
|
150
|
+
|
|
151
|
+
export const addDataAttributes = (data: IDataAttributes = {}): IDataAttributes =>
|
|
152
|
+
Object.fromEntries(
|
|
153
|
+
Object.entries(data).map(([key, value]) =>
|
|
154
|
+
(isString(value) && isStringNotEmpty(value)) || isNotEmpty(value)
|
|
155
|
+
? [`data-${transformToKebab(key)}`, value]
|
|
156
|
+
: [],
|
|
157
|
+
),
|
|
158
|
+
);
|
package/src/helpers/phone.ts
CHANGED
|
@@ -1,87 +1,88 @@
|
|
|
1
|
-
import { isNotEmpty, isEmpty } from '@true-engineering/true-react-platform-helpers';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
country.
|
|
33
|
-
|
|
34
|
-
...country.
|
|
35
|
-
country.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
//
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
1
|
+
import { isNotEmpty, isEmpty } from '@true-engineering/true-react-platform-helpers';
|
|
2
|
+
import type { IPhoneInfo, IPhoneValue } from '../components';
|
|
3
|
+
import { phoneInfo } from '../constants';
|
|
4
|
+
|
|
5
|
+
export const findCountryByCode = (
|
|
6
|
+
countryCode?: string,
|
|
7
|
+
countriesList = phoneInfo,
|
|
8
|
+
): IPhoneInfo | undefined =>
|
|
9
|
+
isNotEmpty(countryCode)
|
|
10
|
+
? countriesList.find((info) => info.countryCode === countryCode)
|
|
11
|
+
: undefined;
|
|
12
|
+
|
|
13
|
+
export const findCountryIndexByCode = (countryCode?: string, countriesList = phoneInfo): number =>
|
|
14
|
+
isNotEmpty(countryCode)
|
|
15
|
+
? countriesList.findIndex((info) => info.countryCode === countryCode)
|
|
16
|
+
: -1;
|
|
17
|
+
|
|
18
|
+
export const getCountryTextByLocale = (country: IPhoneInfo, locale: string): string =>
|
|
19
|
+
locale.toLowerCase() === 'ru' ? country.countryRu : country.countryEn;
|
|
20
|
+
|
|
21
|
+
export const sortCountriesByLocale = (countriesList: IPhoneInfo[], locale: string) =>
|
|
22
|
+
countriesList.sort((countryA, countryB) =>
|
|
23
|
+
getCountryTextByLocale(countryA, locale).localeCompare(
|
|
24
|
+
getCountryTextByLocale(countryB, locale),
|
|
25
|
+
),
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
export const checkSearchStringInCountry = (country: IPhoneInfo, searchString: string): boolean => {
|
|
29
|
+
const checkValue = searchString.toLowerCase().trim().replace('+', '');
|
|
30
|
+
|
|
31
|
+
const possibleValues = [
|
|
32
|
+
country.countryRu,
|
|
33
|
+
country.countryEn,
|
|
34
|
+
...country.countryRu.split(' '),
|
|
35
|
+
...country.countryEn.split(' '),
|
|
36
|
+
country.dialCode,
|
|
37
|
+
].map((part) => part.toLowerCase());
|
|
38
|
+
|
|
39
|
+
return possibleValues.some((v) => v.startsWith(checkValue));
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export const getFullPhone = (phone?: IPhoneValue): string =>
|
|
43
|
+
(phone?.dialCode ?? '') + (phone?.phoneNumber ?? '');
|
|
44
|
+
|
|
45
|
+
export const getCountryCodeFromPhone = (phoneWithCode: string): string | undefined => {
|
|
46
|
+
// попробуем найти уникальный код страны fullCode (dialCode + arealCode)
|
|
47
|
+
let countryCode = phoneInfo.find((info) =>
|
|
48
|
+
info.fullCodes.some((code) => phoneWithCode.startsWith(code)),
|
|
49
|
+
)?.countryCode;
|
|
50
|
+
|
|
51
|
+
if (isEmpty(countryCode) && isNotEmpty(phoneWithCode)) {
|
|
52
|
+
// если не нашли уникальный fullCode (dialCode + arealCode),
|
|
53
|
+
// то пробуем найти dialCode и выбираем с наименьшим Priority
|
|
54
|
+
countryCode = phoneInfo
|
|
55
|
+
.filter((info) => phoneWithCode.startsWith(info.dialCode))
|
|
56
|
+
.sort(
|
|
57
|
+
(infoA, infoB) => (infoA.dialCodePriority ?? 1000) - (infoB.dialCodePriority ?? 1000),
|
|
58
|
+
)[0]?.countryCode;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return countryCode;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
export const getPhoneObjFromString = (fullPhone: string, countryCode?: string): IPhoneValue => {
|
|
65
|
+
const newCountryCode = countryCode ?? getCountryCodeFromPhone(fullPhone);
|
|
66
|
+
const dialCode = findCountryByCode(newCountryCode)?.dialCode;
|
|
67
|
+
const phoneNumber = fullPhone.slice(dialCode?.length);
|
|
68
|
+
|
|
69
|
+
return { dialCode, phoneNumber, countryCode: newCountryCode };
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const DEFAULT_PHONE_MASK = '+ 9 999 999 999 999 99';
|
|
73
|
+
|
|
74
|
+
export const getPhoneMask = (countryCode?: string): string => {
|
|
75
|
+
let mask = DEFAULT_PHONE_MASK;
|
|
76
|
+
if (isNotEmpty(countryCode)) {
|
|
77
|
+
const countrySettings = findCountryByCode(countryCode);
|
|
78
|
+
|
|
79
|
+
if (countrySettings !== undefined) {
|
|
80
|
+
const dialCodeLength = countrySettings.dialCode.length;
|
|
81
|
+
const areaAndPhoneMask =
|
|
82
|
+
countrySettings.phoneMask ?? mask.substring(2, mask.length - dialCodeLength);
|
|
83
|
+
mask = `+ ${'9'.repeat(dialCodeLength)} ${areaAndPhoneMask}`;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return mask;
|
|
88
|
+
};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { Modifier } from 'react-overlays/usePopper';
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
-
export const minWidthModifier: Partial<Modifier<any, any>> = {
|
|
5
|
-
name: 'minWidth',
|
|
6
|
-
enabled: true,
|
|
7
|
-
phase: 'beforeWrite',
|
|
8
|
-
requires: ['computeStyles'],
|
|
9
|
-
fn: ({ state }) => {
|
|
10
|
-
state.styles.popper.minWidth = `${state.rects.reference.width}px`;
|
|
11
|
-
},
|
|
12
|
-
effect: ({ state }) => {
|
|
13
|
-
state.elements.popper.style.minWidth = `${
|
|
14
|
-
(state.elements.reference as HTMLElement).offsetWidth
|
|
15
|
-
}px`;
|
|
16
|
-
},
|
|
17
|
-
};
|
|
1
|
+
import { Modifier } from 'react-overlays/usePopper';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
|
+
export const minWidthModifier: Partial<Modifier<any, any>> = {
|
|
5
|
+
name: 'minWidth',
|
|
6
|
+
enabled: true,
|
|
7
|
+
phase: 'beforeWrite',
|
|
8
|
+
requires: ['computeStyles'],
|
|
9
|
+
fn: ({ state }) => {
|
|
10
|
+
state.styles.popper.minWidth = `${state.rects.reference.width}px`;
|
|
11
|
+
},
|
|
12
|
+
effect: ({ state }) => {
|
|
13
|
+
state.elements.popper.style.minWidth = `${
|
|
14
|
+
(state.elements.reference as HTMLElement).offsetWidth
|
|
15
|
+
}px`;
|
|
16
|
+
},
|
|
17
|
+
};
|
package/src/hooks/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './use-is-mounted';
|
|
2
|
-
export * from './use-on-click-outside';
|
|
3
|
-
export * from './use-theme';
|
|
4
|
-
export * from './use-dropdown';
|
|
5
|
-
export * from './use-tweak-styles';
|
|
6
|
-
export * from './use-did-mount-effect';
|
|
1
|
+
export * from './use-is-mounted';
|
|
2
|
+
export * from './use-on-click-outside';
|
|
3
|
+
export * from './use-theme';
|
|
4
|
+
export * from './use-dropdown';
|
|
5
|
+
export * from './use-tweak-styles';
|
|
6
|
+
export * from './use-did-mount-effect';
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { DependencyList, EffectCallback, useEffect, useRef } from 'react';
|
|
2
|
-
|
|
3
|
-
export const useDidMountEffect = (effect: EffectCallback, dependencies: DependencyList): void => {
|
|
4
|
-
const isMountedRef = useRef(false);
|
|
5
|
-
useEffect(() => {
|
|
6
|
-
let unmount: ReturnType<EffectCallback>;
|
|
7
|
-
if (isMountedRef.current) {
|
|
8
|
-
unmount = effect();
|
|
9
|
-
} else {
|
|
10
|
-
isMountedRef.current = true;
|
|
11
|
-
}
|
|
12
|
-
return () => {
|
|
13
|
-
if (unmount !== undefined) {
|
|
14
|
-
unmount();
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
}, dependencies);
|
|
18
|
-
};
|
|
1
|
+
import { DependencyList, EffectCallback, useEffect, useRef } from 'react';
|
|
2
|
+
|
|
3
|
+
export const useDidMountEffect = (effect: EffectCallback, dependencies: DependencyList): void => {
|
|
4
|
+
const isMountedRef = useRef(false);
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
let unmount: ReturnType<EffectCallback>;
|
|
7
|
+
if (isMountedRef.current) {
|
|
8
|
+
unmount = effect();
|
|
9
|
+
} else {
|
|
10
|
+
isMountedRef.current = true;
|
|
11
|
+
}
|
|
12
|
+
return () => {
|
|
13
|
+
if (unmount !== undefined) {
|
|
14
|
+
unmount();
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
}, dependencies);
|
|
18
|
+
};
|