@skbkontur/react-ui 5.2.1 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/README.md +7 -7
- package/cjs/components/Autocomplete/Autocomplete.d.ts +6 -23
- package/cjs/components/Autocomplete/Autocomplete.js +49 -46
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +2 -0
- package/cjs/components/Button/Button.js +29 -1
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +6 -0
- package/cjs/components/Button/Button.styles.js +107 -75
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +2 -0
- package/cjs/components/Calendar/Calendar.js +1 -0
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +2 -0
- package/cjs/components/Center/Center.js +1 -0
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +2 -12
- package/cjs/components/Checkbox/Checkbox.js +2 -14
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
- package/cjs/components/ComboBox/ComboBox.js +1 -0
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -24
- package/cjs/components/CurrencyInput/CurrencyInput.js +5 -28
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/constants.js +1 -2
- package/cjs/components/CurrencyInput/constants.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -28
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +2 -0
- package/cjs/components/DateInput/DateInput.js +1 -0
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +6 -33
- package/cjs/components/DatePicker/DatePicker.js +6 -60
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +2 -47
- package/cjs/components/Dropdown/Dropdown.js +2 -82
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/cjs/components/DropdownMenu/DropdownMenu.js +1 -0
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +2 -5
- package/cjs/components/FxInput/FxInput.js +2 -7
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +2 -15
- package/cjs/components/Gapped/Gapped.js +1 -24
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +1 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +5 -4
- package/cjs/components/Group/Group.js +91 -40
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Group/Group.styles.d.ts +1 -0
- package/cjs/components/Group/Group.styles.js +12 -6
- package/cjs/components/Group/Group.styles.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +2 -0
- package/cjs/components/Hint/Hint.js +1 -0
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +2 -0
- package/cjs/components/Input/Input.js +1 -0
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +2 -1
- package/cjs/components/Kebab/Kebab.js +2 -26
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +2 -0
- package/cjs/components/Link/Link.js +1 -0
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +6 -36
- package/cjs/components/Loader/Loader.js +3 -57
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -0
- package/cjs/components/MaskedInput/MaskedInput.js +17 -1
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +2 -12
- package/cjs/components/MenuItem/MenuItem.js +2 -22
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
- package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
- package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
- package/cjs/components/MiniModal/MiniModalBody.js +17 -2
- package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +1 -0
- package/cjs/components/Modal/Modal.styles.js +36 -28
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +2 -0
- package/cjs/components/Modal/ModalBody.js +1 -0
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +5 -0
- package/cjs/components/Modal/ModalHeader.js +8 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Paging/DotsIcon.d.ts +3 -0
- package/cjs/components/Paging/DotsIcon.js +13 -0
- package/cjs/components/Paging/DotsIcon.js.map +1 -0
- package/cjs/components/Paging/ForwardIcon.d.ts +3 -0
- package/cjs/components/Paging/ForwardIcon.js +13 -1
- package/cjs/components/Paging/ForwardIcon.js.map +1 -1
- package/cjs/components/Paging/NavigationHelper.d.ts +3 -2
- package/cjs/components/Paging/NavigationHelper.js +8 -6
- package/cjs/components/Paging/NavigationHelper.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +13 -2
- package/cjs/components/Paging/Paging.js +120 -50
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.styles.d.ts +24 -1
- package/cjs/components/Paging/Paging.styles.js +151 -22
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/Paging/PagingHelper.d.ts +1 -1
- package/cjs/components/Paging/PagingHelper.js +18 -11
- package/cjs/components/Paging/PagingHelper.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -7
- package/cjs/components/PasswordInput/PasswordInput.js +2 -11
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +2 -0
- package/cjs/components/Radio/Radio.js +1 -0
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/cjs/components/RadioGroup/RadioGroup.js +1 -0
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +2 -9
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -11
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +2 -0
- package/cjs/components/Select/Select.js +1 -0
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.styles.d.ts +3 -1
- package/cjs/components/SidePage/SidePage.styles.js +52 -38
- package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.d.ts +2 -0
- package/cjs/components/SidePage/SidePageBody.js +1 -0
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.d.ts +2 -0
- package/cjs/components/SidePage/SidePageContainer.js +1 -0
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +2 -0
- package/cjs/components/SidePage/SidePageFooter.js +1 -0
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +12 -2
- package/cjs/components/SidePage/SidePageHeader.js +60 -19
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +2 -18
- package/cjs/components/Spinner/Spinner.js +2 -32
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +2 -13
- package/cjs/components/Sticky/Sticky.js +2 -22
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +6 -21
- package/cjs/components/Switcher/Switcher.js +11 -20
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
- package/cjs/components/Switcher/Switcher.styles.js +17 -9
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Tabs/Indicator.d.ts +2 -0
- package/cjs/components/Tabs/Indicator.js +1 -0
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +2 -0
- package/cjs/components/Tabs/Tab.js +1 -0
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +2 -0
- package/cjs/components/Tabs/Tabs.js +1 -0
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +2 -44
- package/cjs/components/Textarea/Textarea.js +2 -56
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.js +2 -13
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +2 -0
- package/cjs/components/Toast/Toast.js +1 -0
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.d.ts +2 -14
- package/cjs/components/Toast/ToastView.js +3 -22
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +2 -10
- package/cjs/components/Toggle/Toggle.js +1 -11
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +2 -0
- package/cjs/components/Token/Token.js +1 -0
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
- package/cjs/components/TokenInput/TokenInput.js +1 -0
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +14 -9
- package/cjs/components/Tooltip/Tooltip.js +95 -13
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.styles.d.ts +7 -1
- package/cjs/components/Tooltip/Tooltip.styles.js +50 -12
- package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js +1 -0
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/ComponentTable.js +2 -3
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
- package/cjs/internal/DateSelect/DateSelect.js +1 -18
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +2 -0
- package/cjs/internal/FocusTrap/FocusTrap.js +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -0
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +2 -0
- package/cjs/internal/Menu/Menu.js +1 -0
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +1 -0
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +41 -59
- package/cjs/internal/Popup/Popup.js +36 -79
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.d.ts +23 -33
- package/cjs/internal/Popup/PopupPin.js +2 -35
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/Popup/PopupPinNew.d.ts +31 -0
- package/cjs/internal/Popup/PopupPinNew.js +180 -0
- package/cjs/internal/Popup/PopupPinNew.js.map +1 -0
- package/cjs/internal/Popup/PopupPinNew.styles.d.ts +7 -0
- package/cjs/internal/Popup/PopupPinNew.styles.js +33 -0
- package/cjs/internal/Popup/PopupPinNew.styles.js.map +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +2 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -3
- package/cjs/internal/RenderLayer/RenderLayer.js +3 -12
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +1 -1
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.styles.js +5 -8
- package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
- package/cjs/internal/ThemePlayground/ShowcaseGroup.js +12 -1
- package/cjs/internal/ThemePlayground/ShowcaseGroup.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +3 -3
- package/cjs/internal/ZIndex/ZIndex.js +5 -1
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js +16 -0
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -0
- package/cjs/internal/themes/BasicTheme.d.ts +112 -20
- package/cjs/internal/themes/BasicTheme.js +149 -18
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_2.js +1 -1
- package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
- package/cjs/internal/themes/DarkTheme5_3.js +13 -0
- package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
- package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
- package/cjs/internal/themes/LightTheme5_3.js +13 -0
- package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
- package/cjs/lib/delay.mts +3 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/forwardRefAndName.d.ts +1 -1
- package/cjs/lib/forwardRefAndName.js +0 -1
- package/cjs/lib/forwardRefAndName.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/cjs/lib/rootNode/rootNodeDecorator.js +1 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
- package/cjs/lib/theming/ThemeVersions.js.map +1 -1
- package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/cjs/lib/theming/themes/DarkTheme.js +4 -2
- package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
- package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
- package/cjs/lib/theming/themes/LightTheme.js +4 -2
- package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
- package/cjs/lib/utils.d.ts +4 -0
- package/cjs/lib/utils.js +5 -1
- package/cjs/lib/utils.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +49 -45
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +6 -23
- package/components/Button/Button/Button.js +26 -5
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +2 -0
- package/components/Button/Button.styles/Button.styles.js +78 -60
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +6 -0
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +2 -0
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +2 -0
- package/components/Checkbox/Checkbox/Checkbox.js +0 -11
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +2 -12
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +2 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +12 -36
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +6 -24
- package/components/CurrencyInput/constants/constants.js +0 -1
- package/components/CurrencyInput/constants/constants.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +2 -0
- package/components/DatePicker/DatePicker/DatePicker.js +1 -32
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +6 -33
- package/components/Dropdown/Dropdown/Dropdown.js +1 -47
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -47
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/components/FxInput/FxInput/FxInput.js +1 -5
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +2 -5
- package/components/Gapped/Gapped/Gapped.js +1 -15
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +2 -15
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/components/Group/Group/Group.js +64 -28
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +5 -4
- package/components/Group/Group.styles/Group.styles.js +9 -6
- package/components/Group/Group.styles/Group.styles.js.map +1 -1
- package/components/Group/Group.styles.d.ts +1 -0
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +2 -0
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +2 -0
- package/components/Kebab/Kebab/Kebab.js +2 -20
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +2 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +2 -0
- package/components/Loader/Loader/Loader.js +0 -33
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +6 -36
- package/components/MaskedInput/MaskedInput/MaskedInput.js +14 -0
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +1 -0
- package/components/MenuItem/MenuItem/MenuItem.js +1 -12
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +2 -12
- package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
- package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
- package/components/MiniModal/MiniModal.styles.d.ts +1 -0
- package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
- package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
- package/components/Modal/Modal.styles/Modal.styles.js +31 -28
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +1 -0
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +2 -0
- package/components/Modal/ModalHeader/ModalHeader.js +3 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +5 -0
- package/components/Paging/DotsIcon/DotsIcon.js +14 -0
- package/components/Paging/DotsIcon/DotsIcon.js.map +1 -0
- package/components/Paging/DotsIcon/package.json +6 -0
- package/components/Paging/DotsIcon.d.ts +3 -0
- package/components/Paging/ForwardIcon/ForwardIcon.js +15 -1
- package/components/Paging/ForwardIcon/ForwardIcon.js.map +1 -1
- package/components/Paging/ForwardIcon.d.ts +3 -0
- package/components/Paging/NavigationHelper/NavigationHelper.js +9 -8
- package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
- package/components/Paging/NavigationHelper.d.ts +3 -2
- package/components/Paging/Paging/Paging.js +96 -47
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +13 -2
- package/components/Paging/Paging.styles/Paging.styles.js +77 -16
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/Paging/Paging.styles.d.ts +24 -1
- package/components/Paging/PagingHelper/PagingHelper.js +16 -8
- package/components/Paging/PagingHelper/PagingHelper.js.map +1 -1
- package/components/Paging/PagingHelper.d.ts +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +2 -7
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +2 -0
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +2 -9
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +2 -0
- package/components/SidePage/SidePage.styles/SidePage.styles.js +41 -35
- package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePage.styles.d.ts +3 -1
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +2 -0
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +2 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +2 -0
- package/components/SidePage/SidePageHeader/SidePageHeader.js +61 -39
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +12 -2
- package/components/Spinner/Spinner/Spinner.js +1 -18
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +2 -18
- package/components/Sticky/Sticky/Sticky.js +1 -13
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +2 -13
- package/components/Switcher/Switcher/Switcher.js +19 -16
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +6 -21
- package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Switcher/Switcher.styles.d.ts +1 -0
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Indicator.d.ts +2 -0
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +2 -0
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +2 -0
- package/components/Textarea/Textarea/Textarea.js +1 -44
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +2 -44
- package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +2 -0
- package/components/Toast/ToastView/ToastView.js +3 -17
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.d.ts +2 -14
- package/components/Toggle/Toggle/Toggle.js +1 -10
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +2 -10
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +2 -0
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +2 -0
- package/components/Tooltip/Tooltip/Tooltip.js +67 -20
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +14 -9
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +22 -4
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
- package/components/Tooltip/Tooltip.styles.d.ts +7 -1
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +4 -2
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/internal/ComponentTable/ComponentTable.js +0 -2
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
- package/internal/DateSelect/DateSelect/DateSelect.js +1 -10
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +0 -10
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +2 -0
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +2 -0
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +2 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +2 -0
- package/internal/Popup/Popup/Popup.js +14 -64
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +41 -59
- package/internal/Popup/PopupPin/PopupPin.js +1 -34
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +23 -33
- package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
- package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
- package/internal/Popup/PopupPinNew/package.json +6 -0
- package/internal/Popup/PopupPinNew.d.ts +31 -0
- package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
- package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
- package/internal/Popup/PopupPinNew.styles/package.json +6 -0
- package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +2 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +2 -3
- package/internal/ThemePlayground/Playground/Playground.js +4 -3
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/Playground.styles/Playground.styles.js +4 -4
- package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
- package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js +6 -1
- package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +3 -3
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
- package/internal/themes/BasicTheme/BasicTheme.js +170 -26
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +112 -20
- package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
- package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
- package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
- package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
- package/internal/themes/DarkTheme5_3/package.json +6 -0
- package/internal/themes/DarkTheme5_3.d.ts +1 -0
- package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
- package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
- package/internal/themes/LightTheme5_3/package.json +6 -0
- package/internal/themes/LightTheme5_3.d.ts +1 -0
- package/lib/delay.d.mts +1 -0
- package/lib/delay.mts +3 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
- package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
- package/lib/forwardRefAndName.d.ts +1 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
- package/lib/theming/ThemeVersions.d.ts +1 -1
- package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
- package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
- package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
- package/lib/theming/themes/LightTheme.d.ts +1 -0
- package/lib/utils/utils.js +2 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +4 -0
- package/package.json +10 -13
- package/cjs/lib/SSRSafe.d.ts +0 -2
- package/cjs/lib/SSRSafe.js +0 -5
- package/cjs/lib/SSRSafe.js.map +0 -1
- package/lib/SSRSafe/SSRSafe.js +0 -4
- package/lib/SSRSafe/SSRSafe.js.map +0 -1
- package/lib/SSRSafe/package.json +0 -6
- package/lib/SSRSafe.d.ts +0 -2
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.PopupPin = void 0;var _extends6 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3
2
|
|
|
4
3
|
|
|
5
4
|
|
|
@@ -27,23 +26,6 @@ var borderStyles = {
|
|
|
27
26
|
|
|
28
27
|
|
|
29
28
|
|
|
30
|
-
PopupPin = exports.PopupPin = /*#__PURE__*/function (_React$Component) {function PopupPin() {return _React$Component.apply(this, arguments) || this;}(0, _inheritsLoose2.default)(PopupPin, _React$Component);var _proto = PopupPin.prototype;_proto.
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
29
|
|
|
48
30
|
|
|
49
31
|
|
|
@@ -67,6 +49,7 @@ PopupPin = exports.PopupPin = /*#__PURE__*/function (_React$Component) {function
|
|
|
67
49
|
|
|
68
50
|
|
|
69
51
|
|
|
52
|
+
PopupPin = exports.PopupPin = /*#__PURE__*/function (_React$Component) {function PopupPin() {return _React$Component.apply(this, arguments) || this;}(0, _inheritsLoose2.default)(PopupPin, _React$Component);var _proto = PopupPin.prototype;_proto.
|
|
70
53
|
|
|
71
54
|
|
|
72
55
|
|
|
@@ -274,20 +257,4 @@ PopupPin = exports.PopupPin = /*#__PURE__*/function (_React$Component) {function
|
|
|
274
257
|
default:
|
|
275
258
|
throw new Error("Unexpected align '" + align + "'");
|
|
276
259
|
}
|
|
277
|
-
};return PopupPin;}(_react.default.Component);PopupPin.__KONTUR_REACT_UI__ = 'PopupPin';PopupPin.displayName = 'PopupPin';
|
|
278
|
-
* Цвет фон пина
|
|
279
|
-
*/backgroundColor: _propTypes.default.string, /**
|
|
280
|
-
* Цвет границы пина
|
|
281
|
-
*/borderColor: _propTypes.default.string, /**
|
|
282
|
-
* Ширина границы пина
|
|
283
|
-
*/borderWidth: _propTypes.default.number, /**
|
|
284
|
-
* Смещение пина от края попапа. Край задаётся в пропе position вторым словом
|
|
285
|
-
*/offset: _propTypes.default.number, /**
|
|
286
|
-
* Ссылка на попап
|
|
287
|
-
*/popupElement: _propTypes.default.any, /**
|
|
288
|
-
* Позиция попапа, по которой будет вычислено положение пина
|
|
289
|
-
*/popupPosition: _propTypes.default.string, /**
|
|
290
|
-
* Сторона пина без учёта границы.
|
|
291
|
-
* Пин представляет собой равносторонний треугольник, высота от попапа
|
|
292
|
-
* до "носика" пина будет соответствовать формуле (size* √3)/2
|
|
293
|
-
*/size: _propTypes.default.number };
|
|
260
|
+
};return PopupPin;}(_react.default.Component);PopupPin.__KONTUR_REACT_UI__ = 'PopupPin';PopupPin.displayName = 'PopupPin';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_propTypes","_PopupHelper","_PopupPin2","_Popup","borderStyles","position","borderStyle","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","PopupPin","exports","_React$Component","apply","arguments","_inheritsLoose2","default","_proto","prototype","render","props","popupElement","options","getPinOptions","PopupHelper","getElementAbsoluteRect","getPositionObject","popupPosition","size","offset","borderWidth","styleOuter","getOuterStyle","activeBorder","outerSize","borderColor","styleInner","getInnerStyle","backgroundColor","styleWrapper","getWrapperStyle","outerLeft","outerTop","createElement","PopupDataTids","popupPin","className","styles","wrapper","style","getPopupOppositeDirection","popupDirection","direction","TypeError","left","top","_ref","_ref2","width","height","borderWitdth","_extends2","_extends3","_extends6","_extends4","_extends5","popupRect","pinSize","pinOffset","bordersDelta","getPinLeftCoordinate","align","innerTop","innerLeft","getPinTopCoordinate","Error","pinHeight","React","Component","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","string","number","any"],"sources":["PopupPin.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport type { Nullable } from '../../typings/utility-types';\n\nimport type { PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } from './PopupHelper';\nimport { styles } from './PopupPin.styles';\nimport { PopupDataTids } from './Popup';\n\nconst borderStyles = {\n position: 'absolute',\n borderStyle: 'solid',\n borderTopColor: 'transparent',\n borderBottomColor: 'transparent',\n borderLeftColor: 'transparent',\n borderRightColor: 'transparent',\n};\n\ninterface Props {\n backgroundColor: string;\n borderColor: string;\n borderWidth: number;\n offset: number;\n popupElement: Nullable<Element>;\n popupPosition: string;\n size: number;\n}\n\nexport class PopupPin extends React.Component<Props> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = 'PopupPin';\n\n public static propTypes = {\n /**\n * Цвет фон пина\n */\n backgroundColor: PropTypes.string,\n\n /**\n * Цвет границы пина\n */\n borderColor: PropTypes.string,\n\n /**\n * Ширина границы пина\n */\n borderWidth: PropTypes.number,\n\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n offset: PropTypes.number,\n\n /**\n * Ссылка на попап\n */\n popupElement: PropTypes.any,\n\n /**\n * Позиция попапа, по которой будет вычислено положение пина\n */\n popupPosition: PropTypes.string,\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n size: PropTypes.number,\n };\n\n public render() {\n if (!this.props.popupElement) {\n return null;\n }\n\n const options = this.getPinOptions(\n PopupHelper.getElementAbsoluteRect(this.props.popupElement),\n PopupHelper.getPositionObject(this.props.popupPosition),\n this.props.size,\n this.props.offset,\n this.props.borderWidth,\n );\n\n const styleOuter: React.CSSProperties = this.getOuterStyle(\n options.activeBorder,\n options.outerSize,\n this.props.borderColor,\n );\n\n const styleInner: React.CSSProperties = this.getInnerStyle(\n options.activeBorder,\n this.props.size,\n this.props.backgroundColor,\n );\n\n const styleWrapper = this.getWrapperStyle(options.outerLeft, options.outerTop, options.outerSize);\n\n return (\n <div data-tid={PopupDataTids.popupPin} className={styles.wrapper()} style={styleWrapper}>\n <div style={styleOuter}>\n <div style={styleInner} />\n </div>\n </div>\n );\n }\n\n private getPopupOppositeDirection(): 'bottom' | 'top' | 'left' | 'right' {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n throw new TypeError('Unknown direction ' + popupDirection);\n }\n }\n\n private getWrapperStyle(left: number, top: number, borderWidth: number) {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n [direction]: -borderWidth + 'px',\n left: left + 'px',\n width: borderWidth * 2 + 'px',\n height: borderWidth + 'px',\n };\n case 'left':\n case 'right':\n return {\n [direction]: -borderWidth + 'px',\n top: top + 'px',\n height: borderWidth * 2 + 'px',\n width: borderWidth + 'px',\n };\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getOuterStyle(activeBorder: string, borderWitdth: number, borderColor: string): React.CSSProperties {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 'px',\n left: '0px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n case 'left':\n case 'right':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 'px',\n top: '0px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getInnerStyle(activeBorder: string, borderWitdth: number, borderColor: string): React.CSSProperties {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 2 + 'px',\n left: -borderWitdth + 'px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n case 'left':\n case 'right':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 2 + 'px',\n top: -borderWitdth + 'px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getPinOptions(\n popupRect: Rect,\n popupPosition: PositionObject,\n pinSize: number,\n pinOffset: number,\n borderWidth: number,\n ) {\n const bordersDelta = 2 * borderWidth;\n const outerSize = pinSize + bordersDelta;\n\n switch (popupPosition.direction) {\n case 'top':\n return {\n outerTop: popupRect.height,\n outerLeft: this.getPinLeftCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n innerTop: -outerSize,\n innerLeft: -outerSize + bordersDelta,\n activeBorder: 'Top',\n outerSize,\n };\n case 'bottom':\n return {\n outerTop: -2 * outerSize,\n outerLeft: this.getPinLeftCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n innerTop: -outerSize + 2 * bordersDelta,\n innerLeft: -outerSize + bordersDelta,\n activeBorder: 'Bottom',\n outerSize,\n };\n case 'left':\n return {\n outerTop: this.getPinTopCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n outerLeft: popupRect.width,\n innerTop: -outerSize + bordersDelta,\n innerLeft: -outerSize,\n activeBorder: 'Left',\n outerSize,\n };\n case 'right':\n return {\n outerTop: this.getPinTopCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n outerLeft: -2 * outerSize,\n innerTop: -outerSize + bordersDelta,\n innerLeft: -outerSize + 2 * bordersDelta,\n activeBorder: 'Right',\n outerSize,\n };\n default:\n throw new Error('Direction must be one of top, right, bottom, left');\n }\n }\n\n private getPinTopCoordinate(popupRect: Rect, align: string, pinHeight: number, pinOffset: number) {\n switch (align) {\n case 'top':\n return pinOffset;\n case 'middle':\n return popupRect.height / 2 - pinHeight;\n case 'bottom':\n return popupRect.height - pinOffset - 2 * pinHeight;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getPinLeftCoordinate(popupRect: Rect, align: string, pinHeight: number, pinOffset: number) {\n switch (align) {\n case 'left':\n return pinOffset;\n case 'center':\n return popupRect.width / 2 - pinHeight;\n case 'right':\n return popupRect.width - pinOffset - 2 * pinHeight;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_PopupHelper","_PopupPin2","_Popup","borderStyles","position","borderStyle","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","PopupPin","exports","_React$Component","apply","arguments","_inheritsLoose2","default","_proto","prototype","render","props","popupElement","options","getPinOptions","PopupHelper","getElementAbsoluteRect","getPositionObject","popupPosition","size","offset","borderWidth","styleOuter","getOuterStyle","activeBorder","outerSize","borderColor","styleInner","getInnerStyle","backgroundColor","styleWrapper","getWrapperStyle","outerLeft","outerTop","createElement","PopupDataTids","popupPin","className","styles","wrapper","style","getPopupOppositeDirection","popupDirection","direction","TypeError","left","top","_ref","_ref2","width","height","borderWitdth","_extends2","_extends3","_extends6","_extends4","_extends5","popupRect","pinSize","pinOffset","bordersDelta","getPinLeftCoordinate","align","innerTop","innerLeft","getPinTopCoordinate","Error","pinHeight","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["PopupPin.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Nullable } from '../../typings/utility-types';\n\nimport type { PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } from './PopupHelper';\nimport { styles } from './PopupPin.styles';\nimport { PopupDataTids } from './Popup';\n\nconst borderStyles = {\n position: 'absolute',\n borderStyle: 'solid',\n borderTopColor: 'transparent',\n borderBottomColor: 'transparent',\n borderLeftColor: 'transparent',\n borderRightColor: 'transparent',\n};\n\ninterface Props {\n /**\n * Цвет фон пина\n */\n backgroundColor: string;\n /**\n * Цвет границы пина\n */\n borderColor: string;\n /**\n * Ширина границы пина\n */\n borderWidth: number;\n /**\n * Смещение пина от края попапа. Край задаётся в пропе position вторым словом\n */\n offset: number;\n /**\n * Ссылка на попап\n */\n popupElement: Nullable<Element>;\n /**\n * Позиция попапа, по которой будет вычислено положение пина\n */\n popupPosition: string;\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n size: number;\n}\n\nexport class PopupPin extends React.Component<Props> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = 'PopupPin';\n\n public render() {\n if (!this.props.popupElement) {\n return null;\n }\n\n const options = this.getPinOptions(\n PopupHelper.getElementAbsoluteRect(this.props.popupElement),\n PopupHelper.getPositionObject(this.props.popupPosition),\n this.props.size,\n this.props.offset,\n this.props.borderWidth,\n );\n\n const styleOuter: React.CSSProperties = this.getOuterStyle(\n options.activeBorder,\n options.outerSize,\n this.props.borderColor,\n );\n\n const styleInner: React.CSSProperties = this.getInnerStyle(\n options.activeBorder,\n this.props.size,\n this.props.backgroundColor,\n );\n\n const styleWrapper = this.getWrapperStyle(options.outerLeft, options.outerTop, options.outerSize);\n\n return (\n <div data-tid={PopupDataTids.popupPin} className={styles.wrapper()} style={styleWrapper}>\n <div style={styleOuter}>\n <div style={styleInner} />\n </div>\n </div>\n );\n }\n\n private getPopupOppositeDirection(): 'bottom' | 'top' | 'left' | 'right' {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n throw new TypeError('Unknown direction ' + popupDirection);\n }\n }\n\n private getWrapperStyle(left: number, top: number, borderWidth: number) {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n [direction]: -borderWidth + 'px',\n left: left + 'px',\n width: borderWidth * 2 + 'px',\n height: borderWidth + 'px',\n };\n case 'left':\n case 'right':\n return {\n [direction]: -borderWidth + 'px',\n top: top + 'px',\n height: borderWidth * 2 + 'px',\n width: borderWidth + 'px',\n };\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getOuterStyle(activeBorder: string, borderWitdth: number, borderColor: string): React.CSSProperties {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 'px',\n left: '0px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n case 'left':\n case 'right':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 'px',\n top: '0px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getInnerStyle(activeBorder: string, borderWitdth: number, borderColor: string): React.CSSProperties {\n const direction = this.getPopupOppositeDirection();\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 2 + 'px',\n left: -borderWitdth + 'px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n case 'left':\n case 'right':\n return {\n ...borderStyles,\n [direction]: -borderWitdth + 2 + 'px',\n top: -borderWitdth + 'px',\n borderWidth: borderWitdth + 'px',\n ['border' + activeBorder + 'Color']: borderColor,\n } as React.CSSProperties;\n default:\n throw new TypeError('Unknown direction ' + direction);\n }\n }\n\n private getPinOptions(\n popupRect: Rect,\n popupPosition: PositionObject,\n pinSize: number,\n pinOffset: number,\n borderWidth: number,\n ) {\n const bordersDelta = 2 * borderWidth;\n const outerSize = pinSize + bordersDelta;\n\n switch (popupPosition.direction) {\n case 'top':\n return {\n outerTop: popupRect.height,\n outerLeft: this.getPinLeftCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n innerTop: -outerSize,\n innerLeft: -outerSize + bordersDelta,\n activeBorder: 'Top',\n outerSize,\n };\n case 'bottom':\n return {\n outerTop: -2 * outerSize,\n outerLeft: this.getPinLeftCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n innerTop: -outerSize + 2 * bordersDelta,\n innerLeft: -outerSize + bordersDelta,\n activeBorder: 'Bottom',\n outerSize,\n };\n case 'left':\n return {\n outerTop: this.getPinTopCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n outerLeft: popupRect.width,\n innerTop: -outerSize + bordersDelta,\n innerLeft: -outerSize,\n activeBorder: 'Left',\n outerSize,\n };\n case 'right':\n return {\n outerTop: this.getPinTopCoordinate(popupRect, popupPosition.align, pinSize, pinOffset) - bordersDelta,\n outerLeft: -2 * outerSize,\n innerTop: -outerSize + bordersDelta,\n innerLeft: -outerSize + 2 * bordersDelta,\n activeBorder: 'Right',\n outerSize,\n };\n default:\n throw new Error('Direction must be one of top, right, bottom, left');\n }\n }\n\n private getPinTopCoordinate(popupRect: Rect, align: string, pinHeight: number, pinOffset: number) {\n switch (align) {\n case 'top':\n return pinOffset;\n case 'middle':\n return popupRect.height / 2 - pinHeight;\n case 'bottom':\n return popupRect.height - pinOffset - 2 * pinHeight;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n\n private getPinLeftCoordinate(popupRect: Rect, align: string, pinHeight: number, pinOffset: number) {\n switch (align) {\n case 'left':\n return pinOffset;\n case 'center':\n return popupRect.width / 2 - pinHeight;\n case 'right':\n return popupRect.width - pinOffset - 2 * pinHeight;\n default:\n throw new Error(`Unexpected align '${align}'`);\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { Nullable } from '../../typings/utility-types';
|
|
3
|
+
interface PopupPinProps {
|
|
4
|
+
/** Цвет фона пина */
|
|
5
|
+
backgroundColor: string;
|
|
6
|
+
/** Смещение пина от края попапа. Край задаётся в пропе position вторым словом */
|
|
7
|
+
offset: number;
|
|
8
|
+
/** Ссылка на попап */
|
|
9
|
+
popupElement?: Nullable<Element>;
|
|
10
|
+
/** Позиция попапа, по которой будет вычислено положение пина */
|
|
11
|
+
popupPosition: string;
|
|
12
|
+
/**
|
|
13
|
+
* Сторона пина без учёта границы.
|
|
14
|
+
* Пин представляет собой равносторонний треугольник, высота от попапа
|
|
15
|
+
* до "носика" пина будет соответствовать формуле (size* √3)/2
|
|
16
|
+
*/
|
|
17
|
+
size: number;
|
|
18
|
+
}
|
|
19
|
+
export declare class PopupPinNew extends React.Component<PopupPinProps> {
|
|
20
|
+
static __KONTUR_REACT_UI__: string;
|
|
21
|
+
static displayName: string;
|
|
22
|
+
private positionObject;
|
|
23
|
+
render(): React.JSX.Element | null;
|
|
24
|
+
private getPopupOppositeDirection;
|
|
25
|
+
private getPinInlineStyle;
|
|
26
|
+
private getPinCoordinates;
|
|
27
|
+
private getPinTopCoordinate;
|
|
28
|
+
private getPinLeftCoordinate;
|
|
29
|
+
private getPinDirectionalStyle;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.PopupPinNew = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _Emotion = require("../../lib/theming/Emotion");
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _PopupHelper = require("./PopupHelper");
|
|
8
|
+
var _PopupPinNew2 = require("./PopupPinNew.styles");
|
|
9
|
+
var _Popup = require("./Popup");var
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
PopupPinNew = exports.PopupPinNew = /*#__PURE__*/function (_React$Component) {function PopupPinNew() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
getPinInlineStyle = function (left, top) {var _ref, _ref2;
|
|
78
|
+
var direction = _this.getPopupOppositeDirection();
|
|
79
|
+
if (!direction) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Добавляем запас в 1px, чтобы пофиксить случайные отделения пинов
|
|
84
|
+
var correctedLeft = left - 1;
|
|
85
|
+
var correctedTop = top - 1;
|
|
86
|
+
var correctedSize = _this.props.size + 1;
|
|
87
|
+
|
|
88
|
+
switch (direction) {
|
|
89
|
+
case 'top':
|
|
90
|
+
case 'bottom':
|
|
91
|
+
return _ref = {}, _ref[
|
|
92
|
+
direction] = -_this.props.size + 'px', _ref.
|
|
93
|
+
left = correctedLeft + 'px', _ref.
|
|
94
|
+
width = correctedSize * 2 + 'px', _ref.
|
|
95
|
+
height = correctedSize + 'px', _ref.
|
|
96
|
+
backgroundColor = _this.props.backgroundColor, _ref;
|
|
97
|
+
|
|
98
|
+
case 'left':
|
|
99
|
+
case 'right':
|
|
100
|
+
return _ref2 = {}, _ref2[
|
|
101
|
+
direction] = -_this.props.size + 'px', _ref2.
|
|
102
|
+
top = correctedTop + 'px', _ref2.
|
|
103
|
+
height = correctedSize * 2 + 'px', _ref2.
|
|
104
|
+
width = correctedSize + 'px', _ref2.
|
|
105
|
+
backgroundColor = _this.props.backgroundColor, _ref2;
|
|
106
|
+
|
|
107
|
+
default:
|
|
108
|
+
console.error("Can't get inline style: invalid direction '" + direction + "'. Returning default");
|
|
109
|
+
}
|
|
110
|
+
};_this.
|
|
111
|
+
|
|
112
|
+
getPinCoordinates = function (popupElement) {
|
|
113
|
+
var popupRect = _PopupHelper.PopupHelper.getElementAbsoluteRect(popupElement);
|
|
114
|
+
var _this$positionObject = _this.positionObject,direction = _this$positionObject.direction,align = _this$positionObject.align;
|
|
115
|
+
switch (direction) {
|
|
116
|
+
case 'top':
|
|
117
|
+
return {
|
|
118
|
+
top: popupRect.height,
|
|
119
|
+
left: _this.getPinLeftCoordinate(popupRect, align)
|
|
120
|
+
};
|
|
121
|
+
case 'bottom':
|
|
122
|
+
return {
|
|
123
|
+
top: -2 * _this.props.size,
|
|
124
|
+
left: _this.getPinLeftCoordinate(popupRect, align)
|
|
125
|
+
};
|
|
126
|
+
case 'left':
|
|
127
|
+
return {
|
|
128
|
+
top: _this.getPinTopCoordinate(popupRect, align),
|
|
129
|
+
left: popupRect.width
|
|
130
|
+
};
|
|
131
|
+
case 'right':
|
|
132
|
+
return {
|
|
133
|
+
top: _this.getPinTopCoordinate(popupRect, align),
|
|
134
|
+
left: -2 * _this.props.size
|
|
135
|
+
};
|
|
136
|
+
default:
|
|
137
|
+
console.error("Can't get coordinate: invalid direction '" + direction + "'.");
|
|
138
|
+
}
|
|
139
|
+
};_this.
|
|
140
|
+
|
|
141
|
+
getPinTopCoordinate = function (popupRect, align) {
|
|
142
|
+
switch (align) {
|
|
143
|
+
case 'top':
|
|
144
|
+
return _this.props.offset;
|
|
145
|
+
case 'middle':
|
|
146
|
+
return popupRect.height / 2 - _this.props.size;
|
|
147
|
+
case 'bottom':
|
|
148
|
+
return popupRect.height - _this.props.offset - 2 * _this.props.size;
|
|
149
|
+
default:
|
|
150
|
+
console.error("Can't get coordinate: invalid align '" + align + "'.");
|
|
151
|
+
}
|
|
152
|
+
};_this.
|
|
153
|
+
|
|
154
|
+
getPinLeftCoordinate = function (popupRect, align) {
|
|
155
|
+
switch (align) {
|
|
156
|
+
case 'left':
|
|
157
|
+
return _this.props.offset;
|
|
158
|
+
case 'center':
|
|
159
|
+
return popupRect.width / 2 - _this.props.size;
|
|
160
|
+
case 'right':
|
|
161
|
+
return popupRect.width - _this.props.offset - 2 * _this.props.size;
|
|
162
|
+
default:
|
|
163
|
+
console.error("Can't get coordinate: invalid align '" + align + "'.");
|
|
164
|
+
}
|
|
165
|
+
};_this.
|
|
166
|
+
|
|
167
|
+
getPinDirectionalStyle = function () {
|
|
168
|
+
switch (_this.positionObject.direction) {
|
|
169
|
+
case 'top':
|
|
170
|
+
return _PopupPinNew2.styles.pinTop();
|
|
171
|
+
case 'bottom':
|
|
172
|
+
return _PopupPinNew2.styles.pinBottom();
|
|
173
|
+
case 'left':
|
|
174
|
+
return _PopupPinNew2.styles.pinLeft();
|
|
175
|
+
case 'right':
|
|
176
|
+
return _PopupPinNew2.styles.pinRight();
|
|
177
|
+
default:
|
|
178
|
+
console.error("Can't get directional style: invalid direction '" + _this.positionObject.direction + "'.");
|
|
179
|
+
}
|
|
180
|
+
};return _this;}(0, _inheritsLoose2.default)(PopupPinNew, _React$Component);var _proto = PopupPinNew.prototype;_proto.render = function render() {if (!this.props.popupElement) {return null;}this.positionObject = _PopupHelper.PopupHelper.getPositionObject(this.props.popupPosition);var coords = this.getPinCoordinates(this.props.popupElement);if (!coords || !coords.left || !coords.top) {return null;}var inlineStyle = this.getPinInlineStyle(coords.left, coords.top);var directionalStyle = this.getPinDirectionalStyle();if (!inlineStyle || !directionalStyle) {return null;}return /*#__PURE__*/_react.default.createElement("div", { "data-tid": _Popup.PopupDataTids.popupPin, className: (0, _Emotion.cx)(_PopupPinNew2.styles.pin(), directionalStyle), style: inlineStyle });};_proto.getPopupOppositeDirection = function getPopupOppositeDirection() {var popupDirection = _PopupHelper.PopupHelper.getPositionObject(this.props.popupPosition).direction;switch (popupDirection) {case 'top':return 'bottom';case 'bottom':return 'top';case 'left':return 'right';case 'right':return 'left';default:console.error("Can't get opposite direction: invalid direction '" + popupDirection + "'");}};return PopupPinNew;}(_react.default.Component);PopupPinNew.__KONTUR_REACT_UI__ = 'PopupPin';PopupPinNew.displayName = 'PopupPin';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_Emotion","_PopupHelper","_PopupPinNew2","_Popup","PopupPinNew","exports","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getPinInlineStyle","left","top","_ref","_ref2","direction","getPopupOppositeDirection","correctedLeft","correctedTop","correctedSize","props","size","width","height","backgroundColor","console","error","getPinCoordinates","popupElement","popupRect","PopupHelper","getElementAbsoluteRect","_this$positionObject","positionObject","align","getPinLeftCoordinate","getPinTopCoordinate","offset","getPinDirectionalStyle","styles","pinTop","pinBottom","pinLeft","pinRight","_inheritsLoose2","default","_proto","prototype","render","getPositionObject","popupPosition","coords","inlineStyle","directionalStyle","createElement","PopupDataTids","popupPin","className","cx","pin","style","popupDirection","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["PopupPinNew.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport type { PositionObject, Rect } from './PopupHelper';\nimport { PopupHelper } from './PopupHelper';\nimport { styles } from './PopupPinNew.styles';\nimport { PopupDataTids } from './Popup';\n\ninterface PopupPinProps {\n /** Цвет фона пина */\n backgroundColor: string;\n\n /** Смещение пина от края попапа. Край задаётся в пропе position вторым словом */\n offset: number;\n\n /** Ссылка на попап */\n popupElement?: Nullable<Element>;\n\n /** Позиция попапа, по которой будет вычислено положение пина */\n popupPosition: string;\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n size: number;\n}\n\nexport class PopupPinNew extends React.Component<PopupPinProps> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = 'PopupPin';\n\n private positionObject!: PositionObject;\n\n public render() {\n if (!this.props.popupElement) {\n return null;\n }\n\n this.positionObject = PopupHelper.getPositionObject(this.props.popupPosition);\n\n const coords = this.getPinCoordinates(this.props.popupElement);\n if (!coords || !coords.left || !coords.top) {\n return null;\n }\n\n const inlineStyle = this.getPinInlineStyle(coords.left, coords.top);\n const directionalStyle = this.getPinDirectionalStyle();\n if (!inlineStyle || !directionalStyle) {\n return null;\n }\n\n return (\n <div data-tid={PopupDataTids.popupPin} className={cx(styles.pin(), directionalStyle)} style={inlineStyle}></div>\n );\n }\n\n private getPopupOppositeDirection() {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n console.error(`Can't get opposite direction: invalid direction '${popupDirection}'`);\n }\n }\n\n private getPinInlineStyle = (left: number, top: number) => {\n const direction = this.getPopupOppositeDirection();\n if (!direction) {\n return;\n }\n\n // Добавляем запас в 1px, чтобы пофиксить случайные отделения пинов\n const correctedLeft = left - 1;\n const correctedTop = top - 1;\n const correctedSize = this.props.size + 1;\n\n switch (direction) {\n case 'top':\n case 'bottom':\n return {\n [direction]: -this.props.size + 'px',\n left: correctedLeft + 'px',\n width: correctedSize * 2 + 'px',\n height: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n case 'left':\n case 'right':\n return {\n [direction]: -this.props.size + 'px',\n top: correctedTop + 'px',\n height: correctedSize * 2 + 'px',\n width: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n default:\n console.error(`Can't get inline style: invalid direction '${direction}'. Returning default`);\n }\n };\n\n private getPinCoordinates = (popupElement: Element) => {\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n const { direction, align } = this.positionObject;\n switch (direction) {\n case 'top':\n return {\n top: popupRect.height,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n case 'bottom':\n return {\n top: -2 * this.props.size,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n case 'left':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: popupRect.width,\n };\n case 'right':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: -2 * this.props.size,\n };\n default:\n console.error(`Can't get coordinate: invalid direction '${direction}'.`);\n }\n };\n\n private getPinTopCoordinate = (popupRect: Rect, align: string) => {\n switch (align) {\n case 'top':\n return this.props.offset;\n case 'middle':\n return popupRect.height / 2 - this.props.size;\n case 'bottom':\n return popupRect.height - this.props.offset - 2 * this.props.size;\n default:\n console.error(`Can't get coordinate: invalid align '${align}'.`);\n }\n };\n\n private getPinLeftCoordinate = (popupRect: Rect, align: string) => {\n switch (align) {\n case 'left':\n return this.props.offset;\n case 'center':\n return popupRect.width / 2 - this.props.size;\n case 'right':\n return popupRect.width - this.props.offset - 2 * this.props.size;\n default:\n console.error(`Can't get coordinate: invalid align '${align}'.`);\n }\n };\n\n private getPinDirectionalStyle = () => {\n switch (this.positionObject.direction) {\n case 'top':\n return styles.pinTop();\n case 'bottom':\n return styles.pinBottom();\n case 'left':\n return styles.pinLeft();\n case 'right':\n return styles.pinRight();\n default:\n console.error(`Can't get directional style: invalid direction '${this.positionObject.direction}'.`);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
2
|
+
|
|
3
|
+
var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
4
|
+
pin: function pin() {
|
|
5
|
+
return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n position: absolute;\n "])));
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
},
|
|
9
|
+
|
|
10
|
+
pinTop: function pinTop() {
|
|
11
|
+
return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n clip-path: polygon(0 0, 50% 100%, 100% 0);\n "])));
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
pinBottom: function pinBottom() {
|
|
17
|
+
return (0, _Emotion.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n "])));
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
},
|
|
21
|
+
|
|
22
|
+
pinLeft: function pinLeft() {
|
|
23
|
+
return (0, _Emotion.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["\n clip-path: polygon(0 0, 100% 50%, 0 100%);\n "])));
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
pinRight: function pinRight() {
|
|
29
|
+
return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n clip-path: polygon(100% 0, 0 50%, 100% 100%);\n "])));
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
}
|
|
33
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_Emotion","require","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","styles","exports","memoizeStyle","pin","css","_taggedTemplateLiteralLoose2","default","pinTop","pinBottom","pinLeft","pinRight"],"sources":["PopupPinNew.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n pin() {\n return css`\n position: absolute;\n `;\n },\n\n pinTop() {\n return css`\n clip-path: polygon(0 0, 50% 100%, 100% 0);\n `;\n },\n\n pinBottom() {\n return css`\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n `;\n },\n\n pinLeft() {\n return css`\n clip-path: polygon(0 0, 100% 50%, 0 100%);\n `;\n },\n\n pinRight() {\n return css`\n clip-path: polygon(100% 0, 0 50%, 100% 100%);\n `;\n },\n});\n"],"mappings":"oRAAA,IAAAA,QAAA,GAAAC,OAAA,8BAA8D,IAAAC,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;;AAEvD,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,qBAAY,EAAC;EACjCC,GAAG,WAAAA,IAAA,EAAG;IACJ,WAAOC,YAAG,EAAAT,eAAA,KAAAA,eAAA,OAAAU,4BAAA,CAAAC,OAAA;;;EAGZ,CAAC;;EAEDC,MAAM,WAAAA,OAAA,EAAG;IACP,WAAOH,YAAG,EAAAR,gBAAA,KAAAA,gBAAA,OAAAS,4BAAA,CAAAC,OAAA;;;EAGZ,CAAC;;EAEDE,SAAS,WAAAA,UAAA,EAAG;IACV,WAAOJ,YAAG,EAAAP,gBAAA,KAAAA,gBAAA,OAAAQ,4BAAA,CAAAC,OAAA;;;EAGZ,CAAC;;EAEDG,OAAO,WAAAA,QAAA,EAAG;IACR,WAAOL,YAAG,EAAAN,gBAAA,KAAAA,gBAAA,OAAAO,4BAAA,CAAAC,OAAA;;;EAGZ,CAAC;;EAEDI,QAAQ,WAAAA,SAAA,EAAG;IACT,WAAON,YAAG,EAAAL,gBAAA,KAAAA,gBAAA,OAAAM,4BAAA,CAAAC,OAAA;;;EAGZ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import type { HTMLProps } from '../../typings/html';
|
|
4
4
|
import type { PopupPositionsType } from '../Popup';
|
|
5
5
|
import type { CommonProps } from '../CommonWrapper';
|
|
6
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
6
7
|
import type { MenuProps } from '../Menu';
|
|
7
8
|
export * from './tids';
|
|
8
9
|
export interface PopupMenuCaptionProps {
|
|
@@ -80,6 +81,7 @@ export declare class PopupMenu extends React.Component<PopupMenuProps, PopupMenu
|
|
|
80
81
|
private captionWrapper;
|
|
81
82
|
private savedFocusableElement;
|
|
82
83
|
private menu;
|
|
84
|
+
getRootNode: TGetRootNode;
|
|
83
85
|
private setRootNode;
|
|
84
86
|
render(): JSX.Element;
|
|
85
87
|
private renderMain;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_identifiers","_ThemeContext","_ThemeFactory","_Popup","_RenderLayer","_CommonWrapper","_decorator","_rootNode","_createPropsGetter","_Menu","_validatePositions","_PopupMenu2","_tids","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_class","_PopupMenu","PopupMenuType","Dropdown","Tooltip","Positions","PopupMenu","rootNode","responsiveLayout","_React$Component","_this","_len","arguments","length","args","Array","_key","apply","concat","rootId","PopupIds","root","getRandomID","getProps","createPropsGetter","defaultProps","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","menuRef","element","handleOpen","focus","passPropsToCaption","caption","_this$props$popupMenu","React","cloneElement","id","props","popupMenuId","renderCaption","opened","openMenu","closeMenu","toggleMenu","corners","default","createElement","PopupMenuDataTids","className","styles","ref","onClick","handleCaptionClick","onKeyDown","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","someKeys","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleKeyDown","isKeyEscape","globalObject","document","activeElement","focusShouldBeRestored","onOpen","onClose","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","_inheritsLoose2","_proto","render","_this2","ThemeContext","Consumer","theme","Provider","value","ThemeFactory","create","menuOffsetY","popupMenuMenuOffsetY","renderMain","_this$props$popupMenu2","_this$getProps","popupHasPin","disableAnimations","CommonWrapper","_extends2","rootNodeRef","setRootNode","RenderLayer","onClickOutside","onFocusOutside","active","container","style","width","children","Popup","anchorElement","hasShadow","margin","popupMargin","hasPin","pinOffset","popupPinOffset","positions","getPositions","mobileOnCloseRequest","isMobileLayout","menuWidth","Menu","maxHeight","menuMaxHeight","onItemClick","preventIconsOffset","cyclicSelection","initialSelectedItemIndex","header","footer","isValidPositions","Component","__KONTUR_REACT_UI__","displayName","Type"],"sources":["PopupMenu.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { getRandomID } from '../../lib/utils';\nimport type { HTMLProps } from '../../typings/html';\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { PopupPositionsType } from '../Popup';\nimport { Popup, PopupIds } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { MenuProps } from '../Menu';\nimport { Menu } from '../Menu';\n\nimport { isValidPositions } from './validatePositions';\nimport { styles } from './PopupMenu.styles';\nimport { PopupMenuDataTids } from './tids';\n\nexport * from './tids';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\nexport interface PopupMenuProps\n extends CommonProps,\n Pick<MenuProps, 'preventIconsOffset'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<AriaAttributes, 'aria-label'> {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPositionsType[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations?: boolean;\n /** Действие при открытии меню */\n onOpen?: () => void;\n /** Действие при закрытии меню */\n onClose?: () => void;\n /**\n * Позволяет задать `id` выпадающему меню.\n *\n * Это может пригодиться при реализации a11y. Например, для того, чтобы связать `aria-controls` с выпадающим меню.\n */\n popupMenuId?: HTMLProps['id'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\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];\n\ntype DefaultProps = Required<Pick<PopupMenuProps, 'positions' | 'type' | 'popupHasPin' | 'disableAnimations'>>;\n\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n public static displayName = 'PopupMenu';\n\n private isMobileLayout!: boolean;\n private rootId = PopupIds.root + getRandomID();\n\n public static defaultProps: DefaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n private getProps = createPropsGetter(PopupMenu.defaultProps);\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<Menu> = null;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n menuOffsetY: theme.popupMenuMenuOffsetY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { popupHasPin, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div data-tid={PopupMenuDataTids.root} className={styles.container()} style={{ width: this.props.width }}>\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n id={this.props.popupMenuId ?? this.rootId}\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <Menu\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n preventIconsOffset={this.props.preventIconsOffset}\n cyclicSelection={false}\n ref={this.menuRef}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </Menu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n private menuRef = (element: Nullable<Menu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private passPropsToCaption = (caption: React.ReactNode) => {\n if (typeof caption === 'string' || typeof caption === 'number') {\n return caption;\n }\n\n return React.cloneElement(caption as React.ReactElement, {\n id: this.props.id,\n 'aria-controls': this.props.popupMenuId ?? this.rootId,\n 'aria-expanded': this.state.menuVisible ? 'true' : 'false',\n 'aria-label': this.props['aria-label'],\n });\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n corners: this.props.corners,\n });\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n className={styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {this.passPropsToCaption(caption)}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={styles.caption()}\n >\n {this.passPropsToCaption(this.props.caption)}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n const positions = this.getProps().positions;\n if (positions && isValidPositions(positions)) {\n return positions;\n }\n\n return Positions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.setState(\n {\n menuVisible: true,\n firstItemShouldBeSelected,\n },\n () => {\n this.handleChangeMenuVisible(false);\n },\n );\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.setState(\n {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n },\n () => {\n this.handleChangeMenuVisible(!!restoreFocus);\n },\n );\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (globalObject.document) {\n this.savedFocusableElement = globalObject.document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleChangeMenuVisible = (focusShouldBeRestored: boolean): void => {\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n\n if (this.state.menuVisible && this.props.onOpen) {\n this.props.onOpen();\n }\n\n if (!this.state.menuVisible && this.props.onClose) {\n this.props.onClose();\n }\n\n if (typeof this.props.onChangeMenuState === 'function') {\n this.props.onChangeMenuState(this.state.menuVisible, focusShouldBeRestored);\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_identifiers","_ThemeContext","_ThemeFactory","_Popup","_RenderLayer","_CommonWrapper","_decorator","_rootNode","_createPropsGetter","_Menu","_validatePositions","_PopupMenu2","_tids","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_class","_PopupMenu","PopupMenuType","Dropdown","Tooltip","Positions","PopupMenu","rootNode","responsiveLayout","_React$Component","_this","_len","arguments","length","args","Array","_key","apply","concat","rootId","PopupIds","root","getRandomID","getProps","createPropsGetter","defaultProps","state","menuVisible","firstItemShouldBeSelected","captionWrapper","savedFocusableElement","menu","open","showMenu","close","hideMenu","menuRef","element","handleOpen","focus","passPropsToCaption","caption","_this$props$popupMenu","React","cloneElement","id","props","popupMenuId","renderCaption","opened","openMenu","closeMenu","toggleMenu","corners","default","createElement","PopupMenuDataTids","className","styles","ref","onClick","handleCaptionClick","onKeyDown","handleCaptionKeyDown","hideMenuWithoutFocusing","saveFocus","setState","handleChangeMenuVisible","restoreFocus","e","someKeys","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleKeyDown","isKeyEscape","globalObject","document","activeElement","focusShouldBeRestored","onOpen","onClose","onChangeMenuState","handleItemSelection","event","isDefaultPrevented","type","_inheritsLoose2","_proto","render","_this2","ThemeContext","Consumer","theme","Provider","value","ThemeFactory","create","menuOffsetY","popupMenuMenuOffsetY","renderMain","_this$props$popupMenu2","_this$getProps","popupHasPin","disableAnimations","CommonWrapper","_extends2","rootNodeRef","setRootNode","RenderLayer","onClickOutside","onFocusOutside","active","container","style","width","children","Popup","anchorElement","hasShadow","margin","popupMargin","hasPin","pinOffset","popupPinOffset","positions","getPositions","mobileOnCloseRequest","isMobileLayout","menuWidth","Menu","maxHeight","menuMaxHeight","onItemClick","preventIconsOffset","cyclicSelection","initialSelectedItemIndex","header","footer","isValidPositions","Component","__KONTUR_REACT_UI__","displayName","Type"],"sources":["PopupMenu.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { getRandomID } from '../../lib/utils';\nimport type { HTMLProps } from '../../typings/html';\nimport {\n isKeyArrowVertical,\n isKeyEnter,\n isKeyEscape,\n isKeySpace,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { PopupPositionsType } from '../Popup';\nimport { Popup, PopupIds } from '../Popup';\nimport { RenderLayer } from '../RenderLayer';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { MenuProps } from '../Menu';\nimport { Menu } from '../Menu';\n\nimport { isValidPositions } from './validatePositions';\nimport { styles } from './PopupMenu.styles';\nimport { PopupMenuDataTids } from './tids';\n\nexport * from './tids';\n\nexport interface PopupMenuCaptionProps {\n opened: boolean;\n openMenu: (firstItemShouldBeSelected?: boolean) => void;\n closeMenu: (restoreFocus?: boolean) => void;\n toggleMenu: () => void;\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\nexport interface PopupMenuProps\n extends CommonProps,\n Pick<MenuProps, 'preventIconsOffset'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<AriaAttributes, 'aria-label'> {\n children?: React.ReactNode;\n /** Максимальная высота меню */\n menuMaxHeight?: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Ширина контейнера и caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо ```caption```,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: React.ReactNode | ((props: PopupMenuCaptionProps) => React.ReactNode);\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n\n /** Массив разрешенных положений меню относительно caption'а. */\n positions?: PopupPositionsType[];\n /** Колбэк, вызываемый после открытия/закрытия меню */\n onChangeMenuState?: (isOpened: boolean, restoreFocus: boolean) => void;\n /** Пропсы, передающиеся в Popup */\n popupHasPin?: boolean;\n popupMargin?: number;\n popupPinOffset?: number;\n type?: 'dropdown' | 'tooltip';\n disableAnimations?: boolean;\n /** Действие при открытии меню */\n onOpen?: () => void;\n /** Действие при закрытии меню */\n onClose?: () => void;\n /**\n * Позволяет задать `id` выпадающему меню.\n *\n * Это может пригодиться при реализации a11y. Например, для того, чтобы связать `aria-controls` с выпадающим меню.\n */\n popupMenuId?: HTMLProps['id'];\n\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\ninterface PopupMenuState {\n menuVisible: boolean;\n firstItemShouldBeSelected?: boolean;\n}\n\nexport const PopupMenuType = {\n Dropdown: 'dropdown',\n Tooltip: 'tooltip',\n} as const;\n\nconst Positions: PopupPositionsType[] = [\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];\n\ntype DefaultProps = Required<Pick<PopupMenuProps, 'positions' | 'type' | 'popupHasPin' | 'disableAnimations'>>;\n\n@rootNode\n@responsiveLayout\nexport class PopupMenu extends React.Component<PopupMenuProps, PopupMenuState> {\n public static __KONTUR_REACT_UI__ = 'PopupMenu';\n public static displayName = 'PopupMenu';\n\n private isMobileLayout!: boolean;\n private rootId = PopupIds.root + getRandomID();\n\n public static defaultProps: DefaultProps = {\n positions: Positions,\n type: PopupMenuType.Tooltip,\n popupHasPin: true,\n disableAnimations: false,\n };\n\n private getProps = createPropsGetter(PopupMenu.defaultProps);\n\n public static Type = PopupMenuType;\n\n public state = {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n };\n\n private captionWrapper: HTMLSpanElement | null = null;\n private savedFocusableElement: HTMLElement | null = null;\n private menu: Nullable<Menu> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n menuOffsetY: theme.popupMenuMenuOffsetY,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { popupHasPin, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <RenderLayer\n onClickOutside={this.hideMenuWithoutFocusing}\n onFocusOutside={this.hideMenuWithoutFocusing}\n active={this.state.menuVisible}\n >\n <div data-tid={PopupMenuDataTids.root} className={styles.container()} style={{ width: this.props.width }}>\n {this.renderCaption()}\n {this.captionWrapper && this.props.children && (\n <Popup\n id={this.props.popupMenuId ?? this.rootId}\n anchorElement={this.captionWrapper}\n opened={this.state.menuVisible}\n hasShadow\n margin={this.props.popupMargin}\n hasPin={popupHasPin}\n pinOffset={this.props.popupPinOffset}\n positions={this.getPositions()}\n disableAnimations={disableAnimations}\n onOpen={this.handleOpen}\n mobileOnCloseRequest={this.hideMenu}\n width={this.isMobileLayout ? 'auto' : this.props.menuWidth || 'auto'}\n >\n <Menu\n maxHeight={this.isMobileLayout ? 'none' : this.props.menuMaxHeight || 'none'}\n onKeyDown={this.handleKeyDown}\n onItemClick={this.handleItemSelection}\n preventIconsOffset={this.props.preventIconsOffset}\n cyclicSelection={false}\n ref={this.menuRef}\n initialSelectedItemIndex={this.state.firstItemShouldBeSelected ? 0 : -1}\n header={this.props.header}\n footer={this.props.footer}\n >\n {this.props.children}\n </Menu>\n </Popup>\n )}\n </div>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n public open = (): void => this.showMenu();\n public close = (): void => this.hideMenu();\n\n private menuRef = (element: Nullable<Menu>) => (this.menu = element);\n\n private handleOpen = () => {\n if (this.menu) {\n this.menu.focus();\n }\n };\n\n private passPropsToCaption = (caption: React.ReactNode) => {\n if (typeof caption === 'string' || typeof caption === 'number') {\n return caption;\n }\n\n return React.cloneElement(caption as React.ReactElement, {\n id: this.props.id,\n 'aria-controls': this.props.popupMenuId ?? this.rootId,\n 'aria-expanded': this.state.menuVisible ? 'true' : 'false',\n 'aria-label': this.props['aria-label'],\n });\n };\n\n private renderCaption = () => {\n if (typeof this.props.caption === 'function') {\n const caption = this.props.caption({\n opened: this.state.menuVisible,\n openMenu: this.showMenu,\n closeMenu: this.hideMenu,\n toggleMenu: this.toggleMenu,\n corners: this.props.corners,\n });\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n className={styles.caption()}\n ref={(element) => (this.captionWrapper = element)}\n >\n {this.passPropsToCaption(caption)}\n </span>\n );\n }\n\n return (\n <span\n data-tid={PopupMenuDataTids.caption}\n onClick={this.handleCaptionClick}\n onKeyDown={this.handleCaptionKeyDown}\n ref={(element) => (this.captionWrapper = element)}\n className={styles.caption()}\n >\n {this.passPropsToCaption(this.props.caption)}\n </span>\n );\n };\n\n private hideMenuWithoutFocusing = () => this.hideMenu();\n\n private getPositions(): Readonly<PopupPositionsType[]> {\n const positions = this.getProps().positions;\n if (positions && isValidPositions(positions)) {\n return positions;\n }\n\n return Positions;\n }\n\n private showMenu = (firstItemShouldBeSelected?: boolean): void => {\n this.saveFocus();\n this.setState(\n {\n menuVisible: true,\n firstItemShouldBeSelected,\n },\n () => {\n this.handleChangeMenuVisible(false);\n },\n );\n };\n\n private hideMenu = (restoreFocus?: boolean): void => {\n this.setState(\n {\n menuVisible: false,\n firstItemShouldBeSelected: false,\n },\n () => {\n this.handleChangeMenuVisible(!!restoreFocus);\n },\n );\n };\n\n private toggleMenu = (): void => {\n this.state.menuVisible ? this.hideMenu() : this.showMenu();\n };\n\n private handleCaptionClick = (): void => {\n this.toggleMenu();\n };\n\n private handleCaptionKeyDown = (e: React.KeyboardEvent<HTMLElement>): void => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n this.showMenu(true);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEscape(e)) {\n const restoreFocus = true;\n this.hideMenu(restoreFocus);\n }\n };\n\n private saveFocus = (): void => {\n if (globalObject.document) {\n this.savedFocusableElement = globalObject.document.activeElement as HTMLElement;\n }\n };\n\n private restoreFocus = (): void => {\n if (this.savedFocusableElement) {\n this.savedFocusableElement.focus();\n this.savedFocusableElement = null;\n }\n };\n\n private handleChangeMenuVisible = (focusShouldBeRestored: boolean): void => {\n if (focusShouldBeRestored) {\n this.restoreFocus();\n }\n\n if (this.state.menuVisible && this.props.onOpen) {\n this.props.onOpen();\n }\n\n if (!this.state.menuVisible && this.props.onClose) {\n this.props.onClose();\n }\n\n if (typeof this.props.onChangeMenuState === 'function') {\n this.props.onChangeMenuState(this.state.menuVisible, focusShouldBeRestored);\n }\n };\n\n private handleItemSelection = (event: React.SyntheticEvent<HTMLElement>): void => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n if (event.type === 'keydown') {\n event.preventDefault();\n }\n\n const restoreFocus = event.type === 'keydown';\n this.hideMenu(restoreFocus);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import propTypes from 'prop-types';
|
|
3
2
|
import type { Nullable } from '../../typings/utility-types';
|
|
4
3
|
import type { PortalProps, RenderContainerProps } from './RenderContainerTypes';
|
|
5
4
|
interface RenderInnerContainerProps extends RenderContainerProps {
|
|
@@ -8,11 +7,6 @@ interface RenderInnerContainerProps extends RenderContainerProps {
|
|
|
8
7
|
}
|
|
9
8
|
export declare const Portal: {
|
|
10
9
|
({ container, rt_rootID, children }: PortalProps): React.JSX.Element;
|
|
11
|
-
propTypes: {
|
|
12
|
-
container: propTypes.Requireable<HTMLElement>;
|
|
13
|
-
rt_rootID: propTypes.Validator<string>;
|
|
14
|
-
children: propTypes.Validator<NonNullable<propTypes.ReactNodeLike>>;
|
|
15
|
-
};
|
|
16
10
|
__KONTUR_REACT_UI__: string;
|
|
17
11
|
displayName: string;
|
|
18
12
|
};
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.RenderInnerContainer = exports.Portal = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
2
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
3
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
4
|
-
var _globalObject = require("@skbkontur/global-object");
|
|
5
3
|
|
|
6
4
|
|
|
7
|
-
var _SSRSafe = require("../../lib/SSRSafe");
|
|
8
5
|
|
|
9
6
|
|
|
10
7
|
var _RenderContainer = require("./RenderContainer");
|
|
@@ -67,11 +64,5 @@ RenderInnerContainer = exports.RenderInnerContainer = /*#__PURE__*/function (_Re
|
|
|
67
64
|
};return RenderInnerContainer;}(_react.default.Component);RenderInnerContainer.__KONTUR_REACT_UI__ = 'RenderInnerContainer';RenderInnerContainer.displayName = 'RenderInnerContainer';
|
|
68
65
|
|
|
69
66
|
|
|
70
|
-
Portal.propTypes = {
|
|
71
|
-
container: (0, _SSRSafe.safePropTypesInstanceOf)(_globalObject.globalObject.HTMLElement),
|
|
72
|
-
rt_rootID: _propTypes.default.string.isRequired,
|
|
73
|
-
children: _propTypes.default.node.isRequired
|
|
74
|
-
};
|
|
75
|
-
|
|
76
67
|
Portal.__KONTUR_REACT_UI__ = 'Portal';
|
|
77
68
|
Portal.displayName = 'Portal';
|