@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
|
@@ -6,8 +6,9 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
|
6
6
|
|
|
7
7
|
var _CommonWrapper = require("../../internal/CommonWrapper");
|
|
8
8
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
9
|
+
var _rootNodeDecorator = require("../../lib/rootNode/rootNodeDecorator");
|
|
9
10
|
|
|
10
|
-
var _MenuItem = require("./MenuItem.styles");
|
|
11
|
+
var _MenuItem = require("./MenuItem.styles");var _class, _class2, _temp;
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
|
|
@@ -79,7 +80,8 @@ var _MenuItem = require("./MenuItem.styles");
|
|
|
79
80
|
*
|
|
80
81
|
* Сущности в которых может быть использован `MenuItem`: [`DropdownMenu`](#/Components/DropdownMenu), [`Kebab`](#/Components/Kebab), [`TooltipMenu`](#/Components/TooltipMenu) и [`Select`](#/Components/Select).
|
|
81
82
|
*/var
|
|
82
|
-
|
|
83
|
+
|
|
84
|
+
MenuItem = (0, _rootNodeDecorator.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(MenuItem, _React$Component);function MenuItem() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
83
85
|
|
|
84
86
|
|
|
85
87
|
|
|
@@ -103,6 +105,11 @@ MenuItem = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default
|
|
|
103
105
|
|
|
104
106
|
theme = void 0;_this.
|
|
105
107
|
mouseEntered = false;_this.
|
|
108
|
+
setRootNode = void 0;_this.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
106
113
|
|
|
107
114
|
|
|
108
115
|
|
|
@@ -203,11 +210,10 @@ MenuItem = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default
|
|
|
203
210
|
}
|
|
204
211
|
|
|
205
212
|
return 'button';
|
|
206
|
-
};return _this;}var _proto = MenuItem.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this2.props, _this2.renderMain);});};return MenuItem;}(_react.default.Component)
|
|
213
|
+
};return _this;}var _proto = MenuItem.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});};return MenuItem;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'MenuItem', _class2.__MENU_ITEM__ = true, _class2.propTypes = { comment: _propTypes.default.node, disabled: _propTypes.default.bool, href: _propTypes.default.string, icon: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node]), loose: _propTypes.default.bool, state: _propTypes.default.string, target: _propTypes.default.string, onClick: _propTypes.default.func }, _temp)) || _class;exports.MenuItem = MenuItem;
|
|
207
214
|
|
|
208
215
|
|
|
209
|
-
var isMenuItem = function isMenuItem(child) {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
false;
|
|
216
|
+
var isMenuItem = function isMenuItem(child) {var _child$type;
|
|
217
|
+
// @ts-ignore
|
|
218
|
+
return (child == null ? void 0 : (_child$type = child.type) == null ? void 0 : _child$type.__KONTUR_REACT_UI__) === 'MenuItem';
|
|
213
219
|
};exports.isMenuItem = isMenuItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MenuItem.tsx"],"names":["MenuItem","theme","mouseEntered","renderMain","props","link","comment","icon","loose","state","_enableIconPadding","component","onMouseEnter","onMouseLeave","rest","hover","disabled","iconElement","styles","className","root","selected","withIcon","Boolean","children","content","Component","getComponent","handleMouseEnterFix","handleMouseLeave","commentHover","e","href","render","React","__KONTUR_REACT_UI__","__MENU_ITEM__","propTypes","PropTypes","node","bool","string","oneOfType","target","onClick","func","isMenuItem","child","isValidElement","Object","prototype","hasOwnProperty","call","type"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps extends CommonProps {\n /**\n * @ignore\n */\n _enableIconPadding?: boolean;\n /**\n * Добавляет описание для элемента меню.\n */\n comment?: React.ReactNode;\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет элементу меню иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Меняет цвет текста на синий.\n */\n link?: boolean;\n /**\n * @ignore\n */\n loose?: boolean;\n /**\n * @ignore\n */\n state?: MenuItemState;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n /**\n * HTML-атрибут `target`.\n */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут `title`.\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n /**\n * HTML-атрибут `href`.\n */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n /**\n * Заменяет корневой элемент, на компонент переданный в проп.\n *\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`.\n */\n component?: React.ComponentType<any>;\n}\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [`DropdownMenu`](#/Components/DropdownMenu), [`Kebab`](#/Components/Kebab), [`TooltipMenu`](#/Components/TooltipMenu) и [`Select`](#/Components/Select).\n */\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\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\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const { link, comment, icon, loose, state, _enableIconPadding, component, onMouseEnter, onMouseLeave, ...rest } =\n props;\n\n const hover = state === 'hover' && !this.props.disabled;\n\n let iconElement = null;\n if (icon) {\n iconElement = <div className={styles.icon(this.theme)}>{icon}</div>;\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: hover,\n [styles.selected(this.theme)]: state === 'selected',\n [styles.link(this.theme)]: !!link,\n [styles.withIcon(this.theme)]: Boolean(iconElement) || !!_enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n {...rest}\n state={state}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n className={className}\n tabIndex={-1}\n >\n {iconElement}\n {content}\n {this.props.comment && (\n <div\n data-tid=\"MenuItem__comment\"\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: hover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered && this.props.onMouseEnter) {\n this.mouseEntered = true;\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (disabled) {\n return 'button';\n }\n\n if (component) {\n return component;\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n}\n\nexport const isMenuItem = (child: React.ReactNode): child is React.ReactElement<MenuItemProps> => {\n return React.isValidElement<MenuItemProps>(child)\n ? Object.prototype.hasOwnProperty.call(child.type, '__MENU_ITEM__')\n : false;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["MenuItem.tsx"],"names":["MenuItem","rootNode","theme","mouseEntered","setRootNode","renderMain","props","link","comment","icon","loose","state","_enableIconPadding","component","onMouseEnter","onMouseLeave","rest","hover","disabled","iconElement","styles","className","root","selected","withIcon","Boolean","children","content","Component","getComponent","handleMouseEnterFix","handleMouseLeave","commentHover","e","href","render","React","__KONTUR_REACT_UI__","__MENU_ITEM__","propTypes","PropTypes","node","bool","string","oneOfType","target","onClick","func","isMenuItem","child","type"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isFunction } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode/rootNodeDecorator';\n\nimport { styles } from './MenuItem.styles';\n\nexport type MenuItemState = null | 'hover' | 'selected' | void;\n\nexport interface MenuItemProps extends CommonProps {\n /**\n * @ignore\n */\n _enableIconPadding?: boolean;\n /**\n * Добавляет описание для элемента меню.\n */\n comment?: React.ReactNode;\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет элементу меню иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Меняет цвет текста на синий.\n */\n link?: boolean;\n /**\n * @ignore\n */\n loose?: boolean;\n /**\n * @ignore\n */\n state?: MenuItemState;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler;\n children?: React.ReactNode | ((state: MenuItemState) => React.ReactNode);\n /**\n * HTML-атрибут `target`.\n */\n target?: React.AnchorHTMLAttributes<HTMLAnchorElement>['target'];\n /**\n * HTML-атрибут `title`.\n */\n title?: React.AnchorHTMLAttributes<HTMLAnchorElement>['title'];\n /**\n * HTML-атрибут `href`.\n */\n href?: React.AnchorHTMLAttributes<HTMLAnchorElement>['href'];\n /**\n * Заменяет корневой элемент, на компонент переданный в проп.\n *\n * По умолчанию корневой элемент рендерится как `button`. <br />Если передан `href`, то вместо `button` рендерится `a`.\n */\n component?: React.ComponentType<any>;\n}\n\n/**\n *\n * `MenuItem` - это вложенный компонент, задающий базовые стили для элемента меню и позволяющий навигироваться по элементам меню с помощью клавиатуры.\n *\n * Сущности в которых может быть использован `MenuItem`: [`DropdownMenu`](#/Components/DropdownMenu), [`Kebab`](#/Components/Kebab), [`TooltipMenu`](#/Components/TooltipMenu) и [`Select`](#/Components/Select).\n */\n@rootNode\nexport class MenuItem extends React.Component<MenuItemProps> {\n public static __KONTUR_REACT_UI__ = 'MenuItem';\n public static __MENU_ITEM__ = true;\n\n public static propTypes = {\n comment: PropTypes.node,\n\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n\n loose: PropTypes.bool,\n\n state: PropTypes.string,\n\n target: PropTypes.string,\n\n onClick: PropTypes.func,\n };\n\n private theme!: Theme;\n private mouseEntered = false;\n private setRootNode!: TSetRootNode;\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\n private renderMain = (props: CommonWrapperRestProps<MenuItemProps>) => {\n const { link, comment, icon, loose, state, _enableIconPadding, component, onMouseEnter, onMouseLeave, ...rest } =\n props;\n\n const hover = state === 'hover' && !this.props.disabled;\n\n let iconElement = null;\n if (icon) {\n iconElement = <div className={styles.icon(this.theme)}>{icon}</div>;\n }\n\n const className = cx({\n [styles.root(this.theme)]: true,\n [styles.loose()]: !!loose,\n [styles.hover(this.theme)]: hover,\n [styles.selected(this.theme)]: state === 'selected',\n [styles.link(this.theme)]: !!link,\n [styles.withIcon(this.theme)]: Boolean(iconElement) || !!_enableIconPadding,\n [styles.disabled(this.theme)]: !!this.props.disabled,\n });\n\n const { children } = this.props;\n\n let content = children;\n if (isFunction(children)) {\n content = children(this.props.state);\n }\n\n const Component = this.getComponent();\n\n return (\n <Component\n {...rest}\n state={state}\n onMouseOver={this.handleMouseEnterFix}\n onMouseLeave={this.handleMouseLeave}\n className={className}\n tabIndex={-1}\n >\n {iconElement}\n {content}\n {this.props.comment && (\n <div\n data-tid=\"MenuItem__comment\"\n className={cx({\n [styles.comment(this.theme)]: true,\n [styles.commentHover(this.theme)]: hover,\n })}\n >\n {comment}\n </div>\n )}\n </Component>\n );\n };\n\n // https://github.com/facebook/react/issues/10109\n // Mouseenter event not triggered when cursor moves from disabled button\n private handleMouseEnterFix = (e: React.MouseEvent<HTMLElement>) => {\n if (!this.mouseEntered && this.props.onMouseEnter) {\n this.mouseEntered = true;\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: React.MouseEvent<HTMLElement>) => {\n this.mouseEntered = false;\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private getComponent = () => {\n const { disabled, component, href } = this.props;\n\n if (disabled) {\n return 'button';\n }\n\n if (component) {\n return component;\n }\n\n if (href) {\n return 'a';\n }\n\n return 'button';\n };\n}\n\nexport const isMenuItem = (child: React.ReactNode): child is React.ReactElement<MenuItemProps> => {\n // @ts-ignore\n return child?.type?.__KONTUR_REACT_UI__ === 'MenuItem';\n};\n"]}
|
|
@@ -300,5 +300,5 @@ Modal = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(M
|
|
|
300
300
|
|
|
301
301
|
setHasPanel = function (hasPanel) {if (hasPanel === void 0) {hasPanel = false;}
|
|
302
302
|
_this.state.hasPanel !== hasPanel && _this.setState({ hasPanel: hasPanel });
|
|
303
|
-
};return _this;}var _proto = Modal.prototype;_proto.componentDidMount = function componentDidMount() {this.stackSubscription = _ModalStack.ModalStack.add(this, this.handleStackChange);if (mountedModalsCount === 0) {window.addEventListener('resize', this.checkHorizontalScrollAppearance);}mountedModalsCount++;window.addEventListener('keydown', this.handleKeyDown);this.checkHorizontalScrollAppearance();if (this.containerNode) {this.containerNode.addEventListener('scroll', LayoutEvents.emit);}};_proto.componentWillUnmount = function componentWillUnmount() {if (--mountedModalsCount === 0) {window.removeEventListener('resize', this.checkHorizontalScrollAppearance);LayoutEvents.emit();}window.removeEventListener('keydown', this.handleKeyDown);if (this.stackSubscription != null) {this.stackSubscription.remove();}_ModalStack.ModalStack.remove(this);if (this.containerNode) {this.containerNode.removeEventListener('scroll', LayoutEvents.emit);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx;var _this$state = this.state,hasHeader = _this$state.hasHeader,hasFooter = _this$state.hasFooter,hasPanel = _this$state.hasPanel;var modalContextProps = { hasHeader: hasHeader, horizontalScroll: this.state.horizontalScroll, setHasHeader: this.setHasHeader, setHasFooter: this.setHasFooter, setHasPanel: this.setHasPanel };if (hasHeader && !this.props.noClose) {modalContextProps.close = { disableClose: this.props.disableClose, requestClose: this.requestClose };}if (!hasFooter) {modalContextProps.additionalPadding = true;}if (hasFooter && hasPanel) {modalContextProps.additionalPadding = true;}var style = {};var containerStyle = {};if (this.props.width) {style.width = this.props.width;} else {containerStyle.width = 'auto';}return /*#__PURE__*/_react.default.createElement(
|
|
303
|
+
};return _this;}var _proto = Modal.prototype;_proto.componentDidMount = function componentDidMount() {this.stackSubscription = _ModalStack.ModalStack.add(this, this.handleStackChange);if (mountedModalsCount === 0) {window.addEventListener('resize', this.checkHorizontalScrollAppearance);}mountedModalsCount++;window.addEventListener('keydown', this.handleKeyDown);this.checkHorizontalScrollAppearance();if (this.containerNode) {this.containerNode.addEventListener('scroll', LayoutEvents.emit);}};_proto.componentWillUnmount = function componentWillUnmount() {if (--mountedModalsCount === 0) {window.removeEventListener('resize', this.checkHorizontalScrollAppearance);LayoutEvents.emit();}window.removeEventListener('keydown', this.handleKeyDown);if (this.stackSubscription != null) {this.stackSubscription.remove();}_ModalStack.ModalStack.remove(this);if (this.containerNode) {this.containerNode.removeEventListener('scroll', LayoutEvents.emit);}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx;var _this$state = this.state,hasHeader = _this$state.hasHeader,hasFooter = _this$state.hasFooter,hasPanel = _this$state.hasPanel;var modalContextProps = { hasHeader: hasHeader, horizontalScroll: this.state.horizontalScroll, setHasHeader: this.setHasHeader, setHasFooter: this.setHasFooter, setHasPanel: this.setHasPanel };if (hasHeader && !this.props.noClose) {modalContextProps.close = { disableClose: this.props.disableClose, requestClose: this.requestClose };}if (!hasFooter) {modalContextProps.additionalPadding = true;}if (hasFooter && hasPanel) {modalContextProps.additionalPadding = true;}var style = {};var containerStyle = {};if (this.props.width) {style.width = this.props.width;} else {containerStyle.width = 'auto';}return /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'Modal', className: _Modal.styles.root() }, /*#__PURE__*/_react.default.createElement(_HideBodyVerticalScroll.HideBodyVerticalScroll, null), this.state.hasBackground && /*#__PURE__*/_react.default.createElement("div", { className: _Modal.styles.bg(this.theme) }), /*#__PURE__*/_react.default.createElement("div", { ref: this.refContainer, className: _Modal.styles.container(), onMouseDown: this.handleContainerMouseDown, onMouseUp: this.handleContainerMouseUp, onClick: this.handleContainerClick, "data-tid": "modal-container" }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx = {}, _cx[_Modal.styles.centerContainer(this.theme)] = true, _cx[_Modal.styles.alignTop()] = Boolean(this.props.alignTop), _cx)), style: containerStyle, "data-tid": "modal-content" }, /*#__PURE__*/_react.default.createElement("div", { className: _Modal.styles.window(this.theme), style: style }, /*#__PURE__*/_react.default.createElement(_ResizeDetector.ResizeDetector, { onResize: this.handleResize }, /*#__PURE__*/_react.default.createElement(_reactFocusLock.default, { disabled: this.props.disableFocusLock, autoFocus: false }, !hasHeader && !this.props.noClose ? /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { priority: 'ModalCross', className: _Modal.styles.closeWrapper(this.theme) }, /*#__PURE__*/_react.default.createElement(_ModalClose.ModalClose, { requestClose: this.requestClose, disableClose: this.props.disableClose })) : null, /*#__PURE__*/_react.default.createElement(_ModalContext.ModalContext.Provider, { value: modalContextProps }, this.props.children)))))))));};return Modal;}(_react.default.Component);exports.Modal = Modal;Modal.__KONTUR_REACT_UI__ = 'Modal';Modal.Header = _ModalHeader.ModalHeader;Modal.Body = _ModalBody.ModalBody;Modal.Footer = _ModalFooter.ModalFooter;Modal.defaultProps = { // NOTE: в ie нормально не работает
|
|
304
304
|
disableFocusLock: _client.isIE11 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Modal.tsx"],"names":["mountedModalsCount","Modal","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","theme","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","handleResize","LayoutEvents","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","window","addEventListener","componentWillUnmount","removeEventListener","remove","render","renderMain","modalContextProps","noClose","close","additionalPadding","style","containerStyle","width","styles","root","bg","container","centerContainer","alignTop","Boolean","disableFocusLock","closeWrapper","children","React","Component","__KONTUR_REACT_UI__","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter","defaultProps","isIE11"],"mappings":"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","sourcesContent":["import React from 'react';\nimport FocusLock from 'react-focus-lock';\n\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps extends CommonProps {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонет нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n };\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n window.addEventListener('resize', this.checkHorizontalScrollAppearance);\n }\n\n mountedModalsCount++;\n window.addEventListener('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n window.removeEventListener('resize', this.checkHorizontalScrollAppearance);\n LayoutEvents.emit();\n }\n\n window.removeEventListener('keydown', this.handleKeyDown);\n if (this.stackSubscription != null) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\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 { hasHeader, hasFooter, hasPanel } = this.state;\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (hasHeader && !this.props.noClose) {\n modalContextProps.close = {\n disableClose: this.props.disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (this.props.width) {\n style.width = this.props.width;\n } else {\n containerStyle.width = 'auto';\n }\n\n return (\n <CommonWrapper {...this.props}>\n <RenderContainer>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && <div className={styles.bg(this.theme)} />}\n <div\n ref={this.refContainer}\n className={styles.container()}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid=\"modal-container\"\n >\n <div\n className={cx({\n [styles.centerContainer(this.theme)]: true,\n [styles.alignTop()]: Boolean(this.props.alignTop),\n })}\n style={containerStyle}\n data-tid=\"modal-content\"\n >\n <div className={styles.window(this.theme)} style={style}>\n <ResizeDetector onResize={this.handleResize}>\n <FocusLock disabled={this.props.disableFocusLock} autoFocus={false}>\n {!hasHeader && !this.props.noClose ? (\n <ZIndex priority={'ModalCross'} className={styles.closeWrapper(this.theme)}>\n <ModalClose requestClose={this.requestClose} disableClose={this.props.disableClose} />\n </ZIndex>\n ) : null}\n <ModalContext.Provider value={modalContextProps}>{this.props.children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n </ZIndex>\n </RenderContainer>\n </CommonWrapper>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: ReadonlyArray<React.Component>) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private handleResize = (event: UIEvent) => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Modal.tsx"],"names":["mountedModalsCount","Modal","state","stackPosition","hasBackground","horizontalScroll","hasHeader","hasFooter","hasPanel","theme","stackSubscription","containerNode","mouseDownTarget","mouseUpTarget","requestClose","props","disableClose","onClose","refContainer","center","handleStackChange","stack","setState","indexOf","ModalStack","isBlocking","handleContainerMouseDown","event","target","handleContainerMouseUp","handleContainerClick","ignoreBackgroundClick","currentTarget","handleKeyDown","e","checkHorizontalScrollAppearance","hasScroll","containerClientWidth","clientWidth","containerScrollWidth","scrollWidth","handleResize","LayoutEvents","emit","setHasHeader","setHasFooter","setHasPanel","componentDidMount","add","window","addEventListener","componentWillUnmount","removeEventListener","remove","render","renderMain","modalContextProps","noClose","close","additionalPadding","style","containerStyle","width","styles","root","bg","container","centerContainer","alignTop","Boolean","disableFocusLock","closeWrapper","children","React","Component","__KONTUR_REACT_UI__","Header","ModalHeader","Body","ModalBody","Footer","ModalFooter","defaultProps","isIE11"],"mappings":"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","sourcesContent":["import React from 'react';\nimport FocusLock from 'react-focus-lock';\n\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport { ModalStack, ModalStackSubscription } from '../../lib/ModalStack';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { ModalContext, ModalContextProps } from './ModalContext';\nimport { ModalFooter } from './ModalFooter';\nimport { ModalHeader } from './ModalHeader';\nimport { ModalBody } from './ModalBody';\nimport { ModalClose } from './ModalClose';\nimport { styles } from './Modal.styles';\n\nlet mountedModalsCount = 0;\n\nexport interface ModalProps extends CommonProps {\n /**\n * Отключает событие onClose, также дизейблит кнопку закрытия модалки\n */\n disableClose?: boolean;\n\n /**\n * Выравнивание окна по верху страницы.\n */\n alignTop?: boolean;\n\n /**\n * Не закрывать окно при клике на фон.\n */\n ignoreBackgroundClick?: boolean;\n\n /**\n * Не показывать крестик для закрытия окна.\n */\n noClose?: boolean;\n width?: number | string;\n\n /**\n * Вызывается, когда пользователь запросил закрытие окна (нажал на фон, на\n * Escape или на крестик).\n */\n onClose?: () => void;\n\n /**\n * Не использовать фокус-лок внутри модалки.\n * По умолчанию true для IE11.\n */\n disableFocusLock?: boolean;\n}\n\nexport interface ModalState {\n stackPosition: number;\n hasBackground: boolean;\n horizontalScroll: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\n/**\n * Модальное окно\n *\n * Содержит в себе три компоненты: **Modal.Header**,\n * **Modal.Body** и **Modal.Footer**\n *\n * Для отображения серой плашки в футере в компонент\n * **Footer** необходимо передать пропс **panel**\n *\n * Для отключения прилипания шапки и футера\n * в соответствующий компонет нужно передать\n * проп **sticky** со значением **false**\n * (по-умолчанию прилипание включено)\n */\nexport class Modal extends React.Component<ModalProps, ModalState> {\n public static __KONTUR_REACT_UI__ = 'Modal';\n\n public static Header = ModalHeader;\n public static Body = ModalBody;\n public static Footer = ModalFooter;\n\n public static defaultProps = {\n // NOTE: в ie нормально не работает\n disableFocusLock: isIE11,\n };\n\n public state: ModalState = {\n stackPosition: 0,\n hasBackground: true,\n horizontalScroll: false,\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private containerNode: HTMLDivElement | null = null;\n private mouseDownTarget: EventTarget | null = null;\n private mouseUpTarget: EventTarget | null = null;\n\n public componentDidMount() {\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n\n if (mountedModalsCount === 0) {\n window.addEventListener('resize', this.checkHorizontalScrollAppearance);\n }\n\n mountedModalsCount++;\n window.addEventListener('keydown', this.handleKeyDown);\n this.checkHorizontalScrollAppearance();\n\n if (this.containerNode) {\n this.containerNode.addEventListener('scroll', LayoutEvents.emit);\n }\n }\n\n public componentWillUnmount() {\n if (--mountedModalsCount === 0) {\n window.removeEventListener('resize', this.checkHorizontalScrollAppearance);\n LayoutEvents.emit();\n }\n\n window.removeEventListener('keydown', this.handleKeyDown);\n if (this.stackSubscription != null) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n\n if (this.containerNode) {\n this.containerNode.removeEventListener('scroll', LayoutEvents.emit);\n }\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 { hasHeader, hasFooter, hasPanel } = this.state;\n\n const modalContextProps: ModalContextProps = {\n hasHeader,\n horizontalScroll: this.state.horizontalScroll,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n if (hasHeader && !this.props.noClose) {\n modalContextProps.close = {\n disableClose: this.props.disableClose,\n requestClose: this.requestClose,\n };\n }\n if (!hasFooter) {\n modalContextProps.additionalPadding = true;\n }\n if (hasFooter && hasPanel) {\n modalContextProps.additionalPadding = true;\n }\n\n const style: { width?: number | string } = {};\n const containerStyle: { width?: number | string } = {};\n\n if (this.props.width) {\n style.width = this.props.width;\n } else {\n containerStyle.width = 'auto';\n }\n\n return (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex priority={'Modal'} className={styles.root()}>\n <HideBodyVerticalScroll />\n {this.state.hasBackground && <div className={styles.bg(this.theme)} />}\n <div\n ref={this.refContainer}\n className={styles.container()}\n onMouseDown={this.handleContainerMouseDown}\n onMouseUp={this.handleContainerMouseUp}\n onClick={this.handleContainerClick}\n data-tid=\"modal-container\"\n >\n <div\n className={cx({\n [styles.centerContainer(this.theme)]: true,\n [styles.alignTop()]: Boolean(this.props.alignTop),\n })}\n style={containerStyle}\n data-tid=\"modal-content\"\n >\n <div className={styles.window(this.theme)} style={style}>\n <ResizeDetector onResize={this.handleResize}>\n <FocusLock disabled={this.props.disableFocusLock} autoFocus={false}>\n {!hasHeader && !this.props.noClose ? (\n <ZIndex priority={'ModalCross'} className={styles.closeWrapper(this.theme)}>\n <ModalClose requestClose={this.requestClose} disableClose={this.props.disableClose} />\n </ZIndex>\n ) : null}\n <ModalContext.Provider value={modalContextProps}>{this.props.children}</ModalContext.Provider>\n </FocusLock>\n </ResizeDetector>\n </div>\n </div>\n </div>\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n );\n }\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private refContainer = (center: HTMLDivElement | null) => {\n this.containerNode = center;\n };\n\n private handleStackChange = (stack: ReadonlyArray<React.Component>) => {\n this.setState({ stackPosition: stack.indexOf(this), hasBackground: ModalStack.isBlocking(this) });\n };\n\n private handleContainerMouseDown = (event: React.MouseEvent) => {\n this.mouseDownTarget = event.target;\n };\n\n private handleContainerMouseUp = (event: React.MouseEvent) => {\n this.mouseUpTarget = event.target;\n };\n\n private handleContainerClick = (event: React.MouseEvent<HTMLDivElement>) => {\n if (!this.props.ignoreBackgroundClick) {\n const { target, currentTarget } = event;\n if (target === currentTarget && this.mouseDownTarget === currentTarget && this.mouseUpTarget === currentTarget) {\n this.requestClose();\n }\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private checkHorizontalScrollAppearance = () => {\n let hasScroll = false;\n\n if (this.containerNode) {\n const containerClientWidth = this.containerNode.clientWidth;\n const containerScrollWidth = this.containerNode.scrollWidth;\n hasScroll = containerClientWidth < containerScrollWidth;\n }\n if (hasScroll && !this.state.horizontalScroll) {\n this.setState({ horizontalScroll: true });\n } else if (this.state.horizontalScroll) {\n this.setState({ horizontalScroll: false });\n }\n };\n\n private handleResize = (event: UIEvent) => {\n LayoutEvents.emit();\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.ModalBody = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.ModalBody = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
2
|
|
|
3
3
|
var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
4
4
|
|
|
5
5
|
var _ZIndex = require("../../internal/ZIndex");
|
|
6
6
|
var _CommonWrapper = require("../../internal/CommonWrapper");
|
|
7
7
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
8
|
+
var _rootNode = require("../../lib/rootNode");
|
|
8
9
|
|
|
9
10
|
var _ModalContext = require("./ModalContext");
|
|
10
|
-
var _Modal = require("./Modal.styles");
|
|
11
|
+
var _Modal = require("./Modal.styles");var _class, _class2, _temp;
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
|
|
@@ -21,11 +22,13 @@ var _Modal = require("./Modal.styles");
|
|
|
21
22
|
*
|
|
22
23
|
* @visibleName Modal.Body
|
|
23
24
|
*/var
|
|
24
|
-
ModalBody = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(ModalBody, _React$Component);function ModalBody() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
25
25
|
|
|
26
|
+
ModalBody = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(ModalBody, _React$Component);function ModalBody() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
26
27
|
|
|
27
28
|
|
|
28
|
-
|
|
29
|
+
|
|
30
|
+
theme = void 0;_this.
|
|
31
|
+
setRootNode = void 0;return _this;}var _proto = ModalBody.prototype;_proto.
|
|
29
32
|
|
|
30
33
|
render = function render() {var _this2 = this;
|
|
31
34
|
return /*#__PURE__*/(
|
|
@@ -43,7 +46,7 @@ ModalBody = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.defaul
|
|
|
43
46
|
return /*#__PURE__*/(
|
|
44
47
|
_react.default.createElement(_ModalContext.ModalContext.Consumer, null,
|
|
45
48
|
function (_ref) {var _cx;var additionalPadding = _ref.additionalPadding,hasHeader = _ref.hasHeader;return /*#__PURE__*/(
|
|
46
|
-
_react.default.createElement(_CommonWrapper.CommonWrapper, _this3.props, /*#__PURE__*/
|
|
49
|
+
_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this3.setRootNode }, _this3.props), /*#__PURE__*/
|
|
47
50
|
_react.default.createElement(_ZIndex.ZIndex, {
|
|
48
51
|
priority: 'ModalBody',
|
|
49
52
|
createStackingContext: true,
|
|
@@ -60,4 +63,4 @@ ModalBody = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.defaul
|
|
|
60
63
|
|
|
61
64
|
|
|
62
65
|
|
|
63
|
-
};return ModalBody;}(_react.default.Component)
|
|
66
|
+
};return ModalBody;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'ModalBody', _class2.__MODAL_BODY__ = true, _temp)) || _class;exports.ModalBody = ModalBody;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["ModalBody.tsx"],"names":["ModalBody","theme","render","renderMain","noPadding","props","additionalPadding","hasHeader","styles","body","bodyWithoutHeader","bodyAddPaddingForPanel","bodyWithoutPadding","children","React","Component","__KONTUR_REACT_UI__","__MODAL_BODY__"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["ModalBody.tsx"],"names":["ModalBody","rootNode","theme","setRootNode","render","renderMain","noPadding","props","additionalPadding","hasHeader","styles","body","bodyWithoutHeader","bodyAddPaddingForPanel","bodyWithoutPadding","children","React","Component","__KONTUR_REACT_UI__","__MODAL_BODY__"],"mappings":"uUAAA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uC;;;;;;;;;AASA;AACA;AACA;AACA;AACA,G;;AAEaA,S,OADZC,kB;;;;AAKSC,IAAAA,K;AACAC,IAAAA,W;;AAEDC,EAAAA,M,GAAP,kBAAgB;AACd;AACE,mCAAC,0BAAD,CAAc,QAAd;AACG,gBAACF,KAAD,EAAW;AACV,QAAA,MAAI,CAACA,KAAL,GAAaA,KAAb;AACA,eAAO,MAAI,CAACG,UAAL,EAAP;AACD,OAJH,CADF;;;AAQD,G;;AAEMA,EAAAA,U,GAAP,sBAAiC;AACvBC,IAAAA,SADuB,GACT,KAAKC,KADI,CACvBD,SADuB;AAE/B;AACE,mCAAC,0BAAD,CAAc,QAAd;AACG,mCAAGE,iBAAH,QAAGA,iBAAH,CAAsBC,SAAtB,QAAsBA,SAAtB;AACC,uCAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAACN,WAAjC,IAAkD,MAAI,CAACI,KAAvD;AACE,uCAAC,cAAD;AACE,YAAA,QAAQ,EAAE,WADZ;AAEE,YAAA,qBAAqB,MAFvB;AAGE,YAAA,SAAS,EAAE;AACRG,0BAAOC,IAAP,CAAY,MAAI,CAACT,KAAjB,CADQ,IACkB,IADlB;AAERQ,0BAAOE,iBAAP,CAAyB,MAAI,CAACV,KAA9B,CAFQ,IAE+B,CAACO,SAFhC;AAGRC,0BAAOG,sBAAP,CAA8B,MAAI,CAACX,KAAnC,CAHQ,IAGoCM,iBAHpC;AAIRE,0BAAOI,kBAAP,EAJQ,IAIsBR,SAJtB,OAHb;;;AAUG,UAAA,MAAI,CAACC,KAAL,CAAWQ,QAVd,CADF,CADD,GADH,CADF;;;;;;AAoBD,G,oBAxC4BC,eAAMC,S,WACrBC,mB,GAAsB,W,UACtBC,c,GAAiB,I","sourcesContent":["import React from 'react';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { ModalContext } from './ModalContext';\nimport { styles } from './Modal.styles';\n\nexport interface ModalBodyProps extends CommonProps {\n /**\n * убирает отступы\n */\n noPadding?: boolean;\n}\n\n/**\n * Контейнер с отступами от края модалки\n *\n * @visibleName Modal.Body\n */\n@rootNode\nexport class ModalBody extends React.Component<ModalBodyProps> {\n public static __KONTUR_REACT_UI__ = 'ModalBody';\n public static __MODAL_BODY__ = true;\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain(): JSX.Element {\n const { noPadding } = this.props;\n return (\n <ModalContext.Consumer>\n {({ additionalPadding, hasHeader }) => (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <ZIndex\n priority={'ModalBody'}\n createStackingContext\n className={cx({\n [styles.body(this.theme)]: true,\n [styles.bodyWithoutHeader(this.theme)]: !hasHeader,\n [styles.bodyAddPaddingForPanel(this.theme)]: additionalPadding,\n [styles.bodyWithoutPadding()]: noPadding,\n })}\n >\n {this.props.children}\n </ZIndex>\n </CommonWrapper>\n )}\n </ModalContext.Consumer>\n );\n }\n}\n"]}
|
|
@@ -40,7 +40,7 @@ export interface PagingState {
|
|
|
40
40
|
keyboardControl: boolean;
|
|
41
41
|
}
|
|
42
42
|
export declare type ItemType = number | '.' | 'forward';
|
|
43
|
-
export declare class Paging extends React.
|
|
43
|
+
export declare class Paging extends React.PureComponent<PagingProps, PagingState> {
|
|
44
44
|
static __KONTUR_REACT_UI__: string;
|
|
45
45
|
static defaultProps: {
|
|
46
46
|
component: ({ className, onClick, children }: any) => JSX.Element;
|
|
@@ -48,6 +48,7 @@ export declare class Paging extends React.Component<PagingProps, PagingState> {
|
|
|
48
48
|
"data-tid": string;
|
|
49
49
|
};
|
|
50
50
|
static propTypes: {};
|
|
51
|
+
private setRootNode;
|
|
51
52
|
static isForward(pageNumber: number | 'forward'): boolean;
|
|
52
53
|
state: PagingState;
|
|
53
54
|
private theme;
|
|
@@ -55,7 +56,6 @@ export declare class Paging extends React.Component<PagingProps, PagingState> {
|
|
|
55
56
|
private addedGlobalListener;
|
|
56
57
|
private container;
|
|
57
58
|
componentDidMount(): void;
|
|
58
|
-
UNSAFE_componentWillReceiveProps(nextProps: PagingProps): void;
|
|
59
59
|
componentDidUpdate(prevProps: PagingProps): void;
|
|
60
60
|
componentWillUnmount(): void;
|
|
61
61
|
render(): JSX.Element;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");exports.__esModule = true;exports.Paging = void 0;var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");exports.__esModule = true;exports.Paging = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
2
|
var _propTypes = require("prop-types");
|
|
3
3
|
|
|
4
4
|
var _identifiers = require("../../lib/events/keyboard/identifiers");
|
|
@@ -12,6 +12,7 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
|
12
12
|
var _px = require("../../internal/icons/16px");
|
|
13
13
|
var _CommonWrapper = require("../../internal/CommonWrapper");
|
|
14
14
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
15
|
+
var _rootNode = require("../../lib/rootNode");
|
|
15
16
|
|
|
16
17
|
var _Paging = require("./Paging.styles");
|
|
17
18
|
var NavigationHelper = _interopRequireWildcard(require("./NavigationHelper"));
|
|
@@ -64,8 +65,8 @@ var IGNORE_EVENT_TAGS = ['input', 'textarea'];var
|
|
|
64
65
|
|
|
65
66
|
|
|
66
67
|
|
|
67
|
-
Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper), _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.default)(Paging, _React$Component);function Paging() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
68
68
|
|
|
69
|
+
Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper), (0, _rootNode.rootNode)(_class = _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(Paging, _React$PureComponent);function Paging() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
|
|
69
70
|
|
|
70
71
|
|
|
71
72
|
|
|
@@ -79,6 +80,8 @@ Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper),
|
|
|
79
80
|
|
|
80
81
|
|
|
81
82
|
|
|
83
|
+
setRootNode = void 0;_this.
|
|
84
|
+
|
|
82
85
|
|
|
83
86
|
|
|
84
87
|
|
|
@@ -148,8 +151,6 @@ Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper),
|
|
|
148
151
|
|
|
149
152
|
|
|
150
153
|
|
|
151
|
-
|
|
152
|
-
|
|
153
154
|
|
|
154
155
|
|
|
155
156
|
|
|
@@ -436,7 +437,7 @@ Paging = (_dec = (0, _decorators.locale)('Paging', _locale.PagingLocaleHelper),
|
|
|
436
437
|
|
|
437
438
|
refContainer = function (element) {
|
|
438
439
|
_this.container = element;
|
|
439
|
-
};return _this;}Paging.isForward = function isForward(pageNumber) /* %checks */{return pageNumber === 'forward';};var _proto = Paging.prototype;_proto.componentDidMount = function componentDidMount() {var useGlobalListener = this.props.useGlobalListener;if (useGlobalListener) {this.addGlobalListener();}};_proto.
|
|
440
|
+
};return _this;}Paging.isForward = function isForward(pageNumber) /* %checks */{return pageNumber === 'forward';};var _proto = Paging.prototype;_proto.componentDidMount = function componentDidMount() {var useGlobalListener = this.props.useGlobalListener;if (useGlobalListener) {this.addGlobalListener();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (!prevProps.useGlobalListener && this.props.useGlobalListener) {this.addGlobalListener();}if (prevProps.useGlobalListener && !this.props.useGlobalListener) {this.removeGlobalListener();}if (prevProps.useGlobalListener !== this.props.useGlobalListener) {this.setState({ keyboardControl: this.props.useGlobalListener });}};_proto.componentWillUnmount = function componentWillUnmount() {this.removeGlobalListener();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("span", { tabIndex: 0, "data-tid": this.props['data-tid'], className: _Paging.styles.paging(this.theme), onKeyDown: this.props.useGlobalListener ? undefined : this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur, onMouseDown: this.handleMouseDown, ref: this.refContainer }, this.getItems().map(this.renderItem)));};return Paging;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Paging', _class2.defaultProps = (_class2$defaultProps = { component: function component(_ref) {var className = _ref.className,onClick = _ref.onClick,children = _ref.children;return /*#__PURE__*/_react.default.createElement("span", { className: className, onClick: onClick }, children);}, useGlobalListener: false }, _class2$defaultProps['data-tid'] = 'Paging__root', _class2$defaultProps), _class2.propTypes = {}, _temp)) || _class) || _class);exports.Paging = Paging;
|
|
440
441
|
|
|
441
442
|
|
|
442
443
|
Paging.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Paging.tsx"],"names":["IGNORE_EVENT_TAGS","Paging","PagingLocaleHelper","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","theme","locale","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","styles","dots","classes","forwardLink","forwardLinkFocused","Component","component","caption","forward","emptyHandler","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLink","pageLinkFocused","handleClick","goToPage","pageLinkWrapper","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","pageLinkHint","transparent","NavigationHelper","getKeyName","pageLinkHintPlaceHolder","handleMouseDown","setState","isIE11","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","UNSAFE_componentWillReceiveProps","nextProps","componentDidUpdate","prevProps","componentWillUnmount","render","renderMain","paging","undefined","map","React","__KONTUR_REACT_UI__","defaultProps","className","onClick","children","propTypes","number","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\n\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\ninterface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.Component<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n\n public static defaultProps = {\n component: ({ className, onClick, children }: any) => (\n <span className={className} onClick={onClick}>\n {children}\n </span>\n ),\n useGlobalListener: false,\n ['data-tid']: 'Paging__root',\n };\n\n public static propTypes = {};\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.props.useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const { useGlobalListener } = this.props;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public UNSAFE_componentWillReceiveProps(nextProps: PagingProps) {\n if (this.props.useGlobalListener !== nextProps.useGlobalListener) {\n this.setState({\n keyboardControl: nextProps.useGlobalListener,\n });\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n if (!prevProps.useGlobalListener && this.props.useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !this.props.useGlobalListener) {\n this.removeGlobalListener();\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n return (\n <CommonWrapper {...this.props}>\n <span\n tabIndex={0}\n data-tid={this.props['data-tid']}\n className={styles.paging(this.theme)}\n onKeyDown={this.props.useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span data-tid=\"Paging__dots\" key={key} className={styles.dots(this.theme)}>\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.disabled(this.theme)]: disabled,\n });\n const { component: Component, caption } = this.props;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid=\"Paging__forwardLink\"\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {caption || forward}\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.active(this.theme)]: active,\n });\n const Component = this.props.component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid=\"Paging__pageLinkWrapper\"\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid=\"Paging__pageLink\"\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n if (keyboardControl && (canGoBackward || canGoForward)) {\n return (\n <span className={styles.pageLinkHint(this.theme)}>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </span>\n );\n }\n\n return <div className={styles.pageLinkHintPlaceHolder(this.theme)} />;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n target instanceof Element &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\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 };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.props.useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (1 <= pageNumber && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n document.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n document.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n}\n\nPaging.propTypes = {\n /**\n * Current active page\n */\n activePage: number.isRequired,\n\n /**\n * React component that would be used for rendering items\n *\n * Usefull for router integration\n */\n component: func,\n\n /**\n * Total page count\n */\n pagesCount: number.isRequired,\n\n /**\n * Calls when page has been changed\n */\n onPageChange: func.isRequired,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["Paging.tsx"],"names":["IGNORE_EVENT_TAGS","Paging","PagingLocaleHelper","rootNode","setRootNode","state","focusedByTab","focusedItem","keyboardControl","props","useGlobalListener","theme","locale","addedGlobalListener","container","renderItem","item","index","focused","getFocusedItem","key","renderDots","disabled","isItemDisabled","renderForwardLink","active","activePage","renderPageLink","styles","dots","classes","forwardLink","forwardLinkFocused","Component","component","caption","forward","emptyHandler","goForward","forwardIcon","pagingForwardIconSize","pageNumber","pageLink","pageLinkFocused","handleClick","goToPage","pageLinkWrapper","handleMouseDownPageLink","renderNavigationHint","withoutNavigationHint","canGoBackward","canGoForward","pageLinkHint","transparent","NavigationHelper","getKeyName","pageLinkHintPlaceHolder","handleMouseDown","setState","isIE11","setTimeout","focus","handleKeyDown","e","shiftKey","target","isArrowLeft","isArrowRight","Element","includes","tagName","toLowerCase","isContentEditable","checkKeyPressed","goBackward","moveFocusLeft","moveFocusRight","executeItemAction","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","getItems","pagesCount","concat","isItemFocusable","moveFocus","step","items","findIndex","x","length","onPageChange","addGlobalListener","document","addEventListener","removeGlobalListener","removeEventListener","refContainer","element","isForward","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","renderMain","paging","undefined","map","React","PureComponent","__KONTUR_REACT_UI__","defaultProps","className","onClick","children","propTypes","number","isRequired","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { func, number } from 'prop-types';\n\nimport { isKeyArrowLeft, isKeyArrowRight, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { locale } from '../../lib/locale/decorators';\nimport { Nullable } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { emptyHandler } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ArrowChevronRightIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Paging.styles';\nimport * as NavigationHelper from './NavigationHelper';\nimport { getItems } from './PagingHelper';\nimport { PagingLocale, PagingLocaleHelper } from './locale';\n\nconst IGNORE_EVENT_TAGS = ['input', 'textarea'];\n\ninterface ItemComponentProps {\n active: boolean;\n children?: React.ReactNode;\n className: string;\n onClick: () => void;\n pageNumber: number | 'forward';\n tabIndex: number;\n}\n\nexport interface PagingProps extends CommonProps {\n activePage: number;\n /**\n * Компонент обертки по умолчанию\n * @default <span />\n */\n component: React.ComponentType<ItemComponentProps>;\n onPageChange: (pageNumber: number) => void;\n pagesCount: number;\n disabled?: boolean;\n /**\n * Отключает навигационные подсказки.\n * По-умолчанию подсказки появляются, когда доступно управление с клавиатуры\n * (либо элемент в фокусе, либо globalListeners === true)\n */\n withoutNavigationHint?: boolean;\n caption?: string;\n /**\n * Глобальный слушатель **keyDown**, для навигации клавишами без фокуса на компоненте.\n * Если на странице используется несколько элементов\n * **Paging** с useGlobalListener === true, то обработчик keyDown будет вызываться\n * на каждом из них. Такие случаи лучше обрабатывать отдельно.\n */\n useGlobalListener: boolean;\n}\n\nexport interface PagingState {\n focusedByTab: boolean;\n focusedItem: Nullable<ItemType>;\n keyboardControl: boolean;\n}\n\nexport type ItemType = number | '.' | 'forward';\n\n@rootNode\n@locale('Paging', PagingLocaleHelper)\nexport class Paging extends React.PureComponent<PagingProps, PagingState> {\n public static __KONTUR_REACT_UI__ = 'Paging';\n\n public static defaultProps = {\n component: ({ className, onClick, children }: any) => (\n <span className={className} onClick={onClick}>\n {children}\n </span>\n ),\n useGlobalListener: false,\n ['data-tid']: 'Paging__root',\n };\n\n public static propTypes = {};\n private setRootNode!: TSetRootNode;\n\n public static isForward(pageNumber: number | 'forward'): boolean /* %checks */ {\n return pageNumber === 'forward';\n }\n\n public state: PagingState = {\n focusedByTab: false,\n focusedItem: null,\n keyboardControl: this.props.useGlobalListener,\n };\n\n private theme!: Theme;\n private readonly locale!: PagingLocale;\n private addedGlobalListener = false;\n private container: HTMLSpanElement | null = null;\n\n public componentDidMount() {\n const { useGlobalListener } = this.props;\n if (useGlobalListener) {\n this.addGlobalListener();\n }\n }\n\n public componentDidUpdate(prevProps: PagingProps) {\n if (!prevProps.useGlobalListener && this.props.useGlobalListener) {\n this.addGlobalListener();\n }\n\n if (prevProps.useGlobalListener && !this.props.useGlobalListener) {\n this.removeGlobalListener();\n }\n\n if (prevProps.useGlobalListener !== this.props.useGlobalListener) {\n this.setState({\n keyboardControl: this.props.useGlobalListener,\n });\n }\n }\n\n public componentWillUnmount() {\n this.removeGlobalListener();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span\n tabIndex={0}\n data-tid={this.props['data-tid']}\n className={styles.paging(this.theme)}\n onKeyDown={this.props.useGlobalListener ? undefined : this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n onMouseDown={this.handleMouseDown}\n ref={this.refContainer}\n >\n {this.getItems().map(this.renderItem)}\n </span>\n </CommonWrapper>\n );\n }\n\n private renderItem = (item: ItemType, index: number) => {\n const focused = this.getFocusedItem() === item;\n switch (item) {\n case '.': {\n const key = `dots${index < 5 ? 'Left' : 'Right'}`;\n return this.renderDots(key);\n }\n case 'forward': {\n const disabled = this.isItemDisabled(item);\n return this.renderForwardLink(disabled, focused);\n }\n default: {\n const active = this.props.activePage === item;\n return this.renderPageLink(item, active, focused);\n }\n }\n };\n\n private renderDots = (key: string) => {\n return (\n <span data-tid=\"Paging__dots\" key={key} className={styles.dots(this.theme)}>\n {'...'}\n </span>\n );\n };\n\n private renderForwardLink = (disabled: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.forwardLink(this.theme)]: true,\n [styles.forwardLinkFocused()]: focused,\n [styles.disabled(this.theme)]: disabled,\n });\n const { component: Component, caption } = this.props;\n const { forward } = this.locale;\n\n return (\n <Component\n key={'forward'}\n data-tid=\"Paging__forwardLink\"\n active={false}\n className={classes}\n onClick={disabled ? emptyHandler : this.goForward}\n tabIndex={-1}\n pageNumber={'forward' as const}\n >\n {caption || forward}\n <span className={styles.forwardIcon(this.theme)}>\n <ArrowChevronRightIcon size={this.theme.pagingForwardIconSize} />\n </span>\n </Component>\n );\n };\n\n private renderPageLink = (pageNumber: number, active: boolean, focused: boolean): JSX.Element => {\n const classes = cx({\n [styles.pageLink(this.theme)]: true,\n [styles.pageLinkFocused(this.theme)]: focused,\n [styles.active(this.theme)]: active,\n });\n const Component = this.props.component;\n const handleClick = () => this.goToPage(pageNumber);\n\n return (\n <span\n data-tid=\"Paging__pageLinkWrapper\"\n key={pageNumber}\n className={styles.pageLinkWrapper()}\n onMouseDown={this.handleMouseDownPageLink}\n >\n <Component\n data-tid=\"Paging__pageLink\"\n active={active}\n className={classes}\n onClick={handleClick}\n tabIndex={-1}\n pageNumber={pageNumber}\n >\n {pageNumber}\n </Component>\n {active && this.renderNavigationHint()}\n </span>\n );\n };\n\n private renderNavigationHint = () => {\n if (this.props.withoutNavigationHint) {\n return null;\n }\n\n const { keyboardControl } = this.state;\n const canGoBackward = this.canGoBackward();\n const canGoForward = this.canGoForward();\n\n if (keyboardControl && (canGoBackward || canGoForward)) {\n return (\n <span className={styles.pageLinkHint(this.theme)}>\n <span className={canGoBackward ? '' : styles.transparent()}>{'←'}</span>\n <span>{NavigationHelper.getKeyName()}</span>\n <span className={canGoForward ? '' : styles.transparent()}>{'→'}</span>\n </span>\n );\n }\n\n return <div className={styles.pageLinkHintPlaceHolder(this.theme)} />;\n };\n\n private handleMouseDown = () => {\n this.setState({ focusedByTab: false, focusedItem: null });\n };\n\n private handleMouseDownPageLink = () => {\n if (isIE11) {\n // Клик по span внутри контейнера с tabindex=\"0\" переносит фокус именно на этот span.\n // Поэтому горячие клавиши работают пока span существует на странице.\n setTimeout(() => this.container && this.container.focus(), 0);\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent | React.KeyboardEvent<HTMLElement>) => {\n if (e.shiftKey) {\n return;\n }\n\n const target = e.target;\n\n const isArrowLeft = isKeyArrowLeft(e);\n const isArrowRight = isKeyArrowRight(e);\n\n if (\n target instanceof Element &&\n (IGNORE_EVENT_TAGS.includes(target.tagName.toLowerCase()) || (target as HTMLElement).isContentEditable)\n ) {\n return;\n }\n\n if (NavigationHelper.checkKeyPressed(e) && isArrowLeft) {\n this.setState({ focusedItem: null }, this.goBackward);\n return;\n }\n if (NavigationHelper.checkKeyPressed(e) && isArrowRight) {\n this.setState({ focusedItem: null }, this.goForward);\n return;\n }\n\n if (this.container && this.container === e.target) {\n if (isArrowLeft) {\n this.setState({ focusedByTab: true }, this.moveFocusLeft);\n return;\n }\n if (isArrowRight) {\n this.setState({ focusedByTab: true }, this.moveFocusRight);\n return;\n }\n if (isKeyEnter(e)) {\n this.executeItemAction(this.getFocusedItem());\n return;\n }\n }\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n this.setState({ keyboardControl: true });\n\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 };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n keyboardControl: this.props.useGlobalListener || false,\n });\n };\n\n private getItems = (): ItemType[] => {\n return getItems(this.props.activePage, this.props.pagesCount).concat('forward');\n };\n\n private getFocusedItem = (): Nullable<ItemType> => {\n if (!this.state.focusedByTab) {\n return null;\n }\n\n const { focusedItem } = this.state;\n if (focusedItem && this.getItems().includes(focusedItem) && this.isItemFocusable(focusedItem)) {\n return focusedItem;\n }\n\n return this.props.activePage;\n };\n\n private isItemFocusable = (item: ItemType) => {\n return !this.isItemDisabled(item);\n };\n\n private isItemDisabled = (item: ItemType) => {\n switch (item) {\n case '.':\n return true;\n case 'forward':\n return !this.canGoForward();\n default:\n return false;\n }\n };\n\n private executeItemAction = (item: Nullable<ItemType>) => {\n if (item === 'forward') {\n this.goForward();\n }\n if (typeof item === 'number') {\n this.goToPage(item);\n }\n };\n\n private moveFocusLeft = () => {\n this.moveFocus(-1);\n };\n\n private moveFocusRight = () => {\n this.moveFocus(1);\n };\n\n private moveFocus = (step: number) => {\n const focusedItem = this.getFocusedItem();\n const items = this.getItems();\n let index = items.findIndex((x) => x === focusedItem);\n do {\n index = (index + step + items.length) % items.length;\n } while (!this.isItemFocusable(items[index]));\n this.setState({ focusedItem: items[index] });\n };\n\n private canGoBackward = (): boolean => {\n return this.props.activePage > 1;\n };\n\n private canGoForward = (): boolean => {\n return this.props.activePage < this.props.pagesCount;\n };\n\n private goBackward = () => {\n this.goToPage(this.props.activePage - 1);\n };\n\n private goForward = () => {\n this.goToPage(this.props.activePage + 1);\n };\n\n private goToPage = (pageNumber: number) => {\n if (1 <= pageNumber && pageNumber !== this.props.activePage && pageNumber <= this.props.pagesCount) {\n this.props.onPageChange(pageNumber);\n }\n };\n\n private addGlobalListener = () => {\n if (this.addedGlobalListener) {\n return;\n }\n\n document.addEventListener('keydown', this.handleKeyDown);\n this.addedGlobalListener = true;\n };\n\n private removeGlobalListener = () => {\n if (this.addedGlobalListener) {\n document.removeEventListener('keydown', this.handleKeyDown);\n\n this.addedGlobalListener = false;\n }\n };\n\n private refContainer = (element: HTMLSpanElement | null) => {\n this.container = element;\n };\n}\n\nPaging.propTypes = {\n /**\n * Current active page\n */\n activePage: number.isRequired,\n\n /**\n * React component that would be used for rendering items\n *\n * Usefull for router integration\n */\n component: func,\n\n /**\n * Total page count\n */\n pagesCount: number.isRequired,\n\n /**\n * Calls when page has been changed\n */\n onPageChange: func.isRequired,\n};\n"]}
|
|
@@ -12,7 +12,7 @@ export interface PasswordInputState {
|
|
|
12
12
|
/**
|
|
13
13
|
* Компонент для ввода пароля
|
|
14
14
|
*/
|
|
15
|
-
export declare class PasswordInput extends React.
|
|
15
|
+
export declare class PasswordInput extends React.PureComponent<PasswordInputProps, PasswordInputState> {
|
|
16
16
|
static __KONTUR_REACT_UI__: string;
|
|
17
17
|
static propTypes: {
|
|
18
18
|
/**
|
|
@@ -26,7 +26,8 @@ export declare class PasswordInput extends React.Component<PasswordInputProps, P
|
|
|
26
26
|
state: PasswordInputState;
|
|
27
27
|
private theme;
|
|
28
28
|
private input;
|
|
29
|
-
|
|
29
|
+
private setRootNode;
|
|
30
|
+
componentDidMount(): void;
|
|
30
31
|
render(): JSX.Element;
|
|
31
32
|
/**
|
|
32
33
|
* @public
|
|
@@ -11,8 +11,9 @@ var _CommonWrapper = require("../../internal/CommonWrapper");
|
|
|
11
11
|
|
|
12
12
|
var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
13
13
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
14
|
+
var _rootNode = require("../../lib/rootNode");
|
|
14
15
|
|
|
15
|
-
var _PasswordInput = require("./PasswordInput.styles");
|
|
16
|
+
var _PasswordInput = require("./PasswordInput.styles");var _class, _class2, _temp;
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
|
|
@@ -26,7 +27,8 @@ var _PasswordInput = require("./PasswordInput.styles");
|
|
|
26
27
|
/**
|
|
27
28
|
* Компонент для ввода пароля
|
|
28
29
|
*/var
|
|
29
|
-
|
|
30
|
+
|
|
31
|
+
PasswordInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(PasswordInput, _React$PureComponent);function PasswordInput() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
|
|
30
32
|
|
|
31
33
|
|
|
32
34
|
|
|
@@ -48,6 +50,11 @@ PasswordInput = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.de
|
|
|
48
50
|
theme = void 0;_this.
|
|
49
51
|
|
|
50
52
|
input = void 0;_this.
|
|
53
|
+
setRootNode = void 0;_this.
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
|
|
51
58
|
|
|
52
59
|
|
|
53
60
|
|
|
@@ -186,11 +193,11 @@ PasswordInput = /*#__PURE__*/function (_React$Component) {(0, _inheritsLoose2.de
|
|
|
186
193
|
_react.default.createElement(_Input.Input, (0, _extends2.default)({ ref: _this.refInput, type: _this.state.visible ? 'text' : 'password' }, inputProps))));
|
|
187
194
|
|
|
188
195
|
|
|
189
|
-
};return _this;}var _proto = PasswordInput.prototype;_proto.
|
|
196
|
+
};return _this;}var _proto = PasswordInput.prototype;_proto.componentDidMount = function componentDidMount() {if (this.props.detectCapsLock) {this.setState({ capsLockEnabled: null });} // @ts-ignore
|
|
190
197
|
if (_client.isIE11 && !window.document.msCapsLockWarningOff) {// turns off default ie capslock warning
|
|
191
198
|
// @ts-ignore
|
|
192
|
-
window.document.msCapsLockWarningOff = true;}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this2.props, _this2.renderMain);});} /**
|
|
199
|
+
window.document.msCapsLockWarningOff = true;}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain);});} /**
|
|
193
200
|
* @public
|
|
194
|
-
*/;_proto.getEyeWrapperClassname = function getEyeWrapperClassname(right) {if (right === void 0) {right = false;}switch (this.props.size) {case 'large':return _PasswordInput.styles.eyeWrapperLarge(this.theme);case 'medium':return _PasswordInput.styles.eyeWrapperMedium(this.theme);case 'small':default:return _PasswordInput.styles.eyeWrapperSmall(this.theme);}};return PasswordInput;}(_react.default.
|
|
201
|
+
*/;_proto.getEyeWrapperClassname = function getEyeWrapperClassname(right) {if (right === void 0) {right = false;}switch (this.props.size) {case 'large':return _PasswordInput.styles.eyeWrapperLarge(this.theme);case 'medium':return _PasswordInput.styles.eyeWrapperMedium(this.theme);case 'small':default:return _PasswordInput.styles.eyeWrapperSmall(this.theme);}};return PasswordInput;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'PasswordInput', _class2.propTypes = { /**
|
|
195
202
|
* Включает CapsLock детектор
|
|
196
|
-
*/detectCapsLock: _propTypes.default.bool }
|
|
203
|
+
*/detectCapsLock: _propTypes.default.bool }, _class2.defaultProps = { size: 'small' }, _temp)) || _class;exports.PasswordInput = PasswordInput;
|