@skbkontur/react-ui 3.10.0-fileuploader.1 → 3.11.0-select-right
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 +68 -0
- package/LICENSE +21 -21
- package/README.md +57 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
- package/cjs/components/Autocomplete/Autocomplete.js +11 -5
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.md +7 -7
- package/cjs/components/Button/Button.d.ts +5 -1
- package/cjs/components/Button/Button.js +17 -5
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +1 -0
- package/cjs/components/Button/Button.styles.js +38 -28
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +1 -0
- package/cjs/components/Center/Center.js +10 -3
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +3 -3
- package/cjs/components/Checkbox/Checkbox.js +31 -22
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
- package/cjs/components/ComboBox/ComboBox.js +100 -70
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +4 -3
- package/cjs/components/CurrencyInput/CurrencyInput.js +35 -4
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.md +24 -24
- package/cjs/components/CurrencyLabel/CurrencyLabel.md +23 -23
- package/cjs/components/DateInput/DateInput.d.ts +1 -0
- package/cjs/components/DateInput/DateInput.js +6 -3
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/DateInput.md +106 -106
- package/cjs/components/DatePicker/DatePicker.d.ts +4 -2
- package/cjs/components/DatePicker/DatePicker.js +17 -7
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.md +307 -307
- package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
- package/cjs/components/Dropdown/Dropdown.js +11 -4
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +3 -2
- package/cjs/components/DropdownMenu/DropdownMenu.js +7 -4
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +1 -0
- package/cjs/components/FxInput/FxInput.js +9 -2
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/FxInput/FxInput.md +16 -16
- package/cjs/components/Gapped/Gapped.d.ts +2 -0
- package/cjs/components/Gapped/Gapped.js +22 -14
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/Gapped/Gapped.md +43 -43
- package/cjs/components/Group/Group.d.ts +1 -0
- package/cjs/components/Group/Group.js +10 -7
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Group/Group.md +18 -18
- package/cjs/components/Hint/Hint.d.ts +5 -3
- package/cjs/components/Hint/Hint.js +7 -20
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +8 -1
- package/cjs/components/Input/Input.js +22 -5
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.md +13 -13
- package/cjs/components/Kebab/Kebab.d.ts +3 -2
- package/cjs/components/Kebab/Kebab.js +8 -5
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +1 -0
- package/cjs/components/Link/Link.js +11 -3
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +1 -0
- package/cjs/components/Loader/Loader.js +11 -7
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +2 -1
- package/cjs/components/MenuItem/MenuItem.js +11 -8
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Modal/Modal.js +1 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +1 -0
- package/cjs/components/Modal/ModalBody.js +9 -6
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +2 -2
- package/cjs/components/Paging/Paging.js +6 -5
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.md +43 -43
- package/cjs/components/PasswordInput/PasswordInput.d.ts +3 -2
- package/cjs/components/PasswordInput/PasswordInput.js +13 -6
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.md +9 -9
- package/cjs/components/Radio/Radio.d.ts +5 -10
- package/cjs/components/Radio/Radio.js +15 -11
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +11 -26
- package/cjs/components/RadioGroup/RadioGroup.js +25 -29
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.md +43 -43
- package/cjs/components/RadioGroup/RadioGroupContext.d.ts +10 -0
- package/cjs/components/RadioGroup/RadioGroupContext.js +21 -0
- package/cjs/components/RadioGroup/RadioGroupContext.js.map +1 -0
- package/cjs/components/ScrollContainer/ScrollBar.js +4 -2
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +10 -6
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js +12 -8
- package/cjs/components/ScrollContainer/ScrollContainer.styles.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +1 -0
- package/cjs/components/Select/Select.js +9 -5
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +3 -0
- package/cjs/components/SidePage/SidePage.js +20 -2
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
- package/cjs/components/SidePage/SidePageBody.js +9 -6
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
- package/cjs/components/SidePage/SidePageContainer.js +9 -6
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +1 -2
- package/cjs/components/SidePage/SidePageFooter.js +11 -12
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
- package/cjs/components/SidePage/SidePageHeader.js +6 -3
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +9 -0
- package/cjs/components/Spinner/Spinner.js +29 -8
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.md +1 -0
- package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
- package/cjs/components/Spinner/Spinner.styles.js +13 -10
- package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +1 -0
- package/cjs/components/Sticky/Sticky.js +8 -5
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +1 -0
- package/cjs/components/Switcher/Switcher.js +6 -3
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.js +4 -2
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Tabs/Indicator.d.ts +1 -0
- package/cjs/components/Tabs/Indicator.js +16 -15
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +2 -1
- package/cjs/components/Tabs/Tab.js +13 -9
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +1 -0
- package/cjs/components/Tabs/Tabs.js +9 -9
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Tabs/Tabs.md +36 -36
- package/cjs/components/Textarea/Textarea.d.ts +1 -0
- package/cjs/components/Textarea/Textarea.js +12 -5
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/Textarea.md +25 -25
- package/cjs/components/Toast/Toast.d.ts +3 -0
- package/cjs/components/Toast/Toast.js +15 -4
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.d.ts +1 -0
- package/cjs/components/Toast/ToastView.js +8 -5
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +1 -0
- package/cjs/components/Toggle/Toggle.js +9 -6
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +1 -0
- package/cjs/components/Token/Token.js +7 -4
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/Token/Token.md +112 -112
- package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
- package/cjs/components/TokenInput/TokenInput.js +11 -8
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.md +79 -79
- package/cjs/components/Tooltip/Tooltip.d.ts +11 -22
- package/cjs/components/Tooltip/Tooltip.js +28 -30
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +3 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js +8 -5
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +2 -2
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +38 -15
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -2
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js +15 -5
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +8 -5
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +2 -2
- package/cjs/internal/DateSelect/DateSelect.js +3 -3
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
- package/cjs/internal/DropdownContainer/DropdownContainer.js +14 -11
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
- package/cjs/internal/DropdownContainer/DropdownContainer.styles.js +9 -0
- package/cjs/internal/DropdownContainer/DropdownContainer.styles.js.map +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.js +12 -9
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +12 -4
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +10 -3
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +2 -3
- package/cjs/internal/InternalMenu/InternalMenu.js +16 -22
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/MaskedInput/MaskedInput.d.ts +2 -2
- package/cjs/internal/MaskedInput/MaskedInput.js +3 -3
- package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +3 -0
- package/cjs/internal/Menu/Menu.js +33 -6
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Menu/Menu.styles.d.ts +3 -0
- package/cjs/internal/Menu/Menu.styles.js +22 -3
- package/cjs/internal/Menu/Menu.styles.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +9 -8
- package/cjs/internal/Popup/Popup.js +64 -48
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/Popup/types.d.ts +1 -0
- package/cjs/{components/FileUploader/locale → internal/Popup}/types.js +0 -0
- package/cjs/{components/FileUploader/locale → internal/Popup}/types.js.map +0 -0
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +4 -3
- package/cjs/internal/PopupMenu/PopupMenu.js +23 -6
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
- package/cjs/internal/PopupMenu/validatePositions.js +2 -4
- package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -3
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +3 -1
- package/cjs/internal/RenderLayer/RenderLayer.js +13 -7
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.d.ts +0 -1
- package/cjs/internal/ThemePlayground/Playground.js +1 -11
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/darkTheme.d.ts +0 -15
- package/cjs/internal/ThemePlayground/darkTheme.js +1 -25
- package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js +20 -19
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.md +13 -13
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +2 -0
- package/cjs/internal/ZIndex/ZIndex.js +45 -34
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/icons/16px/index.d.ts +17 -19
- package/cjs/internal/icons/16px/index.js +105 -84
- package/cjs/internal/icons/16px/index.js.map +1 -1
- package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
- package/cjs/internal/icons/SpinnerIcon.js +5 -2
- package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +0 -23
- package/cjs/internal/themes/DefaultTheme.js +1 -64
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/ModalStack.js +16 -17
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/callChildRef/callChildRef.d.ts +3 -0
- package/cjs/lib/callChildRef/callChildRef.js +19 -0
- package/cjs/lib/callChildRef/callChildRef.js.map +1 -0
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js +20 -0
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -0
- package/cjs/lib/getDisplayName.d.ts +3 -0
- package/cjs/lib/getDisplayName.js +9 -0
- package/cjs/lib/getDisplayName.js.map +1 -0
- package/cjs/lib/locale/types.d.ts +0 -2
- package/cjs/lib/locale/types.js +0 -2
- package/cjs/lib/locale/types.js.map +1 -1
- package/cjs/lib/rootNode/getRootNode.d.ts +3 -0
- package/cjs/lib/rootNode/getRootNode.js +27 -0
- package/cjs/lib/rootNode/getRootNode.js.map +1 -0
- package/cjs/lib/rootNode/index.d.ts +2 -0
- package/cjs/lib/rootNode/index.js +2 -0
- package/cjs/lib/rootNode/index.js.map +1 -0
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +33 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js +31 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -0
- package/cjs/lib/theming/AnimationKeyframes.js +1 -1
- package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
- package/cjs/lib/theming/Emotion.js +1 -0
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/useTheme.d.ts +1 -0
- package/cjs/lib/theming/useTheme.js +7 -0
- package/cjs/lib/theming/useTheme.js.map +1 -0
- package/cjs/lib/utils.d.ts +35 -1
- package/cjs/lib/utils.js +77 -22
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/lib/withClassWrapper.d.ts +71 -0
- package/cjs/lib/withClassWrapper.js +59 -0
- package/cjs/lib/withClassWrapper.js.map +1 -0
- package/cjs/typings/html-props.d.ts +123 -0
- package/components/Autocomplete/Autocomplete/Autocomplete.js +19 -16
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +1 -0
- package/components/Autocomplete/Autocomplete.md +7 -7
- package/components/Button/Button/Button.js +24 -15
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +5 -1
- package/components/Button/Button.styles/Button.styles.js +31 -28
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +1 -0
- package/components/Center/Center/Center.js +14 -9
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +1 -0
- package/components/Checkbox/Checkbox/Checkbox.js +34 -30
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +3 -3
- package/components/ComboBox/ComboBox/ComboBox.js +38 -32
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +2 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +62 -27
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +4 -3
- package/components/CurrencyInput/CurrencyInput.md +24 -24
- package/components/CurrencyLabel/CurrencyLabel.md +23 -23
- package/components/DateInput/DateInput/DateInput.js +7 -3
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +1 -0
- package/components/DateInput/DateInput.md +106 -106
- package/components/DatePicker/DatePicker/DatePicker.js +29 -22
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +4 -2
- package/components/DatePicker/DatePicker.md +307 -307
- package/components/Dropdown/Dropdown/Dropdown.js +15 -13
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +1 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +15 -9
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +3 -2
- package/components/FxInput/FxInput/FxInput.js +13 -9
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +1 -0
- package/components/FxInput/FxInput.md +16 -16
- package/components/Gapped/Gapped/Gapped.js +24 -21
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +2 -0
- package/components/Gapped/Gapped.md +43 -43
- package/components/Group/Group/Group.js +22 -9
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +1 -0
- package/components/Group/Group.md +18 -18
- package/components/Hint/Hint/Hint.js +18 -12
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +5 -3
- package/components/Input/Input/Input.js +29 -14
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +8 -1
- package/components/Input/Input.md +13 -13
- package/components/Kebab/Kebab/Kebab.js +12 -7
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +3 -2
- package/components/Link/Link/Link.js +15 -11
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +1 -0
- package/components/Loader/Loader/Loader.js +19 -13
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +1 -0
- package/components/MenuItem/MenuItem/MenuItem.js +19 -17
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +2 -1
- package/components/Modal/Modal/Modal.js +1 -1
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/ModalBody/ModalBody.js +16 -10
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +1 -0
- package/components/Paging/Paging/Paging.js +17 -14
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +2 -2
- package/components/Paging/Paging.md +43 -43
- package/components/PasswordInput/PasswordInput/PasswordInput.js +18 -14
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +3 -2
- package/components/PasswordInput/PasswordInput.md +9 -9
- package/components/Radio/Radio/Radio.js +21 -20
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +5 -10
- package/components/RadioGroup/RadioGroup/RadioGroup.js +36 -29
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +11 -26
- package/components/RadioGroup/RadioGroup.md +43 -43
- package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js +12 -0
- package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js.map +1 -0
- package/components/RadioGroup/RadioGroupContext/package.json +6 -0
- package/components/RadioGroup/RadioGroupContext.d.ts +10 -0
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +6 -2
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +15 -9
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js +11 -8
- package/components/ScrollContainer/ScrollContainer.styles/ScrollContainer.styles.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.styles.d.ts +1 -0
- package/components/Select/Select/Select.js +16 -7
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +1 -0
- package/components/SidePage/SidePage/SidePage.js +27 -3
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +3 -0
- package/components/SidePage/SidePageBody/SidePageBody.js +16 -10
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +1 -0
- package/components/SidePage/SidePageContainer/SidePageContainer.js +16 -9
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +1 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js +22 -19
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +1 -2
- package/components/SidePage/SidePageHeader/SidePageHeader.js +15 -10
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +1 -0
- package/components/Spinner/Spinner/Spinner.js +14 -6
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +9 -0
- package/components/Spinner/Spinner.md +1 -0
- package/components/Spinner/Spinner.styles/Spinner.styles.js +12 -9
- package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
- package/components/Spinner/Spinner.styles.d.ts +2 -1
- package/components/Sticky/Sticky/Sticky.js +13 -8
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +1 -0
- package/components/Switcher/Switcher/Switcher.js +11 -6
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +1 -0
- package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Tabs/Indicator/Indicator.js +16 -14
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Indicator.d.ts +1 -0
- package/components/Tabs/Tab/Tab.js +31 -34
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +2 -1
- package/components/Tabs/Tabs/Tabs.js +20 -20
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +1 -0
- package/components/Tabs/Tabs.md +36 -36
- package/components/Textarea/Textarea/Textarea.js +21 -17
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +1 -0
- package/components/Textarea/Textarea.md +25 -25
- package/components/Toast/Toast/Toast.js +29 -14
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +3 -0
- package/components/Toast/ToastView/ToastView.js +10 -5
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.d.ts +1 -0
- package/components/Toggle/Toggle/Toggle.js +16 -11
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +1 -0
- package/components/Token/Token/Token.js +11 -4
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +1 -0
- package/components/Token/Token.md +112 -112
- package/components/TokenInput/TokenInput/TokenInput.js +12 -6
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +1 -0
- package/components/TokenInput/TokenInput.md +79 -79
- package/components/Tooltip/Tooltip/Tooltip.js +26 -17
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +11 -22
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +23 -17
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +3 -2
- package/index.d.ts +1 -1
- package/index.js +2 -2
- package/index.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +37 -10
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -3
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +23 -13
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +12 -4
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
- package/internal/DateSelect/DateSelect/DateSelect.js +5 -5
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +2 -2
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +17 -16
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
- package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js +10 -0
- package/internal/DropdownContainer/DropdownContainer.styles/DropdownContainer.styles.js.map +1 -0
- package/internal/DropdownContainer/DropdownContainer.styles/package.json +6 -0
- package/internal/DropdownContainer/DropdownContainer.styles.d.ts +3 -0
- package/internal/FocusTrap/FocusTrap/FocusTrap.js +17 -9
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +1 -0
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +13 -7
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +11 -6
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +24 -25
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +2 -3
- package/internal/MaskedInput/MaskedInput/MaskedInput.js +7 -7
- package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/internal/MaskedInput/MaskedInput.d.ts +2 -2
- package/internal/Menu/Menu/Menu.js +24 -12
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +3 -0
- package/internal/Menu/Menu.styles/Menu.styles.js +12 -3
- package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
- package/internal/Menu/Menu.styles.d.ts +3 -0
- package/internal/Popup/Popup/Popup.js +85 -68
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +9 -8
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +2 -2
- package/{components/FileUploader/locale → internal/Popup}/types/package.json +1 -1
- package/{components/FileUploader/locale → internal/Popup}/types/types.js +0 -0
- package/{components/FileUploader/locale → internal/Popup}/types/types.js.map +0 -0
- package/internal/Popup/types.d.ts +1 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +15 -10
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +4 -3
- package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
- package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
- package/internal/PopupMenu/validatePositions.d.ts +2 -2
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +3 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainer.d.ts +1 -1
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +20 -18
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +3 -1
- package/internal/ThemePlayground/Playground/Playground.js +1 -11
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/Playground.d.ts +0 -1
- package/internal/ThemePlayground/darkTheme/darkTheme.js +1 -26
- package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
- package/internal/ThemePlayground/darkTheme.d.ts +0 -15
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +35 -43
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
- package/internal/ThemeShowcase/ThemeShowcase.md +13 -13
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +20 -8
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +2 -0
- package/internal/icons/16px/index/index.js +83 -78
- package/internal/icons/16px/index/index.js.map +1 -1
- package/internal/icons/16px/index.d.ts +17 -19
- package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
- package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
- package/internal/icons/SpinnerIcon.d.ts +4 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +0 -67
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +0 -23
- package/lib/ModalStack/ModalStack.js +9 -13
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/callChildRef/callChildRef/callChildRef.js +14 -0
- package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -0
- package/lib/callChildRef/callChildRef/package.json +6 -0
- package/lib/callChildRef/callChildRef.d.ts +3 -0
- package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js +19 -0
- package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -0
- package/lib/events/fixFirefoxModifiedClickOnLabel/package.json +6 -0
- package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +2 -0
- package/lib/getDisplayName/getDisplayName.js +3 -0
- package/lib/getDisplayName/getDisplayName.js.map +1 -0
- package/lib/getDisplayName/package.json +6 -0
- package/lib/getDisplayName.d.ts +3 -0
- package/lib/locale/types/types.js.map +1 -1
- package/lib/locale/types.d.ts +0 -2
- package/lib/rootNode/getRootNode/getRootNode.js +25 -0
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -0
- package/lib/rootNode/getRootNode/package.json +6 -0
- package/lib/rootNode/getRootNode.d.ts +3 -0
- package/lib/rootNode/index/index.js +2 -0
- package/lib/rootNode/index/index.js.map +1 -0
- package/{components/FileUploader → lib/rootNode}/index/package.json +1 -1
- package/lib/rootNode/index.d.ts +2 -0
- package/{components/FileUploader → lib/rootNode}/package.json +1 -1
- package/lib/rootNode/rootNodeDecorator/package.json +6 -0
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +37 -0
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -0
- package/lib/rootNode/rootNodeDecorator.d.ts +33 -0
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +1 -0
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/useTheme/package.json +6 -0
- package/lib/theming/useTheme/useTheme.js +5 -0
- package/lib/theming/useTheme/useTheme.js.map +1 -0
- package/lib/theming/useTheme.d.ts +1 -0
- package/lib/utils/utils.js +77 -19
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +35 -1
- package/lib/withClassWrapper/package.json +6 -0
- package/lib/withClassWrapper/withClassWrapper.js +70 -0
- package/lib/withClassWrapper/withClassWrapper.js.map +1 -0
- package/lib/withClassWrapper.d.ts +71 -0
- package/package.json +13 -5
- package/typings/html-props.d.ts +123 -0
- package/cjs/components/FileUploader/FileUploader.d.ts +0 -31
- package/cjs/components/FileUploader/FileUploader.js +0 -270
- package/cjs/components/FileUploader/FileUploader.js.map +0 -1
- package/cjs/components/FileUploader/FileUploader.md +0 -67
- package/cjs/components/FileUploader/FileUploader.styles.d.ts +0 -19
- package/cjs/components/FileUploader/FileUploader.styles.js +0 -159
- package/cjs/components/FileUploader/FileUploader.styles.js.map +0 -1
- package/cjs/components/FileUploader/index.d.ts +0 -4
- package/cjs/components/FileUploader/index.js +0 -4
- package/cjs/components/FileUploader/index.js.map +0 -1
- package/cjs/components/FileUploader/locale/index.d.ts +0 -4
- package/cjs/components/FileUploader/locale/index.js +0 -11
- package/cjs/components/FileUploader/locale/index.js.map +0 -1
- package/cjs/components/FileUploader/locale/locales/en.d.ts +0 -2
- package/cjs/components/FileUploader/locale/locales/en.js +0 -7
- package/cjs/components/FileUploader/locale/locales/en.js.map +0 -1
- package/cjs/components/FileUploader/locale/locales/ru.d.ts +0 -2
- package/cjs/components/FileUploader/locale/locales/ru.js +0 -7
- package/cjs/components/FileUploader/locale/locales/ru.js.map +0 -1
- package/cjs/components/FileUploader/locale/types.d.ts +0 -6
- package/cjs/hooks/useDrop.d.ts +0 -11
- package/cjs/hooks/useDrop.js +0 -75
- package/cjs/hooks/useDrop.js.map +0 -1
- package/cjs/hooks/useMemoObject.d.ts +0 -1
- package/cjs/hooks/useMemoObject.js +0 -5
- package/cjs/hooks/useMemoObject.js.map +0 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
- package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +0 -15
- package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +0 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +0 -107
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +0 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +0 -187
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +0 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +0 -66
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +0 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +0 -24
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +0 -17
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +0 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
- package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js +0 -16
- package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +0 -1
- package/cjs/internal/FileUploaderControl/fileUtils.d.ts +0 -18
- package/cjs/internal/FileUploaderControl/fileUtils.js +0 -55
- package/cjs/internal/FileUploaderControl/fileUtils.js.map +0 -1
- package/cjs/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
- package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js +0 -4
- package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js.map +0 -1
- package/cjs/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
- package/cjs/internal/FileUploaderControl/hooks/useUpload.js +0 -51
- package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +0 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +0 -18
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +0 -1
- package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
- package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
- package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js +0 -34
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +0 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
- package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +0 -23
- package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +0 -1
- package/cjs/lib/guidUtils.d.ts +0 -1
- package/cjs/lib/guidUtils.js +0 -5
- package/cjs/lib/guidUtils.js.map +0 -1
- package/cjs/lib/locale/useLocaleForControl.d.ts +0 -3
- package/cjs/lib/locale/useLocaleForControl.js +0 -14
- package/cjs/lib/locale/useLocaleForControl.js.map +0 -1
- package/cjs/lib/stringUtils.d.ts +0 -1
- package/cjs/lib/stringUtils.js +0 -13
- package/cjs/lib/stringUtils.js.map +0 -1
- package/components/FileUploader/FileUploader/FileUploader.js +0 -277
- package/components/FileUploader/FileUploader/FileUploader.js.map +0 -1
- package/components/FileUploader/FileUploader/package.json +0 -6
- package/components/FileUploader/FileUploader.d.ts +0 -31
- package/components/FileUploader/FileUploader.md +0 -67
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +0 -56
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +0 -1
- package/components/FileUploader/FileUploader.styles/package.json +0 -6
- package/components/FileUploader/FileUploader.styles.d.ts +0 -19
- package/components/FileUploader/index/index.js +0 -3
- package/components/FileUploader/index/index.js.map +0 -1
- package/components/FileUploader/index.d.ts +0 -4
- package/components/FileUploader/locale/index/index.js +0 -8
- package/components/FileUploader/locale/index/index.js.map +0 -1
- package/components/FileUploader/locale/index/package.json +0 -6
- package/components/FileUploader/locale/index.d.ts +0 -4
- package/components/FileUploader/locale/locales/en/en.js +0 -6
- package/components/FileUploader/locale/locales/en/en.js.map +0 -1
- package/components/FileUploader/locale/locales/en/package.json +0 -6
- package/components/FileUploader/locale/locales/en.d.ts +0 -2
- package/components/FileUploader/locale/locales/ru/package.json +0 -6
- package/components/FileUploader/locale/locales/ru/ru.js +0 -6
- package/components/FileUploader/locale/locales/ru/ru.js.map +0 -1
- package/components/FileUploader/locale/locales/ru.d.ts +0 -2
- package/components/FileUploader/locale/package.json +0 -6
- package/components/FileUploader/locale/types.d.ts +0 -6
- package/hooks/useDrop/package.json +0 -6
- package/hooks/useDrop/useDrop.js +0 -57
- package/hooks/useDrop/useDrop.js.map +0 -1
- package/hooks/useDrop.d.ts +0 -11
- package/hooks/useMemoObject/package.json +0 -6
- package/hooks/useMemoObject/useMemoObject.js +0 -6
- package/hooks/useMemoObject/useMemoObject.js.map +0 -1
- package/hooks/useMemoObject.d.ts +0 -1
- package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js +0 -2
- package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +0 -1
- package/internal/FileUploaderControl/FileUploaderControlContext/package.json +0 -6
- package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +0 -11
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +0 -79
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +0 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider/package.json +0 -6
- package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +0 -14
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +0 -176
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +0 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/package.json +0 -6
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +0 -10
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +0 -32
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +0 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/package.json +0 -6
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +0 -11
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +0 -23
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +0 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/package.json +0 -6
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +0 -4
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +0 -11
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +0 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/package.json +0 -6
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +0 -4
- package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js +0 -18
- package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js.map +0 -1
- package/internal/FileUploaderControl/FileUploaderFileValidationResult/package.json +0 -6
- package/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +0 -7
- package/internal/FileUploaderControl/fileUtils/fileUtils.js +0 -85
- package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +0 -1
- package/internal/FileUploaderControl/fileUtils/package.json +0 -6
- package/internal/FileUploaderControl/fileUtils.d.ts +0 -18
- package/internal/FileUploaderControl/hooks/useControlLocale/package.json +0 -6
- package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js +0 -5
- package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js.map +0 -1
- package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +0 -1
- package/internal/FileUploaderControl/hooks/useUpload/package.json +0 -6
- package/internal/FileUploaderControl/hooks/useUpload/useUpload.js +0 -56
- package/internal/FileUploaderControl/hooks/useUpload/useUpload.js.map +0 -1
- package/internal/FileUploaderControl/hooks/useUpload.d.ts +0 -3
- package/internal/FileUploaderControl/withFileUploaderControlProvider/package.json +0 -6
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +0 -16
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +0 -1
- package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +0 -3
- package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
- package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
- package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
- package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +0 -49
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +0 -1
- package/internal/TextWidthHelper/TextWidthHelper/package.json +0 -6
- package/internal/TextWidthHelper/TextWidthHelper.d.ts +0 -15
- package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js +0 -14
- package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js.map +0 -1
- package/internal/TextWidthHelper/TextWidthHelper.styles/package.json +0 -6
- package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +0 -4
- package/lib/guidUtils/guidUtils.js +0 -4
- package/lib/guidUtils/guidUtils.js.map +0 -1
- package/lib/guidUtils/package.json +0 -6
- package/lib/guidUtils.d.ts +0 -1
- package/lib/locale/useLocaleForControl/package.json +0 -6
- package/lib/locale/useLocaleForControl/useLocaleForControl.js +0 -12
- package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +0 -1
- package/lib/locale/useLocaleForControl.d.ts +0 -3
- package/lib/stringUtils/package.json +0 -6
- package/lib/stringUtils/stringUtils.js +0 -12
- package/lib/stringUtils/stringUtils.js.map +0 -1
- package/lib/stringUtils.d.ts +0 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
3
3
|
|
|
4
|
+
var _class, _class2, _temp;
|
|
5
|
+
|
|
4
6
|
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
5
7
|
var it;
|
|
6
8
|
|
|
@@ -55,9 +57,21 @@ import { FocusTrap } from "../../../internal/FocusTrap";
|
|
|
55
57
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
56
58
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
57
59
|
import { cx } from "../../../lib/theming/Emotion";
|
|
60
|
+
import { rootNode } from "../../../lib/rootNode";
|
|
58
61
|
import { styles } from "../RadioGroup.styles";
|
|
59
62
|
import { Prevent } from "../Prevent";
|
|
60
|
-
|
|
63
|
+
import { RadioGroupContext } from "../RadioGroupContext";
|
|
64
|
+
export
|
|
65
|
+
/**
|
|
66
|
+
*
|
|
67
|
+
* `children` может содержать любую разметку с компонентами Radio,
|
|
68
|
+
* если не передан параметр `items`.
|
|
69
|
+
* Каждому компоненту Radio нужно указать параметр `value`, такого же типа
|
|
70
|
+
* как и параметр `value` самой радиогруппы.
|
|
71
|
+
*
|
|
72
|
+
* Значения активного элемента сравниваются по строгому равенству `===`
|
|
73
|
+
*/
|
|
74
|
+
var RadioGroup = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
|
|
61
75
|
_inheritsLoose(RadioGroup, _React$Component);
|
|
62
76
|
|
|
63
77
|
function RadioGroup(props) {
|
|
@@ -68,6 +82,18 @@ export var RadioGroup = /*#__PURE__*/function (_React$Component) {
|
|
|
68
82
|
_this.node = void 0;
|
|
69
83
|
_this.name = getRandomID();
|
|
70
84
|
_this.getProps = createPropsGetter(RadioGroup.defaultProps);
|
|
85
|
+
_this.setRootNode = void 0;
|
|
86
|
+
|
|
87
|
+
_this.getRadioGroupContextValue = function () {
|
|
88
|
+
return {
|
|
89
|
+
activeItem: _this.getValue(),
|
|
90
|
+
onSelect: _this.handleSelect,
|
|
91
|
+
name: _this.getName(),
|
|
92
|
+
disabled: _this.props.disabled,
|
|
93
|
+
error: _this.props.error,
|
|
94
|
+
warning: _this.props.warning
|
|
95
|
+
};
|
|
96
|
+
};
|
|
71
97
|
|
|
72
98
|
_this.getValue = function () {
|
|
73
99
|
return _this.isControlled() ? _this.props.value : _this.state.activeItem;
|
|
@@ -117,17 +143,6 @@ export var RadioGroup = /*#__PURE__*/function (_React$Component) {
|
|
|
117
143
|
|
|
118
144
|
var _proto = RadioGroup.prototype;
|
|
119
145
|
|
|
120
|
-
_proto.getChildContext = function getChildContext() {
|
|
121
|
-
return {
|
|
122
|
-
activeItem: this.getValue(),
|
|
123
|
-
onSelect: this.handleSelect,
|
|
124
|
-
name: this.getName(),
|
|
125
|
-
disabled: this.props.disabled,
|
|
126
|
-
error: this.props.error,
|
|
127
|
-
warning: this.props.warning
|
|
128
|
-
};
|
|
129
|
-
};
|
|
130
|
-
|
|
131
146
|
_proto.render = function render() {
|
|
132
147
|
var _this2 = this;
|
|
133
148
|
|
|
@@ -152,13 +167,17 @@ export var RadioGroup = /*#__PURE__*/function (_React$Component) {
|
|
|
152
167
|
onMouseEnter: onMouseEnter,
|
|
153
168
|
onMouseLeave: onMouseLeave
|
|
154
169
|
};
|
|
155
|
-
return /*#__PURE__*/React.createElement(CommonWrapper,
|
|
170
|
+
return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
|
|
171
|
+
rootNodeRef: this.setRootNode
|
|
172
|
+
}, this.props), /*#__PURE__*/React.createElement(FocusTrap, {
|
|
156
173
|
onBlur: onBlur
|
|
157
174
|
}, /*#__PURE__*/React.createElement("span", _extends({
|
|
158
175
|
ref: this.ref,
|
|
159
176
|
style: style,
|
|
160
177
|
className: styles.root()
|
|
161
|
-
}, handlers),
|
|
178
|
+
}, handlers), /*#__PURE__*/React.createElement(RadioGroupContext.Provider, {
|
|
179
|
+
value: this.getRadioGroupContextValue()
|
|
180
|
+
}, this.renderChildren()))));
|
|
162
181
|
}
|
|
163
182
|
/**
|
|
164
183
|
* @public
|
|
@@ -192,17 +211,7 @@ export var RadioGroup = /*#__PURE__*/function (_React$Component) {
|
|
|
192
211
|
};
|
|
193
212
|
|
|
194
213
|
return RadioGroup;
|
|
195
|
-
}(React.Component)
|
|
196
|
-
RadioGroup.__KONTUR_REACT_UI__ = 'RadioGroup';
|
|
197
|
-
RadioGroup.childContextTypes = {
|
|
198
|
-
error: PropTypes.bool,
|
|
199
|
-
name: PropTypes.string,
|
|
200
|
-
warning: PropTypes.bool,
|
|
201
|
-
disabled: PropTypes.bool,
|
|
202
|
-
activeItem: PropTypes.any,
|
|
203
|
-
onSelect: PropTypes.func
|
|
204
|
-
};
|
|
205
|
-
RadioGroup.propTypes = {
|
|
214
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'RadioGroup', _class2.propTypes = {
|
|
206
215
|
children: PropTypes.node,
|
|
207
216
|
disabled: PropTypes.bool,
|
|
208
217
|
error: PropTypes.bool,
|
|
@@ -214,11 +223,9 @@ RadioGroup.propTypes = {
|
|
|
214
223
|
onMouseEnter: PropTypes.func,
|
|
215
224
|
onMouseLeave: PropTypes.func,
|
|
216
225
|
onMouseOver: PropTypes.func
|
|
217
|
-
}
|
|
218
|
-
RadioGroup.defaultProps = {
|
|
226
|
+
}, _class2.defaultProps = {
|
|
219
227
|
renderItem: renderItem
|
|
220
|
-
};
|
|
221
|
-
RadioGroup.Prevent = Prevent;
|
|
228
|
+
}, _class2.Prevent = Prevent, _temp)) || _class;
|
|
222
229
|
|
|
223
230
|
function renderItem(_value, data) {
|
|
224
231
|
return data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["RadioGroup.tsx"],"names":["React","PropTypes","invariant","getRandomID","Radio","createPropsGetter","FocusTrap","ThemeContext","CommonWrapper","cx","styles","Prevent","RadioGroup","props","theme","node","name","getProps","defaultProps","getValue","isControlled","value","state","activeItem","getName","handleSelect","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","className","item","itemFirst","itemInline","inline","renderItem","ref","element","defaultValue","getChildContext","onSelect","disabled","error","warning","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","root","renderChildren","focus","radio","querySelector","items","children","mapItems","Component","__KONTUR_REACT_UI__","childContextTypes","bool","string","any","func","propTypes","oneOfType","number","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /**\n * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок\n * или значений из параметра `items`\n */\n defaultValue?: T;\n /**\n * Значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтроллируемый\n */\n value?: T;\n /**\n * Может быть использовано, если не передан параметр `children`\n *\n * Массив параметров радиокнопок. Может быть типа `Array<Value>` или\n * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`\n * — значение которое будет использовано вторым параметром в `renderItem`.\n * Если тип `items: Array<Value>`, то он будет приведен к типу\n * `Array<[Value, Value]>`\n */\n items?: T[] | [T, React.ReactNode][];\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n /**\n * Дизейблит все радиокнопки\n */\n disabled?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: предупреждение.\n */\n warning?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: ошибка.\n */\n error?: boolean;\n /**\n * Выравнивает элементы в строку. Не работает с `children`\n */\n inline?: boolean;\n /**\n * Ширина радиогруппы. Не работает с `children`\n */\n width?: React.CSSProperties['width'];\n /**\n * Метод отрисовки контента радиокнопки. Не работает с `children`.\n *\n * Принимает два аргумента: `(value: Value, data: Data) => React.Node`\n */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onBlur?: (event: FocusEvent) => void;\n onMouseLeave?: () => any;\n onMouseOver?: () => any;\n onMouseEnter?: () => any;\n /**\n * Может быть использовано, если не передан параметр `items`\n *\n * `children` может содержать любую разметку с компонентами Radio.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа\n * как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`\n */\n children?: React.ReactNode;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n\n public static childContextTypes = {\n error: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n disabled: PropTypes.bool,\n activeItem: PropTypes.any,\n onSelect: PropTypes.func,\n };\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inline: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public static defaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private theme!: Theme;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n public getChildContext() {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\n };\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { width, onMouseLeave, onMouseOver, onMouseEnter, onBlur } = this.props;\n const style = {\n width: width != null ? width : 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <CommonWrapper {...this.props}>\n <FocusTrap onBlur={onBlur}>\n <span ref={this.ref} style={style} className={styles.root()} {...handlers}>\n {this.renderChildren()}\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => this.props.value != null;\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : index,\n className: cx({\n [styles.item(this.theme)]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps}>\n <Radio value={itemValue}>{this.getProps().renderItem<T>(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | [T, React.ReactNode][],\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry];\n }\n return entry;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["RadioGroup.tsx"],"names":["React","PropTypes","invariant","getRandomID","Radio","createPropsGetter","FocusTrap","ThemeContext","CommonWrapper","cx","rootNode","styles","Prevent","RadioGroupContext","RadioGroup","props","theme","node","name","getProps","defaultProps","setRootNode","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","className","item","itemFirst","itemInline","inline","renderItem","ref","element","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","root","renderChildren","focus","radio","querySelector","items","children","mapItems","Component","__KONTUR_REACT_UI__","propTypes","bool","string","oneOfType","number","func","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID } from '../../lib/utils';\nimport { Radio } from '../Radio';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable } from '../../typings/utility-types';\nimport { FocusTrap } from '../../internal/FocusTrap';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './RadioGroup.styles';\nimport { Prevent } from './Prevent';\nimport { RadioGroupContext, RadioGroupContextType } from './RadioGroupContext';\n\nexport interface RadioGroupProps<T = string | number> extends CommonProps {\n /**\n * Значение по умолчанию. Должно быть одним из значений дочерних радиокнопок\n * или значений из параметра `items`\n */\n defaultValue?: T;\n /**\n * Значение радиогруппы. Должно быть одним из значений радиокнопок.\n * Если не указано, то компонент будет работать, как неконтроллируемый\n */\n value?: T;\n /**\n * Может быть использовано, если не передан параметр `children`\n *\n * Массив параметров радиокнопок. Может быть типа `Array<Value>` или\n * `Array<[Value, Data]>`, где тип `Value` — значение радиокнопки, а `Data`\n * — значение которое будет использовано вторым параметром в `renderItem`.\n * Если тип `items: Array<Value>`, то он будет приведен к типу\n * `Array<[Value, Value]>`\n */\n items?: T[] | [T, React.ReactNode][];\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n /**\n * Дизейблит все радиокнопки\n */\n disabled?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: предупреждение.\n */\n warning?: boolean;\n /**\n * Переводит все радиокнопки в состояние валидации: ошибка.\n */\n error?: boolean;\n /**\n * Выравнивает элементы в строку. Не работает с `children`\n */\n inline?: boolean;\n /**\n * Ширина радиогруппы. Не работает с `children`\n */\n width?: React.CSSProperties['width'];\n /**\n * Метод отрисовки контента радиокнопки. Не работает с `children`.\n *\n * Принимает два аргумента: `(value: Value, data: Data) => React.Node`\n */\n renderItem?: (itemValue: T, data: React.ReactNode) => React.ReactNode;\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n onBlur?: (event: FocusEvent) => void;\n onMouseLeave?: () => any;\n onMouseOver?: () => any;\n onMouseEnter?: () => any;\n}\n\nexport interface RadioGroupState<T> {\n activeItem?: T;\n}\n\n/**\n *\n * `children` может содержать любую разметку с компонентами Radio,\n * если не передан параметр `items`.\n * Каждому компоненту Radio нужно указать параметр `value`, такого же типа\n * как и параметр `value` самой радиогруппы.\n *\n * Значения активного элемента сравниваются по строгому равенству `===`\n */\n@rootNode\nexport class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {\n public static __KONTUR_REACT_UI__ = 'RadioGroup';\n\n public static propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n inline: PropTypes.bool,\n name: PropTypes.string,\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public static defaultProps = {\n renderItem,\n };\n\n public static Prevent = Prevent;\n\n private theme!: Theme;\n\n private node: Nullable<HTMLSpanElement>;\n private name = getRandomID();\n private getProps = createPropsGetter(RadioGroup.defaultProps);\n private setRootNode!: TSetRootNode;\n\n constructor(props: RadioGroupProps<T>) {\n super(props);\n\n this.state = {\n activeItem: this.props.defaultValue,\n };\n }\n\n private getRadioGroupContextValue = (): RadioGroupContextType<T> => {\n return {\n activeItem: this.getValue(),\n onSelect: this.handleSelect,\n name: this.getName(),\n disabled: this.props.disabled,\n error: this.props.error,\n warning: this.props.warning,\n };\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { width, onMouseLeave, onMouseOver, onMouseEnter, onBlur } = this.props;\n const style = {\n width: width != null ? width : 'auto',\n };\n const handlers = {\n onMouseOver,\n onMouseEnter,\n onMouseLeave,\n };\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <FocusTrap onBlur={onBlur}>\n <span ref={this.ref} style={style} className={styles.root()} {...handlers}>\n <RadioGroupContext.Provider value={this.getRadioGroupContextValue()}>\n {this.renderChildren()}\n </RadioGroupContext.Provider>\n </span>\n </FocusTrap>\n </CommonWrapper>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n const node = this.node;\n if (!node) {\n return;\n }\n\n let radio = node.querySelector('input[type=\"radio\"]:checked') as Nullable<HTMLInputElement>;\n\n // If no checked radios, try get first radio\n if (!radio || radio.disabled) {\n radio = node.querySelector('input[type=\"radio\"]:not([disabled])') as Nullable<HTMLInputElement>;\n }\n\n if (radio) {\n radio.focus();\n }\n }\n\n private getValue = () => (this.isControlled() ? this.props.value : this.state.activeItem);\n\n private getName = () => this.props.name || this.name;\n\n private isControlled = () => this.props.value != null;\n\n private handleSelect = (value: T) => {\n if (!this.isControlled()) {\n this.setState({ activeItem: value });\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private renderChildren() {\n const { items, children } = this.props;\n invariant((!items && children) || (items && !children), 'Either items or children must be passed, not both');\n return items ? mapItems<T>(this.renderRadio, items) : children;\n }\n\n private renderRadio = (itemValue: T, data: React.ReactNode, index: number): JSX.Element => {\n const itemProps = {\n key: typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : index,\n className: cx({\n [styles.item(this.theme)]: true,\n [styles.itemFirst()]: index === 0,\n [styles.itemInline()]: !!this.props.inline,\n }),\n };\n\n return (\n <span {...itemProps}>\n <Radio value={itemValue}>{this.getProps().renderItem<T>(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private ref = (element: HTMLSpanElement) => {\n this.node = element;\n };\n}\n\nfunction renderItem<T>(_value: T, data: React.ReactNode) {\n return data;\n}\n\nfunction mapItems<T>(\n fn: (value: T, data: React.ReactNode, index: number) => React.ReactNode,\n items: T[] | [T, React.ReactNode][],\n) {\n const result: React.ReactNode[] = [];\n let index = 0;\n for (const entry of items) {\n const [value, data] = normalizeEntry<T>(entry);\n result.push(fn(value, data, index));\n ++index;\n }\n return result;\n}\n\nfunction normalizeEntry<T>(entry: T | [T, React.ReactNode]): [T, React.ReactNode] {\n if (!Array.isArray(entry)) {\n return [entry, entry];\n }\n return entry;\n}\n"]}
|
|
@@ -60,30 +60,21 @@ export interface RadioGroupProps<T = string | number> extends CommonProps {
|
|
|
60
60
|
onMouseLeave?: () => any;
|
|
61
61
|
onMouseOver?: () => any;
|
|
62
62
|
onMouseEnter?: () => any;
|
|
63
|
-
/**
|
|
64
|
-
* Может быть использовано, если не передан параметр `items`
|
|
65
|
-
*
|
|
66
|
-
* `children` может содержать любую разметку с компонентами Radio.
|
|
67
|
-
* Каждому компоненту Radio нужно указать параметр `value`, такого же типа
|
|
68
|
-
* как и параметр `value` самой радиогруппы.
|
|
69
|
-
*
|
|
70
|
-
* Значения активного элемента сравниваются по строгому равенству `===`
|
|
71
|
-
*/
|
|
72
|
-
children?: React.ReactNode;
|
|
73
63
|
}
|
|
74
64
|
export interface RadioGroupState<T> {
|
|
75
65
|
activeItem?: T;
|
|
76
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
*
|
|
69
|
+
* `children` может содержать любую разметку с компонентами Radio,
|
|
70
|
+
* если не передан параметр `items`.
|
|
71
|
+
* Каждому компоненту Radio нужно указать параметр `value`, такого же типа
|
|
72
|
+
* как и параметр `value` самой радиогруппы.
|
|
73
|
+
*
|
|
74
|
+
* Значения активного элемента сравниваются по строгому равенству `===`
|
|
75
|
+
*/
|
|
77
76
|
export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, RadioGroupState<T>> {
|
|
78
77
|
static __KONTUR_REACT_UI__: string;
|
|
79
|
-
static childContextTypes: {
|
|
80
|
-
error: PropTypes.Requireable<boolean>;
|
|
81
|
-
name: PropTypes.Requireable<string>;
|
|
82
|
-
warning: PropTypes.Requireable<boolean>;
|
|
83
|
-
disabled: PropTypes.Requireable<boolean>;
|
|
84
|
-
activeItem: PropTypes.Requireable<any>;
|
|
85
|
-
onSelect: PropTypes.Requireable<(...args: any[]) => any>;
|
|
86
|
-
};
|
|
87
78
|
static propTypes: {
|
|
88
79
|
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
89
80
|
disabled: PropTypes.Requireable<boolean>;
|
|
@@ -105,15 +96,9 @@ export declare class RadioGroup<T> extends React.Component<RadioGroupProps<T>, R
|
|
|
105
96
|
private node;
|
|
106
97
|
private name;
|
|
107
98
|
private getProps;
|
|
99
|
+
private setRootNode;
|
|
108
100
|
constructor(props: RadioGroupProps<T>);
|
|
109
|
-
|
|
110
|
-
activeItem: T | undefined;
|
|
111
|
-
onSelect: (value: T) => void;
|
|
112
|
-
name: string;
|
|
113
|
-
disabled: boolean | undefined;
|
|
114
|
-
error: boolean | undefined;
|
|
115
|
-
warning: boolean | undefined;
|
|
116
|
-
};
|
|
101
|
+
private getRadioGroupContextValue;
|
|
117
102
|
render(): JSX.Element;
|
|
118
103
|
renderMain(): JSX.Element;
|
|
119
104
|
/**
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
```jsx harmony
|
|
2
|
-
import { Gapped, Radio } from '@skbkontur/react-ui';
|
|
3
|
-
|
|
4
|
-
let items = ['One', 'Two', 'Three', 'Four'];
|
|
5
|
-
|
|
6
|
-
let simpleRadioGroup = (
|
|
7
|
-
<div>
|
|
8
|
-
<h2>Numbers</h2>
|
|
9
|
-
<RadioGroup name="number-simple" items={items} defaultValue="One" />
|
|
10
|
-
</div>
|
|
11
|
-
);
|
|
12
|
-
|
|
13
|
-
let complexRadioGroup = (
|
|
14
|
-
<div>
|
|
15
|
-
<h2>Numbers</h2>
|
|
16
|
-
<RadioGroup name="number-complex" defaultValue="3">
|
|
17
|
-
<Gapped gap={40}>
|
|
18
|
-
<Gapped vertical gap={0}>
|
|
19
|
-
<b>Odd</b>
|
|
20
|
-
<Radio value="1">One</Radio>
|
|
21
|
-
<Radio value="3">Three</Radio>
|
|
22
|
-
<Radio value="5" disabled>
|
|
23
|
-
Five
|
|
24
|
-
</Radio>
|
|
25
|
-
<Radio value="7">Seven</Radio>
|
|
26
|
-
</Gapped>
|
|
27
|
-
<Gapped vertical gap={0}>
|
|
28
|
-
<b>Even</b>
|
|
29
|
-
<Radio value="2">Two</Radio>
|
|
30
|
-
<Radio value="4">Four</Radio>
|
|
31
|
-
<Radio value="6">Six</Radio>
|
|
32
|
-
<Radio value="8">Eight</Radio>
|
|
33
|
-
</Gapped>
|
|
34
|
-
</Gapped>
|
|
35
|
-
</RadioGroup>
|
|
36
|
-
</div>
|
|
37
|
-
);
|
|
38
|
-
|
|
39
|
-
<div>
|
|
40
|
-
{simpleRadioGroup}
|
|
41
|
-
{complexRadioGroup}
|
|
42
|
-
</div>;
|
|
43
|
-
```
|
|
1
|
+
```jsx harmony
|
|
2
|
+
import { Gapped, Radio } from '@skbkontur/react-ui';
|
|
3
|
+
|
|
4
|
+
let items = ['One', 'Two', 'Three', 'Four'];
|
|
5
|
+
|
|
6
|
+
let simpleRadioGroup = (
|
|
7
|
+
<div>
|
|
8
|
+
<h2>Numbers</h2>
|
|
9
|
+
<RadioGroup name="number-simple" items={items} defaultValue="One" />
|
|
10
|
+
</div>
|
|
11
|
+
);
|
|
12
|
+
|
|
13
|
+
let complexRadioGroup = (
|
|
14
|
+
<div>
|
|
15
|
+
<h2>Numbers</h2>
|
|
16
|
+
<RadioGroup name="number-complex" defaultValue="3">
|
|
17
|
+
<Gapped gap={40}>
|
|
18
|
+
<Gapped vertical gap={0}>
|
|
19
|
+
<b>Odd</b>
|
|
20
|
+
<Radio value="1">One</Radio>
|
|
21
|
+
<Radio value="3">Three</Radio>
|
|
22
|
+
<Radio value="5" disabled>
|
|
23
|
+
Five
|
|
24
|
+
</Radio>
|
|
25
|
+
<Radio value="7">Seven</Radio>
|
|
26
|
+
</Gapped>
|
|
27
|
+
<Gapped vertical gap={0}>
|
|
28
|
+
<b>Even</b>
|
|
29
|
+
<Radio value="2">Two</Radio>
|
|
30
|
+
<Radio value="4">Four</Radio>
|
|
31
|
+
<Radio value="6">Six</Radio>
|
|
32
|
+
<Radio value="8">Eight</Radio>
|
|
33
|
+
</Gapped>
|
|
34
|
+
</Gapped>
|
|
35
|
+
</RadioGroup>
|
|
36
|
+
</div>
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
<div>
|
|
40
|
+
{simpleRadioGroup}
|
|
41
|
+
{complexRadioGroup}
|
|
42
|
+
</div>;
|
|
43
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export var RadioGroupContext = /*#__PURE__*/React.createContext({
|
|
3
|
+
activeItem: undefined,
|
|
4
|
+
onSelect: function onSelect() {
|
|
5
|
+
return undefined;
|
|
6
|
+
},
|
|
7
|
+
name: '',
|
|
8
|
+
disabled: undefined,
|
|
9
|
+
error: undefined,
|
|
10
|
+
warning: undefined
|
|
11
|
+
});
|
|
12
|
+
RadioGroupContext.displayName = 'RadioGroupContext';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["RadioGroupContext.tsx"],"names":["React","RadioGroupContext","createContext","activeItem","undefined","onSelect","name","disabled","error","warning","displayName"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;;;;;;;;;;;AAWA,OAAO,IAAMC,iBAAiB,gBAAGD,KAAK,CAACE,aAAN,CAAgD;AAC/EC,EAAAA,UAAU,EAAEC,SADmE;AAE/EC,EAAAA,QAAQ,EAAE,4BAAMD,SAAN,EAFqE;AAG/EE,EAAAA,IAAI,EAAE,EAHyE;AAI/EC,EAAAA,QAAQ,EAAEH,SAJqE;AAK/EI,EAAAA,KAAK,EAAEJ,SALwE;AAM/EK,EAAAA,OAAO,EAAEL,SANsE,EAAhD,CAA1B;;;AASPH,iBAAiB,CAACS,WAAlB,GAAgC,mBAAhC","sourcesContent":["import React from 'react';\n\nexport interface RadioGroupContextType<T> {\n activeItem: T | undefined;\n onSelect: (value: T) => void;\n name: string;\n disabled: boolean | undefined;\n error: boolean | undefined;\n warning: boolean | undefined;\n}\n\nexport const RadioGroupContext = React.createContext<RadioGroupContextType<any>>({\n activeItem: undefined,\n onSelect: () => undefined,\n name: '',\n disabled: undefined,\n error: undefined,\n warning: undefined,\n});\n\nRadioGroupContext.displayName = 'RadioGroupContext';\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface RadioGroupContextType<T> {
|
|
3
|
+
activeItem: T | undefined;
|
|
4
|
+
onSelect: (value: T) => void;
|
|
5
|
+
name: string;
|
|
6
|
+
disabled: boolean | undefined;
|
|
7
|
+
error: boolean | undefined;
|
|
8
|
+
warning: boolean | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare const RadioGroupContext: React.Context<RadioGroupContextType<any>>;
|
|
@@ -189,9 +189,13 @@ export var ScrollBar = /*#__PURE__*/function (_React$Component) {
|
|
|
189
189
|
|
|
190
190
|
if (!_this.inner || _this.inner[pos] === 0) {
|
|
191
191
|
return 'begin';
|
|
192
|
-
}
|
|
192
|
+
} // Zoom in Chrome causes problems
|
|
193
|
+
// https://github.com/skbkontur/retail-ui/pull/2705#issue-806286945
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
var maxScrollPos = _this.inner[size] - _this.inner[clientSize];
|
|
193
197
|
|
|
194
|
-
if (
|
|
198
|
+
if (Math.abs(maxScrollPos - _this.inner[pos]) <= 1) {
|
|
195
199
|
return 'end';
|
|
196
200
|
}
|
|
197
201
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ScrollBar.tsx"],"names":["React","ThemeContext","cx","defaultScrollbarState","scrollSizeParametersNames","styles","globalClasses","getScrollSizeParams","ScrollBar","inner","theme","node","state","renderMain","props","active","axis","customScrollPos","customScrollSize","classNames","className","scrollBar","scrollBarStyles","scrollBarInvert","invert","inlineStyles","pos","size","refScroll","handleScrollMouseDown","reflow","scrollSize","scrollPos","scrollActive","scrollState","getImmediateScrollState","onScrollStateChange","setState","setInnerElement","element","handleScrollWheel","event","addEventListener","passive","removeEventListener","offset","coord","initialCoord","target","window","document","initialScrollPos","mouseMove","mouseMoveEvent","ratio","delta","preventDefault","Object","prototype","hasOwnProperty","call","returnValue","mouseUp","scrolling","WheelEvent","shiftKey","offsetHeight","deltaY","clientSize","componentDidMount","componentDidUpdate","render","setHover","hover","scrollBarX","scrollbarX","scrollBarXHover","scrollBarY","scrollbarY","scrollBarYHover","Component"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { defaultScrollbarState, scrollSizeParametersNames } from './ScrollContainer.constants';\nimport { styles, globalClasses } from './ScrollContainer.styles';\nimport { getScrollSizeParams } from './ScrollContainer.helpers';\n\nexport type ScrollAxis = 'x' | 'y';\nexport type ScrollBarScrollState = 'begin' | 'middle' | 'end';\n\nexport interface ScrollBarState {\n active: boolean;\n hover: boolean;\n scrolling: boolean;\n size: number;\n pos: number;\n scrollState: ScrollBarScrollState;\n}\n\nexport interface ScrollBarProps {\n invert: boolean;\n axis: ScrollAxis;\n className?: string;\n onScrollStateChange?: (state: ScrollBarScrollState, axis: ScrollAxis) => void;\n}\n\nexport class ScrollBar extends React.Component<ScrollBarProps, ScrollBarState> {\n private inner: Nullable<HTMLElement>;\n private theme!: Theme;\n\n public node: Nullable<HTMLElement>;\n public state: ScrollBarState = {\n ...defaultScrollbarState,\n };\n\n public componentDidMount() {\n this.reflow();\n }\n\n public componentDidUpdate() {\n this.reflow();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = () => {\n const state = this.state;\n const props = this.props;\n\n if (!state.active) {\n return null;\n }\n\n const { customScrollPos, customScrollSize } = scrollSizeParametersNames[this.props.axis];\n\n const classNames = cx(props.className, styles.scrollBar(this.theme), this.scrollBarStyles, {\n [styles.scrollBarInvert(this.theme)]: props.invert,\n });\n\n const inlineStyles: React.CSSProperties = {\n [customScrollPos]: state.pos,\n [customScrollSize]: state.size,\n };\n\n return (\n <div\n ref={this.refScroll}\n style={inlineStyles}\n className={classNames}\n onMouseDown={this.handleScrollMouseDown}\n data-tid={`ScrollContainer__ScrollBar-${props.axis}`}\n />\n );\n };\n\n public reflow = () => {\n if (!this.inner) {\n return;\n }\n\n const props = this.props;\n const state = this.state;\n\n const { scrollSize, scrollPos, scrollActive } = getScrollSizeParams(this.inner, props.axis);\n\n if (!scrollActive && !state.active) {\n return;\n }\n\n if (state.active !== scrollActive || state.size !== scrollSize || state.pos !== scrollPos) {\n const scrollState = this.getImmediateScrollState();\n\n if (scrollState !== state.scrollState) {\n this.props.onScrollStateChange?.(scrollState, props.axis);\n }\n\n this.setState({\n ...this.state,\n active: scrollActive,\n size: scrollSize,\n pos: scrollPos,\n scrollState,\n });\n }\n };\n\n public setInnerElement = (inner: Nullable<HTMLElement>) => {\n this.inner = inner;\n this.reflow();\n };\n\n public setHover(hover: boolean) {\n if (this.state.active && this.state.hover !== hover) {\n this.setState({ ...this.state, hover });\n }\n }\n\n public get scrollBarState() {\n return this.state.scrollState;\n }\n\n private get scrollBarStyles() {\n const state = this.state;\n\n if (this.props.axis === 'x') {\n return cx(styles.scrollBarX(this.theme), globalClasses.scrollbarX, {\n [styles.scrollBarXHover(this.theme)]: state.hover || state.scrolling,\n });\n }\n\n return cx(styles.scrollBarY(this.theme), globalClasses.scrollbarY, {\n [styles.scrollBarYHover(this.theme)]: state.hover || state.scrolling,\n });\n }\n\n private refScroll = (element: HTMLElement | null) => {\n const handleScrollWheel = (event: Event) => this.handleScrollWheel(event, this.props.axis);\n\n if (!this.node && element) {\n element.addEventListener('wheel', handleScrollWheel, { passive: false });\n }\n if (this.node && !element) {\n this.node.removeEventListener('wheel', handleScrollWheel);\n }\n this.node = element;\n };\n\n private handleScrollMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.inner) {\n return;\n }\n\n const { offset, size, pos, coord } = scrollSizeParametersNames[this.props.axis];\n\n const initialCoord = event[coord];\n const target: Document = window.document;\n const initialScrollPos = this.inner[pos];\n const state = this.state;\n\n const mouseMove = (mouseMoveEvent: MouseEvent) => {\n if (!this.inner) {\n return;\n }\n\n const ratio = (this.inner[size] - this.inner[offset]) / (this.inner[offset] - state.size);\n const delta = (mouseMoveEvent[coord] - initialCoord) * ratio;\n\n this.inner[pos] = initialScrollPos + delta;\n\n if (mouseMoveEvent.preventDefault) {\n mouseMoveEvent.preventDefault();\n }\n\n if (Object.prototype.hasOwnProperty.call(mouseMoveEvent, 'returnValue')) {\n (\n mouseMoveEvent as MouseEvent & {\n returnValue: boolean;\n }\n ).returnValue = false;\n }\n };\n\n const mouseUp = () => {\n target.removeEventListener('mousemove', mouseMove);\n target.removeEventListener('mouseup', mouseUp);\n this.setState({ ...this.state, scrolling: false });\n };\n\n target.addEventListener('mousemove', mouseMove);\n target.addEventListener('mouseup', mouseUp);\n this.setState({ ...this.state, scrolling: true });\n\n event.preventDefault();\n };\n\n private handleScrollWheel = (event: Event, axis: ScrollAxis) => {\n if (!this.inner || !(event instanceof WheelEvent) || (axis === 'x' && !event.shiftKey)) {\n return;\n }\n\n const { offset, size, pos } = scrollSizeParametersNames[axis];\n\n const scrollSize = this.inner[size];\n const scrollPos = this.inner[pos];\n const offsetHeight = this.inner[offset];\n\n if (event.deltaY > 0 && scrollSize <= scrollPos + offsetHeight) {\n return;\n }\n if (event.deltaY < 0 && scrollPos <= 0) {\n return;\n }\n\n this.inner[pos] += event.deltaY;\n\n event.preventDefault();\n };\n\n private getImmediateScrollState = (): ScrollBarScrollState => {\n const { pos, size, clientSize } = scrollSizeParametersNames[this.props.axis];\n\n if (!this.inner || this.inner[pos] === 0) {\n return 'begin';\n }\n\n if (this.inner[pos] === this.inner[size] - this.inner[clientSize]) {\n return 'end';\n }\n\n return 'middle';\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["ScrollBar.tsx"],"names":["React","ThemeContext","cx","defaultScrollbarState","scrollSizeParametersNames","styles","globalClasses","getScrollSizeParams","ScrollBar","inner","theme","node","state","renderMain","props","active","axis","customScrollPos","customScrollSize","classNames","className","scrollBar","scrollBarStyles","scrollBarInvert","invert","inlineStyles","pos","size","refScroll","handleScrollMouseDown","reflow","scrollSize","scrollPos","scrollActive","scrollState","getImmediateScrollState","onScrollStateChange","setState","setInnerElement","element","handleScrollWheel","event","addEventListener","passive","removeEventListener","offset","coord","initialCoord","target","window","document","initialScrollPos","mouseMove","mouseMoveEvent","ratio","delta","preventDefault","Object","prototype","hasOwnProperty","call","returnValue","mouseUp","scrolling","WheelEvent","shiftKey","offsetHeight","deltaY","clientSize","maxScrollPos","Math","abs","componentDidMount","componentDidUpdate","render","setHover","hover","scrollBarX","scrollbarX","scrollBarXHover","scrollBarY","scrollbarY","scrollBarYHover","Component"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { defaultScrollbarState, scrollSizeParametersNames } from './ScrollContainer.constants';\nimport { styles, globalClasses } from './ScrollContainer.styles';\nimport { getScrollSizeParams } from './ScrollContainer.helpers';\n\nexport type ScrollAxis = 'x' | 'y';\nexport type ScrollBarScrollState = 'begin' | 'middle' | 'end';\n\nexport interface ScrollBarState {\n active: boolean;\n hover: boolean;\n scrolling: boolean;\n size: number;\n pos: number;\n scrollState: ScrollBarScrollState;\n}\n\nexport interface ScrollBarProps {\n invert: boolean;\n axis: ScrollAxis;\n className?: string;\n onScrollStateChange?: (state: ScrollBarScrollState, axis: ScrollAxis) => void;\n}\n\nexport class ScrollBar extends React.Component<ScrollBarProps, ScrollBarState> {\n private inner: Nullable<HTMLElement>;\n private theme!: Theme;\n\n public node: Nullable<HTMLElement>;\n public state: ScrollBarState = {\n ...defaultScrollbarState,\n };\n\n public componentDidMount() {\n this.reflow();\n }\n\n public componentDidUpdate() {\n this.reflow();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = () => {\n const state = this.state;\n const props = this.props;\n\n if (!state.active) {\n return null;\n }\n\n const { customScrollPos, customScrollSize } = scrollSizeParametersNames[this.props.axis];\n\n const classNames = cx(props.className, styles.scrollBar(this.theme), this.scrollBarStyles, {\n [styles.scrollBarInvert(this.theme)]: props.invert,\n });\n\n const inlineStyles: React.CSSProperties = {\n [customScrollPos]: state.pos,\n [customScrollSize]: state.size,\n };\n\n return (\n <div\n ref={this.refScroll}\n style={inlineStyles}\n className={classNames}\n onMouseDown={this.handleScrollMouseDown}\n data-tid={`ScrollContainer__ScrollBar-${props.axis}`}\n />\n );\n };\n\n public reflow = () => {\n if (!this.inner) {\n return;\n }\n\n const props = this.props;\n const state = this.state;\n\n const { scrollSize, scrollPos, scrollActive } = getScrollSizeParams(this.inner, props.axis);\n\n if (!scrollActive && !state.active) {\n return;\n }\n\n if (state.active !== scrollActive || state.size !== scrollSize || state.pos !== scrollPos) {\n const scrollState = this.getImmediateScrollState();\n\n if (scrollState !== state.scrollState) {\n this.props.onScrollStateChange?.(scrollState, props.axis);\n }\n\n this.setState({\n ...this.state,\n active: scrollActive,\n size: scrollSize,\n pos: scrollPos,\n scrollState,\n });\n }\n };\n\n public setInnerElement = (inner: Nullable<HTMLElement>) => {\n this.inner = inner;\n this.reflow();\n };\n\n public setHover(hover: boolean) {\n if (this.state.active && this.state.hover !== hover) {\n this.setState({ ...this.state, hover });\n }\n }\n\n public get scrollBarState() {\n return this.state.scrollState;\n }\n\n private get scrollBarStyles() {\n const state = this.state;\n\n if (this.props.axis === 'x') {\n return cx(styles.scrollBarX(this.theme), globalClasses.scrollbarX, {\n [styles.scrollBarXHover(this.theme)]: state.hover || state.scrolling,\n });\n }\n\n return cx(styles.scrollBarY(this.theme), globalClasses.scrollbarY, {\n [styles.scrollBarYHover(this.theme)]: state.hover || state.scrolling,\n });\n }\n\n private refScroll = (element: HTMLElement | null) => {\n const handleScrollWheel = (event: Event) => this.handleScrollWheel(event, this.props.axis);\n\n if (!this.node && element) {\n element.addEventListener('wheel', handleScrollWheel, { passive: false });\n }\n if (this.node && !element) {\n this.node.removeEventListener('wheel', handleScrollWheel);\n }\n this.node = element;\n };\n\n private handleScrollMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.inner) {\n return;\n }\n\n const { offset, size, pos, coord } = scrollSizeParametersNames[this.props.axis];\n\n const initialCoord = event[coord];\n const target: Document = window.document;\n const initialScrollPos = this.inner[pos];\n const state = this.state;\n\n const mouseMove = (mouseMoveEvent: MouseEvent) => {\n if (!this.inner) {\n return;\n }\n\n const ratio = (this.inner[size] - this.inner[offset]) / (this.inner[offset] - state.size);\n const delta = (mouseMoveEvent[coord] - initialCoord) * ratio;\n\n this.inner[pos] = initialScrollPos + delta;\n\n if (mouseMoveEvent.preventDefault) {\n mouseMoveEvent.preventDefault();\n }\n\n if (Object.prototype.hasOwnProperty.call(mouseMoveEvent, 'returnValue')) {\n (\n mouseMoveEvent as MouseEvent & {\n returnValue: boolean;\n }\n ).returnValue = false;\n }\n };\n\n const mouseUp = () => {\n target.removeEventListener('mousemove', mouseMove);\n target.removeEventListener('mouseup', mouseUp);\n this.setState({ ...this.state, scrolling: false });\n };\n\n target.addEventListener('mousemove', mouseMove);\n target.addEventListener('mouseup', mouseUp);\n this.setState({ ...this.state, scrolling: true });\n\n event.preventDefault();\n };\n\n private handleScrollWheel = (event: Event, axis: ScrollAxis) => {\n if (!this.inner || !(event instanceof WheelEvent) || (axis === 'x' && !event.shiftKey)) {\n return;\n }\n\n const { offset, size, pos } = scrollSizeParametersNames[axis];\n\n const scrollSize = this.inner[size];\n const scrollPos = this.inner[pos];\n const offsetHeight = this.inner[offset];\n\n if (event.deltaY > 0 && scrollSize <= scrollPos + offsetHeight) {\n return;\n }\n if (event.deltaY < 0 && scrollPos <= 0) {\n return;\n }\n\n this.inner[pos] += event.deltaY;\n\n event.preventDefault();\n };\n\n private getImmediateScrollState = (): ScrollBarScrollState => {\n const { pos, size, clientSize } = scrollSizeParametersNames[this.props.axis];\n\n if (!this.inner || this.inner[pos] === 0) {\n return 'begin';\n }\n // Zoom in Chrome causes problems\n // https://github.com/skbkontur/retail-ui/pull/2705#issue-806286945\n const maxScrollPos = this.inner[size] - this.inner[clientSize];\n if (Math.abs(maxScrollPos - this.inner[pos]) <= 1) {\n return 'end';\n }\n\n return 'middle';\n };\n}\n"]}
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
3
|
+
|
|
4
|
+
var _class, _class2, _temp;
|
|
5
|
+
|
|
2
6
|
import React from 'react';
|
|
3
7
|
import PropTypes from 'prop-types';
|
|
4
8
|
import * as LayoutEvents from "../../../lib/LayoutEvents";
|
|
5
9
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
6
10
|
import { cx } from "../../../lib/theming/Emotion";
|
|
11
|
+
import { isIE11 } from "../../../lib/client";
|
|
12
|
+
import { rootNode } from "../../../lib/rootNode";
|
|
7
13
|
import { styles, globalClasses } from "../ScrollContainer.styles";
|
|
8
14
|
import { scrollSizeParametersNames } from "../ScrollContainer.constants";
|
|
9
15
|
import { getScrollYOffset, convertScrollbarXScrollState, convertScrollbarYScrollState } from "../ScrollContainer.helpers";
|
|
10
16
|
import { ScrollBar } from "../ScrollBar";
|
|
11
|
-
export var ScrollContainer = /*#__PURE__*/function (_React$Component) {
|
|
17
|
+
export var ScrollContainer = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
|
|
12
18
|
_inheritsLoose(ScrollContainer, _React$Component);
|
|
13
19
|
|
|
14
20
|
function ScrollContainer() {
|
|
@@ -22,6 +28,7 @@ export var ScrollContainer = /*#__PURE__*/function (_React$Component) {
|
|
|
22
28
|
_this.scrollX = void 0;
|
|
23
29
|
_this.scrollY = void 0;
|
|
24
30
|
_this.inner = void 0;
|
|
31
|
+
_this.setRootNode = void 0;
|
|
25
32
|
|
|
26
33
|
_this.render = function () {
|
|
27
34
|
var props = _this.props;
|
|
@@ -35,14 +42,16 @@ export var ScrollContainer = /*#__PURE__*/function (_React$Component) {
|
|
|
35
42
|
|
|
36
43
|
var scrollbarX = _this.renderScrollbar('x');
|
|
37
44
|
|
|
38
|
-
return /*#__PURE__*/React.createElement(CommonWrapper,
|
|
45
|
+
return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
|
|
46
|
+
rootNodeRef: _this.setRootNode
|
|
47
|
+
}, _this.props), /*#__PURE__*/React.createElement("div", {
|
|
39
48
|
className: styles.root(),
|
|
40
49
|
onMouseMove: _this.handleMouseMove,
|
|
41
50
|
onMouseLeave: _this.handleMouseLeave
|
|
42
51
|
}, scrollbarY, scrollbarX, /*#__PURE__*/React.createElement("div", {
|
|
43
52
|
style: innerStyle,
|
|
44
53
|
ref: _this.refInner,
|
|
45
|
-
className: cx(styles.inner(), globalClasses.inner),
|
|
54
|
+
className: cx(styles.inner(), globalClasses.inner, isIE11 && styles.innerIE11()),
|
|
46
55
|
"data-tid": "ScrollContainer__inner",
|
|
47
56
|
onScroll: _this.handleNativeScroll
|
|
48
57
|
}, props.children)));
|
|
@@ -249,18 +258,15 @@ export var ScrollContainer = /*#__PURE__*/function (_React$Component) {
|
|
|
249
258
|
};
|
|
250
259
|
|
|
251
260
|
return ScrollContainer;
|
|
252
|
-
}(React.Component)
|
|
253
|
-
ScrollContainer.__KONTUR_REACT_UI__ = 'ScrollContainer';
|
|
254
|
-
ScrollContainer.propTypes = {
|
|
261
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'ScrollContainer', _class2.propTypes = {
|
|
255
262
|
invert: PropTypes.bool,
|
|
256
263
|
maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
257
264
|
maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
258
265
|
scrollBehaviour: PropTypes.oneOf(['auto', 'smooth']),
|
|
259
266
|
preventWindowScroll: PropTypes.bool,
|
|
260
267
|
onScrollStateChange: PropTypes.func
|
|
261
|
-
}
|
|
262
|
-
ScrollContainer.defaultProps = {
|
|
268
|
+
}, _class2.defaultProps = {
|
|
263
269
|
invert: false,
|
|
264
270
|
scrollBehaviour: 'auto',
|
|
265
271
|
preventWindowScroll: false
|
|
266
|
-
};
|
|
272
|
+
}, _temp)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ScrollContainer.tsx"],"names":["React","PropTypes","LayoutEvents","CommonWrapper","cx","styles","globalClasses","scrollSizeParametersNames","getScrollYOffset","convertScrollbarXScrollState","convertScrollbarYScrollState","ScrollBar","ScrollContainer","scrollX","scrollY","inner","render","props","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","renderScrollbar","scrollbarX","root","handleMouseMove","handleMouseLeave","refInner","handleNativeScroll","children","axis","refScrollBar","refScrollBarX","refScrollBarY","invert","handleScrollStateChange","scrollState","scrollXState","onScrollStateChangeX","scrollYState","onScrollStateChange","onScrollStateChangeY","scrollbar","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","event","reflow","onScroll","preventDefault","emit","WheelEvent","shiftKey","hasScrollBar","pos","size","offset","deltaY","right","currentTarget","getBoundingClientRect","pageX","bottom","pageY","setHover","componentDidMount","setInnerElement","componentDidUpdate","prevProps","scrollTo","scrollLeft","offsetLeft","scrollTop","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","Component","__KONTUR_REACT_UI__","propTypes","bool","oneOfType","string","number","oneOf","func","defaultProps"],"mappings":"sEAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,OAAO,KAAKC,YAAZ,MAA8B,wBAA9B;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;;AAEA,SAASC,EAAT,QAAmB,2BAAnB;;AAEA,SAASC,MAAT,EAAiBC,aAAjB,QAAsC,0BAAtC;AACA,SAASC,yBAAT,QAA0C,6BAA1C;AACA;AACEC,gBADF;AAEEC,4BAFF;AAGEC,4BAHF;AAIO,2BAJP;AAKA,SAAqBC,SAArB,QAA4D,aAA5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,WAAaC,eAAb;;;;;;;;;;;;;;;;;;AAkBUC,IAAAA,OAlBV;AAmBUC,IAAAA,OAnBV;AAoBUC,IAAAA,KApBV;;;;;;;;;;;;;;;;;;AAsCSC,IAAAA,MAtCT,GAsCkB,YAAM;AACpB,UAAMC,KAAK,GAAG,MAAKA,KAAnB;;AAEA,UAAMC,UAA+B,GAAG;AACtCC,QAAAA,cAAc,EAAEF,KAAK,CAACG,eADgB;AAEtCC,QAAAA,SAAS,EAAEJ,KAAK,CAACI,SAFqB;AAGtCC,QAAAA,QAAQ,EAAEL,KAAK,CAACK,QAHsB,EAAxC;;;AAMA,UAAMC,UAAU,GAAG,MAAKC,eAAL,CAAqB,GAArB,CAAnB;AACA,UAAMC,UAAU,GAAG,MAAKD,eAAL,CAAqB,GAArB,CAAnB;;AAEA;AACE,4BAAC,aAAD,EAAmB,MAAKP,KAAxB;AACE,qCAAK,SAAS,EAAEZ,MAAM,CAACqB,IAAP,EAAhB,EAA+B,WAAW,EAAE,MAAKC,eAAjD,EAAkE,YAAY,EAAE,MAAKC,gBAArF;AACGL,QAAAA,UADH;AAEGE,QAAAA,UAFH;AAGE;AACE,UAAA,KAAK,EAAEP,UADT;AAEE,UAAA,GAAG,EAAE,MAAKW,QAFZ;AAGE,UAAA,SAAS,EAAEzB,EAAE,CAACC,MAAM,CAACU,KAAP,EAAD,EAAiBT,aAAa,CAACS,KAA/B,CAHf;AAIE,sBAAS,wBAJX;AAKE,UAAA,QAAQ,EAAE,MAAKe,kBALjB;;AAOGb,QAAAA,KAAK,CAACc,QAPT,CAHF,CADF,CADF;;;;;AAiBD,KAnEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqIUP,IAAAA,eArIV,GAqI4B,UAACQ,IAAD,EAAsB;AAC9C,UAAMC,YAAY,GAAGD,IAAI,KAAK,GAAT,GAAe,MAAKE,aAApB,GAAoC,MAAKC,aAA9D;;AAEA;AACE,4BAAC,SAAD;AACE,UAAA,IAAI,EAAEH,IADR;AAEE,UAAA,GAAG,EAAEC,YAFP;AAGE,UAAA,MAAM,EAAE,MAAKhB,KAAL,CAAWmB,MAHrB;AAIE,UAAA,mBAAmB,EAAE,MAAKC,uBAJ5B,GADF;;;AAQD,KAhJH;;AAkJUA,IAAAA,uBAlJV,GAkJoC,UAACC,WAAD,EAAoCN,IAApC,EAAyD;AACzF,UAAI,CAAC,MAAKlB,OAAN,IAAiB,CAAC,MAAKD,OAA3B,EAAoC;AAClC;AACD;;AAED,UAAImB,IAAI,KAAK,GAAb,EAAkB;AAChB,YAAMO,YAAY,GAAG9B,4BAA4B,CAAC6B,WAAD,CAAjD;;AAEA,cAAKrB,KAAL,CAAWuB,oBAAX,0BAAKvB,KAAL,CAAWuB,oBAAX,CAAkCD,YAAlC;AACA;AACD;;AAED,UAAME,YAAY,GAAG/B,4BAA4B,CAAC4B,WAAD,CAAjD;;AAEA,YAAKrB,KAAL,CAAWyB,mBAAX,0BAAKzB,KAAL,CAAWyB,mBAAX,CAAiCD,YAAjC;AACA,YAAKxB,KAAL,CAAW0B,oBAAX,0BAAK1B,KAAL,CAAW0B,oBAAX,CAAkCF,YAAlC;AACD,KAlKH;;AAoKUN,IAAAA,aApKV,GAoK0B,UAACS,SAAD,EAAoC;AAC1D,YAAK9B,OAAL,GAAe8B,SAAf;AACD,KAtKH;;AAwKUV,IAAAA,aAxKV,GAwK0B,UAACU,SAAD,EAAoC;AAC1D,YAAK/B,OAAL,GAAe+B,SAAf;AACD,KA1KH;;AA4KUf,IAAAA,QA5KV,GA4KqB,UAACgB,OAAD,EAAiC;AAClD,UAAI,CAAC,MAAK9B,KAAN,IAAe8B,OAAf,IAA0B,MAAK5B,KAAL,CAAW6B,mBAAzC,EAA8D;AAC5DD,QAAAA,OAAO,CAACE,gBAAR,CAAyB,OAAzB,EAAkC,MAAKC,sBAAvC,EAA+D,EAAEC,OAAO,EAAE,KAAX,EAA/D;AACD;AACD,UAAI,MAAKlC,KAAL,IAAc,CAAC8B,OAAnB,EAA4B;AAC1B,cAAK9B,KAAL,CAAWmC,mBAAX,CAA+B,OAA/B,EAAwC,MAAKF,sBAA7C;AACD;AACD,YAAKjC,KAAL,GAAa8B,OAAb;AACD,KApLH;;AAsLUf,IAAAA,kBAtLV,GAsL+B,UAACqB,KAAD,EAA0C;AACrE,6BAAKtC,OAAL,mCAAcuC,MAAd;AACA,6BAAKtC,OAAL,mCAAcsC,MAAd;;AAEA,YAAKnC,KAAL,CAAWoC,QAAX,0BAAKpC,KAAL,CAAWoC,QAAX,CAAsBF,KAAtB;AACA,UAAI,MAAKlC,KAAL,CAAW6B,mBAAf,EAAoC;AAClCK,QAAAA,KAAK,CAACG,cAAN;AACA;AACD;AACDpD,MAAAA,YAAY,CAACqD,IAAb;AACD,KAhMH;;AAkMUP,IAAAA,sBAlMV,GAkMmC,UAACG,KAAD,EAAkB;AACjD,UAAI,CAAC,MAAKpC,KAAN,IAAe,EAAEoC,KAAK,YAAYK,UAAnB,CAAnB,EAAmD;AACjD;AACD;;AAED,UAAMxB,IAAgB,GAAGmB,KAAK,CAACM,QAAN,GAAiB,GAAjB,GAAuB,GAAhD;;AAEA,UAAI,MAAKC,YAAL,CAAkB1B,IAAlB,CAAJ,EAA6B;AACGzB,QAAAA,yBAAyB,CAACyB,IAAD,CAD5B,CACnB2B,GADmB,yBACnBA,GADmB,CACdC,IADc,yBACdA,IADc,CACRC,MADQ,yBACRA,MADQ;;AAG3B,YAAIV,KAAK,CAACW,MAAN,GAAe,CAAf,IAAoB,MAAK/C,KAAL,CAAW6C,IAAX,KAAoB,MAAK7C,KAAL,CAAW4C,GAAX,IAAkB,MAAK5C,KAAL,CAAW8C,MAAX,CAA9D,EAAkF;AAChFV,UAAAA,KAAK,CAACG,cAAN;AACA,iBAAO,KAAP;AACD;AACD,YAAIH,KAAK,CAACW,MAAN,GAAe,CAAf,IAAoB,MAAK/C,KAAL,CAAW4C,GAAX,KAAmB,CAA3C,EAA8C;AAC5CR,UAAAA,KAAK,CAACG,cAAN;AACA,iBAAO,KAAP;AACD;AACF;AACF,KArNH;;AAuNU3B,IAAAA,eAvNV,GAuN4B,UAACwB,KAAD,EAA6C;AACrE,UAAMY,KAAK,GAAGZ,KAAK,CAACa,aAAN,CAAoBC,qBAApB,GAA4CF,KAA5C,GAAoDZ,KAAK,CAACe,KAAxE;AACA,UAAMC,MAAM,GAAGhB,KAAK,CAACa,aAAN,CAAoBC,qBAApB,GAA4CE,MAA5C,GAAqDhB,KAAK,CAACiB,KAA1E;;AAEA,8BAAKtD,OAAL,oCAAcuD,QAAd,CAAuBN,KAAK,IAAI,EAAhC;AACA,8BAAKlD,OAAL,oCAAcwD,QAAd,CAAuBN,KAAK,IAAI,EAAT,IAAeI,MAAM,IAAI,EAAhD;AACD,KA7NH;;AA+NUvC,IAAAA,gBA/NV,GA+N6B,YAAM;AAC/B,8BAAKd,OAAL,oCAAcuD,QAAd,CAAuB,KAAvB;AACA,8BAAKxD,OAAL,oCAAcwD,QAAd,CAAuB,KAAvB;AACD,KAlOH,6DAsBSC,iBAtBT,GAsBE,6BAA2B,oCACzB,uBAAKzD,OAAL,oCAAc0D,eAAd,CAA8B,KAAKxD,KAAnC,EACA,uBAAKD,OAAL,oCAAcyD,eAAd,CAA8B,KAAKxD,KAAnC,EACD,CAzBH,QA2BSyD,kBA3BT,GA2BE,4BAA0BC,SAA1B,EAA2D,CACzD,IAAI,KAAK1D,KAAT,EAAgB,CACd,IAAI0D,SAAS,CAAC3B,mBAAV,IAAiC,CAAC,KAAK7B,KAAL,CAAW6B,mBAAjD,EAAsE,CACpE,KAAK/B,KAAL,CAAWmC,mBAAX,CAA+B,OAA/B,EAAwC,KAAKF,sBAA7C,EACD,CACD,IAAI,CAACyB,SAAS,CAAC3B,mBAAX,IAAkC,KAAK7B,KAAL,CAAW6B,mBAAjD,EAAsE,CACpE,KAAK/B,KAAL,CAAWgC,gBAAX,CAA4B,OAA5B,EAAqC,KAAKC,sBAA1C,EAAkE,EAAEC,OAAO,EAAE,KAAX,EAAlE,EACD,CACF,CACF,CApCH,EAqEE;AACF;AACA;AACA,KAxEA,OAyESyB,QAzET,GAyEE,kBAAgB7B,OAAhB,EAAgD,CAC9C,IAAI,CAACA,OAAD,IAAY,CAAC,KAAK9B,KAAtB,EAA6B,CAC3B,OACD,CAED,KAAKA,KAAL,CAAW4D,UAAX,GAAwB9B,OAAO,CAAC+B,UAAhC,CACA,KAAK7D,KAAL,CAAW8D,SAAX,GAAuBrE,gBAAgB,CAACqC,OAAD,EAAU,KAAK9B,KAAf,CAAvC,CACD,CAhFH,CAkFE;AACF;AACA,KApFA,QAqFS+D,WArFT,GAqFE,uBAAqB,CACnB,IAAI,CAAC,KAAK/D,KAAV,EAAiB,CACf,OACD,CACD,KAAKA,KAAL,CAAW8D,SAAX,GAAuB,CAAvB,CACD,CA1FH,CA4FE;AACF;AACA,KA9FA,QA+FSE,cA/FT,GA+FE,0BAAwB,CACtB,IAAI,CAAC,KAAKhE,KAAV,EAAiB,CACf,OACD,CACD,KAAKA,KAAL,CAAW8D,SAAX,GAAuB,KAAK9D,KAAL,CAAWiE,YAAX,GAA0B,KAAKjE,KAAL,CAAWkE,YAA5D,CACD,CApGH,CAsGE;AACF;AACA,KAxGA,QAyGSC,YAzGT,GAyGE,wBAAsB,CACpB,IAAI,CAAC,KAAKnE,KAAV,EAAiB,CACf,OACD,CACD,KAAKA,KAAL,CAAW4D,UAAX,GAAwB,CAAxB,CACD,CA9GH,CAgHE;AACF;AACA,KAlHA,QAmHSQ,aAnHT,GAmHE,yBAAuB,CACrB,IAAI,CAAC,KAAKpE,KAAV,EAAiB,CACf,OACD,CAED,KAAKA,KAAL,CAAW4D,UAAX,GAAwB,KAAK5D,KAAL,CAAWqE,WAAX,GAAyB,KAAKrE,KAAL,CAAWsE,WAA5D,CACD,CAzHH,QA2HU3B,YA3HV,GA2HE,sBAAqB1B,IAArB,EAAuC,CACrC,IAAI,CAAC,KAAKjB,KAAV,EAAiB,CACf,OAAO,KAAP,CACD,CAED,OAAOiB,IAAI,KAAK,GAAT,GACH,KAAKjB,KAAL,CAAWsE,WAAX,GAAyB,KAAKtE,KAAL,CAAWqE,WADjC,GAEH,KAAKrE,KAAL,CAAWkE,YAAX,GAA0B,KAAKlE,KAAL,CAAWiE,YAFzC,CAGD,CAnIH,0BAAqChF,KAAK,CAACsF,SAA3C,EAAa1E,e,CACG2E,mB,GAAsB,iB,CADzB3E,e,CAGG4E,S,GAAY,EACxBpD,MAAM,EAAEnC,SAAS,CAACwF,IADM,EAExBnE,QAAQ,EAAErB,SAAS,CAACyF,SAAV,CAAoB,CAACzF,SAAS,CAAC0F,MAAX,EAAmB1F,SAAS,CAAC2F,MAA7B,CAApB,CAFc,EAGxBvE,SAAS,EAAEpB,SAAS,CAACyF,SAAV,CAAoB,CAACzF,SAAS,CAAC0F,MAAX,EAAmB1F,SAAS,CAAC2F,MAA7B,CAApB,CAHa,EAIxBxE,eAAe,EAAEnB,SAAS,CAAC4F,KAAV,CAAgB,CAAC,MAAD,EAAS,QAAT,CAAhB,CAJO,EAKxB/C,mBAAmB,EAAE7C,SAAS,CAACwF,IALP,EAMxB/C,mBAAmB,EAAEzC,SAAS,CAAC6F,IANP,E,CAHflF,e,CAYGmF,Y,GAAe,EAC3B3D,MAAM,EAAE,KADmB,EAE3BhB,eAAe,EAAE,MAFU,EAG3B0B,mBAAmB,EAAE,KAHM,E","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles, globalClasses } from './ScrollContainer.styles';\nimport { scrollSizeParametersNames } from './ScrollContainer.constants';\nimport {\n getScrollYOffset,\n convertScrollbarXScrollState,\n convertScrollbarYScrollState,\n} from './ScrollContainer.helpers';\nimport { ScrollAxis, ScrollBar, ScrollBarScrollState } from './ScrollBar';\n\nexport type ScrollContainerScrollStateX = 'left' | 'scroll' | 'right';\nexport type ScrollContainerScrollStateY = 'top' | 'scroll' | 'bottom';\nexport type ScrollContainerScrollState = ScrollContainerScrollStateY; // deprecated\nexport type ScrollBehaviour = 'auto' | 'smooth';\n\nexport interface ScrollContainerProps extends CommonProps {\n /**\n * Инвертировать цвет скроллбара\n * @default false\n */\n invert: boolean;\n maxHeight?: React.CSSProperties['maxHeight'];\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * @default false\n */\n preventWindowScroll: boolean;\n /**\n * Поведение скролла (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)\n * @default 'auto'\n */\n scrollBehaviour?: ScrollBehaviour;\n onScrollStateChangeX?: (scrollState: ScrollContainerScrollStateX) => void;\n onScrollStateChangeY?: (scrollState: ScrollContainerScrollStateY) => void;\n onScrollStateChange?: (scrollYState: ScrollContainerScrollState) => void; // deprecated\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n}\n\nexport class ScrollContainer extends React.Component<ScrollContainerProps> {\n public static __KONTUR_REACT_UI__ = 'ScrollContainer';\n\n public static propTypes = {\n invert: PropTypes.bool,\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n scrollBehaviour: PropTypes.oneOf(['auto', 'smooth']),\n preventWindowScroll: PropTypes.bool,\n onScrollStateChange: PropTypes.func,\n };\n\n public static defaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n };\n\n private scrollX: Nullable<ScrollBar>;\n private scrollY: Nullable<ScrollBar>;\n private inner: Nullable<HTMLElement>;\n\n public componentDidMount() {\n this.scrollX?.setInnerElement(this.inner);\n this.scrollY?.setInnerElement(this.inner);\n }\n\n public componentDidUpdate(prevProps: ScrollContainerProps) {\n if (this.inner) {\n if (prevProps.preventWindowScroll && !this.props.preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && this.props.preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n }\n\n public render = () => {\n const props = this.props;\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: props.scrollBehaviour,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth,\n };\n\n const scrollbarY = this.renderScrollbar('y');\n const scrollbarX = this.renderScrollbar('x');\n\n return (\n <CommonWrapper {...this.props}>\n <div className={styles.root()} onMouseMove={this.handleMouseMove} onMouseLeave={this.handleMouseLeave}>\n {scrollbarY}\n {scrollbarX}\n <div\n style={innerStyle}\n ref={this.refInner}\n className={cx(styles.inner(), globalClasses.inner)}\n data-tid=\"ScrollContainer__inner\"\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n * @param {HTMLElement} element\n */\n public scrollTo(element: Nullable<HTMLElement>) {\n if (!element || !this.inner) {\n return;\n }\n\n this.inner.scrollLeft = element.offsetLeft;\n this.inner.scrollTop = getScrollYOffset(element, this.inner);\n }\n\n /**\n * @public\n */\n public scrollToTop() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = 0;\n }\n\n /**\n * @public\n */\n public scrollToBottom() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = this.inner.scrollHeight - this.inner.offsetHeight;\n }\n\n /**\n * @public\n */\n public scrollToLeft() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollLeft = 0;\n }\n\n /**\n * @public\n */\n public scrollToRight() {\n if (!this.inner) {\n return;\n }\n\n this.inner.scrollLeft = this.inner.scrollWidth - this.inner.offsetWidth;\n }\n\n private hasScrollBar(axis: ScrollAxis) {\n if (!this.inner) {\n return false;\n }\n\n return axis === 'x'\n ? this.inner.offsetWidth < this.inner.scrollWidth\n : this.inner.offsetHeight < this.inner.scrollHeight;\n }\n\n private renderScrollbar = (axis: ScrollAxis) => {\n const refScrollBar = axis === 'x' ? this.refScrollBarX : this.refScrollBarY;\n\n return (\n <ScrollBar\n axis={axis}\n ref={refScrollBar}\n invert={this.props.invert}\n onScrollStateChange={this.handleScrollStateChange}\n />\n );\n };\n\n private handleScrollStateChange = (scrollState: ScrollBarScrollState, axis: ScrollAxis) => {\n if (!this.scrollY || !this.scrollX) {\n return;\n }\n\n if (axis === 'x') {\n const scrollXState = convertScrollbarXScrollState(scrollState);\n\n this.props.onScrollStateChangeX?.(scrollXState);\n return;\n }\n\n const scrollYState = convertScrollbarYScrollState(scrollState);\n\n this.props.onScrollStateChange?.(scrollYState);\n this.props.onScrollStateChangeY?.(scrollYState);\n };\n\n private refScrollBarY = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollY = scrollbar;\n };\n\n private refScrollBarX = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollX = scrollbar;\n };\n\n private refInner = (element: HTMLElement | null) => {\n if (!this.inner && element && this.props.preventWindowScroll) {\n element.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n if (this.inner && !element) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n this.inner = element;\n };\n\n private handleNativeScroll = (event: React.UIEvent<HTMLDivElement>) => {\n this.scrollX?.reflow();\n this.scrollY?.reflow();\n\n this.props.onScroll?.(event);\n if (this.props.preventWindowScroll) {\n event.preventDefault();\n return;\n }\n LayoutEvents.emit();\n };\n\n private handleInnerScrollWheel = (event: Event) => {\n if (!this.inner || !(event instanceof WheelEvent)) {\n return;\n }\n\n const axis: ScrollAxis = event.shiftKey ? 'x' : 'y';\n\n if (this.hasScrollBar(axis)) {\n const { pos, size, offset } = scrollSizeParametersNames[axis];\n\n if (event.deltaY > 0 && this.inner[size] <= this.inner[pos] + this.inner[offset]) {\n event.preventDefault();\n return false;\n }\n if (event.deltaY < 0 && this.inner[pos] <= 0) {\n event.preventDefault();\n return false;\n }\n }\n };\n\n private handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const right = event.currentTarget.getBoundingClientRect().right - event.pageX;\n const bottom = event.currentTarget.getBoundingClientRect().bottom - event.pageY;\n\n this.scrollY?.setHover(right <= 12);\n this.scrollX?.setHover(right >= 12 && bottom <= 12);\n };\n\n private handleMouseLeave = () => {\n this.scrollY?.setHover(false);\n this.scrollX?.setHover(false);\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["ScrollContainer.tsx"],"names":["React","PropTypes","LayoutEvents","CommonWrapper","cx","isIE11","rootNode","styles","globalClasses","scrollSizeParametersNames","getScrollYOffset","convertScrollbarXScrollState","convertScrollbarYScrollState","ScrollBar","ScrollContainer","scrollX","scrollY","inner","setRootNode","render","props","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","renderScrollbar","scrollbarX","root","handleMouseMove","handleMouseLeave","refInner","innerIE11","handleNativeScroll","children","axis","refScrollBar","refScrollBarX","refScrollBarY","invert","handleScrollStateChange","scrollState","scrollXState","onScrollStateChangeX","scrollYState","onScrollStateChange","onScrollStateChangeY","scrollbar","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","event","reflow","onScroll","preventDefault","emit","WheelEvent","shiftKey","hasScrollBar","pos","size","offset","deltaY","right","currentTarget","getBoundingClientRect","pageX","bottom","pageY","setHover","componentDidMount","setInnerElement","componentDidUpdate","prevProps","scrollTo","scrollLeft","offsetLeft","scrollTop","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","Component","__KONTUR_REACT_UI__","propTypes","bool","oneOfType","string","number","oneOf","func","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isIE11 } from '../../lib/client';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles, globalClasses } from './ScrollContainer.styles';\nimport { scrollSizeParametersNames } from './ScrollContainer.constants';\nimport {\n getScrollYOffset,\n convertScrollbarXScrollState,\n convertScrollbarYScrollState,\n} from './ScrollContainer.helpers';\nimport { ScrollAxis, ScrollBar, ScrollBarScrollState } from './ScrollBar';\n\nexport type ScrollContainerScrollStateX = 'left' | 'scroll' | 'right';\nexport type ScrollContainerScrollStateY = 'top' | 'scroll' | 'bottom';\nexport type ScrollContainerScrollState = ScrollContainerScrollStateY; // deprecated\nexport type ScrollBehaviour = 'auto' | 'smooth';\n\nexport interface ScrollContainerProps extends CommonProps {\n /**\n * Инвертировать цвет скроллбара\n * @default false\n */\n invert: boolean;\n maxHeight?: React.CSSProperties['maxHeight'];\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * @default false\n */\n preventWindowScroll: boolean;\n /**\n * Поведение скролла (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)\n * @default 'auto'\n */\n scrollBehaviour?: ScrollBehaviour;\n onScrollStateChangeX?: (scrollState: ScrollContainerScrollStateX) => void;\n onScrollStateChangeY?: (scrollState: ScrollContainerScrollStateY) => void;\n onScrollStateChange?: (scrollYState: ScrollContainerScrollState) => void; // deprecated\n onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;\n}\n\n@rootNode\nexport class ScrollContainer extends React.Component<ScrollContainerProps> {\n public static __KONTUR_REACT_UI__ = 'ScrollContainer';\n\n public static propTypes = {\n invert: PropTypes.bool,\n maxWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n scrollBehaviour: PropTypes.oneOf(['auto', 'smooth']),\n preventWindowScroll: PropTypes.bool,\n onScrollStateChange: PropTypes.func,\n };\n\n public static defaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n };\n\n private scrollX: Nullable<ScrollBar>;\n private scrollY: Nullable<ScrollBar>;\n private inner: Nullable<HTMLElement>;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n this.scrollX?.setInnerElement(this.inner);\n this.scrollY?.setInnerElement(this.inner);\n }\n\n public componentDidUpdate(prevProps: ScrollContainerProps) {\n if (this.inner) {\n if (prevProps.preventWindowScroll && !this.props.preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && this.props.preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n }\n\n public render = () => {\n const props = this.props;\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: props.scrollBehaviour,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth,\n };\n\n const scrollbarY = this.renderScrollbar('y');\n const scrollbarX = this.renderScrollbar('x');\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.root()} onMouseMove={this.handleMouseMove} onMouseLeave={this.handleMouseLeave}>\n {scrollbarY}\n {scrollbarX}\n <div\n style={innerStyle}\n ref={this.refInner}\n className={cx(styles.inner(), globalClasses.inner, isIE11 && styles.innerIE11())}\n data-tid=\"ScrollContainer__inner\"\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n * @param {HTMLElement} element\n */\n public scrollTo(element: Nullable<HTMLElement>) {\n if (!element || !this.inner) {\n return;\n }\n\n this.inner.scrollLeft = element.offsetLeft;\n this.inner.scrollTop = getScrollYOffset(element, this.inner);\n }\n\n /**\n * @public\n */\n public scrollToTop() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = 0;\n }\n\n /**\n * @public\n */\n public scrollToBottom() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollTop = this.inner.scrollHeight - this.inner.offsetHeight;\n }\n\n /**\n * @public\n */\n public scrollToLeft() {\n if (!this.inner) {\n return;\n }\n this.inner.scrollLeft = 0;\n }\n\n /**\n * @public\n */\n public scrollToRight() {\n if (!this.inner) {\n return;\n }\n\n this.inner.scrollLeft = this.inner.scrollWidth - this.inner.offsetWidth;\n }\n\n private hasScrollBar(axis: ScrollAxis) {\n if (!this.inner) {\n return false;\n }\n\n return axis === 'x'\n ? this.inner.offsetWidth < this.inner.scrollWidth\n : this.inner.offsetHeight < this.inner.scrollHeight;\n }\n\n private renderScrollbar = (axis: ScrollAxis) => {\n const refScrollBar = axis === 'x' ? this.refScrollBarX : this.refScrollBarY;\n\n return (\n <ScrollBar\n axis={axis}\n ref={refScrollBar}\n invert={this.props.invert}\n onScrollStateChange={this.handleScrollStateChange}\n />\n );\n };\n\n private handleScrollStateChange = (scrollState: ScrollBarScrollState, axis: ScrollAxis) => {\n if (!this.scrollY || !this.scrollX) {\n return;\n }\n\n if (axis === 'x') {\n const scrollXState = convertScrollbarXScrollState(scrollState);\n\n this.props.onScrollStateChangeX?.(scrollXState);\n return;\n }\n\n const scrollYState = convertScrollbarYScrollState(scrollState);\n\n this.props.onScrollStateChange?.(scrollYState);\n this.props.onScrollStateChangeY?.(scrollYState);\n };\n\n private refScrollBarY = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollY = scrollbar;\n };\n\n private refScrollBarX = (scrollbar: Nullable<ScrollBar>) => {\n this.scrollX = scrollbar;\n };\n\n private refInner = (element: HTMLElement | null) => {\n if (!this.inner && element && this.props.preventWindowScroll) {\n element.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n if (this.inner && !element) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n this.inner = element;\n };\n\n private handleNativeScroll = (event: React.UIEvent<HTMLDivElement>) => {\n this.scrollX?.reflow();\n this.scrollY?.reflow();\n\n this.props.onScroll?.(event);\n if (this.props.preventWindowScroll) {\n event.preventDefault();\n return;\n }\n LayoutEvents.emit();\n };\n\n private handleInnerScrollWheel = (event: Event) => {\n if (!this.inner || !(event instanceof WheelEvent)) {\n return;\n }\n\n const axis: ScrollAxis = event.shiftKey ? 'x' : 'y';\n\n if (this.hasScrollBar(axis)) {\n const { pos, size, offset } = scrollSizeParametersNames[axis];\n\n if (event.deltaY > 0 && this.inner[size] <= this.inner[pos] + this.inner[offset]) {\n event.preventDefault();\n return false;\n }\n if (event.deltaY < 0 && this.inner[pos] <= 0) {\n event.preventDefault();\n return false;\n }\n }\n };\n\n private handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n const right = event.currentTarget.getBoundingClientRect().right - event.pageX;\n const bottom = event.currentTarget.getBoundingClientRect().bottom - event.pageY;\n\n this.scrollY?.setHover(right <= 12);\n this.scrollX?.setHover(right >= 12 && bottom <= 12);\n };\n\n private handleMouseLeave = () => {\n this.scrollY?.setHover(false);\n this.scrollX?.setHover(false);\n };\n}\n"]}
|