@skbkontur/react-ui 0.0.0-95a1dbe516 → 0.0.0-9ab4f802f3
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 +120 -0
- package/README.md +41 -13
- package/cjs/components/Autocomplete/Autocomplete.js +12 -6
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.md +76 -3
- package/cjs/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
- package/cjs/components/Autocomplete/Autocomplete.styles.js +7 -1
- package/cjs/components/Autocomplete/Autocomplete.styles.js.map +1 -1
- package/cjs/components/Button/Button.js +2 -2
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.md +38 -11
- package/cjs/components/Calendar/Calendar.d.ts +28 -5
- package/cjs/components/Calendar/Calendar.js +80 -36
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/Calendar.md +82 -1
- package/cjs/components/Calendar/Calendar.styles.js +1 -1
- package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
- package/cjs/components/Calendar/CalendarContext.d.ts +12 -0
- package/cjs/components/Calendar/CalendarContext.js +16 -0
- package/cjs/components/Calendar/CalendarContext.js.map +1 -0
- package/cjs/components/Calendar/CalendarDateShape.d.ts +4 -2
- package/cjs/components/Calendar/CalendarDateShape.js +13 -3
- package/cjs/components/Calendar/CalendarDateShape.js.map +1 -1
- package/cjs/components/Calendar/CalendarDay.d.ts +12 -0
- package/cjs/components/Calendar/CalendarDay.js +79 -0
- package/cjs/components/Calendar/CalendarDay.js.map +1 -0
- package/cjs/components/Calendar/CalendarDay.md +70 -0
- package/cjs/components/Calendar/CalendarUtils.d.ts +2 -1
- package/cjs/components/Calendar/CalendarUtils.js +4 -6
- package/cjs/components/Calendar/CalendarUtils.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.d.ts +4 -12
- package/cjs/components/Calendar/DayCellView.js +20 -42
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.styles.d.ts +2 -5
- package/cjs/components/Calendar/DayCellView.styles.js +37 -43
- package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
- package/cjs/components/Calendar/Month.d.ts +0 -10
- package/cjs/components/Calendar/Month.js +36 -88
- package/cjs/components/Calendar/Month.js.map +1 -1
- package/cjs/components/Calendar/MonthView.d.ts +3 -2
- package/cjs/components/Calendar/MonthView.js +47 -37
- package/cjs/components/Calendar/MonthView.js.map +1 -1
- package/cjs/components/Calendar/MonthView.styles.d.ts +3 -0
- package/cjs/components/Calendar/MonthView.styles.js +45 -7
- package/cjs/components/Calendar/MonthView.styles.js.map +1 -1
- package/cjs/components/Calendar/MonthViewModel.js +24 -6
- package/cjs/components/Calendar/MonthViewModel.js.map +1 -1
- package/cjs/components/Calendar/config.js +12 -6
- package/cjs/components/Calendar/config.js.map +1 -1
- package/cjs/components/Calendar/index.d.ts +1 -0
- package/cjs/components/Calendar/index.js +2 -1
- package/cjs/components/Calendar/index.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +1 -1
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js +1 -1
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateInput/DateInput.js +1 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +4 -1
- package/cjs/components/DatePicker/DatePicker.js +72 -45
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.md +29 -1
- package/cjs/components/DatePicker/DatePickerHelpers.js +2 -1
- package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
- package/cjs/components/DatePicker/MobilePicker.d.ts +10 -0
- package/cjs/components/DatePicker/MobilePicker.js +118 -0
- package/cjs/components/DatePicker/MobilePicker.js.map +1 -0
- package/cjs/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/cjs/components/DatePicker/MobilePicker.styles.js +8 -0
- package/cjs/components/DatePicker/MobilePicker.styles.js.map +1 -0
- package/cjs/components/DatePicker/Picker.js +1 -1
- package/cjs/components/DatePicker/Picker.js.map +1 -1
- package/cjs/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.js +19 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.js.map +1 -0
- package/cjs/components/Dropdown/Dropdown.js +1 -1
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +39 -0
- package/cjs/components/FileUploader/FileUploader.d.ts +2 -0
- package/cjs/components/FileUploader/FileUploader.js +32 -9
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.md +29 -0
- package/cjs/components/FxInput/FxInput.js +1 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Group/Group.js +1 -1
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +4 -3
- package/cjs/components/Hint/Hint.js +9 -8
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.js +1 -1
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.d.ts +1 -1
- package/cjs/components/Input/Input.styles.js +3 -2
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.js +3 -2
- package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/cjs/components/Kebab/Kebab.js +6 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.js +3 -2
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.js +1 -1
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.js +2 -2
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MiniModal/MiniModal.js +1 -1
- package/cjs/components/MiniModal/MiniModal.js.map +1 -1
- package/cjs/components/Modal/Modal.js +1 -1
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.js +1 -1
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.js +8 -3
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.js +1 -1
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.js +10 -1
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.js +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +6 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.js +6 -3
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.js +1 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.js +1 -1
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.js +1 -1
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.js +1 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.js +1 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.js +1 -1
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Switcher/Switcher.js +1 -1
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Indicator.js +1 -1
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.js +2 -2
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.js +1 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.js +1 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Toast/Toast.js +1 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.js +1 -1
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.js +1 -1
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.js +2 -1
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +1 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +2 -2
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +10 -5
- package/cjs/components/Tooltip/Tooltip.js +59 -20
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js +4 -4
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/hooks/useDrop.d.ts +1 -1
- package/cjs/hooks/useDrop.js.map +1 -1
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +2 -2
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
- package/cjs/internal/CommonWrapper/utils/extractCommonProps.js.map +1 -0
- package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.js → utils/getCommonVisualStateDataAttributes.js} +3 -4
- package/cjs/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
- package/cjs/internal/CommonWrapper/{getVisualStateDataAttributes.js → utils/getVisualStateDataAttributes.js} +3 -3
- package/cjs/internal/CommonWrapper/utils/getVisualStateDataAttributes.js.map +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js +1 -0
- package/cjs/internal/CommonWrapper/utils/tryGetBoolean.js.map +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +2 -3
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js +3 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +2 -0
- package/cjs/internal/DateSelect/DateSelect.js +51 -4
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.styles.d.ts +1 -0
- package/cjs/internal/DateSelect/DateSelect.styles.js +15 -1
- package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
- package/cjs/internal/DateSelect/locale/locales/en.js +2 -1
- package/cjs/internal/DateSelect/locale/locales/en.js.map +1 -1
- package/cjs/internal/DateSelect/locale/locales/ru.js +2 -1
- package/cjs/internal/DateSelect/locale/locales/ru.js.map +1 -1
- package/cjs/internal/DateSelect/locale/types.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +16 -3
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +4 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +3 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +2 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.js +2 -2
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/Menu/Menu.js +2 -2
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +7 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +32 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +15 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.js +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/cjs/internal/NativeDateInput/utils.js +3 -2
- package/cjs/internal/NativeDateInput/utils.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +15 -4
- package/cjs/internal/Popup/Popup.js +67 -4
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainer.d.ts +3 -0
- package/cjs/internal/RenderContainer/RenderContainer.js +34 -24
- package/cjs/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +8 -4
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.js +5 -1
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +1 -1
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +9 -6
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/constants.js +2 -1
- package/cjs/internal/ThemePlayground/constants.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +7 -3
- package/cjs/internal/ZIndex/ZIndex.js +41 -3
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/themes/DarkTheme.d.ts +2 -0
- package/cjs/internal/themes/DarkTheme.js +6 -1
- package/cjs/internal/themes/DarkTheme.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +18 -0
- package/cjs/internal/themes/DefaultTheme.js +32 -4
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/date/InternalDate.d.ts +2 -0
- package/cjs/lib/date/InternalDate.js +8 -1
- package/cjs/lib/date/InternalDate.js.map +1 -1
- package/cjs/lib/date/InternalDateTransformer.d.ts +3 -0
- package/cjs/lib/date/InternalDateTransformer.js +23 -0
- package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
- package/cjs/lib/date/InternalDateValidator.js +2 -1
- package/cjs/lib/date/InternalDateValidator.js.map +1 -1
- package/cjs/lib/date/comparison.d.ts +6 -0
- package/cjs/lib/date/comparison.js +44 -0
- package/cjs/lib/date/comparison.js.map +1 -0
- package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/listenFocusOutside.js +4 -2
- package/cjs/lib/listenFocusOutside.js.map +1 -1
- package/cjs/lib/locale/constants.d.ts +3 -0
- package/cjs/lib/locale/constants.js +6 -2
- package/cjs/lib/locale/constants.js.map +1 -1
- package/cjs/lib/taskWithDelayAndMinimalDuration.js +1 -0
- package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/cjs/lib/theming/Emotion.d.ts +7 -1
- package/cjs/lib/theming/Emotion.js +6 -3
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.d.ts +0 -2
- package/cjs/lib/theming/ThemeContext.js +1 -3
- package/cjs/lib/theming/ThemeContext.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.md +3 -1
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js +50 -0
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js.map +1 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.js +75 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.js.map +1 -0
- package/cjs/lib/widgets/StylesContainer.d.ts +13 -0
- package/cjs/lib/widgets/StylesContainer.js +70 -0
- package/cjs/lib/widgets/StylesContainer.js.map +1 -0
- package/cjs/lib/widgets/index.d.ts +1 -0
- package/cjs/lib/widgets/index.js +1 -0
- package/cjs/lib/widgets/index.js.map +1 -0
- package/components/Autocomplete/Autocomplete/Autocomplete.js +11 -5
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.md +76 -3
- package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js +4 -1
- package/components/Autocomplete/Autocomplete.styles/Autocomplete.styles.js.map +1 -1
- package/components/Autocomplete/Autocomplete.styles.d.ts +1 -0
- package/components/Button/Button/Button.js +3 -3
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.md +38 -11
- package/components/Calendar/Calendar/Calendar.js +83 -66
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +28 -5
- package/components/Calendar/Calendar.md +82 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
- package/components/Calendar/CalendarContext/CalendarContext.js +2 -0
- package/components/Calendar/CalendarContext/CalendarContext.js.map +1 -0
- package/components/Calendar/CalendarContext/package.json +6 -0
- package/components/Calendar/CalendarContext.d.ts +12 -0
- package/components/Calendar/CalendarDateShape/CalendarDateShape.js +23 -1
- package/components/Calendar/CalendarDateShape/CalendarDateShape.js.map +1 -1
- package/components/Calendar/CalendarDateShape.d.ts +4 -2
- package/components/Calendar/CalendarDay/CalendarDay.js +64 -0
- package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -0
- package/components/Calendar/CalendarDay/package.json +6 -0
- package/components/Calendar/CalendarDay.d.ts +12 -0
- package/components/Calendar/CalendarDay.md +70 -0
- package/components/Calendar/CalendarUtils/CalendarUtils.js +5 -4
- package/components/Calendar/CalendarUtils/CalendarUtils.js.map +1 -1
- package/components/Calendar/CalendarUtils.d.ts +2 -1
- package/components/Calendar/DayCellView/DayCellView.js +33 -46
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Calendar/DayCellView.d.ts +4 -12
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js +10 -14
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
- package/components/Calendar/DayCellView.styles.d.ts +2 -5
- package/components/Calendar/Month/Month.js +50 -84
- package/components/Calendar/Month/Month.js.map +1 -1
- package/components/Calendar/Month.d.ts +0 -10
- package/components/Calendar/MonthView/MonthView.js +50 -45
- package/components/Calendar/MonthView/MonthView.js.map +1 -1
- package/components/Calendar/MonthView.d.ts +3 -2
- package/components/Calendar/MonthView.styles/MonthView.styles.js +20 -6
- package/components/Calendar/MonthView.styles/MonthView.styles.js.map +1 -1
- package/components/Calendar/MonthView.styles.d.ts +3 -0
- package/components/Calendar/MonthViewModel/MonthViewModel.js +9 -6
- package/components/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
- package/components/Calendar/config/config.js +6 -4
- package/components/Calendar/config/config.js.map +1 -1
- package/components/Calendar/index/index.js +2 -1
- package/components/Calendar/index/index.js.map +1 -1
- package/components/Calendar/index.d.ts +1 -0
- package/components/Checkbox/Checkbox/Checkbox.js +2 -2
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js +2 -2
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +2 -2
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js +62 -41
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +4 -1
- package/components/DatePicker/DatePicker.md +29 -1
- package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js +2 -1
- package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
- package/components/DatePicker/MobilePicker/MobilePicker.js +91 -0
- package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -0
- package/components/DatePicker/MobilePicker/package.json +6 -0
- package/components/DatePicker/MobilePicker.d.ts +10 -0
- package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js +10 -0
- package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js.map +1 -0
- package/components/DatePicker/MobilePicker.styles/package.json +6 -0
- package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/components/DatePicker/Picker/Picker.js +3 -3
- package/components/DatePicker/Picker/Picker.js.map +1 -1
- package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js +14 -0
- package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js.map +1 -0
- package/components/DatePicker/getMobilePickerTheme/package.json +6 -0
- package/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
- package/components/Dropdown/Dropdown/Dropdown.js +3 -3
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -3
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.md +39 -0
- package/components/FileUploader/FileUploader/FileUploader.js +30 -8
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +2 -0
- package/components/FileUploader/FileUploader.md +29 -0
- package/components/FxInput/FxInput/FxInput.js +2 -2
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/Group/Group/Group.js +2 -2
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Hint/Hint/Hint.js +53 -48
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +4 -3
- package/components/Input/Input/Input.js +3 -3
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.styles/Input.styles.js +2 -2
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/Input.styles.d.ts +1 -1
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -2
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js +7 -4
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Link/Link/Link.js +6 -3
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Loader/Loader/Loader.js +2 -2
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js +3 -3
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MiniModal/MiniModal/MiniModal.js +2 -2
- package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
- package/components/Modal/Modal/Modal.js +3 -3
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/ModalBody/ModalBody.js +3 -3
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Paging/Paging/Paging.js +10 -6
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +2 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/Radio/Radio/Radio.js +2 -2
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js +8 -4
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/ScrollContainer/ScrollBar/ScrollBar.js +2 -2
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +5 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -0
- package/components/Select/Select/Select.js +6 -5
- package/components/Select/Select/Select.js.map +1 -1
- package/components/SidePage/SidePage/SidePage.js +2 -2
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePageBody/SidePageBody.js +2 -2
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageContainer/SidePageContainer.js +2 -2
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js +2 -2
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +2 -2
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/Spinner/Spinner/Spinner.js +2 -2
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Switcher/Switcher/Switcher.js +3 -3
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Tabs/Indicator/Indicator.js +2 -2
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Tab/Tab.js +3 -3
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tabs/Tabs.js +2 -2
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +2 -2
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Toast/Toast/Toast.js +3 -3
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/ToastView/ToastView.js +2 -2
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toggle/Toggle/Toggle.js +2 -2
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Token/Token/Token.js +6 -3
- package/components/Token/Token/Token.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +2 -2
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +3 -3
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js +67 -46
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +10 -5
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +3 -3
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/hooks/useDrop/useDrop.js.map +1 -1
- package/hooks/useDrop.d.ts +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +2 -2
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/utils/extractCommonProps/extractCommonProps.js.map +1 -0
- package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/package.json +1 -1
- package/internal/CommonWrapper/{extractCommonProps.d.ts → utils/extractCommonProps.d.ts} +2 -2
- package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/getCommonVisualStateDataAttributes.js +1 -5
- package/internal/CommonWrapper/utils/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/{getCommonVisualStateDataAttributes → utils/getCommonVisualStateDataAttributes}/package.json +1 -1
- package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/getVisualStateDataAttributes.js +3 -3
- package/internal/CommonWrapper/utils/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +1 -0
- package/internal/CommonWrapper/{getVisualStateDataAttributes → utils/getVisualStateDataAttributes}/package.json +1 -1
- package/internal/CommonWrapper/{getVisualStateDataAttributes.d.ts → utils/getVisualStateDataAttributes.d.ts} +1 -1
- package/internal/CommonWrapper/utils/tryGetBoolean/package.json +6 -0
- package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js +3 -0
- package/internal/CommonWrapper/utils/tryGetBoolean/tryGetBoolean.js.map +1 -0
- package/internal/CommonWrapper/utils/tryGetBoolean.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +3 -3
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +5 -3
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +59 -6
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +2 -0
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +4 -1
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles.d.ts +1 -0
- package/internal/DateSelect/locale/locales/en/en.js +2 -1
- package/internal/DateSelect/locale/locales/en/en.js.map +1 -1
- package/internal/DateSelect/locale/locales/ru/ru.js +2 -1
- package/internal/DateSelect/locale/locales/ru/ru.js.map +1 -1
- package/internal/DateSelect/locale/types.d.ts +1 -0
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +12 -3
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +5 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +4 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +1 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -2
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +1 -0
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +3 -3
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -2
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +3 -3
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/Menu/Menu/Menu.js +3 -3
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +4 -3
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js +37 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js +11 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
- package/internal/MobilePopup/MobilePopupFooter/index/index.js +1 -0
- package/internal/MobilePopup/MobilePopupFooter/index/index.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/index/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
- package/internal/MobilePopup/MobilePopupFooter/package.json +6 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +2 -2
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/NativeDateInput/utils/utils.js +2 -1
- package/internal/NativeDateInput/utils/utils.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +53 -10
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +15 -4
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/RenderContainer/RenderContainer/RenderContainer.js +19 -12
- package/internal/RenderContainer/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderContainer.d.ts +3 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -5
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +2 -2
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/ThemePlayground/Playground/Playground.js +2 -2
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +10 -7
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/constants/constants.js +3 -0
- package/internal/ThemePlayground/constants/constants.js.map +1 -1
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +2 -2
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +55 -7
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +7 -3
- package/internal/themes/DarkTheme/DarkTheme.js +2 -0
- package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/internal/themes/DarkTheme.d.ts +2 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js +32 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +18 -0
- package/lib/date/InternalDate/InternalDate.js +7 -1
- package/lib/date/InternalDate/InternalDate.js.map +1 -1
- package/lib/date/InternalDate.d.ts +2 -0
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js +30 -0
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
- package/lib/date/InternalDateTransformer.d.ts +3 -0
- package/lib/date/InternalDateValidator/InternalDateValidator.js +6 -1
- package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
- package/lib/date/comparison/comparison.js +45 -0
- package/lib/date/comparison/comparison.js.map +1 -0
- package/lib/date/comparison/package.json +6 -0
- package/lib/date/comparison.d.ts +6 -0
- package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +24 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/lib/listenFocusOutside/listenFocusOutside.js +3 -2
- package/lib/listenFocusOutside/listenFocusOutside.js.map +1 -1
- package/lib/locale/constants/constants.js +4 -1
- package/lib/locale/constants/constants.js.map +1 -1
- package/lib/locale/constants.d.ts +3 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +2 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +12 -3
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/Emotion.d.ts +7 -1
- package/lib/theming/ThemeContext/ThemeContext.js +0 -2
- package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
- package/lib/theming/ThemeContext.d.ts +0 -2
- package/lib/theming/ThemeContext.md +3 -1
- package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js +33 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js.map +1 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024/package.json +6 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
- package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js +50 -0
- package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js.map +1 -0
- package/lib/theming/themes/Theme2022Update2024/package.json +6 -0
- package/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
- package/lib/widgets/StylesContainer/StylesContainer.js +65 -0
- package/lib/widgets/StylesContainer/StylesContainer.js.map +1 -0
- package/lib/widgets/StylesContainer/package.json +6 -0
- package/lib/widgets/StylesContainer.d.ts +13 -0
- package/lib/widgets/index/index.js +1 -0
- package/lib/widgets/index/index.js.map +1 -0
- package/lib/widgets/index/package.json +6 -0
- package/lib/widgets/index.d.ts +1 -0
- package/lib/widgets/package.json +6 -0
- package/package.json +3 -2
- package/cjs/internal/CommonWrapper/extractCommonProps.js.map +0 -1
- package/cjs/internal/CommonWrapper/getCommonVisualStateDataAttributes.js.map +0 -1
- package/cjs/internal/CommonWrapper/getVisualStateDataAttributes.js.map +0 -1
- package/cjs/lib/theming/StyleContainer.d.ts +0 -4
- package/cjs/lib/theming/StyleContainer.js +0 -21
- package/cjs/lib/theming/StyleContainer.js.map +0 -1
- package/internal/CommonWrapper/extractCommonProps/extractCommonProps.js.map +0 -1
- package/internal/CommonWrapper/getCommonVisualStateDataAttributes/getCommonVisualStateDataAttributes.js.map +0 -1
- package/internal/CommonWrapper/getVisualStateDataAttributes/getVisualStateDataAttributes.js.map +0 -1
- package/lib/theming/StyleContainer/StyleContainer.js +0 -21
- package/lib/theming/StyleContainer/StyleContainer.js.map +0 -1
- package/lib/theming/StyleContainer/package.json +0 -6
- package/lib/theming/StyleContainer.d.ts +0 -4
- /package/cjs/internal/CommonWrapper/{extractCommonProps.js → utils/extractCommonProps.js} +0 -0
- /package/cjs/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
- /package/internal/CommonWrapper/{extractCommonProps → utils/extractCommonProps}/extractCommonProps.js +0 -0
- /package/internal/CommonWrapper/{getCommonVisualStateDataAttributes.d.ts → utils/getCommonVisualStateDataAttributes.d.ts} +0 -0
|
@@ -247,3 +247,42 @@ const hiddenItems = [
|
|
|
247
247
|
</DropdownMenu>
|
|
248
248
|
</Gapped>
|
|
249
249
|
```
|
|
250
|
+
|
|
251
|
+
С использованием фиче-флага menuItemsAtAnyLevel. Mожно использовать различные обертки для пунктов меню.
|
|
252
|
+
|
|
253
|
+
```jsx harmony
|
|
254
|
+
import {
|
|
255
|
+
DropdownMenu,
|
|
256
|
+
Button,
|
|
257
|
+
MenuHeader,
|
|
258
|
+
MenuItem,
|
|
259
|
+
MenuSeparator,
|
|
260
|
+
ReactUIFeatureFlagsContext,
|
|
261
|
+
Gapped
|
|
262
|
+
} from '@skbkontur/react-ui';
|
|
263
|
+
|
|
264
|
+
const groupedMenuItems = (
|
|
265
|
+
<div>
|
|
266
|
+
<MenuItem>MenuItem1</MenuItem>
|
|
267
|
+
<MenuItem>MenuItem2</MenuItem>
|
|
268
|
+
<MenuItem isNotSelectable>Not Selectable</MenuItem>
|
|
269
|
+
</div>
|
|
270
|
+
);
|
|
271
|
+
|
|
272
|
+
<Gapped>
|
|
273
|
+
<ReactUIFeatureFlagsContext.Provider value={{ menuItemsAtAnyLevel: true }}>
|
|
274
|
+
<DropdownMenu caption={<Button use="primary">Открыть меню</Button>}>
|
|
275
|
+
<>
|
|
276
|
+
<MenuHeader>Заголовок меню</MenuHeader>
|
|
277
|
+
<MenuSeparator />
|
|
278
|
+
<div>
|
|
279
|
+
{groupedMenuItems}
|
|
280
|
+
</div>
|
|
281
|
+
</>
|
|
282
|
+
<MenuItem>MenuItem3</MenuItem>
|
|
283
|
+
</DropdownMenu>
|
|
284
|
+
</ReactUIFeatureFlagsContext.Provider>
|
|
285
|
+
</Gapped>;
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
|
|
@@ -11,6 +11,8 @@ import { SizeProp } from '../../lib/types/props';
|
|
|
11
11
|
export declare type FileUploaderSize = SizeProp;
|
|
12
12
|
declare type FileUploaderOverriddenProps = 'size';
|
|
13
13
|
interface _FileUploaderProps extends CommonProps, Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {
|
|
14
|
+
/** Начальное состояние загруженных файлов */
|
|
15
|
+
initialFiles?: File[];
|
|
14
16
|
/** Состояние ошибки всего контрола */
|
|
15
17
|
error?: boolean;
|
|
16
18
|
/** Состояние предупреждения всего контрола */
|
|
@@ -26,7 +26,7 @@ var _FocusControlWrapper = require("../../internal/FocusControlWrapper");
|
|
|
26
26
|
var _useTheme = require("../../lib/theming/useTheme");
|
|
27
27
|
|
|
28
28
|
var _UploadIcon = require("./UploadIcon");
|
|
29
|
-
var _FileUploader2 = require("./FileUploader.styles");var _excluded = ["disabled", "error", "warning", "multiple", "width", "hideFiles", "onBlur", "onFocus", "onChange", "request", "validateBeforeUpload", "onRequestSuccess", "onRequestError", "size", "renderFile"];
|
|
29
|
+
var _FileUploader2 = require("./FileUploader.styles");var _excluded = ["initialFiles", "disabled", "error", "warning", "multiple", "width", "hideFiles", "onBlur", "onFocus", "onChange", "request", "validateBeforeUpload", "onRequestSuccess", "onRequestError", "size", "renderFile"];
|
|
30
30
|
|
|
31
31
|
var stopPropagation = function stopPropagation(e) {return e.stopPropagation();};
|
|
32
32
|
|
|
@@ -80,6 +80,8 @@ var stopPropagation = function stopPropagation(e) {return e.stopPropagation();};
|
|
|
80
80
|
|
|
81
81
|
|
|
82
82
|
|
|
83
|
+
|
|
84
|
+
|
|
83
85
|
|
|
84
86
|
|
|
85
87
|
|
|
@@ -98,7 +100,8 @@ var _FileUploader = (0, _forwardRefAndName.forwardRefAndName)('FileUploader', fu
|
|
|
98
100
|
var _isTheme2022 = (0, _ThemeHelpers.isTheme2022)(theme);
|
|
99
101
|
|
|
100
102
|
var
|
|
101
|
-
|
|
103
|
+
initialFiles =
|
|
104
|
+
|
|
102
105
|
|
|
103
106
|
|
|
104
107
|
|
|
@@ -114,7 +117,7 @@ var _FileUploader = (0, _forwardRefAndName.forwardRefAndName)('FileUploader', fu
|
|
|
114
117
|
|
|
115
118
|
|
|
116
119
|
|
|
117
|
-
props.disabled,error = props.error,warning = props.warning,_props$multiple = props.multiple,multiple = _props$multiple === void 0 ? false : _props$multiple,_props$width = props.width,width = _props$width === void 0 ? theme.fileUploaderWidth : _props$width,_props$hideFiles = props.hideFiles,hideFiles = _props$hideFiles === void 0 ? false : _props$hideFiles,onBlur = props.onBlur,onFocus = props.onFocus,onChange = props.onChange,request = props.request,validateBeforeUpload = props.validateBeforeUpload,onRequestSuccess = props.onRequestSuccess,onRequestError = props.onRequestError,_props$size = props.size,size = _props$size === void 0 ? 'small' : _props$size,_props$renderFile = props.renderFile,renderFile = _props$renderFile === void 0 ? defaultRenderFile : _props$renderFile,inputProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
120
|
+
props.initialFiles,disabled = props.disabled,error = props.error,warning = props.warning,_props$multiple = props.multiple,multiple = _props$multiple === void 0 ? false : _props$multiple,_props$width = props.width,width = _props$width === void 0 ? theme.fileUploaderWidth : _props$width,_props$hideFiles = props.hideFiles,hideFiles = _props$hideFiles === void 0 ? false : _props$hideFiles,onBlur = props.onBlur,onFocus = props.onFocus,onChange = props.onChange,request = props.request,validateBeforeUpload = props.validateBeforeUpload,onRequestSuccess = props.onRequestSuccess,onRequestError = props.onRequestError,_props$size = props.size,size = _props$size === void 0 ? 'small' : _props$size,_props$renderFile = props.renderFile,renderFile = _props$renderFile === void 0 ? defaultRenderFile : _props$renderFile,inputProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
118
121
|
|
|
119
122
|
var _useContext =
|
|
120
123
|
(0, _react.useContext)(_FileUploaderControlContext.FileUploaderControlContext),files = _useContext.files,setFiles = _useContext.setFiles,removeFile = _useContext.removeFile,reset = _useContext.reset,setFileValidationResult = _useContext.setFileValidationResult,isMinLengthReached = _useContext.isMinLengthReached;
|
|
@@ -166,7 +169,7 @@ var _FileUploader = (0, _forwardRefAndName.forwardRefAndName)('FileUploader', fu
|
|
|
166
169
|
/** common part **/
|
|
167
170
|
var handleChange = (0, _react.useCallback)(
|
|
168
171
|
function (newFiles) {
|
|
169
|
-
if (!newFiles) {
|
|
172
|
+
if (!newFiles || !newFiles.length) {
|
|
170
173
|
return;
|
|
171
174
|
}
|
|
172
175
|
|
|
@@ -256,6 +259,16 @@ var _FileUploader = (0, _forwardRefAndName.forwardRefAndName)('FileUploader', fu
|
|
|
256
259
|
}
|
|
257
260
|
};
|
|
258
261
|
|
|
262
|
+
var handleRemoveFile = (0, _react.useCallback)(function (fileId) {
|
|
263
|
+
var dataTransfer = new DataTransfer();
|
|
264
|
+
files.
|
|
265
|
+
filter(function (f) {return f.id !== fileId;}).
|
|
266
|
+
forEach(function (file) {
|
|
267
|
+
dataTransfer.items.add(file.originalFile);
|
|
268
|
+
});
|
|
269
|
+
inputRef.current && (inputRef.current.files = dataTransfer.files);
|
|
270
|
+
}, []);
|
|
271
|
+
|
|
259
272
|
var _useState3 = (0, _react.useState)(false),hovered = _useState3[0],setHovered = _useState3[1];
|
|
260
273
|
|
|
261
274
|
var uploadButtonClassNames = emotion.cx(
|
|
@@ -296,6 +309,16 @@ var _FileUploader = (0, _forwardRefAndName.forwardRefAndName)('FileUploader', fu
|
|
|
296
309
|
setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);
|
|
297
310
|
}, [isMinLengthReached, hasOneFileForSingle]);
|
|
298
311
|
|
|
312
|
+
(0, _react.useEffect)(function () {
|
|
313
|
+
if (!files || !files.length || !inputRef.current) {
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
var dataTransfer = new DataTransfer();
|
|
318
|
+
files.forEach(function (file) {return dataTransfer.items.add(file.originalFile);});
|
|
319
|
+
inputRef.current.files = dataTransfer.files;
|
|
320
|
+
}, []);
|
|
321
|
+
|
|
299
322
|
var rootNodeRef = (0, _react.useRef)(null);
|
|
300
323
|
|
|
301
324
|
var iconSizes = {
|
|
@@ -313,7 +336,9 @@ var _FileUploader = (0, _forwardRefAndName.forwardRefAndName)('FileUploader', fu
|
|
|
313
336
|
style: (0, _useMemoObject.useMemoObject)({ width: width }),
|
|
314
337
|
ref: rootNodeRef },
|
|
315
338
|
|
|
316
|
-
!hideFiles && !isSingleMode && !!files.length && /*#__PURE__*/
|
|
339
|
+
!hideFiles && !isSingleMode && !!files.length && /*#__PURE__*/
|
|
340
|
+
_react.default.createElement(_FileUploaderFileList.FileUploaderFileList, { renderFile: renderFile, size: size, onRemove: handleRemoveFile }), /*#__PURE__*/
|
|
341
|
+
|
|
317
342
|
_react.default.createElement("div", { className: uploadButtonWrapperClassNames }, /*#__PURE__*/
|
|
318
343
|
_react.default.createElement("label", {
|
|
319
344
|
onMouseEnter: function onMouseEnter() {return setHovered(true);},
|
|
@@ -339,7 +364,7 @@ var _FileUploader = (0, _forwardRefAndName.forwardRefAndName)('FileUploader', fu
|
|
|
339
364
|
|
|
340
365
|
hasOneFileForSingle ? /*#__PURE__*/
|
|
341
366
|
_react.default.createElement("div", { ref: fileDivRef, className: styles.singleFile() },
|
|
342
|
-
renderFile(files[0], /*#__PURE__*/_react.default.createElement(_FileUploaderFile.FileUploaderFile, { file: files[0], size: size }))) : /*#__PURE__*/
|
|
367
|
+
renderFile(files[0], /*#__PURE__*/_react.default.createElement(_FileUploaderFile.FileUploaderFile, { file: files[0], size: size, onRemove: handleRemoveFile }))) : /*#__PURE__*/
|
|
343
368
|
|
|
344
369
|
|
|
345
370
|
_react.default.createElement(_react.default.Fragment, null,
|
|
@@ -362,9 +387,7 @@ var _FileUploader = (0, _forwardRefAndName.forwardRefAndName)('FileUploader', fu
|
|
|
362
387
|
onClick: stopPropagation,
|
|
363
388
|
onChange: handleInputChange,
|
|
364
389
|
onFocus: handleFocus,
|
|
365
|
-
onBlur: handleBlur
|
|
366
|
-
// для того, чтобы срабатывало событие change при выборе одного и того же файла подряд
|
|
367
|
-
, value: '' }))))))));
|
|
390
|
+
onBlur: handleBlur }))))))));
|
|
368
391
|
|
|
369
392
|
|
|
370
393
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FileUploader.tsx"],"names":["stopPropagation","e","FileUploaderDataTids","root","content","link","input","defaultRenderFile","file","fileNode","_FileUploader","props","ref","theme","emotion","_isTheme2022","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","size","renderFile","inputProps","FileUploaderControlContext","files","setFiles","removeFile","reset","setFileValidationResult","isMinLengthReached","locale","inputRef","fileDivRef","isAsync","isSingleMode","isLinkVisible","setIsLinkVisible","upload","tryValidateAndUpload","forEach","validationMessage","id","FileUploaderFileValidationResult","styles","sizeClassName","small","sizeSmall","medium","sizeMedium","large","sizeLarge","sizeIconClass","iconSmall","iconMedium","iconLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","filesArray","Array","from","attachedFiles","map","getAttachedFile","length","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","globalObject","current","document","focus","keyListener","isTabPressed","blur","getRootNode","rootNodeRef","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","hovered","setHovered","uploadButtonClassNames","cx","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","globalClasses","afterLinkText","afterLinkText_HasFiles","singleFile","orDragHere","visuallyHidden","FileUploader","React","memo","displayName"],"mappings":"mqBAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sD;;AAEA,IAAMA,eAAwC,GAAG,SAA3CA,eAA2C,CAACC,CAAD,UAAOA,CAAC,CAACD,eAAF,EAAP,EAAjD;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDO,IAAME,oBAAoB,GAAG;AAClCC,EAAAA,IAAI,EAAE,oBAD4B;AAElCC,EAAAA,OAAO,EAAE,uBAFyB;AAGlCC,EAAAA,IAAI,EAAE,oBAH4B;AAIlCC,EAAAA,KAAK,EAAE,qBAJ2B,EAA7B,C;;;AAOP,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,IAAD,EAAiCC,QAAjC,UAAkEA,QAAlE,EAA1B;;AAEA,IAAMC,aAAa,GAAG,0CAAuD,cAAvD,EAAuE,UAACC,KAAD,EAAQC,GAAR,EAAgB;AAC3G,MAAMC,KAAK,GAAG,yBAAd;AACA,MAAMC,OAAO,GAAG,0BAAhB;AACA,MAAMC,YAAY,GAAG,+BAAYF,KAAZ,CAArB;;AAEA;AACEG,EAAAA,QADF;;;;;;;;;;;;;;;;AAiBIL,EAAAA,KAjBJ,CACEK,QADF,CAEEC,KAFF,GAiBIN,KAjBJ,CAEEM,KAFF,CAGEC,OAHF,GAiBIP,KAjBJ,CAGEO,OAHF,mBAiBIP,KAjBJ,CAIEQ,QAJF,CAIEA,QAJF,gCAIa,KAJb,kCAiBIR,KAjBJ,CAKES,KALF,CAKEA,KALF,6BAKUP,KAAK,CAACQ,iBALhB,mCAiBIV,KAjBJ,CAMEW,SANF,CAMEA,SANF,iCAMc,KANd,oBAOEC,MAPF,GAiBIZ,KAjBJ,CAOEY,MAPF,CAQEC,OARF,GAiBIb,KAjBJ,CAQEa,OARF,CASEC,QATF,GAiBId,KAjBJ,CASEc,QATF,CAUEC,OAVF,GAiBIf,KAjBJ,CAUEe,OAVF,CAWEC,oBAXF,GAiBIhB,KAjBJ,CAWEgB,oBAXF,CAYEC,gBAZF,GAiBIjB,KAjBJ,CAYEiB,gBAZF,CAaEC,cAbF,GAiBIlB,KAjBJ,CAaEkB,cAbF,eAiBIlB,KAjBJ,CAcEmB,IAdF,CAcEA,IAdF,4BAcS,OAdT,mCAiBInB,KAjBJ,CAeEoB,UAfF,CAeEA,UAfF,kCAeexB,iBAff,qBAgBKyB,UAhBL,+CAiBIrB,KAjBJ;;AAmBA;AACE,yBAAWsB,sDAAX,CADF,CAAQC,KAAR,eAAQA,KAAR,CAAeC,QAAf,eAAeA,QAAf,CAAyBC,UAAzB,eAAyBA,UAAzB,CAAqCC,KAArC,eAAqCA,KAArC,CAA4CC,uBAA5C,eAA4CA,uBAA5C,CAAqEC,kBAArE,eAAqEA,kBAArE;;AAGA,MAAMC,MAAM,GAAG,yCAAf;;AAEA,MAAMC,QAAQ,GAAG,mBAAyB,IAAzB,CAAjB;AACA,MAAMC,UAAU,GAAG,mBAAuB,IAAvB,CAAnB;;AAEA,MAAMC,OAAO,GAAG,CAAC,CAACjB,OAAlB;AACA,MAAMkB,YAAY,GAAG,CAACzB,QAAtB;;AAEA,kBAA0C,qBAAS,IAAT,CAA1C,CAAO0B,aAAP,gBAAsBC,gBAAtB;AACA,MAAMC,MAAM,GAAG,0BAAUrB,OAAV,EAAmBE,gBAAnB,EAAqCC,cAArC,CAAf;;AAEA,MAAMmB,oBAAoB,GAAG;AAC3B,YAACd,KAAD,EAAuC;AACrCA,IAAAA,KAAK,CAACe,OAAN,+GAAc,iBAAOzC,IAAP;AACcmB,gBAAAA,oBADd,sEAC6CA,oBAAoB,CAACnB,IAAD,CADjE,2CACN0C,iBADM;;AAGZ,oBAAI,CAACA,iBAAL,EAAwB;AACtBP,kBAAAA,OAAO,IAAII,MAAM,CAACvC,IAAD,CAAjB;AACD,iBAFD,MAEO;AACL8B,kBAAAA,uBAAuB,CAAC9B,IAAI,CAAC2C,EAAN,EAAUC,mEAAiCnC,KAAjC,CAAuCiC,iBAAvC,CAAV,CAAvB;AACD,iBAPW,wDAAd;;AASD,GAX0B;AAY3B,GAACvB,oBAAD,EAAuBgB,OAAvB,EAAgCI,MAAhC,EAAwCT,uBAAxC,CAZ2B,CAA7B;;AAcA,MAAMe,MAAM,GAAG,8BAAUvC,OAAV,CAAf;AACA,MAAMwC,aAAa,GAAG,8CAAoBxB,IAApB,EAA0B;AAC9CyB,IAAAA,KAAK,EAAEF,MAAM,CAACG,SAAP,CAAiB3C,KAAjB,CADuC;AAE9C4C,IAAAA,MAAM,EAAEJ,MAAM,CAACK,UAAP,CAAkB7C,KAAlB,CAFsC;AAG9C8C,IAAAA,KAAK,EAAEN,MAAM,CAACO,SAAP,CAAiB/C,KAAjB,CAHuC,EAA1B,CAAtB;;;AAMA,MAAMgD,aAAa,GAAG,8CAAoB/B,IAApB,EAA0B;AAC9CyB,IAAAA,KAAK,EAAEF,MAAM,CAACS,SAAP,CAAiBjD,KAAjB,CADuC;AAE9C4C,IAAAA,MAAM,EAAEJ,MAAM,CAACU,UAAP,CAAkBlD,KAAlB,CAFsC;AAG9C8C,IAAAA,KAAK,EAAEN,MAAM,CAACW,SAAP,CAAiBnD,KAAjB,CAHuC,EAA1B,CAAtB;;;AAMA,MAAMoD,iBAAiB,GAAG,8CAAoBnC,IAApB,EAA0B;AAClDyB,IAAAA,KAAK,EAAEF,MAAM,CAACa,iBAAP,CAAyBrD,KAAzB,CAD2C;AAElD4C,IAAAA,MAAM,EAAEJ,MAAM,CAACc,kBAAP,CAA0BtD,KAA1B,CAF0C;AAGlD8C,IAAAA,KAAK,EAAEN,MAAM,CAACe,iBAAP,CAAyBvD,KAAzB,CAH2C,EAA1B,CAA1B;;;AAMA;AACA,MAAMwD,YAAY,GAAG;AACnB,YAACC,QAAD,EAA+B;AAC7B,QAAI,CAACA,QAAL,EAAe;AACb;AACD;;AAED,QAAIC,UAAU,GAAGC,KAAK,CAACC,IAAN,CAAWH,QAAX,CAAjB;;AAEA,QAAI1B,YAAJ,EAAkB;AAChB2B,MAAAA,UAAU,GAAG,CAACA,UAAU,CAAC,CAAD,CAAX,CAAb;AACD;;AAED,QAAMG,aAAa,GAAGH,UAAU,CAACI,GAAX,CAAeC,0BAAf,CAAtB;;AAEA,QAAIhC,YAAY,IAAI8B,aAAa,CAACG,MAA9B,IAAwC3C,KAAK,CAAC2C,MAAlD,EAA0D;AACxDzC,MAAAA,UAAU,CAACF,KAAK,CAAC,CAAD,CAAL,CAASiB,EAAV,CAAV;AACD;;AAED,QAAIuB,aAAa,CAACG,MAAlB,EAA0B;AACxB1C,MAAAA,QAAQ,CAACuC,aAAD,CAAR;AACA1B,MAAAA,oBAAoB,CAAC0B,aAAD,CAApB;AACD;AACF,GAtBkB;AAuBnB,GAAC1B,oBAAD,EAAuBb,QAAvB,EAAiCS,YAAjC,EAA+CV,KAA/C,EAAsDE,UAAtD,CAvBmB,CAArB;;;AA0BA,MAAM0C,UAAU,GAAG;AACjB,YAACC,KAAD,EAAW;AACT,QAAI/D,QAAJ,EAAc;AACZ;AACD;;AAED,QAAQgE,YAAR,GAAyBD,KAAzB,CAAQC,YAAR;AACA,QAAQ9C,KAAR,GAAkB8C,YAAlB,CAAQ9C,KAAR;;AAEA,QAAI,CAAAA,KAAK,QAAL,YAAAA,KAAK,CAAE2C,MAAP,IAAgB,CAApB,EAAuB;AACrBR,MAAAA,YAAY,CAACnC,KAAD,CAAZ;AACA8C,MAAAA,YAAY,CAACC,SAAb;AACD;AACF,GAbgB;AAcjB,GAACZ,YAAD,EAAerD,QAAf,CAdiB,CAAnB;;;AAiBA,iBAAuC,uBAA0B,EAAEkE,MAAM,EAAEJ,UAAV,EAA1B,CAAvC,CAAQK,WAAR,YAAQA,WAAR,CAA0BC,QAA1B,YAAqBxE,GAArB;AACA,kBAA2D,wBAA3D,CAAqByE,iBAArB,aAAQF,WAAR,CAA6CG,SAA7C,aAAwC1E,GAAxC;;AAEA,MAAI,6BAAU2E,0BAAV,CAAJ,EAA6B;AAC3BD,IAAAA,SAAS,CAACE,OAAV,GAAoBD,2BAAaE,QAAjC;AACD;;AAED,MAAMC,KAAK,GAAG,wBAAY,YAAM;AAC9BC,6BAAYC,YAAZ,GAA2B,IAA3B;AACA,yBAAAnD,QAAQ,CAAC+C,OAAT,uCAAkBE,KAAlB;AACD,GAHa,EAGX,EAHW,CAAd;;AAKA,MAAMG,IAAI,GAAG,wBAAY,YAAM;AAC7B,0BAAApD,QAAQ,CAAC+C,OAAT,wCAAkBK,IAAlB;AACD,GAFY,EAEV,EAFU,CAAb;;AAIA,kCAAoBjF,GAApB,EAAyB,oBAAO,EAAE8E,KAAK,EAALA,KAAF,EAASG,IAAI,EAAJA,IAAT,EAAexD,KAAK,EAALA,KAAf,EAAsByD,WAAW,EAAE,+BAAMC,WAAW,CAACP,OAAlB,EAAnC,EAAP,EAAzB,EAAiG;AAC/F5E,EAAAA,GAD+F;AAE/FiF,EAAAA,IAF+F;AAG/FH,EAAAA,KAH+F;AAI/FrD,EAAAA,KAJ+F,CAAjG;;;AAOA,mBAAwC,qBAAS,KAAT,CAAxC,CAAO2D,YAAP,iBAAqBC,eAArB;AACA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACnB,KAAD,EAAgD;AACxEtD,IAAAA,QAAQ,QAAR,YAAAA,QAAQ,CAAGsD,KAAH,CAAR;AACAV,IAAAA,YAAY,CAACU,KAAK,CAACoB,MAAN,CAAajE,KAAd,CAAZ;AACD,GAHD;;AAKA,MAAMkE,WAAW,GAAG,SAAdA,WAAc,CAACnG,CAAD,EAA2C;AAC7D,QAAI,CAACe,QAAL,EAAe;AACb;AACA;AACAuE,iCAAac,qBAAb,+CAAaA,qBAAb,CAAqC,YAAM;AACzC,YAAIV,yBAAYC,YAAhB,EAA8B;AAC5BK,UAAAA,eAAe,CAAC,IAAD,CAAf;AACD;AACF,OAJD;AAKAzE,MAAAA,OAAO,QAAP,YAAAA,OAAO,CAAGvB,CAAH,CAAP;AACD;AACF,GAXD;;AAaA,MAAMqG,UAAU,GAAG,SAAbA,UAAa,CAACrG,CAAD,EAA2C;AAC5DgG,IAAAA,eAAe,CAAC,KAAD,CAAf;AACA,QAAI,CAACjF,QAAL,EAAe;AACbO,MAAAA,MAAM,QAAN,YAAAA,MAAM,CAAGtB,CAAH,CAAN;AACD;AACF,GALD;;AAOA,mBAA8B,qBAAS,KAAT,CAA9B,CAAOsG,OAAP,iBAAgBC,UAAhB;;AAEA,MAAMC,sBAAsB,GAAG3F,OAAO,CAAC4F,EAAR;AAC7BrD,EAAAA,MAAM,CAACsD,YAAP,CAAoB9F,KAApB,CAD6B;AAE7ByC,EAAAA,aAF6B;AAG7B0C,EAAAA,YAAY,IAAI3C,MAAM,CAACuD,iBAAP,CAAyB/F,KAAzB,CAHa;AAI7BG,EAAAA,QAAQ,IAAIqC,MAAM,CAACrC,QAAP,CAAgBH,KAAhB,CAJiB;AAK7B,GAACG,QAAD,IAAauF,OAAb,IAAwBlD,MAAM,CAACkD,OAAP,CAAe1F,KAAf,CALK;AAM7B,GAAC,CAACK,OAAF,IAAamC,MAAM,CAACnC,OAAP,CAAeL,KAAf,CANgB;AAO7B,GAAC,CAACI,KAAF,IAAWoC,MAAM,CAACpC,KAAP,CAAaJ,KAAb,CAPkB;AAQ7BsE,EAAAA,WAAW,IAAI,CAACnE,QAAhB,IAA4BqC,MAAM,CAACwD,QAAP,CAAgBhG,KAAhB,CARC,CAA/B;;;AAWA,MAAMiG,OAAO,GAAGzB,iBAAiB,IAAI,CAACrE,QAAtC;AACA,MAAM+F,6BAA6B,GAAGjG,OAAO,CAAC4F,EAAR;AACpC,GAAC3F,YAAD,IAAiB+F,OAAjB,IAA4BzD,MAAM,CAAC2D,cAAP,CAAsBnG,KAAtB,CADQ;AAEpCE,EAAAA,YAAY,IAAI+F,OAAhB,IAA2BzD,MAAM,CAAC4D,kBAAP,CAA0BpG,KAA1B,CAFS,CAAtC;;;AAKA,MAAMqG,0BAA0B,GAAGpG,OAAO,CAAC4F,EAAR;AACjCrD,EAAAA,MAAM,CAAC8D,IAAP,CAAYtG,KAAZ,CADiC;AAEjCgD,EAAAA,aAFiC;AAGjC7C,EAAAA,QAAQ,IAAIqC,MAAM,CAAC+D,YAAP,CAAoBvG,KAApB,CAHqB,CAAnC;;;AAMA,MAAMwG,UAAU,GAAGnF,KAAK,CAAC2C,MAAN,KAAiB,CAApC;AACA,MAAMyC,mBAAmB,GAAG1E,YAAY,IAAIyE,UAAhB,IAA8B,CAAC/F,SAA3D;;AAEA,MAAMiG,iBAAiB,GAAGzG,OAAO,CAAC4F,EAAR,CAAWrD,MAAM,CAACjD,OAAP,EAAX,EAA6BkH,mBAAmB,IAAIjE,MAAM,CAACmE,gBAAP,EAApD,CAA1B;;AAEA,MAAMC,cAAc,GAAG3G,OAAO,CAAC4F,EAAR;AACrBrD,EAAAA,MAAM,CAAChD,IAAP,CAAYQ,KAAZ,CADqB;AAErB,GAACG,QAAD,IAAauF,OAAb,IAAwBlD,MAAM,CAACqE,WAAP,CAAmB7G,KAAnB,CAFH;AAGrBG,EAAAA,QAAQ,IAAIqC,MAAM,CAACsE,YAAP,CAAoB9G,KAApB,CAHS,CAAvB;;;AAMA,wBAAU,YAAM;AACdiC,IAAAA,gBAAgB,CAACwE,mBAAmB,GAAG,CAAC/E,kBAAJ,GAAyB,IAA7C,CAAhB;AACD,GAFD,EAEG,CAACA,kBAAD,EAAqB+E,mBAArB,CAFH;;AAIA,MAAMvB,WAAW,GAAG,mBAAO,IAAP,CAApB;;AAEA,MAAM6B,SAAmC,GAAG;AAC1CrE,IAAAA,KAAK,EAAEsE,QAAQ,CAAChH,KAAK,CAACiH,gBAAP,CAD2B;AAE1CrE,IAAAA,MAAM,EAAEoE,QAAQ,CAAChH,KAAK,CAACkH,iBAAP,CAF0B;AAG1CpE,IAAAA,KAAK,EAAEkE,QAAQ,CAAChH,KAAK,CAACmH,gBAAP,CAH2B,EAA5C;;AAKA,MAAMb,IAAI,GAAGpG,YAAY,gBAAG,6BAAC,sBAAD,IAAgB,IAAI,EAAE6G,SAAS,CAAC9F,IAAD,CAA/B,GAAH,gBAA+C,6BAAC,cAAD,OAAxE;;AAEA;AACE,iCAAC,4BAAD,EAAmBnB,KAAnB;AACE;AACE,kBAAUT,oBAAoB,CAACC,IADjC;AAEE,MAAA,SAAS,EAAEkD,MAAM,CAAClD,IAAP,CAAYU,KAAZ,CAFb;AAGE,MAAA,KAAK,EAAE,kCAAc,EAAEO,KAAK,EAALA,KAAF,EAAd,CAHT;AAIE,MAAA,GAAG,EAAE2E,WAJP;;AAMG,KAACzE,SAAD,IAAc,CAACsB,YAAf,IAA+B,CAAC,CAACV,KAAK,CAAC2C,MAAvC,iBAAiD,6BAAC,0CAAD,IAAsB,UAAU,EAAE9C,UAAlC,EAA8C,IAAI,EAAED,IAApD,GANpD;AAOE,0CAAK,SAAS,EAAEiF,6BAAhB;AACE;AACE,MAAA,YAAY,EAAE,gCAAMP,UAAU,CAAC,IAAD,CAAhB,EADhB;AAEE,MAAA,YAAY,EAAE,gCAAMA,UAAU,CAAC,KAAD,CAAhB,EAFhB;AAGE,MAAA,GAAG,EAAEpB,QAHP;AAIE,MAAA,SAAS,EAAEqB,sBAJb;;AAME;AACE,kBAAUvG,oBAAoB,CAACE,OADjC;AAEE,MAAA,SAAS,EAAEU,OAAO,CAAC4F,EAAR,CAAWa,iBAAX,iCAAiCtD,iBAAjC,IAAqD,CAAC/B,KAAK,CAAC2C,MAAP,IAAiB,CAACjC,YAAvE,eAFb;;AAIGC,IAAAA,aAAa;AACZ,2CAAM,YAAU3C,oBAAoB,CAACG,IAArC,EAA2C,SAAS,EAAEoH,cAAtD;AACGH,IAAAA,mBAAmB,GAAG9E,MAAM,CAACyF,WAAV,GAAwBzF,MAAM,CAAC0F,UADrD,CALJ;;;AASGrF,IAAAA,aAAa,IAAIsF,MAAM,CAACC,YAAP,CAAoB,IAApB,CATpB,CAS8C,YAT9C;AAUE;AACE,MAAA,SAAS,EAAEtH,OAAO,CAAC4F,EAAR;AACT2B,mCAAcC,aADL;AAEThB,MAAAA,mBAAmB,GAAGjE,MAAM,CAACkF,sBAAP,CAA8B1H,KAA9B,CAAH,GAA0CwC,MAAM,CAACiF,aAAP,CAAqBzH,KAArB,CAFpD,CADb;;;AAMGyG,IAAAA,mBAAmB;AAClB,0CAAK,GAAG,EAAE5E,UAAV,EAAsB,SAAS,EAAEW,MAAM,CAACmF,UAAP,EAAjC;AACGzG,IAAAA,UAAU,CAACG,KAAK,CAAC,CAAD,CAAN,eAAW,6BAAC,kCAAD,IAAkB,IAAI,EAAEA,KAAK,CAAC,CAAD,CAA7B,EAAkC,IAAI,EAAEJ,IAAxC,GAAX,CADb,CADkB;;;AAKlB;AACGU,IAAAA,MAAM,CAACiG,UADV;AAEE,0CAAK,SAAS,EAAEvB,0BAAhB,IAA6CC,IAA7C,CAFF,CAXJ,CAVF,CANF;;;;;AAkCE,iCAAC,wCAAD,IAAqB,kBAAkB,EAAE,sCAAMlB,eAAe,CAAC,KAAD,CAArB,EAAzC;AACE;AACMjE,IAAAA,UADN;AAEE,kBAAU9B,oBAAoB,CAACI,KAFjC;AAGE,MAAA,GAAG,EAAEmC,QAHP;AAIE,MAAA,QAAQ,EAAEzB,QAAQ,GAAG,CAAC,CAAJ,GAAQ,CAJ5B;AAKE,MAAA,IAAI,EAAC,MALP;AAME,MAAA,QAAQ,EAAEA,QANZ;AAOE,MAAA,QAAQ,EAAEG,QAPZ;AAQE,MAAA,SAAS,EAAEkC,MAAM,CAACqF,cAAP,EARb;AASE,MAAA,OAAO,EAAE1I,eATX;AAUE,MAAA,QAAQ,EAAEkG,iBAVZ;AAWE,MAAA,OAAO,EAAEE,WAXX;AAYE,MAAA,MAAM,EAAEE;AACR;AAbF,QAcE,KAAK,EAAE,EAdT,IADF,CAlCF,CADF,CAPF,CADF,CADF;;;;;;;;AAmED,CAxRqB,CAAtB;;;;AA4RO,IAAMqC,YAAY,GAAG;AAC1BC,eAAMC,IAAN,CAAWnI,aAAX,CAD0B,CAArB,C;;AAGPiI,YAAY,CAACG,WAAb,GAA2B,cAA3B","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 { useEmotion } 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 { 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';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { useTheme } from '../../lib/theming/useTheme';\n\nimport { UploadIcon as UploadIcon2022 } from './UploadIcon';\nimport { getStyles, globalClasses } 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 = useTheme();\n const emotion = useEmotion();\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 const styles = getStyles(emotion);\n const sizeClassName = useFileUploaderSize(size, {\n small: styles.sizeSmall(theme),\n medium: styles.sizeMedium(theme),\n large: styles.sizeLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: styles.iconSmall(theme),\n medium: styles.iconMedium(theme),\n large: styles.iconLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: styles.contentInnerSmall(theme),\n medium: styles.contentInnerMedium(theme),\n large: styles.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 = emotion.cx(\n styles.uploadButton(theme),\n sizeClassName,\n focusedByTab && styles.uploadButtonFocus(theme),\n disabled && styles.disabled(theme),\n !disabled && hovered && styles.hovered(theme),\n !!warning && styles.warning(theme),\n !!error && styles.error(theme),\n isDraggable && !disabled && styles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = emotion.cx(\n !_isTheme2022 && canDrop && styles.windowDragOver(theme),\n _isTheme2022 && canDrop && styles.windowDragOver2022(theme),\n );\n\n const uploadButtonIconClassNames = emotion.cx(\n styles.icon(theme),\n sizeIconClass,\n disabled && styles.iconDisabled(theme),\n );\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const contentClassNames = emotion.cx(styles.content(), hasOneFileForSingle && styles.contentWithFiles());\n\n const linkClassNames = emotion.cx(\n styles.link(theme),\n !disabled && hovered && styles.linkHovered(theme),\n disabled && styles.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={styles.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={emotion.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={emotion.cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? styles.afterLinkText_HasFiles(theme) : styles.afterLinkText(theme),\n )}\n >\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={styles.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 <FocusControlWrapper onBlurWhenDisabled={() => setFocusedByTab(false)}>\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={styles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n // для того, чтобы срабатывало событие change при выборе одного и того же файла подряд\n value={''}\n />\n </FocusControlWrapper>\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":["stopPropagation","e","FileUploaderDataTids","root","content","link","input","defaultRenderFile","file","fileNode","_FileUploader","props","ref","theme","emotion","_isTheme2022","initialFiles","disabled","error","warning","multiple","width","fileUploaderWidth","hideFiles","onBlur","onFocus","onChange","request","validateBeforeUpload","onRequestSuccess","onRequestError","size","renderFile","inputProps","FileUploaderControlContext","files","setFiles","removeFile","reset","setFileValidationResult","isMinLengthReached","locale","inputRef","fileDivRef","isAsync","isSingleMode","isLinkVisible","setIsLinkVisible","upload","tryValidateAndUpload","forEach","validationMessage","id","FileUploaderFileValidationResult","styles","sizeClassName","small","sizeSmall","medium","sizeMedium","large","sizeLarge","sizeIconClass","iconSmall","iconMedium","iconLarge","contentInnerClass","contentInnerSmall","contentInnerMedium","contentInnerLarge","handleChange","newFiles","length","filesArray","Array","from","attachedFiles","map","getAttachedFile","handleDrop","event","dataTransfer","clearData","onDrop","isDraggable","labelRef","isWindowDraggable","windowRef","globalObject","current","document","focus","keyListener","isTabPressed","blur","getRootNode","rootNodeRef","focusedByTab","setFocusedByTab","handleInputChange","target","handleFocus","requestAnimationFrame","handleBlur","handleRemoveFile","fileId","DataTransfer","filter","f","items","add","originalFile","hovered","setHovered","uploadButtonClassNames","cx","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","globalClasses","afterLinkText","afterLinkText_HasFiles","singleFile","orDragHere","visuallyHidden","FileUploader","React","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 { useEmotion } 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 { 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';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\nimport { useTheme } from '../../lib/theming/useTheme';\n\nimport { UploadIcon as UploadIcon2022 } from './UploadIcon';\nimport { getStyles, globalClasses } 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 initialFiles?: File[];\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 = useTheme();\n const emotion = useEmotion();\n const _isTheme2022 = isTheme2022(theme);\n\n const {\n initialFiles,\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 const styles = getStyles(emotion);\n const sizeClassName = useFileUploaderSize(size, {\n small: styles.sizeSmall(theme),\n medium: styles.sizeMedium(theme),\n large: styles.sizeLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: styles.iconSmall(theme),\n medium: styles.iconMedium(theme),\n large: styles.iconLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: styles.contentInnerSmall(theme),\n medium: styles.contentInnerMedium(theme),\n large: styles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles || !newFiles.length) {\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 handleRemoveFile = useCallback((fileId: string) => {\n const dataTransfer = new DataTransfer();\n files\n .filter((f) => f.id !== fileId)\n .forEach((file) => {\n dataTransfer.items.add(file.originalFile);\n });\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n }, []);\n\n const [hovered, setHovered] = useState(false);\n\n const uploadButtonClassNames = emotion.cx(\n styles.uploadButton(theme),\n sizeClassName,\n focusedByTab && styles.uploadButtonFocus(theme),\n disabled && styles.disabled(theme),\n !disabled && hovered && styles.hovered(theme),\n !!warning && styles.warning(theme),\n !!error && styles.error(theme),\n isDraggable && !disabled && styles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = emotion.cx(\n !_isTheme2022 && canDrop && styles.windowDragOver(theme),\n _isTheme2022 && canDrop && styles.windowDragOver2022(theme),\n );\n\n const uploadButtonIconClassNames = emotion.cx(\n styles.icon(theme),\n sizeIconClass,\n disabled && styles.iconDisabled(theme),\n );\n\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const contentClassNames = emotion.cx(styles.content(), hasOneFileForSingle && styles.contentWithFiles());\n\n const linkClassNames = emotion.cx(\n styles.link(theme),\n !disabled && hovered && styles.linkHovered(theme),\n disabled && styles.linkDisabled(theme),\n );\n\n useEffect(() => {\n setIsLinkVisible(hasOneFileForSingle ? !isMinLengthReached : true);\n }, [isMinLengthReached, hasOneFileForSingle]);\n\n useEffect(() => {\n if (!files || !files.length || !inputRef.current) {\n return;\n }\n\n const dataTransfer = new DataTransfer();\n files.forEach((file) => dataTransfer.items.add(file.originalFile));\n inputRef.current.files = dataTransfer.files;\n }, []);\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={styles.root(theme)}\n style={useMemoObject({ width })}\n ref={rootNodeRef}\n >\n {!hideFiles && !isSingleMode && !!files.length && (\n <FileUploaderFileList renderFile={renderFile} size={size} onRemove={handleRemoveFile} />\n )}\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={emotion.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={emotion.cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? styles.afterLinkText_HasFiles(theme) : styles.afterLinkText(theme),\n )}\n >\n {hasOneFileForSingle ? (\n <div ref={fileDivRef} className={styles.singleFile()}>\n {renderFile(files[0], <FileUploaderFile file={files[0]} size={size} onRemove={handleRemoveFile} />)}\n </div>\n ) : (\n <>\n {locale.orDragHere} \n <div className={uploadButtonIconClassNames}>{icon}</div>\n </>\n )}\n </div>\n </div>\n <FocusControlWrapper onBlurWhenDisabled={() => setFocusedByTab(false)}>\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={styles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </FocusControlWrapper>\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"]}
|
|
@@ -27,6 +27,35 @@ const request = () => Promise.reject();
|
|
|
27
27
|
<FileUploader request={request} multiple />
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
+
Файлы по умолчанию
|
|
31
|
+
```jsx harmony
|
|
32
|
+
import { FileUploader } from '@skbkontur/react-ui';
|
|
33
|
+
|
|
34
|
+
function createFile(filename, content) {
|
|
35
|
+
return new File(['content'], filename, { type: 'text/plain' });
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const initialFiles = [createFile('test1.txt'), createFile('test2.txt')];
|
|
39
|
+
<FileUploader multiple initialFiles={initialFiles} />
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Файлы по умолчанию с кастомизацией рендеринга
|
|
43
|
+
```jsx harmony
|
|
44
|
+
import { cloneElement } from 'react';
|
|
45
|
+
import { FileUploader } from '@skbkontur/react-ui';
|
|
46
|
+
|
|
47
|
+
function createFile(filename, content) {
|
|
48
|
+
return new File(['content'], filename, { type: 'text/plain' });
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const initialFiles = [createFile('test1.txt'), createFile('test2.txt')];
|
|
52
|
+
<FileUploader
|
|
53
|
+
multiple
|
|
54
|
+
initialFiles={initialFiles}
|
|
55
|
+
renderFile={(file, fileNode) => cloneElement(fileNode, { showSize: false })}
|
|
56
|
+
/>
|
|
57
|
+
```
|
|
58
|
+
|
|
30
59
|
Использование `accept`
|
|
31
60
|
```jsx harmony
|
|
32
61
|
import { FileUploader } from '@skbkontur/react-ui';
|
|
@@ -179,4 +179,4 @@ FxInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/funct
|
|
|
179
179
|
if (_this.props.refInput) {
|
|
180
180
|
_this.props.refInput(_this.input);
|
|
181
181
|
}
|
|
182
|
-
};return _this;}var _proto = FxInput.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.
|
|
182
|
+
};return _this;}var _proto = FxInput.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});};return FxInput;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'FxInput', _class2.displayName = 'FxInput', _class2.propTypes = { auto: _propTypes.default.bool, type: _propTypes.default.string }, _class2.defaultProps = { width: 250, type: 'text', value: '' }, _temp)) || _class;exports.FxInput = FxInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["FxInput.tsx"],"names":["FxInputDataTids","root","FxInput","rootNode","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","Input","leftIcon","disabled","borderless","buttonAriaLabel","onValueChange","focus","blur","element","render","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","bool","string"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["FxInput.tsx"],"names":["FxInputDataTids","root","FxInput","rootNode","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","Input","leftIcon","disabled","borderless","buttonAriaLabel","onValueChange","focus","blur","element","render","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName","propTypes","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 { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { Theme } from '../../lib/theming/Theme';\nimport { SizeProp } from '../../lib/types/props';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\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"]}
|
|
@@ -105,7 +105,7 @@ Group = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/functio
|
|
|
105
105
|
function (emotion) {
|
|
106
106
|
_this.emotion = emotion;
|
|
107
107
|
return /*#__PURE__*/(
|
|
108
|
-
_react.default.createElement(_ThemeContext.
|
|
108
|
+
_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null,
|
|
109
109
|
function (theme) {
|
|
110
110
|
_this.theme = theme;
|
|
111
111
|
return _this.renderMain();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Group.tsx"],"names":["getFirstChild","children","Array","isArray","getLastChild","numberOfChildren","React","Children","count","getButtonCorners","isFirstChild","isLastChild","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderRadius","passCornersIfButton","child","firstChild","lastChild","isInputLikeToo","corners","cloneElement","props","GroupDataTids","root","Group","rootNode","render","emotion","theme","renderMain","style","width","childrenArray","toArray","styles","setRootNode","map","isValidElement","isWidthInPercent","Boolean","toString","includes","modifiedChild","cx","fixed","stretch","stretchFallback","isIE11","isEdge","item","itemFirst","Component","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","oneOfType","number","string"],"mappings":"8XAAA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,uC;;;;;;;;;;;AAWA,IAAMA,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,GAAGC,eAAMC,QAAN,CAAeC,KAAf,CAAqBP,QAArB,CAAzB;;AAEA,SAAOA,QAAP,oBAAOA,QAAQ,CAAGI,gBAAgB,GAAG,CAAtB,CAAf;AACD,CARD;;AAUO,IAAMI,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,C;;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,MAAI,sBAASF,KAAT,CAAJ,EAAqB;AACnB,wBAAOZ,eAAMiB,YAAN,CAAmBL,KAAnB,EAA0B,EAAEI,OAAO,6BAAOA,OAAP,EAAmBJ,KAAK,CAACM,KAAN,CAAYF,OAA/B,CAAT,EAA1B,CAAP;AACD;AACD,MAAID,cAAc,IAAI,wBAAYH,KAAZ,CAAtB,EAA0C;AACxC,wBAAOZ,eAAMiB,YAAN,CAAmBL,KAAnB,EAA0B,EAAEI,OAAO,6BAAOA,OAAP,EAAmBJ,KAAK,CAACM,KAAN,CAAYF,OAA/B,CAAT,EAA1B,CAAP;AACD;;AAED,SAAOJ,KAAP;AACD,CAfD;;AAiBO,IAAMO,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE,aADqB,EAAtB,C;;;;AAKMC,K,OADZC,kB;;;;;;;;;;;;AAaQC,EAAAA,M,GAAP,kBAAgB;AACd;AACE,mCAAC,wBAAD;AACG,gBAACC,OAAD,EAAa;AACZ,QAAA,KAAI,CAACA,OAAL,GAAeA,OAAf;AACA;AACE,uCAAC,
|
|
1
|
+
{"version":3,"sources":["Group.tsx"],"names":["getFirstChild","children","Array","isArray","getLastChild","numberOfChildren","React","Children","count","getButtonCorners","isFirstChild","isLastChild","borderTopRightRadius","borderBottomRightRadius","borderTopLeftRadius","borderBottomLeftRadius","borderRadius","passCornersIfButton","child","firstChild","lastChild","isInputLikeToo","corners","cloneElement","props","GroupDataTids","root","Group","rootNode","render","emotion","theme","renderMain","style","width","childrenArray","toArray","styles","setRootNode","map","isValidElement","isWidthInPercent","Boolean","toString","includes","modifiedChild","cx","fixed","stretch","stretchFallback","isIE11","isEdge","item","itemFirst","Component","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","oneOfType","number","string"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport type { Emotion } from '@emotion/css/create-instance';\n\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { isButton } from '../Button';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { EmotionConsumer } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isInputLike } from '../../lib/utils';\nimport { Theme } from '../../lib/theming/Theme';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { getStyles } 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 private emotion!: Emotion;\n\n public static propTypes = {\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n };\n\n public render() {\n return (\n <EmotionConsumer>\n {(emotion) => {\n this.emotion = emotion;\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </EmotionConsumer>\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 const styles = getStyles(this.emotion);\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={this.emotion.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={this.emotion.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"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { PopupPositionsType } from '../../internal/Popup';
|
|
2
|
+
import { PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup';
|
|
3
3
|
import { Nullable } from '../../typings/utility-types';
|
|
4
4
|
import { MouseEventType } from '../../typings/event-types';
|
|
5
5
|
import { CommonProps } from '../../internal/CommonWrapper';
|
|
@@ -35,7 +35,7 @@ export interface HintProps extends CommonProps {
|
|
|
35
35
|
*
|
|
36
36
|
* **Допустимые значения**: `"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"`.
|
|
37
37
|
*/
|
|
38
|
-
pos?:
|
|
38
|
+
pos?: ShortPopupPositionsType | PopupPositionsType;
|
|
39
39
|
/**
|
|
40
40
|
* Текст подсказки.
|
|
41
41
|
*/
|
|
@@ -61,7 +61,7 @@ export interface HintState {
|
|
|
61
61
|
opened: boolean;
|
|
62
62
|
position: PopupPositionsType;
|
|
63
63
|
}
|
|
64
|
-
declare type DefaultProps = Required<Pick<HintProps, '
|
|
64
|
+
declare type DefaultProps = Required<Pick<HintProps, 'manual' | 'opened' | 'maxWidth' | 'disableAnimations' | 'useWrapper'>>;
|
|
65
65
|
/**
|
|
66
66
|
* Всплывающая подсказка, которая по умолчанию отображается при наведении на элемент. <br/> Можно задать другие условия отображения.
|
|
67
67
|
*/
|
|
@@ -78,6 +78,7 @@ export declare class Hint extends React.PureComponent<HintProps, HintState> impl
|
|
|
78
78
|
private setRootNode;
|
|
79
79
|
private positions;
|
|
80
80
|
private popupRef;
|
|
81
|
+
getAllowedPositions(): ("top center" | "top left" | "top right" | "bottom center" | "bottom left" | "bottom right" | "left middle" | "left top" | "left bottom" | "right middle" | "right top" | "right bottom")[];
|
|
81
82
|
componentDidUpdate(prevProps: HintProps): void;
|
|
82
83
|
componentWillUnmount(): void;
|
|
83
84
|
render(): JSX.Element;
|
|
@@ -85,7 +85,7 @@ var HINT_BORDER_COLOR = 'transparent';
|
|
|
85
85
|
|
|
86
86
|
|
|
87
87
|
|
|
88
|
-
var
|
|
88
|
+
var OldPositions = [
|
|
89
89
|
'top center',
|
|
90
90
|
'top left',
|
|
91
91
|
'top right',
|
|
@@ -102,8 +102,6 @@ var Positions = [
|
|
|
102
102
|
|
|
103
103
|
|
|
104
104
|
|
|
105
|
-
|
|
106
|
-
|
|
107
105
|
/**
|
|
108
106
|
* Всплывающая подсказка, которая по умолчанию отображается при наведении на элемент. <br/> Можно задать другие условия отображения.
|
|
109
107
|
*/var
|
|
@@ -120,8 +118,6 @@ Hint = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
|
|
|
120
118
|
|
|
121
119
|
|
|
122
120
|
|
|
123
|
-
|
|
124
|
-
|
|
125
121
|
getProps = (0, _createPropsGetter.createPropsGetter)(Hint.defaultProps);_this.
|
|
126
122
|
|
|
127
123
|
state = {
|
|
@@ -238,6 +234,7 @@ Hint = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
|
|
|
238
234
|
|
|
239
235
|
|
|
240
236
|
|
|
237
|
+
|
|
241
238
|
|
|
242
239
|
|
|
243
240
|
getAnchorElement = function () {var _this$popupRef$curren;
|
|
@@ -264,9 +261,13 @@ Hint = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
|
|
|
264
261
|
|
|
265
262
|
|
|
266
263
|
getPositions = function () {
|
|
264
|
+
if (_this.featureFlags.popupUnifyPositioning) {
|
|
265
|
+
return _this.props.allowedPositions;
|
|
266
|
+
}
|
|
267
|
+
var pos = _this.props.pos ? _this.props.pos : 'top';
|
|
268
|
+
var allowedPositions = _this.getAllowedPositions();
|
|
267
269
|
if (_this.featureFlags.hintAddDynamicPositioning) {
|
|
268
270
|
if (!_this.positions) {
|
|
269
|
-
var _this$getProps = _this.getProps(),allowedPositions = _this$getProps.allowedPositions,pos = _this$getProps.pos;
|
|
270
271
|
var priorityPosition;
|
|
271
272
|
switch (pos) {
|
|
272
273
|
case 'top':
|
|
@@ -292,7 +293,7 @@ Hint = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
|
|
|
292
293
|
}
|
|
293
294
|
return _this.positions;
|
|
294
295
|
}
|
|
295
|
-
return
|
|
296
|
+
return OldPositions.filter(function (x) {return x.startsWith(pos);});
|
|
296
297
|
};_this.
|
|
297
298
|
|
|
298
299
|
handleMouseEnter = function (e) {
|
|
@@ -319,4 +320,4 @@ Hint = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*/function
|
|
|
319
320
|
|
|
320
321
|
open = function () {
|
|
321
322
|
_this.setState({ opened: true });
|
|
322
|
-
};return _this;}var _proto = Hint.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$
|
|
323
|
+
};return _this;}var _proto = Hint.prototype;_proto.getAllowedPositions = function getAllowedPositions() {return this.props.allowedPositions ? this.props.allowedPositions : OldPositions;};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$getProps = this.getProps(),opened = _this$getProps.opened,manual = _this$getProps.manual;if (!manual) {return;}if (this.timer) {_globalObject.globalObject.clearTimeout(this.timer);this.timer = null;}if (opened !== prevProps.opened) {this.setState({ opened: !!opened });}if (this.featureFlags.hintAddDynamicPositioning && !this.featureFlags.popupUnifyPositioning) {var pos = this.props.pos ? this.props.pos : 'top';var allowedPositions = this.props.allowedPositions ? this.props.allowedPositions : OldPositions;var posChanged = prevProps.pos !== pos;var allowedChanged = !(0, _lodash.default)(prevProps.allowedPositions, allowedPositions);if (posChanged || allowedChanged) {this.positions = null;}}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.timer) {_globalObject.globalObject.clearTimeout(this.timer);this.timer = null;}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_featureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_Emotion.EmotionConsumer, null, function (emotion) {_this2.emotion = emotion;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ popupPinOffset: theme.hintPinOffset, popupMargin: theme.hintMargin, popupBorder: theme.hintBorder, popupBorderRadius: theme.hintBorderRadius }, _this2.theme) }, _this2.renderMain());});});});};_proto.renderMain = function renderMain() {var _this3 = this;var _this$getProps2 = this.getProps(),disableAnimations = _this$getProps2.disableAnimations,useWrapper = _this$getProps2.useWrapper;var hasPin = !this.featureFlags.kebabHintRemovePin || !(0, _ThemeHelpers.isTheme2022)(this.theme);return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_Popup.Popup, { hasPin: hasPin, opened: this.state.opened, anchorElement: this.props.children, positions: this.getPositions(), pos: this.props.pos, backgroundColor: this.theme.hintBgColor, borderColor: HINT_BORDER_COLOR, onPositionChange: function onPositionChange(position) {return _this3.setState({ position: position });}, disableAnimations: disableAnimations, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, useWrapper: useWrapper, ref: this.popupRef, withoutMobile: true }, this.renderContent()));};_proto.renderContent = function renderContent() {var _this$emotion$cx;if (!this.props.text) {return null;}var _this$getProps3 = this.getProps(),maxWidth = _this$getProps3.maxWidth;var centerAlignPositions = ['top', 'top center', 'bottom', 'bottom center'];var styles = (0, _Hint.getStyles)(this.emotion);var className = this.emotion.cx((_this$emotion$cx = {}, _this$emotion$cx[styles.content(this.theme)] = true, _this$emotion$cx[styles.contentCenter(this.theme)] = centerAlignPositions.includes(this.state.position), _this$emotion$cx));return /*#__PURE__*/_react.default.createElement("div", { className: className, style: { maxWidth: maxWidth } }, this.props.text);};return Hint;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'Hint', _class2.displayName = 'Hint', _class2.defaultProps = { manual: false, opened: false, maxWidth: 200, disableAnimations: _currentEnvironment.isTestEnv, useWrapper: false }, _temp)) || _class;exports.Hint = Hint;
|