@skbkontur/react-ui 4.21.2 → 4.21.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- 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 -0
- package/cjs/components/Button/Button.js +2 -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/Calendar/DayCellView.js +8 -5
- package/cjs/components/Calendar/DayCellView.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/CurrencyLabel/CurrencyLabel.d.ts +1 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +1 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.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/FileUploader/FileUploader.js +2 -1
- package/cjs/components/FileUploader/FileUploader.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 +2 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +4 -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 +3 -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/Input/Input.d.ts +1 -0
- package/cjs/components/Input/Input.js +2 -1
- package/cjs/components/Input/Input.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/MenuFooter/MenuFooter.d.ts +1 -0
- package/cjs/components/MenuFooter/MenuFooter.js +1 -0
- package/cjs/components/MenuFooter/MenuFooter.js.map +1 -1
- package/cjs/components/MenuHeader/MenuHeader.d.ts +1 -0
- package/cjs/components/MenuHeader/MenuHeader.js +1 -0
- package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +4 -0
- package/cjs/components/MenuItem/MenuItem.js +29 -10
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuSeparator/MenuSeparator.d.ts +1 -0
- package/cjs/components/MenuSeparator/MenuSeparator.js +2 -1
- package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
- package/cjs/components/MiniModal/MiniModal.js +0 -2
- package/cjs/components/MiniModal/MiniModal.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/Modal/ModalClose.d.ts +4 -0
- package/cjs/components/Modal/ModalClose.js +4 -1
- package/cjs/components/Modal/ModalClose.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.d.ts +1 -0
- package/cjs/components/Modal/ModalFooter.js +1 -0
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +1 -0
- package/cjs/components/Modal/ModalHeader.js +1 -0
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Modal/ModalSeparator.d.ts +4 -0
- package/cjs/components/Modal/ModalSeparator.js +4 -1
- package/cjs/components/Modal/ModalSeparator.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +1 -0
- package/cjs/components/Paging/Paging.js +10 -6
- 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 +4 -0
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +4 -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 +2 -0
- package/cjs/components/Select/Select.js +5 -2
- 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/SidePageCloseButton.d.ts +5 -1
- package/cjs/components/SidePage/SidePageCloseButton.js +4 -1
- package/cjs/components/SidePage/SidePageCloseButton.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/SingleToast/SingleToast.d.ts +2 -0
- package/cjs/components/SingleToast/SingleToast.js +4 -1
- package/cjs/components/SingleToast/SingleToast.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 +7 -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 +3 -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 +8 -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 +3 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +4 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
- package/cjs/internal/CommonWrapper/CommonWrapper.js +7 -56
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
- package/cjs/internal/CommonWrapper/extractCommonProps.js +34 -0
- package/cjs/internal/CommonWrapper/extractCommonProps.js.map +1 -0
- package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
- package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js +12 -0
- package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
- package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js +23 -0
- package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/index.d.ts +2 -0
- package/cjs/internal/CommonWrapper/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/types.d.ts +25 -0
- package/cjs/internal/CommonWrapper/types.js +1 -0
- package/cjs/internal/CommonWrapper/types.js.map +1 -0
- 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/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.js +3 -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 +3 -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 +3 -0
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +7 -2
- 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/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/locale/LocaleContext.js +2 -1
- package/cjs/lib/locale/LocaleContext.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js +4 -1
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.js +2 -1
- package/cjs/lib/theming/ThemeContext.js.map +1 -1
- package/cjs/lib/toKebabCase.d.ts +1 -0
- package/cjs/lib/toKebabCase.js +10 -0
- package/cjs/lib/toKebabCase.js.map +1 -0
- package/cjs/typings/global-react.d.ts +12 -0
- 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 -0
- 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/Calendar/DayCellView/DayCellView.js +9 -3
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- 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/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -0
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.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/FileUploader/FileUploader/FileUploader.js +2 -1
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- 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 +2 -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/Input/Input/Input.js +1 -1
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.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/MenuFooter/MenuFooter/MenuFooter.js +1 -0
- package/components/MenuFooter/MenuFooter/MenuFooter.js.map +1 -1
- package/components/MenuFooter/MenuFooter.d.ts +1 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js +1 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuHeader/MenuHeader.d.ts +1 -0
- package/components/MenuItem/MenuItem/MenuItem.js +29 -6
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +4 -0
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +1 -0
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator.d.ts +1 -0
- package/components/MiniModal/MiniModal/MiniModal.js +0 -1
- package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
- 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/Modal/ModalClose/ModalClose.js +3 -1
- package/components/Modal/ModalClose/ModalClose.js.map +1 -1
- package/components/Modal/ModalClose.d.ts +4 -0
- package/components/Modal/ModalFooter/ModalFooter.js +1 -0
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalFooter.d.ts +1 -0
- package/components/Modal/ModalHeader/ModalHeader.js +1 -0
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +1 -0
- package/components/Modal/ModalSeparator/ModalSeparator.js +3 -1
- package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
- package/components/Modal/ModalSeparator.d.ts +4 -0
- package/components/Paging/Paging/Paging.js +11 -5
- 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 +3 -1
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -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 +4 -2
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +2 -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/SidePageCloseButton/SidePageCloseButton.js +3 -1
- package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
- package/components/SidePage/SidePageCloseButton.d.ts +5 -1
- 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/SingleToast/SingleToast/SingleToast.js +2 -0
- package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
- package/components/SingleToast/SingleToast.d.ts +2 -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 +6 -2
- 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 +2 -2
- 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/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js +3 -1
- package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +8 -38
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +5 -26
- package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js +31 -0
- package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +1 -0
- package/internal/CommonWrapper/extractCommonProps/package.json +6 -0
- package/internal/CommonWrapper/extractCommonProps.d.ts +3 -0
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js +12 -0
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes/package.json +6 -0
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes.d.ts +2 -0
- package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js +16 -0
- package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/getVisualStateDataAttributes/package.json +6 -0
- package/internal/CommonWrapper/getVisualStateDataAttributes.d.ts +3 -0
- package/internal/CommonWrapper/index/index.js +2 -1
- package/internal/CommonWrapper/index/index.js.map +1 -1
- package/internal/CommonWrapper/index.d.ts +2 -0
- package/internal/CommonWrapper/types/package.json +6 -0
- package/internal/CommonWrapper/types/types.js +1 -0
- package/internal/CommonWrapper/types/types.js.map +1 -0
- package/internal/CommonWrapper/types.d.ts +25 -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/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +1 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.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 +2 -1
- 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 +4 -1
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.d.ts +3 -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/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/locale/LocaleContext/LocaleContext.js +2 -1
- package/lib/locale/LocaleContext/LocaleContext.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +1 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +2 -0
- package/lib/theming/ThemeContext/ThemeContext.js +2 -1
- package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
- package/lib/toKebabCase/package.json +6 -0
- package/lib/toKebabCase/toKebabCase.js +7 -0
- package/lib/toKebabCase/toKebabCase.js.map +1 -0
- package/lib/toKebabCase.d.ts +1 -0
- package/package.json +8 -8
- package/typings/global-react.d.ts +12 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FileUploader.tsx"],"names":["React","useCallback","useContext","useEffect","useImperativeHandle","useRef","useState","globalObject","isBrowser","getAttachedFile","cx","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","ThemeContext","UploadIcon","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","CommonWrapper","FileUploaderFileValidationResult","useFileUploaderSize","isTheme2022","UploadIcon2022","globalClasses","jsStyles","stopPropagation","e","FileUploaderDataTids","root","content","link","input","defaultRenderFile","file","fileNode","_FileUploader","forwardRef","props","ref","theme","_isTheme2022","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","size","renderFile","inputProps","files","setFiles","removeFile","reset","setFileValidationResult","isMinLengthReached","locale","inputRef","fileDivRef","isAsync","isSingleMode","isLinkVisible","setIsLinkVisible","upload","tryValidateAndUpload","forEach","validationMessage","id","sizeClassName","small","sizeSmall","medium","sizeMedium","large","sizeLarge","sizeIconClass","iconSmall","iconMedium","iconLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","filesArray","Array","from","attachedFiles","map","length","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","current","document","focus","isTabPressed","blur","getRootNode","rootNodeRef","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hovered","setHovered","uploadButtonClassNames","uploadButton","uploadButtonFocus","dragOver","canDrop","uploadButtonWrapperClassNames","windowDragOver","windowDragOver2022","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","contentClassNames","contentWithFiles","linkClassNames","linkHovered","linkDisabled","iconSizes","parseInt","btnIconSizeSmall","btnIconSizeMedium","btnIconSizeLarge","choosedFile","chooseFile","String","fromCharCode","afterLinkText","afterLinkText_HasFiles","singleFile","orDragHere","visuallyHidden","FileUploader","memo","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { FileUploaderAttachedFile, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { InstanceWithRootNode } from '../../lib/rootNode';\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { FileUploaderControlContext } from '../../internal/FileUploaderControl/FileUploaderControlContext';\nimport { useControlLocale } from '../../internal/FileUploaderControl/hooks/useControlLocale';\nimport { useUpload } from '../../internal/FileUploaderControl/hooks/useUpload';\nimport { useDrop } from '../../hooks/useDrop';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { UploadIcon } from '../../internal/icons/16px';\nimport { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { UploadIcon as UploadIcon2022 } from './UploadIcon';\nimport { globalClasses, jsStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\n/**\n * @deprecated use SizeProp\n */\nexport type FileUploaderSize = SizeProp;\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Состояние ошибки всего контрола */\n error?: boolean;\n /** Состояние предупреждения всего контрола */\n warning?: boolean;\n /** Свойство ширины. */\n width?: React.CSSProperties['width'];\n /**\n * Задаёт размер контрола.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n /** Свойство, скрывающее отображение файлов. */\n hideFiles?: boolean;\n\n /** Функция, через которую отправляем файлы. Используется для отслеживания статуса загрузки файла. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n /** Срабатывает при удачной попытке отправки через request */\n onRequestSuccess?: (fileId: string) => void;\n /** Срабатывает при неудачной попытке отправки через request */\n onRequestError?: (fileId: string) => void;\n\n /**\n * Функция валидации каждого файла.\n * Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку.\n * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /**\n * Функция, позволяющая кастомизировать файлы.\n * Через нее можно вешать кастомные валидации на каждый файл.\n * */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n input: 'FileUploader__input',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = React.forwardRef<FileUploaderRef, _FileUploaderProps>((props: _FileUploaderProps, ref) => {\n const theme = useContext(ThemeContext);\n const _isTheme2022 = isTheme2022(theme);\n\n const {\n disabled,\n error,\n warning,\n multiple = false,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size = 'small',\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult, isMinLengthReached } =\n useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const fileDivRef = useRef<HTMLDivElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\n const [isLinkVisible, setIsLinkVisible] = useState(true);\n const upload = useUpload(request, onRequestSuccess, onRequestError);\n\n const tryValidateAndUpload = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n files.forEach(async (file) => {\n const validationMessage = validateBeforeUpload && (await validateBeforeUpload(file));\n\n if (!validationMessage) {\n isAsync && upload(file);\n } else {\n setFileValidationResult(file.id, FileUploaderFileValidationResult.error(validationMessage));\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsStyles.sizeSmall(theme),\n medium: jsStyles.sizeMedium(theme),\n large: jsStyles.sizeLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: jsStyles.iconSmall(theme),\n medium: jsStyles.iconMedium(theme),\n large: jsStyles.iconLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: jsStyles.contentInnerSmall(theme),\n medium: jsStyles.contentInnerMedium(theme),\n large: jsStyles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles) {\n return;\n }\n\n let filesArray = Array.from(newFiles);\n\n if (isSingleMode) {\n filesArray = [filesArray[0]];\n }\n\n const attachedFiles = filesArray.map(getAttachedFile);\n\n if (isSingleMode && attachedFiles.length && files.length) {\n removeFile(files[0].id);\n }\n\n if (attachedFiles.length) {\n setFiles(attachedFiles);\n tryValidateAndUpload(attachedFiles);\n }\n },\n [tryValidateAndUpload, setFiles, isSingleMode, files, removeFile],\n );\n\n const handleDrop = useCallback(\n (event) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n const { files } = dataTransfer;\n\n if (files?.length > 0) {\n handleChange(files);\n dataTransfer.clearData();\n }\n },\n [handleChange, disabled],\n );\n\n const { isDraggable, ref: labelRef } = useDrop<HTMLLabelElement>({ onDrop: handleDrop });\n const { isDraggable: isWindowDraggable, ref: windowRef } = useDrop<Document>();\n\n if (isBrowser(globalObject)) {\n windowRef.current = globalObject.document;\n }\n\n const focus = useCallback(() => {\n keyListener.isTabPressed = true;\n inputRef.current?.focus();\n }, []);\n\n const blur = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n useImperativeHandle(ref, () => ({ focus, blur, reset, getRootNode: () => rootNodeRef.current }), [\n ref,\n blur,\n focus,\n reset,\n ]);\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!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 setFocusedByTab(true);\n }\n });\n onFocus?.(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedByTab(false);\n if (!disabled) {\n onBlur?.(e);\n }\n };\n\n const [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = cx(\n jsStyles.uploadButton(theme),\n sizeClassName,\n focusedByTab && jsStyles.uploadButtonFocus(theme),\n disabled && jsStyles.disabled(theme),\n !disabled && hovered && jsStyles.hovered(theme),\n !!warning && jsStyles.warning(theme),\n !!error && jsStyles.error(theme),\n isDraggable && !disabled && jsStyles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = cx(\n !_isTheme2022 && canDrop && jsStyles.windowDragOver(theme),\n _isTheme2022 && canDrop && jsStyles.windowDragOver2022(theme),\n );\n\n const uploadButtonIconClassNames = cx(jsStyles.icon(theme), sizeIconClass, disabled && jsStyles.iconDisabled(theme));\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const contentClassNames = cx(jsStyles.content(), hasOneFileForSingle && jsStyles.contentWithFiles());\n\n const linkClassNames = cx(\n jsStyles.link(theme),\n !disabled && hovered && jsStyles.linkHovered(theme),\n disabled && jsStyles.linkDisabled(theme),\n );\n\n useEffect(() => {\n setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);\n }, [isMinLengthReached, hasOneFileForSingle]);\n\n const rootNodeRef = useRef(null);\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(theme.btnIconSizeSmall),\n medium: parseInt(theme.btnIconSizeMedium),\n large: parseInt(theme.btnIconSizeLarge),\n };\n const icon = _isTheme2022 ? <UploadIcon2022 size={iconSizes[size]} /> : <UploadIcon />;\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={jsStyles.root(theme)}\n style={useMemoObject({ width })}\n ref={rootNodeRef}\n >\n {!hideFiles && !isSingleMode && !!files.length && <FileUploaderFileList renderFile={renderFile} size={size} />}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div\n data-tid={FileUploaderDataTids.content}\n className={cx(contentClassNames, { [contentInnerClass]: !files.length || !isSingleMode })}\n >\n {isLinkVisible && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n )}\n {isLinkVisible && String.fromCharCode(0xa0) /* */}\n <div\n className={cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? jsStyles.afterLinkText_HasFiles(theme) : jsStyles.afterLinkText(theme),\n )}\n >\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={jsStyles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} size={size} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere} \n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )}\n </div>\n </div>\n <input\n {...inputProps}\n data-tid={FileUploaderDataTids.input}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд\n value={''}\n />\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"]}
|
|
1
|
+
{"version":3,"sources":["FileUploader.tsx"],"names":["React","useCallback","useContext","useEffect","useImperativeHandle","useRef","useState","globalObject","isBrowser","getAttachedFile","cx","useMemoObject","FileUploaderControlContext","useControlLocale","useUpload","useDrop","ThemeContext","UploadIcon","withFileUploaderControlProvider","keyListener","FileUploaderFile","FileUploaderFileList","CommonWrapper","FileUploaderFileValidationResult","useFileUploaderSize","isTheme2022","forwardRefAndName","UploadIcon2022","globalClasses","jsStyles","stopPropagation","e","FileUploaderDataTids","root","content","link","input","defaultRenderFile","file","fileNode","_FileUploader","props","ref","theme","_isTheme2022","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","size","renderFile","inputProps","files","setFiles","removeFile","reset","setFileValidationResult","isMinLengthReached","locale","inputRef","fileDivRef","isAsync","isSingleMode","isLinkVisible","setIsLinkVisible","upload","tryValidateAndUpload","forEach","validationMessage","id","sizeClassName","small","sizeSmall","medium","sizeMedium","large","sizeLarge","sizeIconClass","iconSmall","iconMedium","iconLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","filesArray","Array","from","attachedFiles","map","length","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","current","document","focus","isTabPressed","blur","getRootNode","rootNodeRef","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hovered","setHovered","uploadButtonClassNames","uploadButton","uploadButtonFocus","dragOver","canDrop","uploadButtonWrapperClassNames","windowDragOver","windowDragOver2022","uploadButtonIconClassNames","icon","iconDisabled","hasOneFile","hasOneFileForSingle","contentClassNames","contentWithFiles","linkClassNames","linkHovered","linkDisabled","iconSizes","parseInt","btnIconSizeSmall","btnIconSizeMedium","btnIconSizeLarge","choosedFile","chooseFile","String","fromCharCode","afterLinkText","afterLinkText_HasFiles","singleFile","orDragHere","visuallyHidden","FileUploader","memo","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { FileUploaderAttachedFile, getAttachedFile } from '../../internal/FileUploaderControl/fileUtils';\nimport { cx } from '../../lib/theming/Emotion';\nimport { InstanceWithRootNode } from '../../lib/rootNode';\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { FileUploaderControlContext } from '../../internal/FileUploaderControl/FileUploaderControlContext';\nimport { useControlLocale } from '../../internal/FileUploaderControl/hooks/useControlLocale';\nimport { useUpload } from '../../internal/FileUploaderControl/hooks/useUpload';\nimport { useDrop } from '../../hooks/useDrop';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { UploadIcon } from '../../internal/icons/16px';\nimport { FileUploaderControlProviderProps } from '../../internal/FileUploaderControl/FileUploaderControlProvider';\nimport { withFileUploaderControlProvider } from '../../internal/FileUploaderControl/withFileUploaderControlProvider';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { FileUploaderFile } from '../../internal/FileUploaderControl/FileUploaderFile/FileUploaderFile';\nimport { FileUploaderFileList } from '../../internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { Nullable } from '../../typings/utility-types';\nimport { FileUploaderFileValidationResult } from '../../internal/FileUploaderControl/FileUploaderFileValidationResult';\nimport { useFileUploaderSize } from '../../internal/FileUploaderControl/hooks/useFileUploaderSize';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { SizeProp } from '../../lib/types/props';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\n\nimport { UploadIcon as UploadIcon2022 } from './UploadIcon';\nimport { globalClasses, jsStyles } from './FileUploader.styles';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\n/**\n * @deprecated use SizeProp\n */\nexport type FileUploaderSize = SizeProp;\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Состояние ошибки всего контрола */\n error?: boolean;\n /** Состояние предупреждения всего контрола */\n warning?: boolean;\n /** Свойство ширины. */\n width?: React.CSSProperties['width'];\n /**\n * Задаёт размер контрола.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n /** Свойство, скрывающее отображение файлов. */\n hideFiles?: boolean;\n\n /** Функция, через которую отправляем файлы. Используется для отслеживания статуса загрузки файла. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n /** Срабатывает при удачной попытке отправки через request */\n onRequestSuccess?: (fileId: string) => void;\n /** Срабатывает при неудачной попытке отправки через request */\n onRequestError?: (fileId: string) => void;\n\n /**\n * Функция валидации каждого файла.\n * Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку.\n * */\n validateBeforeUpload?: (file: FileUploaderAttachedFile) => Promise<Nullable<string>>;\n\n /**\n * Функция, позволяющая кастомизировать файлы.\n * Через нее можно вешать кастомные валидации на каждый файл.\n * */\n renderFile?: (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n}\n\nexport const FileUploaderDataTids = {\n root: 'FileUploader__root',\n content: 'FileUploader__content',\n link: 'FileUploader__link',\n input: 'FileUploader__input',\n} as const;\n\nconst defaultRenderFile = (file: FileUploaderAttachedFile, fileNode: React.ReactElement) => fileNode;\n\nconst _FileUploader = forwardRefAndName<FileUploaderRef, _FileUploaderProps>('FileUploader', (props, ref) => {\n const theme = useContext(ThemeContext);\n const _isTheme2022 = isTheme2022(theme);\n\n const {\n disabled,\n error,\n warning,\n multiple = false,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size = 'small',\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n\n const { files, setFiles, removeFile, reset, setFileValidationResult, isMinLengthReached } =\n useContext(FileUploaderControlContext);\n\n const locale = useControlLocale();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const fileDivRef = useRef<HTMLDivElement>(null);\n\n const isAsync = !!request;\n const isSingleMode = !multiple;\n\n const [isLinkVisible, setIsLinkVisible] = useState(true);\n const upload = useUpload(request, onRequestSuccess, onRequestError);\n\n const tryValidateAndUpload = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n files.forEach(async (file) => {\n const validationMessage = validateBeforeUpload && (await validateBeforeUpload(file));\n\n if (!validationMessage) {\n isAsync && upload(file);\n } else {\n setFileValidationResult(file.id, FileUploaderFileValidationResult.error(validationMessage));\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsStyles.sizeSmall(theme),\n medium: jsStyles.sizeMedium(theme),\n large: jsStyles.sizeLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: jsStyles.iconSmall(theme),\n medium: jsStyles.iconMedium(theme),\n large: jsStyles.iconLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: jsStyles.contentInnerSmall(theme),\n medium: jsStyles.contentInnerMedium(theme),\n large: jsStyles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles) {\n return;\n }\n\n let filesArray = Array.from(newFiles);\n\n if (isSingleMode) {\n filesArray = [filesArray[0]];\n }\n\n const attachedFiles = filesArray.map(getAttachedFile);\n\n if (isSingleMode && attachedFiles.length && files.length) {\n removeFile(files[0].id);\n }\n\n if (attachedFiles.length) {\n setFiles(attachedFiles);\n tryValidateAndUpload(attachedFiles);\n }\n },\n [tryValidateAndUpload, setFiles, isSingleMode, files, removeFile],\n );\n\n const handleDrop = useCallback(\n (event) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n const { files } = dataTransfer;\n\n if (files?.length > 0) {\n handleChange(files);\n dataTransfer.clearData();\n }\n },\n [handleChange, disabled],\n );\n\n const { isDraggable, ref: labelRef } = useDrop<HTMLLabelElement>({ onDrop: handleDrop });\n const { isDraggable: isWindowDraggable, ref: windowRef } = useDrop<Document>();\n\n if (isBrowser(globalObject)) {\n windowRef.current = globalObject.document;\n }\n\n const focus = useCallback(() => {\n keyListener.isTabPressed = true;\n inputRef.current?.focus();\n }, []);\n\n const blur = useCallback(() => {\n inputRef.current?.blur();\n }, []);\n\n useImperativeHandle(ref, () => ({ focus, blur, reset, getRootNode: () => rootNodeRef.current }), [\n ref,\n blur,\n focus,\n reset,\n ]);\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n };\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n if (!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 setFocusedByTab(true);\n }\n });\n onFocus?.(e);\n }\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n setFocusedByTab(false);\n if (!disabled) {\n onBlur?.(e);\n }\n };\n\n const [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = cx(\n jsStyles.uploadButton(theme),\n sizeClassName,\n focusedByTab && jsStyles.uploadButtonFocus(theme),\n disabled && jsStyles.disabled(theme),\n !disabled && hovered && jsStyles.hovered(theme),\n !!warning && jsStyles.warning(theme),\n !!error && jsStyles.error(theme),\n isDraggable && !disabled && jsStyles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = cx(\n !_isTheme2022 && canDrop && jsStyles.windowDragOver(theme),\n _isTheme2022 && canDrop && jsStyles.windowDragOver2022(theme),\n );\n\n const uploadButtonIconClassNames = cx(jsStyles.icon(theme), sizeIconClass, disabled && jsStyles.iconDisabled(theme));\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const contentClassNames = cx(jsStyles.content(), hasOneFileForSingle && jsStyles.contentWithFiles());\n\n const linkClassNames = cx(\n jsStyles.link(theme),\n !disabled && hovered && jsStyles.linkHovered(theme),\n disabled && jsStyles.linkDisabled(theme),\n );\n\n useEffect(() => {\n setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);\n }, [isMinLengthReached, hasOneFileForSingle]);\n\n const rootNodeRef = useRef(null);\n\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(theme.btnIconSizeSmall),\n medium: parseInt(theme.btnIconSizeMedium),\n large: parseInt(theme.btnIconSizeLarge),\n };\n const icon = _isTheme2022 ? <UploadIcon2022 size={iconSizes[size]} /> : <UploadIcon />;\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={jsStyles.root(theme)}\n style={useMemoObject({ width })}\n ref={rootNodeRef}\n >\n {!hideFiles && !isSingleMode && !!files.length && <FileUploaderFileList renderFile={renderFile} size={size} />}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n <div\n data-tid={FileUploaderDataTids.content}\n className={cx(contentClassNames, { [contentInnerClass]: !files.length || !isSingleMode })}\n >\n {isLinkVisible && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {hasOneFileForSingle ? locale.choosedFile : locale.chooseFile}\n </span>\n )}\n {isLinkVisible && String.fromCharCode(0xa0) /* */}\n <div\n className={cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? jsStyles.afterLinkText_HasFiles(theme) : jsStyles.afterLinkText(theme),\n )}\n >\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={jsStyles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} size={size} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere} \n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )}\n </div>\n </div>\n <input\n {...inputProps}\n data-tid={FileUploaderDataTids.input}\n ref={inputRef}\n tabIndex={disabled ? -1 : 0}\n type=\"file\"\n disabled={disabled}\n multiple={multiple}\n className={jsStyles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд\n value={''}\n />\n </label>\n </div>\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\nFileUploader.displayName = 'FileUploader';\n"]}
|
|
@@ -142,7 +142,7 @@ var FxInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React
|
|
|
142
142
|
};
|
|
143
143
|
|
|
144
144
|
return FxInput;
|
|
145
|
-
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'FxInput', _class2.propTypes = {
|
|
145
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'FxInput', _class2.displayName = 'FxInput', _class2.propTypes = {
|
|
146
146
|
auto: PropTypes.bool,
|
|
147
147
|
type: PropTypes.string
|
|
148
148
|
}, _class2.defaultProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FxInput.tsx"],"names":["React","PropTypes","Group","Input","CurrencyInput","createPropsGetter","FunctionIcon","CommonWrapper","rootNode","isTheme2022","ThemeContext","MathFunctionIcon","FxInputRestoreBtn","FxInputDataTids","root","FxInput","input","getProps","defaultProps","renderMain","props","type","onRestore","auto","refInput","value","width","rest","inputProps","align","button","inputCorners","IconFunction","theme","borderBottomLeftRadius","borderTopLeftRadius","iconSizes","small","parseInt","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","size","leftIcon","disabled","borderless","buttonAriaLabel","onValueChange","focus","blur","element","render","setRootNode","Component","__KONTUR_REACT_UI__","propTypes","bool","string"],"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';\n\nimport { Group } from '../Group';\nimport { Input, InputProps } from '../Input';\nimport { CurrencyInput, CurrencyInputProps } from '../CurrencyInput';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { Override } from '../../typings/utility-types';\nimport { FunctionIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n CurrencyInputProps,\n {\n /** Авто-режим */\n auto?: boolean;\n /** Тип инпута */\n type?: 'currency' | InputProps['type'];\n /** onRestore */\n onRestore?: () => void;\n /** onValueChange */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n /** Значение */\n value?: React.ReactText;\n /** ref Input'а */\n refInput?: (element: CurrencyInput | Input | null) => void;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros?: boolean;\n /** Позвоялет задать атрибут aria-label кнопке восстановления (restore button) */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/** Принимает все свойства `Input`'a */\n@rootNode\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n\n public static propTypes = {\n auto: PropTypes.bool,\n type: PropTypes.string,\n };\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n };\n\n private theme!: Theme;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const { type, onRestore, auto, refInput, value, width, ...rest } = props;\n const inputProps: Partial<CurrencyInputProps> = {\n align: 'right',\n };\n\n let button = null;\n let inputCorners: InputProps['corners'];\n let IconFunction = <FunctionIcon />;\n\n if (isTheme2022(this.theme)) {\n inputCorners = auto ? {} : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0 };\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.props.size || Input.defaultProps.size;\n IconFunction = <MathFunctionIcon size={iconSizes[size]} />;\n }\n\n if (auto) {\n inputProps.leftIcon = IconFunction;\n } else {\n button = (\n <FxInputRestoreBtn\n size={rest.size}\n onRestore={onRestore}\n disabled={rest.disabled}\n borderless={rest.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n }\n\n return (\n <Group data-tid={FxInputDataTids.root} width={width}>\n {button}\n {type === 'currency' ? (\n <CurrencyInput\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n ) : (\n <Input\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n )}\n </Group>\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["FxInput.tsx"],"names":["React","PropTypes","Group","Input","CurrencyInput","createPropsGetter","FunctionIcon","CommonWrapper","rootNode","isTheme2022","ThemeContext","MathFunctionIcon","FxInputRestoreBtn","FxInputDataTids","root","FxInput","input","getProps","defaultProps","renderMain","props","type","onRestore","auto","refInput","value","width","rest","inputProps","align","button","inputCorners","IconFunction","theme","borderBottomLeftRadius","borderTopLeftRadius","iconSizes","small","parseInt","inputIconSizeSmall","medium","inputIconSizeMedium","large","inputIconSizeLarge","size","leftIcon","disabled","borderless","buttonAriaLabel","onValueChange","focus","blur","element","render","setRootNode","Component","__KONTUR_REACT_UI__","displayName","propTypes","bool","string"],"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';\n\nimport { Group } from '../Group';\nimport { Input, InputProps } from '../Input';\nimport { CurrencyInput, CurrencyInputProps } from '../CurrencyInput';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { Override } from '../../typings/utility-types';\nimport { FunctionIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { MathFunctionIcon } from './MathFunctionIcon';\nimport { FxInputRestoreBtn } from './FxInputRestoreBtn';\n\nexport interface FxInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n CurrencyInputProps,\n {\n /** Авто-режим */\n auto?: boolean;\n /** Тип инпута */\n type?: 'currency' | InputProps['type'];\n /** onRestore */\n onRestore?: () => void;\n /** onValueChange */\n onValueChange: CurrencyInputProps['onValueChange'] | InputProps['onValueChange'];\n /** Значение */\n value?: React.ReactText;\n /** ref Input'а */\n refInput?: (element: CurrencyInput | Input | null) => void;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros?: boolean;\n /** Позвоялет задать атрибут aria-label кнопке восстановления (restore button) */\n buttonAriaLabel?: AriaAttributes['aria-label'];\n }\n > {}\n\nexport const FxInputDataTids = {\n root: 'FxInput__root',\n} as const;\n\ntype DefaultProps = Required<Pick<FxInputProps, 'width' | 'type' | 'value'>>;\ntype DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultProps>;\n\n/** Принимает все свойства `Input`'a */\n@rootNode\nexport class FxInput extends React.Component<FxInputProps> {\n public static __KONTUR_REACT_UI__ = 'FxInput';\n public static displayName = 'FxInput';\n\n public static propTypes = {\n auto: PropTypes.bool,\n type: PropTypes.string,\n };\n\n public static defaultProps: DefaultProps = {\n width: 250,\n type: 'text',\n value: '',\n };\n\n private theme!: Theme;\n private input: Input | CurrencyInput | null = null;\n\n private getProps = createPropsGetter(FxInput.defaultProps);\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DefaultizedFxInputProps>) => {\n const { type, onRestore, auto, refInput, value, width, ...rest } = props;\n const inputProps: Partial<CurrencyInputProps> = {\n align: 'right',\n };\n\n let button = null;\n let inputCorners: InputProps['corners'];\n let IconFunction = <FunctionIcon />;\n\n if (isTheme2022(this.theme)) {\n inputCorners = auto ? {} : { borderBottomLeftRadius: 0, borderTopLeftRadius: 0 };\n const iconSizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.inputIconSizeSmall),\n medium: parseInt(this.theme.inputIconSizeMedium),\n large: parseInt(this.theme.inputIconSizeLarge),\n };\n const size = this.props.size || Input.defaultProps.size;\n IconFunction = <MathFunctionIcon size={iconSizes[size]} />;\n }\n\n if (auto) {\n inputProps.leftIcon = IconFunction;\n } else {\n button = (\n <FxInputRestoreBtn\n size={rest.size}\n onRestore={onRestore}\n disabled={rest.disabled}\n borderless={rest.borderless}\n aria-label={props.buttonAriaLabel}\n />\n );\n }\n\n return (\n <Group data-tid={FxInputDataTids.root} width={width}>\n {button}\n {type === 'currency' ? (\n <CurrencyInput\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n value={value as CurrencyInputProps['value']}\n onValueChange={this.props.onValueChange as CurrencyInputProps['onValueChange']}\n />\n ) : (\n <Input\n {...inputProps}\n {...rest}\n corners={inputCorners}\n size={this.props.size}\n width={'100%'}\n ref={this.refInput}\n type={type}\n value={value as InputProps['value']}\n onValueChange={this.props.onValueChange as InputProps['onValueChange']}\n />\n )}\n </Group>\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private refInput = (element: Input | CurrencyInput | null) => {\n this.input = element;\n\n if (this.props.refInput) {\n this.props.refInput(this.input);\n }\n };\n}\n"]}
|
|
@@ -32,6 +32,7 @@ declare type DefaultizedFxInputProps = DefaultizedProps<FxInputProps, DefaultPro
|
|
|
32
32
|
/** Принимает все свойства `Input`'a */
|
|
33
33
|
export declare class FxInput extends React.Component<FxInputProps> {
|
|
34
34
|
static __KONTUR_REACT_UI__: string;
|
|
35
|
+
static displayName: string;
|
|
35
36
|
static propTypes: {
|
|
36
37
|
auto: PropTypes.Requireable<boolean>;
|
|
37
38
|
type: PropTypes.Requireable<string>;
|
|
@@ -112,7 +112,7 @@ var Gapped = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$
|
|
|
112
112
|
};
|
|
113
113
|
|
|
114
114
|
return Gapped;
|
|
115
|
-
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Gapped', _class2.propTypes = {
|
|
115
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Gapped', _class2.displayName = 'Gapped', _class2.propTypes = {
|
|
116
116
|
/**
|
|
117
117
|
* Расстояние между элементами.
|
|
118
118
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Gapped.tsx"],"names":["React","PropTypes","isNonNullable","CommonWrapper","rootNode","createPropsGetter","GappedDataTids","vertical","horizontal","Gapped","getProps","defaultProps","render","setRootNode","props","renderVertical","renderHorizontal","getGapValue","propsGap","gap","subsequentItemStyle","paddingTop","children","Children","toArray","filter","filterChildren","map","child","index","style","undefined","verticalAlign","wrap","itemStyle","display","marginLeft","marginTop","rootStyle","contStyle","whiteSpace","Boolean","Component","__KONTUR_REACT_UI__","propTypes","number","bool","oneOf"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,SAASC,aAAT,QAA8B,iBAA9B;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,OAAO,IAAMC,cAAc,GAAG;AAC5BC,EAAAA,QAAQ,EAAE,kBADkB;AAE5BC,EAAAA,UAAU,EAAE,oBAFgB,EAAvB;;;;;;;;;AAWP,OAJA;AACA;AACA,GAEA,IAAaC,MAAb,GADCL,QACD
|
|
1
|
+
{"version":3,"sources":["Gapped.tsx"],"names":["React","PropTypes","isNonNullable","CommonWrapper","rootNode","createPropsGetter","GappedDataTids","vertical","horizontal","Gapped","getProps","defaultProps","render","setRootNode","props","renderVertical","renderHorizontal","getGapValue","propsGap","gap","subsequentItemStyle","paddingTop","children","Children","toArray","filter","filterChildren","map","child","index","style","undefined","verticalAlign","wrap","itemStyle","display","marginLeft","marginTop","rootStyle","contStyle","whiteSpace","Boolean","Component","__KONTUR_REACT_UI__","displayName","propTypes","number","bool","oneOf"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nexport interface GappedProps extends CommonProps {\n /**\n * Расстояние между элементами в пикселях\n * @default 8\n */\n gap?: number;\n /**\n * Вертикальное выравнивание\n * @default \"baseline\"\n */\n verticalAlign?: 'top' | 'middle' | 'baseline' | 'bottom';\n /**\n * Расположение элементов по вертикали\n * @default false\n */\n vertical?: boolean;\n /**\n * Перенос элементов на новую строку при горизонтальном расположении\n * @default false\n */\n wrap?: boolean;\n children: React.ReactNode;\n}\n\nexport const GappedDataTids = {\n vertical: 'Gapped__vertical',\n horizontal: 'Gapped__horizontal',\n} as const;\n\ntype DefaultProps = Required<Pick<GappedProps, 'wrap' | 'vertical' | 'verticalAlign'>>;\n\n/**\n * Контейнер, расстояние между элементами в котором равно `gap`.\n */\n@rootNode\nexport class Gapped extends React.Component<GappedProps> {\n public static __KONTUR_REACT_UI__ = 'Gapped';\n public static displayName = 'Gapped';\n\n public static propTypes = {\n /**\n * Расстояние между элементами.\n */\n gap: PropTypes.number,\n\n /**\n * Располагать элементы вертикально.\n */\n vertical: PropTypes.bool,\n\n /**\n * Вертикальное выравнивание элементов.\n */\n verticalAlign: PropTypes.oneOf(['top', 'middle', 'baseline', 'bottom']),\n };\n\n private setRootNode!: TSetRootNode;\n\n public static defaultProps: DefaultProps = {\n wrap: false,\n vertical: false,\n verticalAlign: 'baseline',\n };\n\n private getProps = createPropsGetter(Gapped.defaultProps);\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.getProps().vertical ? this.renderVertical() : this.renderHorizontal()}\n </CommonWrapper>\n );\n }\n\n private getGapValue() {\n // DEPRECATED remove in 4.0\n const { gap: propsGap } = this.props;\n if (isNonNullable(propsGap)) {\n return propsGap;\n }\n\n return 8;\n }\n\n private renderVertical() {\n const subsequentItemStyle: React.CSSProperties = {\n paddingTop: this.getGapValue(),\n };\n const children = React.Children.toArray(this.props.children)\n .filter(this.filterChildren)\n .map((child, index) => {\n const style = index === 0 ? undefined : subsequentItemStyle;\n return (\n <div style={style} key={index}>\n {child}\n </div>\n );\n });\n\n return <div data-tid={GappedDataTids.vertical}>{children}</div>;\n }\n\n private renderHorizontal() {\n const { children, verticalAlign } = this.props;\n const wrap = this.getProps().wrap;\n const gap = this.getGapValue();\n const itemStyle: React.CSSProperties = {\n display: 'inline-block',\n verticalAlign,\n ...(wrap ? { marginLeft: gap, marginTop: gap } : {}),\n };\n const rootStyle: React.CSSProperties = wrap ? { paddingTop: 1 } : {};\n const contStyle: React.CSSProperties = wrap ? { marginTop: -gap - 1, marginLeft: -gap } : { whiteSpace: 'nowrap' };\n\n return (\n <div data-tid={GappedDataTids.horizontal} style={rootStyle}>\n <div style={contStyle}>\n {React.Children.toArray(children)\n .filter(this.filterChildren)\n .map((child, index) => {\n const marginLeft = index === 0 ? undefined : gap;\n return (\n <span key={index} style={{ marginLeft, ...itemStyle }}>\n {child}\n </span>\n );\n })}\n </div>\n </div>\n );\n }\n\n private filterChildren(child: React.ReactNode): boolean {\n return Boolean(child) || typeof child === 'number';\n }\n}\n"]}
|
|
@@ -34,6 +34,7 @@ declare type DefaultProps = Required<Pick<GappedProps, 'wrap' | 'vertical' | 've
|
|
|
34
34
|
*/
|
|
35
35
|
export declare class Gapped extends React.Component<GappedProps> {
|
|
36
36
|
static __KONTUR_REACT_UI__: string;
|
|
37
|
+
static displayName: string;
|
|
37
38
|
static propTypes: {
|
|
38
39
|
/**
|
|
39
40
|
* Расстояние между элементами.
|
|
@@ -220,7 +220,7 @@ export var GlobalLoader = rootNode(_class = (_temp = _class2 = /*#__PURE__*/func
|
|
|
220
220
|
};
|
|
221
221
|
|
|
222
222
|
return GlobalLoader;
|
|
223
|
-
}(React.Component), _class2.defaultProps = {
|
|
223
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'GlobalLoader', _class2.displayName = 'GlobalLoader', _class2.defaultProps = {
|
|
224
224
|
expectedResponseTime: 1000,
|
|
225
225
|
delayBeforeShow: 1000,
|
|
226
226
|
delayBeforeHide: 1000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["GlobalLoader.tsx"],"names":["React","debounce","isTestEnv","CommonWrapper","rootNode","createPropsGetter","GlobalLoaderView","GlobalLoaderDataTids","root","currentGlobalLoader","GlobalLoader","props","getProps","defaultProps","startTask","setState","visible","onStart","delayBeforeShow","stopTask","successAnimationInProgress","started","onDone","delayBeforeHide","resumeTaskAfterSuccessAnimation","setActive","cancel","state","done","rejected","accept","setReject","setDone","reject","active","onReject","onAccept","kill","dead","expectedResponseTime","componentDidMount","componentDidUpdate","prevProps","render","status","disableAnimations","setRootNode","updateExpectedResponseTime","Component","start"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\n\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { GlobalLoaderView, GlobalLoaderViewProps } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps {\n /**\n * Время(ms) до появления лоадера\n */\n delayBeforeShow?: number;\n /**\n * Время(ms) до исчезновения лоадера\n */\n delayBeforeHide?: number;\n /**\n * Ожидаемое время(ms) ответа сервера\n */\n expectedResponseTime?: number;\n /**\n * Анимация лоадера в виде спиннера\n */\n rejected?: boolean;\n /**\n * Показывать лоадер\n */\n active?: boolean;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Коллбек, вызывающийся после появления лоадера\n */\n onStart?(): void;\n /**\n * Коллбек, вызывающийся после исчезновения лоадера\n */\n onDone?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.reject()`.\n * Или после установки пропа `rejected = true`\n */\n onReject?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.accept()`.\n * Или после установки пропа `rejected = false`\n */\n onAccept?(): void;\n}\nexport interface GlobalLoaderState {\n visible: boolean;\n done: boolean;\n rejected: boolean;\n accept: boolean;\n dead: boolean;\n successAnimationInProgress: boolean;\n expectedResponseTime: number;\n started: boolean;\n}\n\nexport const GlobalLoaderDataTids = {\n root: 'GlobalLoader',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n GlobalLoaderProps,\n 'expectedResponseTime' | 'delayBeforeShow' | 'delayBeforeHide' | 'rejected' | 'active' | 'disableAnimations'\n >\n>;\n\nlet currentGlobalLoader: GlobalLoader;\n@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {\n private setRootNode!: TSetRootNode;\n private getProps = createPropsGetter(GlobalLoader.defaultProps);\n\n private readonly startTask = debounce(() => {\n this.setState({ visible: true });\n this.props.onStart?.();\n }, this.getProps().delayBeforeShow);\n\n private readonly stopTask = debounce(() => {\n this.setState({ visible: false, successAnimationInProgress: false, started: false });\n this.props.onDone?.();\n }, this.getProps().delayBeforeHide);\n\n private readonly resumeTaskAfterSuccessAnimation = debounce(() => {\n this.setActive();\n }, this.getProps().delayBeforeHide);\n\n public static defaultProps: DefaultProps = {\n expectedResponseTime: 1000,\n delayBeforeShow: 1000,\n delayBeforeHide: 1000,\n rejected: false,\n active: false,\n disableAnimations: isTestEnv,\n };\n\n constructor(props: GlobalLoaderProps) {\n super(props);\n this.state = {\n started: false,\n visible: false,\n done: false,\n rejected: false,\n accept: false,\n dead: false,\n successAnimationInProgress: false,\n expectedResponseTime: this.getProps().expectedResponseTime,\n };\n }\n componentDidMount() {\n currentGlobalLoader?.kill();\n currentGlobalLoader = this;\n const { active, rejected } = this.getProps();\n if (active) {\n this.setActive();\n }\n if (rejected) {\n this.setReject(true);\n }\n }\n\n componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>) {\n const { expectedResponseTime, rejected, active } = this.getProps();\n if (expectedResponseTime !== prevProps.expectedResponseTime) {\n this.setState({ expectedResponseTime });\n }\n if (rejected !== prevProps.rejected) {\n this.setReject(rejected);\n }\n if (active !== prevProps.active) {\n if (active) {\n this.setActive();\n } else {\n this.setDone();\n }\n }\n }\n\n public render() {\n let status: GlobalLoaderViewProps['status'] = 'standard';\n\n if (this.state.done) {\n status = 'success';\n } else if (this.state.rejected) {\n status = 'error';\n } else if (this.state.accept) {\n status = 'accept';\n }\n const { delayBeforeHide, disableAnimations } = this.getProps();\n return (\n !this.state.dead &&\n this.state.visible && (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <GlobalLoaderView\n expectedResponseTime={this.state.expectedResponseTime}\n delayBeforeHide={delayBeforeHide}\n status={status}\n data-tid={GlobalLoaderDataTids.root}\n disableAnimations={disableAnimations}\n />\n </CommonWrapper>\n )\n );\n }\n\n /**\n * Запускает анимацию лоадера <br />\n * Равносильно установке пропа `active = true`\n *\n * @public\n */\n public static start = (expectedResponseTime?: number) => {\n currentGlobalLoader.setActive();\n if (typeof expectedResponseTime === 'number') {\n currentGlobalLoader.updateExpectedResponseTime(expectedResponseTime);\n }\n };\n\n /**\n * Показывает анимацию успешного завершения загрузки <br />\n * Равносильно установке пропа `active = false`\n *\n * @public\n */\n public static done = () => {\n currentGlobalLoader.setDone();\n };\n\n /**\n * Переключает анимацию лоадера в состояние спиннера <br />\n * Равносильно установке пропа `rejected = true`\n *\n * @public\n */\n public static reject = () => {\n currentGlobalLoader.setReject(true);\n };\n\n /**\n * Возвращает лоадер из состояния спиннера в обычное и продолжает анимацию с того места, на котором она была прерван <br />\n * Равносильно установке пропа `rejected = false`\n *\n * @public\n */\n public static accept = () => {\n currentGlobalLoader.setReject(false);\n };\n\n public setActive = () => {\n this.startTask.cancel();\n if (this.state.successAnimationInProgress) {\n this.resumeTaskAfterSuccessAnimation();\n } else {\n this.setState({ visible: false, done: false, rejected: false, accept: false, started: true });\n if (this.getProps().rejected) {\n this.setReject(true);\n } else {\n this.stopTask.cancel();\n this.startTask();\n }\n }\n };\n\n public setDone = () => {\n if (!this.state.started) {\n return;\n }\n this.setState({ done: true, successAnimationInProgress: true });\n this.startTask.cancel();\n this.resumeTaskAfterSuccessAnimation.cancel();\n this.stopTask();\n };\n\n public setReject = (reject: boolean) => {\n if (!this.state.visible && (this.state.started || this.getProps().active)) {\n this.setState({ visible: true });\n }\n this.startTask.cancel();\n this.stopTask.cancel();\n if (reject) {\n this.props.onReject?.();\n } else if (this.state.rejected) {\n this.setState({ accept: true });\n this.props.onAccept?.();\n }\n this.setState({ rejected: reject });\n };\n\n public updateExpectedResponseTime(expectedResponseTime: number) {\n this.setState({ expectedResponseTime });\n }\n\n public kill = () => {\n this.stopTask.cancel();\n this.startTask.cancel();\n this.resumeTaskAfterSuccessAnimation.cancel();\n this.setState({\n dead: true,\n });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["GlobalLoader.tsx"],"names":["React","debounce","isTestEnv","CommonWrapper","rootNode","createPropsGetter","GlobalLoaderView","GlobalLoaderDataTids","root","currentGlobalLoader","GlobalLoader","props","getProps","defaultProps","startTask","setState","visible","onStart","delayBeforeShow","stopTask","successAnimationInProgress","started","onDone","delayBeforeHide","resumeTaskAfterSuccessAnimation","setActive","cancel","state","done","rejected","accept","setReject","setDone","reject","active","onReject","onAccept","kill","dead","expectedResponseTime","componentDidMount","componentDidUpdate","prevProps","render","status","disableAnimations","setRootNode","updateExpectedResponseTime","Component","__KONTUR_REACT_UI__","displayName","start"],"mappings":"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","sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\n\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { GlobalLoaderView, GlobalLoaderViewProps } from './GlobalLoaderView';\n\nexport interface GlobalLoaderProps {\n /**\n * Время(ms) до появления лоадера\n */\n delayBeforeShow?: number;\n /**\n * Время(ms) до исчезновения лоадера\n */\n delayBeforeHide?: number;\n /**\n * Ожидаемое время(ms) ответа сервера\n */\n expectedResponseTime?: number;\n /**\n * Анимация лоадера в виде спиннера\n */\n rejected?: boolean;\n /**\n * Показывать лоадер\n */\n active?: boolean;\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n /**\n * Коллбек, вызывающийся после появления лоадера\n */\n onStart?(): void;\n /**\n * Коллбек, вызывающийся после исчезновения лоадера\n */\n onDone?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.reject()`.\n * Или после установки пропа `rejected = true`\n */\n onReject?(): void;\n /**\n * Коллбек, вызывающийся после вызова `GlobalLoader.accept()`.\n * Или после установки пропа `rejected = false`\n */\n onAccept?(): void;\n}\nexport interface GlobalLoaderState {\n visible: boolean;\n done: boolean;\n rejected: boolean;\n accept: boolean;\n dead: boolean;\n successAnimationInProgress: boolean;\n expectedResponseTime: number;\n started: boolean;\n}\n\nexport const GlobalLoaderDataTids = {\n root: 'GlobalLoader',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n GlobalLoaderProps,\n 'expectedResponseTime' | 'delayBeforeShow' | 'delayBeforeHide' | 'rejected' | 'active' | 'disableAnimations'\n >\n>;\n\nlet currentGlobalLoader: GlobalLoader;\n@rootNode\nexport class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {\n public static __KONTUR_REACT_UI__ = 'GlobalLoader';\n public static displayName = 'GlobalLoader';\n\n private setRootNode!: TSetRootNode;\n private getProps = createPropsGetter(GlobalLoader.defaultProps);\n\n private readonly startTask = debounce(() => {\n this.setState({ visible: true });\n this.props.onStart?.();\n }, this.getProps().delayBeforeShow);\n\n private readonly stopTask = debounce(() => {\n this.setState({ visible: false, successAnimationInProgress: false, started: false });\n this.props.onDone?.();\n }, this.getProps().delayBeforeHide);\n\n private readonly resumeTaskAfterSuccessAnimation = debounce(() => {\n this.setActive();\n }, this.getProps().delayBeforeHide);\n\n public static defaultProps: DefaultProps = {\n expectedResponseTime: 1000,\n delayBeforeShow: 1000,\n delayBeforeHide: 1000,\n rejected: false,\n active: false,\n disableAnimations: isTestEnv,\n };\n\n constructor(props: GlobalLoaderProps) {\n super(props);\n this.state = {\n started: false,\n visible: false,\n done: false,\n rejected: false,\n accept: false,\n dead: false,\n successAnimationInProgress: false,\n expectedResponseTime: this.getProps().expectedResponseTime,\n };\n }\n componentDidMount() {\n currentGlobalLoader?.kill();\n currentGlobalLoader = this;\n const { active, rejected } = this.getProps();\n if (active) {\n this.setActive();\n }\n if (rejected) {\n this.setReject(true);\n }\n }\n\n componentDidUpdate(prevProps: Readonly<GlobalLoaderProps>) {\n const { expectedResponseTime, rejected, active } = this.getProps();\n if (expectedResponseTime !== prevProps.expectedResponseTime) {\n this.setState({ expectedResponseTime });\n }\n if (rejected !== prevProps.rejected) {\n this.setReject(rejected);\n }\n if (active !== prevProps.active) {\n if (active) {\n this.setActive();\n } else {\n this.setDone();\n }\n }\n }\n\n public render() {\n let status: GlobalLoaderViewProps['status'] = 'standard';\n\n if (this.state.done) {\n status = 'success';\n } else if (this.state.rejected) {\n status = 'error';\n } else if (this.state.accept) {\n status = 'accept';\n }\n const { delayBeforeHide, disableAnimations } = this.getProps();\n return (\n !this.state.dead &&\n this.state.visible && (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <GlobalLoaderView\n expectedResponseTime={this.state.expectedResponseTime}\n delayBeforeHide={delayBeforeHide}\n status={status}\n data-tid={GlobalLoaderDataTids.root}\n disableAnimations={disableAnimations}\n />\n </CommonWrapper>\n )\n );\n }\n\n /**\n * Запускает анимацию лоадера <br />\n * Равносильно установке пропа `active = true`\n *\n * @public\n */\n public static start = (expectedResponseTime?: number) => {\n currentGlobalLoader.setActive();\n if (typeof expectedResponseTime === 'number') {\n currentGlobalLoader.updateExpectedResponseTime(expectedResponseTime);\n }\n };\n\n /**\n * Показывает анимацию успешного завершения загрузки <br />\n * Равносильно установке пропа `active = false`\n *\n * @public\n */\n public static done = () => {\n currentGlobalLoader.setDone();\n };\n\n /**\n * Переключает анимацию лоадера в состояние спиннера <br />\n * Равносильно установке пропа `rejected = true`\n *\n * @public\n */\n public static reject = () => {\n currentGlobalLoader.setReject(true);\n };\n\n /**\n * Возвращает лоадер из состояния спиннера в обычное и продолжает анимацию с того места, на котором она была прерван <br />\n * Равносильно установке пропа `rejected = false`\n *\n * @public\n */\n public static accept = () => {\n currentGlobalLoader.setReject(false);\n };\n\n public setActive = () => {\n this.startTask.cancel();\n if (this.state.successAnimationInProgress) {\n this.resumeTaskAfterSuccessAnimation();\n } else {\n this.setState({ visible: false, done: false, rejected: false, accept: false, started: true });\n if (this.getProps().rejected) {\n this.setReject(true);\n } else {\n this.stopTask.cancel();\n this.startTask();\n }\n }\n };\n\n public setDone = () => {\n if (!this.state.started) {\n return;\n }\n this.setState({ done: true, successAnimationInProgress: true });\n this.startTask.cancel();\n this.resumeTaskAfterSuccessAnimation.cancel();\n this.stopTask();\n };\n\n public setReject = (reject: boolean) => {\n if (!this.state.visible && (this.state.started || this.getProps().active)) {\n this.setState({ visible: true });\n }\n this.startTask.cancel();\n this.stopTask.cancel();\n if (reject) {\n this.props.onReject?.();\n } else if (this.state.rejected) {\n this.setState({ accept: true });\n this.props.onAccept?.();\n }\n this.setState({ rejected: reject });\n };\n\n public updateExpectedResponseTime(expectedResponseTime: number) {\n this.setState({ expectedResponseTime });\n }\n\n public kill = () => {\n this.stopTask.cancel();\n this.startTask.cancel();\n this.resumeTaskAfterSuccessAnimation.cancel();\n this.setState({\n dead: true,\n });\n };\n}\n"]}
|
|
@@ -58,6 +58,8 @@ export declare const GlobalLoaderDataTids: {
|
|
|
58
58
|
};
|
|
59
59
|
declare type DefaultProps = Required<Pick<GlobalLoaderProps, 'expectedResponseTime' | 'delayBeforeShow' | 'delayBeforeHide' | 'rejected' | 'active' | 'disableAnimations'>>;
|
|
60
60
|
export declare class GlobalLoader extends React.Component<GlobalLoaderProps, GlobalLoaderState> {
|
|
61
|
+
static __KONTUR_REACT_UI__: string;
|
|
62
|
+
static displayName: string;
|
|
61
63
|
private setRootNode;
|
|
62
64
|
private getProps;
|
|
63
65
|
private readonly startTask;
|
|
@@ -133,6 +133,6 @@ export var Group = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
|
|
|
133
133
|
};
|
|
134
134
|
|
|
135
135
|
return Group;
|
|
136
|
-
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Group', _class2.propTypes = {
|
|
136
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Group', _class2.displayName = 'Group', _class2.propTypes = {
|
|
137
137
|
width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
|
|
138
138
|
}, _temp)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Group.tsx"],"names":["React","PropTypes","isIE11","isEdge","isButton","CommonWrapper","cx","rootNode","isInputLike","ThemeContext","isTheme2022","styles","getFirstChild","children","Array","isArray","getLastChild","numberOfChildren","Children","count","getButtonCorners","isFirstChild","isLastChild","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderRadius","passCornersIfButton","child","firstChild","lastChild","isInputLikeToo","corners","cloneElement","props","GroupDataTids","root","Group","render","theme","renderMain","style","width","childrenArray","toArray","setRootNode","map","isValidElement","isWidthInPercent","Boolean","toString","includes","modifiedChild","fixed","stretch","stretchFallback","item","itemFirst","Component","__KONTUR_REACT_UI__","propTypes","oneOfType","number","string"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAEA,SAASC,MAAT,EAAiBC,MAAjB,QAA+B,kBAA/B;AACA,SAASC,QAAT,QAAyB,WAAzB;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;AACA,SAASC,WAAT,QAA4B,iBAA5B;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,WAAT,QAA4B,gCAA5B;;AAEA,SAASC,MAAT,QAAuB,gBAAvB;;;;;;;;;;;AAWA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,QAAD,EAA+B;AACnD,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcF,QAAd,CAAL,EAA8B;AAC5B,WAAOA,QAAP;AACD;;AAED,SAAOA,QAAP,oBAAOA,QAAQ,CAAG,CAAH,CAAf;AACD,CAND;;AAQA,IAAMG,YAAY,GAAG,SAAfA,YAAe,CAACH,QAAD,EAA+B;AAClD,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcF,QAAd,CAAL,EAA8B;AAC5B,WAAOA,QAAP;AACD;;AAED,MAAMI,gBAAgB,GAAGjB,KAAK,CAACkB,QAAN,CAAeC,KAAf,CAAqBN,QAArB,CAAzB;;AAEA,SAAOA,QAAP,oBAAOA,QAAQ,CAAGI,gBAAgB,GAAG,CAAtB,CAAf;AACD,CARD;;AAUA,OAAO,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,YAAD,EAAwBC,WAAxB,EAAsE;AACpG,MAAID,YAAY,IAAIC,WAApB,EAAiC;AAC/B,WAAO,EAAP;AACD;;AAED,MAAID,YAAJ,EAAkB;AAChB,WAAO;AACLE,MAAAA,oBAAoB,EAAE,CADjB;AAELC,MAAAA,uBAAuB,EAAE,CAFpB,EAAP;;AAID;;AAED,MAAIF,WAAJ,EAAiB;AACf,WAAO;AACLG,MAAAA,mBAAmB,EAAE,CADhB;AAELC,MAAAA,sBAAsB,EAAE,CAFnB,EAAP;;AAID;;AAED,SAAO;AACLC,IAAAA,YAAY,EAAE,CADT,EAAP;;AAGD,CAtBM;;AAwBP,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB;AAC1BC,KAD0B;AAE1BC,UAF0B;AAG1BC,SAH0B;AAI1BC,cAJ0B;AAKvB,KADHA,cACG,cADHA,cACG,GADc,KACd;AACH,MAAMC,OAAO,GAAGb,gBAAgB,CAACS,KAAK,KAAKC,UAAX,EAAuBD,KAAK,KAAKE,SAAjC,CAAhC;AACA,MAAI3B,QAAQ,CAACyB,KAAD,CAAZ,EAAqB;AACnB,wBAAO7B,KAAK,CAACkC,YAAN,CAAmBL,KAAnB,EAA0B,EAAEI,OAAO,eAAOA,OAAP,EAAmBJ,KAAK,CAACM,KAAN,CAAYF,OAA/B,CAAT,EAA1B,CAAP;AACD;AACD,MAAID,cAAc,IAAIxB,WAAW,CAACqB,KAAD,CAAjC,EAA0C;AACxC,wBAAO7B,KAAK,CAACkC,YAAN,CAAmBL,KAAnB,EAA0B,EAAEI,OAAO,eAAOA,OAAP,EAAmBJ,KAAK,CAACM,KAAN,CAAYF,OAA/B,CAAT,EAA1B,CAAP;AACD;;AAED,SAAOJ,KAAP;AACD,CAfD;;AAiBA,OAAO,IAAMO,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,aADqB,EAAtB;;;;AAKP,WAAaC,KAAb,GADC/B,QACD
|
|
1
|
+
{"version":3,"sources":["Group.tsx"],"names":["React","PropTypes","isIE11","isEdge","isButton","CommonWrapper","cx","rootNode","isInputLike","ThemeContext","isTheme2022","styles","getFirstChild","children","Array","isArray","getLastChild","numberOfChildren","Children","count","getButtonCorners","isFirstChild","isLastChild","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderRadius","passCornersIfButton","child","firstChild","lastChild","isInputLikeToo","corners","cloneElement","props","GroupDataTids","root","Group","render","theme","renderMain","style","width","childrenArray","toArray","setRootNode","map","isValidElement","isWidthInPercent","Boolean","toString","includes","modifiedChild","fixed","stretch","stretchFallback","item","itemFirst","Component","__KONTUR_REACT_UI__","displayName","propTypes","oneOfType","number","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { isButton } from '../Button';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isInputLike } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { styles } from './Group.styles';\n\nexport interface GroupProps extends CommonProps {\n width?: React.CSSProperties['width'];\n}\n\ninterface GroupChildProps {\n width?: React.CSSProperties['width'];\n corners?: number;\n}\n\nconst getFirstChild = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n return children?.[0] as React.ReactNode;\n};\n\nconst getLastChild = (children: React.ReactNode) => {\n if (!Array.isArray(children)) {\n return children;\n }\n\n const numberOfChildren = React.Children.count(children);\n\n return children?.[numberOfChildren - 1] as React.ReactNode;\n};\n\nexport const getButtonCorners = (isFirstChild: boolean, isLastChild: boolean): React.CSSProperties => {\n if (isFirstChild && isLastChild) {\n return {};\n }\n\n if (isFirstChild) {\n return {\n borderTopRightRadius: 0,\n borderBottomRightRadius: 0,\n };\n }\n\n if (isLastChild) {\n return {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n };\n }\n\n return {\n borderRadius: 0,\n };\n};\n\nconst passCornersIfButton = (\n child: React.ReactNode,\n firstChild: React.ReactNode,\n lastChild: React.ReactNode,\n isInputLikeToo = false,\n) => {\n const corners = getButtonCorners(child === firstChild, child === lastChild);\n if (isButton(child)) {\n return React.cloneElement(child, { corners: { ...corners, ...child.props.corners } });\n }\n if (isInputLikeToo && isInputLike(child)) {\n return React.cloneElement(child, { corners: { ...corners, ...child.props.corners } });\n }\n\n return child;\n};\n\nexport const GroupDataTids = {\n root: 'Group__root',\n} as const;\n\n@rootNode\nexport class Group extends React.Component<GroupProps> {\n public static __KONTUR_REACT_UI__ = 'Group';\n public static displayName = 'Group';\n\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public static propTypes = {\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const style: React.CSSProperties = {\n width: this.props.width,\n };\n\n const childrenArray = React.Children.toArray(this.props.children);\n const firstChild = getFirstChild(childrenArray);\n const lastChild = getLastChild(childrenArray);\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <span data-tid={GroupDataTids.root} className={styles.root()} style={style}>\n {React.Children.map(childrenArray, (child) => {\n if (!child || !React.isValidElement<GroupChildProps>(child)) {\n return null;\n }\n\n const isWidthInPercent = Boolean(child.props.width && child.props.width.toString().includes('%'));\n\n const modifiedChild = passCornersIfButton(child, firstChild, lastChild, isTheme2022(this.theme));\n\n const isFirstChild = child === firstChild;\n\n return (\n <div\n className={cx({\n [styles.fixed()]: !isWidthInPercent,\n [styles.stretch()]: isWidthInPercent,\n [styles.stretchFallback()]: Boolean(isWidthInPercent && this.props.width && (isIE11 || isEdge)),\n })}\n >\n <div\n className={cx({\n [styles.item()]: true,\n [styles.itemFirst()]: isFirstChild,\n })}\n >\n {modifiedChild}\n </div>\n </div>\n );\n })}\n </span>\n </CommonWrapper>\n );\n }\n}\n"]}
|
|
@@ -181,7 +181,7 @@ var Hint = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Pu
|
|
|
181
181
|
};
|
|
182
182
|
|
|
183
183
|
return Hint;
|
|
184
|
-
}(React.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Hint', _class2.defaultProps = {
|
|
184
|
+
}(React.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Hint', _class2.displayName = 'Hint', _class2.defaultProps = {
|
|
185
185
|
pos: 'top',
|
|
186
186
|
manual: false,
|
|
187
187
|
opened: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Hint.tsx"],"names":["React","globalObject","ThemeContext","ThemeFactory","DUMMY_LOCATION","Popup","isTestEnv","CommonWrapper","cx","rootNode","createPropsGetter","styles","HINT_BORDER_COLOR","Positions","Hint","getProps","defaultProps","state","opened","manual","position","popupRef","createRef","getAnchorElement","current","anchorElement","getPositions","filter","x","startsWith","pos","handleMouseEnter","e","timer","setTimeout","open","props","onMouseEnter","handleMouseLeave","clearTimeout","setState","onMouseLeave","componentDidUpdate","prevProps","componentWillUnmount","render","theme","create","popupPinOffset","hintPinOffset","popupMargin","hintMargin","popupBorder","hintBorder","popupBorderRadius","hintBorderRadius","renderMain","disableAnimations","useWrapper","setRootNode","children","hintBgColor","renderContent","text","maxWidth","centerAlignPositions","className","content","contentCenter","includes","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DUMMY_LOCATION, Popup, PopupPositionsType } from '../../internal/Popup';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Hint.styles';\n\nconst HINT_BORDER_COLOR = 'transparent';\n\nexport interface HintProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Переводит отображение подсказки в _\"ручной режим\"_.\n *\n * В _\"ручном режиме\"_ подсказку можно активировать только задав значение пропу `opened`.\n */\n manual?: boolean;\n /**\n * Задаёт максимальную ширину подсказки.\n */\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: (event: MouseEventType) => void;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: (event: MouseEventType) => void;\n /**\n * Если `true` - подсказка будет открыта.\n *\n * _Примечание_: работает только при `manual=true`.\n */\n opened?: boolean;\n /**\n * Расположение подсказки относительно текста.\n *\n * **Допустимые значения**: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`, `\"top left\"`, `\"top center\"`, `\"top right\"`, `\"right top\"`, `\"right middle\"`, `\"right bottom\"`, `\"bottom left\"`, `\"bottom center\"`, `\"bottom right\"`, `\"left top\"`, `\"left middle\"`, `\"left bottom\"`.\n */\n pos?: 'top' | 'right' | 'bottom' | 'left' | PopupPositionsType;\n /**\n * Текст подсказки.\n */\n text: React.ReactNode;\n /**\n * Отключает анимацию.\n */\n disableAnimations?: boolean;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n}\n\nexport interface HintState {\n opened: boolean;\n position: PopupPositionsType;\n}\n\nconst Positions: PopupPositionsType[] = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\ntype DefaultProps = Required<\n Pick<HintProps, 'pos' | 'manual' | 'opened' | 'maxWidth' | 'disableAnimations' | 'useWrapper'>\n>;\n\n/**\n * Всплывающая подсказка, которая по умолчанию отображается при наведении на элемент. <br/> Можно задать другие условия отображения.\n */\n@rootNode\nexport class Hint extends React.PureComponent<HintProps, HintState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Hint';\n\n public static defaultProps: DefaultProps = {\n pos: 'top',\n manual: false,\n opened: false,\n maxWidth: 200,\n disableAnimations: isTestEnv,\n useWrapper: false,\n };\n\n private getProps = createPropsGetter(Hint.defaultProps);\n\n public state: HintState = {\n opened: this.getProps().manual ? !!this.getProps().opened : false,\n position: DUMMY_LOCATION.position,\n };\n\n private timer: SafeTimer;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n\n public componentDidUpdate(prevProps: HintProps) {\n const { opened, manual } = this.getProps();\n if (!manual) {\n return;\n }\n if (this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n }\n if (opened !== prevProps.opened) {\n this.setState({ opened: !!opened });\n }\n }\n\n public componentWillUnmount() {\n if (this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.hintPinOffset,\n popupMargin: theme.hintMargin,\n popupBorder: theme.hintBorder,\n popupBorderRadius: theme.hintBorderRadius,\n },\n this.theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { disableAnimations, useWrapper } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n hasPin\n opened={this.state.opened}\n anchorElement={this.props.children}\n positions={this.getPositions()}\n backgroundColor={this.theme.hintBgColor}\n borderColor={HINT_BORDER_COLOR}\n onPositionChange={(position) => this.setState({ position })}\n disableAnimations={disableAnimations}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n useWrapper={useWrapper}\n ref={this.popupRef}\n withoutMobile\n >\n {this.renderContent()}\n </Popup>\n </CommonWrapper>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n private renderContent() {\n if (!this.props.text) {\n return null;\n }\n\n const { maxWidth } = this.getProps();\n const centerAlignPositions = ['top', 'top center', 'bottom', 'bottom center'];\n const className = cx({\n [styles.content(this.theme)]: true,\n [styles.contentCenter(this.theme)]: centerAlignPositions.includes(this.state.position),\n });\n return (\n <div className={className} style={{ maxWidth }}>\n {this.props.text}\n </div>\n );\n }\n\n private getPositions = (): PopupPositionsType[] => {\n return Positions.filter((x) => x.startsWith(this.getProps().pos));\n };\n\n private handleMouseEnter = (e: MouseEventType) => {\n if (!this.getProps().manual && !this.timer) {\n this.timer = globalObject.setTimeout(this.open, 400);\n }\n\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: MouseEventType) => {\n if (!this.getProps().manual && this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n this.setState({ opened: false });\n }\n\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private open = () => {\n this.setState({ opened: true });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Hint.tsx"],"names":["React","globalObject","ThemeContext","ThemeFactory","DUMMY_LOCATION","Popup","isTestEnv","CommonWrapper","cx","rootNode","createPropsGetter","styles","HINT_BORDER_COLOR","Positions","Hint","getProps","defaultProps","state","opened","manual","position","popupRef","createRef","getAnchorElement","current","anchorElement","getPositions","filter","x","startsWith","pos","handleMouseEnter","e","timer","setTimeout","open","props","onMouseEnter","handleMouseLeave","clearTimeout","setState","onMouseLeave","componentDidUpdate","prevProps","componentWillUnmount","render","theme","create","popupPinOffset","hintPinOffset","popupMargin","hintMargin","popupBorder","hintBorder","popupBorderRadius","hintBorderRadius","renderMain","disableAnimations","useWrapper","setRootNode","children","hintBgColor","renderContent","text","maxWidth","centerAlignPositions","className","content","contentCenter","includes","PureComponent","__KONTUR_REACT_UI__","displayName"],"mappings":"2JAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,YAAT,QAAwC,0BAAxC;;AAEA,SAASC,YAAT,QAA6B,gCAA7B;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAASC,cAAT,EAAyBC,KAAzB,QAA0D,sBAA1D;;;AAGA,SAASC,SAAT,QAA0B,8BAA1B;AACA,SAASC,aAAT,QAA2C,8BAA3C;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,QAAT,QAAuC,oBAAvC;;AAEA,SAASC,iBAAT,QAAkC,6BAAlC;;AAEA,SAASC,MAAT,QAAuB,eAAvB;;AAEA,IAAMC,iBAAiB,GAAG,aAA1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDA,IAAMC,SAA+B,GAAG;AACtC,YADsC;AAEtC,UAFsC;AAGtC,WAHsC;AAItC,eAJsC;AAKtC,aALsC;AAMtC,cANsC;AAOtC,aAPsC;AAQtC,UARsC;AAStC,aATsC;AAUtC,cAVsC;AAWtC,WAXsC;AAYtC,cAZsC,CAAxC;;;;;;;;;;;AAuBA,OAJA;AACA;AACA,GAEA,IAAaC,IAAb,GADCL,QACD;;;;;;;;;;;AAaUM,IAAAA,QAbV,GAaqBL,iBAAiB,CAACI,IAAI,CAACE,YAAN,CAbtC;;AAeSC,IAAAA,KAfT,GAe4B;AACxBC,MAAAA,MAAM,EAAE,MAAKH,QAAL,GAAgBI,MAAhB,GAAyB,CAAC,CAAC,MAAKJ,QAAL,GAAgBG,MAA3C,GAAoD,KADpC;AAExBE,MAAAA,QAAQ,EAAEhB,cAAc,CAACgB,QAFD,EAf5B;;;;;;;AAwBUC,IAAAA,QAxBV,gBAwBqBrB,KAAK,CAACsB,SAAN,EAxBrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiGSC,IAAAA,gBAjGT,GAiG4B,YAAyB;AACjD,sCAAO,MAAKF,QAAL,CAAcG,OAArB,qBAAO,sBAAuBC,aAA9B;AACD,KAnGH;;;;;;;;;;;;;;;;;;;;AAuHUC,IAAAA,YAvHV,GAuHyB,YAA4B;AACjD,aAAOb,SAAS,CAACc,MAAV,CAAiB,UAACC,CAAD,UAAOA,CAAC,CAACC,UAAF,CAAa,MAAKd,QAAL,GAAgBe,GAA7B,CAAP,EAAjB,CAAP;AACD,KAzHH;;AA2HUC,IAAAA,gBA3HV,GA2H6B,UAACC,CAAD,EAAuB;AAChD,UAAI,CAAC,MAAKjB,QAAL,GAAgBI,MAAjB,IAA2B,CAAC,MAAKc,KAArC,EAA4C;AAC1C,cAAKA,KAAL,GAAahC,YAAY,CAACiC,UAAb,CAAwB,MAAKC,IAA7B,EAAmC,GAAnC,CAAb;AACD;;AAED,UAAI,MAAKC,KAAL,CAAWC,YAAf,EAA6B;AAC3B,cAAKD,KAAL,CAAWC,YAAX,CAAwBL,CAAxB;AACD;AACF,KAnIH;;AAqIUM,IAAAA,gBArIV,GAqI6B,UAACN,CAAD,EAAuB;AAChD,UAAI,CAAC,MAAKjB,QAAL,GAAgBI,MAAjB,IAA2B,MAAKc,KAApC,EAA2C;AACzChC,QAAAA,YAAY,CAACsC,YAAb,CAA0B,MAAKN,KAA/B;AACA,cAAKA,KAAL,GAAa,IAAb;AACA,cAAKO,QAAL,CAAc,EAAEtB,MAAM,EAAE,KAAV,EAAd;AACD;;AAED,UAAI,MAAKkB,KAAL,CAAWK,YAAf,EAA6B;AAC3B,cAAKL,KAAL,CAAWK,YAAX,CAAwBT,CAAxB;AACD;AACF,KA/IH;;AAiJUG,IAAAA,IAjJV,GAiJiB,YAAM;AACnB,YAAKK,QAAL,CAAc,EAAEtB,MAAM,EAAE,IAAV,EAAd;AACD,KAnJH,kDA0BSwB,kBA1BT,GA0BE,4BAA0BC,SAA1B,EAAgD,CAC9C,qBAA2B,KAAK5B,QAAL,EAA3B,CAAQG,MAAR,kBAAQA,MAAR,CAAgBC,MAAhB,kBAAgBA,MAAhB,CACA,IAAI,CAACA,MAAL,EAAa,CACX,OACD,CACD,IAAI,KAAKc,KAAT,EAAgB,CACdhC,YAAY,CAACsC,YAAb,CAA0B,KAAKN,KAA/B,EACA,KAAKA,KAAL,GAAa,IAAb,CACD,CACD,IAAIf,MAAM,KAAKyB,SAAS,CAACzB,MAAzB,EAAiC,CAC/B,KAAKsB,QAAL,CAAc,EAAEtB,MAAM,EAAE,CAAC,CAACA,MAAZ,EAAd,EACD,CACF,CAtCH,QAwCS0B,oBAxCT,GAwCE,gCAA8B,CAC5B,IAAI,KAAKX,KAAT,EAAgB,CACdhC,YAAY,CAACsC,YAAb,CAA0B,KAAKN,KAA/B,EACA,KAAKA,KAAL,GAAa,IAAb,CACD,CACF,CA7CH,QA+CSY,MA/CT,GA+CE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACC,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,oBAAC,YAAD,CAAc,QAAd,IACE,KAAK,EAAE3C,YAAY,CAAC4C,MAAb,CACL,EACEC,cAAc,EAAEF,KAAK,CAACG,aADxB,EAEEC,WAAW,EAAEJ,KAAK,CAACK,UAFrB,EAGEC,WAAW,EAAEN,KAAK,CAACO,UAHrB,EAIEC,iBAAiB,EAAER,KAAK,CAACS,gBAJ3B,EADK,EAOL,MAAI,CAACT,KAPA,CADT,IAWG,MAAI,CAACU,UAAL,EAXH,CADF,CAeD,CAlBH,CADF,CAsBD,CAtEH,QAwESA,UAxET,GAwEE,sBAAoB,mBAClB,sBAA0C,KAAKzC,QAAL,EAA1C,CAAQ0C,iBAAR,mBAAQA,iBAAR,CAA2BC,UAA3B,mBAA2BA,UAA3B,CACA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,KAAKC,WAAjC,IAAkD,KAAKvB,KAAvD,gBACE,oBAAC,KAAD,IACE,MAAM,MADR,EAEE,MAAM,EAAE,KAAKnB,KAAL,CAAWC,MAFrB,EAGE,aAAa,EAAE,KAAKkB,KAAL,CAAWwB,QAH5B,EAIE,SAAS,EAAE,KAAKlC,YAAL,EAJb,EAKE,eAAe,EAAE,KAAKoB,KAAL,CAAWe,WAL9B,EAME,WAAW,EAAEjD,iBANf,EAOE,gBAAgB,EAAE,0BAACQ,QAAD,UAAc,MAAI,CAACoB,QAAL,CAAc,EAAEpB,QAAQ,EAARA,QAAF,EAAd,CAAd,EAPpB,EAQE,iBAAiB,EAAEqC,iBARrB,EASE,YAAY,EAAE,KAAK1B,gBATrB,EAUE,YAAY,EAAE,KAAKO,gBAVrB,EAWE,UAAU,EAAEoB,UAXd,EAYE,GAAG,EAAE,KAAKrC,QAZZ,EAaE,aAAa,MAbf,IAeG,KAAKyC,aAAL,EAfH,CADF,CADF,CAqBD,CA/FH,QAqGUA,aArGV,GAqGE,yBAAwB,SACtB,IAAI,CAAC,KAAK1B,KAAL,CAAW2B,IAAhB,EAAsB,CACpB,OAAO,IAAP,CACD,CAED,sBAAqB,KAAKhD,QAAL,EAArB,CAAQiD,QAAR,mBAAQA,QAAR,CACA,IAAMC,oBAAoB,GAAG,CAAC,KAAD,EAAQ,YAAR,EAAsB,QAAtB,EAAgC,eAAhC,CAA7B,CACA,IAAMC,SAAS,GAAG1D,EAAE,gBACjBG,MAAM,CAACwD,OAAP,CAAe,KAAKrB,KAApB,CADiB,IACY,IADZ,MAEjBnC,MAAM,CAACyD,aAAP,CAAqB,KAAKtB,KAA1B,CAFiB,IAEkBmB,oBAAoB,CAACI,QAArB,CAA8B,KAAKpD,KAAL,CAAWG,QAAzC,CAFlB,OAApB,CAIA,oBACE,6BAAK,SAAS,EAAE8C,SAAhB,EAA2B,KAAK,EAAE,EAAEF,QAAQ,EAARA,QAAF,EAAlC,IACG,KAAK5B,KAAL,CAAW2B,IADd,CADF,CAKD,CArHH,eAA0B/D,KAAK,CAACsE,aAAhC,WACgBC,mBADhB,GACsC,MADtC,UAEgBC,WAFhB,GAE8B,MAF9B,UAIgBxD,YAJhB,GAI6C,EACzCc,GAAG,EAAE,KADoC,EAEzCX,MAAM,EAAE,KAFiC,EAGzCD,MAAM,EAAE,KAHiC,EAIzC8C,QAAQ,EAAE,GAJ+B,EAKzCP,iBAAiB,EAAEnD,SALsB,EAMzCoD,UAAU,EAAE,KAN6B,EAJ7C","sourcesContent":["import React from 'react';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DUMMY_LOCATION, Popup, PopupPositionsType } from '../../internal/Popup';\nimport { Nullable } from '../../typings/utility-types';\nimport { MouseEventType } from '../../typings/event-types';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { InstanceWithAnchorElement } from '../../lib/InstanceWithAnchorElement';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Hint.styles';\n\nconst HINT_BORDER_COLOR = 'transparent';\n\nexport interface HintProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Переводит отображение подсказки в _\"ручной режим\"_.\n *\n * В _\"ручном режиме\"_ подсказку можно активировать только задав значение пропу `opened`.\n */\n manual?: boolean;\n /**\n * Задаёт максимальную ширину подсказки.\n */\n maxWidth?: React.CSSProperties['maxWidth'];\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: (event: MouseEventType) => void;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: (event: MouseEventType) => void;\n /**\n * Если `true` - подсказка будет открыта.\n *\n * _Примечание_: работает только при `manual=true`.\n */\n opened?: boolean;\n /**\n * Расположение подсказки относительно текста.\n *\n * **Допустимые значения**: `\"top\"`, `\"right\"`, `\"bottom\"`, `\"left\"`, `\"top left\"`, `\"top center\"`, `\"top right\"`, `\"right top\"`, `\"right middle\"`, `\"right bottom\"`, `\"bottom left\"`, `\"bottom center\"`, `\"bottom right\"`, `\"left top\"`, `\"left middle\"`, `\"left bottom\"`.\n */\n pos?: 'top' | 'right' | 'bottom' | 'left' | PopupPositionsType;\n /**\n * Текст подсказки.\n */\n text: React.ReactNode;\n /**\n * Отключает анимацию.\n */\n disableAnimations?: boolean;\n /**\n * Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.\n *\n * _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.\n */\n useWrapper?: boolean;\n}\n\nexport interface HintState {\n opened: boolean;\n position: PopupPositionsType;\n}\n\nconst Positions: PopupPositionsType[] = [\n 'top center',\n 'top left',\n 'top right',\n 'bottom center',\n 'bottom left',\n 'bottom right',\n 'left middle',\n 'left top',\n 'left bottom',\n 'right middle',\n 'right top',\n 'right bottom',\n];\n\ntype DefaultProps = Required<\n Pick<HintProps, 'pos' | 'manual' | 'opened' | 'maxWidth' | 'disableAnimations' | 'useWrapper'>\n>;\n\n/**\n * Всплывающая подсказка, которая по умолчанию отображается при наведении на элемент. <br/> Можно задать другие условия отображения.\n */\n@rootNode\nexport class Hint extends React.PureComponent<HintProps, HintState> implements InstanceWithAnchorElement {\n public static __KONTUR_REACT_UI__ = 'Hint';\n public static displayName = 'Hint';\n\n public static defaultProps: DefaultProps = {\n pos: 'top',\n manual: false,\n opened: false,\n maxWidth: 200,\n disableAnimations: isTestEnv,\n useWrapper: false,\n };\n\n private getProps = createPropsGetter(Hint.defaultProps);\n\n public state: HintState = {\n opened: this.getProps().manual ? !!this.getProps().opened : false,\n position: DUMMY_LOCATION.position,\n };\n\n private timer: SafeTimer;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private popupRef = React.createRef<Popup>();\n\n public componentDidUpdate(prevProps: HintProps) {\n const { opened, manual } = this.getProps();\n if (!manual) {\n return;\n }\n if (this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n }\n if (opened !== prevProps.opened) {\n this.setState({ opened: !!opened });\n }\n }\n\n public componentWillUnmount() {\n if (this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.hintPinOffset,\n popupMargin: theme.hintMargin,\n popupBorder: theme.hintBorder,\n popupBorderRadius: theme.hintBorderRadius,\n },\n this.theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { disableAnimations, useWrapper } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <Popup\n hasPin\n opened={this.state.opened}\n anchorElement={this.props.children}\n positions={this.getPositions()}\n backgroundColor={this.theme.hintBgColor}\n borderColor={HINT_BORDER_COLOR}\n onPositionChange={(position) => this.setState({ position })}\n disableAnimations={disableAnimations}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n useWrapper={useWrapper}\n ref={this.popupRef}\n withoutMobile\n >\n {this.renderContent()}\n </Popup>\n </CommonWrapper>\n );\n }\n\n public getAnchorElement = (): Nullable<Element> => {\n return this.popupRef.current?.anchorElement;\n };\n\n private renderContent() {\n if (!this.props.text) {\n return null;\n }\n\n const { maxWidth } = this.getProps();\n const centerAlignPositions = ['top', 'top center', 'bottom', 'bottom center'];\n const className = cx({\n [styles.content(this.theme)]: true,\n [styles.contentCenter(this.theme)]: centerAlignPositions.includes(this.state.position),\n });\n return (\n <div className={className} style={{ maxWidth }}>\n {this.props.text}\n </div>\n );\n }\n\n private getPositions = (): PopupPositionsType[] => {\n return Positions.filter((x) => x.startsWith(this.getProps().pos));\n };\n\n private handleMouseEnter = (e: MouseEventType) => {\n if (!this.getProps().manual && !this.timer) {\n this.timer = globalObject.setTimeout(this.open, 400);\n }\n\n if (this.props.onMouseEnter) {\n this.props.onMouseEnter(e);\n }\n };\n\n private handleMouseLeave = (e: MouseEventType) => {\n if (!this.getProps().manual && this.timer) {\n globalObject.clearTimeout(this.timer);\n this.timer = null;\n this.setState({ opened: false });\n }\n\n if (this.props.onMouseLeave) {\n this.props.onMouseLeave(e);\n }\n };\n\n private open = () => {\n this.setState({ opened: true });\n };\n}\n"]}
|
|
@@ -61,6 +61,7 @@ declare type DefaultProps = Required<Pick<HintProps, 'pos' | 'manual' | 'opened'
|
|
|
61
61
|
*/
|
|
62
62
|
export declare class Hint extends React.PureComponent<HintProps, HintState> implements InstanceWithAnchorElement {
|
|
63
63
|
static __KONTUR_REACT_UI__: string;
|
|
64
|
+
static displayName: string;
|
|
64
65
|
static defaultProps: DefaultProps;
|
|
65
66
|
private getProps;
|
|
66
67
|
state: HintState;
|
|
@@ -595,7 +595,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
595
595
|
}]);
|
|
596
596
|
|
|
597
597
|
return Input;
|
|
598
|
-
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Input', _class2.defaultProps = {
|
|
598
|
+
}(React.Component), _class2.__KONTUR_REACT_UI__ = 'Input', _class2.displayName = 'Input', _class2.defaultProps = {
|
|
599
599
|
size: 'small',
|
|
600
600
|
type: 'text'
|
|
601
601
|
}, _temp)) || _class;
|