@skbkontur/react-ui 4.21.0-displayname.0 → 4.21.0-displayname.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/Autocomplete/Autocomplete.d.ts +1 -0
- package/cjs/components/Autocomplete/Autocomplete.js +2 -1
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +1 -1
- package/cjs/components/Button/Button.js +1 -1
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +1 -0
- package/cjs/components/Calendar/Calendar.js +2 -1
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +1 -0
- package/cjs/components/Center/Center.js +2 -1
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +1 -0
- package/cjs/components/Checkbox/Checkbox.js +2 -1
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +1 -0
- package/cjs/components/ComboBox/ComboBox.js +2 -1
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -0
- package/cjs/components/CurrencyInput/CurrencyInput.js +2 -1
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +1 -0
- package/cjs/components/DateInput/DateInput.js +2 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +1 -0
- package/cjs/components/DatePicker/DatePicker.js +2 -1
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/Picker.d.ts +1 -0
- package/cjs/components/DatePicker/Picker.js +2 -1
- package/cjs/components/DatePicker/Picker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +1 -0
- package/cjs/components/Dropdown/Dropdown.js +2 -1
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -0
- package/cjs/components/DropdownMenu/DropdownMenu.js +2 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +1 -0
- package/cjs/components/FxInput/FxInput.js +2 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +1 -0
- package/cjs/components/Gapped/Gapped.js +2 -1
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +1 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +2 -1
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +1 -0
- package/cjs/components/Group/Group.js +2 -1
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +1 -0
- package/cjs/components/Hint/Hint.js +2 -1
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +1 -0
- package/cjs/components/Kebab/Kebab.js +2 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +1 -0
- package/cjs/components/Link/Link.js +2 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +1 -0
- package/cjs/components/Loader/Loader.js +2 -1
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -0
- package/cjs/components/MenuItem/MenuItem.js +2 -1
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +1 -0
- package/cjs/components/Modal/Modal.js +2 -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 +2 -1
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +1 -0
- package/cjs/components/Paging/Paging.js +2 -1
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -0
- package/cjs/components/PasswordInput/PasswordInput.js +2 -1
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +1 -0
- package/cjs/components/Radio/Radio.js +2 -1
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +1 -0
- package/cjs/components/RadioGroup/RadioGroup.js +2 -1
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +1 -0
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +2 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Item.d.ts +1 -0
- package/cjs/components/Select/Item.js +2 -1
- package/cjs/components/Select/Item.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +1 -0
- package/cjs/components/Select/Select.js +2 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +1 -0
- package/cjs/components/SidePage/SidePage.js +2 -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 +2 -1
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.d.ts +1 -0
- package/cjs/components/SidePage/SidePageContainer.js +2 -1
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +1 -0
- package/cjs/components/SidePage/SidePageFooter.js +2 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +1 -0
- package/cjs/components/SidePage/SidePageHeader.js +2 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +1 -0
- package/cjs/components/Spinner/Spinner.js +2 -1
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +1 -0
- package/cjs/components/Sticky/Sticky.js +2 -1
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +1 -0
- package/cjs/components/Switcher/Switcher.js +2 -1
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +1 -0
- package/cjs/components/Tabs/Tab.js +2 -1
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +1 -0
- package/cjs/components/Tabs/Tabs.js +2 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +1 -0
- package/cjs/components/Textarea/Textarea.js +2 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +1 -0
- package/cjs/components/Toast/Toast.js +2 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +1 -0
- package/cjs/components/Toggle/Toggle.js +2 -1
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +1 -0
- package/cjs/components/Token/Token.js +2 -1
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +1 -0
- package/cjs/components/TokenInput/TokenInput.js +2 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.d.ts +1 -0
- package/cjs/components/TokenInput/TokenInputMenu.js +2 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +1 -0
- package/cjs/components/Tooltip/Tooltip.js +2 -1
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +1 -0
- package/cjs/components/TooltipMenu/TooltipMenu.js +2 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js +2 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +2 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +1 -0
- package/cjs/internal/DateSelect/DateSelect.js +2 -1
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
- package/cjs/internal/DropdownContainer/DropdownContainer.js +2 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.js +2 -1
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +2 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +2 -1
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +2 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +1 -0
- package/cjs/internal/InternalMenu/InternalMenu.js +2 -1
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +1 -0
- package/cjs/internal/Menu/Menu.js +2 -1
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +2 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +2 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/cjs/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
- package/cjs/internal/NativeDateInput/NativeDateInput.js +2 -1
- package/cjs/internal/NativeDateInput/NativeDateInput.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +1 -0
- package/cjs/internal/Popup/Popup.js +2 -1
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.d.ts +1 -0
- package/cjs/internal/Popup/PopupPin.js +2 -1
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +2 -1
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.d.ts +1 -0
- package/cjs/internal/RenderContainer/RenderContainer.js +2 -1
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +1 -0
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +2 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +1 -0
- package/cjs/internal/RenderLayer/RenderLayer.js +2 -1
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
- package/cjs/internal/ResizeDetector/ResizeDetector.js +2 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +1 -0
- package/cjs/internal/ZIndex/ZIndex.js +2 -1
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/icons/20px/Icon.d.ts +1 -0
- package/cjs/internal/icons/20px/Icon.js +2 -1
- package/cjs/internal/icons/20px/Icon.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +1 -0
- package/components/Button/Button/Button.js +1 -1
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -1
- package/components/Calendar/Calendar/Calendar.js +1 -1
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +1 -0
- package/components/Center/Center/Center.js +1 -1
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +1 -0
- package/components/Checkbox/Checkbox/Checkbox.js +1 -1
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +1 -0
- package/components/ComboBox/ComboBox/ComboBox.js +1 -1
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +1 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +1 -1
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +1 -0
- package/components/DateInput/DateInput/DateInput.js +1 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +1 -0
- package/components/DatePicker/DatePicker/DatePicker.js +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +1 -0
- package/components/DatePicker/Picker/Picker.js +1 -1
- package/components/DatePicker/Picker/Picker.js.map +1 -1
- package/components/DatePicker/Picker.d.ts +1 -0
- package/components/Dropdown/Dropdown/Dropdown.js +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +1 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +1 -0
- package/components/FxInput/FxInput/FxInput.js +1 -1
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +1 -0
- package/components/Gapped/Gapped/Gapped.js +1 -1
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +1 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +1 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +1 -0
- package/components/Group/Group/Group.js +1 -1
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +1 -0
- package/components/Hint/Hint/Hint.js +1 -1
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +1 -0
- package/components/Kebab/Kebab/Kebab.js +1 -1
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -0
- package/components/Link/Link/Link.js +1 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +1 -0
- package/components/Loader/Loader/Loader.js +1 -1
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +1 -0
- package/components/MenuItem/MenuItem/MenuItem.js +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -0
- package/components/Modal/Modal/Modal.js +1 -0
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +1 -0
- package/components/Modal/ModalBody/ModalBody.js +1 -1
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +1 -0
- package/components/Paging/Paging/Paging.js +1 -1
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +1 -0
- package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +1 -0
- package/components/Radio/Radio/Radio.js +1 -1
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +1 -0
- package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +1 -0
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +2 -1
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayout.d.ts +1 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/components/Select/Item/Item.js +2 -1
- package/components/Select/Item/Item.js.map +1 -1
- package/components/Select/Item.d.ts +1 -0
- package/components/Select/Select/Select.js +1 -1
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +1 -0
- package/components/SidePage/SidePage/SidePage.js +1 -0
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +1 -0
- package/components/SidePage/SidePageBody/SidePageBody.js +1 -1
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +1 -0
- package/components/SidePage/SidePageContainer/SidePageContainer.js +1 -1
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +1 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js +1 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +1 -0
- package/components/SidePage/SidePageHeader/SidePageHeader.js +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +1 -0
- package/components/Spinner/Spinner/Spinner.js +1 -1
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +1 -0
- package/components/Sticky/Sticky/Sticky.js +1 -1
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +1 -0
- package/components/Switcher/Switcher/Switcher.js +1 -1
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +1 -0
- package/components/Tabs/Tab/Tab.js +1 -1
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +1 -0
- package/components/Tabs/Tabs/Tabs.js +1 -1
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +1 -0
- package/components/Textarea/Textarea/Textarea.js +1 -1
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +1 -0
- package/components/Toast/Toast/Toast.js +1 -1
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +1 -0
- package/components/Toggle/Toggle/Toggle.js +1 -1
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +1 -0
- package/components/Token/Token/Token.js +1 -1
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +1 -0
- package/components/TokenInput/TokenInput/TokenInput.js +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +1 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/TokenInputMenu.d.ts +1 -0
- package/components/Tooltip/Tooltip/Tooltip.js +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +1 -0
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +1 -1
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +1 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +1 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -1
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +1 -0
- package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +1 -0
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +1 -0
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +1 -0
- package/internal/FocusTrap/FocusTrap/FocusTrap.js +1 -1
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +1 -0
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +1 -0
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +1 -0
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js +1 -1
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +1 -0
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/internal/InternalMaskedInput/InternalMaskedInput.d.ts +1 -0
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +1 -0
- package/internal/Menu/Menu/Menu.js +1 -1
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +1 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +2 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +1 -0
- package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js +2 -1
- package/internal/NativeDateInput/NativeDateInput/NativeDateInput.js.map +1 -1
- package/internal/NativeDateInput/NativeDateInput.d.ts +1 -0
- package/internal/Popup/Popup/Popup.js +1 -1
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +1 -0
- package/internal/Popup/PopupPin/PopupPin.js +1 -0
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +1 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +1 -0
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +1 -0
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainer.d.ts +1 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +1 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.d.ts +1 -0
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +1 -0
- package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +2 -1
- package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
- package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
- package/internal/ZIndex/ZIndex/ZIndex.js +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +1 -0
- package/internal/icons/20px/Icon/Icon.js +1 -0
- package/internal/icons/20px/Icon/Icon.js.map +1 -1
- package/internal/icons/20px/Icon.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Button.tsx"],"names":["React","globalObject","isKonturIcon","isReactUIComponent","isIE11","isEdge","isSafari","keyListener","ThemeContext","CommonWrapper","cx","rootNode","ThemeFactory","createPropsGetter","isTheme2022","Link","Spinner","LoadingIcon","styles","activeStyles","globalClasses","ButtonIcon","getButtonIconSizes","useButtonArrow","getInnerLinkTheme","ButtonDataTids","root","spinner","Button","getProps","defaultProps","state","focusedByTab","node","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","theme","create","renderMain","renderLinkRootWithoutHandlers","onClick","children","rest","corners","active","borderless","checked","error","warning","narrow","icon","_noPadding","_noRightPadding","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onMouseDown","onMouseUp","onKeyDown","onClickCapture","width","ariaDescribedby","ariaHasPopup","ariaControls","ariaLabel","ariaChecked","ariaExpanded","role","use","type","size","sizeClass","getSizeClassName","isFocused","isLink","_isTheme2022","Boolean","wrapClassNameWithArrow","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","rootClassName","trueDisabled","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","checkedDisabled2022","borderless2022","checked2022","checkedFocused","simulatedPress","rootProps","className","style","textAlign","tabIndex","title","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","innerShadow","outlineNode","isDisabled2022","zIndex","undefined","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconNode","loadingNode","loadingIcon","link","linkLineHeight","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","captionNode","caption","captionTranslated","captionLink","captionDisabled","text","visibilityHidden","renderIcon2022","setRootNode","sizes","cloneElement","sizeLarge","sizeLargeIE11","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","__BUTTON__","displayName","isButton"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { HTMLProps } from '../../typings/html';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Link, LinkProps } from '../Link';\nimport { Spinner } from '../Spinner';\nimport { LoadingIcon } from '../../internal/icons2022/LoadingIcon';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\n\n/**\n * @deprecated use SizeProp\n */\nexport type ButtonSize = SizeProp;\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonProps\n extends CommonProps,\n Pick<\n AriaAttributes,\n 'aria-haspopup' | 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-checked' | 'aria-expanded'\n >,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<HTMLProps['button'], 'onClickCapture' | 'onMouseUp' | 'onMouseDown'> {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement<any>;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`, `\"text\"`, `\"backless\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps, 'use' | 'size' | 'type'>>;\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static __BUTTON__ = true;\n public static displayName = 'Button';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n type: 'button',\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderLinkRootWithoutHandlers(props: LinkProps) {\n const { onClick, onFocus, onBlur, children, ...rest } = props;\n return <span {...rest}>{children}</span>;\n }\n\n private renderMain() {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n icon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onMouseDown,\n onMouseUp,\n onKeyDown,\n onClick,\n onClickCapture,\n width,\n children,\n 'aria-describedby': ariaDescribedby,\n 'aria-haspopup': ariaHasPopup,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n 'aria-checked': ariaChecked,\n 'aria-expanded': ariaExpanded,\n role,\n } = this.props;\n const { use, type, size } = this.getProps();\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const _isTheme2022 = isTheme2022(this.theme);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [wrapClassNameWithArrow, rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n let rootClassName = '';\n if (_isTheme2022) {\n const trueDisabled = disabled || loading;\n rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n checked && styles.checkedDisabled2022(this.theme),\n borderless && styles.borderless2022(),\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked2022(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless2022(),\n ]),\n );\n } else {\n rootClassName = cx({\n [styles.root(this.theme)]: true,\n [styles.simulatedPress()]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused,\n [styles.checked(this.theme)]: checked,\n [styles.checkedFocused(this.theme)]: checked && isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n });\n }\n\n const rootProps = {\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type,\n role,\n 'aria-describedby': ariaDescribedby,\n 'aria-haspopup': ariaHasPopup,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n 'aria-checked': ariaChecked,\n 'aria-expanded': ariaExpanded,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: disabled || loading,\n onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onMouseDown,\n onMouseUp,\n onClickCapture,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [wrapClassNameWithArrow]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = _isTheme2022 ? null : <div className={globalClasses.innerShadow} />;\n\n let outlineNode = null;\n const isDisabled2022 = _isTheme2022 && (disabled || loading);\n if ((!isFocused || isLink) && !isDisabled2022) {\n outlineNode = (\n <div\n style={{ zIndex: _isTheme2022 && isLink ? -1 : undefined }}\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconNode = icon && (\n <ButtonIcon\n icon={icon}\n size={size}\n hasChildren={Boolean(children)}\n disabled={disabled || false}\n loading={loading || false}\n use={use}\n />\n );\n let loadingNode = null;\n if (loading && !icon) {\n const loadingIcon = _isTheme2022 ? <LoadingIcon size={size} /> : <Spinner caption={null} dimmed type=\"mini\" />;\n loadingNode = (\n <div data-tid={ButtonDataTids.spinner} className={styles.loading()}>\n {loadingIcon}\n </div>\n );\n }\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari || (isSafari && !_isTheme2022),\n [styles.linkLineHeightSafariFallback()]: isSafari && _isTheme2022,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n }\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: (active || checked) && !loading && !_isTheme2022,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {iconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: !!loadingNode,\n })}\n >\n {children}\n </span>\n </div>\n );\n if (_isTheme2022 && isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n <Link\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n as={this.renderLinkRootWithoutHandlers}\n tabIndex={-1}\n >\n {children}\n </Link>\n </ThemeContext.Provider>\n );\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps}>\n <button data-tid={ButtonDataTids.root} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n const _isTheme2022 = isTheme2022(this.theme);\n switch (this.getProps().size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"]}
|
|
1
|
+
{"version":3,"sources":["Button.tsx"],"names":["React","globalObject","isKonturIcon","isReactUIComponent","isIE11","isEdge","isSafari","keyListener","ThemeContext","CommonWrapper","cx","rootNode","ThemeFactory","createPropsGetter","isTheme2022","Link","Spinner","LoadingIcon","styles","activeStyles","globalClasses","ButtonIcon","getButtonIconSizes","useButtonArrow","getInnerLinkTheme","ButtonDataTids","root","spinner","Button","getProps","defaultProps","state","focusedByTab","node","handleFocus","e","props","disabled","disableFocus","requestAnimationFrame","isTabPressed","setState","onFocus","handleBlur","onBlur","_ref","componentDidMount","autoFocus","focus","getDerivedStateFromProps","loading","blur","render","theme","create","renderMain","renderLinkRootWithoutHandlers","onClick","children","rest","corners","active","borderless","checked","error","warning","narrow","icon","_noPadding","_noRightPadding","visuallyFocused","align","onMouseEnter","onMouseLeave","onMouseOver","onMouseDown","onMouseUp","onKeyDown","onClickCapture","width","ariaDescribedby","ariaHasPopup","ariaControls","ariaLabel","ariaChecked","ariaExpanded","role","use","type","size","sizeClass","getSizeClassName","isFocused","isLink","_isTheme2022","Boolean","wrapClassNameWithArrow","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","rootClassName","trueDisabled","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","checkedDisabled2022","borderless2022","checked2022","checkedFocused","simulatedPress","rootProps","className","style","textAlign","tabIndex","title","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","innerShadow","outlineNode","isDisabled2022","zIndex","undefined","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconNode","loadingNode","loadingIcon","link","linkLineHeight","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","captionNode","caption","captionTranslated","captionLink","captionDisabled","text","visibilityHidden","renderIcon2022","setRootNode","sizes","cloneElement","sizeLarge","sizeLargeIE11","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","isButton"],"mappings":"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","sourcesContent":["import React, { AriaAttributes, HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { HTMLProps } from '../../typings/html';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Link, LinkProps } from '../Link';\nimport { Spinner } from '../Spinner';\nimport { LoadingIcon } from '../../internal/icons2022/LoadingIcon';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\n\n/**\n * @deprecated use SizeProp\n */\nexport type ButtonSize = SizeProp;\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonProps\n extends CommonProps,\n Pick<\n AriaAttributes,\n 'aria-haspopup' | 'aria-describedby' | 'aria-controls' | 'aria-label' | 'aria-checked' | 'aria-expanded'\n >,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<HTMLProps['button'], 'onClickCapture' | 'onMouseUp' | 'onMouseDown'> {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement<any>;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onclick`.\n */\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onfocus`.\n */\n onFocus?: React.FocusEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `keydown`.\n */\n onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * HTML-событие `onmouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLButtonElement>;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`, `\"text\"`, `\"backless\"`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps, 'use' | 'size' | 'type'>>;\n\n@rootNode\nexport class Button extends React.Component<ButtonProps, ButtonState> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n type: 'button',\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLButtonElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderLinkRootWithoutHandlers(props: LinkProps) {\n const { onClick, onFocus, onBlur, children, ...rest } = props;\n return <span {...rest}>{children}</span>;\n }\n\n private renderMain() {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n icon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onMouseDown,\n onMouseUp,\n onKeyDown,\n onClick,\n onClickCapture,\n width,\n children,\n 'aria-describedby': ariaDescribedby,\n 'aria-haspopup': ariaHasPopup,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n 'aria-checked': ariaChecked,\n 'aria-expanded': ariaExpanded,\n role,\n } = this.props;\n const { use, type, size } = this.getProps();\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n const _isTheme2022 = isTheme2022(this.theme);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [wrapClassNameWithArrow, rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n let rootClassName = '';\n if (_isTheme2022) {\n const trueDisabled = disabled || loading;\n rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n checked && styles.checkedDisabled2022(this.theme),\n borderless && styles.borderless2022(),\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked2022(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless2022(),\n ]),\n );\n } else {\n rootClassName = cx({\n [styles.root(this.theme)]: true,\n [styles.simulatedPress()]: true,\n [styles[use](this.theme)]: true,\n [activeStyles[use](this.theme)]: active,\n [sizeClass]: true,\n [styles.focus(this.theme)]: isFocused,\n [styles.checked(this.theme)]: checked,\n [styles.checkedFocused(this.theme)]: checked && isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.checkedDisabled(this.theme)]: checked && disabled,\n [styles.borderless()]: borderless && !disabled && !loading && !checked && !isFocused && !active,\n [styles.narrow()]: narrow,\n [styles.noPadding()]: _noPadding,\n [styles.noRightPadding()]: _noRightPadding,\n });\n }\n\n const rootProps = {\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type,\n role,\n 'aria-describedby': ariaDescribedby,\n 'aria-haspopup': ariaHasPopup,\n 'aria-controls': ariaControls,\n 'aria-label': ariaLabel,\n 'aria-checked': ariaChecked,\n 'aria-expanded': ariaExpanded,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: disabled || loading,\n onClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onMouseDown,\n onMouseUp,\n onClickCapture,\n tabIndex: disableFocus ? -1 : 0,\n title: this.props.title,\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [wrapClassNameWithArrow]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = _isTheme2022 ? null : <div className={globalClasses.innerShadow} />;\n\n let outlineNode = null;\n const isDisabled2022 = _isTheme2022 && (disabled || loading);\n if ((!isFocused || isLink) && !isDisabled2022) {\n outlineNode = (\n <div\n style={{ zIndex: _isTheme2022 && isLink ? -1 : undefined }}\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconNode = icon && (\n <ButtonIcon\n icon={icon}\n size={size}\n hasChildren={Boolean(children)}\n disabled={disabled || false}\n loading={loading || false}\n use={use}\n />\n );\n let loadingNode = null;\n if (loading && !icon) {\n const loadingIcon = _isTheme2022 ? <LoadingIcon size={size} /> : <Spinner caption={null} dimmed type=\"mini\" />;\n loadingNode = (\n <div data-tid={ButtonDataTids.spinner} className={styles.loading()}>\n {loadingIcon}\n </div>\n );\n }\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari || (isSafari && !_isTheme2022),\n [styles.linkLineHeightSafariFallback()]: isSafari && _isTheme2022,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: disabled || loading,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n rootProps.style.textAlign = undefined;\n }\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionTranslated()]: (active || checked) && !loading && !_isTheme2022,\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {iconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: !!loadingNode,\n })}\n >\n {children}\n </span>\n </div>\n );\n if (_isTheme2022 && isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n <Link\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n as={this.renderLinkRootWithoutHandlers}\n tabIndex={-1}\n >\n {children}\n </Link>\n </ThemeContext.Provider>\n );\n }\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span {...wrapProps}>\n <button data-tid={ButtonDataTids.root} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </button>\n </span>\n </CommonWrapper>\n );\n }\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n const _isTheme2022 = isTheme2022(this.theme);\n switch (this.getProps().size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: _isTheme2022 && !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent<HTMLButtonElement>) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLButtonElement>) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLButtonElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"]}
|
|
@@ -137,8 +137,8 @@ export declare const ButtonDataTids: {
|
|
|
137
137
|
declare type DefaultProps = Required<Pick<ButtonProps, 'use' | 'size' | 'type'>>;
|
|
138
138
|
export declare class Button extends React.Component<ButtonProps, ButtonState> {
|
|
139
139
|
static __KONTUR_REACT_UI__: string;
|
|
140
|
-
static __BUTTON__: boolean;
|
|
141
140
|
static displayName: string;
|
|
141
|
+
static __BUTTON__: boolean;
|
|
142
142
|
static defaultProps: DefaultProps;
|
|
143
143
|
private getProps;
|
|
144
144
|
state: {
|
|
@@ -503,7 +503,7 @@ var Calendar = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_Reac
|
|
|
503
503
|
};
|
|
504
504
|
|
|
505
505
|
return Calendar;
|
|
506
|
-
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Calendar', _class2.defaultProps = {
|
|
506
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Calendar', _class2.displayName = 'Calendar', _class2.defaultProps = {
|
|
507
507
|
minDate: _class2.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),
|
|
508
508
|
maxDate: _class2.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),
|
|
509
509
|
isHoliday: function isHoliday(_day, isWeekend) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Calendar.tsx"],"names":["React","normalizeWheel","throttle","shallowEqual","globalObject","isInstanceOf","InternalDate","InternalDateTransformer","rootNode","cx","CommonWrapper","MAX_DATE","MAX_MONTH","MAX_YEAR","MIN_DATE","MIN_MONTH","MIN_YEAR","ThemeContext","animation","isMobile","createPropsGetter","themeConfig","MonthViewModel","CalendarScrollEvents","Month","styles","create","isGreater","isLess","CalendarUtils","CalendarDataTids","root","month","dayCell","headerMonth","headerYear","Calendar","formatDate","date","year","setComponents","toString","withPad","props","getProps","defaultProps","touchStartY","scrollToMonth","inProgress","finish","Promise","r","setTimeout","minDate","getDateInNativeFormat","maxDate","currentMonth","state","months","diffInMonths","scrollTo","maxMonthsToAdd","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","onEnd","setState","getMonths","scrollPosition","isYearChanges","Math","abs","monthsToPrependCount","min","monthsToPrepend","Array","from","length","_","index","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","monthsToAppendCount","monthsToAppend","slice","renderMain","positions","getMonthPositions","wrapperStyle","height","WRAPPER_HEIGHT","setRootNode","refRoot","wrapper","map","x","i","filter","top","isMonthVisible","renderMonth","separator","element","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","isHoliday","isWeekend","dateString","dateToInternalString","handleDateChange","dateShape","value","onValueChange","handleMonthYearChange","executeAnimations","pixelY","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","WheelEvent","preventDefault","wheelEndTimeout","clearTimeout","scrollToNearestWeek","scrollDirection","trasholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_SIZE","amount","pos","scrollAmmount","scrollAmount","minDateShape","maxDateShape","today","getTodayDate","initialDate","getInitialDate","initialMonth","getMonthInNativeFormat","initialYear","componentDidUpdate","prevProps","parseValue","getComponentsLikeNumber","componentWillUnmount","cancel","render","toNativeFormat","position","push","Component","__KONTUR_REACT_UI__","_day"],"mappings":"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","sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\nimport shallowEqual from 'shallowequal';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { cx } from '../../lib/theming/Emotion';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport { Nullable, Range } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { styles } from './Calendar.styles';\nimport { CalendarDateShape, create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\n\nexport interface CalendarProps extends CommonProps {\n /**\n * Вызывается при изменении `value`\n *\n * В аргументе хранится дата в формате `dd.mm.yyyy`\n */\n onValueChange?: (date: string) => void;\n /**\n * Задаёт текущую дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n value: Nullable<string>;\n /**\n * Задаёт максимальную возможную дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n maxDate?: string;\n /**\n * Задаёт минимальную возможную дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n minDate?: string;\n /**\n * Функция для определения праздничных дней\n * @default (_day, isWeekend) => isWeekend\n * @param {string} day - строка в формате `dd.mm.yyyy`\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье)\n *\n * @returns {boolean} `true` для выходного или `false` для рабочего дня\n */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n /**\n * Позволяет задать начальный месяц\n */\n initialMonth?: Range<1, 13>;\n /**\n * Позволяет задать начальный год\n */\n initialYear?: number;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n today: CalendarDateShape;\n scrollDirection: number;\n scrollTarget: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar__root',\n month: 'MonthView__month',\n dayCell: 'DayCellView__root',\n headerMonth: 'MonthView__headerMonth',\n headerYear: 'MonthView__headerYear',\n} as const;\n\ntype DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;\n\n/**\n * Компонент календаря из [DatePicker](https://tech.skbkontur.ru/react-ui/#/Components/DatePicker)'а\n */\n@rootNode\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n\n private static formatDate(date: number, month: number, year: number) {\n return new InternalDate().setComponents({ date, month, year }).toString({ withPad: true });\n }\n\n public static defaultProps: DefaultProps = {\n minDate: Calendar.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),\n maxDate: Calendar.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),\n isHoliday: (_day: string, isWeekend: boolean) => isWeekend,\n };\n\n private getProps = createPropsGetter(Calendar.defaultProps);\n\n private theme!: Theme;\n private wheelEndTimeout: SafeTimer;\n private root: Nullable<HTMLElement>;\n private animation = animation();\n private touchStartY: Nullable<number> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const { minDate, maxDate, value } = this.getProps();\n\n const minDateShape = this.getDateInNativeFormat(minDate);\n const maxDateShape = this.getDateInNativeFormat(maxDate);\n const dateShape = this.getDateInNativeFormat(value);\n\n const today = CalendarUtils.getTodayDate();\n const initialDate = CalendarUtils.getInitialDate({\n today,\n date: dateShape,\n minDate: minDateShape,\n maxDate: maxDateShape,\n });\n\n const initialMonth = CalendarUtils.getMonthInNativeFormat(this.props.initialMonth) ?? initialDate.month;\n const initialYear = this.props.initialYear ?? initialDate.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n today,\n scrollDirection: 1,\n scrollTarget: 0,\n };\n }\n\n public componentDidUpdate(prevProps: Readonly<CalendarProps>): void {\n const { value } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n const date = new InternalDate().parseValue(value).getComponentsLikeNumber();\n this.scrollToMonth(date.month - 1, date.year);\n }\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Прокручивает календарь до переданной даты\n * @public\n */\n public scrollToMonth = async (month: number, year: number) => {\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => globalObject.setTimeout(r, 0));\n }\n\n const minDate = this.getDateInNativeFormat(this.getProps().minDate);\n const maxDate = this.getDateInNativeFormat(this.getProps().maxDate);\n\n if (minDate && isGreater(minDate, create(32, month, year))) {\n this.scrollToMonth(minDate.month, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, month, year))) {\n this.scrollToMonth(maxDate.month, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - month - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () => {\n this.setState({\n months: CalendarUtils.getMonths(month, year),\n scrollPosition: 0,\n });\n };\n\n const isYearChanges = (state: CalendarState) => {\n return (\n state.months[1].year !== year &&\n // if diff in months is 2 or less,\n // either year is not changing either months already\n // have right isFirstInYear/isLastInYear flags\n Math.abs(diffInMonths) > 2\n );\n };\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) => {\n return MonthViewModel.create(month + index, year);\n });\n this.setState(\n (state) => {\n const yearChanges = isYearChanges(state);\n if (yearChanges) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[0].isFirstInYear = true;\n if (monthsToPrepend.length) {\n // Mutating item here is safe as it was just created\n monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;\n }\n }\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) => {\n return MonthViewModel.create(month + index - monthsToAppendCount + 2, year);\n });\n this.setState(\n (state) => {\n if (isYearChanges(state)) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[state.months.length - 1].isLastInYear = true;\n // Mutating item here is safe as it was just created\n if (monthsToAppend[0]) {\n monthsToAppend[0].isFirstInYear = true;\n }\n }\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private renderMain = () => {\n const positions = this.getMonthPositions();\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n\n const props = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={cx(styles.root(this.theme))}>\n <div style={wrapperStyle} className={styles.wrapper()}>\n {this.state.months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme))\n .map(this.renderMonth, this)}\n </div>\n <div className={styles.separator(this.theme)} />\n </div>\n </CommonWrapper>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n const date = this.getDateInNativeFormat(this.props.value);\n const minDate = this.getDateInNativeFormat(this.props.minDate);\n const maxDate = this.getDateInNativeFormat(this.props.maxDate);\n\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n maxDate={maxDate}\n minDate={minDate}\n today={this.state.today}\n value={date}\n onDateClick={this.handleDateChange}\n onMonthYearChange={this.handleMonthYearChange}\n isHoliday={this.isHoliday}\n />\n );\n }\n\n private isHoliday = ({ date, month, year, isWeekend }: CalendarDateShape & { isWeekend: boolean }) => {\n const dateString = InternalDateTransformer.dateToInternalString({ date, month: month + 1, year });\n\n return this.getProps().isHoliday(dateString, isWeekend);\n };\n\n private handleDateChange = (dateShape: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToInternalString({\n date: dateShape.date,\n month: dateShape.month + 1,\n year: dateShape.year,\n });\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private getDateInNativeFormat(date: Nullable<string>) {\n return new InternalDate().parseValue(date).toNativeFormat();\n }\n\n private getMonthPositions() {\n const { scrollPosition, months } = this.state;\n\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private handleMonthYearChange = (month: number, year: number) => {\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n globalObject.clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = globalObject.setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const trasholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_SIZE;\n\n if (scrollTarget < trasholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = trasholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) => {\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n }));\n },\n onEnd,\n );\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Calendar.tsx"],"names":["React","normalizeWheel","throttle","shallowEqual","globalObject","isInstanceOf","InternalDate","InternalDateTransformer","rootNode","cx","CommonWrapper","MAX_DATE","MAX_MONTH","MAX_YEAR","MIN_DATE","MIN_MONTH","MIN_YEAR","ThemeContext","animation","isMobile","createPropsGetter","themeConfig","MonthViewModel","CalendarScrollEvents","Month","styles","create","isGreater","isLess","CalendarUtils","CalendarDataTids","root","month","dayCell","headerMonth","headerYear","Calendar","formatDate","date","year","setComponents","toString","withPad","props","getProps","defaultProps","touchStartY","scrollToMonth","inProgress","finish","Promise","r","setTimeout","minDate","getDateInNativeFormat","maxDate","currentMonth","state","months","diffInMonths","scrollTo","maxMonthsToAdd","theme","MAX_MONTHS_TO_APPEND_ON_SCROLL","onEnd","setState","getMonths","scrollPosition","isYearChanges","Math","abs","monthsToPrependCount","min","monthsToPrepend","Array","from","length","_","index","yearChanges","isFirstInYear","isLastInYear","concat","getMonthsHeight","targetPosition","getHeight","monthsToAppendCount","monthsToAppend","slice","renderMain","positions","getMonthPositions","wrapperStyle","height","WRAPPER_HEIGHT","setRootNode","refRoot","wrapper","map","x","i","filter","top","isMonthVisible","renderMonth","separator","element","addEventListener","handleTouchStart","throttledHandleTouchMove","handleWheel","passive","removeEventListener","isHoliday","isWeekend","dateString","dateToInternalString","handleDateChange","dateShape","value","onValueChange","handleMonthYearChange","executeAnimations","pixelY","calculateScrollPosition","scrollTarget","handleWheelEnd","animate","deltaY","applyDelta","emit","event","TouchEvent","clientY","targetTouches","handleTouchMove","changedTouches","WheelEvent","preventDefault","wheelEndTimeout","clearTimeout","scrollToNearestWeek","scrollDirection","trasholdHeight","MONTH_TITLE_OFFSET_HEIGHT","DAY_SIZE","amount","pos","scrollAmmount","scrollAmount","minDateShape","maxDateShape","today","getTodayDate","initialDate","getInitialDate","initialMonth","getMonthInNativeFormat","initialYear","componentDidUpdate","prevProps","parseValue","getComponentsLikeNumber","componentWillUnmount","cancel","render","toNativeFormat","position","push","Component","__KONTUR_REACT_UI__","displayName","_day"],"mappings":"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","sourcesContent":["import React from 'react';\nimport normalizeWheel from 'normalize-wheel';\nimport throttle from 'lodash.throttle';\nimport shallowEqual from 'shallowequal';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { InternalDateTransformer } from '../../lib/date/InternalDateTransformer';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { cx } from '../../lib/theming/Emotion';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { MAX_DATE, MAX_MONTH, MAX_YEAR, MIN_DATE, MIN_MONTH, MIN_YEAR } from '../../lib/date/constants';\nimport { Nullable, Range } from '../../typings/utility-types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { animation } from '../../lib/animation';\nimport { isMobile } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { themeConfig } from './config';\nimport { MonthViewModel } from './MonthViewModel';\nimport * as CalendarScrollEvents from './CalendarScrollEvents';\nimport { Month } from './Month';\nimport { styles } from './Calendar.styles';\nimport { CalendarDateShape, create, isGreater, isLess } from './CalendarDateShape';\nimport * as CalendarUtils from './CalendarUtils';\n\nexport interface CalendarProps extends CommonProps {\n /**\n * Вызывается при изменении `value`\n *\n * В аргументе хранится дата в формате `dd.mm.yyyy`\n */\n onValueChange?: (date: string) => void;\n /**\n * Задаёт текущую дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n value: Nullable<string>;\n /**\n * Задаёт максимальную возможную дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n maxDate?: string;\n /**\n * Задаёт минимальную возможную дату\n *\n * Дата задаётся в формате `dd.mm.yyyy`\n */\n minDate?: string;\n /**\n * Функция для определения праздничных дней\n * @default (_day, isWeekend) => isWeekend\n * @param {string} day - строка в формате `dd.mm.yyyy`\n * @param {boolean} isWeekend - флаг выходного (суббота или воскресенье)\n *\n * @returns {boolean} `true` для выходного или `false` для рабочего дня\n */\n isHoliday?: (day: string, isWeekend: boolean) => boolean;\n /**\n * Позволяет задать начальный месяц\n */\n initialMonth?: Range<1, 13>;\n /**\n * Позволяет задать начальный год\n */\n initialYear?: number;\n}\n\nexport interface CalendarState {\n scrollPosition: number;\n months: MonthViewModel[];\n today: CalendarDateShape;\n scrollDirection: number;\n scrollTarget: number;\n}\n\nexport const CalendarDataTids = {\n root: 'Calendar__root',\n month: 'MonthView__month',\n dayCell: 'DayCellView__root',\n headerMonth: 'MonthView__headerMonth',\n headerYear: 'MonthView__headerYear',\n} as const;\n\ntype DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' | 'isHoliday'>>;\n\n/**\n * Компонент календаря из [DatePicker](https://tech.skbkontur.ru/react-ui/#/Components/DatePicker)'а\n */\n@rootNode\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\n public static __KONTUR_REACT_UI__ = 'Calendar';\n public static displayName = 'Calendar';\n\n private static formatDate(date: number, month: number, year: number) {\n return new InternalDate().setComponents({ date, month, year }).toString({ withPad: true });\n }\n\n public static defaultProps: DefaultProps = {\n minDate: Calendar.formatDate(MIN_DATE, MIN_MONTH, MIN_YEAR),\n maxDate: Calendar.formatDate(MAX_DATE, MAX_MONTH, MAX_YEAR),\n isHoliday: (_day: string, isWeekend: boolean) => isWeekend,\n };\n\n private getProps = createPropsGetter(Calendar.defaultProps);\n\n private theme!: Theme;\n private wheelEndTimeout: SafeTimer;\n private root: Nullable<HTMLElement>;\n private animation = animation();\n private touchStartY: Nullable<number> = null;\n private setRootNode!: TSetRootNode;\n\n constructor(props: CalendarProps) {\n super(props);\n\n const { minDate, maxDate, value } = this.getProps();\n\n const minDateShape = this.getDateInNativeFormat(minDate);\n const maxDateShape = this.getDateInNativeFormat(maxDate);\n const dateShape = this.getDateInNativeFormat(value);\n\n const today = CalendarUtils.getTodayDate();\n const initialDate = CalendarUtils.getInitialDate({\n today,\n date: dateShape,\n minDate: minDateShape,\n maxDate: maxDateShape,\n });\n\n const initialMonth = CalendarUtils.getMonthInNativeFormat(this.props.initialMonth) ?? initialDate.month;\n const initialYear = this.props.initialYear ?? initialDate.year;\n\n this.state = {\n scrollPosition: 0,\n months: CalendarUtils.getMonths(initialMonth, initialYear),\n today,\n scrollDirection: 1,\n scrollTarget: 0,\n };\n }\n\n public componentDidUpdate(prevProps: Readonly<CalendarProps>): void {\n const { value } = this.props;\n if (value && !shallowEqual(value, prevProps.value)) {\n const date = new InternalDate().parseValue(value).getComponentsLikeNumber();\n this.scrollToMonth(date.month - 1, date.year);\n }\n }\n\n public componentWillUnmount() {\n if (this.animation.inProgress()) {\n this.animation.cancel();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Прокручивает календарь до переданной даты\n * @public\n */\n public scrollToMonth = async (month: number, year: number) => {\n if (this.animation.inProgress()) {\n this.animation.finish();\n // FIXME: Dirty hack to await batched updates\n await new Promise((r) => globalObject.setTimeout(r, 0));\n }\n\n const minDate = this.getDateInNativeFormat(this.getProps().minDate);\n const maxDate = this.getDateInNativeFormat(this.getProps().maxDate);\n\n if (minDate && isGreater(minDate, create(32, month, year))) {\n this.scrollToMonth(minDate.month, minDate.year);\n return;\n }\n\n if (maxDate && isLess(maxDate, create(0, month, year))) {\n this.scrollToMonth(maxDate.month, maxDate.year);\n return;\n }\n\n const currentMonth = this.state.months[1];\n const diffInMonths = currentMonth.month + currentMonth.year * 12 - month - year * 12;\n\n if (diffInMonths === 0) {\n this.scrollTo(0);\n return;\n }\n\n const maxMonthsToAdd = themeConfig(this.theme).MAX_MONTHS_TO_APPEND_ON_SCROLL;\n\n const onEnd = () => {\n this.setState({\n months: CalendarUtils.getMonths(month, year),\n scrollPosition: 0,\n });\n };\n\n const isYearChanges = (state: CalendarState) => {\n return (\n state.months[1].year !== year &&\n // if diff in months is 2 or less,\n // either year is not changing either months already\n // have right isFirstInYear/isLastInYear flags\n Math.abs(diffInMonths) > 2\n );\n };\n\n // If scrolling upwards, prepend maximum maxMonthsToAdd months\n // and scroll to the first month\n if (diffInMonths > 0) {\n const monthsToPrependCount = Math.min(Math.abs(diffInMonths) - 1, maxMonthsToAdd);\n const monthsToPrepend = Array.from({ length: monthsToPrependCount }, (_, index) => {\n return MonthViewModel.create(month + index, year);\n });\n this.setState(\n (state) => {\n const yearChanges = isYearChanges(state);\n if (yearChanges) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[0].isFirstInYear = true;\n if (monthsToPrepend.length) {\n // Mutating item here is safe as it was just created\n monthsToPrepend[monthsToPrepend.length - 1].isLastInYear = true;\n }\n }\n return {\n months: monthsToPrepend.concat(state.months),\n scrollPosition: -CalendarUtils.getMonthsHeight(monthsToPrepend, this.theme),\n };\n },\n () => {\n const targetPosition = this.state.months[0].getHeight(this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n\n // If scrolling downwards, append maximum maxMonthsToAdd months\n // and scroll to the last but one month\n if (diffInMonths < 0) {\n const monthsToAppendCount = Math.min(Math.abs(diffInMonths), maxMonthsToAdd);\n const monthsToAppend = Array.from({ length: monthsToAppendCount }, (_, index) => {\n return MonthViewModel.create(month + index - monthsToAppendCount + 2, year);\n });\n this.setState(\n (state) => {\n if (isYearChanges(state)) {\n // Mutating here can lead to some unexpected bugs\n // but we couldn't find any yet\n state.months[state.months.length - 1].isLastInYear = true;\n // Mutating item here is safe as it was just created\n if (monthsToAppend[0]) {\n monthsToAppend[0].isFirstInYear = true;\n }\n }\n return { months: state.months.concat(monthsToAppend) };\n },\n () => {\n const targetPosition = -1 * CalendarUtils.getMonthsHeight(this.state.months.slice(1, -2), this.theme);\n this.scrollTo(targetPosition, onEnd);\n },\n );\n }\n };\n\n private renderMain = () => {\n const positions = this.getMonthPositions();\n const wrapperStyle = { height: themeConfig(this.theme).WRAPPER_HEIGHT };\n\n const props = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...props}>\n <div ref={this.refRoot} data-tid={CalendarDataTids.root} className={cx(styles.root(this.theme))}>\n <div style={wrapperStyle} className={styles.wrapper()}>\n {this.state.months\n .map<[number, MonthViewModel]>((x, i) => [positions[i], x])\n .filter(([top, month]) => CalendarUtils.isMonthVisible(top, month, this.theme))\n .map(this.renderMonth, this)}\n </div>\n <div className={styles.separator(this.theme)} />\n </div>\n </CommonWrapper>\n );\n };\n\n private refRoot = (element: HTMLElement | null) => {\n if (!this.root && element) {\n if (isMobile) {\n element.addEventListener('touchstart', this.handleTouchStart);\n element.addEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n element.addEventListener('wheel', this.handleWheel, { passive: false });\n }\n }\n if (this.root && !element) {\n if (isMobile) {\n this.root.removeEventListener('touchstart', this.handleTouchStart);\n this.root.removeEventListener('touchmove', this.throttledHandleTouchMove);\n } else {\n this.root.removeEventListener('wheel', this.handleWheel);\n }\n }\n this.root = element;\n };\n\n private renderMonth([top, month]: [number, MonthViewModel]) {\n const date = this.getDateInNativeFormat(this.props.value);\n const minDate = this.getDateInNativeFormat(this.props.minDate);\n const maxDate = this.getDateInNativeFormat(this.props.maxDate);\n\n return (\n <Month\n key={month.month + '-' + month.year}\n top={top}\n month={month}\n maxDate={maxDate}\n minDate={minDate}\n today={this.state.today}\n value={date}\n onDateClick={this.handleDateChange}\n onMonthYearChange={this.handleMonthYearChange}\n isHoliday={this.isHoliday}\n />\n );\n }\n\n private isHoliday = ({ date, month, year, isWeekend }: CalendarDateShape & { isWeekend: boolean }) => {\n const dateString = InternalDateTransformer.dateToInternalString({ date, month: month + 1, year });\n\n return this.getProps().isHoliday(dateString, isWeekend);\n };\n\n private handleDateChange = (dateShape: CalendarDateShape) => {\n const value = InternalDateTransformer.dateToInternalString({\n date: dateShape.date,\n month: dateShape.month + 1,\n year: dateShape.year,\n });\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private getDateInNativeFormat(date: Nullable<string>) {\n return new InternalDate().parseValue(date).toNativeFormat();\n }\n\n private getMonthPositions() {\n const { scrollPosition, months } = this.state;\n\n const positions = [scrollPosition - months[0].getHeight(this.theme)];\n for (let i = 1; i < months.length; i++) {\n const position = positions[i - 1] + months[i - 1].getHeight(this.theme);\n positions.push(position);\n }\n return positions;\n }\n\n private handleMonthYearChange = (month: number, year: number) => {\n this.scrollToMonth(month, year);\n };\n\n private executeAnimations = (pixelY: number) => {\n this.setState(({ months, scrollPosition }) => {\n const targetPosition = CalendarUtils.calculateScrollPosition(\n months,\n scrollPosition,\n pixelY,\n this.theme,\n ).scrollPosition;\n return { scrollTarget: targetPosition };\n }, this.handleWheelEnd);\n\n this.animation.animate(pixelY, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n\n CalendarScrollEvents.emit();\n };\n\n private handleTouchStart = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const clientY = event.targetTouches[0].clientY;\n this.touchStartY = clientY;\n };\n\n private handleTouchMove = (event: Event) => {\n if (!isInstanceOf(event, globalObject.TouchEvent)) {\n return;\n }\n\n const { clientY } = event.changedTouches[0];\n\n const deltaY = (this.touchStartY || 0) - clientY;\n this.touchStartY = clientY;\n\n this.executeAnimations(deltaY);\n };\n\n private throttledHandleTouchMove = throttle(this.handleTouchMove, 10);\n\n private handleWheel = (event: Event) => {\n if (!isInstanceOf(event, globalObject.WheelEvent)) {\n return;\n }\n event.preventDefault();\n const { pixelY } = normalizeWheel(event);\n\n this.executeAnimations(pixelY);\n };\n\n private handleWheelEnd = () => {\n if (this.wheelEndTimeout) {\n globalObject.clearTimeout(this.wheelEndTimeout);\n }\n this.wheelEndTimeout = globalObject.setTimeout(this.scrollToNearestWeek, 300);\n };\n private scrollToNearestWeek = () => {\n const { scrollTarget, scrollDirection } = this.state;\n\n const trasholdHeight = themeConfig(this.theme).MONTH_TITLE_OFFSET_HEIGHT + themeConfig(this.theme).DAY_SIZE;\n\n if (scrollTarget < trasholdHeight) {\n let targetPosition = 0;\n if (scrollDirection < 0) {\n targetPosition = trasholdHeight;\n }\n\n this.setState({ scrollTarget: targetPosition }, () => {\n const amount = scrollTarget - targetPosition;\n this.animation.animate(amount, (deltaY) => {\n // FIXME: Typescript not resolving setState cb type\n this.setState(CalendarUtils.applyDelta(deltaY, this.theme) as any);\n });\n });\n }\n };\n\n private scrollTo = (pos: number, onEnd?: () => void) => {\n const scrollAmmount = pos - this.state.scrollPosition;\n return this.scrollAmount(scrollAmmount, onEnd);\n };\n\n private scrollAmount = (scrollAmmount: number, onEnd?: () => void) => {\n return this.animation.animate(\n scrollAmmount,\n (deltaY) => {\n this.setState(({ scrollPosition }) => ({\n scrollPosition: scrollPosition + deltaY,\n }));\n },\n onEnd,\n );\n };\n}\n"]}
|
|
@@ -66,6 +66,7 @@ declare type DefaultProps = Required<Pick<CalendarProps, 'minDate' | 'maxDate' |
|
|
|
66
66
|
*/
|
|
67
67
|
export declare class Calendar extends React.Component<CalendarProps, CalendarState> {
|
|
68
68
|
static __KONTUR_REACT_UI__: string;
|
|
69
|
+
static displayName: string;
|
|
69
70
|
private static formatDate;
|
|
70
71
|
static defaultProps: DefaultProps;
|
|
71
72
|
private getProps;
|
|
@@ -60,6 +60,6 @@ var Center = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$
|
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
return Center;
|
|
63
|
-
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Center', _class2.defaultProps = {
|
|
63
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Center', _class2.displayName = 'Center', _class2.defaultProps = {
|
|
64
64
|
align: 'center'
|
|
65
65
|
}, _temp)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Center.tsx"],"names":["React","CommonWrapper","cx","rootNode","createPropsGetter","styles","CenterDataTids","root","Center","getProps","defaultProps","renderMain","props","align","rest","rootAlignLeft","rootAlignRight","spring","container","children","render","setRootNode","Component","__KONTUR_REACT_UI__"],"mappings":"yRAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAGA,SAAsBC,aAAtB,QAAmE,8BAAnE;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAoD,6BAApD;;AAEA,SAASC,MAAT,QAAuB,iBAAvB;;;;;;;;;;;;;;;;;;AAkBA,OAAO,IAAMC,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,cADsB,EAAvB;;;;;;;;;;AAWP,OAJA;AACA;AACA,GAEA,IAAaC,MAAb,GADCL,QACD
|
|
1
|
+
{"version":3,"sources":["Center.tsx"],"names":["React","CommonWrapper","cx","rootNode","createPropsGetter","styles","CenterDataTids","root","Center","getProps","defaultProps","renderMain","props","align","rest","rootAlignLeft","rootAlignRight","spring","container","children","render","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"mappings":"yRAAA,OAAOA,KAAP,MAAkB,OAAlB;;;AAGA,SAAsBC,aAAtB,QAAmE,8BAAnE;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAoD,6BAApD;;AAEA,SAASC,MAAT,QAAuB,iBAAvB;;;;;;;;;;;;;;;;;;AAkBA,OAAO,IAAMC,cAAc,GAAG;AAC5BC,EAAAA,IAAI,EAAE,cADsB,EAAvB;;;;;;;;;;AAWP,OAJA;AACA;AACA,GAEA,IAAaC,MAAb,GADCL,QACD;;;;;AAOUM,IAAAA,QAPV,GAOqBL,iBAAiB,CAACI,MAAM,CAACE,YAAR,CAPtC;;;;;;;;;;;AAkBUC,IAAAA,UAlBV,GAkBuB,UAACC,KAAD,EAA2D;AAC9E,UAAQC,KAAR,GAA2BD,KAA3B,CAAQC,KAAR,CAAkBC,IAAlB,iCAA2BF,KAA3B;;AAEA;AACE;AACE,sBAAUN,cAAc,CAACC,IAD3B;AAEMO,QAAAA,IAFN;AAGE,UAAA,SAAS,EAAEZ,EAAE;AACVG,UAAAA,MAAM,CAACE,IAAP,EADU,IACM,IADN;AAEVF,UAAAA,MAAM,CAACU,aAAP,EAFU,IAEeF,KAAK,KAAK,MAFzB;AAGVR,UAAAA,MAAM,CAACW,cAAP,EAHU,IAGgBH,KAAK,KAAK,OAH1B,OAHf;;;AASE,sCAAM,SAAS,EAAER,MAAM,CAACY,MAAP,EAAjB,GATF;AAUE,sCAAM,SAAS,EAAEZ,MAAM,CAACa,SAAP,EAAjB,IAAsC,MAAKN,KAAL,CAAWO,QAAjD,CAVF,CADF;;;AAcD,KAnCH,oDAWSC,MAXT,GAWE,kBAAgB,CACd,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,KAAKC,WAAjC,IAAkD,KAAKZ,QAAL,EAAlD,GACG,KAAKE,UADR,CADF,CAKD,CAjBH,iBAA4BX,KAAK,CAACsB,SAAlC,WACgBC,mBADhB,GACsC,QADtC,UAEgBC,WAFhB,GAE8B,QAF9B,UAIgBd,YAJhB,GAI6C,EACzCG,KAAK,EAAE,QADkC,EAJ7C","sourcesContent":["import React from 'react';\n\nimport { Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\n\nimport { styles } from './Center.styles';\n\nexport type HorizontalAlign = 'left' | 'center' | 'right';\n\nexport interface CenterProps\n extends CommonProps,\n Override<\n React.HTMLAttributes<HTMLDivElement>,\n {\n /**\n * Определяет, как контент будет выровнен по горизонтали.\n *\n * **Допустимые значения**: `\"left\"`, `\"center\"`, `\"right\"`.\n */\n align?: HorizontalAlign;\n }\n > {}\n\nexport const CenterDataTids = {\n root: 'Center__root',\n} as const;\n\ntype DefaultProps = Required<Pick<CenterProps, 'align'>>;\ntype DefaultizedCenterProps = DefaultizedProps<CenterProps, DefaultProps>;\n\n/**\n * Контейнер, который центрирует элементы внутри себя.\n */\n@rootNode\nexport class Center extends React.Component<CenterProps> {\n public static __KONTUR_REACT_UI__ = 'Center';\n public static displayName = 'Center';\n\n public static defaultProps: DefaultProps = {\n align: 'center',\n };\n private getProps = createPropsGetter(Center.defaultProps);\n\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n private renderMain = (props: CommonWrapperRestProps<DefaultizedCenterProps>) => {\n const { align, ...rest } = props;\n\n return (\n <div\n data-tid={CenterDataTids.root}\n {...rest}\n className={cx({\n [styles.root()]: true,\n [styles.rootAlignLeft()]: align === 'left',\n [styles.rootAlignRight()]: align === 'right',\n })}\n >\n <span className={styles.spring()} />\n <span className={styles.container()}>{this.props.children}</span>\n </div>\n );\n };\n}\n"]}
|
|
@@ -20,6 +20,7 @@ declare type DefaultProps = Required<Pick<CenterProps, 'align'>>;
|
|
|
20
20
|
*/
|
|
21
21
|
export declare class Center extends React.Component<CenterProps> {
|
|
22
22
|
static __KONTUR_REACT_UI__: string;
|
|
23
|
+
static displayName: string;
|
|
23
24
|
static defaultProps: DefaultProps;
|
|
24
25
|
private getProps;
|
|
25
26
|
private setRootNode;
|
|
@@ -333,7 +333,7 @@ export var Checkbox = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
|
|
|
333
333
|
;
|
|
334
334
|
|
|
335
335
|
return Checkbox;
|
|
336
|
-
}(React.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Checkbox', _class2.defaultProps = {
|
|
336
|
+
}(React.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Checkbox', _class2.displayName = 'Checkbox', _class2.defaultProps = {
|
|
337
337
|
size: 'small'
|
|
338
338
|
}, _class2.propTypes = {
|
|
339
339
|
checked: PropTypes.bool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","globalObject","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isIE11","CommonWrapper","cx","rootNode","fixFirefoxModifiedClickOnLabel","isTheme2022","createPropsGetter","styles","globalClasses","CheckedIcon","IndeterminateIcon","CheckboxDataTids","root","Checkbox","getProps","defaultProps","state","focusedByTab","indeterminate","props","initialIndeterminate","isShiftPressed","input","createRef","handleShiftPress","e","key","setState","handleShiftRelease","componentDidMount","current","document","addEventListener","componentWillUnmount","removeEventListener","setIndeterminate","resetIndeterminate","renderMain","error","warning","size","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","ariaDescribedby","ariaLabel","rest","isIndeterminate","_isTheme2022","theme","iconClass","icon","iconFixPosition","checked","iconUnchecked","iconSize","parseInt","getCheckboxBoxSize","IconCheck","IconSquare","rootClass","getRootSizeClassName","rootFallback","rootChecked","rootDisableTextSelect","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","box","getBoxWrapperSizeClassName","boxWrapper","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","rootLarge","rootMedium","rootSmall","boxWrapperLarge","boxWrapperMedium","boxWrapperSmall","checkboxBoxSizeLarge","checkboxBoxSizeMedium","checkboxBoxSizeSmall","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","propTypes","bool","func"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles, globalClasses } from './Checkbox.styles';\nimport { CheckedIcon } from './CheckedIcon';\nimport { IndeterminateIcon } from './IndeterminateIcon';\n\n/**\n * @deprecated use SizeProp\n */\nexport type CheckboxSize = SizeProp;\n\nexport interface CheckboxProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Размер */\n size?: SizeProp;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\ntype DefaultProps = Required<Pick<CheckboxProps, 'size'>>;\n\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(Checkbox.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getBoxWrapperSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.boxWrapperLarge(this.theme);\n case 'medium':\n return styles.boxWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.boxWrapperSmall(this.theme);\n }\n }\n\n private getCheckboxBoxSize() {\n switch (this.getProps().size) {\n case 'large':\n return this.theme.checkboxBoxSizeLarge;\n case 'medium':\n return this.theme.checkboxBoxSizeMedium;\n case 'small':\n default:\n return this.theme.checkboxBoxSizeSmall;\n }\n }\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleShiftPress);\n globalObject.document?.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n globalObject.document?.removeEventListener('keydown', this.handleShiftPress);\n globalObject.document?.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n size,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const _isTheme2022 = isTheme2022(this.theme);\n\n const iconClass = cx(\n styles.icon(),\n !_isTheme2022 && styles.iconFixPosition(),\n !props.checked && !isIndeterminate && styles.iconUnchecked(),\n );\n\n const iconSize = parseInt(this.getCheckboxBoxSize());\n const IconCheck = _isTheme2022 ? (\n <span className={iconClass}>\n <CheckedIcon size={iconSize} />\n </span>\n ) : (\n <OkIcon className={iconClass} />\n );\n const IconSquare = _isTheme2022 ? (\n <span className={iconClass}>\n <IndeterminateIcon size={iconSize} />\n </span>\n ) : (\n <SquareIcon className={iconClass} />\n );\n\n const rootClass = cx(this.getRootSizeClassName(), {\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div\n className={cx(this.getBoxWrapperSizeClassName(), {\n [styles.boxWrapper(this.theme)]: true,\n })}\n >\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} aria-label={ariaLabel} aria-describedby={ariaDescribedby} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","globalObject","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isIE11","CommonWrapper","cx","rootNode","fixFirefoxModifiedClickOnLabel","isTheme2022","createPropsGetter","styles","globalClasses","CheckedIcon","IndeterminateIcon","CheckboxDataTids","root","Checkbox","getProps","defaultProps","state","focusedByTab","indeterminate","props","initialIndeterminate","isShiftPressed","input","createRef","handleShiftPress","e","key","setState","handleShiftRelease","componentDidMount","current","document","addEventListener","componentWillUnmount","removeEventListener","setIndeterminate","resetIndeterminate","renderMain","error","warning","size","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","ariaDescribedby","ariaLabel","rest","isIndeterminate","_isTheme2022","theme","iconClass","icon","iconFixPosition","checked","iconUnchecked","iconSize","parseInt","getCheckboxBoxSize","IconCheck","IconSquare","rootClass","getRootSizeClassName","rootFallback","rootChecked","rootDisableTextSelect","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","box","getBoxWrapperSizeClassName","boxWrapper","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","rootLarge","rootMedium","rootSmall","boxWrapperLarge","boxWrapperMedium","boxWrapperSmall","checkboxBoxSizeLarge","checkboxBoxSizeMedium","checkboxBoxSizeSmall","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","bool","func"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles, globalClasses } from './Checkbox.styles';\nimport { CheckedIcon } from './CheckedIcon';\nimport { IndeterminateIcon } from './IndeterminateIcon';\n\n/**\n * @deprecated use SizeProp\n */\nexport type CheckboxSize = SizeProp;\n\nexport interface CheckboxProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Размер */\n size?: SizeProp;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\ntype DefaultProps = Required<Pick<CheckboxProps, 'size'>>;\n\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n public static displayName = 'Checkbox';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(Checkbox.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getBoxWrapperSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.boxWrapperLarge(this.theme);\n case 'medium':\n return styles.boxWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.boxWrapperSmall(this.theme);\n }\n }\n\n private getCheckboxBoxSize() {\n switch (this.getProps().size) {\n case 'large':\n return this.theme.checkboxBoxSizeLarge;\n case 'medium':\n return this.theme.checkboxBoxSizeMedium;\n case 'small':\n default:\n return this.theme.checkboxBoxSizeSmall;\n }\n }\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleShiftPress);\n globalObject.document?.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n globalObject.document?.removeEventListener('keydown', this.handleShiftPress);\n globalObject.document?.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n size,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const _isTheme2022 = isTheme2022(this.theme);\n\n const iconClass = cx(\n styles.icon(),\n !_isTheme2022 && styles.iconFixPosition(),\n !props.checked && !isIndeterminate && styles.iconUnchecked(),\n );\n\n const iconSize = parseInt(this.getCheckboxBoxSize());\n const IconCheck = _isTheme2022 ? (\n <span className={iconClass}>\n <CheckedIcon size={iconSize} />\n </span>\n ) : (\n <OkIcon className={iconClass} />\n );\n const IconSquare = _isTheme2022 ? (\n <span className={iconClass}>\n <IndeterminateIcon size={iconSize} />\n </span>\n ) : (\n <SquareIcon className={iconClass} />\n );\n\n const rootClass = cx(this.getRootSizeClassName(), {\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div\n className={cx(this.getBoxWrapperSizeClassName(), {\n [styles.boxWrapper(this.theme)]: true,\n })}\n >\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} aria-label={ariaLabel} aria-describedby={ariaDescribedby} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
|
|
@@ -59,6 +59,7 @@ export declare const CheckboxDataTids: {
|
|
|
59
59
|
declare type DefaultProps = Required<Pick<CheckboxProps, 'size'>>;
|
|
60
60
|
export declare class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {
|
|
61
61
|
static __KONTUR_REACT_UI__: string;
|
|
62
|
+
static displayName: string;
|
|
62
63
|
static defaultProps: DefaultProps;
|
|
63
64
|
private getProps;
|
|
64
65
|
private getRootSizeClassName;
|
|
@@ -125,7 +125,7 @@ export var ComboBox = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
|
|
|
125
125
|
};
|
|
126
126
|
|
|
127
127
|
return ComboBox;
|
|
128
|
-
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'ComboBox', _class2.defaultProps = {
|
|
128
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'ComboBox', _class2.displayName = 'ComboBox', _class2.defaultProps = {
|
|
129
129
|
itemToValue: function itemToValue(item) {
|
|
130
130
|
return item.value;
|
|
131
131
|
},
|