@skbkontur/react-ui 4.2.1 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +9 -17
- package/cjs/components/Autocomplete/Autocomplete.js +10 -6
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +4 -5
- package/cjs/components/Button/Button.js +8 -3
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.mixins.js +1 -1
- package/cjs/components/Button/Button.mixins.js.map +1 -1
- package/cjs/components/Button/Button.styles.js +18 -18
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +4 -3
- package/cjs/components/Center/Center.js +9 -3
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.md +48 -0
- package/cjs/components/ComboBox/ComboBox.d.ts +8 -13
- package/cjs/components/ComboBox/ComboBox.js +12 -2
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -9
- package/cjs/components/CurrencyInput/CurrencyInput.js +19 -6
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +2 -0
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js +14 -2
- package/cjs/components/CurrencyInput/CurrencyInputKeyboardActions.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +15 -15
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +8 -11
- package/cjs/components/DateInput/DateInput.js +11 -3
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +7 -9
- package/cjs/components/DatePicker/DatePicker.js +12 -6
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +5 -5
- package/cjs/components/DropdownMenu/DropdownMenu.js +9 -3
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.md +8 -1
- package/cjs/components/FxInput/FxInput.d.ts +6 -6
- package/cjs/components/FxInput/FxInput.js +13 -10
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +7 -8
- package/cjs/components/Gapped/Gapped.js +12 -6
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +7 -14
- package/cjs/components/GlobalLoader/GlobalLoader.js +13 -9
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +8 -12
- package/cjs/components/Hint/Hint.js +15 -5
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Hint/Hint.md +14 -0
- package/cjs/components/Input/Input.d.ts +4 -3
- package/cjs/components/Input/Input.js +7 -4
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +7 -11
- package/cjs/components/Kebab/Kebab.js +14 -5
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +4 -4
- package/cjs/components/Link/Link.js +11 -4
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +7 -4
- package/cjs/components/Loader/Loader.js +14 -4
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +4 -3
- package/cjs/components/Modal/Modal.js +8 -3
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.js +1 -1
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.js +1 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +6 -9
- package/cjs/components/Paging/Paging.js +15 -5
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/PagingDefaultComponent.d.ts +1 -1
- package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +4 -3
- package/cjs/components/PasswordInput/PasswordInput.js +8 -3
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +4 -3
- package/cjs/components/Radio/Radio.js +8 -3
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -4
- package/cjs/components/RadioGroup/RadioGroup.js +4 -2
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +7 -8
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js +4 -4
- package/cjs/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js +12 -6
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +3 -12
- package/cjs/components/Select/Select.js +6 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.styles.js +4 -4
- package/cjs/components/Select/Select.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +5 -6
- package/cjs/components/SidePage/SidePage.js +8 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +4 -2
- package/cjs/components/Spinner/Spinner.js +9 -3
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +5 -4
- package/cjs/components/Sticky/Sticky.js +9 -2
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +4 -4
- package/cjs/components/Tabs/Tab.js +11 -13
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +4 -4
- package/cjs/components/Tabs/Tabs.js +12 -3
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +8 -10
- package/cjs/components/Textarea/Textarea.js +10 -6
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +5 -6
- package/cjs/components/Toggle/Toggle.js +10 -4
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +19 -16
- package/cjs/components/TokenInput/TokenInput.js +75 -57
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +13 -19
- package/cjs/components/Tooltip/Tooltip.js +27 -24
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +5 -4
- package/cjs/components/TooltipMenu/TooltipMenu.js +11 -5
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/internal/BGRuler.d.ts +13 -15
- package/cjs/internal/BGRuler.js +16 -8
- package/cjs/internal/BGRuler.js.map +1 -1
- package/cjs/internal/Calendar/Calendar.d.ts +4 -13
- package/cjs/internal/Calendar/Calendar.js +10 -5
- package/cjs/internal/Calendar/Calendar.js.map +1 -1
- package/cjs/internal/Calendar/DayCellView.styles.js +1 -1
- package/cjs/internal/Calendar/DayCellView.styles.js.map +1 -1
- package/cjs/internal/Calendar/Month.js +16 -11
- package/cjs/internal/Calendar/Month.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/ComponentCombinator.d.ts +6 -8
- package/cjs/internal/ComponentCombinator.js +6 -2
- package/cjs/internal/ComponentCombinator.js.map +1 -1
- package/cjs/internal/ComponentTable.d.ts +5 -6
- package/cjs/internal/ComponentTable.js +11 -2
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +4 -4
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +7 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
- package/cjs/internal/CustomComboBox/ComboBoxView.js +18 -10
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +4 -6
- package/cjs/internal/DateSelect/DateSelect.js +15 -9
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
- package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -5
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +4 -3
- package/cjs/internal/InputLikeText/InputLikeText.js +7 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -9
- package/cjs/internal/InternalMenu/InternalMenu.js +36 -14
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -1
- package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
- package/cjs/internal/MaskedInput/MaskedInput.d.ts +5 -2
- package/cjs/internal/MaskedInput/MaskedInput.js +17 -6
- package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +4 -7
- package/cjs/internal/Menu/Menu.js +14 -4
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +11 -17
- package/cjs/internal/Popup/Popup.js +38 -19
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.d.ts +1 -1
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.d.ts +1 -1
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -11
- package/cjs/internal/PopupMenu/PopupMenu.js +8 -1
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +6 -4
- package/cjs/internal/RenderLayer/RenderLayer.js +15 -4
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/VariableValue.d.ts +5 -4
- package/cjs/internal/ThemePlayground/VariableValue.js +6 -1
- package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +7 -11
- package/cjs/internal/ZIndex/ZIndex.js +10 -3
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.js +1 -1
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/InstanceWithAnchorElement.d.ts +1 -1
- package/cjs/lib/InstanceWithAnchorElement.js.map +1 -1
- package/cjs/lib/SSRSafe.d.ts +2 -1
- package/cjs/lib/SSRSafe.js +9 -1
- package/cjs/lib/SSRSafe.js.map +1 -1
- package/cjs/lib/createPropsGetter.d.ts +2 -1
- package/cjs/lib/createPropsGetter.js +2 -0
- package/cjs/lib/createPropsGetter.js.map +1 -1
- package/cjs/lib/listenFocusOutside.d.ts +1 -1
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/cjs/lib/rootNode/getRootNode.d.ts +3 -3
- package/cjs/lib/rootNode/getRootNode.js +7 -7
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +7 -7
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/typings/event-types.d.ts +2 -2
- package/components/Autocomplete/Autocomplete/Autocomplete.js +22 -12
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +9 -17
- package/components/Button/Button/Button.js +11 -5
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +4 -5
- package/components/Button/Button.mixins/Button.mixins.js +1 -1
- package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
- package/components/Button/Button.styles/Button.styles.js +18 -18
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Center/Center/Center.js +7 -5
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +4 -3
- package/components/Checkbox/Checkbox.md +48 -0
- package/components/ComboBox/ComboBox/ComboBox.js +3 -1
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +8 -13
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +28 -18
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +6 -9
- package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js +4 -2
- package/components/CurrencyInput/CurrencyInputKeyboardActions/CurrencyInputKeyboardActions.js.map +1 -1
- package/components/CurrencyInput/CurrencyInputKeyboardActions.d.ts +2 -0
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +21 -15
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -9
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js +1 -0
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +17 -4
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +8 -11
- package/components/DatePicker/DatePicker/DatePicker.js +12 -9
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +7 -9
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +8 -2
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +5 -5
- package/components/FileUploader/FileUploader.md +8 -1
- package/components/FxInput/FxInput/FxInput.js +11 -9
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +6 -6
- package/components/Gapped/Gapped/Gapped.js +17 -8
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +7 -8
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +35 -16
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +7 -14
- package/components/Hint/Hint/Hint.js +30 -18
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +8 -12
- package/components/Hint/Hint.md +14 -0
- package/components/Input/Input/Input.js +9 -7
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +4 -3
- package/components/Kebab/Kebab/Kebab.js +19 -8
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +7 -11
- package/components/Link/Link/Link.js +9 -6
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +4 -4
- package/components/Loader/Loader/Loader.js +22 -17
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +7 -4
- package/components/Modal/Modal/Modal.js +3 -1
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +4 -3
- package/components/Modal/ModalFooter/ModalFooter.js +2 -2
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js +2 -2
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Paging/Paging/Paging.js +24 -14
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +6 -9
- package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
- package/components/Paging/PagingDefaultComponent.d.ts +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +7 -5
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +4 -3
- package/components/Radio/Radio/Radio.js +7 -5
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +4 -3
- package/components/RadioGroup/RadioGroup/RadioGroup.js +10 -10
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -4
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +11 -7
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +7 -8
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js +4 -4
- package/components/ScrollContainer/ScrollContainer.helpers/ScrollContainer.helpers.js.map +1 -1
- package/components/Select/Select/Select.js +4 -3
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +3 -12
- package/components/Select/Select.styles/Select.styles.js +4 -4
- package/components/Select/Select.styles/Select.styles.js.map +1 -1
- package/components/SidePage/SidePage/SidePage.js +14 -9
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +5 -6
- package/components/Spinner/Spinner/Spinner.js +7 -5
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +4 -2
- package/components/Sticky/Sticky/Sticky.js +7 -4
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +5 -4
- package/components/Tabs/Tab/Tab.js +15 -7
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +4 -4
- package/components/Tabs/Tabs/Tabs.js +10 -8
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +4 -4
- package/components/Textarea/Textarea/Textarea.js +19 -14
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +8 -10
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +12 -7
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +5 -6
- package/components/TokenInput/TokenInput/TokenInput.js +107 -77
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +19 -16
- package/components/Tooltip/Tooltip/Tooltip.js +60 -47
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +13 -19
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +15 -13
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +5 -4
- package/internal/BGRuler/BGRuler.js +11 -6
- package/internal/BGRuler/BGRuler.js.map +1 -1
- package/internal/BGRuler.d.ts +13 -15
- package/internal/Calendar/Calendar/Calendar.js +11 -5
- package/internal/Calendar/Calendar/Calendar.js.map +1 -1
- package/internal/Calendar/Calendar.d.ts +4 -13
- package/internal/Calendar/DayCellView.styles/DayCellView.styles.js +1 -1
- package/internal/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
- package/internal/Calendar/Month/Month.js +20 -11
- package/internal/Calendar/Month/Month.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +1 -1
- package/internal/ComponentCombinator/ComponentCombinator.js +8 -5
- package/internal/ComponentCombinator/ComponentCombinator.js.map +1 -1
- package/internal/ComponentCombinator.d.ts +6 -8
- package/internal/ComponentTable/ComponentTable.js +16 -4
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/ComponentTable.d.ts +5 -6
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +4 -2
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +4 -4
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +21 -10
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +4 -12
- package/internal/DateSelect/DateSelect/DateSelect.js +14 -11
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +4 -6
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +6 -10
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +4 -2
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +4 -3
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +37 -16
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +3 -9
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
- package/internal/MaskedInput/MaskedInput/MaskedInput.js +12 -6
- package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/internal/MaskedInput/MaskedInput.d.ts +5 -2
- package/internal/Menu/Menu/Menu.js +16 -4
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +4 -7
- package/internal/Popup/Popup/Popup.js +52 -35
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +11 -17
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +1 -1
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -4
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +8 -11
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +18 -11
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +6 -4
- package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -2
- package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
- package/internal/ThemePlayground/VariableValue.d.ts +5 -4
- package/internal/ZIndex/ZIndex/ZIndex.js +15 -13
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +7 -11
- package/internal/themes/DefaultTheme/DefaultTheme.js +6 -6
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/lib/InstanceWithAnchorElement/InstanceWithAnchorElement.js.map +1 -1
- package/lib/InstanceWithAnchorElement.d.ts +1 -1
- package/lib/SSRSafe/SSRSafe.js +7 -0
- package/lib/SSRSafe/SSRSafe.js.map +1 -1
- package/lib/SSRSafe.d.ts +2 -1
- package/lib/createPropsGetter/createPropsGetter.js.map +1 -1
- package/lib/createPropsGetter.d.ts +2 -1
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/lib/listenFocusOutside.d.ts +1 -1
- package/lib/rootNode/getRootNode/getRootNode.js +8 -8
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/getRootNode.d.ts +3 -3
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +7 -7
- package/package.json +2 -2
- package/typings/event-types.d.ts +2 -2
|
@@ -88,7 +88,9 @@ var _RadioGroupContext = require("./RadioGroupContext");var _class, _class2, _te
|
|
|
88
88
|
|
|
89
89
|
|
|
90
90
|
var RadioGroupDataTids = {
|
|
91
|
-
root: 'RadioGroup__root' };
|
|
91
|
+
root: 'RadioGroup__root' };exports.RadioGroupDataTids = RadioGroupDataTids;
|
|
92
|
+
|
|
93
|
+
|
|
92
94
|
|
|
93
95
|
|
|
94
96
|
/**
|
|
@@ -99,7 +101,7 @@ var RadioGroupDataTids = {
|
|
|
99
101
|
* как и параметр `value` самой радиогруппы.
|
|
100
102
|
*
|
|
101
103
|
* Значения активного элемента сравниваются по строгому равенству `===`
|
|
102
|
-
*/
|
|
104
|
+
*/var
|
|
103
105
|
|
|
104
106
|
RadioGroup = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(RadioGroup, _React$Component);
|
|
105
107
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["RadioGroup.tsx"],"names":["RadioGroupDataTids","root","RadioGroup","rootNode","props","name","getProps","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","getKeyByItem","className","styles","item","theme","itemFirst","itemInline","inline","renderItem","toKey","undefined","ref","element","node","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","setRootNode","renderChildren","focus","radio","querySelector","items","children","mapItems","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","oneOfType","number","func","Prevent","_value","fn","result","entry","normalizeEntry","push","Array","isArray"],"mappings":"qWAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwEO,IAAMA,kBAAkB,GAAG;AAChCC,EAAAA,IAAI,EAAE,kBAD0B,EAA3B;;;AAIP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;AAEaC,U,OADZC,kB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BC,sBAAYC,KAAZ,EAAuC;AACrC,wCAAMA,KAAN,UADqC,MAJ/BC,IAI+B,GAJxB,yBAIwB,OAH/BC,QAG+B,GAHpB,0CAAkBJ,UAAU,CAACK,YAA7B,CAGoB;;;;;;;AAQ/BC,IAAAA,yBAR+B,GAQH,YAAgC;AAClE,aAAO;AACLC,QAAAA,UAAU,EAAE,MAAKC,QAAL,EADP;AAELC,QAAAA,QAAQ,EAAE,MAAKC,YAFV;AAGLP,QAAAA,IAAI,EAAE,MAAKQ,OAAL,EAHD;AAILC,QAAAA,QAAQ,EAAE,MAAKV,KAAL,CAAWU,QAJhB;AAKLC,QAAAA,KAAK,EAAE,MAAKX,KAAL,CAAWW,KALb;AAMLC,QAAAA,OAAO,EAAE,MAAKZ,KAAL,CAAWY,OANf,EAAP;;AAQD,KAjBsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2E/BN,IAAAA,QA3E+B,GA2EpB,oBAAO,MAAKO,YAAL,KAAsB,MAAKb,KAAL,CAAWc,KAAjC,GAAyC,MAAKC,KAAL,CAAWV,UAA3D,EA3EoB;;AA6E/BI,IAAAA,OA7E+B,GA6ErB,oBAAM,MAAKT,KAAL,CAAWC,IAAX,IAAmB,MAAKA,IAA9B,EA7EqB;;AA+E/BY,IAAAA,YA/E+B,GA+EhB,oBAAM,0BAAc,MAAKb,KAAL,CAAWc,KAAzB,CAAN,EA/EgB;;AAiF/BN,IAAAA,YAjF+B,GAiFhB,UAACM,KAAD,EAAc;AACnC,UAAI,CAAC,MAAKD,YAAL,EAAL,EAA0B;AACxB,cAAKG,QAAL,CAAc,EAAEX,UAAU,EAAES,KAAd,EAAd;AACD;AACD,UAAI,MAAKd,KAAL,CAAWiB,aAAf,EAA8B;AAC5B,cAAKjB,KAAL,CAAWiB,aAAX,CAAyBH,KAAzB;AACD;AACF,KAxFsC;;;;;;;;AAgG/BI,IAAAA,WAhG+B,GAgGjB,UAACC,SAAD,EAAeC,IAAf,EAAsCC,KAAtC,EAAqE;AACzF,UAAMC,SAAS,GAAG;AAChBC,QAAAA,GAAG,EAAE,MAAKC,YAAL,CAAkBL,SAAlB,CADW;AAEhBM,QAAAA,SAAS,EAAE;AACRC,2BAAOC,IAAP,CAAY,MAAKC,KAAjB,CADQ,IACkB,IADlB;AAERF,2BAAOG,SAAP,EAFQ,IAEaR,KAAK,KAAK,CAFvB;AAGRK,2BAAOI,UAAP,EAHQ,IAGc,CAAC,CAAC,MAAK9B,KAAL,CAAW+B,MAH3B,OAFK,EAAlB;;;;AASA;AACE,6CAAUT,SAAV;AACE,qCAAC,YAAD,IAAO,KAAK,EAAEH,SAAd,IAA0B,MAAKjB,QAAL,GAAgB8B,UAAhB,CAA8Bb,SAA9B,EAAyCC,IAAzC,CAA1B,CADF,CADF;;;AAKD,KA/GsC;;AAiH/BI,IAAAA,YAjH+B,GAiHhB,UAACL,SAAD,EAAkB;AACvC,UAAI,MAAKnB,KAAL,CAAWiC,KAAf,EAAsB;AACpB,eAAO,MAAKjC,KAAL,CAAWiC,KAAX,CAAiBd,SAAjB,CAAP;AACD;AACD,aAAO,OAAOA,SAAP,KAAqB,QAArB,IAAiC,OAAOA,SAAP,KAAqB,QAAtD,GAAiEA,SAAjE,GAA6Ee,SAApF;AACD,KAtHsC;;AAwH/BC,IAAAA,GAxH+B,GAwHzB,UAACC,OAAD,EAA8B;AAC1C,YAAKC,IAAL,GAAYD,OAAZ;AACD,KA1HsC,CAGrC,MAAKrB,KAAL,GAAa,EACXV,UAAU,EAAE,MAAKL,KAAL,CAAWsC,YADZ,EAAb,CAHqC,aAMtC,C,yCAaMC,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAACX,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,OAAO,MAAI,CAACY,UAAL,EAAP,CACD,CAJH,CADF,CAQD,C,QAEMA,U,GAAP,sBAAoB,CAClB,kBAAmE,KAAKxC,KAAxE,CAAQyC,KAAR,eAAQA,KAAR,CAAeC,YAAf,eAAeA,YAAf,CAA6BC,WAA7B,eAA6BA,WAA7B,CAA0CC,YAA1C,eAA0CA,YAA1C,CAAwDC,MAAxD,eAAwDA,MAAxD,CACA,IAAMC,KAAK,GAAG,EACZL,KAAK,EAAEA,KAAF,WAAEA,KAAF,GAAW,MADJ,EAAd,CAGA,IAAMM,QAAQ,GAAG,EACfJ,WAAW,EAAXA,WADe,EAEfC,YAAY,EAAZA,YAFe,EAGfF,YAAY,EAAZA,YAHe,EAAjB,CAMA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,KAAKM,WAAjC,IAAkD,KAAKhD,KAAvD,gBACE,6BAAC,oBAAD,IAAW,MAAM,EAAE6C,MAAnB,iBACE,8DAAM,YAAUjD,kBAAkB,CAACC,IAAnC,EAAyC,GAAG,EAAE,KAAKsC,GAAnD,EAAwD,KAAK,EAAEW,KAA/D,EAAsE,SAAS,EAAEpB,mBAAO7B,IAAP,EAAjF,IAAoGkD,QAApG,gBACE,6BAAC,oCAAD,CAAmB,QAAnB,IAA4B,KAAK,EAAE,KAAK3C,yBAAL,EAAnC,IACG,KAAK6C,cAAL,EADH,CADF,CADF,CADF,CADF,CAWD,C,CAED;AACF;AACA,K,QACSC,K,GAAP,iBAAe,CACb,IAAMb,IAAI,GAAG,KAAKA,IAAlB,CACA,IAAI,CAACA,IAAL,EAAW,CACT,OACD,CAED,IAAIc,KAAK,GAAGd,IAAI,CAACe,aAAL,CAAmB,6BAAnB,CAAZ,CANa,CAQb;AACA,QAAI,CAACD,KAAD,IAAUA,KAAK,CAACzC,QAApB,EAA8B,CAC5ByC,KAAK,GAAGd,IAAI,CAACe,aAAL,CAAmB,qCAAnB,CAAR,CACD,CAED,IAAID,KAAJ,EAAW,CACTA,KAAK,CAACD,KAAN,GACD,CACF,C,QAiBOD,c,GAAR,0BAAyB,CACvB,mBAA4B,KAAKjD,KAAjC,CAAQqD,KAAR,gBAAQA,KAAR,CAAeC,QAAf,gBAAeA,QAAf,CACA,wBAAW,CAACD,KAAD,IAAUC,QAAX,IAAyBD,KAAK,IAAI,CAACC,QAA7C,EAAwD,mDAAxD,EACA,OAAOD,KAAK,GAAGE,QAAQ,CAAI,KAAKrC,WAAT,EAAsBmC,KAAtB,CAAX,GAA0CC,QAAtD,CACD,C,qBA5HgCE,eAAMC,S,WACzBC,mB,GAAsB,Y,UAEtBC,S,GAAY,EACxBL,QAAQ,EAAEM,mBAAUvB,IADI,EAExB3B,QAAQ,EAAEkD,mBAAUC,IAFI,EAGxBlD,KAAK,EAAEiD,mBAAUC,IAHO,EAIxB9B,MAAM,EAAE6B,mBAAUC,IAJM,EAKxB5D,IAAI,EAAE2D,mBAAUE,MALQ,EAMxBlD,OAAO,EAAEgD,mBAAUC,IANK,EAOxBpB,KAAK,EAAEmB,mBAAUG,SAAV,CAAoB,CAACH,mBAAUI,MAAX,EAAmBJ,mBAAUE,MAA7B,CAApB,CAPiB,EAQxBjB,MAAM,EAAEe,mBAAUK,IARM,EASxBrB,YAAY,EAAEgB,mBAAUK,IATA,EAUxBvB,YAAY,EAAEkB,mBAAUK,IAVA,EAWxBtB,WAAW,EAAEiB,mBAAUK,IAXC,E,UAcZ9D,Y,GAAe,EAC3B6B,UAAU,EAAVA,UAD2B,E,UAIfkC,O,GAAUA,gB,oDAsI1B,SAASlC,UAAT,CAAuBmC,MAAvB,EAAkC/C,IAAlC,EAAyD;AACvD,SAAOA,IAAP;AACD;;AAED,SAASmC,QAAT;AACEa,EADF;AAEEf,KAFF;AAGE;AACA,MAAMgB,MAAyB,GAAG,EAAlC;AACA,MAAIhD,KAAK,GAAG,CAAZ;AACA,uDAAoBgC,KAApB,wCAA2B,KAAhBiB,KAAgB;AACzB,0BAAsBC,cAAc,CAAID,KAAJ,CAApC,CAAOxD,OAAP,sBAAcM,KAAd;AACAiD,IAAAA,MAAM,CAACG,IAAP,CAAYJ,EAAE,CAACtD,OAAD,EAAQM,KAAR,EAAcC,KAAd,CAAd;AACA,MAAEA,KAAF;AACD;AACD,SAAOgD,MAAP;AACD;;AAED,SAASE,cAAT,CAA2BD,KAA3B,EAAkF;AAChF,MAAI,CAACG,KAAK,CAACC,OAAN,CAAcJ,KAAd,CAAL,EAA2B;AACzB,WAAO,CAACA,KAAD,EAAQA,KAAR,CAAP;AACD;AACD,SAAOA,KAAP;AACD","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport invariant from 'invariant';\n\nimport { getRandomID, isNonNullable } 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[] | Array<[T, React.ReactNode]>;\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n\n /**\n * Метод получения уникального ключа по элементу\n * @param item\n */\n toKey?: (item: T) => string | number;\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\nexport const RadioGroupDataTids = {\n root: 'RadioGroup__root',\n} as const;\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 ?? '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 data-tid={RadioGroupDataTids.root} 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 = () => isNonNullable(this.props.value);\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: this.getKeyByItem(itemValue),\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 getKeyByItem = (itemValue: T) => {\n if (this.props.toKey) {\n return this.props.toKey(itemValue);\n }\n return typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : undefined;\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[] | Array<[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":["RadioGroupDataTids","root","RadioGroup","rootNode","props","name","getProps","defaultProps","getRadioGroupContextValue","activeItem","getValue","onSelect","handleSelect","getName","disabled","error","warning","isControlled","value","state","setState","onValueChange","renderRadio","itemValue","data","index","itemProps","key","getKeyByItem","className","styles","item","theme","itemFirst","itemInline","inline","renderItem","toKey","undefined","ref","element","node","defaultValue","render","renderMain","width","onMouseLeave","onMouseOver","onMouseEnter","onBlur","style","handlers","setRootNode","renderChildren","focus","radio","querySelector","items","children","mapItems","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","string","oneOfType","number","func","Prevent","_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, isNonNullable } 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[] | Array<[T, React.ReactNode]>;\n /**\n * Аттрибут name для вложенных радиокнопок. Если не указан, то сгенерируется\n * случайное имя\n */\n name?: string;\n\n /**\n * Метод получения уникального ключа по элементу\n * @param item\n */\n toKey?: (item: T) => string | number;\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\nexport const RadioGroupDataTids = {\n root: 'RadioGroup__root',\n} as const;\n\ntype DefaultProps = Required<Pick<RadioGroupProps<unknown>, 'renderItem'>>;\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: 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 ?? '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 data-tid={RadioGroupDataTids.root} 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 = () => isNonNullable(this.props.value);\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: this.getKeyByItem(itemValue),\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(itemValue, data)}</Radio>\n </span>\n );\n };\n\n private getKeyByItem = (itemValue: T) => {\n if (this.props.toKey) {\n return this.props.toKey(itemValue);\n }\n return typeof itemValue === 'string' || typeof itemValue === 'number' ? itemValue : undefined;\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[] | Array<[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"]}
|
|
@@ -11,13 +11,13 @@ export interface ScrollContainerProps extends CommonProps {
|
|
|
11
11
|
* Инвертировать цвет скроллбара
|
|
12
12
|
* @default false
|
|
13
13
|
*/
|
|
14
|
-
invert
|
|
14
|
+
invert?: boolean;
|
|
15
15
|
maxHeight?: React.CSSProperties['maxHeight'];
|
|
16
16
|
maxWidth?: React.CSSProperties['maxWidth'];
|
|
17
17
|
/**
|
|
18
18
|
* @default false
|
|
19
19
|
*/
|
|
20
|
-
preventWindowScroll
|
|
20
|
+
preventWindowScroll?: boolean;
|
|
21
21
|
/**
|
|
22
22
|
* Поведение скролла (https://developer.mozilla.org/en-US/docs/Web/CSS/scroll-behavior)
|
|
23
23
|
* @default 'auto'
|
|
@@ -36,6 +36,7 @@ export declare const ScrollContainerDataTids: {
|
|
|
36
36
|
readonly root: "ScrollContainer__root";
|
|
37
37
|
readonly inner: "ScrollContainer__inner";
|
|
38
38
|
};
|
|
39
|
+
declare type DefaultProps = Required<Pick<ScrollContainerProps, 'invert' | 'scrollBehaviour' | 'preventWindowScroll'>>;
|
|
39
40
|
export declare class ScrollContainer extends React.Component<ScrollContainerProps> {
|
|
40
41
|
static __KONTUR_REACT_UI__: string;
|
|
41
42
|
static propTypes: {
|
|
@@ -46,11 +47,8 @@ export declare class ScrollContainer extends React.Component<ScrollContainerProp
|
|
|
46
47
|
preventWindowScroll: PropTypes.Requireable<boolean>;
|
|
47
48
|
onScrollStateChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
48
49
|
};
|
|
49
|
-
static defaultProps:
|
|
50
|
-
|
|
51
|
-
scrollBehaviour: string;
|
|
52
|
-
preventWindowScroll: boolean;
|
|
53
|
-
};
|
|
50
|
+
static defaultProps: DefaultProps;
|
|
51
|
+
private getProps;
|
|
54
52
|
private scrollX;
|
|
55
53
|
private scrollY;
|
|
56
54
|
private inner;
|
|
@@ -60,7 +58,7 @@ export declare class ScrollContainer extends React.Component<ScrollContainerProp
|
|
|
60
58
|
render: () => React.ReactNode;
|
|
61
59
|
/**
|
|
62
60
|
* @public
|
|
63
|
-
* @param {
|
|
61
|
+
* @param {Element} element
|
|
64
62
|
*/
|
|
65
63
|
scrollTo(element: Nullable<HTMLElement>): void;
|
|
66
64
|
/**
|
|
@@ -90,3 +88,4 @@ export declare class ScrollContainer extends React.Component<ScrollContainerProp
|
|
|
90
88
|
private handleMouseMove;
|
|
91
89
|
private handleMouseLeave;
|
|
92
90
|
}
|
|
91
|
+
export {};
|
|
@@ -27,13 +27,13 @@ var getScrollSizeParams = function getScrollSizeParams(inner, axis) {
|
|
|
27
27
|
};exports.getScrollSizeParams = getScrollSizeParams;
|
|
28
28
|
|
|
29
29
|
var getScrollYOffset = function getScrollYOffset(element, container) {
|
|
30
|
-
var
|
|
30
|
+
var elementTopOffset = element.offsetTop;
|
|
31
31
|
|
|
32
|
-
if (container.scrollTop >
|
|
33
|
-
return
|
|
32
|
+
if (container.scrollTop > elementTopOffset) {
|
|
33
|
+
return elementTopOffset;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
var offset =
|
|
36
|
+
var offset = elementTopOffset + element.scrollHeight - container.offsetHeight;
|
|
37
37
|
if (container.scrollTop < offset) {
|
|
38
38
|
return offset;
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ScrollContainer.helpers.ts"],"names":["getScrollSizeParams","inner","axis","scrollSizeParametersNames","offset","size","pos","contentSize","scrollOffset","containerSize","scrollActive","scrollSize","scrollPos","Math","max","MIN_SCROLL_SIZE","getScrollYOffset","element","container","
|
|
1
|
+
{"version":3,"sources":["ScrollContainer.helpers.ts"],"names":["getScrollSizeParams","inner","axis","scrollSizeParametersNames","offset","size","pos","contentSize","scrollOffset","containerSize","scrollActive","scrollSize","scrollPos","Math","max","MIN_SCROLL_SIZE","getScrollYOffset","element","container","elementTopOffset","offsetTop","scrollTop","scrollHeight","offsetHeight","convertScrollbarXScrollState","state","scrollBarState","begin","end","middle","convertScrollbarYScrollState"],"mappings":"qLAAA;;;;AAIO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAAqBC,IAArB,EAAyC;AAC1E,8BAA8BC,2CAA0BD,IAA1B,CAA9B,CAAQE,MAAR,yBAAQA,MAAR,CAAgBC,IAAhB,yBAAgBA,IAAhB,CAAsBC,GAAtB,yBAAsBA,GAAtB;;AAEA,MAAMC,WAAW,GAAGN,KAAK,CAACI,IAAD,CAAzB;AACA,MAAMG,YAAY,GAAGP,KAAK,CAACK,GAAD,CAA1B;AACA,MAAMG,aAAa,GAAGR,KAAK,CAACG,MAAD,CAA3B;;AAEA,MAAMM,YAAY,GAAGD,aAAa,GAAGF,WAArC;;AAEA,MAAII,UAAU,GAAG,CAAjB;AACA,MAAIC,SAAS,GAAG,CAAhB;;AAEA,MAAIF,YAAJ,EAAkB;AAChBC,IAAAA,UAAU,GAAGE,IAAI,CAACC,GAAL,CAAUL,aAAa,GAAGF,WAAjB,GAAgCE,aAAzC,EAAwDM,gCAAxD,CAAb;AACAH,IAAAA,SAAS,GAAIJ,YAAY,IAAID,WAAW,GAAGE,aAAlB,CAAb,IAAkDA,aAAa,GAAGE,UAAlE,CAAZ;AACD;;AAED,SAAO;AACLD,IAAAA,YAAY,EAAZA,YADK;AAELC,IAAAA,UAAU,EAAVA,UAFK;AAGLC,IAAAA,SAAS,EAATA,SAHK,EAAP;;AAKD,CAtBM,C;;AAwBA,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,OAAD,EAAuBC,SAAvB,EAAkD;AAChF,MAAMC,gBAAgB,GAAGF,OAAO,CAACG,SAAjC;;AAEA,MAAIF,SAAS,CAACG,SAAV,GAAsBF,gBAA1B,EAA4C;AAC1C,WAAOA,gBAAP;AACD;;AAED,MAAMf,MAAM,GAAGe,gBAAgB,GAAGF,OAAO,CAACK,YAA3B,GAA0CJ,SAAS,CAACK,YAAnE;AACA,MAAIL,SAAS,CAACG,SAAV,GAAsBjB,MAA1B,EAAkC;AAChC,WAAOA,MAAP;AACD;;AAED,SAAOc,SAAS,CAACG,SAAjB;AACD,CAbM,C;;AAeA,IAAMG,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACC,KAAD,EAA8D;AACxG,MAAMC,cAAyE,GAAG;AAChFC,IAAAA,KAAK,EAAE,MADyE;AAEhFC,IAAAA,GAAG,EAAE,OAF2E;AAGhFC,IAAAA,MAAM,EAAE,QAHwE,EAAlF;;;AAMA,SAAOH,cAAc,CAACD,KAAD,CAArB;AACD,CARM,C;;AAUA,IAAMK,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACL,KAAD,EAA8D;AACxG,MAAMC,cAAyE,GAAG;AAChFC,IAAAA,KAAK,EAAE,KADyE;AAEhFC,IAAAA,GAAG,EAAE,QAF2E;AAGhFC,IAAAA,MAAM,EAAE,QAHwE,EAAlF;;;AAMA,SAAOH,cAAc,CAACD,KAAD,CAArB;AACD,CARM,C","sourcesContent":["import { MIN_SCROLL_SIZE, scrollSizeParametersNames } from './ScrollContainer.constants';\nimport { ScrollBarScrollState } from './ScrollBar';\nimport { ScrollContainerScrollStateX, ScrollContainerScrollStateY } from './ScrollContainer';\n\nexport const getScrollSizeParams = (inner: HTMLElement, axis: 'x' | 'y') => {\n const { offset, size, pos } = scrollSizeParametersNames[axis];\n\n const contentSize = inner[size];\n const scrollOffset = inner[pos];\n const containerSize = inner[offset];\n\n const scrollActive = containerSize < contentSize;\n\n let scrollSize = 0;\n let scrollPos = 0;\n\n if (scrollActive) {\n scrollSize = Math.max((containerSize / contentSize) * containerSize, MIN_SCROLL_SIZE);\n scrollPos = (scrollOffset / (contentSize - containerSize)) * (containerSize - scrollSize);\n }\n\n return {\n scrollActive,\n scrollSize,\n scrollPos,\n };\n};\n\nexport const getScrollYOffset = (element: HTMLElement, container: HTMLElement) => {\n const elementTopOffset = element.offsetTop;\n\n if (container.scrollTop > elementTopOffset) {\n return elementTopOffset;\n }\n\n const offset = elementTopOffset + element.scrollHeight - container.offsetHeight;\n if (container.scrollTop < offset) {\n return offset;\n }\n\n return container.scrollTop;\n};\n\nexport const convertScrollbarXScrollState = (state: ScrollBarScrollState): ScrollContainerScrollStateX => {\n const scrollBarState: Record<ScrollBarScrollState, ScrollContainerScrollStateX> = {\n begin: 'left',\n end: 'right',\n middle: 'scroll',\n };\n\n return scrollBarState[state];\n};\n\nexport const convertScrollbarYScrollState = (state: ScrollBarScrollState): ScrollContainerScrollStateY => {\n const scrollBarState: Record<ScrollBarScrollState, ScrollContainerScrollStateY> = {\n begin: 'top',\n end: 'bottom',\n middle: 'scroll',\n };\n\n return scrollBarState[state];\n};\n"]}
|
|
@@ -8,6 +8,7 @@ var _Emotion = require("../../lib/theming/Emotion");
|
|
|
8
8
|
var _client = require("../../lib/client");
|
|
9
9
|
var _rootNode = require("../../lib/rootNode");
|
|
10
10
|
var _getDOMRect = require("../../lib/dom/getDOMRect");
|
|
11
|
+
var _createPropsGetter = require("../../lib/createPropsGetter");
|
|
11
12
|
|
|
12
13
|
var _ScrollContainer = require("./ScrollContainer.styles");
|
|
13
14
|
var _ScrollContainer2 = require("./ScrollContainer.constants");
|
|
@@ -56,6 +57,8 @@ var ScrollContainerDataTids = {
|
|
|
56
57
|
|
|
57
58
|
|
|
58
59
|
|
|
60
|
+
|
|
61
|
+
|
|
59
62
|
ScrollContainer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(ScrollContainer, _React$Component);function ScrollContainer() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
60
63
|
|
|
61
64
|
|
|
@@ -74,6 +77,9 @@ ScrollContainer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE_
|
|
|
74
77
|
|
|
75
78
|
|
|
76
79
|
|
|
80
|
+
getProps = (0, _createPropsGetter.createPropsGetter)(ScrollContainer.defaultProps);_this.
|
|
81
|
+
|
|
82
|
+
|
|
77
83
|
|
|
78
84
|
|
|
79
85
|
|
|
@@ -103,7 +109,7 @@ ScrollContainer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE_
|
|
|
103
109
|
}
|
|
104
110
|
|
|
105
111
|
var innerStyle = {
|
|
106
|
-
scrollBehavior:
|
|
112
|
+
scrollBehavior: _this.getProps().scrollBehaviour,
|
|
107
113
|
maxHeight: props.maxHeight,
|
|
108
114
|
maxWidth: props.maxWidth };
|
|
109
115
|
|
|
@@ -206,7 +212,7 @@ ScrollContainer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE_
|
|
|
206
212
|
_react.default.createElement(_ScrollBar.ScrollBar, {
|
|
207
213
|
axis: axis,
|
|
208
214
|
ref: refScrollBar,
|
|
209
|
-
invert: _this.
|
|
215
|
+
invert: _this.getProps().invert,
|
|
210
216
|
onScrollStateChange: _this.handleScrollStateChange }));
|
|
211
217
|
|
|
212
218
|
|
|
@@ -239,7 +245,7 @@ ScrollContainer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE_
|
|
|
239
245
|
};_this.
|
|
240
246
|
|
|
241
247
|
refInner = function (element) {
|
|
242
|
-
if (!_this.inner && element && _this.
|
|
248
|
+
if (!_this.inner && element && _this.getProps().preventWindowScroll) {
|
|
243
249
|
element.addEventListener('wheel', _this.handleInnerScrollWheel, { passive: false });
|
|
244
250
|
}
|
|
245
251
|
if (_this.inner && !element) {
|
|
@@ -253,7 +259,7 @@ ScrollContainer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE_
|
|
|
253
259
|
(_this$scrollY = _this.scrollY) == null ? void 0 : _this$scrollY.reflow();
|
|
254
260
|
|
|
255
261
|
_this.props.onScroll == null ? void 0 : _this.props.onScroll(event);
|
|
256
|
-
if (_this.
|
|
262
|
+
if (_this.getProps().preventWindowScroll) {
|
|
257
263
|
event.preventDefault();
|
|
258
264
|
return;
|
|
259
265
|
}
|
|
@@ -292,9 +298,9 @@ ScrollContainer = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE_
|
|
|
292
298
|
handleMouseLeave = function () {var _this$scrollY3, _this$scrollX3;
|
|
293
299
|
(_this$scrollY3 = _this.scrollY) == null ? void 0 : _this$scrollY3.setHover(false);
|
|
294
300
|
(_this$scrollX3 = _this.scrollX) == null ? void 0 : _this$scrollX3.setHover(false);
|
|
295
|
-
};return _this;}var _proto = ScrollContainer.prototype;_proto.componentDidMount = function componentDidMount() {var _this$scrollX4, _this$scrollY4;(_this$scrollX4 = this.scrollX) == null ? void 0 : _this$scrollX4.setInnerElement(this.inner);(_this$scrollY4 = this.scrollY) == null ? void 0 : _this$scrollY4.setInnerElement(this.inner);};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.inner) {if (prevProps.preventWindowScroll && !
|
|
301
|
+
};return _this;}var _proto = ScrollContainer.prototype;_proto.componentDidMount = function componentDidMount() {var _this$scrollX4, _this$scrollY4;(_this$scrollX4 = this.scrollX) == null ? void 0 : _this$scrollX4.setInnerElement(this.inner);(_this$scrollY4 = this.scrollY) == null ? void 0 : _this$scrollY4.setInnerElement(this.inner);};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var preventWindowScroll = this.getProps().preventWindowScroll;if (this.inner) {if (prevProps.preventWindowScroll && !preventWindowScroll) {this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);}if (!prevProps.preventWindowScroll && preventWindowScroll) {this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });}}}; /**
|
|
296
302
|
* @public
|
|
297
|
-
* @param {
|
|
303
|
+
* @param {Element} element
|
|
298
304
|
*/_proto.scrollTo = function scrollTo(element) {if (!element || !this.inner) {return;}this.inner.scrollLeft = element.offsetLeft;this.inner.scrollTop = (0, _ScrollContainer3.getScrollYOffset)(element, this.inner);} /**
|
|
299
305
|
* @public
|
|
300
306
|
*/;_proto.scrollToTop = function scrollToTop() {if (!this.inner) {return;}this.inner.scrollTop = 0;} /**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ScrollContainer.tsx"],"names":["ScrollContainerDataTids","root","inner","ScrollContainer","rootNode","render","props","disabled","children","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","renderScrollbar","scrollbarX","setRootNode","styles","handleMouseMove","handleMouseLeave","refInner","globalClasses","isIE11","innerIE11","handleNativeScroll","axis","refScrollBar","refScrollBarX","refScrollBarY","invert","handleScrollStateChange","scrollState","scrollY","scrollX","scrollXState","onScrollStateChangeX","scrollYState","onScrollStateChange","onScrollStateChangeY","scrollbar","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","event","reflow","onScroll","preventDefault","LayoutEvents","emit","WheelEvent","shiftKey","hasScrollBar","scrollSizeParametersNames","pos","size","offset","deltaY","right","currentTarget","pageX","bottom","pageY","setHover","componentDidMount","setInnerElement","componentDidUpdate","prevProps","scrollTo","scrollLeft","offsetLeft","scrollTop","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","React","Component","__KONTUR_REACT_UI__","propTypes","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';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\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 */\n disabled?: boolean;\n}\n\nexport const ScrollContainerDataTids = {\n root: 'ScrollContainer__root',\n inner: 'ScrollContainer__inner',\n} as const;\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 if (this.props.disabled) {\n return this.props.children;\n }\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\n data-tid={ScrollContainerDataTids.root}\n className={styles.root()}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\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={ScrollContainerDataTids.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 = getDOMRect(event.currentTarget).right - event.pageX;\n const bottom = getDOMRect(event.currentTarget).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":["ScrollContainerDataTids","root","inner","ScrollContainer","rootNode","getProps","defaultProps","render","props","disabled","children","innerStyle","scrollBehavior","scrollBehaviour","maxHeight","maxWidth","scrollbarY","renderScrollbar","scrollbarX","setRootNode","styles","handleMouseMove","handleMouseLeave","refInner","globalClasses","isIE11","innerIE11","handleNativeScroll","axis","refScrollBar","refScrollBarX","refScrollBarY","invert","handleScrollStateChange","scrollState","scrollY","scrollX","scrollXState","onScrollStateChangeX","scrollYState","onScrollStateChange","onScrollStateChangeY","scrollbar","element","preventWindowScroll","addEventListener","handleInnerScrollWheel","passive","removeEventListener","event","reflow","onScroll","preventDefault","LayoutEvents","emit","WheelEvent","shiftKey","hasScrollBar","scrollSizeParametersNames","pos","size","offset","deltaY","right","currentTarget","pageX","bottom","pageY","setHover","componentDidMount","setInnerElement","componentDidUpdate","prevProps","scrollTo","scrollLeft","offsetLeft","scrollTop","scrollToTop","scrollToBottom","scrollHeight","offsetHeight","scrollToLeft","scrollToRight","scrollWidth","offsetWidth","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","oneOfType","string","number","oneOf","func"],"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';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\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 */\n disabled?: boolean;\n}\n\nexport const ScrollContainerDataTids = {\n root: 'ScrollContainer__root',\n inner: 'ScrollContainer__inner',\n} as const;\n\ntype DefaultProps = Required<Pick<ScrollContainerProps, 'invert' | 'scrollBehaviour' | 'preventWindowScroll'>>;\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: DefaultProps = {\n invert: false,\n scrollBehaviour: 'auto',\n preventWindowScroll: false,\n };\n\n private getProps = createPropsGetter(ScrollContainer.defaultProps);\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 const preventWindowScroll = this.getProps().preventWindowScroll;\n if (this.inner) {\n if (prevProps.preventWindowScroll && !preventWindowScroll) {\n this.inner.removeEventListener('wheel', this.handleInnerScrollWheel);\n }\n if (!prevProps.preventWindowScroll && preventWindowScroll) {\n this.inner.addEventListener('wheel', this.handleInnerScrollWheel, { passive: false });\n }\n }\n }\n\n public render = () => {\n const props = this.props;\n\n if (this.props.disabled) {\n return this.props.children;\n }\n\n const innerStyle: React.CSSProperties = {\n scrollBehavior: this.getProps().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\n data-tid={ScrollContainerDataTids.root}\n className={styles.root()}\n onMouseMove={this.handleMouseMove}\n onMouseLeave={this.handleMouseLeave}\n >\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={ScrollContainerDataTids.inner}\n onScroll={this.handleNativeScroll}\n >\n {props.children}\n </div>\n </div>\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n * @param {Element} 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.getProps().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.getProps().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.getProps().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 = getDOMRect(event.currentTarget).right - event.pageX;\n const bottom = getDOMRect(event.currentTarget).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,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { ReactNode, ReactPortal } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { ButtonSize, ButtonUse } from '../Button';
|
|
4
4
|
import { Nullable } from '../../typings/utility-types';
|
|
@@ -106,6 +106,7 @@ export interface SelectState<TValue> {
|
|
|
106
106
|
searchPattern: string;
|
|
107
107
|
value: Nullable<TValue>;
|
|
108
108
|
}
|
|
109
|
+
declare type DefaultProps<TValue, TItem> = Required<Pick<SelectProps<TValue, TItem>, 'renderValue' | 'renderItem' | 'areValuesEqual' | 'filterItem' | 'use'>>;
|
|
109
110
|
export declare class Select<TValue = {}, TItem = {}> extends React.Component<SelectProps<TValue, TItem>, SelectState<TValue>> {
|
|
110
111
|
static __KONTUR_REACT_UI__: string;
|
|
111
112
|
static propTypes: {
|
|
@@ -130,13 +131,7 @@ export declare class Select<TValue = {}, TItem = {}> extends React.Component<Sel
|
|
|
130
131
|
onMouseOver: PropTypes.Requireable<(...args: any[]) => any>;
|
|
131
132
|
onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
|
|
132
133
|
};
|
|
133
|
-
static defaultProps:
|
|
134
|
-
renderValue: typeof renderValue;
|
|
135
|
-
renderItem: typeof renderItem;
|
|
136
|
-
areValuesEqual: typeof areValuesEqual;
|
|
137
|
-
filterItem: typeof filterItem;
|
|
138
|
-
use: string;
|
|
139
|
-
};
|
|
134
|
+
static defaultProps: DefaultProps<unknown, ReactNode | ReactPortal>;
|
|
140
135
|
static Item: typeof Item;
|
|
141
136
|
static SEP: () => JSX.Element;
|
|
142
137
|
static static: (element: React.ReactElement | (() => React.ReactElement)) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | (() => React.ReactElement);
|
|
@@ -187,8 +182,4 @@ export declare class Select<TValue = {}, TItem = {}> extends React.Component<Sel
|
|
|
187
182
|
private buttonRef;
|
|
188
183
|
private getButton;
|
|
189
184
|
}
|
|
190
|
-
declare function renderValue<TValue, TItem>(value: TValue, item: Nullable<TItem>): Nullable<TItem>;
|
|
191
|
-
declare function renderItem<TValue, TItem>(value: TValue, item?: TItem): TItem | undefined;
|
|
192
|
-
declare function areValuesEqual<TValue>(value1: TValue, value2: TValue): boolean;
|
|
193
|
-
declare function filterItem<TValue>(value: TValue, item: any, pattern: string): boolean;
|
|
194
185
|
export {};
|
|
@@ -162,6 +162,10 @@ var SelectDataTids = {
|
|
|
162
162
|
|
|
163
163
|
|
|
164
164
|
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
|
|
165
169
|
|
|
166
170
|
|
|
167
171
|
|
|
@@ -493,6 +497,7 @@ Select = (_dec = (0, _decorators.locale)('Select', _locale.SelectLocaleHelper),
|
|
|
493
497
|
|
|
494
498
|
|
|
495
499
|
|
|
500
|
+
|
|
496
501
|
|
|
497
502
|
|
|
498
503
|
getSearch = function (noMargin) {var _cx;
|
|
@@ -681,7 +686,7 @@ Select = (_dec = (0, _decorators.locale)('Select', _locale.SelectLocaleHelper),
|
|
|
681
686
|
buttonElement;
|
|
682
687
|
};return _this;}var _proto = Select.prototype;_proto.componentDidUpdate = function componentDidUpdate(_prevProps, prevState) {if (!prevState.opened && this.state.opened) {window.addEventListener('popstate', this.close);}if (prevState.opened && !this.state.opened) {window.removeEventListener('popstate', this.close);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, _this2.renderMain());});} /**
|
|
683
688
|
* @public
|
|
684
|
-
*/;_proto.getMenuRenderer = function getMenuRenderer() {if (this.props.disabled) {return null;}if (this.isMobileLayout) {return this.renderMobileMenu();}if (this.state.opened) {return this.renderMenu();}return null;};_proto.renderMain = function renderMain() {var _cx2;var buttonParams = this.getDefaultButtonParams();var button = this.getButton(buttonParams);var isMobile = this.isMobileLayout;var style = { width: this.props.width, maxWidth: this.props.maxWidth || undefined };var root = /*#__PURE__*/_react.default.createElement("span", { "data-tid": SelectDataTids.root, className: (0, _Emotion.cx)((_cx2 = {}, _cx2[_Select.styles.root()] = true, _cx2[_Select.styles.rootMobile(this.theme)] = isMobile, _cx2)), style: style }, button, this.getMenuRenderer());return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, { onClickOutside: this.close, onFocusOutside: this.close, active: isMobile ? false : this.state.opened }, root));};_proto.renderLabel = function renderLabel() {var _this$locale;var value = this.getValue();var item = this.getItemByValue(value);if ((0, _utils.isNonNullable)(value)) {return { label: this.getProps().renderValue(value, item), isPlaceholder: false };}return { label: /*#__PURE__*/_react.default.createElement("span", null, this.props.placeholder || ((_this$locale = this.locale) == null ? void 0 : _this$locale.placeholder)), isPlaceholder: true };};_proto.getLeftIconClass = function getLeftIconClass(size) {if (this.
|
|
689
|
+
*/;_proto.getMenuRenderer = function getMenuRenderer() {if (this.props.disabled) {return null;}if (this.isMobileLayout) {return this.renderMobileMenu();}if (this.state.opened) {return this.renderMenu();}return null;};_proto.renderMain = function renderMain() {var _cx2;var buttonParams = this.getDefaultButtonParams();var button = this.getButton(buttonParams);var isMobile = this.isMobileLayout;var style = { width: this.props.width, maxWidth: this.props.maxWidth || undefined };var root = /*#__PURE__*/_react.default.createElement("span", { "data-tid": SelectDataTids.root, className: (0, _Emotion.cx)((_cx2 = {}, _cx2[_Select.styles.root()] = true, _cx2[_Select.styles.rootMobile(this.theme)] = isMobile, _cx2)), style: style }, button, this.getMenuRenderer());return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_RenderLayer.RenderLayer, { onClickOutside: this.close, onFocusOutside: this.close, active: isMobile ? false : this.state.opened }, root));};_proto.renderLabel = function renderLabel() {var _this$locale;var value = this.getValue();var item = this.getItemByValue(value);if ((0, _utils.isNonNullable)(value)) {return { label: this.getProps().renderValue(value, item), isPlaceholder: false };}return { label: /*#__PURE__*/_react.default.createElement("span", null, this.props.placeholder || ((_this$locale = this.locale) == null ? void 0 : _this$locale.placeholder)), isPlaceholder: true };};_proto.getLeftIconClass = function getLeftIconClass(size) {if (this.getProps().use === 'link') {return _Select.styles.leftIconLink(this.theme);}switch (size) {case 'large':return _Select.styles.leftIconLarge(this.theme);case 'medium':return _Select.styles.leftIconMedium(this.theme);case 'small':default:return _Select.styles.leftIconSmall(this.theme);}};_proto.renderDefaultButton = function renderDefaultButton(params) {var _cx3, _cx4;var buttonProps = (0, _extends2.default)({}, (0, _filterProps.filterProps)(this.props, PASS_BUTTON_PROPS), { align: 'left', disabled: this.props.disabled, width: '100%', onClick: params.onClick, onKeyDown: params.onKeyDown, active: params.opened });var use = this.getProps().use;var labelProps = { className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_Select.styles.label()] = use !== 'link', _cx3[_Select.styles.placeholder(this.theme)] = params.isPlaceholder, _cx3[_Select.styles.customUsePlaceholder()] = params.isPlaceholder && use !== 'default', _cx3[_Select.styles.placeholderDisabled(this.theme)] = params.isPlaceholder && this.props.disabled, _cx3)), style: { paddingRight: this.getSelectIconGap() } };var useIsCustom = use !== 'default';return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: (0, _selectTheme.getSelectTheme)(this.theme, this.props) }, /*#__PURE__*/_react.default.createElement(_Button.Button, buttonProps, /*#__PURE__*/_react.default.createElement("div", { className: _Select.styles.selectButtonContainer() }, this.props._icon && /*#__PURE__*/_react.default.createElement("div", { className: this.getLeftIconClass(this.props.size) }, this.props._icon), /*#__PURE__*/_react.default.createElement("span", labelProps, params.label), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)(_Select.styles.arrowWrap(this.theme), (_cx4 = {}, _cx4[_Select.styles.arrowDisabled(this.theme)] = this.props.disabled, _cx4[_Select.styles.customUseArrow()] = useIsCustom, _cx4)) }, /*#__PURE__*/_react.default.createElement(_px.ArrowChevronDownIcon, null)))));};_proto.getSelectIconGap = function getSelectIconGap() {var _this3 = this;var getArrowPadding = function getArrowPadding() {switch (_this3.props.size) {case 'large':return _this3.theme.selectIconGapLarge;case 'medium':return _this3.theme.selectIconGapMedium;case 'small':default:return _this3.theme.selectIconGapSmall;}};var arrowLeftPadding = parseFloat(getArrowPadding()) || 0;return arrowLeftPadding;};_proto.renderMenu = function renderMenu() {var search = this.props.search ? /*#__PURE__*/_react.default.createElement("div", { className: _Select.styles.search(), onKeyDown: this.handleKey }, /*#__PURE__*/_react.default.createElement(_Input.Input, { ref: this.focusInput, onValueChange: this.handleSearch, width: "100%" })) : null;var value = this.getValue();var hasFixedWidth = !!this.props.menuWidth && this.props.menuWidth !== 'auto';return /*#__PURE__*/_react.default.createElement(_DropdownContainer.DropdownContainer, { getParent: this.dropdownContainerGetParent, offsetY: -1, align: this.props.menuAlign, disablePortal: this.props.disablePortal, hasFixedWidth: hasFixedWidth }, /*#__PURE__*/_react.default.createElement(_Menu.Menu, { ref: this.refMenu, width: this.props.menuWidth, onItemClick: this.close, maxHeight: this.props.maxMenuHeight, align: this.props.menuAlign }, search, this.getMenuItems(value)));};_proto.renderMobileMenu = function renderMobileMenu() {var search = this.props.search ? this.getSearch(true) : null;var value = this.getValue();var isWithSearch = Boolean(search);return /*#__PURE__*/_react.default.createElement(_MobilePopup.MobilePopup, { headerChildComponent: search, caption: this.props.mobileMenuHeaderText, useFullHeight: isWithSearch, onCloseRequest: this.close, opened: this.state.opened }, /*#__PURE__*/_react.default.createElement(_Menu.Menu, { hasShadow: false, onItemClick: this.close, disableScrollContainer: true, maxHeight: 'auto' }, this.getMenuItems(value)));};_proto.select = function select(value) {this.focus();this.setState({ opened: false, value: value });if (!this.areValuesEqual(this.getValue(), value)) {var _this$props$onValueCh, _this$props;(_this$props$onValueCh = (_this$props = this.props).onValueChange) == null ? void 0 : _this$props$onValueCh.call(_this$props, value);}};_proto.getValue = function getValue() {if (this.props.value !== undefined) {return this.props.value;}return this.state.value;};_proto.mapItems = function mapItems(fn) {var items = this.props.items;if (!items) {return [];}var pattern = this.state.searchPattern && this.state.searchPattern.toLowerCase();var result = [];var index = 0;for (var _iterator = _createForOfIteratorHelperLoose(items), _step; !(_step = _iterator()).done;) {var entry = _step.value;var _normalizeEntry = normalizeEntry(entry),_value = _normalizeEntry[0],_item = _normalizeEntry[1],_comment = _normalizeEntry[2];if (!pattern || this.getProps().filterItem(_value, _item, pattern)) {result.push(fn(_value, _item, index, _comment));++index;}}return result;};_proto.getItemByValue = function getItemByValue(value) {if (value === null || value === undefined) {return null;}var items = this.props.items || [];for (var _iterator2 = _createForOfIteratorHelperLoose(items), _step2; !(_step2 = _iterator2()).done;) {var entry = _step2.value;var _normalizeEntry2 = normalizeEntry(entry),itemValue = _normalizeEntry2[0],_item2 = _normalizeEntry2[1];if (this.areValuesEqual(itemValue, value)) {return _item2;}}return null;};_proto.areValuesEqual = function areValuesEqual(value1, value2) {return (0, _utils.isNonNullable)(value1) && (0, _utils.isNonNullable)(value2) && this.getProps().areValuesEqual(value1, value2);};return Select;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'Select', _class2.propTypes = { areValuesEqual: _propTypes.default.func, defaultValue: _propTypes.default.any, disablePortal: _propTypes.default.bool, disabled: _propTypes.default.bool, error: _propTypes.default.bool, filterItem: _propTypes.default.func, items: _propTypes.default.oneOfType([_propTypes.default.array, _propTypes.default.object]), maxMenuHeight: _propTypes.default.number, maxWidth: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), placeholder: _propTypes.default.node, renderItem: _propTypes.default.func, renderValue: _propTypes.default.func, search: _propTypes.default.bool, value: _propTypes.default.any, width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), onValueChange: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func, onKeyDown: _propTypes.default.func }, _class2.defaultProps = { renderValue: renderValue, renderItem: renderItem, areValuesEqual: areValuesEqual, filterItem: filterItem, use: 'default' }, _class2.Item = _Item.Item, _class2.SEP = function () {return /*#__PURE__*/_react.default.createElement(_MenuSeparator.MenuSeparator, null);}, _class2.static = function (element) {(0, _invariant.default)( /*#__PURE__*/_react.default.isValidElement(element) || typeof element === 'function', 'Select.static(element) expects element to be a valid react element.');return element;}, _temp)) || _class) || _class) || _class);exports.Select = Select;
|
|
685
690
|
function renderValue(value, item) {
|
|
686
691
|
return item;
|
|
687
692
|
}
|