@skbkontur/react-ui 3.9.3-popup-twitch → 3.9.3-sidepagefix
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 +21 -21
- package/cjs/components/Autocomplete/Autocomplete.d.ts +112 -112
- package/cjs/components/Autocomplete/Autocomplete.md +7 -7
- package/cjs/components/Autocomplete/index.d.ts +1 -1
- package/cjs/components/Button/Button.d.ts +160 -160
- package/cjs/components/Button/Button.mixins.d.ts +6 -6
- package/cjs/components/Button/Button.styles.d.ts +67 -67
- package/cjs/components/Button/Corners.d.ts +6 -6
- package/cjs/components/Button/index.d.ts +1 -1
- package/cjs/components/Center/Center.d.ts +24 -24
- package/cjs/components/Center/Center.styles.d.ts +7 -7
- package/cjs/components/Center/index.d.ts +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +95 -95
- package/cjs/components/Checkbox/Checkbox.styles.d.ts +22 -22
- package/cjs/components/Checkbox/index.d.ts +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +182 -182
- package/cjs/components/ComboBox/index.d.ts +1 -1
- package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +35 -35
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +106 -106
- package/cjs/components/CurrencyInput/CurrencyInput.md +24 -24
- package/cjs/components/CurrencyInput/CurrencyInputHelper.d.ts +20 -20
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +18 -18
- package/cjs/components/CurrencyInput/CursorHelper.d.ts +10 -10
- package/cjs/components/CurrencyInput/SelectionHelper.d.ts +11 -11
- package/cjs/components/CurrencyInput/constants.d.ts +2 -2
- package/cjs/components/CurrencyInput/index.d.ts +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +24 -24
- package/cjs/components/CurrencyLabel/CurrencyLabel.md +23 -23
- package/cjs/components/CurrencyLabel/index.d.ts +1 -1
- package/cjs/components/DateInput/DateFragmentsView.d.ts +20 -20
- package/cjs/components/DateInput/DateFragmentsView.styles.d.ts +7 -7
- package/cjs/components/DateInput/DateInput.d.ts +106 -106
- package/cjs/components/DateInput/DateInput.md +106 -106
- package/cjs/components/DateInput/DateInput.styles.d.ts +10 -10
- package/cjs/components/DateInput/ViewDateInputValidateChecks.d.ts +10 -10
- package/cjs/components/DateInput/helpers/DateInputKeyboardActions.d.ts +21 -21
- package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +26 -26
- package/cjs/components/DateInput/helpers/SelectionHelpers.d.ts +2 -2
- package/cjs/components/DateInput/helpers/inputNumber.d.ts +5 -5
- package/cjs/components/DateInput/index.d.ts +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +132 -132
- package/cjs/components/DatePicker/DatePicker.md +307 -307
- package/cjs/components/DatePicker/DatePicker.styles.d.ts +3 -3
- package/cjs/components/DatePicker/DatePickerHelpers.d.ts +2 -2
- package/cjs/components/DatePicker/Picker.d.ts +33 -33
- package/cjs/components/DatePicker/Picker.styles.d.ts +5 -5
- package/cjs/components/DatePicker/index.d.ts +1 -1
- package/cjs/components/DatePicker/locale/index.d.ts +4 -4
- package/cjs/components/DatePicker/locale/locales/en.d.ts +2 -2
- package/cjs/components/DatePicker/locale/locales/ru.d.ts +2 -2
- package/cjs/components/DatePicker/locale/types.d.ts +5 -5
- package/cjs/components/Dropdown/Dropdown.d.ts +123 -123
- package/cjs/components/Dropdown/index.d.ts +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +64 -64
- package/cjs/components/DropdownMenu/index.d.ts +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +49 -49
- package/cjs/components/FxInput/FxInput.md +16 -16
- package/cjs/components/FxInput/index.d.ts +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +56 -57
- package/cjs/components/Gapped/Gapped.js +9 -14
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/Gapped/Gapped.md +43 -43
- package/cjs/components/Gapped/index.d.ts +1 -1
- package/cjs/components/Group/Group.d.ts +13 -13
- package/cjs/components/Group/Group.md +18 -18
- package/cjs/components/Group/Group.styles.d.ts +8 -8
- package/cjs/components/Group/index.d.ts +1 -1
- package/cjs/components/Hint/Hint.d.ts +79 -79
- package/cjs/components/Hint/Hint.styles.d.ts +5 -5
- package/cjs/components/Hint/index.d.ts +1 -1
- package/cjs/components/Input/Input.d.ts +154 -154
- package/cjs/components/Input/Input.md +13 -13
- package/cjs/components/Input/Input.styles.d.ts +42 -42
- package/cjs/components/Input/index.d.ts +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +70 -70
- package/cjs/components/Kebab/Kebab.styles.d.ts +12 -12
- package/cjs/components/Kebab/index.d.ts +1 -1
- package/cjs/components/Link/Link.d.ts +71 -71
- package/cjs/components/Link/Link.mixins.d.ts +3 -3
- package/cjs/components/Link/Link.styles.d.ts +15 -15
- package/cjs/components/Link/index.d.ts +1 -1
- package/cjs/components/Loader/Loader.d.ts +99 -99
- package/cjs/components/Loader/Loader.styles.d.ts +8 -8
- package/cjs/components/Loader/index.d.ts +1 -1
- package/cjs/components/MenuHeader/MenuHeader.d.ts +20 -20
- package/cjs/components/MenuHeader/MenuHeader.styles.d.ts +5 -5
- package/cjs/components/MenuHeader/index.d.ts +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +93 -93
- package/cjs/components/MenuItem/MenuItem.styles.d.ts +13 -13
- package/cjs/components/MenuItem/index.d.ts +1 -1
- package/cjs/components/MenuSeparator/MenuSeparator.d.ts +12 -12
- package/cjs/components/MenuSeparator/MenuSeparator.styles.d.ts +4 -4
- package/cjs/components/MenuSeparator/index.d.ts +1 -1
- package/cjs/components/Modal/Modal.d.ts +87 -87
- package/cjs/components/Modal/Modal.md +38 -38
- package/cjs/components/Modal/Modal.styles.d.ts +26 -26
- package/cjs/components/Modal/ModalBody.d.ts +20 -20
- package/cjs/components/Modal/ModalClose.d.ts +2 -2
- package/cjs/components/Modal/ModalContext.d.ts +15 -15
- package/cjs/components/Modal/ModalFooter.d.ts +21 -21
- package/cjs/components/Modal/ModalHeader.d.ts +17 -17
- package/cjs/components/Modal/index.d.ts +4 -4
- package/cjs/components/Paging/NavigationHelper.d.ts +7 -7
- package/cjs/components/Paging/Paging.d.ts +90 -90
- package/cjs/components/Paging/Paging.md +43 -43
- package/cjs/components/Paging/Paging.styles.d.ts +16 -16
- package/cjs/components/Paging/PagingHelper.d.ts +2 -2
- package/cjs/components/Paging/index.d.ts +1 -1
- package/cjs/components/Paging/locale/index.d.ts +4 -4
- package/cjs/components/Paging/locale/locales/en.d.ts +2 -2
- package/cjs/components/Paging/locale/locales/ru.d.ts +2 -2
- package/cjs/components/Paging/locale/types.d.ts +3 -3
- package/cjs/components/PasswordInput/PasswordInput.d.ts +48 -48
- package/cjs/components/PasswordInput/PasswordInput.md +9 -9
- package/cjs/components/PasswordInput/PasswordInput.styles.d.ts +10 -10
- package/cjs/components/PasswordInput/index.d.ts +1 -1
- package/cjs/components/Radio/Radio.d.ts +82 -82
- package/cjs/components/Radio/Radio.styles.d.ts +19 -19
- package/cjs/components/Radio/index.d.ts +1 -1
- package/cjs/components/RadioGroup/Prevent.d.ts +8 -8
- package/cjs/components/RadioGroup/RadioGroup.d.ts +132 -132
- package/cjs/components/RadioGroup/RadioGroup.md +43 -43
- package/cjs/components/RadioGroup/RadioGroup.styles.d.ts +7 -7
- package/cjs/components/RadioGroup/index.d.ts +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.d.ts +37 -37
- package/cjs/components/ScrollContainer/ScrollContainer.constants.d.ts +23 -23
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +83 -83
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.d.ts +10 -10
- package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +16 -16
- package/cjs/components/ScrollContainer/index.d.ts +1 -1
- package/cjs/components/Select/Item.d.ts +7 -7
- package/cjs/components/Select/Select.d.ts +178 -178
- package/cjs/components/Select/Select.md +55 -55
- package/cjs/components/Select/Select.styles.d.ts +17 -17
- package/cjs/components/Select/index.d.ts +1 -1
- package/cjs/components/Select/locale/index.d.ts +4 -4
- package/cjs/components/Select/locale/locales/en.d.ts +2 -2
- package/cjs/components/Select/locale/locales/ru.d.ts +2 -2
- package/cjs/components/Select/locale/types.d.ts +4 -4
- package/cjs/components/Select/selectTheme.d.ts +3 -3
- package/cjs/components/SidePage/SidePage.d.ts +107 -104
- package/cjs/components/SidePage/SidePage.js +17 -8
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePage.styles.d.ts +37 -37
- package/cjs/components/SidePage/SidePageBody.d.ts +18 -18
- package/cjs/components/SidePage/SidePageContainer.d.ts +14 -14
- package/cjs/components/SidePage/SidePageContext.d.ts +17 -15
- package/cjs/components/SidePage/SidePageContext.js +3 -0
- package/cjs/components/SidePage/SidePageContext.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +37 -37
- package/cjs/components/SidePage/SidePageHeader.d.ts +43 -40
- package/cjs/components/SidePage/SidePageHeader.js +26 -8
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/SidePage/index.d.ts +5 -5
- package/cjs/components/Spinner/Spinner.d.ts +47 -47
- package/cjs/components/Spinner/Spinner.md +34 -34
- package/cjs/components/Spinner/Spinner.styles.d.ts +11 -11
- package/cjs/components/Spinner/SpinnerFallbackAnimation.d.ts +25 -25
- package/cjs/components/Spinner/index.d.ts +1 -1
- package/cjs/components/Spinner/locale/index.d.ts +4 -4
- package/cjs/components/Spinner/locale/locales/en.d.ts +2 -2
- package/cjs/components/Spinner/locale/locales/ru.d.ts +2 -2
- package/cjs/components/Spinner/locale/types.d.ts +4 -4
- package/cjs/components/Sticky/Sticky.d.ts +58 -53
- package/cjs/components/Sticky/Sticky.js +5 -0
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Sticky/Sticky.md +27 -27
- package/cjs/components/Sticky/Sticky.styles.d.ts +7 -7
- package/cjs/components/Sticky/index.d.ts +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +55 -55
- package/cjs/components/Switcher/Switcher.md +10 -10
- package/cjs/components/Switcher/Switcher.styles.d.ts +10 -10
- package/cjs/components/Switcher/index.d.ts +1 -1
- package/cjs/components/Switcher/switcherTheme.d.ts +2 -2
- package/cjs/components/Tabs/Indicator.d.ts +27 -27
- package/cjs/components/Tabs/Indicator.styles.d.ts +8 -8
- package/cjs/components/Tabs/Tab.d.ts +120 -120
- package/cjs/components/Tabs/Tab.styles.d.ts +27 -27
- package/cjs/components/Tabs/Tabs.d.ts +61 -61
- package/cjs/components/Tabs/Tabs.md +36 -36
- package/cjs/components/Tabs/Tabs.styles.d.ts +5 -5
- package/cjs/components/Tabs/TabsContext.d.ts +14 -14
- package/cjs/components/Tabs/index.d.ts +2 -2
- package/cjs/components/Textarea/Textarea.d.ts +184 -184
- package/cjs/components/Textarea/Textarea.md +25 -25
- package/cjs/components/Textarea/Textarea.styles.d.ts +15 -15
- package/cjs/components/Textarea/TextareaCounter.d.ts +13 -13
- package/cjs/components/Textarea/TextareaHelpers.d.ts +11 -11
- package/cjs/components/Textarea/index.d.ts +1 -1
- package/cjs/components/Toast/Toast.d.ts +55 -55
- package/cjs/components/Toast/Toast.styles.d.ts +6 -6
- package/cjs/components/Toast/ToastStatic.d.ts +8 -8
- package/cjs/components/Toast/ToastView.d.ts +37 -37
- package/cjs/components/Toast/ToastView.styles.d.ts +8 -8
- package/cjs/components/Toast/index.d.ts +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +106 -106
- package/cjs/components/Toggle/Toggle.styles.d.ts +30 -30
- package/cjs/components/Toggle/index.d.ts +1 -1
- package/cjs/components/Token/Token.d.ts +35 -35
- package/cjs/components/Token/Token.md +112 -112
- package/cjs/components/Token/Token.styles.d.ts +29 -29
- package/cjs/components/Token/index.d.ts +1 -1
- package/cjs/components/TokenInput/TextWidthHelper.d.ts +18 -18
- package/cjs/components/TokenInput/TokenInput.d.ts +193 -193
- package/cjs/components/TokenInput/TokenInput.md +79 -79
- package/cjs/components/TokenInput/TokenInput.styles.d.ts +15 -15
- package/cjs/components/TokenInput/TokenInputMenu.d.ts +18 -18
- package/cjs/components/TokenInput/TokenInputReducer.d.ts +25 -25
- package/cjs/components/TokenInput/index.d.ts +1 -1
- package/cjs/components/TokenInput/locale/index.d.ts +4 -4
- package/cjs/components/TokenInput/locale/locales/en.d.ts +2 -2
- package/cjs/components/TokenInput/locale/locales/ru.d.ts +2 -2
- package/cjs/components/TokenInput/locale/types.d.ts +4 -4
- package/cjs/components/Tooltip/Tooltip.d.ts +171 -171
- package/cjs/components/Tooltip/Tooltip.md +292 -292
- package/cjs/components/Tooltip/Tooltip.styles.d.ts +5 -5
- package/cjs/components/Tooltip/index.d.ts +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +64 -64
- package/cjs/components/TooltipMenu/index.d.ts +1 -1
- package/cjs/index.d.ts +48 -48
- package/cjs/internal/BGRuler.d.ts +30 -30
- package/cjs/internal/Calendar/Calendar.d.ts +66 -66
- package/cjs/internal/Calendar/Calendar.styles.d.ts +5 -5
- package/cjs/internal/Calendar/CalendarDateShape.d.ts +14 -14
- package/cjs/internal/Calendar/CalendarScrollEvents.d.ts +4 -4
- package/cjs/internal/Calendar/CalendarUtils.d.ts +19 -19
- package/cjs/internal/Calendar/DayCellView.d.ts +13 -13
- package/cjs/internal/Calendar/DayCellView.styles.d.ts +7 -7
- package/cjs/internal/Calendar/DayCellViewModel.d.ts +8 -8
- package/cjs/internal/Calendar/Month.d.ts +33 -33
- package/cjs/internal/Calendar/MonthView.d.ts +21 -21
- package/cjs/internal/Calendar/MonthView.styles.d.ts +9 -9
- package/cjs/internal/Calendar/MonthViewModel.d.ts +14 -14
- package/cjs/internal/Calendar/config.d.ts +9 -9
- package/cjs/internal/Calendar/index.d.ts +2 -2
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +23 -23
- package/cjs/internal/CommonWrapper/index.d.ts +1 -1
- package/cjs/internal/ComponentCombinator.d.ts +25 -25
- package/cjs/internal/ComponentTable.d.ts +21 -21
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +31 -31
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +87 -87
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +135 -135
- package/cjs/internal/CustomComboBox/CustomComboBox.styles.d.ts +5 -5
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +71 -71
- package/cjs/internal/CustomComboBox/CustomComboBoxTypes.d.ts +6 -6
- package/cjs/internal/CustomComboBox/index.d.ts +2 -2
- package/cjs/internal/CustomComboBox/locale/index.d.ts +4 -4
- package/cjs/internal/CustomComboBox/locale/locales/en.d.ts +2 -2
- package/cjs/internal/CustomComboBox/locale/locales/ru.d.ts +2 -2
- package/cjs/internal/CustomComboBox/locale/types.d.ts +5 -5
- package/cjs/internal/DateSelect/DateSelect.d.ts +93 -93
- package/cjs/internal/DateSelect/DateSelect.styles.d.ts +19 -19
- package/cjs/internal/DateSelect/index.d.ts +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +46 -46
- package/cjs/internal/DropdownContainer/index.d.ts +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +16 -16
- package/cjs/internal/FocusTrap/index.d.ts +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +14 -14
- package/cjs/internal/HideBodyVerticalScroll/index.d.ts +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +8 -8
- package/cjs/internal/IgnoreLayerClick/index.d.ts +1 -1
- package/cjs/internal/InputLikeText/HiddenInput.d.ts +13 -13
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +72 -72
- package/cjs/internal/InputLikeText/InputLikeText.styles.d.ts +7 -7
- package/cjs/internal/InputLikeText/index.d.ts +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +64 -64
- package/cjs/internal/InternalMenu/InternalMenu.styles.d.ts +9 -9
- package/cjs/internal/InternalMenu/index.d.ts +1 -1
- package/cjs/internal/InternalMenu/isActiveElement.d.ts +3 -3
- package/cjs/internal/MaskCharLowLine/MaskCharLowLine.d.ts +9 -9
- package/cjs/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +3 -3
- package/cjs/internal/MaskCharLowLine/index.d.ts +1 -1
- package/cjs/internal/MaskedInput/MaskedInput.d.ts +40 -40
- package/cjs/internal/MaskedInput/MaskedInput.styles.d.ts +6 -6
- package/cjs/internal/MaskedInput/index.d.ts +1 -1
- package/cjs/internal/Menu/Menu.d.ts +62 -62
- package/cjs/internal/Menu/Menu.styles.d.ts +6 -6
- package/cjs/internal/Menu/index.d.ts +1 -1
- package/cjs/internal/Menu/isActiveElement.d.ts +3 -3
- package/cjs/internal/NativeDateInput/NativeDateInput.d.ts +23 -23
- package/cjs/internal/NativeDateInput/NativeDateInput.styles.d.ts +3 -3
- package/cjs/internal/NativeDateInput/index.d.ts +1 -1
- package/cjs/internal/NativeDateInput/utils.d.ts +7 -7
- package/cjs/internal/PerformanceMetrics/PerformanceMetrics.d.ts +7 -7
- package/cjs/internal/Popup/Popup.d.ts +161 -161
- package/cjs/internal/Popup/Popup.js +4 -11
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/Popup.styles.d.ts +16 -16
- package/cjs/internal/Popup/PopupHelper.d.ts +26 -26
- package/cjs/internal/Popup/PopupPin.d.ts +56 -56
- package/cjs/internal/Popup/PopupPin.styles.d.ts +3 -3
- package/cjs/internal/Popup/index.d.ts +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +84 -84
- package/cjs/internal/PopupMenu/PopupMenu.styles.d.ts +4 -4
- package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +2 -2
- package/cjs/internal/PopupMenu/index.d.ts +1 -1
- package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
- package/cjs/internal/RenderContainer/RenderContainer.d.ts +16 -16
- package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +11 -11
- package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +13 -13
- package/cjs/internal/RenderContainer/index.d.ts +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +27 -27
- package/cjs/internal/RenderLayer/index.d.ts +1 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +12 -12
- package/cjs/internal/ResizeDetector/ResizeDetector.styles.d.ts +5 -5
- package/cjs/internal/ResizeDetector/index.d.ts +1 -1
- package/cjs/internal/ThemePlayground/AnotherInputsPlayground.d.ts +13 -13
- package/cjs/internal/ThemePlayground/CheckboxPlayground.d.ts +1 -1
- package/cjs/internal/ThemePlayground/ComponentsGroup.d.ts +10 -10
- package/cjs/internal/ThemePlayground/CurrencyInputPlayground.d.ts +11 -11
- package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +10 -10
- package/cjs/internal/ThemePlayground/HintPlayground.d.ts +6 -6
- package/cjs/internal/ThemePlayground/PagingPlayground.d.ts +10 -10
- package/cjs/internal/ThemePlayground/Playground.d.ts +31 -31
- package/cjs/internal/ThemePlayground/Playground.md +7 -7
- package/cjs/internal/ThemePlayground/Playground.styles.d.ts +23 -23
- package/cjs/internal/ThemePlayground/RadioPlayground.d.ts +1 -1
- package/cjs/internal/ThemePlayground/SelectPlayground.d.ts +12 -12
- package/cjs/internal/ThemePlayground/ShowcaseGroup.d.ts +5 -5
- package/cjs/internal/ThemePlayground/SwitcherPlayground.d.ts +15 -15
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +51 -51
- package/cjs/internal/ThemePlayground/ThemeEditor.d.ts +39 -39
- package/cjs/internal/ThemePlayground/TogglePlayground.d.ts +9 -9
- package/cjs/internal/ThemePlayground/TokenInputPlayground.d.ts +7 -7
- package/cjs/internal/ThemePlayground/VariableValue.d.ts +45 -45
- package/cjs/internal/ThemePlayground/constants.d.ts +18 -18
- package/cjs/internal/ThemePlayground/darkTheme.d.ts +255 -255
- package/cjs/internal/ThemePlayground/helpers.d.ts +2 -2
- package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +22 -22
- package/cjs/internal/ThemeShowcase/ThemeShowcase.md +13 -13
- package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +24 -24
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +22 -22
- package/cjs/internal/ZIndex/ZIndex.d.ts +34 -34
- package/cjs/internal/ZIndex/ZIndexStorage.d.ts +18 -18
- package/cjs/internal/ZIndex/index.d.ts +1 -1
- package/cjs/internal/icons/16px/icon.styles.d.ts +4 -4
- package/cjs/internal/icons/16px/index.d.ts +21 -21
- package/cjs/internal/icons/20px/Icon.d.ts +30 -30
- package/cjs/internal/icons/20px/icon.styles.d.ts +4 -4
- package/cjs/internal/icons/20px/index.d.ts +2 -2
- package/cjs/internal/icons/20px/svg.d.ts +14 -14
- package/cjs/internal/icons/CloudIcon.d.ts +1 -1
- package/cjs/internal/icons/CrossIcon.d.ts +1 -1
- package/cjs/internal/icons/SpinnerIcon.d.ts +23 -23
- package/cjs/internal/icons/SpinnerIcon.styles.d.ts +4 -4
- package/cjs/internal/themes/DefaultTheme.d.ts +766 -766
- package/cjs/internal/themes/FlatTheme.d.ts +132 -132
- package/cjs/internal/themes/Theme8px.d.ts +271 -271
- package/cjs/lib/ConditionalHandler.d.ts +11 -11
- package/cjs/lib/LayoutEvents.d.ts +4 -4
- package/cjs/lib/ModalStack.d.ts +14 -14
- package/cjs/lib/SSRSafe.d.ts +4 -4
- package/cjs/lib/Supports.d.ts +1 -1
- package/cjs/lib/Upgrades.d.ts +6 -6
- package/cjs/lib/animation/index.d.ts +6 -6
- package/cjs/lib/animation/presets.d.ts +18 -18
- package/cjs/lib/animation/stepper.d.ts +1 -1
- package/cjs/lib/client.d.ts +16 -16
- package/cjs/lib/createPropsGetter.d.ts +2 -2
- package/cjs/lib/currentEnvironment.d.ts +3 -3
- package/cjs/lib/date/InternalDate.d.ts +58 -58
- package/cjs/lib/date/InternalDateCalculator.d.ts +6 -6
- package/cjs/lib/date/InternalDateGetter.d.ts +15 -15
- package/cjs/lib/date/InternalDateSetter.d.ts +6 -6
- package/cjs/lib/date/InternalDateTransformer.d.ts +12 -12
- package/cjs/lib/date/InternalDateValidator.d.ts +12 -12
- package/cjs/lib/date/constants.d.ts +28 -28
- package/cjs/lib/date/localeSets.d.ts +5 -5
- package/cjs/lib/date/types.d.ts +90 -90
- package/cjs/lib/dom/getScrollWidth.d.ts +1 -1
- package/cjs/lib/dom/tabbableHelpers.d.ts +16 -16
- package/cjs/lib/events/MouseDrag.d.ts +58 -58
- package/cjs/lib/events/fixClickFocusIE.d.ts +1 -1
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -2
- package/cjs/lib/events/keyListener.d.ts +7 -7
- package/cjs/lib/events/keyboard/KeyboardEventCodes.d.ts +30 -30
- package/cjs/lib/events/keyboard/KeyboardMapKeys.d.ts +6 -6
- package/cjs/lib/events/keyboard/extractCode.d.ts +3 -3
- package/cjs/lib/events/keyboard/identifiers.d.ts +48 -48
- package/cjs/lib/events/stopPropagation.d.ts +1 -1
- package/cjs/lib/events/tabListener.d.ts +1 -1
- package/cjs/lib/extractKeyboardAction.d.ts +13 -13
- package/cjs/lib/filterProps.d.ts +12 -12
- package/cjs/lib/forwardRefAndName.d.ts +5 -5
- package/cjs/lib/getDisplayName.d.ts +3 -3
- package/cjs/lib/listenFocusOutside.d.ts +8 -8
- package/cjs/lib/locale/LocaleContext.d.ts +7 -7
- package/cjs/lib/locale/LocaleHelper.d.ts +9 -9
- package/cjs/lib/locale/constants.d.ts +2 -2
- package/cjs/lib/locale/decorators.d.ts +36 -36
- package/cjs/lib/locale/index.d.ts +3 -3
- package/cjs/lib/locale/types.d.ts +19 -19
- package/cjs/lib/memo.d.ts +1 -1
- package/cjs/lib/net/fetch.d.ts +13 -13
- package/cjs/lib/polyfillPlaceholder.d.ts +1 -1
- package/cjs/lib/reactGetTextContent.d.ts +2 -2
- package/cjs/lib/styles/ColorFactory.d.ts +11 -11
- package/cjs/lib/styles/ColorFunctions.d.ts +11 -11
- package/cjs/lib/styles/ColorHelpers.d.ts +20 -20
- package/cjs/lib/styles/ColorKeywords.d.ts +150 -150
- package/cjs/lib/styles/ColorObject.d.ts +52 -52
- package/cjs/lib/styles/DimensionFunctions.d.ts +1 -1
- package/cjs/lib/styles/HoldSelectionColor.d.ts +1 -1
- package/cjs/lib/styles/Mixins.d.ts +2 -2
- package/cjs/lib/taskWithDelayAndMinimalDuration.d.ts +21 -21
- package/cjs/lib/theming/AnimationKeyframes.d.ts +9 -9
- package/cjs/lib/theming/Emotion.d.ts +15 -15
- package/cjs/lib/theming/Theme.d.ts +3 -3
- package/cjs/lib/theming/ThemeContext.d.ts +2 -2
- package/cjs/lib/theming/ThemeFactory.d.ts +8 -8
- package/cjs/lib/theming/ThemeHelpers.d.ts +11 -11
- package/cjs/lib/theming/themes/DefaultTheme.d.ts +1 -1
- package/cjs/lib/theming/themes/DefaultThemeOld.d.ts +1 -1
- package/cjs/lib/theming/themes/FlatTheme.d.ts +1 -1
- package/cjs/lib/theming/themes/FlatThemeOld.d.ts +1 -1
- package/cjs/lib/utils.d.ts +28 -28
- package/cjs/lib/withClassWrapper.d.ts +68 -71
- package/cjs/lib/withClassWrapper.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +112 -112
- package/components/Autocomplete/Autocomplete.md +7 -7
- package/components/Autocomplete/index.d.ts +1 -1
- package/components/Button/Button.d.ts +160 -160
- package/components/Button/Button.mixins.d.ts +6 -6
- package/components/Button/Button.styles.d.ts +67 -67
- package/components/Button/Corners.d.ts +6 -6
- package/components/Button/index.d.ts +1 -1
- package/components/Center/Center.d.ts +24 -24
- package/components/Center/Center.styles.d.ts +7 -7
- package/components/Center/index.d.ts +1 -1
- package/components/Checkbox/Checkbox.d.ts +95 -95
- package/components/Checkbox/Checkbox.styles.d.ts +22 -22
- package/components/Checkbox/index.d.ts +1 -1
- package/components/ComboBox/ComboBox.d.ts +182 -182
- package/components/ComboBox/index.d.ts +1 -1
- package/components/CurrencyInput/CurrencyHelper.d.ts +35 -35
- package/components/CurrencyInput/CurrencyInput.d.ts +106 -106
- package/components/CurrencyInput/CurrencyInput.md +24 -24
- package/components/CurrencyInput/CurrencyInputHelper.d.ts +20 -20
- package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +18 -18
- package/components/CurrencyInput/CursorHelper.d.ts +10 -10
- package/components/CurrencyInput/SelectionHelper.d.ts +11 -11
- package/components/CurrencyInput/constants.d.ts +2 -2
- package/components/CurrencyInput/index.d.ts +1 -1
- package/components/CurrencyLabel/CurrencyLabel.d.ts +24 -24
- package/components/CurrencyLabel/CurrencyLabel.md +23 -23
- package/components/CurrencyLabel/index.d.ts +1 -1
- package/components/DateInput/DateFragmentsView.d.ts +20 -20
- package/components/DateInput/DateFragmentsView.styles.d.ts +7 -7
- package/components/DateInput/DateInput.d.ts +106 -106
- package/components/DateInput/DateInput.md +106 -106
- package/components/DateInput/DateInput.styles.d.ts +10 -10
- package/components/DateInput/ViewDateInputValidateChecks.d.ts +10 -10
- package/components/DateInput/helpers/DateInputKeyboardActions.d.ts +21 -21
- package/components/DateInput/helpers/InternalDateMediator.d.ts +26 -26
- package/components/DateInput/helpers/SelectionHelpers.d.ts +2 -2
- package/components/DateInput/helpers/inputNumber.d.ts +5 -5
- package/components/DateInput/index.d.ts +1 -1
- package/components/DatePicker/DatePicker.d.ts +132 -132
- package/components/DatePicker/DatePicker.md +307 -307
- package/components/DatePicker/DatePicker.styles.d.ts +3 -3
- package/components/DatePicker/DatePickerHelpers.d.ts +2 -2
- package/components/DatePicker/Picker.d.ts +33 -33
- package/components/DatePicker/Picker.styles.d.ts +5 -5
- package/components/DatePicker/index.d.ts +1 -1
- package/components/DatePicker/locale/index.d.ts +4 -4
- package/components/DatePicker/locale/locales/en.d.ts +2 -2
- package/components/DatePicker/locale/locales/ru.d.ts +2 -2
- package/components/DatePicker/locale/types.d.ts +5 -5
- package/components/Dropdown/Dropdown.d.ts +123 -123
- package/components/Dropdown/index.d.ts +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +64 -64
- package/components/DropdownMenu/index.d.ts +1 -1
- package/components/FxInput/FxInput.d.ts +49 -49
- package/components/FxInput/FxInput.md +16 -16
- package/components/FxInput/index.d.ts +1 -1
- package/components/Gapped/Gapped/Gapped.js +10 -9
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +56 -57
- package/components/Gapped/Gapped.md +43 -43
- package/components/Gapped/index.d.ts +1 -1
- package/components/Group/Group.d.ts +13 -13
- package/components/Group/Group.md +18 -18
- package/components/Group/Group.styles.d.ts +8 -8
- package/components/Group/index.d.ts +1 -1
- package/components/Hint/Hint.d.ts +79 -79
- package/components/Hint/Hint.styles.d.ts +5 -5
- package/components/Hint/index.d.ts +1 -1
- package/components/Input/Input.d.ts +154 -154
- package/components/Input/Input.md +13 -13
- package/components/Input/Input.styles.d.ts +42 -42
- package/components/Input/index.d.ts +1 -1
- package/components/Kebab/Kebab.d.ts +70 -70
- package/components/Kebab/Kebab.styles.d.ts +12 -12
- package/components/Kebab/index.d.ts +1 -1
- package/components/Link/Link.d.ts +71 -71
- package/components/Link/Link.mixins.d.ts +3 -3
- package/components/Link/Link.styles.d.ts +15 -15
- package/components/Link/index.d.ts +1 -1
- package/components/Loader/Loader.d.ts +99 -99
- package/components/Loader/Loader.styles.d.ts +8 -8
- package/components/Loader/index.d.ts +1 -1
- package/components/MenuHeader/MenuHeader.d.ts +20 -20
- package/components/MenuHeader/MenuHeader.styles.d.ts +5 -5
- package/components/MenuHeader/index.d.ts +1 -1
- package/components/MenuItem/MenuItem.d.ts +93 -93
- package/components/MenuItem/MenuItem.styles.d.ts +13 -13
- package/components/MenuItem/index.d.ts +1 -1
- package/components/MenuSeparator/MenuSeparator.d.ts +12 -12
- package/components/MenuSeparator/MenuSeparator.styles.d.ts +4 -4
- package/components/MenuSeparator/index.d.ts +1 -1
- package/components/Modal/Modal.d.ts +87 -87
- package/components/Modal/Modal.md +38 -38
- package/components/Modal/Modal.styles.d.ts +26 -26
- package/components/Modal/ModalBody.d.ts +20 -20
- package/components/Modal/ModalClose.d.ts +2 -2
- package/components/Modal/ModalContext.d.ts +15 -15
- package/components/Modal/ModalFooter.d.ts +21 -21
- package/components/Modal/ModalHeader.d.ts +17 -17
- package/components/Modal/index.d.ts +4 -4
- package/components/Paging/NavigationHelper.d.ts +7 -7
- package/components/Paging/Paging.d.ts +90 -90
- package/components/Paging/Paging.md +43 -43
- package/components/Paging/Paging.styles.d.ts +16 -16
- package/components/Paging/PagingHelper.d.ts +2 -2
- package/components/Paging/index.d.ts +1 -1
- package/components/Paging/locale/index.d.ts +4 -4
- package/components/Paging/locale/locales/en.d.ts +2 -2
- package/components/Paging/locale/locales/ru.d.ts +2 -2
- package/components/Paging/locale/types.d.ts +3 -3
- package/components/PasswordInput/PasswordInput.d.ts +48 -48
- package/components/PasswordInput/PasswordInput.md +9 -9
- package/components/PasswordInput/PasswordInput.styles.d.ts +10 -10
- package/components/PasswordInput/index.d.ts +1 -1
- package/components/Radio/Radio.d.ts +82 -82
- package/components/Radio/Radio.styles.d.ts +19 -19
- package/components/Radio/index.d.ts +1 -1
- package/components/RadioGroup/Prevent.d.ts +8 -8
- package/components/RadioGroup/RadioGroup.d.ts +132 -132
- package/components/RadioGroup/RadioGroup.md +43 -43
- package/components/RadioGroup/RadioGroup.styles.d.ts +7 -7
- package/components/RadioGroup/index.d.ts +1 -1
- package/components/ScrollContainer/ScrollBar.d.ts +37 -37
- package/components/ScrollContainer/ScrollContainer.constants.d.ts +23 -23
- package/components/ScrollContainer/ScrollContainer.d.ts +83 -83
- package/components/ScrollContainer/ScrollContainer.helpers.d.ts +10 -10
- package/components/ScrollContainer/ScrollContainer.styles.d.ts +16 -16
- package/components/ScrollContainer/index.d.ts +1 -1
- package/components/Select/Item.d.ts +7 -7
- package/components/Select/Select.d.ts +178 -178
- package/components/Select/Select.md +55 -55
- package/components/Select/Select.styles.d.ts +17 -17
- package/components/Select/index.d.ts +1 -1
- package/components/Select/locale/index.d.ts +4 -4
- package/components/Select/locale/locales/en.d.ts +2 -2
- package/components/Select/locale/locales/ru.d.ts +2 -2
- package/components/Select/locale/types.d.ts +4 -4
- package/components/Select/selectTheme.d.ts +3 -3
- package/components/SidePage/SidePage/SidePage.js +19 -12
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +107 -104
- package/components/SidePage/SidePage.styles.d.ts +37 -37
- package/components/SidePage/SidePageBody.d.ts +18 -18
- package/components/SidePage/SidePageContainer.d.ts +14 -14
- package/components/SidePage/SidePageContext/SidePageContext.js +3 -0
- package/components/SidePage/SidePageContext/SidePageContext.js.map +1 -1
- package/components/SidePage/SidePageContext.d.ts +17 -15
- package/components/SidePage/SidePageFooter.d.ts +37 -37
- package/components/SidePage/SidePageHeader/SidePageHeader.js +21 -2
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +43 -40
- package/components/SidePage/index.d.ts +5 -5
- package/components/Spinner/Spinner.d.ts +47 -47
- package/components/Spinner/Spinner.md +34 -34
- package/components/Spinner/Spinner.styles.d.ts +11 -11
- package/components/Spinner/SpinnerFallbackAnimation.d.ts +25 -25
- package/components/Spinner/index.d.ts +1 -1
- package/components/Spinner/locale/index.d.ts +4 -4
- package/components/Spinner/locale/locales/en.d.ts +2 -2
- package/components/Spinner/locale/locales/ru.d.ts +2 -2
- package/components/Spinner/locale/types.d.ts +4 -4
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +58 -53
- package/components/Sticky/Sticky.md +27 -27
- package/components/Sticky/Sticky.styles.d.ts +7 -7
- package/components/Sticky/index.d.ts +1 -1
- package/components/Switcher/Switcher.d.ts +55 -55
- package/components/Switcher/Switcher.md +10 -10
- package/components/Switcher/Switcher.styles.d.ts +10 -10
- package/components/Switcher/index.d.ts +1 -1
- package/components/Switcher/switcherTheme.d.ts +2 -2
- package/components/Tabs/Indicator.d.ts +27 -27
- package/components/Tabs/Indicator.styles.d.ts +8 -8
- package/components/Tabs/Tab.d.ts +120 -120
- package/components/Tabs/Tab.styles.d.ts +27 -27
- package/components/Tabs/Tabs.d.ts +61 -61
- package/components/Tabs/Tabs.md +36 -36
- package/components/Tabs/Tabs.styles.d.ts +5 -5
- package/components/Tabs/TabsContext.d.ts +14 -14
- package/components/Tabs/index.d.ts +2 -2
- package/components/Textarea/Textarea.d.ts +184 -184
- package/components/Textarea/Textarea.md +25 -25
- package/components/Textarea/Textarea.styles.d.ts +15 -15
- package/components/Textarea/TextareaCounter.d.ts +13 -13
- package/components/Textarea/TextareaHelpers.d.ts +11 -11
- package/components/Textarea/index.d.ts +1 -1
- package/components/Toast/Toast.d.ts +55 -55
- package/components/Toast/Toast.styles.d.ts +6 -6
- package/components/Toast/ToastStatic.d.ts +8 -8
- package/components/Toast/ToastView.d.ts +37 -37
- package/components/Toast/ToastView.styles.d.ts +8 -8
- package/components/Toast/index.d.ts +1 -1
- package/components/Toggle/Toggle.d.ts +106 -106
- package/components/Toggle/Toggle.styles.d.ts +30 -30
- package/components/Toggle/index.d.ts +1 -1
- package/components/Token/Token.d.ts +35 -35
- package/components/Token/Token.md +112 -112
- package/components/Token/Token.styles.d.ts +29 -29
- package/components/Token/index.d.ts +1 -1
- package/components/TokenInput/TextWidthHelper.d.ts +18 -18
- package/components/TokenInput/TokenInput.d.ts +193 -193
- package/components/TokenInput/TokenInput.md +79 -79
- package/components/TokenInput/TokenInput.styles.d.ts +15 -15
- package/components/TokenInput/TokenInputMenu.d.ts +18 -18
- package/components/TokenInput/TokenInputReducer.d.ts +25 -25
- package/components/TokenInput/index.d.ts +1 -1
- package/components/TokenInput/locale/index.d.ts +4 -4
- package/components/TokenInput/locale/locales/en.d.ts +2 -2
- package/components/TokenInput/locale/locales/ru.d.ts +2 -2
- package/components/TokenInput/locale/types.d.ts +4 -4
- package/components/Tooltip/Tooltip.d.ts +171 -171
- package/components/Tooltip/Tooltip.md +292 -292
- package/components/Tooltip/Tooltip.styles.d.ts +5 -5
- package/components/Tooltip/index.d.ts +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +64 -64
- package/components/TooltipMenu/index.d.ts +1 -1
- package/index.d.ts +48 -48
- package/internal/BGRuler.d.ts +30 -30
- package/internal/Calendar/Calendar.d.ts +66 -66
- package/internal/Calendar/Calendar.styles.d.ts +5 -5
- package/internal/Calendar/CalendarDateShape.d.ts +14 -14
- package/internal/Calendar/CalendarScrollEvents.d.ts +4 -4
- package/internal/Calendar/CalendarUtils.d.ts +19 -19
- package/internal/Calendar/DayCellView.d.ts +13 -13
- package/internal/Calendar/DayCellView.styles.d.ts +7 -7
- package/internal/Calendar/DayCellViewModel.d.ts +8 -8
- package/internal/Calendar/Month.d.ts +33 -33
- package/internal/Calendar/MonthView.d.ts +21 -21
- package/internal/Calendar/MonthView.styles.d.ts +9 -9
- package/internal/Calendar/MonthViewModel.d.ts +14 -14
- package/internal/Calendar/config.d.ts +9 -9
- package/internal/Calendar/index.d.ts +2 -2
- package/internal/CommonWrapper/CommonWrapper.d.ts +23 -23
- package/internal/CommonWrapper/index.d.ts +1 -1
- package/internal/ComponentCombinator.d.ts +25 -25
- package/internal/ComponentTable.d.ts +21 -21
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +31 -31
- package/internal/CustomComboBox/ComboBoxView.d.ts +87 -87
- package/internal/CustomComboBox/CustomComboBox.d.ts +135 -135
- package/internal/CustomComboBox/CustomComboBox.styles.d.ts +5 -5
- package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +71 -71
- package/internal/CustomComboBox/CustomComboBoxTypes.d.ts +6 -6
- package/internal/CustomComboBox/index.d.ts +2 -2
- package/internal/CustomComboBox/locale/index.d.ts +4 -4
- package/internal/CustomComboBox/locale/locales/en.d.ts +2 -2
- package/internal/CustomComboBox/locale/locales/ru.d.ts +2 -2
- package/internal/CustomComboBox/locale/types.d.ts +5 -5
- package/internal/DateSelect/DateSelect.d.ts +93 -93
- package/internal/DateSelect/DateSelect.styles.d.ts +19 -19
- package/internal/DateSelect/index.d.ts +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +46 -46
- package/internal/DropdownContainer/index.d.ts +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +16 -16
- package/internal/FocusTrap/index.d.ts +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +14 -14
- package/internal/HideBodyVerticalScroll/index.d.ts +1 -1
- package/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +8 -8
- package/internal/IgnoreLayerClick/index.d.ts +1 -1
- package/internal/InputLikeText/HiddenInput.d.ts +13 -13
- package/internal/InputLikeText/InputLikeText.d.ts +72 -72
- package/internal/InputLikeText/InputLikeText.styles.d.ts +7 -7
- package/internal/InputLikeText/index.d.ts +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +64 -64
- package/internal/InternalMenu/InternalMenu.styles.d.ts +9 -9
- package/internal/InternalMenu/index.d.ts +1 -1
- package/internal/InternalMenu/isActiveElement.d.ts +3 -3
- package/internal/MaskCharLowLine/MaskCharLowLine.d.ts +9 -9
- package/internal/MaskCharLowLine/MaskCharLowLine.styles.d.ts +3 -3
- package/internal/MaskCharLowLine/index.d.ts +1 -1
- package/internal/MaskedInput/MaskedInput.d.ts +40 -40
- package/internal/MaskedInput/MaskedInput.styles.d.ts +6 -6
- package/internal/MaskedInput/index.d.ts +1 -1
- package/internal/Menu/Menu.d.ts +62 -62
- package/internal/Menu/Menu.styles.d.ts +6 -6
- package/internal/Menu/index.d.ts +1 -1
- package/internal/Menu/isActiveElement.d.ts +3 -3
- package/internal/NativeDateInput/NativeDateInput.d.ts +23 -23
- package/internal/NativeDateInput/NativeDateInput.styles.d.ts +3 -3
- package/internal/NativeDateInput/index.d.ts +1 -1
- package/internal/NativeDateInput/utils.d.ts +7 -7
- package/internal/PerformanceMetrics/PerformanceMetrics.d.ts +7 -7
- package/internal/Popup/Popup/Popup.js +11 -20
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +161 -161
- package/internal/Popup/Popup.styles.d.ts +16 -16
- package/internal/Popup/PopupHelper.d.ts +26 -26
- package/internal/Popup/PopupPin.d.ts +56 -56
- package/internal/Popup/PopupPin.styles.d.ts +3 -3
- package/internal/Popup/index.d.ts +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +84 -84
- package/internal/PopupMenu/PopupMenu.styles.d.ts +4 -4
- package/internal/PopupMenu/PopupMenuPositions.d.ts +2 -2
- package/internal/PopupMenu/index.d.ts +1 -1
- package/internal/PopupMenu/validatePositions.d.ts +2 -2
- package/internal/RenderContainer/RenderContainer.d.ts +16 -16
- package/internal/RenderContainer/RenderContainerTypes.d.ts +11 -11
- package/internal/RenderContainer/RenderInnerContainer.d.ts +13 -13
- package/internal/RenderContainer/index.d.ts +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +27 -27
- package/internal/RenderLayer/index.d.ts +1 -1
- package/internal/ResizeDetector/ResizeDetector.d.ts +12 -12
- package/internal/ResizeDetector/ResizeDetector.styles.d.ts +5 -5
- package/internal/ResizeDetector/index.d.ts +1 -1
- package/internal/ThemePlayground/AnotherInputsPlayground.d.ts +13 -13
- package/internal/ThemePlayground/CheckboxPlayground.d.ts +1 -1
- package/internal/ThemePlayground/ComponentsGroup.d.ts +10 -10
- package/internal/ThemePlayground/CurrencyInputPlayground.d.ts +11 -11
- package/internal/ThemePlayground/FxInputPlayground.d.ts +10 -10
- package/internal/ThemePlayground/HintPlayground.d.ts +6 -6
- package/internal/ThemePlayground/PagingPlayground.d.ts +10 -10
- package/internal/ThemePlayground/Playground.d.ts +31 -31
- package/internal/ThemePlayground/Playground.md +7 -7
- package/internal/ThemePlayground/Playground.styles.d.ts +23 -23
- package/internal/ThemePlayground/RadioPlayground.d.ts +1 -1
- package/internal/ThemePlayground/SelectPlayground.d.ts +12 -12
- package/internal/ThemePlayground/ShowcaseGroup.d.ts +5 -5
- package/internal/ThemePlayground/SwitcherPlayground.d.ts +15 -15
- package/internal/ThemePlayground/ThemeContextPlayground.d.ts +51 -51
- package/internal/ThemePlayground/ThemeEditor.d.ts +39 -39
- package/internal/ThemePlayground/TogglePlayground.d.ts +9 -9
- package/internal/ThemePlayground/TokenInputPlayground.d.ts +7 -7
- package/internal/ThemePlayground/VariableValue.d.ts +45 -45
- package/internal/ThemePlayground/constants.d.ts +18 -18
- package/internal/ThemePlayground/darkTheme.d.ts +255 -255
- package/internal/ThemePlayground/helpers.d.ts +2 -2
- package/internal/ThemeShowcase/ThemeShowcase.d.ts +22 -22
- package/internal/ThemeShowcase/ThemeShowcase.md +13 -13
- package/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +24 -24
- package/internal/ThemeShowcase/VariablesCollector.d.ts +22 -22
- package/internal/ZIndex/ZIndex.d.ts +34 -34
- package/internal/ZIndex/ZIndexStorage.d.ts +18 -18
- package/internal/ZIndex/index.d.ts +1 -1
- package/internal/icons/16px/icon.styles.d.ts +4 -4
- package/internal/icons/16px/index.d.ts +21 -21
- package/internal/icons/20px/Icon.d.ts +30 -30
- package/internal/icons/20px/icon.styles.d.ts +4 -4
- package/internal/icons/20px/index.d.ts +2 -2
- package/internal/icons/20px/svg.d.ts +14 -14
- package/internal/icons/CloudIcon.d.ts +1 -1
- package/internal/icons/CrossIcon.d.ts +1 -1
- package/internal/icons/SpinnerIcon.d.ts +23 -23
- package/internal/icons/SpinnerIcon.styles.d.ts +4 -4
- package/internal/themes/DefaultTheme.d.ts +766 -766
- package/internal/themes/FlatTheme.d.ts +132 -132
- package/internal/themes/Theme8px.d.ts +271 -271
- package/lib/ConditionalHandler.d.ts +11 -11
- package/lib/LayoutEvents.d.ts +4 -4
- package/lib/ModalStack.d.ts +14 -14
- package/lib/SSRSafe.d.ts +4 -4
- package/lib/Supports.d.ts +1 -1
- package/lib/Upgrades.d.ts +6 -6
- package/lib/animation/index.d.ts +6 -6
- package/lib/animation/presets.d.ts +18 -18
- package/lib/animation/stepper.d.ts +1 -1
- package/lib/client.d.ts +16 -16
- package/lib/createPropsGetter.d.ts +2 -2
- package/lib/currentEnvironment.d.ts +3 -3
- package/lib/date/InternalDate.d.ts +58 -58
- package/lib/date/InternalDateCalculator.d.ts +6 -6
- package/lib/date/InternalDateGetter.d.ts +15 -15
- package/lib/date/InternalDateSetter.d.ts +6 -6
- package/lib/date/InternalDateTransformer.d.ts +12 -12
- package/lib/date/InternalDateValidator.d.ts +12 -12
- package/lib/date/constants.d.ts +28 -28
- package/lib/date/localeSets.d.ts +5 -5
- package/lib/date/types.d.ts +90 -90
- package/lib/dom/getScrollWidth.d.ts +1 -1
- package/lib/dom/tabbableHelpers.d.ts +16 -16
- package/lib/events/MouseDrag.d.ts +58 -58
- package/lib/events/fixClickFocusIE.d.ts +1 -1
- package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -2
- package/lib/events/keyListener.d.ts +7 -7
- package/lib/events/keyboard/KeyboardEventCodes.d.ts +30 -30
- package/lib/events/keyboard/KeyboardMapKeys.d.ts +6 -6
- package/lib/events/keyboard/extractCode.d.ts +3 -3
- package/lib/events/keyboard/identifiers.d.ts +48 -48
- package/lib/events/stopPropagation.d.ts +1 -1
- package/lib/events/tabListener.d.ts +1 -1
- package/lib/extractKeyboardAction.d.ts +13 -13
- package/lib/filterProps.d.ts +12 -12
- package/lib/forwardRefAndName.d.ts +5 -5
- package/lib/getDisplayName.d.ts +3 -3
- package/lib/listenFocusOutside.d.ts +8 -8
- package/lib/locale/LocaleContext.d.ts +7 -7
- package/lib/locale/LocaleHelper.d.ts +9 -9
- package/lib/locale/constants.d.ts +2 -2
- package/lib/locale/decorators.d.ts +36 -36
- package/lib/locale/index.d.ts +3 -3
- package/lib/locale/types.d.ts +19 -19
- package/lib/memo.d.ts +1 -1
- package/lib/net/fetch.d.ts +13 -13
- package/lib/polyfillPlaceholder.d.ts +1 -1
- package/lib/reactGetTextContent.d.ts +2 -2
- package/lib/styles/ColorFactory.d.ts +11 -11
- package/lib/styles/ColorFunctions.d.ts +11 -11
- package/lib/styles/ColorHelpers.d.ts +20 -20
- package/lib/styles/ColorKeywords.d.ts +150 -150
- package/lib/styles/ColorObject.d.ts +52 -52
- package/lib/styles/DimensionFunctions.d.ts +1 -1
- package/lib/styles/HoldSelectionColor.d.ts +1 -1
- package/lib/styles/Mixins.d.ts +2 -2
- package/lib/taskWithDelayAndMinimalDuration.d.ts +21 -21
- package/lib/theming/AnimationKeyframes.d.ts +9 -9
- package/lib/theming/Emotion.d.ts +15 -15
- package/lib/theming/Theme.d.ts +3 -3
- package/lib/theming/ThemeContext.d.ts +2 -2
- package/lib/theming/ThemeFactory.d.ts +8 -8
- package/lib/theming/ThemeHelpers.d.ts +11 -11
- package/lib/theming/themes/DefaultTheme.d.ts +1 -1
- package/lib/theming/themes/DefaultThemeOld.d.ts +1 -1
- package/lib/theming/themes/FlatTheme.d.ts +1 -1
- package/lib/theming/themes/FlatThemeOld.d.ts +1 -1
- package/lib/utils.d.ts +28 -28
- package/lib/withClassWrapper/withClassWrapper.js.map +1 -1
- package/lib/withClassWrapper.d.ts +68 -71
- package/package.json +1 -1
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface MaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
3
|
-
mask: string;
|
|
4
|
-
maskChar: string | null;
|
|
5
|
-
formatChars?: {
|
|
6
|
-
[key: string]: string;
|
|
7
|
-
};
|
|
8
|
-
alwaysShowMask?: boolean;
|
|
9
|
-
hasLeftIcon?: boolean;
|
|
10
|
-
hasRightIcon?: boolean;
|
|
11
|
-
onUnexpectedInput?: (value: string) => void;
|
|
12
|
-
onValueChange?: (value: string) => void;
|
|
13
|
-
}
|
|
14
|
-
interface MaskedInputState {
|
|
15
|
-
value: string;
|
|
16
|
-
emptyValue: string;
|
|
17
|
-
focused: boolean;
|
|
18
|
-
}
|
|
19
|
-
export declare class MaskedInput extends React.Component<MaskedInputProps, MaskedInputState> {
|
|
20
|
-
static __KONTUR_REACT_UI__: string;
|
|
21
|
-
static defaultProps: Partial<MaskedInputProps>;
|
|
22
|
-
input: HTMLInputElement | null;
|
|
23
|
-
private theme;
|
|
24
|
-
private reactInputMask;
|
|
25
|
-
constructor(props: MaskedInputProps);
|
|
26
|
-
componentDidMount(): void;
|
|
27
|
-
UNSAFE_componentWillReceiveProps(nextProps: MaskedInputProps): void;
|
|
28
|
-
render(): JSX.Element;
|
|
29
|
-
private renderMain;
|
|
30
|
-
private getValue;
|
|
31
|
-
private refInput;
|
|
32
|
-
private refMaskedInput;
|
|
33
|
-
private handleChange;
|
|
34
|
-
private handleFocus;
|
|
35
|
-
private handleBlur;
|
|
36
|
-
private preprocess;
|
|
37
|
-
private isMaskVisible;
|
|
38
|
-
private handleUnexpectedInput;
|
|
39
|
-
}
|
|
40
|
-
export {};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface MaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
|
|
3
|
+
mask: string;
|
|
4
|
+
maskChar: string | null;
|
|
5
|
+
formatChars?: {
|
|
6
|
+
[key: string]: string;
|
|
7
|
+
};
|
|
8
|
+
alwaysShowMask?: boolean;
|
|
9
|
+
hasLeftIcon?: boolean;
|
|
10
|
+
hasRightIcon?: boolean;
|
|
11
|
+
onUnexpectedInput?: (value: string) => void;
|
|
12
|
+
onValueChange?: (value: string) => void;
|
|
13
|
+
}
|
|
14
|
+
interface MaskedInputState {
|
|
15
|
+
value: string;
|
|
16
|
+
emptyValue: string;
|
|
17
|
+
focused: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare class MaskedInput extends React.Component<MaskedInputProps, MaskedInputState> {
|
|
20
|
+
static __KONTUR_REACT_UI__: string;
|
|
21
|
+
static defaultProps: Partial<MaskedInputProps>;
|
|
22
|
+
input: HTMLInputElement | null;
|
|
23
|
+
private theme;
|
|
24
|
+
private reactInputMask;
|
|
25
|
+
constructor(props: MaskedInputProps);
|
|
26
|
+
componentDidMount(): void;
|
|
27
|
+
UNSAFE_componentWillReceiveProps(nextProps: MaskedInputProps): void;
|
|
28
|
+
render(): JSX.Element;
|
|
29
|
+
private renderMain;
|
|
30
|
+
private getValue;
|
|
31
|
+
private refInput;
|
|
32
|
+
private refMaskedInput;
|
|
33
|
+
private handleChange;
|
|
34
|
+
private handleFocus;
|
|
35
|
+
private handleBlur;
|
|
36
|
+
private preprocess;
|
|
37
|
+
private isMaskVisible;
|
|
38
|
+
private handleUnexpectedInput;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Theme } from '../../lib/theming/Theme';
|
|
2
|
-
export declare const styles: {
|
|
3
|
-
container(): string;
|
|
4
|
-
inputMask(t: Theme): string;
|
|
5
|
-
inputMaskLeft(): string;
|
|
6
|
-
};
|
|
1
|
+
import { Theme } from '../../lib/theming/Theme';
|
|
2
|
+
export declare const styles: {
|
|
3
|
+
container(): string;
|
|
4
|
+
inputMask(t: Theme): string;
|
|
5
|
+
inputMaskLeft(): string;
|
|
6
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './MaskedInput';
|
|
1
|
+
export * from './MaskedInput';
|
package/internal/Menu/Menu.d.ts
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export interface MenuProps {
|
|
3
|
-
children: React.ReactNode;
|
|
4
|
-
hasShadow?: boolean;
|
|
5
|
-
maxHeight?: number | string;
|
|
6
|
-
onItemClick?: () => void;
|
|
7
|
-
width?: number | string;
|
|
8
|
-
preventWindowScroll?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export interface MenuState {
|
|
11
|
-
highlightedIndex: number;
|
|
12
|
-
}
|
|
13
|
-
export declare class Menu extends React.Component<MenuProps, MenuState> {
|
|
14
|
-
static __KONTUR_REACT_UI__: string;
|
|
15
|
-
static defaultProps: {
|
|
16
|
-
width: string;
|
|
17
|
-
maxHeight: number;
|
|
18
|
-
hasShadow: boolean;
|
|
19
|
-
preventWindowScroll: boolean;
|
|
20
|
-
};
|
|
21
|
-
state: {
|
|
22
|
-
highlightedIndex: number;
|
|
23
|
-
};
|
|
24
|
-
private theme;
|
|
25
|
-
private scrollContainer;
|
|
26
|
-
private highlighted;
|
|
27
|
-
private unmounted;
|
|
28
|
-
componentWillUnmount(): void;
|
|
29
|
-
render(): JSX.Element;
|
|
30
|
-
/**
|
|
31
|
-
* @public
|
|
32
|
-
*/
|
|
33
|
-
up(): void;
|
|
34
|
-
/**
|
|
35
|
-
* @public
|
|
36
|
-
*/
|
|
37
|
-
down(): void;
|
|
38
|
-
/**
|
|
39
|
-
* @public
|
|
40
|
-
*/
|
|
41
|
-
enter(event: React.SyntheticEvent<HTMLElement>): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* @public
|
|
44
|
-
*/
|
|
45
|
-
reset(): void;
|
|
46
|
-
/**
|
|
47
|
-
* @public
|
|
48
|
-
*/
|
|
49
|
-
hasHighlightedItem(): boolean;
|
|
50
|
-
highlightItem(index: number): void;
|
|
51
|
-
private renderMain;
|
|
52
|
-
private refScrollContainer;
|
|
53
|
-
private refHighlighted;
|
|
54
|
-
private scrollToSelected;
|
|
55
|
-
private scrollToTop;
|
|
56
|
-
private scrollToBottom;
|
|
57
|
-
private select;
|
|
58
|
-
private highlight;
|
|
59
|
-
private unhighlight;
|
|
60
|
-
private move;
|
|
61
|
-
private isEmpty;
|
|
62
|
-
}
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface MenuProps {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
hasShadow?: boolean;
|
|
5
|
+
maxHeight?: number | string;
|
|
6
|
+
onItemClick?: () => void;
|
|
7
|
+
width?: number | string;
|
|
8
|
+
preventWindowScroll?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface MenuState {
|
|
11
|
+
highlightedIndex: number;
|
|
12
|
+
}
|
|
13
|
+
export declare class Menu extends React.Component<MenuProps, MenuState> {
|
|
14
|
+
static __KONTUR_REACT_UI__: string;
|
|
15
|
+
static defaultProps: {
|
|
16
|
+
width: string;
|
|
17
|
+
maxHeight: number;
|
|
18
|
+
hasShadow: boolean;
|
|
19
|
+
preventWindowScroll: boolean;
|
|
20
|
+
};
|
|
21
|
+
state: {
|
|
22
|
+
highlightedIndex: number;
|
|
23
|
+
};
|
|
24
|
+
private theme;
|
|
25
|
+
private scrollContainer;
|
|
26
|
+
private highlighted;
|
|
27
|
+
private unmounted;
|
|
28
|
+
componentWillUnmount(): void;
|
|
29
|
+
render(): JSX.Element;
|
|
30
|
+
/**
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
up(): void;
|
|
34
|
+
/**
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
down(): void;
|
|
38
|
+
/**
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
41
|
+
enter(event: React.SyntheticEvent<HTMLElement>): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* @public
|
|
44
|
+
*/
|
|
45
|
+
reset(): void;
|
|
46
|
+
/**
|
|
47
|
+
* @public
|
|
48
|
+
*/
|
|
49
|
+
hasHighlightedItem(): boolean;
|
|
50
|
+
highlightItem(index: number): void;
|
|
51
|
+
private renderMain;
|
|
52
|
+
private refScrollContainer;
|
|
53
|
+
private refHighlighted;
|
|
54
|
+
private scrollToSelected;
|
|
55
|
+
private scrollToTop;
|
|
56
|
+
private scrollToBottom;
|
|
57
|
+
private select;
|
|
58
|
+
private highlight;
|
|
59
|
+
private unhighlight;
|
|
60
|
+
private move;
|
|
61
|
+
private isEmpty;
|
|
62
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Theme } from '../../lib/theming/Theme';
|
|
2
|
-
export declare const styles: {
|
|
3
|
-
root(t: Theme): string;
|
|
4
|
-
scrollContainer(t: Theme): string;
|
|
5
|
-
shadow(t: Theme): string;
|
|
6
|
-
};
|
|
1
|
+
import { Theme } from '../../lib/theming/Theme';
|
|
2
|
+
export declare const styles: {
|
|
3
|
+
root(t: Theme): string;
|
|
4
|
+
scrollContainer(t: Theme): string;
|
|
5
|
+
shadow(t: Theme): string;
|
|
6
|
+
};
|
package/internal/Menu/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './Menu';
|
|
1
|
+
export * from './Menu';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { MenuItem, MenuItemProps } from '../../components/MenuItem';
|
|
3
|
-
export declare function isActiveElement(element: any): element is React.ComponentElement<MenuItemProps, MenuItem>;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MenuItem, MenuItemProps } from '../../components/MenuItem';
|
|
3
|
+
export declare function isActiveElement(element: any): element is React.ComponentElement<MenuItemProps, MenuItem>;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Nullable } from '../../typings/utility-types';
|
|
3
|
-
export interface NativeDateInputProps {
|
|
4
|
-
onValueChange?: (value: string) => void;
|
|
5
|
-
value: Nullable<string>;
|
|
6
|
-
minDate?: Nullable<string>;
|
|
7
|
-
maxDate?: Nullable<string>;
|
|
8
|
-
disabled?: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare class NativeDateInput extends React.Component<NativeDateInputProps> {
|
|
11
|
-
static __KONTUR_REACT_UI__: string;
|
|
12
|
-
private input;
|
|
13
|
-
render(): JSX.Element;
|
|
14
|
-
/**
|
|
15
|
-
* @public
|
|
16
|
-
*/
|
|
17
|
-
focus: () => void;
|
|
18
|
-
/**
|
|
19
|
-
* @public
|
|
20
|
-
*/
|
|
21
|
-
click: () => void;
|
|
22
|
-
private refInput;
|
|
23
|
-
}
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Nullable } from '../../typings/utility-types';
|
|
3
|
+
export interface NativeDateInputProps {
|
|
4
|
+
onValueChange?: (value: string) => void;
|
|
5
|
+
value: Nullable<string>;
|
|
6
|
+
minDate?: Nullable<string>;
|
|
7
|
+
maxDate?: Nullable<string>;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class NativeDateInput extends React.Component<NativeDateInputProps> {
|
|
11
|
+
static __KONTUR_REACT_UI__: string;
|
|
12
|
+
private input;
|
|
13
|
+
render(): JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
focus: () => void;
|
|
18
|
+
/**
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
click: () => void;
|
|
22
|
+
private refInput;
|
|
23
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const jsStyles: {
|
|
2
|
-
inputTypeDate(): string;
|
|
3
|
-
};
|
|
1
|
+
export declare const jsStyles: {
|
|
2
|
+
inputTypeDate(): string;
|
|
3
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './NativeDateInput';
|
|
1
|
+
export * from './NativeDateInput';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Nullable } from '../../typings/utility-types';
|
|
2
|
-
import { CalendarDateShape } from '../Calendar';
|
|
3
|
-
export declare const getDateForNative: (componentDate: Nullable<string>) => string | undefined;
|
|
4
|
-
export declare const getDateForComponent: (nativeDate: Nullable<string>) => string;
|
|
5
|
-
export declare const getNativeDateFromShape: (componentDate: CalendarDateShape | undefined | null) => string | undefined;
|
|
6
|
-
export declare const upMonthOfShape: (DateShape: CalendarDateShape | undefined) => CalendarDateShape | undefined;
|
|
7
|
-
export declare const getShapeFromNativeDate: (nativeDate: Nullable<string>) => CalendarDateShape | undefined;
|
|
1
|
+
import { Nullable } from '../../typings/utility-types';
|
|
2
|
+
import { CalendarDateShape } from '../Calendar';
|
|
3
|
+
export declare const getDateForNative: (componentDate: Nullable<string>) => string | undefined;
|
|
4
|
+
export declare const getDateForComponent: (nativeDate: Nullable<string>) => string;
|
|
5
|
+
export declare const getNativeDateFromShape: (componentDate: CalendarDateShape | undefined | null) => string | undefined;
|
|
6
|
+
export declare const upMonthOfShape: (DateShape: CalendarDateShape | undefined) => CalendarDateShape | undefined;
|
|
7
|
+
export declare const getShapeFromNativeDate: (nativeDate: Nullable<string>) => CalendarDateShape | undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
interface PerformanceMetricsProps {
|
|
3
|
-
componentsA: React.ReactElement<any>;
|
|
4
|
-
componentsB: React.ReactElement<any>;
|
|
5
|
-
}
|
|
6
|
-
export declare function PerformanceMetrics(props: PerformanceMetricsProps): JSX.Element;
|
|
7
|
-
export {};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface PerformanceMetricsProps {
|
|
3
|
+
componentsA: React.ReactElement<any>;
|
|
4
|
+
componentsB: React.ReactElement<any>;
|
|
5
|
+
}
|
|
6
|
+
export declare function PerformanceMetrics(props: PerformanceMetricsProps): JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -77,8 +77,8 @@ var DUMMY_LOCATION = {
|
|
|
77
77
|
}
|
|
78
78
|
};
|
|
79
79
|
export var PopupPositions = ['top left', 'top center', 'top right', 'right top', 'right middle', 'right bottom', 'bottom right', 'bottom center', 'bottom left', 'left bottom', 'left middle', 'left top'];
|
|
80
|
-
export var Popup = /*#__PURE__*/function (_React$
|
|
81
|
-
_inheritsLoose(Popup, _React$
|
|
80
|
+
export var Popup = /*#__PURE__*/function (_React$Component) {
|
|
81
|
+
_inheritsLoose(Popup, _React$Component);
|
|
82
82
|
|
|
83
83
|
function Popup() {
|
|
84
84
|
var _this;
|
|
@@ -87,7 +87,7 @@ export var Popup = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
87
87
|
args[_key] = arguments[_key];
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
_this = _React$
|
|
90
|
+
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
91
91
|
_this.state = {
|
|
92
92
|
location: _this.props.opened ? DUMMY_LOCATION : null
|
|
93
93
|
};
|
|
@@ -194,28 +194,23 @@ export var Popup = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
194
194
|
var _proto = Popup.prototype;
|
|
195
195
|
|
|
196
196
|
_proto.componentDidMount = function componentDidMount() {
|
|
197
|
-
console.log('wat');
|
|
198
197
|
this.updateLocation();
|
|
199
198
|
this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);
|
|
200
199
|
};
|
|
201
200
|
|
|
202
|
-
|
|
201
|
+
_proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) {
|
|
203
202
|
/**
|
|
204
203
|
* Delaying updateLocation to ensure it happens after props update
|
|
205
204
|
*/
|
|
206
|
-
if (
|
|
207
|
-
if (!state.location) {
|
|
208
|
-
|
|
205
|
+
if (nextProps.opened) {
|
|
206
|
+
if (!this.state.location) {
|
|
207
|
+
this.setState({
|
|
209
208
|
location: DUMMY_LOCATION
|
|
210
|
-
};
|
|
209
|
+
});
|
|
211
210
|
}
|
|
212
|
-
} else {
|
|
213
|
-
return {
|
|
214
|
-
location: DUMMY_LOCATION
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
211
|
|
|
218
|
-
|
|
212
|
+
this.delayUpdateLocation();
|
|
213
|
+
}
|
|
219
214
|
};
|
|
220
215
|
|
|
221
216
|
_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
|
|
@@ -229,10 +224,6 @@ export var Popup = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
229
224
|
if (!hadNoLocation && !this.state.location && this.props.onClose) {
|
|
230
225
|
this.props.onClose();
|
|
231
226
|
}
|
|
232
|
-
|
|
233
|
-
if (this.props.opened) {
|
|
234
|
-
this.delayUpdateLocation();
|
|
235
|
-
}
|
|
236
227
|
};
|
|
237
228
|
|
|
238
229
|
_proto.componentWillUnmount = function componentWillUnmount() {
|
|
@@ -580,7 +571,7 @@ export var Popup = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
580
571
|
};
|
|
581
572
|
|
|
582
573
|
return Popup;
|
|
583
|
-
}(React.
|
|
574
|
+
}(React.Component);
|
|
584
575
|
Popup.__KONTUR_REACT_UI__ = 'Popup';
|
|
585
576
|
Popup.propTypes = {
|
|
586
577
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Popup.tsx"],"names":["React","findDOMNode","PropTypes","Transition","raf","warning","LayoutEvents","ZIndex","RenderContainer","isFunction","isNonNullable","isIE11","isEdge","isSafari","ThemeContext","isHTMLElement","safePropTypesInstanceOf","isTestEnv","CommonWrapper","cx","PopupPin","PopupHelper","styles","POPUP_BORDER_DEFAULT_COLOR","TRANSITION_TIMEOUT","enter","exit","DUMMY_LOCATION","position","coordinates","top","left","PopupPositions","Popup","state","location","props","opened","theme","layoutEventsToken","locationUpdateId","lastPopupElement","anchorElement","anchorInstance","refAnchorElement","instance","element","extractElement","updateAnchorElement","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","offsetWidth","parseFloat","resetLocation","cancelDelayedUpdateLocation","setState","refPopupElement","zIndex","handleLayoutEvent","updateLocation","popupElement","getLocation","locationEquals","componentDidMount","console","log","addListener","getDerivedStateFromProps","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","onOpen","onClose","delayUpdateLocation","componentWillUnmount","removeEventListeners","remove","render","renderMain","useWrapper","child","isValidElement","undefined","renderContent","addEventListeners","addEventListener","removeEventListener","backgroundColor","disableAnimations","maxWidth","hasShadow","ignoreHover","children","renderChildren","getPositionObject","direction","rootStyle","shouldFallbackShadow","Boolean","popup","shadow","shadowFallback","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","content","contentInner","renderPin","positionName","isDefaultBorderColor","popupBorderColor","pinBorder","pinSize","borderColor","hasPin","parseInt","popupPinSize","getPinOffset","align","popupBackground","cancel","x","y","positions","tryPreserveFirstRenderedPosition","anchorRect","getElementAbsoluteRect","popupRect","getCoordinates","isFullyVisible","canBecomeVisible","canBecomeFullyVisible","getPinnedPopupOffset","test","anchorSize","height","Math","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","getHorizontalPosition","getVerticalPosition","Error","pinOffset","popupPinOffset","popupPinOffsetY","popupPinOffsetX","PureComponent","__KONTUR_REACT_UI__","propTypes","oneOfType","HTMLElement","node","isRequired","string","func","bool","number","array","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport raf from 'raf';\nimport warning from 'warning';\n\nimport { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { isFunction, isNonNullable } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isHTMLElement, safePropTypesInstanceOf } from '../../lib/SSRSafe';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { PopupPin } from './PopupPin';\nimport { Offset, PopupHelper, PositionObject, Rect } from './PopupHelper';\nimport { styles } from './Popup.styles';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nconst DUMMY_LOCATION: PopupLocation = {\n position: 'top left',\n coordinates: {\n top: -9999,\n left: -9999,\n },\n};\n\nexport type PopupPosition =\n | 'top left'\n | 'top center'\n | 'top right'\n | 'right top'\n | 'right middle'\n | 'right bottom'\n | 'bottom left'\n | 'bottom center'\n | 'bottom right'\n | 'left top'\n | 'left middle'\n | 'left bottom';\n\nexport const PopupPositions: PopupPosition[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom right',\n 'bottom center',\n 'bottom left',\n 'left bottom',\n 'left middle',\n 'left top',\n];\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps extends CommonProps, PopupHandlerProps {\n anchorElement: React.ReactNode | HTMLElement;\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n hasPin: boolean;\n hasShadow: boolean;\n disableAnimations: boolean;\n margin?: number;\n maxWidth?: number | string;\n opened: boolean;\n pinOffset?: number;\n pinSize?: number;\n popupOffset: number;\n positions: PopupPosition[];\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper: boolean;\n ignoreHover: boolean;\n width: React.CSSProperties['width'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPosition;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport class Popup extends React.PureComponent<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n\n public static propTypes = {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: PropTypes.oneOfType([safePropTypesInstanceOf(() => HTMLElement), PropTypes.node]).isRequired,\n\n /**\n * Фон попапа и пина\n */\n backgroundColor: PropTypes.string,\n\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * Показывать ли пин\n */\n hasPin: PropTypes.bool,\n\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow: PropTypes.bool,\n\n /**\n * Отступ попапа от элемента\n */\n margin: PropTypes.number,\n\n /**\n * Показан или скрыт попап\n */\n opened: PropTypes.bool,\n\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset: PropTypes.number,\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize: PropTypes.number,\n\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset: PropTypes.number,\n\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions: PropTypes.array,\n\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover: PropTypes.bool,\n };\n\n public static defaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n width: 'auto',\n };\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupElement: Nullable<HTMLElement>;\n private anchorElement: Nullable<HTMLElement> = null;\n private anchorInstance: Nullable<React.ReactInstance>;\n\n public componentDidMount() {\n console.log('wat');\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\n }\n\n static getDerivedStateFromProps(props: PopupProps, state: PopupState) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (props.opened) {\n if (!state.location) {\n return { location: DUMMY_LOCATION };\n }\n } else {\n return { location: DUMMY_LOCATION };\n }\n return state;\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n if (hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (!hadNoLocation && !this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n\n if (this.props.opened) {\n this.delayUpdateLocation();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n this.removeEventListeners(this.anchorElement);\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { location } = this.state;\n const { anchorElement, useWrapper } = this.props;\n\n let child: Nullable<React.ReactNode> = null;\n if (isHTMLElement(anchorElement)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n child = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n child = <span>{anchorElement}</span>;\n }\n\n return (\n <RenderContainer anchor={child} ref={child ? this.refAnchorElement : undefined}>\n {location && this.renderContent(location)}\n </RenderContainer>\n );\n }\n\n private refAnchorElement = (instance: React.ReactInstance | null) => {\n this.anchorInstance = instance;\n const element = this.extractElement(instance);\n this.updateAnchorElement(element);\n this.anchorElement = element;\n };\n\n private extractElement(instance: React.ReactInstance | null) {\n if (!instance) {\n return null;\n }\n const element = findDOMNode(instance);\n return isHTMLElement(element) ? element : null;\n }\n\n private updateAnchorElement(element: HTMLElement | null) {\n const anchorElement = this.anchorElement;\n\n if (element !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = element;\n this.addEventListeners(element);\n }\n }\n\n private addEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.addEventListener('mouseenter', this.handleMouseEnter);\n element.addEventListener('mouseleave', this.handleMouseLeave);\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private removeEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n return this.anchorElement ? (this.anchorElement.offsetWidth * parseFloat(width)) / 100 : 0;\n }\n return width;\n };\n\n private renderContent(location: PopupLocation) {\n const { backgroundColor, disableAnimations, maxWidth, hasShadow, ignoreHover, opened, width } = this.props;\n const children = this.renderChildren();\n\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = { ...location.coordinates, maxWidth };\n\n const shouldFallbackShadow = isIE11 || isEdge || isSafari;\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n >\n {(state: string) => (\n <CommonWrapper {...this.props}>\n <ZIndex\n ref={this.refPopupElement}\n priority={'Popup'}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow && !shouldFallbackShadow,\n [styles.shadowFallback(this.theme)]: hasShadow && shouldFallbackShadow,\n [styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [styles[`transition-enter-${direction}` as keyof typeof styles](this.theme)]: true,\n [styles.transitionEnter()]: state === 'entering',\n [styles.transitionEnterActive()]: state === 'entered',\n [styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <div className={styles.content(this.theme)} data-tid={'PopupContent'}>\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width) }}\n data-tid={'PopupContentInner'}\n >\n {children}\n </div>\n </div>\n {this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupElement = (zIndex: ZIndex | null) => {\n if (zIndex) {\n this.lastPopupElement = zIndex && (findDOMNode(zIndex) as HTMLElement);\n }\n };\n\n private renderPin(positionName: string): React.ReactNode {\n /**\n * Box-shadow does not appear under the pin. Borders are used instead.\n * In non-ie browsers drop-shadow filter is used. It is applying\n * shadow to the pin too.\n */\n const isDefaultBorderColor = this.theme.popupBorderColor === POPUP_BORDER_DEFAULT_COLOR;\n const pinBorder = isIE11 && isDefaultBorderColor ? 'rgba(0, 0, 0, 0.09)' : this.theme.popupBorderColor;\n\n const { pinSize, hasShadow, backgroundColor, borderColor } = this.props;\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n this.props.hasPin && (\n <PopupPin\n popupElement={this.lastPopupElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n borderWidth={hasShadow ? 1 : 0}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n borderColor={borderColor || pinBorder}\n />\n )\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n if (this.anchorInstance) {\n this.updateAnchorElement(this.extractElement(this.anchorInstance));\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = raf(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n raf.cancel(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupElement = this.lastPopupElement;\n\n if (!popupElement) {\n return;\n }\n\n const location = this.getLocation(popupElement, this.state.location);\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (x == null || y == null) {\n return false;\n }\n\n return (\n x.coordinates.left === y.coordinates.left && x.coordinates.top === y.coordinates.top && x.position === y.position\n );\n }\n\n private getLocation(popupElement: HTMLElement, location?: Nullable<PopupLocation>) {\n const { positions, tryPreserveFirstRenderedPosition } = this.props;\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isHTMLElement(anchorElement),\n 'Anchor element is not defined or not instance of HTMLElement',\n );\n\n if (!(anchorElement && isHTMLElement(anchorElement))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPosition;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect);\n const canBecomeVisible = !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect)) {\n return { coordinates, position };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n return { coordinates, position };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.props.hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.props.popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n switch (position.direction) {\n case 'top':\n return {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n throw new Error(`Unexpected direction '${position.direction}'`);\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n\n switch (align) {\n case 'top':\n case 'bottom':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'top':\n return anchorRect.top - popupOffset;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Popup.tsx"],"names":["React","findDOMNode","PropTypes","Transition","raf","warning","LayoutEvents","ZIndex","RenderContainer","isFunction","isNonNullable","isIE11","isEdge","isSafari","ThemeContext","isHTMLElement","safePropTypesInstanceOf","isTestEnv","CommonWrapper","cx","PopupPin","PopupHelper","styles","POPUP_BORDER_DEFAULT_COLOR","TRANSITION_TIMEOUT","enter","exit","DUMMY_LOCATION","position","coordinates","top","left","PopupPositions","Popup","state","location","props","opened","theme","layoutEventsToken","locationUpdateId","lastPopupElement","anchorElement","anchorInstance","refAnchorElement","instance","element","extractElement","updateAnchorElement","handleMouseEnter","event","onMouseEnter","handleMouseLeave","onMouseLeave","handleClick","onClick","handleFocus","onFocus","handleBlur","onBlur","calculateWidth","width","includes","offsetWidth","parseFloat","resetLocation","cancelDelayedUpdateLocation","setState","refPopupElement","zIndex","handleLayoutEvent","updateLocation","popupElement","getLocation","locationEquals","componentDidMount","addListener","UNSAFE_componentWillReceiveProps","nextProps","delayUpdateLocation","componentDidUpdate","prevProps","prevState","hadNoLocation","hasLocation","onOpen","onClose","componentWillUnmount","removeEventListeners","remove","render","renderMain","useWrapper","child","isValidElement","undefined","renderContent","addEventListeners","addEventListener","removeEventListener","backgroundColor","disableAnimations","maxWidth","hasShadow","ignoreHover","children","renderChildren","getPositionObject","direction","rootStyle","shouldFallbackShadow","Boolean","popup","shadow","shadowFallback","popupIgnoreHover","transitionEnter","transitionEnterActive","transitionExit","content","contentInner","renderPin","positionName","isDefaultBorderColor","popupBorderColor","pinBorder","pinSize","borderColor","hasPin","parseInt","popupPinSize","getPinOffset","align","popupBackground","cancel","x","y","positions","tryPreserveFirstRenderedPosition","anchorRect","getElementAbsoluteRect","popupRect","getCoordinates","isFullyVisible","canBecomeVisible","canBecomeFullyVisible","getPinnedPopupOffset","test","anchorSize","height","Math","max","marginFromProps","margin","isNaN","popupMargin","popupOffset","getHorizontalPosition","getVerticalPosition","Error","pinOffset","popupPinOffset","popupPinOffsetY","popupPinOffsetX","Component","__KONTUR_REACT_UI__","propTypes","oneOfType","HTMLElement","node","isRequired","string","func","bool","number","array","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { findDOMNode } from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { Transition } from 'react-transition-group';\nimport raf from 'raf';\nimport warning from 'warning';\n\nimport { Nullable } from '../../typings/utility-types';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { ZIndex } from '../ZIndex';\nimport { RenderContainer } from '../RenderContainer';\nimport { FocusEventType, MouseEventType } from '../../typings/event-types';\nimport { isFunction, isNonNullable } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isHTMLElement, safePropTypesInstanceOf } from '../../lib/SSRSafe';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonProps, CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { PopupPin } from './PopupPin';\nimport { Offset, PopupHelper, PositionObject, Rect } from './PopupHelper';\nimport { styles } from './Popup.styles';\n\nconst POPUP_BORDER_DEFAULT_COLOR = 'transparent';\nconst TRANSITION_TIMEOUT = { enter: 0, exit: 200 };\n\nconst DUMMY_LOCATION: PopupLocation = {\n position: 'top left',\n coordinates: {\n top: -9999,\n left: -9999,\n },\n};\n\nexport type PopupPosition =\n | 'top left'\n | 'top center'\n | 'top right'\n | 'right top'\n | 'right middle'\n | 'right bottom'\n | 'bottom left'\n | 'bottom center'\n | 'bottom right'\n | 'left top'\n | 'left middle'\n | 'left bottom';\n\nexport const PopupPositions: PopupPosition[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right middle',\n 'right bottom',\n 'bottom right',\n 'bottom center',\n 'bottom left',\n 'left bottom',\n 'left middle',\n 'left top',\n];\n\nexport interface PopupHandlerProps {\n onMouseEnter?: (event: MouseEventType) => void;\n onMouseLeave?: (event: MouseEventType) => void;\n onClick?: (event: MouseEventType) => void;\n onFocus?: (event: FocusEventType) => void;\n onBlur?: (event: FocusEventType) => void;\n onOpen?: () => void;\n onClose?: () => void;\n}\n\nexport interface PopupProps extends CommonProps, PopupHandlerProps {\n anchorElement: React.ReactNode | HTMLElement;\n backgroundColor?: React.CSSProperties['backgroundColor'];\n borderColor?: React.CSSProperties['borderColor'];\n children: React.ReactNode | (() => React.ReactNode);\n hasPin: boolean;\n hasShadow: boolean;\n disableAnimations: boolean;\n margin?: number;\n maxWidth?: number | string;\n opened: boolean;\n pinOffset?: number;\n pinSize?: number;\n popupOffset: number;\n positions: PopupPosition[];\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper: boolean;\n ignoreHover: boolean;\n width: React.CSSProperties['width'];\n /**\n * При очередном рендере пытаться сохранить первоначальную позицию попапа\n * (в числе числе, когда он выходит за пределы экрана, но может быть проскролен в него).\n *\n * Нужен только для Tooltip. В остальных случаях позиция перестраивается автоматически.\n * @see https://github.com/skbkontur/retail-ui/pull/1195\n */\n tryPreserveFirstRenderedPosition?: boolean;\n}\n\ninterface PopupLocation {\n coordinates: {\n left: number;\n top: number;\n };\n position: PopupPosition;\n}\n\nexport interface PopupState {\n location: Nullable<PopupLocation>;\n}\n\nexport class Popup extends React.Component<PopupProps, PopupState> {\n public static __KONTUR_REACT_UI__ = 'Popup';\n\n public static propTypes = {\n /**\n * Ссылка (ref) на элемент или React компонент, для которого рисуется попап\n */\n anchorElement: PropTypes.oneOfType([safePropTypesInstanceOf(() => HTMLElement), PropTypes.node]).isRequired,\n\n /**\n * Фон попапа и пина\n */\n backgroundColor: PropTypes.string,\n\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n\n /**\n * Показывать ли пин\n */\n hasPin: PropTypes.bool,\n\n /**\n * Применять ли box-shadow на попапе. При false отключает границу на пине\n */\n hasShadow: PropTypes.bool,\n\n /**\n * Отступ попапа от элемента\n */\n margin: PropTypes.number,\n\n /**\n * Показан или скрыт попап\n */\n opened: PropTypes.bool,\n\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n pinOffset: PropTypes.number,\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n pinSize: PropTypes.number,\n\n /**\n * смещение попапа относительно родительского элемента\n */\n popupOffset: PropTypes.number,\n\n /**\n * С какой стороны показывать попап и край попапа,\n * на котором будет отображаться пин\n */\n positions: PropTypes.array,\n\n /**\n * Игнорировать ли события hover/click\n */\n ignoreHover: PropTypes.bool,\n };\n\n public static defaultProps = {\n popupOffset: 0,\n hasPin: false,\n hasShadow: false,\n disableAnimations: isTestEnv,\n useWrapper: false,\n ignoreHover: false,\n width: 'auto',\n };\n\n public state: PopupState = { location: this.props.opened ? DUMMY_LOCATION : null };\n private theme!: Theme;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>>;\n private locationUpdateId: Nullable<number> = null;\n private lastPopupElement: Nullable<HTMLElement>;\n private anchorElement: Nullable<HTMLElement> = null;\n private anchorInstance: Nullable<React.ReactInstance>;\n\n public componentDidMount() {\n this.updateLocation();\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent);\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: Readonly<PopupProps>) {\n /**\n * Delaying updateLocation to ensure it happens after props update\n */\n if (nextProps.opened) {\n if (!this.state.location) {\n this.setState({ location: DUMMY_LOCATION });\n }\n this.delayUpdateLocation();\n }\n }\n\n public componentDidUpdate(prevProps: PopupProps, prevState: PopupState) {\n const hadNoLocation = prevState.location === DUMMY_LOCATION;\n const hasLocation = this.state.location !== DUMMY_LOCATION;\n if (hadNoLocation && hasLocation && this.props.onOpen) {\n this.props.onOpen();\n }\n if (!hadNoLocation && !this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public componentWillUnmount() {\n this.cancelDelayedUpdateLocation();\n this.removeEventListeners(this.anchorElement);\n if (this.layoutEventsToken) {\n this.layoutEventsToken.remove();\n this.layoutEventsToken = null;\n }\n if (this.state.location && this.props.onClose) {\n this.props.onClose();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { location } = this.state;\n const { anchorElement, useWrapper } = this.props;\n\n let child: Nullable<React.ReactNode> = null;\n if (isHTMLElement(anchorElement)) {\n this.updateAnchorElement(anchorElement);\n } else if (React.isValidElement(anchorElement)) {\n child = useWrapper ? <span>{anchorElement}</span> : anchorElement;\n } else {\n child = <span>{anchorElement}</span>;\n }\n\n return (\n <RenderContainer anchor={child} ref={child ? this.refAnchorElement : undefined}>\n {location && this.renderContent(location)}\n </RenderContainer>\n );\n }\n\n private refAnchorElement = (instance: React.ReactInstance | null) => {\n this.anchorInstance = instance;\n const element = this.extractElement(instance);\n this.updateAnchorElement(element);\n this.anchorElement = element;\n };\n\n private extractElement(instance: React.ReactInstance | null) {\n if (!instance) {\n return null;\n }\n const element = findDOMNode(instance);\n return isHTMLElement(element) ? element : null;\n }\n\n private updateAnchorElement(element: HTMLElement | null) {\n const anchorElement = this.anchorElement;\n\n if (element !== anchorElement) {\n this.removeEventListeners(anchorElement);\n this.anchorElement = element;\n this.addEventListeners(element);\n }\n }\n\n private addEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.addEventListener('mouseenter', this.handleMouseEnter);\n element.addEventListener('mouseleave', this.handleMouseLeave);\n element.addEventListener('click', this.handleClick);\n element.addEventListener('focusin', this.handleFocus as EventListener);\n element.addEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private removeEventListeners(element: Nullable<HTMLElement>) {\n if (element && isHTMLElement(element)) {\n element.removeEventListener('mouseenter', this.handleMouseEnter);\n element.removeEventListener('mouseleave', this.handleMouseLeave);\n element.removeEventListener('click', this.handleClick);\n element.removeEventListener('focusin', this.handleFocus as EventListener);\n element.removeEventListener('focusout', this.handleBlur as EventListener);\n }\n }\n\n private handleMouseEnter = (event: MouseEventType) => {\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(event);\n }\n };\n\n private handleMouseLeave = (event: MouseEventType) => {\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(event);\n }\n };\n\n private handleClick = (event: MouseEventType) => {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n };\n\n private handleFocus = (event: FocusEventType) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: FocusEventType) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private calculateWidth = (width: PopupProps['width']) => {\n if (typeof width === 'string' && width.includes('%')) {\n return this.anchorElement ? (this.anchorElement.offsetWidth * parseFloat(width)) / 100 : 0;\n }\n return width;\n };\n\n private renderContent(location: PopupLocation) {\n const { backgroundColor, disableAnimations, maxWidth, hasShadow, ignoreHover, opened, width } = this.props;\n const children = this.renderChildren();\n\n const { direction } = PopupHelper.getPositionObject(location.position);\n const rootStyle: React.CSSProperties = { ...location.coordinates, maxWidth };\n\n const shouldFallbackShadow = isIE11 || isEdge || isSafari;\n\n return (\n <Transition\n timeout={TRANSITION_TIMEOUT}\n appear={!disableAnimations}\n in={Boolean(opened && children)}\n mountOnEnter\n unmountOnExit\n enter={!disableAnimations}\n exit={!disableAnimations}\n onExited={this.resetLocation}\n >\n {(state: string) => (\n <CommonWrapper {...this.props}>\n <ZIndex\n ref={this.refPopupElement}\n priority={'Popup'}\n className={cx({\n [styles.popup(this.theme)]: true,\n [styles.shadow(this.theme)]: hasShadow && !shouldFallbackShadow,\n [styles.shadowFallback(this.theme)]: hasShadow && shouldFallbackShadow,\n [styles.popupIgnoreHover()]: ignoreHover,\n ...(disableAnimations\n ? {}\n : {\n [styles[`transition-enter-${direction}` as keyof typeof styles](this.theme)]: true,\n [styles.transitionEnter()]: state === 'entering',\n [styles.transitionEnterActive()]: state === 'entered',\n [styles.transitionExit()]: state === 'exiting',\n }),\n })}\n style={rootStyle}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n >\n <div className={styles.content(this.theme)} data-tid={'PopupContent'}>\n <div\n className={styles.contentInner(this.theme)}\n style={{ backgroundColor, width: this.calculateWidth(width) }}\n data-tid={'PopupContentInner'}\n >\n {children}\n </div>\n </div>\n {this.renderPin(location.position)}\n </ZIndex>\n </CommonWrapper>\n )}\n </Transition>\n );\n }\n\n private resetLocation = () => {\n this.cancelDelayedUpdateLocation();\n this.setState({ location: null });\n };\n\n private renderChildren() {\n return isFunction(this.props.children) ? this.props.children() : this.props.children;\n }\n\n private refPopupElement = (zIndex: ZIndex | null) => {\n if (zIndex) {\n this.lastPopupElement = zIndex && (findDOMNode(zIndex) as HTMLElement);\n }\n };\n\n private renderPin(positionName: string): React.ReactNode {\n /**\n * Box-shadow does not appear under the pin. Borders are used instead.\n * In non-ie browsers drop-shadow filter is used. It is applying\n * shadow to the pin too.\n */\n const isDefaultBorderColor = this.theme.popupBorderColor === POPUP_BORDER_DEFAULT_COLOR;\n const pinBorder = isIE11 && isDefaultBorderColor ? 'rgba(0, 0, 0, 0.09)' : this.theme.popupBorderColor;\n\n const { pinSize, hasShadow, backgroundColor, borderColor } = this.props;\n const position = PopupHelper.getPositionObject(positionName);\n\n return (\n this.props.hasPin && (\n <PopupPin\n popupElement={this.lastPopupElement}\n popupPosition={positionName}\n size={pinSize || parseInt(this.theme.popupPinSize)}\n offset={this.getPinOffset(position.align)}\n borderWidth={hasShadow ? 1 : 0}\n backgroundColor={backgroundColor || this.theme.popupBackground}\n borderColor={borderColor || pinBorder}\n />\n )\n );\n }\n\n private handleLayoutEvent = () => {\n if (!this.state.location) {\n return;\n }\n if (this.anchorInstance) {\n this.updateAnchorElement(this.extractElement(this.anchorInstance));\n }\n this.updateLocation();\n };\n\n private delayUpdateLocation() {\n this.cancelDelayedUpdateLocation();\n this.locationUpdateId = raf(this.updateLocation);\n }\n\n private cancelDelayedUpdateLocation() {\n if (this.locationUpdateId) {\n raf.cancel(this.locationUpdateId);\n this.locationUpdateId = null;\n }\n }\n\n private updateLocation = () => {\n const popupElement = this.lastPopupElement;\n\n if (!popupElement) {\n return;\n }\n\n const location = this.getLocation(popupElement, this.state.location);\n if (!this.locationEquals(this.state.location, location)) {\n this.setState({ location });\n }\n };\n\n private locationEquals(x: Nullable<PopupLocation>, y: Nullable<PopupLocation>) {\n if (x === y) {\n return true;\n }\n\n if (x == null || y == null) {\n return false;\n }\n\n return (\n x.coordinates.left === y.coordinates.left && x.coordinates.top === y.coordinates.top && x.position === y.position\n );\n }\n\n private getLocation(popupElement: HTMLElement, location?: Nullable<PopupLocation>) {\n const { positions, tryPreserveFirstRenderedPosition } = this.props;\n const anchorElement = this.anchorElement;\n\n warning(\n anchorElement && isHTMLElement(anchorElement),\n 'Anchor element is not defined or not instance of HTMLElement',\n );\n\n if (!(anchorElement && isHTMLElement(anchorElement))) {\n return location;\n }\n\n const anchorRect = PopupHelper.getElementAbsoluteRect(anchorElement);\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n\n let position: PopupPosition;\n let coordinates: Offset;\n\n if (location && location !== DUMMY_LOCATION && location.position) {\n position = location.position;\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n\n const isFullyVisible = PopupHelper.isFullyVisible(coordinates, popupRect);\n const canBecomeVisible = !isFullyVisible && PopupHelper.canBecomeFullyVisible(position, coordinates);\n\n if (\n // если нужно сохранить первоначальную позицию и Попап целиком\n // находится в пределах вьюпорта (или может быть проскроллен в него)\n (tryPreserveFirstRenderedPosition && (isFullyVisible || canBecomeVisible)) ||\n // если Попап целиком во вьюпорте и в самой приоритетной позиции\n // (иначе нужно попытаться позицию сменить)\n (isFullyVisible && position === positions[0])\n ) {\n // сохраняем текущую позицию\n return { coordinates, position };\n }\n }\n\n for (position of positions) {\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n if (PopupHelper.isFullyVisible(coordinates, popupRect)) {\n return { coordinates, position };\n }\n }\n\n position = positions[0];\n coordinates = this.getCoordinates(anchorRect, popupRect, position);\n return { coordinates, position };\n }\n\n private getPinnedPopupOffset(anchorRect: Rect, position: PositionObject) {\n if (!this.props.hasPin || /center|middle/.test(position.align)) {\n return 0;\n }\n\n const anchorSize = /top|bottom/.test(position.direction) ? anchorRect.width : anchorRect.height;\n\n const { pinSize } = this.props;\n\n return Math.max(\n 0,\n this.getPinOffset(position.align) + (pinSize || parseInt(this.theme.popupPinSize)) - anchorSize / 2,\n );\n }\n\n private getCoordinates(anchorRect: Rect, popupRect: Rect, positionName: string) {\n const { margin: marginFromProps } = this.props;\n const margin =\n isNonNullable(marginFromProps) && !isNaN(marginFromProps)\n ? marginFromProps\n : parseInt(this.theme.popupMargin) || 0;\n const position = PopupHelper.getPositionObject(positionName);\n const popupOffset = this.props.popupOffset + this.getPinnedPopupOffset(anchorRect, position);\n\n switch (position.direction) {\n case 'top':\n return {\n top: anchorRect.top - popupRect.height - margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'bottom':\n return {\n top: anchorRect.top + anchorRect.height + margin,\n left: this.getHorizontalPosition(anchorRect, popupRect, position.align, popupOffset),\n };\n case 'left':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left - popupRect.width - margin,\n };\n case 'right':\n return {\n top: this.getVerticalPosition(anchorRect, popupRect, position.align, popupOffset),\n left: anchorRect.left + anchorRect.width + margin,\n };\n default:\n throw new Error(`Unexpected direction '${position.direction}'`);\n }\n }\n\n private getPinOffset(align: string) {\n const { pinOffset } = this.props;\n\n switch (align) {\n case 'top':\n case 'bottom':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetY);\n case 'left':\n case 'right':\n return pinOffset || parseInt(this.theme.popupPinOffset) || parseInt(this.theme.popupPinOffsetX);\n case 'center':\n case 'middle':\n return 0;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getHorizontalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'left':\n return anchorRect.left - popupOffset;\n case 'center':\n return anchorRect.left - (popupRect.width - anchorRect.width) / 2;\n case 'right':\n return anchorRect.left - (popupRect.width - anchorRect.width) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getVerticalPosition(anchorRect: Rect, popupRect: Rect, align: string, popupOffset: number) {\n switch (align) {\n case 'top':\n return anchorRect.top - popupOffset;\n case 'middle':\n return anchorRect.top - (popupRect.height - anchorRect.height) / 2;\n case 'bottom':\n return anchorRect.top - (popupRect.height - anchorRect.height) + popupOffset;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n"]}
|