@skbkontur/react-ui 3.9.4 → 3.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +57 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
- package/cjs/components/Autocomplete/Autocomplete.js +11 -5
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +1 -0
- package/cjs/components/Button/Button.js +7 -3
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +1 -0
- package/cjs/components/Center/Center.js +10 -3
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +3 -2
- package/cjs/components/Checkbox/Checkbox.js +10 -4
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
- package/cjs/components/ComboBox/ComboBox.js +100 -70
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +3 -3
- package/cjs/components/CurrencyInput/CurrencyInput.js +7 -4
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +1 -0
- package/cjs/components/DateInput/DateInput.js +6 -3
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +4 -2
- package/cjs/components/DatePicker/DatePicker.js +17 -7
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
- package/cjs/components/Dropdown/Dropdown.js +11 -4
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -0
- package/cjs/components/DropdownMenu/DropdownMenu.js +7 -4
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +1 -0
- package/cjs/components/FxInput/FxInput.js +9 -2
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +1 -0
- package/cjs/components/Gapped/Gapped.js +8 -5
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +1 -0
- package/cjs/components/Group/Group.js +10 -7
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +3 -2
- package/cjs/components/Hint/Hint.js +7 -4
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +4 -1
- package/cjs/components/Input/Input.js +13 -5
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +1 -0
- package/cjs/components/Kebab/Kebab.js +8 -5
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +1 -0
- package/cjs/components/Link/Link.js +11 -3
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +1 -0
- package/cjs/components/Loader/Loader.js +9 -6
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -0
- package/cjs/components/MenuItem/MenuItem.js +13 -7
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Modal/Modal.js +1 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +1 -0
- package/cjs/components/Modal/ModalBody.js +9 -6
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +2 -2
- package/cjs/components/Paging/Paging.js +6 -5
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +3 -2
- package/cjs/components/PasswordInput/PasswordInput.js +13 -6
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +5 -10
- package/cjs/components/Radio/Radio.js +11 -10
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -16
- package/cjs/components/RadioGroup/RadioGroup.js +16 -19
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroupContext.d.ts +10 -0
- package/cjs/components/RadioGroup/RadioGroupContext.js +21 -0
- package/cjs/components/RadioGroup/RadioGroupContext.js.map +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +8 -5
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +1 -0
- package/cjs/components/Select/Select.js +6 -4
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +1 -0
- package/cjs/components/SidePage/SidePage.js +4 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.d.ts +1 -0
- package/cjs/components/SidePage/SidePageBody.js +9 -6
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
- package/cjs/components/SidePage/SidePageContainer.js +9 -6
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +1 -2
- package/cjs/components/SidePage/SidePageFooter.js +11 -12
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
- package/cjs/components/SidePage/SidePageHeader.js +6 -3
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +1 -0
- package/cjs/components/Spinner/Spinner.js +8 -5
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +1 -0
- package/cjs/components/Sticky/Sticky.js +8 -5
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +1 -0
- package/cjs/components/Switcher/Switcher.js +6 -3
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Indicator.d.ts +1 -0
- package/cjs/components/Tabs/Indicator.js +16 -15
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +2 -1
- package/cjs/components/Tabs/Tab.js +13 -9
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +1 -0
- package/cjs/components/Tabs/Tabs.js +9 -9
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +1 -0
- package/cjs/components/Textarea/Textarea.js +12 -5
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +3 -0
- package/cjs/components/Toast/Toast.js +15 -4
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.d.ts +1 -0
- package/cjs/components/Toast/ToastView.js +8 -5
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +1 -0
- package/cjs/components/Toggle/Toggle.js +9 -6
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +1 -0
- package/cjs/components/Token/Token.js +7 -4
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
- package/cjs/components/TokenInput/TokenInput.js +11 -8
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +3 -1
- package/cjs/components/Tooltip/Tooltip.js +16 -5
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -0
- package/cjs/components/TooltipMenu/TooltipMenu.js +8 -5
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +38 -15
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +3 -2
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js +15 -5
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +8 -5
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +2 -2
- package/cjs/internal/DateSelect/DateSelect.js +3 -3
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
- package/cjs/internal/DropdownContainer/DropdownContainer.js +8 -13
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.js +12 -9
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +12 -4
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +10 -3
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +2 -3
- package/cjs/internal/InternalMenu/InternalMenu.js +16 -22
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/MaskedInput/MaskedInput.d.ts +2 -2
- package/cjs/internal/MaskedInput/MaskedInput.js +3 -3
- package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +1 -0
- package/cjs/internal/Menu/Menu.js +9 -6
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +4 -4
- package/cjs/internal/Popup/Popup.js +50 -27
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +7 -4
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -3
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +3 -1
- package/cjs/internal/RenderLayer/RenderLayer.js +13 -7
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js +20 -19
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +2 -0
- package/cjs/internal/ZIndex/ZIndex.js +45 -34
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/icons/16px/index.d.ts +17 -16
- package/cjs/internal/icons/16px/index.js +108 -51
- package/cjs/internal/icons/16px/index.js.map +1 -1
- package/cjs/lib/callChildRef/callChildRef.d.ts +3 -0
- package/cjs/lib/callChildRef/callChildRef.js +19 -0
- package/cjs/lib/callChildRef/callChildRef.js.map +1 -0
- package/cjs/lib/rootNode/getRootNode.d.ts +3 -0
- package/cjs/lib/rootNode/getRootNode.js +27 -0
- package/cjs/lib/rootNode/getRootNode.js.map +1 -0
- package/cjs/lib/rootNode/index.d.ts +2 -0
- package/cjs/lib/rootNode/index.js +2 -0
- package/cjs/lib/rootNode/index.js.map +1 -0
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +33 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js +31 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -0
- package/cjs/lib/theming/Emotion.js +1 -0
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/utils.d.ts +3 -0
- package/cjs/lib/utils.js +15 -2
- package/cjs/lib/utils.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +19 -16
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +1 -0
- package/components/Button/Button/Button.js +15 -12
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -0
- package/components/Center/Center/Center.js +14 -9
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +1 -0
- package/components/Checkbox/Checkbox/Checkbox.js +16 -10
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +3 -2
- package/components/ComboBox/ComboBox/ComboBox.js +38 -32
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +2 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +29 -27
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +3 -3
- package/components/DateInput/DateInput/DateInput.js +7 -3
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +1 -0
- package/components/DatePicker/DatePicker/DatePicker.js +29 -22
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +4 -2
- package/components/Dropdown/Dropdown/Dropdown.js +15 -13
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +1 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +15 -9
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +1 -0
- package/components/FxInput/FxInput/FxInput.js +13 -9
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +1 -0
- package/components/Gapped/Gapped/Gapped.js +15 -11
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +1 -0
- package/components/Group/Group/Group.js +22 -9
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +1 -0
- package/components/Hint/Hint/Hint.js +18 -12
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +3 -2
- package/components/Input/Input/Input.js +21 -14
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +4 -1
- package/components/Kebab/Kebab/Kebab.js +12 -7
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -0
- package/components/Link/Link/Link.js +15 -11
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +1 -0
- package/components/Loader/Loader/Loader.js +16 -11
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +1 -0
- package/components/MenuItem/MenuItem/MenuItem.js +21 -14
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -0
- package/components/Modal/Modal/Modal.js +1 -1
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/ModalBody/ModalBody.js +16 -10
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +1 -0
- package/components/Paging/Paging/Paging.js +17 -14
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +2 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js +18 -14
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +3 -2
- package/components/Radio/Radio/Radio.js +17 -19
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +5 -10
- package/components/RadioGroup/RadioGroup/RadioGroup.js +35 -38
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -16
- package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js +12 -0
- package/components/RadioGroup/RadioGroupContext/RadioGroupContext.js.map +1 -0
- package/components/RadioGroup/RadioGroupContext/package.json +6 -0
- package/components/RadioGroup/RadioGroupContext.d.ts +10 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +13 -8
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/components/Select/Select/Select.js +8 -5
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +1 -0
- package/components/SidePage/SidePage/SidePage.js +6 -3
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +1 -0
- package/components/SidePage/SidePageBody/SidePageBody.js +16 -10
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +1 -0
- package/components/SidePage/SidePageContainer/SidePageContainer.js +16 -9
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +1 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js +22 -19
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +1 -2
- package/components/SidePage/SidePageHeader/SidePageHeader.js +15 -10
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +1 -0
- package/components/Spinner/Spinner/Spinner.js +8 -3
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +1 -0
- package/components/Sticky/Sticky/Sticky.js +13 -8
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +1 -0
- package/components/Switcher/Switcher/Switcher.js +11 -6
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +1 -0
- package/components/Tabs/Indicator/Indicator.js +16 -14
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Indicator.d.ts +1 -0
- package/components/Tabs/Tab/Tab.js +31 -34
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +2 -1
- package/components/Tabs/Tabs/Tabs.js +20 -20
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +1 -0
- package/components/Textarea/Textarea/Textarea.js +21 -17
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +1 -0
- package/components/Toast/Toast/Toast.js +29 -14
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +3 -0
- package/components/Toast/ToastView/ToastView.js +10 -5
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.d.ts +1 -0
- package/components/Toggle/Toggle/Toggle.js +16 -11
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +1 -0
- package/components/Token/Token/Token.js +11 -4
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +1 -0
- package/components/TokenInput/TokenInput/TokenInput.js +12 -6
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +1 -0
- package/components/Tooltip/Tooltip/Tooltip.js +24 -15
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +3 -1
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +23 -17
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +1 -0
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +37 -10
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +9 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +5 -3
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +23 -13
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +4 -1
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +12 -4
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
- package/internal/DateSelect/DateSelect/DateSelect.js +5 -5
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +2 -2
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +11 -15
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +4 -7
- package/internal/FocusTrap/FocusTrap/FocusTrap.js +17 -9
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +1 -0
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +13 -7
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +11 -6
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +24 -25
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +2 -3
- package/internal/MaskedInput/MaskedInput/MaskedInput.js +7 -7
- package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/internal/MaskedInput/MaskedInput.d.ts +2 -2
- package/internal/Menu/Menu/Menu.js +11 -8
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +1 -0
- package/internal/Popup/Popup/Popup.js +79 -68
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +4 -4
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +12 -7
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +1 -0
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +3 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainer.d.ts +1 -1
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +2 -3
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +20 -18
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +3 -1
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +35 -43
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/ThemeShowcase.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +20 -8
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +2 -0
- package/internal/icons/16px/index/index.js +83 -51
- package/internal/icons/16px/index/index.js.map +1 -1
- package/internal/icons/16px/index.d.ts +17 -16
- package/lib/callChildRef/callChildRef/callChildRef.js +14 -0
- package/lib/callChildRef/callChildRef/callChildRef.js.map +1 -0
- package/lib/callChildRef/callChildRef/package.json +6 -0
- package/lib/callChildRef/callChildRef.d.ts +3 -0
- package/lib/rootNode/getRootNode/getRootNode.js +25 -0
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -0
- package/lib/rootNode/getRootNode/package.json +6 -0
- package/lib/rootNode/getRootNode.d.ts +3 -0
- package/lib/rootNode/index/index.js +2 -0
- package/lib/rootNode/index/index.js.map +1 -0
- package/lib/rootNode/index/package.json +6 -0
- package/lib/rootNode/index.d.ts +2 -0
- package/lib/rootNode/package.json +6 -0
- package/lib/rootNode/rootNodeDecorator/package.json +6 -0
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +37 -0
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -0
- package/lib/rootNode/rootNodeDecorator.d.ts +33 -0
- package/lib/theming/Emotion/Emotion.js +1 -0
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/utils/utils.js +11 -1
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +3 -0
- package/package.json +8 -2
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.rootNode = rootNode;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _getRootNode = require("./getRootNode");
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
function rootNode(Component) {var _temp;
|
|
10
|
+
var rootNode = (_temp = /*#__PURE__*/function (_Component) {(0, _inheritsLoose2.default)(rootNode, _Component);
|
|
11
|
+
|
|
12
|
+
function rootNode() {var _this;
|
|
13
|
+
_this = _Component.call(this, arguments.length <= 0 ? undefined : arguments[0]) || this;_this.rootNode = void 0;_this.
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
setRootNode = function (instance) {
|
|
17
|
+
_this.rootNode = (0, _getRootNode.getRootNode)(instance);
|
|
18
|
+
};_this.
|
|
19
|
+
|
|
20
|
+
getRootNode = function () {
|
|
21
|
+
return _this.rootNode;
|
|
22
|
+
};return _this;}return rootNode;}(Component), _temp);
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
var nameDescriptor = Object.getOwnPropertyDescriptor(rootNode, 'name');
|
|
26
|
+
if (!nameDescriptor || nameDescriptor.configurable) {
|
|
27
|
+
Object.defineProperty(rootNode, 'name', { value: Component.name });
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return rootNode;
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["rootNodeDecorator.tsx"],"names":["rootNode","Component","setRootNode","instance","getRootNode","nameDescriptor","Object","getOwnPropertyDescriptor","configurable","defineProperty","value","name"],"mappings":";;;;AAIA;;;;AAIO,SAASA,QAAT,CAAqEC,SAArE,EAAmF;AACxF,MAAMD,QAAQ;;AAEZ,wBAAmC;AACjC,8FADiC,MAD5BA,QAC4B;;;AAI5BE,MAAAA,WAJ4B,GAId,UAACC,QAAD,EAA6C;AAChE,cAAKH,QAAL,GAAgB,8BAAYG,QAAZ,CAAhB;AACD,OANkC;;AAQ5BC,MAAAA,WAR4B,GAQd,YAA6B;AAChD,eAAO,MAAKJ,QAAZ;AACD,OAVkC,cAElC,CAJW,kBAAiBC,SAAjB,SAAd;;;AAeA,MAAMI,cAAc,GAAGC,MAAM,CAACC,wBAAP,CAAgCP,QAAhC,EAA0C,MAA1C,CAAvB;AACA,MAAI,CAACK,cAAD,IAAmBA,cAAc,CAACG,YAAtC,EAAoD;AAClDF,IAAAA,MAAM,CAACG,cAAP,CAAsBT,QAAtB,EAAgC,MAAhC,EAAwC,EAAEU,KAAK,EAAET,SAAS,CAACU,IAAnB,EAAxC;AACD;;AAED,SAAOX,QAAP;AACD","sourcesContent":["import React from 'react';\n\nimport { Nullable } from '../../typings/utility-types';\n\nimport { getRootNode } from './getRootNode';\n\nexport type TSetRootNode = (e: Nullable<React.ReactNode>) => void;\n\nexport function rootNode<T extends new (...args: any[]) => React.Component>(Component: T) {\n const rootNode = class extends Component {\n public rootNode: Nullable<HTMLElement>;\n public constructor(...args: any[]) {\n super(args[0]);\n }\n\n public setRootNode = (instance: Nullable<React.ReactInstance>) => {\n this.rootNode = getRootNode(instance);\n };\n\n public getRootNode = (): Nullable<HTMLElement> => {\n return this.rootNode;\n };\n };\n\n const nameDescriptor = Object.getOwnPropertyDescriptor(rootNode, 'name');\n if (!nameDescriptor || nameDescriptor.configurable) {\n Object.defineProperty(rootNode, 'name', { value: Component.name });\n }\n\n return rootNode;\n}\n"]}
|
|
@@ -12,6 +12,7 @@ var scope = new Array(_Upgrades.Upgrade.getSpecificityLevel()).fill("." + REACT_
|
|
|
12
12
|
|
|
13
13
|
(0, _createInstance.default)({
|
|
14
14
|
key: REACT_UI_PREFIX,
|
|
15
|
+
prepend: true,
|
|
15
16
|
stylisPlugins: scope ? [(0, _stylisPluginExtraScope.default)(scope)] : undefined }),flush = _createEmotion.flush,hydrate = _createEmotion.hydrate,cx = _createEmotion.cx,merge = _createEmotion.merge,getRegisteredStyles = _createEmotion.getRegisteredStyles,injectGlobal = _createEmotion.injectGlobal,keyframes = _createEmotion.keyframes,css = _createEmotion.css,sheet = _createEmotion.sheet,cache = _createEmotion.cache;exports.cache = cache;exports.sheet = sheet;exports.css = css;exports.keyframes = keyframes;exports.injectGlobal = injectGlobal;exports.getRegisteredStyles = getRegisteredStyles;exports.merge = merge;exports.cx = cx;exports.hydrate = hydrate;exports.flush = flush;
|
|
16
17
|
|
|
17
18
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Emotion.ts"],"names":["REACT_UI_PREFIX","Upgrade","getSpecificityClassName","scope","Array","getSpecificityLevel","fill","join","key","stylisPlugins","undefined","flush","hydrate","cx","merge","getRegisteredStyles","injectGlobal","keyframes","css","sheet","cache","isZeroArgs","fn","length","memoize","isCalled","result","WeakMap","arg","has","set","get","memoizeStyle","styles","Object","keys","forEach","className","prefix","component","app","classes","reduce","acc"],"mappings":"mbAAA;AACA;;AAEA;;;;AAIA,IAAMA,eAAe,GAAGC,kBAAQC,uBAAR,EAAxB;;AAEA,IAAMC,KAAK,GAAG,IAAIC,KAAJ,CAAUH,kBAAQI,mBAAR,EAAV,EAAyCC,IAAzC,OAAkDN,eAAlD,EAAqEO,IAArE,CAA0E,EAA1E,CAAd,C;;;AAGE,6BAAc;AACZC,EAAAA,GAAG,EAAER,eADO;AAEZS,EAAAA,aAAa,
|
|
1
|
+
{"version":3,"sources":["Emotion.ts"],"names":["REACT_UI_PREFIX","Upgrade","getSpecificityClassName","scope","Array","getSpecificityLevel","fill","join","key","prepend","stylisPlugins","undefined","flush","hydrate","cx","merge","getRegisteredStyles","injectGlobal","keyframes","css","sheet","cache","isZeroArgs","fn","length","memoize","isCalled","result","WeakMap","arg","has","set","get","memoizeStyle","styles","Object","keys","forEach","className","prefix","component","app","classes","reduce","acc"],"mappings":"mbAAA;AACA;;AAEA;;;;AAIA,IAAMA,eAAe,GAAGC,kBAAQC,uBAAR,EAAxB;;AAEA,IAAMC,KAAK,GAAG,IAAIC,KAAJ,CAAUH,kBAAQI,mBAAR,EAAV,EAAyCC,IAAzC,OAAkDN,eAAlD,EAAqEO,IAArE,CAA0E,EAA1E,CAAd,C;;;AAGE,6BAAc;AACZC,EAAAA,GAAG,EAAER,eADO;AAEZS,EAAAA,OAAO,EAAE,IAFG;AAGZC,EAAAA,aAAa,EAAEP,KAAK,GAAG,CAAC,qCAAiBA,KAAjB,CAAD,CAAH,GAA+BQ,SAHvC,EAAd,C,CADaC,K,kBAAAA,K,CAAOC,O,kBAAAA,O,CAASC,E,kBAAAA,E,CAAIC,K,kBAAAA,K,CAAOC,mB,kBAAAA,mB,CAAqBC,Y,kBAAAA,Y,CAAcC,S,kBAAAA,S,CAAWC,G,kBAAAA,G,CAAKC,K,kBAAAA,K,CAAOC,K,kBAAAA,K;;;AAOpG,SAASC,UAAT,CAAwDC,EAAxD,EAAyF;AACvF,SAAOA,EAAE,CAACC,MAAH,IAAa,CAApB;AACD;;AAED,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAsBF,EAAtB,EAAuF;AACrG,MAAID,UAAU,CAACC,EAAD,CAAd,EAAoB;AAClB,QAAIG,QAAQ,GAAG,KAAf;AACA,QAAIC,MAAJ;AACA,WAAO,YAAM;AACX,UAAI,CAACD,QAAL,EAAe;AACbA,QAAAA,QAAQ,GAAG,IAAX;AACAC,QAAAA,MAAM,GAAGJ,EAAE,EAAX;AACD;AACD,aAAOI,MAAP;AACD,KAND;AAOD;;AAED,MAAMN,KAAK,GAAG,IAAIO,OAAJ,EAAd;AACA,SAAO,UAACC,GAAD,EAAY;AACjB,QAAI,CAACR,KAAK,CAACS,GAAN,CAAUD,GAAV,CAAL,EAAqBR,KAAK,CAACU,GAAN,CAAUF,GAAV,EAAeN,EAAE,CAACM,GAAD,CAAjB;AACrB,WAAOR,KAAK,CAACW,GAAN,CAAUH,GAAV,CAAP;AACD,GAHD;AAID,CAlBD;;AAoBO,IAAMI,YAAY,GAAG,SAAfA,YAAe;AAC1BC,MAD0B;AAEpB;AACNC,EAAAA,MAAM,CAACC,IAAP,CAAYF,MAAZ,EAAoBG,OAApB,CAA4B,UAACC,SAAD,UAAgBJ,MAAM,CAACI,SAAD,CAAN,GAA+Bb,OAAO,CAACS,MAAM,CAACI,SAAD,CAAP,CAAtD,EAA5B;AACA,SAAOJ,MAAP;AACD,CALM,C;;AAOA,IAAMK,MAAM;AACjB,SADWA,MACX,CAACC,SAAD,EAAoBC,GAApB,OAAoBA,GAApB,cAAoBA,GAApB,GAA0BzC,eAA1B;AACA,cAAmC0C,OAAnC;AACEP,QAAAA,MAAM,CAACC,IAAP,CAAYM,OAAZ,EAAqBC,MAArB,CAA4B,UAACC,GAAD,EAAMpC,GAAN,EAAc;AACxC,4CAAYoC,GAAZ,6BAAkBpC,GAAlB,IAA2BiC,GAA3B,SAAkCD,SAAlC,SAA+CE,OAAO,CAAClC,GAAD,CAAtD;AACD,SAFD,EAEG,EAFH,CADF,GADA,GADK,C","sourcesContent":["import createEmotion from '@emotion/css/create-instance';\nimport extraScopePlugin from 'stylis-plugin-extra-scope';\n\nimport { Upgrade } from '../Upgrades';\n\nimport { Theme } from './Theme';\n\nconst REACT_UI_PREFIX = Upgrade.getSpecificityClassName();\n\nconst scope = new Array(Upgrade.getSpecificityLevel()).fill(`.${REACT_UI_PREFIX}`).join('');\n\nexport const { flush, hydrate, cx, merge, getRegisteredStyles, injectGlobal, keyframes, css, sheet, cache } =\n createEmotion({\n key: REACT_UI_PREFIX,\n prepend: true,\n stylisPlugins: scope ? [extraScopePlugin(scope)] : undefined,\n });\n\nfunction isZeroArgs<R, T extends (...args: any[]) => R>(fn: T | Function): fn is () => R {\n return fn.length == 0;\n}\n\nconst memoize = <A extends object, R>(fn: (() => R) | ((arg: A) => R)): (() => R) | ((arg: A) => R) => {\n if (isZeroArgs(fn)) {\n let isCalled = false;\n let result: R;\n return () => {\n if (!isCalled) {\n isCalled = true;\n result = fn();\n }\n return result;\n };\n }\n\n const cache = new WeakMap();\n return (arg: A) => {\n if (!cache.has(arg)) cache.set(arg, fn(arg));\n return cache.get(arg);\n };\n};\n\nexport const memoizeStyle = <S extends { [className: string]: (() => string) | ((t: Theme) => string) }>(\n styles: S,\n): S => {\n Object.keys(styles).forEach((className) => (styles[className as keyof S] = memoize(styles[className]) as S[keyof S]));\n return styles;\n};\n\nexport const prefix =\n (component: string, app = REACT_UI_PREFIX) =>\n <T extends Record<string, string>>(classes: T): T =>\n Object.keys(classes).reduce((acc, key) => {\n return { ...acc, [key]: `${app}-${component}-${classes[key]}` };\n }, {} as T);\n"]}
|
package/cjs/lib/utils.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ export declare class CancelationError extends Error {
|
|
|
12
12
|
export declare function taskWithDelay(task: () => void, ms: number): () => void;
|
|
13
13
|
export declare function isFunction<T>(x: T | Function): x is Function;
|
|
14
14
|
export declare function isFunctionalComponent(Component: ReactComponentLike): boolean;
|
|
15
|
+
export declare function isClassComponent(Component: ReactComponentLike): boolean;
|
|
16
|
+
export declare function isIntrinsicElement(element: React.ReactElement): boolean;
|
|
17
|
+
export declare function isRefableElement(element: React.ReactElement): boolean;
|
|
15
18
|
export declare function escapeRegExpSpecChars(s: string): string;
|
|
16
19
|
export declare const getRandomID: () => string;
|
|
17
20
|
export declare const isExternalLink: (link: string) => boolean;
|
package/cjs/lib/utils.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.taskWithDelay = taskWithDelay;exports.isFunction = isFunction;exports.isFunctionalComponent = isFunctionalComponent;exports.escapeRegExpSpecChars = escapeRegExpSpecChars;exports.isNonNullable = exports.isReactUINode = exports.isExternalLink = exports.getRandomID = exports.CancelationError = exports.emptyHandler = exports.delay = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.taskWithDelay = taskWithDelay;exports.isFunction = isFunction;exports.isFunctionalComponent = isFunctionalComponent;exports.isClassComponent = isClassComponent;exports.isIntrinsicElement = isIntrinsicElement;exports.isRefableElement = isRefableElement;exports.escapeRegExpSpecChars = escapeRegExpSpecChars;exports.isNonNullable = exports.isReactUINode = exports.isExternalLink = exports.getRandomID = exports.CancelationError = exports.emptyHandler = exports.delay = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
2
2
|
var _react = _interopRequireDefault(require("react"));
|
|
3
|
+
var _reactIs = require("react-is");
|
|
3
4
|
|
|
4
5
|
var _client = require("./client");
|
|
5
6
|
|
|
@@ -42,7 +43,19 @@ function isFunction(x) {
|
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
function isFunctionalComponent(Component) {
|
|
45
|
-
return typeof Component === 'function' && !(Component.prototype && Component.prototype.isReactComponent);
|
|
46
|
+
return Boolean(typeof Component === 'function' && !(Component.prototype && Component.prototype.isReactComponent));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function isClassComponent(Component) {
|
|
50
|
+
return Boolean(typeof Component === 'function' && Component.prototype && Component.prototype.isReactComponent);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function isIntrinsicElement(element) {
|
|
54
|
+
return typeof element.type === 'string';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function isRefableElement(element) {
|
|
58
|
+
return Boolean(isIntrinsicElement(element) || isClassComponent(element.type) || (0, _reactIs.isForwardRef)(element));
|
|
46
59
|
}
|
|
47
60
|
|
|
48
61
|
function escapeRegExpSpecChars(s) {
|
package/cjs/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["utils.ts"],"names":["delay","ms","Promise","resolve","setTimeout","emptyHandler","CancelationError","code","Error","taskWithDelay","task","cancelationToken","reject","then","catch","isFunction","x","isFunctionalComponent","Component","prototype","isReactComponent","escapeRegExpSpecChars","s","replace","getRandomID","Math","random","toString","slice","isExternalLink","link","RegExp","isBrowser","window","location","host","test","isReactUINode","componentName","node","React","isValidElement","Object","hasOwnProperty","call","
|
|
1
|
+
{"version":3,"sources":["utils.ts"],"names":["delay","ms","Promise","resolve","setTimeout","emptyHandler","CancelationError","code","Error","taskWithDelay","task","cancelationToken","reject","then","catch","isFunction","x","isFunctionalComponent","Component","Boolean","prototype","isReactComponent","isClassComponent","isIntrinsicElement","element","type","isRefableElement","escapeRegExpSpecChars","s","replace","getRandomID","Math","random","toString","slice","isExternalLink","link","RegExp","isBrowser","window","location","host","test","isReactUINode","componentName","node","React","isValidElement","Object","hasOwnProperty","call","__KONTUR_REACT_UI__","isNonNullable","value","undefined"],"mappings":"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","sourcesContent":["import { ReactComponentLike } from 'prop-types';\nimport React from 'react';\nimport { isForwardRef } from 'react-is';\n\nimport { isBrowser } from './client';\n\n// NOTE: Copy-paste from @types/react\nexport type Defaultize<P, D> = P extends any\n ? string extends keyof P\n ? P\n : Pick<P, Exclude<keyof P, keyof D>> &\n Partial<Pick<P, Extract<keyof P, keyof D>>> &\n Partial<Pick<D, Exclude<keyof D, keyof P>>>\n : never;\n\nexport type DefaultizeProps<C, P> = C extends { defaultProps: infer D } ? Defaultize<P, D> : P;\n\nexport const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));\n\nexport const emptyHandler = () => {\n /* noop */\n};\n\nexport class CancelationError extends Error {\n public code = 'CancelationError';\n}\n\nexport function taskWithDelay(task: () => void, ms: number) {\n let cancelationToken: () => void = () => null;\n\n new Promise((resolve, reject) => {\n cancelationToken = reject;\n setTimeout(resolve, ms);\n })\n .then(task)\n .catch(() => null);\n\n return cancelationToken;\n}\n\nexport function isFunction<T>(x: T | Function): x is Function {\n return typeof x === 'function';\n}\n\nexport function isFunctionalComponent(Component: ReactComponentLike): boolean {\n return Boolean(typeof Component === 'function' && !(Component.prototype && Component.prototype.isReactComponent));\n}\n\nexport function isClassComponent(Component: ReactComponentLike): boolean {\n return Boolean(typeof Component === 'function' && Component.prototype && Component.prototype.isReactComponent);\n}\n\nexport function isIntrinsicElement(element: React.ReactElement): boolean {\n return typeof element.type === 'string';\n}\n\nexport function isRefableElement(element: React.ReactElement): boolean {\n return Boolean(isIntrinsicElement(element) || isClassComponent(element.type) || isForwardRef(element));\n}\n\nexport function escapeRegExpSpecChars(s: string): string {\n return s.replace(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nexport const getRandomID = (): string => Math.random().toString(16).slice(2);\n\nexport const isExternalLink = (link: string): boolean => {\n return new RegExp(`^(https?:)?//${isBrowser ? `(?!${window.location.host})` : ``}\\\\S+`, 'gi').test(link);\n};\n\n/**\n * Check if the given ReactNode is an element of the specified ReactUI component\n */\nexport const isReactUINode = (componentName: string, node: React.ReactNode): boolean => {\n if (React.isValidElement(node)) {\n return (\n Object.prototype.hasOwnProperty.call(node.type, '__KONTUR_REACT_UI__') &&\n // @ts-ignore\n node.type.__KONTUR_REACT_UI__ === componentName\n );\n }\n\n return false;\n};\n\n/**\n * Проверяет, не является ли переданный аргумент null или undefined и исключает типы null и undefined из типа аргумента\n *\n * @param value Значение, которое нужно проверить и исключить из него типы\n * @returns Возвращает true, если переданный аргумент не является null или undefined иначе false\n */\nexport const isNonNullable = <T>(value: T): value is NonNullable<T> => {\n return value !== null && value !== undefined;\n};\n"]}
|
|
@@ -2,9 +2,11 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
|
|
4
4
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
5
|
+
|
|
6
|
+
var _class, _class2, _temp;
|
|
7
|
+
|
|
5
8
|
import React from 'react';
|
|
6
9
|
import PropTypes from 'prop-types';
|
|
7
|
-
import { findDOMNode } from 'react-dom';
|
|
8
10
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
9
11
|
import { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from "../../../lib/events/keyboard/identifiers";
|
|
10
12
|
import { Input } from "../../Input";
|
|
@@ -15,6 +17,7 @@ import { RenderLayer } from "../../../internal/RenderLayer";
|
|
|
15
17
|
import { createPropsGetter } from "../../../lib/createPropsGetter";
|
|
16
18
|
import { fixClickFocusIE } from "../../../lib/events/fixClickFocusIE";
|
|
17
19
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
20
|
+
import { getRootNode, rootNode } from "../../../lib/rootNode";
|
|
18
21
|
|
|
19
22
|
function match(pattern, items) {
|
|
20
23
|
if (!pattern || !items) {
|
|
@@ -31,14 +34,14 @@ function match(pattern, items) {
|
|
|
31
34
|
function renderItem(item) {
|
|
32
35
|
return item;
|
|
33
36
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Стандартный инпут с подсказками.
|
|
36
|
-
*
|
|
37
|
-
* Все свойства передаются во внутренний *Input*.
|
|
38
|
-
*/
|
|
39
37
|
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
export
|
|
39
|
+
/**
|
|
40
|
+
* Стандартный инпут с подсказками.
|
|
41
|
+
*
|
|
42
|
+
* Все свойства передаются во внутренний *Input*.
|
|
43
|
+
*/
|
|
44
|
+
var Autocomplete = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
|
|
42
45
|
_inheritsLoose(Autocomplete, _React$Component);
|
|
43
46
|
|
|
44
47
|
function Autocomplete() {
|
|
@@ -61,6 +64,7 @@ export var Autocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
61
64
|
_this.rootSpan = void 0;
|
|
62
65
|
_this.requestId = 0;
|
|
63
66
|
_this.getProps = createPropsGetter(Autocomplete.defaultProps);
|
|
67
|
+
_this.setRootNode = void 0;
|
|
64
68
|
|
|
65
69
|
_this.renderMain = function (props) {
|
|
66
70
|
var focused = _this.state.focused;
|
|
@@ -201,7 +205,7 @@ export var Autocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
201
205
|
};
|
|
202
206
|
|
|
203
207
|
_this.getAnchor = function () {
|
|
204
|
-
return
|
|
208
|
+
return getRootNode(_assertThisInitialized(_this));
|
|
205
209
|
};
|
|
206
210
|
|
|
207
211
|
_this.refInput = function (el) {
|
|
@@ -249,7 +253,9 @@ export var Autocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
249
253
|
|
|
250
254
|
return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
251
255
|
_this2.theme = theme;
|
|
252
|
-
return /*#__PURE__*/React.createElement(CommonWrapper,
|
|
256
|
+
return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
|
|
257
|
+
rootNodeRef: _this2.setRootNode
|
|
258
|
+
}, _this2.props), _this2.renderMain);
|
|
253
259
|
});
|
|
254
260
|
};
|
|
255
261
|
|
|
@@ -354,9 +360,7 @@ export var Autocomplete = /*#__PURE__*/function (_React$Component) {
|
|
|
354
360
|
};
|
|
355
361
|
|
|
356
362
|
return Autocomplete;
|
|
357
|
-
}(React.Component)
|
|
358
|
-
Autocomplete.__KONTUR_REACT_UI__ = 'Autocomplete';
|
|
359
|
-
Autocomplete.propTypes = {
|
|
363
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Autocomplete', _class2.propTypes = {
|
|
360
364
|
/**
|
|
361
365
|
* Функция для отрисовки элемента в выпадающем списке. Единственный аргумент
|
|
362
366
|
* — *item*.
|
|
@@ -377,8 +381,7 @@ Autocomplete.propTypes = {
|
|
|
377
381
|
* ```
|
|
378
382
|
*/
|
|
379
383
|
source: PropTypes.oneOfType([PropTypes.array, PropTypes.func])
|
|
380
|
-
}
|
|
381
|
-
Autocomplete.defaultProps = {
|
|
384
|
+
}, _class2.defaultProps = {
|
|
382
385
|
renderItem: renderItem,
|
|
383
386
|
size: 'small',
|
|
384
387
|
disablePortal: false,
|
|
@@ -386,4 +389,4 @@ Autocomplete.defaultProps = {
|
|
|
386
389
|
menuMaxHeight: 300,
|
|
387
390
|
menuAlign: 'left',
|
|
388
391
|
preventWindowScroll: true
|
|
389
|
-
};
|
|
392
|
+
}, _temp)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Autocomplete.tsx"],"names":["React","PropTypes","findDOMNode","ThemeContext","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","DropdownContainer","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","match","pattern","items","Promise","resolve","toLowerCase","filteredItems","filter","item","includes","renderItem","Autocomplete","state","selected","focused","theme","opened","input","menu","rootSpan","requestId","getProps","defaultProps","renderMain","props","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","width","inputWidth","rest","inputProps","handleValueChange","handleKeyDown","handleFocus","ref","refInput","handleBlur","handleClickOutside","display","refRootSpan","renderMenu","getInputWidth","target","Element","getBoundingClientRect","value","fireChange","event","setState","blur","e","preventDefault","up","down","enter","getAnchor","el","refMenu","span","focus","componentDidUpdate","prevProps","updateItems","render","menuProps","maxHeight","menuWidth","length","map","i","handleMenuItemClick","handleItemClick","index","button","choose","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","propTypes","func","oneOfType","array","size"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { findDOMNode } from 'react-dom';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { Input, InputProps } from '../Input';\nimport { DropdownContainer } from '../../internal/DropdownContainer';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n pattern = pattern.toLowerCase();\n const filteredItems = items.filter((item) => item.toLowerCase().includes(pattern));\n return Promise.resolve(filteredItems);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Функция отрисовки элемента меню */\n renderItem: (item: string) => React.ReactNode;\n /** Промис, резолвящий элементы меню */\n source?: string[] | ((patter: string) => Promise<string[]>);\n /** Отключает использование портала */\n disablePortal: boolean;\n /** Отрисовка тени у выпадающего меню */\n hasShadow: boolean;\n /** Выравнивание выпадающего меню */\n menuAlign: 'left' | 'right';\n /** Максимальная высота меню */\n menuMaxHeight: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Отключить скролл окна, когда меню открыто */\n preventWindowScroll: boolean;\n /** Вызывается при изменении `value` */\n onValueChange: (value: string) => void;\n /** onBlur */\n onBlur?: () => void;\n /** Размер инпута */\n size: InputProps['size'];\n /** value */\n value: string;\n }\n > {}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n}\n\n/**\n * Стандартный инпут с подсказками.\n *\n * Все свойства передаются во внутренний *Input*.\n */\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n\n public static propTypes = {\n /**\n * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент\n * — *item*.\n */\n renderItem: PropTypes.func,\n\n /**\n * Если передан массив, то совпадения ищутся по этому массиву.\n *\n * Если передается функция, то она должна возвращать thenable, который\n * резолвится уже отфильтрованным массивом. Возвращенный thenable может\n * иметь метод cancel, который будет вызван при отмене поиска (пользователь\n * изменил строку поиска, автокомплит потерял фокус).\n * ```\n * function(pattern) {\n * return service.findAll(pattern);\n * }\n * ```\n */\n source: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n };\n\n public static defaultProps = {\n renderItem,\n size: 'small',\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n menuAlign: 'left',\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n };\n\n private theme!: Theme;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private rootSpan: Nullable<HTMLSpanElement>;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n width = this.theme.inputWidth,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span style={{ display: 'inline-block', width }} ref={this.refRootSpan}>\n <Input {...inputProps} />\n {this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const menuProps = {\n ref: this.refMenu,\n maxHeight: this.props.menuMaxHeight,\n hasShadow: this.props.hasShadow,\n width: this.props.menuWidth || (this.props.width && this.getInputWidth(this.rootSpan)),\n preventWindowScroll: this.props.preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <DropdownContainer\n offsetY={1}\n getParent={this.getAnchor}\n align={this.props.menuAlign}\n disablePortal={this.props.disablePortal}\n >\n <Menu {...menuProps}>\n {items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })}\n </Menu>\n </DropdownContainer>\n );\n }\n\n private getInputWidth = (target: Nullable<HTMLSpanElement>) => {\n if (target instanceof Element) {\n return target.getBoundingClientRect().width;\n }\n\n return 0;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return findDOMNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n this.blur();\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n const expectingId = (this.requestId += 1);\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Autocomplete.tsx"],"names":["React","PropTypes","ThemeContext","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","DropdownContainer","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","getRootNode","rootNode","match","pattern","items","Promise","resolve","toLowerCase","filteredItems","filter","item","includes","renderItem","Autocomplete","state","selected","focused","theme","opened","input","menu","rootSpan","requestId","getProps","defaultProps","setRootNode","renderMain","props","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","width","inputWidth","rest","inputProps","handleValueChange","handleKeyDown","handleFocus","ref","refInput","handleBlur","handleClickOutside","display","refRootSpan","renderMenu","getInputWidth","target","Element","getBoundingClientRect","value","fireChange","event","setState","blur","e","preventDefault","up","down","enter","getAnchor","el","refMenu","span","focus","componentDidUpdate","prevProps","updateItems","render","menuProps","maxHeight","menuWidth","length","map","i","handleMenuItemClick","handleItemClick","index","button","choose","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","propTypes","func","oneOfType","array","size"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport { Input, InputProps } from '../Input';\nimport { DropdownContainer } from '../../internal/DropdownContainer';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n pattern = pattern.toLowerCase();\n const filteredItems = items.filter((item) => item.toLowerCase().includes(pattern));\n return Promise.resolve(filteredItems);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Функция отрисовки элемента меню */\n renderItem: (item: string) => React.ReactNode;\n /** Промис, резолвящий элементы меню */\n source?: string[] | ((patter: string) => Promise<string[]>);\n /** Отключает использование портала */\n disablePortal: boolean;\n /** Отрисовка тени у выпадающего меню */\n hasShadow: boolean;\n /** Выравнивание выпадающего меню */\n menuAlign: 'left' | 'right';\n /** Максимальная высота меню */\n menuMaxHeight: number | string;\n /** Ширина меню */\n menuWidth?: number | string;\n /** Отключить скролл окна, когда меню открыто */\n preventWindowScroll: boolean;\n /** Вызывается при изменении `value` */\n onValueChange: (value: string) => void;\n /** onBlur */\n onBlur?: () => void;\n /** Размер инпута */\n size: InputProps['size'];\n /** value */\n value: string;\n }\n > {}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n}\n\n/**\n * Стандартный инпут с подсказками.\n *\n * Все свойства передаются во внутренний *Input*.\n */\n@rootNode\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n\n public static propTypes = {\n /**\n * Функция для отрисовки элемента в выпадающем списке. Единственный аргумент\n * — *item*.\n */\n renderItem: PropTypes.func,\n\n /**\n * Если передан массив, то совпадения ищутся по этому массиву.\n *\n * Если передается функция, то она должна возвращать thenable, который\n * резолвится уже отфильтрованным массивом. Возвращенный thenable может\n * иметь метод cancel, который будет вызван при отмене поиска (пользователь\n * изменил строку поиска, автокомплит потерял фокус).\n * ```\n * function(pattern) {\n * return service.findAll(pattern);\n * }\n * ```\n */\n source: PropTypes.oneOfType([PropTypes.array, PropTypes.func]),\n };\n\n public static defaultProps = {\n renderItem,\n size: 'small',\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n menuAlign: 'left',\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n };\n\n private theme!: Theme;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private rootSpan: Nullable<HTMLSpanElement>;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n width = this.theme.inputWidth,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span style={{ display: 'inline-block', width }} ref={this.refRootSpan}>\n <Input {...inputProps} />\n {this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const menuProps = {\n ref: this.refMenu,\n maxHeight: this.props.menuMaxHeight,\n hasShadow: this.props.hasShadow,\n width: this.props.menuWidth || (this.props.width && this.getInputWidth(this.rootSpan)),\n preventWindowScroll: this.props.preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <DropdownContainer\n offsetY={1}\n getParent={this.getAnchor}\n align={this.props.menuAlign}\n disablePortal={this.props.disablePortal}\n >\n <Menu {...menuProps}>\n {items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })}\n </Menu>\n </DropdownContainer>\n );\n }\n\n private getInputWidth = (target: Nullable<HTMLSpanElement>) => {\n if (target instanceof Element) {\n return target.getBoundingClientRect().width;\n }\n\n return 0;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n this.blur();\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n const expectingId = (this.requestId += 1);\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n}\n"]}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
3
|
+
|
|
4
|
+
var _class, _class2, _temp;
|
|
5
|
+
|
|
3
6
|
import React from 'react';
|
|
4
7
|
import { isIE11, isEdge } from "../../../lib/client";
|
|
5
8
|
import { keyListener } from "../../../lib/events/keyListener";
|
|
@@ -7,9 +10,10 @@ import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
|
7
10
|
import { Spinner } from "../../Spinner";
|
|
8
11
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
9
12
|
import { cx } from "../../../lib/theming/Emotion";
|
|
13
|
+
import { rootNode } from "../../../lib/rootNode";
|
|
10
14
|
import { styles, activeStyles, globalClasses } from "../Button.styles";
|
|
11
15
|
import { Corners } from "../Corners";
|
|
12
|
-
export var Button = /*#__PURE__*/function (_React$Component) {
|
|
16
|
+
export var Button = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
|
|
13
17
|
_inheritsLoose(Button, _React$Component);
|
|
14
18
|
|
|
15
19
|
function Button() {
|
|
@@ -25,6 +29,7 @@ export var Button = /*#__PURE__*/function (_React$Component) {
|
|
|
25
29
|
};
|
|
26
30
|
_this.theme = void 0;
|
|
27
31
|
_this.node = null;
|
|
32
|
+
_this.setRootNode = void 0;
|
|
28
33
|
|
|
29
34
|
_this.handleFocus = function (e) {
|
|
30
35
|
if (!_this.props.disabled && !_this.props.disableFocus) {
|
|
@@ -226,7 +231,9 @@ export var Button = /*#__PURE__*/function (_React$Component) {
|
|
|
226
231
|
arrowNode = null;
|
|
227
232
|
}
|
|
228
233
|
|
|
229
|
-
return /*#__PURE__*/React.createElement(CommonWrapper,
|
|
234
|
+
return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
|
|
235
|
+
rootNodeRef: this.setRootNode
|
|
236
|
+
}, this.props), /*#__PURE__*/React.createElement("span", wrapProps, /*#__PURE__*/React.createElement("button", _extends({
|
|
230
237
|
ref: this._ref
|
|
231
238
|
}, rootProps), outlineNode, loadingNode, arrowNode, /*#__PURE__*/React.createElement("div", {
|
|
232
239
|
className: cx(styles.caption(), globalClasses.caption, (_cx7 = {}, _cx7[styles.captionTranslated()] = active || checked, _cx7[styles.captionLink()] = isLink, _cx7[styles.captionDisabled()] = !checked && disabled, _cx7))
|
|
@@ -274,18 +281,14 @@ export var Button = /*#__PURE__*/function (_React$Component) {
|
|
|
274
281
|
};
|
|
275
282
|
|
|
276
283
|
return Button;
|
|
277
|
-
}(React.Component)
|
|
278
|
-
Button.__KONTUR_REACT_UI__ = 'Button';
|
|
279
|
-
Button.__BUTTON__ = true;
|
|
280
|
-
Button.TOP_LEFT = Corners.TOP_LEFT;
|
|
281
|
-
Button.TOP_RIGHT = Corners.TOP_RIGHT;
|
|
282
|
-
Button.BOTTOM_RIGHT = Corners.BOTTOM_RIGHT;
|
|
283
|
-
Button.BOTTOM_LEFT = Corners.BOTTOM_LEFT;
|
|
284
|
-
Button.defaultProps = {
|
|
284
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Button', _class2.__BUTTON__ = true, _class2.TOP_LEFT = Corners.TOP_LEFT, _class2.TOP_RIGHT = Corners.TOP_RIGHT, _class2.BOTTOM_RIGHT = Corners.BOTTOM_RIGHT, _class2.BOTTOM_LEFT = Corners.BOTTOM_LEFT, _class2.defaultProps = {
|
|
285
285
|
use: 'default',
|
|
286
286
|
size: 'small',
|
|
287
287
|
type: 'button'
|
|
288
|
-
};
|
|
288
|
+
}, _temp)) || _class;
|
|
289
289
|
export var isButton = function isButton(child) {
|
|
290
|
-
|
|
290
|
+
var _child$type; // @ts-ignore
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
return (child == null ? void 0 : (_child$type = child.type) == null ? void 0 : _child$type.__KONTUR_REACT_UI__) === 'Button';
|
|
291
294
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Button.tsx"],"names":["React","isIE11","isEdge","keyListener","ThemeContext","Spinner","CommonWrapper","cx","styles","activeStyles","globalClasses","Corners","Button","state","focusedByTab","theme","node","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","renderMain","corners","active","borderless","checked","error","warning","arrow","narrow","icon","_noPadding","_noRightPadding","use","defaultProps","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onClick","width","children","sizeClass","getSizeClassName","isFocused","isLink","rootProps","type","className","root","checkedDisabled","noPadding","noRightPadding","style","borderTopLeftRadius","TOP_LEFT","undefined","borderTopRightRadius","TOP_RIGHT","borderBottomRightRadius","BOTTOM_RIGHT","borderBottomLeftRadius","BOTTOM_LEFT","textAlign","tabIndex","title","wrapProps","wrap","wrapArrow","wrapArrowLeft","outlineNode","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","loadingNode","getLoadingSpinner","iconNode","getSizeIconClassName","iconNoRightPadding","iconLink","arrowNode","arrowWarning","arrowError","arrowFocus","arrowLeft","arrowHelper","arrowHelperTop","arrowHelperBottom","link","linkFocus","linkDisabled","Object","assign","wrapLink","caption","captionTranslated","captionLink","captionDisabled","visibilityHidden","size","sizeLarge","sizeLargeIE11","sizeMedium","sizeMediumIE11","sizeSmall","sizeSmallIE11","iconLarge","iconMedium","iconSmall","Component","__KONTUR_REACT_UI__","__BUTTON__","isButton","child","isValidElement","prototype","hasOwnProperty","call"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { Corners } from './Corners';\n\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link';\n\nexport interface ButtonProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: number;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement<any>;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: ButtonSize;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static __BUTTON__ = true;\n public static TOP_LEFT = Corners.TOP_LEFT;\n public static TOP_RIGHT = Corners.TOP_RIGHT;\n public static BOTTOM_RIGHT = Corners.BOTTOM_RIGHT;\n public static BOTTOM_LEFT = Corners.BOTTOM_LEFT;\n\n public static defaultProps = {\n use: 'default' as ButtonUse,\n size: 'small' as ButtonSize,\n type: 'button' as ButtonType,\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLButtonElement | null = null;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n corners = 0,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n arrow,\n narrow,\n icon,\n _noPadding,\n _noRightPadding,\n use = Button.defaultProps.use,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onClick,\n width,\n children,\n } = this.props;\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const rootProps = {\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: this.props.type,\n className: cx({\n [styles.root(this.theme)]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused && !checked,\n [styles.checked(this.theme)]: checked,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n }),\n style: {\n borderTopLeftRadius: corners & Corners.TOP_LEFT ? 0 : undefined,\n borderTopRightRadius: corners & Corners.TOP_RIGHT ? 0 : undefined,\n borderBottomRightRadius: corners & Corners.BOTTOM_RIGHT ? 0 : undefined,\n borderBottomLeftRadius: corners & Corners.BOTTOM_LEFT ? 0 : undefined,\n textAlign: align,\n },\n disabled: disabled || loading,\n onClick: onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown: onKeyDown,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseOver: onMouseOver,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: cx({\n [styles.wrap()]: true,\n [styles.wrapArrow()]: arrow === true,\n [styles.wrapArrowLeft()]: arrow === 'left',\n }),\n style: {\n width: width,\n },\n };\n\n let outlineNode = null;\n if (!isFocused || isLink) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n let loadingNode = null;\n if (loading && !icon) {\n loadingNode = <div className={styles.loading()}>{this.getLoadingSpinner()}</div>;\n }\n\n let iconNode = null;\n if (icon) {\n iconNode = (\n <span\n className={cx(styles.icon(), this.getSizeIconClassName(), {\n [styles.iconNoRightPadding()]: !children,\n [styles.iconLink(this.theme)]: isLink,\n })}\n >\n {loading ? this.getLoadingSpinner() : icon}\n </span>\n );\n }\n\n let arrowNode = null;\n if (arrow) {\n arrowNode = (\n <div\n className={cx({\n [styles.arrow()]: true,\n [styles.arrowWarning(this.theme)]: !checked && warning,\n [styles.arrowError(this.theme)]: !checked && error,\n [styles.arrowFocus(this.theme)]: !checked && isFocused,\n [styles.arrowLeft()]: arrow === 'left',\n })}\n >\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperTop)} />\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperBottom)} />\n </div>\n );\n }\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n arrowNode = null;\n }\n\n return (\n <CommonWrapper {...this.props}>\n <span {...wrapProps}>\n <button ref={this._ref} {...rootProps}>\n {outlineNode}\n {loadingNode}\n {arrowNode}\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: active || checked,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {iconNode}\n <span className={cx({ [styles.visibilityHidden()]: !!loadingNode })}>{children}</span>\n </div>\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private getLoadingSpinner() {\n return <Spinner caption={null} dimmed type=\"mini\" />;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), { [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), { [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), { [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge });\n }\n }\n\n private getSizeIconClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = (child: React.ReactChild): child is React.ReactElement<ButtonProps> => {\n return React.isValidElement<ButtonProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__BUTTON__')\n : false;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["Button.tsx"],"names":["React","isIE11","isEdge","keyListener","ThemeContext","Spinner","CommonWrapper","cx","rootNode","styles","activeStyles","globalClasses","Corners","Button","state","focusedByTab","theme","node","setRootNode","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","renderMain","corners","active","borderless","checked","error","warning","arrow","narrow","icon","_noPadding","_noRightPadding","use","defaultProps","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onClick","width","children","sizeClass","getSizeClassName","isFocused","isLink","rootProps","type","className","root","checkedDisabled","noPadding","noRightPadding","style","borderTopLeftRadius","TOP_LEFT","undefined","borderTopRightRadius","TOP_RIGHT","borderBottomRightRadius","BOTTOM_RIGHT","borderBottomLeftRadius","BOTTOM_LEFT","textAlign","tabIndex","title","wrapProps","wrap","wrapArrow","wrapArrowLeft","outlineNode","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","loadingNode","getLoadingSpinner","iconNode","getSizeIconClassName","iconNoRightPadding","iconLink","arrowNode","arrowWarning","arrowError","arrowFocus","arrowLeft","arrowHelper","arrowHelperTop","arrowHelperBottom","link","linkFocus","linkDisabled","Object","assign","wrapLink","caption","captionTranslated","captionLink","captionDisabled","visibilityHidden","size","sizeLarge","sizeLargeIE11","sizeMedium","sizeMediumIE11","sizeSmall","sizeSmallIE11","iconLarge","iconMedium","iconSmall","Component","__KONTUR_REACT_UI__","__BUTTON__","isButton","child"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { Corners } from './Corners';\n\nexport type ButtonSize = 'small' | 'medium' | 'large';\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link';\n\nexport interface ButtonProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: number;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement<any>;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: ButtonSize;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static __BUTTON__ = true;\n public static TOP_LEFT = Corners.TOP_LEFT;\n public static TOP_RIGHT = Corners.TOP_RIGHT;\n public static BOTTOM_RIGHT = Corners.BOTTOM_RIGHT;\n public static BOTTOM_LEFT = Corners.BOTTOM_LEFT;\n\n public static defaultProps = {\n use: 'default' as ButtonUse,\n size: 'small' as ButtonSize,\n type: 'button' as ButtonType,\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n corners = 0,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n arrow,\n narrow,\n icon,\n _noPadding,\n _noRightPadding,\n use = Button.defaultProps.use,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onClick,\n width,\n children,\n } = this.props;\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const rootProps = {\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: this.props.type,\n className: cx({\n [styles.root(this.theme)]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused && !checked,\n [styles.checked(this.theme)]: checked,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n }),\n style: {\n borderTopLeftRadius: corners & Corners.TOP_LEFT ? 0 : undefined,\n borderTopRightRadius: corners & Corners.TOP_RIGHT ? 0 : undefined,\n borderBottomRightRadius: corners & Corners.BOTTOM_RIGHT ? 0 : undefined,\n borderBottomLeftRadius: corners & Corners.BOTTOM_LEFT ? 0 : undefined,\n textAlign: align,\n },\n disabled: disabled || loading,\n onClick: onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown: onKeyDown,\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onMouseOver: onMouseOver,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: cx({\n [styles.wrap()]: true,\n [styles.wrapArrow()]: arrow === true,\n [styles.wrapArrowLeft()]: arrow === 'left',\n }),\n style: {\n width: width,\n },\n };\n\n let outlineNode = null;\n if (!isFocused || isLink) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n let loadingNode = null;\n if (loading && !icon) {\n loadingNode = <div className={styles.loading()}>{this.getLoadingSpinner()}</div>;\n }\n\n let iconNode = null;\n if (icon) {\n iconNode = (\n <span\n className={cx(styles.icon(), this.getSizeIconClassName(), {\n [styles.iconNoRightPadding()]: !children,\n [styles.iconLink(this.theme)]: isLink,\n })}\n >\n {loading ? this.getLoadingSpinner() : icon}\n </span>\n );\n }\n\n let arrowNode = null;\n if (arrow) {\n arrowNode = (\n <div\n className={cx({\n [styles.arrow()]: true,\n [styles.arrowWarning(this.theme)]: !checked && warning,\n [styles.arrowError(this.theme)]: !checked && error,\n [styles.arrowFocus(this.theme)]: !checked && isFocused,\n [styles.arrowLeft()]: arrow === 'left',\n })}\n >\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperTop)} />\n <div className={cx(globalClasses.arrowHelper, globalClasses.arrowHelperBottom)} />\n </div>\n );\n }\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n arrowNode = null;\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps}>\n <button ref={this._ref} {...rootProps}>\n {outlineNode}\n {loadingNode}\n {arrowNode}\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: active || checked,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {iconNode}\n <span className={cx({ [styles.visibilityHidden()]: !!loadingNode })}>{children}</span>\n </div>\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private getLoadingSpinner() {\n return <Spinner caption={null} dimmed type=\"mini\" />;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), { [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), { [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), { [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge });\n }\n }\n\n private getSizeIconClassName() {\n switch (this.props.size) {\n case 'large':\n return styles.iconLarge(this.theme);\n case 'medium':\n return styles.iconMedium(this.theme);\n case 'small':\n default:\n return styles.iconSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = (child: React.ReactChild): child is React.ReactElement<ButtonProps> => {\n // @ts-ignore\n return child?.type?.__KONTUR_REACT_UI__ === 'Button';\n};\n"]}
|
|
@@ -136,6 +136,7 @@ export declare class Button extends React.Component<ButtonProps, ButtonState> {
|
|
|
136
136
|
};
|
|
137
137
|
private theme;
|
|
138
138
|
private node;
|
|
139
|
+
private setRootNode;
|
|
139
140
|
componentDidMount(): void;
|
|
140
141
|
static getDerivedStateFromProps(props: ButtonProps): {
|
|
141
142
|
focusedByTab: boolean;
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
4
|
+
|
|
5
|
+
var _class, _class2, _temp;
|
|
6
|
+
|
|
4
7
|
import React from 'react';
|
|
5
8
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
6
9
|
import { cx } from "../../../lib/theming/Emotion";
|
|
10
|
+
import { rootNode } from "../../../lib/rootNode";
|
|
7
11
|
import { styles } from "../Center.styles";
|
|
12
|
+
export
|
|
8
13
|
/**
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
export var Center = /*#__PURE__*/function (_React$Component) {
|
|
14
|
+
* Контейнер, который центрирует элементы внутри себя.
|
|
15
|
+
*/
|
|
16
|
+
var Center = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
|
|
13
17
|
_inheritsLoose(Center, _React$Component);
|
|
14
18
|
|
|
15
19
|
function Center() {
|
|
@@ -20,6 +24,7 @@ export var Center = /*#__PURE__*/function (_React$Component) {
|
|
|
20
24
|
}
|
|
21
25
|
|
|
22
26
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
27
|
+
_this.setRootNode = void 0;
|
|
23
28
|
|
|
24
29
|
_this.renderMain = function (props) {
|
|
25
30
|
var _cx;
|
|
@@ -42,12 +47,12 @@ export var Center = /*#__PURE__*/function (_React$Component) {
|
|
|
42
47
|
var _proto = Center.prototype;
|
|
43
48
|
|
|
44
49
|
_proto.render = function render() {
|
|
45
|
-
return /*#__PURE__*/React.createElement(CommonWrapper,
|
|
50
|
+
return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
|
|
51
|
+
rootNodeRef: this.setRootNode
|
|
52
|
+
}, this.props), this.renderMain);
|
|
46
53
|
};
|
|
47
54
|
|
|
48
55
|
return Center;
|
|
49
|
-
}(React.Component)
|
|
50
|
-
Center.__KONTUR_REACT_UI__ = 'Center';
|
|
51
|
-
Center.defaultProps = {
|
|
56
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Center', _class2.defaultProps = {
|
|
52
57
|
align: 'center'
|
|
53
|
-
};
|
|
58
|
+
}, _temp)) || _class;
|