@skbkontur/react-ui 6.0.2 → 6.0.4-46247.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/README.md +6 -8
- package/components/Autocomplete/Autocomplete.d.ts +2 -2
- package/components/Autocomplete/Autocomplete.js +16 -16
- package/components/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/getAutocompleteTheme.js.map +1 -1
- package/components/Autocomplete/locale/index.js.map +1 -1
- package/components/Button/Button.d.ts +3 -3
- package/components/Button/Button.js +9 -9
- package/components/Button/Button.js.map +1 -1
- package/components/Button/Button.styles.js +2 -2
- package/components/Button/Button.styles.js.map +1 -1
- package/components/Button/ButtonArrow.d.ts +1 -1
- package/components/Button/ButtonArrow.js +2 -2
- package/components/Button/ButtonArrow.js.map +1 -1
- package/components/Button/ButtonIcon.js +1 -1
- package/components/Button/ButtonIcon.js.map +1 -1
- package/components/Button/LoadingButtonIcon.js +1 -1
- package/components/Button/LoadingButtonIcon.js.map +1 -1
- package/components/Button/getInnerLinkTheme.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +2 -2
- package/components/Calendar/Calendar.js +13 -13
- package/components/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/CalendarContext.d.ts +1 -1
- package/components/Calendar/CalendarContext.js.map +1 -1
- package/components/Calendar/CalendarDay.d.ts +1 -2
- package/components/Calendar/CalendarDay.js +7 -7
- package/components/Calendar/CalendarDay.js.map +1 -1
- package/components/Calendar/CalendarUtils.d.ts +2 -2
- package/components/Calendar/CalendarUtils.js +1 -1
- package/components/Calendar/CalendarUtils.js.map +1 -1
- package/components/Calendar/DayCellView.js +2 -2
- package/components/Calendar/DayCellView.js.map +1 -1
- package/components/Calendar/DayCellView.styles.js +1 -1
- package/components/Calendar/DayCellView.styles.js.map +1 -1
- package/components/Calendar/Month.js +4 -4
- package/components/Calendar/Month.js.map +1 -1
- package/components/Calendar/MonthView.js +5 -5
- package/components/Calendar/MonthView.js.map +1 -1
- package/components/Calendar/MonthViewModel.js.map +1 -1
- package/components/Calendar/config.js.map +1 -1
- package/components/Center/Center.d.ts +1 -1
- package/components/Center/Center.js +1 -1
- package/components/Center/Center.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +1 -1
- package/components/Checkbox/Checkbox.js +5 -5
- package/components/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/components/Checkbox/CheckedIcon.js +1 -1
- package/components/Checkbox/CheckedIcon.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +3 -3
- package/components/ComboBox/ComboBox.js +1 -1
- package/components/ComboBox/ComboBox.js.map +1 -1
- package/components/CurrencyInput/CurrencyHelper.js +1 -1
- package/components/CurrencyInput/CurrencyHelper.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +2 -2
- package/components/CurrencyInput/CurrencyInput.js +6 -6
- package/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.js +2 -2
- package/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/DateInput/DateFragmentsView.d.ts +1 -1
- package/components/DateInput/DateFragmentsView.js +1 -1
- package/components/DateInput/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +1 -1
- package/components/DateInput/DateInput.js +8 -8
- package/components/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +2 -2
- package/components/DatePicker/DatePicker.js +16 -16
- package/components/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.styles.js.map +1 -1
- package/components/DatePicker/MobilePicker.js +6 -6
- package/components/DatePicker/MobilePicker.js.map +1 -1
- package/components/DatePicker/getMobilePickerTheme.js.map +1 -1
- package/components/DatePicker/locale/index.js.map +1 -1
- package/components/DatePicker/locale/locales/en.js +1 -1
- package/components/DatePicker/locale/locales/en.js.map +1 -1
- package/components/DatePicker/locale/locales/ru.js +1 -1
- package/components/DatePicker/locale/locales/ru.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +19 -19
- package/components/DateRangePicker/DateRangePicker.js +17 -17
- package/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.styles.d.ts +1 -1
- package/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
- package/components/DateRangePicker/DateRangePickerContext.d.ts +1 -1
- package/components/DateRangePicker/DateRangePickerContext.js.map +1 -1
- package/components/DateRangePicker/DateRangePickerInput.d.ts +1 -1
- package/components/DateRangePicker/DateRangePickerInput.js +3 -3
- package/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/components/DateRangePicker/DateRangePickerTheme.js.map +1 -1
- package/components/DateRangePicker/helpers/getStateForValue.js +2 -2
- package/components/DateRangePicker/helpers/getStateForValue.js.map +1 -1
- package/components/DateRangePicker/helpers/validateDateRangePicker.js +3 -3
- package/components/DateRangePicker/helpers/validateDateRangePicker.js.map +1 -1
- package/components/DateRangePicker/locale/index.js.map +1 -1
- package/components/DateRangePicker/locale/locales/en.js.map +1 -1
- package/components/DateRangePicker/locale/locales/ru.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -2
- package/components/Dropdown/Dropdown.js +3 -3
- package/components/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/getDropdownTheme.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +2 -2
- package/components/DropdownMenu/DropdownMenu.js +3 -3
- package/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +5 -5
- package/components/FileUploader/FileUploader.js +22 -20
- package/components/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.styles.js.map +1 -1
- package/components/FileUploader/FileUploaderControlContext.d.ts +1 -1
- package/components/FileUploader/FileUploaderControlContext.js.map +1 -1
- package/components/FileUploader/FileUploaderControlProvider.d.ts +1 -1
- package/components/FileUploader/FileUploaderControlProvider.js +3 -3
- package/components/FileUploader/FileUploaderControlProvider.js.map +1 -1
- package/components/FileUploader/FileUploaderFile.js +11 -11
- package/components/FileUploader/FileUploaderFile.js.map +1 -1
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.d.ts +1 -1
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js +5 -5
- package/components/FileUploader/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/components/FileUploader/FileUploaderFileStatusIcon.js +3 -3
- package/components/FileUploader/FileUploaderFileStatusIcon.js.map +1 -1
- package/components/FileUploader/FileUploaderFileTypeIcon.js +4 -4
- package/components/FileUploader/FileUploaderFileTypeIcon.js.map +1 -1
- package/components/FileUploader/fileUtils.js.map +1 -1
- package/components/FileUploader/hooks/useUpload.js +1 -1
- package/components/FileUploader/hooks/useUpload.js.map +1 -1
- package/components/FileUploader/icons/UploadIcon.js +1 -1
- package/components/FileUploader/icons/UploadIcon.js.map +1 -1
- package/components/FileUploader/icons/row/ArchiveIcon.js +1 -1
- package/components/FileUploader/icons/row/ArchiveIcon.js.map +1 -1
- package/components/FileUploader/icons/row/DocTextIcon.js +1 -1
- package/components/FileUploader/icons/row/DocTextIcon.js.map +1 -1
- package/components/FileUploader/icons/row/FolderIcon.js +1 -1
- package/components/FileUploader/icons/row/FolderIcon.js.map +1 -1
- package/components/FileUploader/icons/row/MarkupIcon.js +1 -1
- package/components/FileUploader/icons/row/MarkupIcon.js.map +1 -1
- package/components/FileUploader/icons/row/PdfIcon.js +1 -1
- package/components/FileUploader/icons/row/PdfIcon.js.map +1 -1
- package/components/FileUploader/icons/row/PictureIcon.js +1 -1
- package/components/FileUploader/icons/row/PictureIcon.js.map +1 -1
- package/components/FileUploader/icons/row/PresentationIcon.js +1 -1
- package/components/FileUploader/icons/row/PresentationIcon.js.map +1 -1
- package/components/FileUploader/icons/row/TableIcon.js +1 -1
- package/components/FileUploader/icons/row/TableIcon.js.map +1 -1
- package/components/FileUploader/icons/row/TextIcon.js +1 -1
- package/components/FileUploader/icons/row/TextIcon.js.map +1 -1
- package/components/FileUploader/icons/tile/ArchiveIcon.js +1 -1
- package/components/FileUploader/icons/tile/ArchiveIcon.js.map +1 -1
- package/components/FileUploader/icons/tile/DocTextIcon.js +1 -1
- package/components/FileUploader/icons/tile/DocTextIcon.js.map +1 -1
- package/components/FileUploader/icons/tile/FolderIcon.js +1 -1
- package/components/FileUploader/icons/tile/FolderIcon.js.map +1 -1
- package/components/FileUploader/icons/tile/MarkupIcon.js +1 -1
- package/components/FileUploader/icons/tile/MarkupIcon.js.map +1 -1
- package/components/FileUploader/icons/tile/PdfIcon.js +1 -1
- package/components/FileUploader/icons/tile/PdfIcon.js.map +1 -1
- package/components/FileUploader/icons/tile/PictureIcon.js +1 -1
- package/components/FileUploader/icons/tile/PictureIcon.js.map +1 -1
- package/components/FileUploader/icons/tile/PresentationIcon.js +1 -1
- package/components/FileUploader/icons/tile/PresentationIcon.js.map +1 -1
- package/components/FileUploader/icons/tile/TableIcon.js +1 -1
- package/components/FileUploader/icons/tile/TableIcon.js.map +1 -1
- package/components/FileUploader/icons/tile/TextIcon.js +1 -1
- package/components/FileUploader/icons/tile/TextIcon.js.map +1 -1
- package/components/FileUploader/locale/index.js.map +1 -1
- package/components/FileUploader/withFileUploaderControlProvider.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +6 -6
- package/components/FxInput/FxInput.js +6 -6
- package/components/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInputRestoreBtn.d.ts +1 -1
- package/components/FxInput/FxInputRestoreBtn.js +1 -1
- package/components/FxInput/FxInputRestoreBtn.js.map +1 -1
- package/components/FxInput/UndoIcon.js +2 -2
- package/components/FxInput/UndoIcon.js.map +1 -1
- package/components/Gapped/Gapped.js +2 -2
- package/components/Gapped/Gapped.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.js +3 -3
- package/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.js +2 -2
- package/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/useParams.js.map +1 -1
- package/components/Group/Group.js +2 -2
- package/components/Group/Group.js.map +1 -1
- package/components/Hint/Hint.d.ts +4 -4
- package/components/Hint/Hint.js +5 -5
- package/components/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.styles.js.map +1 -1
- package/components/Input/Input.d.ts +1 -1
- package/components/Input/Input.js +7 -8
- package/components/Input/Input.js.map +1 -1
- package/components/Input/Input.styles.js +1 -1
- package/components/Input/Input.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.d.ts +1 -1
- package/components/Input/InputLayout/InputLayout.js +4 -4
- package/components/Input/InputLayout/InputLayout.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon.js +2 -2
- package/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideText.js +1 -1
- package/components/Input/InputLayout/InputLayoutAsideText.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +3 -3
- package/components/Kebab/Kebab.js +11 -11
- package/components/Kebab/Kebab.js.map +1 -1
- package/components/Link/Link.d.ts +3 -3
- package/components/Link/Link.js +6 -6
- package/components/Link/Link.js.map +1 -1
- package/components/Link/Link.styles.js +1 -1
- package/components/Link/Link.styles.js.map +1 -1
- package/components/Link/LinkIcon.js.map +1 -1
- package/components/Loader/Loader.d.ts +2 -2
- package/components/Loader/Loader.js +10 -10
- package/components/Loader/Loader.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +4 -4
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.styles.js.map +1 -1
- package/components/MaskedInput/FixedIMaskInput.js +2 -2
- package/components/MaskedInput/FixedIMaskInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.js +5 -5
- package/components/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.styles.js +1 -1
- package/components/MaskedInput/MaskedInput.styles.js.map +1 -1
- package/components/MenuFooter/MenuFooter.js +2 -2
- package/components/MenuFooter/MenuFooter.js.map +1 -1
- package/components/MenuFooter/MenuFooter.styles.js.map +1 -1
- package/components/MenuHeader/MenuHeader.js +2 -2
- package/components/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuHeader/MenuHeader.styles.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -1
- package/components/MenuItem/MenuItem.js +6 -6
- package/components/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.styles.js +1 -1
- package/components/MenuItem/MenuItem.styles.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator.js +2 -2
- package/components/MenuSeparator/MenuSeparator.js.map +1 -1
- package/components/MiniModal/MiniModal.d.ts +2 -2
- package/components/MiniModal/MiniModal.js +3 -3
- package/components/MiniModal/MiniModal.js.map +1 -1
- package/components/MiniModal/MiniModalBody.js +2 -2
- package/components/MiniModal/MiniModalBody.js.map +1 -1
- package/components/MiniModal/MiniModalFooter.js +3 -3
- package/components/MiniModal/MiniModalFooter.js.map +1 -1
- package/components/MiniModal/MiniModalHeader.js +4 -4
- package/components/MiniModal/MiniModalHeader.js.map +1 -1
- package/components/MiniModal/MiniModalIndent.js +2 -2
- package/components/MiniModal/MiniModalIndent.js.map +1 -1
- package/components/MiniModal/getMiniModalTheme.js.map +1 -1
- package/components/Modal/Modal.d.ts +2 -2
- package/components/Modal/Modal.js +15 -15
- package/components/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.styles.js +1 -1
- package/components/Modal/Modal.styles.js.map +1 -1
- package/components/Modal/ModalBody.js +7 -7
- package/components/Modal/ModalBody.js.map +1 -1
- package/components/Modal/ModalClose.js +6 -6
- package/components/Modal/ModalClose.js.map +1 -1
- package/components/Modal/ModalFooter.d.ts +1 -1
- package/components/Modal/ModalFooter.js +5 -5
- package/components/Modal/ModalFooter.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +1 -1
- package/components/Modal/ModalHeader.js +2 -2
- package/components/Modal/ModalHeader.js.map +1 -1
- package/components/Modal/ModalSeparator.js.map +1 -1
- package/components/Modal/getModalBodyTheme.js.map +1 -1
- package/components/Modal/getModalTheme.js.map +1 -1
- package/components/Modal/locale/index.js.map +1 -1
- package/components/Paging/DotsIcon.js +1 -1
- package/components/Paging/DotsIcon.js.map +1 -1
- package/components/Paging/Paging.d.ts +1 -1
- package/components/Paging/Paging.js +13 -13
- package/components/Paging/Paging.js.map +1 -1
- package/components/Paging/PagingDefaultComponent.js.map +1 -1
- package/components/Paging/locale/index.js.map +1 -1
- package/components/PasswordInput/ClosedIcon.js +1 -1
- package/components/PasswordInput/ClosedIcon.js.map +1 -1
- package/components/PasswordInput/OpenedIcon.js +1 -1
- package/components/PasswordInput/OpenedIcon.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +1 -1
- package/components/PasswordInput/PasswordInput.js +8 -8
- package/components/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.styles.js.map +1 -1
- package/components/PasswordInput/PasswordInputIcon.js.map +1 -1
- package/components/PasswordInput/locale/index.js.map +1 -1
- package/components/Radio/Radio.d.ts +2 -2
- package/components/Radio/Radio.js +6 -6
- package/components/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.mixins.js +1 -1
- package/components/Radio/Radio.mixins.js.map +1 -1
- package/components/Radio/Radio.styles.js.map +1 -1
- package/components/RadioGroup/RadioGroup.js +7 -7
- package/components/RadioGroup/RadioGroup.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayout.js +2 -2
- package/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/useResponsiveLayout.js.map +1 -1
- package/components/ScrollContainer/ScrollBar.js +2 -2
- package/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -1
- package/components/ScrollContainer/ScrollContainer.helpers.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.js +8 -8
- package/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/Select/Select.d.ts +4 -4
- package/components/Select/Select.js +17 -17
- package/components/Select/Select.js.map +1 -1
- package/components/Select/locale/index.js.map +1 -1
- package/components/Select/selectTheme.js.map +1 -1
- package/components/SidePage/SidePage.js +11 -11
- package/components/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.styles.js +1 -1
- package/components/SidePage/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePageBody.js +2 -2
- package/components/SidePage/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageCloseButton.js +5 -5
- package/components/SidePage/SidePageCloseButton.js.map +1 -1
- package/components/SidePage/SidePageContainer.js +3 -3
- package/components/SidePage/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageFooter.js +6 -6
- package/components/SidePage/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageHeader.js +7 -7
- package/components/SidePage/SidePageHeader.js.map +1 -1
- package/components/SidePage/locale/index.js.map +1 -1
- package/components/SingleToast/SingleToast.js +1 -1
- package/components/SingleToast/SingleToast.js.map +1 -1
- package/components/Spinner/Spinner.js +3 -3
- package/components/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.styles.js +1 -1
- package/components/Spinner/Spinner.styles.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +1 -1
- package/components/Sticky/Sticky.js +5 -5
- package/components/Sticky/Sticky.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +2 -2
- package/components/Switcher/Switcher.js +6 -6
- package/components/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/switcherTheme.js.map +1 -1
- package/components/Tabs/Indicator.js +5 -5
- package/components/Tabs/Indicator.js.map +1 -1
- package/components/Tabs/Tab.d.ts +1 -1
- package/components/Tabs/Tab.js +8 -8
- package/components/Tabs/Tab.js.map +1 -1
- package/components/Tabs/Tab.styles.js +1 -1
- package/components/Tabs/Tab.styles.js.map +1 -1
- package/components/Tabs/Tabs.js +4 -4
- package/components/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.styles.js.map +1 -1
- package/components/Tabs/TabsContext.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +1 -1
- package/components/Textarea/Textarea.js +9 -9
- package/components/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.styles.js.map +1 -1
- package/components/Textarea/TextareaCounter.js +3 -3
- package/components/Textarea/TextareaCounter.js.map +1 -1
- package/components/Toast/Toast.d.ts +2 -2
- package/components/Toast/Toast.js +4 -4
- package/components/Toast/Toast.js.map +1 -1
- package/components/Toast/ToastView.d.ts +1 -1
- package/components/Toast/ToastView.js +7 -7
- package/components/Toast/ToastView.js.map +1 -1
- package/components/Toast/locale/index.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +1 -1
- package/components/Toggle/Toggle.js +5 -5
- package/components/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.mixins.js.map +1 -1
- package/components/Toggle/Toggle.styles.js.map +1 -1
- package/components/Token/Token.js +7 -7
- package/components/Token/Token.js.map +1 -1
- package/components/Token/Token.styles.js.map +1 -1
- package/components/Token/TokenView.d.ts +1 -1
- package/components/Token/TokenView.js +2 -2
- package/components/Token/TokenView.js.map +1 -1
- package/components/Token/locale/index.js.map +1 -1
- package/components/TokenInput/TextWidthHelper.js +2 -2
- package/components/TokenInput/TextWidthHelper.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +2 -2
- package/components/TokenInput/TokenInput.js +13 -13
- package/components/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.styles.js +2 -2
- package/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/components/TokenInput/TokenInputMenu.d.ts +2 -2
- package/components/TokenInput/TokenInputMenu.js +2 -2
- package/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/TokenInputReducer.js.map +1 -1
- package/components/TokenInput/locale/index.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +3 -3
- package/components/Tooltip/Tooltip.js +12 -13
- package/components/Tooltip/Tooltip.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +4 -4
- package/components/TooltipMenu/TooltipMenu.js +4 -4
- package/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/hooks/useDrop.js.map +1 -1
- package/hooks/useEffectWithoutInitCall.js.map +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.d.ts +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.js +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.js.map +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.styles.js +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.styles.js.map +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.js +2 -2
- package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.styles.js +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.js +2 -2
- package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/utils/extractCommonProps.d.ts +1 -1
- package/internal/CommonWrapper/utils/extractCommonProps.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +3 -3
- package/internal/CustomComboBox/ComboBoxMenu.js +7 -7
- package/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +6 -6
- package/internal/CustomComboBox/ComboBoxView.js +15 -15
- package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +6 -6
- package/internal/CustomComboBox/CustomComboBox.js +6 -6
- package/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer.js +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
- package/internal/CustomComboBox/locale/index.js.map +1 -1
- package/internal/DateSelect/DateSelect.js +7 -7
- package/internal/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/locale/index.js.map +1 -1
- package/internal/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
- package/internal/FocusControlWrapper/useFocusControl.js.map +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +1 -0
- package/internal/FocusTrap/FocusTrap.js +7 -7
- package/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +2 -2
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +2 -2
- package/internal/InputLikeText/InputLikeText.js +14 -14
- package/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +6 -6
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/internal/MaskCharLowLine/MaskCharLowLine.js.map +1 -1
- package/internal/Menu/Menu.js +10 -10
- package/internal/Menu/Menu.js.map +1 -1
- package/internal/Menu/MenuContext.js.map +1 -1
- package/internal/Menu/MenuNavigation.d.ts +1 -1
- package/internal/Menu/MenuNavigation.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.d.ts +1 -1
- package/internal/MenuMessage/MenuMessage.js +2 -2
- package/internal/MenuMessage/MenuMessage.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.styles.js +1 -1
- package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.js +5 -5
- package/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +2 -2
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/NativeDateInput/NativeDateInput.js +1 -1
- package/internal/NativeDateInput/NativeDateInput.js.map +1 -1
- package/internal/NativeDateInput/utils.d.ts +1 -1
- package/internal/NativeDateInput/utils.js.map +1 -1
- package/internal/Popup/Popup.d.ts +5 -3
- package/internal/Popup/Popup.js +69 -40
- package/internal/Popup/Popup.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +5 -3
- package/internal/Popup/PopupHelper.js +14 -8
- package/internal/Popup/PopupHelper.js.map +1 -1
- package/internal/Popup/PopupPin.js +1 -1
- package/internal/Popup/PopupPin.js.map +1 -1
- package/internal/Popup/types.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +2 -2
- package/internal/PopupMenu/PopupMenu.js +8 -8
- package/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/validatePositions.js.map +1 -1
- package/internal/RenderContainer/RenderContainer.d.ts +9 -1
- package/internal/RenderContainer/RenderContainer.js +85 -6
- package/internal/RenderContainer/RenderContainer.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +2 -1
- package/internal/RenderLayer/RenderLayer.js +7 -9
- package/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/ResizeDetector/ResizeDetector.js.map +1 -1
- package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
- package/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/internal/ZIndex/ZIndex.js +6 -6
- package/internal/ZIndex/ZIndex.js.map +1 -1
- package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon16Light.js.map +1 -1
- package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon20Light.js.map +1 -1
- package/internal/icons2022/ArrowALeftIcon/ArrowALeftIcon24Regular.js.map +1 -1
- package/internal/icons2022/ArrowARightIcon/ArrowARightIcon16Light.js.map +1 -1
- package/internal/icons2022/ArrowARightIcon/ArrowARightIcon20Light.js.map +1 -1
- package/internal/icons2022/ArrowARightIcon/ArrowARightIcon24Regular.js.map +1 -1
- package/internal/icons2022/ArrowAUpIcon/ArrowAUp16Light.js.map +1 -1
- package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon16Regular.js.map +1 -1
- package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon20Regular.js.map +1 -1
- package/internal/icons2022/ArrowCDownIcon/ArrowCDownIcon24Regular.js.map +1 -1
- package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon16Light.js.map +1 -1
- package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon20Light.js.map +1 -1
- package/internal/icons2022/ArrowCRightIcon/ArrowCRightIcon24Regular.js.map +1 -1
- package/internal/icons2022/ArrowCollapseCVOpenIcon/ArrowCollapseCVOpenIcon16Regular.js.map +1 -1
- package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon16Light.js.map +1 -1
- package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon20Light.js.map +1 -1
- package/internal/icons2022/ArrowShapeDRadiusUpLeftIcon/ArrowShapeDRadiusUpLeftIcon24Regular.js.map +1 -1
- package/internal/icons2022/BaseIcon.js +1 -1
- package/internal/icons2022/BaseIcon.js.map +1 -1
- package/internal/icons2022/CalendarIcon/CalendarIcon16Light.js.map +1 -1
- package/internal/icons2022/CalendarIcon/CalendarIcon20Light.js.map +1 -1
- package/internal/icons2022/CalendarIcon/CalendarIcon24Regular.js.map +1 -1
- package/internal/icons2022/CheckAIcon/CheckAIcon16Solid.js.map +1 -1
- package/internal/icons2022/CheckAIcon/CheckAIcon20Solid.js.map +1 -1
- package/internal/icons2022/EyeClosedIcon/EyeClosedIcon16Light.js.map +1 -1
- package/internal/icons2022/EyeClosedIcon/EyeClosedIcon20Light.js.map +1 -1
- package/internal/icons2022/EyeClosedIcon/EyeClosedIcon24Regular.js.map +1 -1
- package/internal/icons2022/EyeOpenIcon/EyeOpenIcon16Light.js.map +1 -1
- package/internal/icons2022/EyeOpenIcon/EyeOpenIcon20Light.js.map +1 -1
- package/internal/icons2022/EyeOpenIcon/EyeOpenIcon24Regular.js.map +1 -1
- package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon16Solid.js.map +1 -1
- package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon20Solid.js.map +1 -1
- package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon24Regular.js.map +1 -1
- package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon24Solid.js.map +1 -1
- package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon32Regular.js.map +1 -1
- package/internal/icons2022/FileTypeArchiveIcon/ArchiveIcon64Regular.js.map +1 -1
- package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon16Solid.js.map +1 -1
- package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon20Solid.js.map +1 -1
- package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon24Regular.js.map +1 -1
- package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon24Solid.js.map +1 -1
- package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon32Regular.js.map +1 -1
- package/internal/icons2022/FileTypeDocTextIcon/DocTextIcon64Regular.js.map +1 -1
- package/internal/icons2022/FileTypeFolderIcon/FolderIcon16Solid.js.map +1 -1
- package/internal/icons2022/FileTypeFolderIcon/FolderIcon20Solid.js.map +1 -1
- package/internal/icons2022/FileTypeFolderIcon/FolderIcon24Regular.js.map +1 -1
- package/internal/icons2022/FileTypeFolderIcon/FolderIcon24Solid.js.map +1 -1
- package/internal/icons2022/FileTypeFolderIcon/FolderIcon32Regular.js.map +1 -1
- package/internal/icons2022/FileTypeFolderIcon/FolderIcon64Regular.js.map +1 -1
- package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon16Solid.js.map +1 -1
- package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon20Solid.js.map +1 -1
- package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon24Regular.js.map +1 -1
- package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon24Solid.js.map +1 -1
- package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon32Regular.js.map +1 -1
- package/internal/icons2022/FileTypeMarkupIcon/MarkupIcon64Regular.js.map +1 -1
- package/internal/icons2022/FileTypePdfIcon/PdfIcon16Solid.js.map +1 -1
- package/internal/icons2022/FileTypePdfIcon/PdfIcon20Solid.js.map +1 -1
- package/internal/icons2022/FileTypePdfIcon/PdfIcon24Regular.js.map +1 -1
- package/internal/icons2022/FileTypePdfIcon/PdfIcon24Solid.js.map +1 -1
- package/internal/icons2022/FileTypePdfIcon/PdfIcon32Regular.js.map +1 -1
- package/internal/icons2022/FileTypePdfIcon/PdfIcon64Regular.js.map +1 -1
- package/internal/icons2022/FileTypePictureIcon/PictureIcon16Solid.js.map +1 -1
- package/internal/icons2022/FileTypePictureIcon/PictureIcon20Solid.js.map +1 -1
- package/internal/icons2022/FileTypePictureIcon/PictureIcon24Regular.js.map +1 -1
- package/internal/icons2022/FileTypePictureIcon/PictureIcon24Solid.js.map +1 -1
- package/internal/icons2022/FileTypePictureIcon/PictureIcon32Regular.js.map +1 -1
- package/internal/icons2022/FileTypePictureIcon/PictureIcon64Regular.js.map +1 -1
- package/internal/icons2022/FileTypePresentationIcon/PresentationIcon16Solid.js.map +1 -1
- package/internal/icons2022/FileTypePresentationIcon/PresentationIcon20Solid.js.map +1 -1
- package/internal/icons2022/FileTypePresentationIcon/PresentationIcon24Regular.js.map +1 -1
- package/internal/icons2022/FileTypePresentationIcon/PresentationIcon24Solid.js.map +1 -1
- package/internal/icons2022/FileTypePresentationIcon/PresentationIcon32Regular.js.map +1 -1
- package/internal/icons2022/FileTypePresentationIcon/PresentationIcon64Regular.js.map +1 -1
- package/internal/icons2022/FileTypeTableIcon/TableIcon16Solid.js.map +1 -1
- package/internal/icons2022/FileTypeTableIcon/TableIcon20Solid.js.map +1 -1
- package/internal/icons2022/FileTypeTableIcon/TableIcon24Regular.js.map +1 -1
- package/internal/icons2022/FileTypeTableIcon/TableIcon24Solid.js.map +1 -1
- package/internal/icons2022/FileTypeTableIcon/TableIcon32Regular.js.map +1 -1
- package/internal/icons2022/FileTypeTableIcon/TableIcon64Regular.js.map +1 -1
- package/internal/icons2022/FileTypeTextIcon/TextIcon16Solid.js.map +1 -1
- package/internal/icons2022/FileTypeTextIcon/TextIcon20Solid.js.map +1 -1
- package/internal/icons2022/FileTypeTextIcon/TextIcon24Regular.js.map +1 -1
- package/internal/icons2022/FileTypeTextIcon/TextIcon24Solid.js.map +1 -1
- package/internal/icons2022/FileTypeTextIcon/TextIcon32Regular.js.map +1 -1
- package/internal/icons2022/FileTypeTextIcon/TextIcon64Regular.js.map +1 -1
- package/internal/icons2022/InfoCircleIcon/InfoCircleIcon64Regular.js.map +1 -1
- package/internal/icons2022/LoadingIcon.js +1 -1
- package/internal/icons2022/LoadingIcon.js.map +1 -1
- package/internal/icons2022/MathFunctionIcon/MathFunctionIcon16Light.js.map +1 -1
- package/internal/icons2022/MathFunctionIcon/MathFunctionIcon20Light.js.map +1 -1
- package/internal/icons2022/MathFunctionIcon/MathFunctionIcon24Regular.js.map +1 -1
- package/internal/icons2022/NetUploadIcon/NetUploadIcon16Light.js.map +1 -1
- package/internal/icons2022/NetUploadIcon/NetUploadIcon20Regular.js.map +1 -1
- package/internal/icons2022/NetUploadIcon/NetUploadIcon24Regular.js.map +1 -1
- package/internal/icons2022/NetUploadIcon/NetUploadIcon32Regular.js.map +1 -1
- package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid.js.map +1 -1
- package/internal/icons2022/ShapeSquareIcon/ShapeSquareIcon16Solid.js.map +1 -1
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -1
- package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon16Light.js.map +1 -1
- package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon20Regular.js.map +1 -1
- package/internal/icons2022/UiMenuDotsThreeVIcon/UiMenuDotsThreeVIcon24Regular.js.map +1 -1
- package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon16Solid.js.map +1 -1
- package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon20Solid.js.map +1 -1
- package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon24Regular.js.map +1 -1
- package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon24Solid.js.map +1 -1
- package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon32Regular.js.map +1 -1
- package/internal/icons2022/WarningTriangleIcon/WarningTriangleIcon64Regular.js.map +1 -1
- package/internal/icons2022/XCircleIcon/XCircleIcon16Solid.js.map +1 -1
- package/internal/icons2022/XCircleIcon/XCircleIcon20Solid.js.map +1 -1
- package/internal/icons2022/XCircleIcon/XCircleIcon24Regular.js.map +1 -1
- package/internal/icons2022/XCircleIcon/XCircleIcon24Solid.js.map +1 -1
- package/internal/icons2022/XCircleIcon/XCircleIcon32Regular.js.map +1 -1
- package/internal/icons2022/XCircleIcon/XCircleIcon64Regular.js.map +1 -1
- package/internal/icons2022/XIcon/XIcon16Light.js.map +1 -1
- package/internal/icons2022/XIcon/XIcon20Light.js.map +1 -1
- package/internal/icons2022/XIcon/XIcon20Regular.js.map +1 -1
- package/internal/icons2022/XIcon/XIcon24Regular.js.map +1 -1
- package/internal/icons2022/iconSizer.js.map +1 -1
- package/internal/react-focus-lock/Lock.js +1 -1
- package/internal/react-focus-lock/Lock.js.map +1 -1
- package/internal/react-focus-lock/Trap.js +2 -2
- package/internal/react-focus-lock/Trap.js.map +1 -1
- package/internal/themes/DarkTheme6_0.js +1 -1
- package/internal/themes/DarkTheme6_0.js.map +1 -1
- package/internal/themes/LightTheme6_0.js.map +1 -1
- package/lib/ModalStack.d.ts +1 -1
- package/lib/ModalStack.js.map +1 -1
- package/lib/animation/index.js.map +1 -1
- package/lib/date/InternalDate.js.map +1 -1
- package/lib/date/InternalDateGetter.d.ts +1 -1
- package/lib/date/InternalDateGetter.js.map +1 -1
- package/lib/date/InternalDateSetter.d.ts +1 -1
- package/lib/date/InternalDateSetter.js.map +1 -1
- package/lib/date/InternalDateTransformer.js +1 -1
- package/lib/date/InternalDateTransformer.js.map +1 -1
- package/lib/date/InternalDateValidator.js +1 -1
- package/lib/date/InternalDateValidator.js.map +1 -1
- package/lib/date/comparison.js.map +1 -1
- package/lib/date/localeSets.js.map +1 -1
- package/lib/dom/scrollYCenterIntoNearestScrollable.js.map +1 -1
- package/lib/dom/selectionHelpers.js +3 -3
- package/lib/dom/selectionHelpers.js.map +1 -1
- package/lib/dom/tabbableHelpers.js +1 -1
- package/lib/dom/tabbableHelpers.js.map +1 -1
- package/lib/events/fixFirefoxModifiedClickOnLabel.js +1 -1
- package/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
- package/lib/events/keyListener.js.map +1 -1
- package/lib/events/keyboard/extractCode.js.map +1 -1
- package/lib/events/keyboard/identifiers.js.map +1 -1
- package/lib/forwardRefAndName.js.map +1 -1
- package/lib/listenFocusOutside.d.ts +3 -1
- package/lib/listenFocusOutside.js +21 -4
- package/lib/listenFocusOutside.js.map +1 -1
- package/lib/locale/LocaleContext.js.map +1 -1
- package/lib/locale/types.d.ts +6 -6
- package/lib/locale/types.js.map +1 -1
- package/lib/locale/useLocaleForControl.d.ts +1 -1
- package/lib/locale/useLocaleForControl.js.map +1 -1
- package/lib/mergeRefs.js.map +1 -1
- package/lib/renderEnvironment/RenderEnvironmentContext.d.ts +17 -1
- package/lib/renderEnvironment/RenderEnvironmentContext.js +10 -10
- package/lib/renderEnvironment/RenderEnvironmentContext.js.map +1 -1
- package/lib/renderEnvironment/RenderEnvironmentDecorator.js.map +1 -1
- package/lib/rootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/lib/shadowDom/isShadowRoot.d.ts +6 -0
- package/lib/shadowDom/isShadowRoot.js +17 -0
- package/lib/shadowDom/isShadowRoot.js.map +1 -0
- package/lib/size/SizeControlContext.js.map +1 -1
- package/lib/size/SizeDecorator.js +1 -1
- package/lib/size/SizeDecorator.js.map +1 -1
- package/lib/size/useSizeControl.js.map +1 -1
- package/lib/styles/ColorFunctions.js +2 -2
- package/lib/styles/ColorFunctions.js.map +1 -1
- package/lib/theming/AnimationKeyframes.js.map +1 -1
- package/lib/theming/Emotion.d.ts +17 -1
- package/lib/theming/Emotion.js +16 -5
- package/lib/theming/Emotion.js.map +1 -1
- package/lib/theming/ThemeFactory.js +1 -1
- package/lib/theming/ThemeFactory.js.map +1 -1
- package/lib/theming/ThemeHelpers.js.map +1 -1
- package/lib/theming/useTheme.js.map +1 -1
- package/lib/types/polymorphic-component.d.ts +1 -1
- package/lib/types/polymorphic-component.js.map +1 -1
- package/lib/utils.d.ts +8 -8
- package/lib/utils.js.map +1 -1
- package/package.json +14 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validateDateRangePicker.js","sourceRoot":"","sources":["../../../../components/DateRangePicker/helpers/validateDateRangePicker.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"validateDateRangePicker.js","sourceRoot":"","sources":["../../../../components/DateRangePicker/helpers/validateDateRangePicker.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAUjH,IAAM,cAAc,GAAsB;IACxC,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;CACtB,CAAC;AAEF,MAAM,UAAU,uBAAuB,CACrC,UAA4B,EAC5B,QAA0B,EAC1B,OAA2C;IAA3C,wBAAA,EAAA,wBAA2C;IAErC,IAAA,2BAAwD,cAAc,GAAK,OAAO,CAAE,EAAlF,aAAa,mBAAA,EAAE,WAAW,iBAAA,EAAE,OAAO,aAAA,EAAE,OAAO,aAAsC,CAAC;IAC3F,IAAM,YAAY,GAAG,CAAC,UAAU,CAAC;IACjC,IAAM,eAAe,GAAG,CAAC,aAAa,CAAC;IACvC,IAAM,UAAU,GAAG,CAAC,QAAQ,CAAC;IAC7B,IAAM,aAAa,GAAG,CAAC,WAAW,CAAC;IAEnC,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,IAAM,YAAY,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEvD,IAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACtG,IAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9F,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,YAAY,CAAC,UAA4B,EAAE,QAA0B;IAC5E,OAAO,aAAa,CAAC,UAAU,IAAI,EAAE,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB,EAAE,OAAgB;IACzD,OAAO,IAAI,YAAY,CAAC;QACtB,KAAK,EAAE,iBAAiB,CAAC,GAAG;QAC5B,SAAS,EAAE,qBAAqB,CAAC,GAAG;KACrC,CAAC;SACC,aAAa,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;SACnD,WAAW,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,YAA0B;IAC3C,OAAO,YAAY,CAAC,QAAQ,CAAC;QAC3B,MAAM,EAAE;YACN,yBAAyB,CAAC,OAAO;YACjC,yBAAyB,CAAC,MAAM;YAChC,yBAAyB,CAAC,MAAM;YAChC,yBAAyB,CAAC,MAAM;YAChC,yBAAyB,CAAC,KAAK;SAChC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { isLessOrEqual } from '../../../lib/date/comparison.js';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../../lib/date/constants.js';\nimport { InternalDate } from '../../../lib/date/InternalDate.js';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../../lib/date/types.js';\nimport type { Nullable } from '../../../typings/utility-types.js';\n\ninterface ValidationOptions {\n startOptional?: boolean;\n endOptional?: boolean;\n minDate?: string;\n maxDate?: string;\n}\n\nconst defaultOptions: ValidationOptions = {\n startOptional: false,\n endOptional: false,\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n};\n\nexport function validateDateRangePicker(\n startValue: Nullable<string>,\n endValue: Nullable<string>,\n options: ValidationOptions = defaultOptions,\n): boolean[] {\n const { startOptional, endOptional, minDate, maxDate } = { ...defaultOptions, ...options };\n const isStartEmpty = !startValue;\n const isStartRequired = !startOptional;\n const isEndEmpty = !endValue;\n const isEndRequired = !endOptional;\n\n if (!isStartEmpty && !isEndEmpty && !isRangeValid(startValue, endValue)) {\n return [false, false];\n }\n\n const internalDate = getInternalDate(minDate, maxDate);\n\n const isStartValid = isStartEmpty ? !isStartRequired : checkDate(internalDate.parseValue(startValue));\n const isEndValid = isEndEmpty ? !isEndRequired : checkDate(internalDate.parseValue(endValue));\n\n return [isStartValid, isEndValid];\n}\n\nfunction isRangeValid(startValue: Nullable<string>, endValue: Nullable<string>) {\n return isLessOrEqual(startValue || '', endValue || '');\n}\n\nfunction getInternalDate(minDate?: string, maxDate?: string) {\n return new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }));\n}\n\nfunction checkDate(internalDate: InternalDate) {\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/DateRangePicker/locale/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../components/DateRangePicker/locale/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,iBAAiB,IAAI,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,IAAI,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7D,cAAc,YAAY,CAAC;AAE3B,MAAM,CAAC,IAAM,2BAA2B,GAAG,IAAI,YAAY,CAAwB;IACjF,KAAK,OAAA;IACL,KAAK,OAAA;CACN,CAAC,CAAC","sourcesContent":["import { LocaleHelper } from '../../../lib/locale/LocaleHelper.js';\nimport { componentsLocales as en_GB } from './locales/en.js';\nimport { componentsLocales as ru_RU } from './locales/ru.js';\nimport type { DateRangePickerLocale } from './types.js';\n\nexport * from './types.js';\n\nexport const DateRangePickerLocaleHelper = new LocaleHelper<DateRangePickerLocale>({\n ru_RU,\n en_GB,\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../../../../components/DateRangePicker/locale/locales/en.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../../../../components/DateRangePicker/locale/locales/en.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAGjG,MAAM,CAAC,IAAM,iBAAiB,cAC5B,cAAc,EAAE,YAAY,EAC5B,YAAY,EAAE,UAAU,EACxB,cAAc,EAAE,eAAe,EAC/B,YAAY,EAAE,aAAa,IACxB,gBAAgB,CACpB,CAAC","sourcesContent":["import { componentsLocales as DatePickerLocale } from '../../../DatePicker/locale/locales/en.js';\nimport type { DateRangePickerLocale } from '../types.js';\n\nexport const componentsLocales: DateRangePickerLocale = {\n startDateLabel: 'Start date',\n endDateLabel: 'End date',\n startDateEmpty: 'No start date',\n endDateEmpty: 'No end date',\n ...DatePickerLocale,\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ru.js","sourceRoot":"","sources":["../../../../../components/DateRangePicker/locale/locales/ru.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ru.js","sourceRoot":"","sources":["../../../../../components/DateRangePicker/locale/locales/ru.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,IAAI,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAGjG,MAAM,CAAC,IAAM,iBAAiB,cAC5B,cAAc,EAAE,aAAa,EAC7B,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EAAE,iBAAiB,EACjC,YAAY,EAAE,iBAAiB,IAC5B,gBAAgB,CACpB,CAAC","sourcesContent":["import { componentsLocales as DatePickerLocale } from '../../../DatePicker/locale/locales/ru.js';\nimport type { DateRangePickerLocale } from '../types.js';\n\nexport const componentsLocales: DateRangePickerLocale = {\n startDateLabel: 'Дата начала',\n endDateLabel: 'Дата окончания',\n startDateEmpty: 'Без первой даты',\n endDateEmpty: 'Без второй даты',\n ...DatePickerLocale,\n};\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { AriaAttributes, HTMLAttributes, JSX } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { MenuItem } from '../MenuItem/index.js';
|
|
4
|
-
import type { ButtonUse } from '../Button/index.js';
|
|
5
3
|
import type { CommonProps } from '../../internal/CommonWrapper/types.js';
|
|
6
4
|
import type { TGetRootNode } from '../../lib/rootNode//rootNodeDecorator.js';
|
|
7
5
|
import type { SizeProp } from '../../lib/types/props.js';
|
|
6
|
+
import type { ButtonUse } from '../Button/index.js';
|
|
7
|
+
import { MenuItem } from '../MenuItem/index.js';
|
|
8
8
|
export interface DropdownProps extends Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
|
|
9
9
|
/** Текст кнопки-меню. */
|
|
10
10
|
caption: React.ReactNode;
|
|
@@ -42,14 +42,14 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
42
42
|
return t;
|
|
43
43
|
};
|
|
44
44
|
import React from 'react';
|
|
45
|
+
import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
|
|
45
46
|
import { filterProps } from '../../lib/filterProps.js';
|
|
47
|
+
import { rootNode } from '../../lib/rootNode/index.js';
|
|
48
|
+
import { ThemeContext } from '../../lib/theming/ThemeContext.js';
|
|
46
49
|
import { MenuHeader } from '../MenuHeader/index.js';
|
|
47
50
|
import { MenuItem } from '../MenuItem/index.js';
|
|
48
51
|
import { MenuSeparator } from '../MenuSeparator/index.js';
|
|
49
52
|
import { Select } from '../Select/index.js';
|
|
50
|
-
import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
|
|
51
|
-
import { rootNode } from '../../lib/rootNode/index.js';
|
|
52
|
-
import { ThemeContext } from '../../lib/theming/ThemeContext.js';
|
|
53
53
|
import { getDropdownTheme } from './getDropdownTheme.js';
|
|
54
54
|
var PASS_PROPS = {
|
|
55
55
|
_renderButton: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../../../components/Dropdown/Dropdown.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../../../components/Dropdown/Dropdown.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes, HTMLAttributes, JSX } from 'react';\nimport React from 'react';\n\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/types.js';\nimport { filterProps } from '../../lib/filterProps.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode//rootNodeDecorator.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { ButtonUse } from '../Button/index.js';\nimport { MenuHeader } from '../MenuHeader/index.js';\nimport { MenuItem } from '../MenuItem/index.js';\nimport { MenuSeparator } from '../MenuSeparator/index.js';\nimport { Select } from '../Select/index.js';\nimport { getDropdownTheme } from './getDropdownTheme.js';\n\nconst PASS_PROPS = {\n _renderButton: true,\n error: true,\n disabled: true,\n disablePortal: true,\n menuAlign: true,\n menuWidth: true,\n maxMenuHeight: true,\n use: true,\n size: true,\n warning: true,\n width: true,\n onOpen: true,\n onClose: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseOver: true,\n menuPos: true,\n corners: true,\n id: true,\n 'aria-describedby': true,\n 'aria-label': true,\n};\n\nexport interface DropdownProps\n extends\n Pick<AriaAttributes, 'aria-label' | 'aria-describedby'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Текст кнопки-меню. */\n caption: React.ReactNode;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Ширина кнопки-меню. Если `menuWidth` не задан, такая же минимальная ширина применяется к раскрывающемуся меню. */\n width?: React.CSSProperties['width'];\n\n /** @ignore */\n _renderButton?: (params: any) => JSX.Element;\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Блокирует компонент. */\n disabled?: boolean;\n\n /** Показывает состояние ошибки. */\n error?: boolean;\n\n /** Показывает состояние предупреждения. */\n warning?: boolean;\n\n /** Ограничивает максимальную высоту раскрывающегося меню. */\n maxMenuHeight?: number;\n\n /** Фиксирует положение раскрывающегося меню относительно кнопки-меню. */\n menuPos?: 'top' | 'bottom';\n\n /** Выравнивает раскрывающееся меню относительно кнопки-меню. */\n menuAlign?: 'left' | 'right';\n\n /** Ширина раскрывающегося меню. */\n menuWidth?: number | string;\n\n /** Размер кнопки-меню. */\n size?: SizeProp;\n\n /** Визуальный стиль кнопки-меню. */\n use?: ButtonUse;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Вызывается при закрытии раскрывающегося меню. */\n onClose?: () => void;\n\n /** Вызывается при открытии раскрывающегося меню. */\n onOpen?: () => void;\n\n /** Вызывается при наведении курсора (событие `onmouseenter`). Разницу с `onMouseOver` смотрите в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave). */\n onMouseEnter?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** Вызывается при уходе курсора с элемента (событие `onmouseleave`). */\n onMouseLeave?: (event: React.MouseEvent<HTMLElement>) => void;\n\n /** Вызывается при движении курсора над элементом (событие `onmouseover`). */\n onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\ntype DropdownSelectType = Select<React.ReactNode, React.ReactNode>;\n\nexport const DropdownDataTids = {\n root: 'Dropdown__root',\n} as const;\n\n/**\n * Кнопка-меню `Dropdown` открывает раскрывающееся меню с командами, объединенными по смыслу.\n *\n * Используйте кнопку-меню:\n * * когда не хватает места для нескольких кнопок.\n * * когда названия действий очень длинные.\n * * когда действия редко используются или объединены по смыслу.\n *\n * Не используйте `Dropdown` для выбора значения из набора вариантов. В таком случае воспользуйтесь компонентом `Select`.\n */\n@rootNode\nexport class Dropdown extends React.Component<DropdownProps> {\n public static __KONTUR_REACT_UI__ = 'Dropdown';\n public static displayName = 'Dropdown';\n\n public static Header = MenuHeader;\n public static MenuItem = MenuItem;\n public static Separator = MenuSeparator;\n\n private _select: Nullable<DropdownSelectType>;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n public render(): React.JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getDropdownTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (): React.JSX.Element => {\n const { caption, icon, ...rest } = this.props;\n const items = React.Children.map(this.props.children, (item) => item) || [];\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...rest}>\n <Select<React.ReactNode, React.ReactNode>\n data-tid={DropdownDataTids.root}\n ref={this._refSelect}\n {...filterProps(rest, PASS_PROPS)}\n value={caption}\n items={items}\n _icon={icon}\n renderValue={renderValue}\n />\n </CommonWrapper>\n );\n };\n\n /**\n * @public\n */\n public open(): void {\n if (this._select) {\n this._select.open();\n }\n }\n\n /**\n * @public\n */\n public close(): void {\n if (this._select) {\n this._select.close();\n }\n }\n\n private _refSelect = (element: DropdownSelectType): void => {\n this._select = element;\n };\n}\n\nfunction renderValue(value: any) {\n return value;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDropdownTheme.js","sourceRoot":"","sources":["../../../components/Dropdown/getDropdownTheme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDropdownTheme.js","sourceRoot":"","sources":["../../../components/Dropdown/getDropdownTheme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAC,KAAY;IAC3C,OAAO,YAAY,CAAC,MAAM,CACxB;QACE,eAAe,EAAE,KAAK,CAAC,iBAAiB;QACxC,iBAAiB,EAAE,KAAK,CAAC,mBAAmB;QAC5C,sBAAsB,EAAE,KAAK,CAAC,4BAA4B;QAC1D,2BAA2B,EAAE,KAAK,CAAC,iCAAiC;QAEpE,iBAAiB,EAAE,KAAK,CAAC,mBAAmB;QAC5C,kBAAkB,EAAE,KAAK,CAAC,oBAAoB;QAE9C,qBAAqB,EAAE,KAAK,CAAC,uBAAuB;QACpD,mBAAmB,EAAE,KAAK,CAAC,qBAAqB;QAChD,mBAAmB,EAAE,KAAK,CAAC,qBAAqB;QAChD,mBAAmB,EAAE,KAAK,CAAC,qBAAqB;QAChD,mBAAmB,EAAE,KAAK,CAAC,qBAAqB;QAChD,uBAAuB,EAAE,KAAK,CAAC,+BAA+B;QAE9D,sBAAsB,EAAE,KAAK,CAAC,wBAAwB;QACtD,oBAAoB,EAAE,KAAK,CAAC,sBAAsB;QAClD,oBAAoB,EAAE,KAAK,CAAC,sBAAsB;QAClD,oBAAoB,EAAE,KAAK,CAAC,sBAAsB;QAClD,oBAAoB,EAAE,KAAK,CAAC,sBAAsB;QAClD,wBAAwB,EAAE,KAAK,CAAC,gCAAgC;QAEhE,qBAAqB,EAAE,KAAK,CAAC,uBAAuB;QACpD,mBAAmB,EAAE,KAAK,CAAC,qBAAqB;QAChD,mBAAmB,EAAE,KAAK,CAAC,qBAAqB;QAChD,mBAAmB,EAAE,KAAK,CAAC,qBAAqB;QAChD,mBAAmB,EAAE,KAAK,CAAC,qBAAqB;QAChD,uBAAuB,EAAE,KAAK,CAAC,+BAA+B;QAE9D,gBAAgB,EAAE,KAAK,CAAC,kBAAkB;QAC1C,yBAAyB,EAAE,KAAK,CAAC,2BAA2B;QAC5D,uBAAuB,EAAE,KAAK,CAAC,yBAAyB;KACzD,EACD,KAAK,CACN,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\n\nexport const getDropdownTheme = (theme: Theme): Theme => {\n return ThemeFactory.create(\n {\n selectDefaultBg: theme.dropdownDefaultBg,\n selectMenuOffsetY: theme.dropdownMenuOffsetY,\n selectBorderColorHover: theme.dropdownMenuHoverBorderColor,\n selectBorderColorTransition: theme.dropdownMenuBorderColorTransition,\n\n selectBorderWidth: theme.dropdownBorderWidth,\n selectOutlineWidth: theme.dropdownOutlineWidth,\n\n selectLineHeightSmall: theme.dropdownLineHeightSmall,\n selectFontSizeSmall: theme.dropdownFontSizeSmall,\n selectPaddingXSmall: theme.dropdownPaddingXSmall,\n selectPaddingYSmall: theme.dropdownPaddingYSmall,\n selectIconSizeSmall: theme.dropdownIconSizeSmall,\n selectBorderRadiusSmall: theme.dropdownButtonBorderRadiusSmall,\n\n selectLineHeightMedium: theme.dropdownLineHeightMedium,\n selectFontSizeMedium: theme.dropdownFontSizeMedium,\n selectPaddingXMedium: theme.dropdownPaddingXMedium,\n selectPaddingYMedium: theme.dropdownPaddingYMedium,\n selectIconSizeMedium: theme.dropdownIconSizeMedium,\n selectBorderRadiusMedium: theme.dropdownButtonBorderRadiusMedium,\n\n selectLineHeightLarge: theme.dropdownLineHeightLarge,\n selectFontSizeLarge: theme.dropdownFontSizeLarge,\n selectPaddingXLarge: theme.dropdownPaddingXLarge,\n selectPaddingYLarge: theme.dropdownPaddingYLarge,\n selectIconSizeLarge: theme.dropdownIconSizeLarge,\n selectBorderRadiusLarge: theme.dropdownButtonBorderRadiusLarge,\n\n selectBgDisabled: theme.dropdownBgDisabled,\n selectBorderColorDisabled: theme.dropdownBorderColorDisabled,\n selectTextColorDisabled: theme.dropdownTextColorDisabled,\n },\n theme,\n );\n};\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { AriaAttributes, HTMLAttributes } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import type { PopupMenuProps } from '../../internal/PopupMenu/index.js';
|
|
4
|
-
import type { PopupPositionsType } from '../../internal/Popup/index.js';
|
|
5
3
|
import type { CommonProps } from '../../internal/CommonWrapper/types.js';
|
|
4
|
+
import type { PopupPositionsType } from '../../internal/Popup/index.js';
|
|
5
|
+
import type { PopupMenuProps } from '../../internal/PopupMenu/index.js';
|
|
6
6
|
import type { TGetRootNode } from '../../lib/rootNode//rootNodeDecorator.js';
|
|
7
7
|
export interface DropdownMenuProps extends Pick<AriaAttributes, 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>, CommonProps {
|
|
8
8
|
/** Максимальная высота меню */
|
|
@@ -32,12 +32,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
32
32
|
};
|
|
33
33
|
import React from 'react';
|
|
34
34
|
import warning from 'warning';
|
|
35
|
-
import {
|
|
35
|
+
import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
|
|
36
36
|
import { PopupMenu } from '../../internal/PopupMenu/index.js';
|
|
37
|
+
import { createPropsGetter } from '../../lib/createPropsGetter.js';
|
|
37
38
|
import { isTestEnv } from '../../lib/currentEnvironment.js';
|
|
38
|
-
import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
|
|
39
39
|
import { rootNode } from '../../lib/rootNode/index.js';
|
|
40
|
-
import {
|
|
40
|
+
import { ThemeContext } from '../../lib/theming/ThemeContext.js';
|
|
41
41
|
import { getDropdownMenuTheme } from './getDropdownMenuTheme.js';
|
|
42
42
|
/**
|
|
43
43
|
* Выпадающее меню `DropdownMenu` раскрывается по клику на переданный в `caption` элемент.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownMenu.js","sourceRoot":"","sources":["../../../components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"DropdownMenu.js","sourceRoot":"","sources":["../../../components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/types.js';\nimport type { PopupPositionsType } from '../../internal/Popup/index.js';\nimport { PopupMenu } from '../../internal/PopupMenu/index.js';\nimport type { PopupMenuProps } from '../../internal/PopupMenu/index.js';\nimport { createPropsGetter } from '../../lib/createPropsGetter.js';\nimport { isTestEnv } from '../../lib/currentEnvironment.js';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode//rootNodeDecorator.js';\nimport { rootNode } from '../../lib/rootNode/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { getDropdownMenuTheme } from './getDropdownMenuTheme.js';\n\nexport interface DropdownMenuProps\n extends\n Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Максимальная высота меню */\n menuMaxHeight?: React.CSSProperties['maxWidth'];\n /** Ширина меню */\n menuWidth?: React.CSSProperties['width'];\n /** Ширина caption */\n width?: React.CSSProperties['width'];\n\n /**\n * Элемент или функция возвращающая элемент,\n * если передана, используется вместо `caption`,\n * в таком случае управлять открытием и закрытием меню\n * придется в этой функции\n */\n caption: PopupMenuProps['caption'];\n\n /**\n * Произвольный элемент, который будет отрендерен в шапке меню.\n *\n * _Примечание_: контрол MenuHeader передаётся только в `children` меню-контролов. Не стоит передавать `MenuHeader` в `header`.\n */\n header?: React.ReactNode;\n /**\n * Произвольный элемент, который будет отрендерен в подвале меню.\n *\n * Перед элементом переданным в `footer` будет отрендерен MenuSeparator.\n */\n footer?: React.ReactNode;\n /**\n * Список позиций доступных для расположения выпадашки относительно `caption`.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions?: PopupPositionsType[];\n\n /**\n * Не показывать анимацию\n */\n disableAnimations?: boolean;\n\n /** @ignore */\n corners?: React.CSSProperties;\n}\n\ntype DefaultProps = Required<Pick<DropdownMenuProps, 'disableAnimations' | 'positions'>>;\n\n/**\n * Выпадающее меню `DropdownMenu` раскрывается по клику на переданный в `caption` элемент.\n */\n@rootNode\nexport class DropdownMenu extends React.Component<DropdownMenuProps> {\n public static __KONTUR_REACT_UI__ = 'DropdownMenu';\n public static displayName = 'DropdownMenu';\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n };\n\n private getProps = createPropsGetter(DropdownMenu.defaultProps);\n\n private popupMenu: Nullable<PopupMenu> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n constructor(props: DropdownMenuProps) {\n super(props);\n\n if (!props.caption) {\n warning(false, 'Prop \"caption\" is required!!!');\n }\n }\n\n public render(): React.JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n return <ThemeContext.Provider value={getDropdownMenuTheme(theme)}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain(): React.JSX.Element | null {\n if (!this.props.caption) {\n return null;\n }\n const { positions, disableAnimations } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n id={this.props.id}\n aria-label={this.props['aria-label']}\n ref={this.refPopupMenu}\n caption={this.props.caption}\n menuMaxHeight={this.props.menuMaxHeight}\n menuWidth={this.props.menuWidth}\n preventIconsOffset={this.props.preventIconsOffset}\n popupHasPin={false}\n positions={positions}\n disableAnimations={disableAnimations}\n header={this.props.header}\n footer={this.props.footer}\n width={this.props.width}\n corners={this.props.corners}\n onClose={this.props.onClose}\n onOpen={this.props.onOpen}\n popupMenuId={this.props.popupMenuId}\n >\n {this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n public open = (): void => {\n if (this.popupMenu) {\n this.popupMenu.open();\n }\n };\n\n public close = (): void => {\n if (this.popupMenu) {\n this.popupMenu.close();\n }\n };\n\n private refPopupMenu = (ref: Nullable<PopupMenu>) => {\n this.popupMenu = ref;\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDropdownMenuTheme.js","sourceRoot":"","sources":["../../../components/DropdownMenu/getDropdownMenuTheme.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDropdownMenuTheme.js","sourceRoot":"","sources":["../../../components/DropdownMenu/getDropdownMenuTheme.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,MAAM,CAAC,IAAM,oBAAoB,GAAG,UAAC,KAAY;IAC/C,OAAO,YAAY,CAAC,MAAM,CACxB;QACE,WAAW,EAAE,KAAK,CAAC,uBAAuB;QAC1C,aAAa,EAAE,KAAK,CAAC,yBAAyB;QAC9C,YAAY,EAAE,KAAK,CAAC,yCAAyC;QAC7D,yCAAyC,EAAE,KAAK,CAAC,YAAY;QAC7D,+BAA+B,EAAE,KAAK,CAAC,2CAA2C;KACnF,EACD,KAAK,CACN,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory.js';\n\nexport const getDropdownMenuTheme = (theme: Theme): Theme => {\n return ThemeFactory.create(\n {\n popupMargin: theme.dropdownMenuMenuOffsetY,\n menuBoxSizing: theme.dropdownMenuMenuBoxSizing,\n menuPaddingY: theme.menuScrollContainerContentWrapperPaddingY,\n menuScrollContainerContentWrapperPaddingY: theme.menuPaddingY,\n scrollContainerScrollBarOffsetY: theme.dropdownMenuScrollContainerScrollBarOffsetY,\n },\n theme,\n );\n};\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { InstanceWithRootNode } from '../../lib/rootNode/index.js';
|
|
3
2
|
import type { CommonProps } from '../../internal/CommonWrapper/index.js';
|
|
4
|
-
import type { Nullable } from '../../typings/utility-types.js';
|
|
5
|
-
import type { SizeProp } from '../../lib/types/props.js';
|
|
6
3
|
import type { PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup/index.js';
|
|
4
|
+
import type { InstanceWithRootNode } from '../../lib/rootNode/index.js';
|
|
5
|
+
import type { SizeProp } from '../../lib/types/props.js';
|
|
6
|
+
import type { Nullable } from '../../typings/utility-types.js';
|
|
7
7
|
import type { FileUploaderControlProviderProps } from './FileUploaderControlProvider.js';
|
|
8
|
-
import { FileUploaderFileStatus } from './fileUtils.js';
|
|
9
|
-
import type { FileUploaderAttachedFile, FileUploaderUploadButtonPosition, FileUploaderValidationSummary, FileUploaderView } from './fileUtils.js';
|
|
10
8
|
import type { FileUploaderFileProps } from './FileUploaderFile.js';
|
|
9
|
+
import type { FileUploaderAttachedFile, FileUploaderUploadButtonPosition, FileUploaderValidationSummary, FileUploaderView } from './fileUtils.js';
|
|
10
|
+
import { FileUploaderFileStatus } from './fileUtils.js';
|
|
11
11
|
type FileUploaderOverriddenProps = 'size';
|
|
12
12
|
interface _FileUploaderProps extends CommonProps, Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {
|
|
13
13
|
/** Переводит контрол в состояние валидации "ошибка". */
|
|
@@ -57,26 +57,27 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
57
57
|
return t;
|
|
58
58
|
};
|
|
59
59
|
import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';
|
|
60
|
-
import { useEmotion, useGlobal, useStyles } from '../../lib/renderEnvironment/index.js';
|
|
61
|
-
import { isBrowser } from '../../lib/globalObject.js';
|
|
62
|
-
import { useMemoObject } from '../../hooks/useMemoObject.js';
|
|
63
60
|
import { useDrop } from '../../hooks/useDrop.js';
|
|
64
|
-
import {
|
|
65
|
-
import { useKeyListener } from '../../lib/events/keyListener.js';
|
|
61
|
+
import { useMemoObject } from '../../hooks/useMemoObject.js';
|
|
66
62
|
import { CommonWrapper } from '../../internal/CommonWrapper/index.js';
|
|
67
|
-
import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
|
|
68
63
|
import { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';
|
|
69
|
-
import {
|
|
70
|
-
import {
|
|
71
|
-
import {
|
|
72
|
-
import {
|
|
73
|
-
import {
|
|
74
|
-
import {
|
|
64
|
+
import { useKeyListener } from '../../lib/events/keyListener.js';
|
|
65
|
+
import { forwardRefAndName } from '../../lib/forwardRefAndName.js';
|
|
66
|
+
import { isBrowser } from '../../lib/globalObject.js';
|
|
67
|
+
import { useEmotion, useGlobal, useStyles } from '../../lib/renderEnvironment/index.js';
|
|
68
|
+
import { useSizeControl } from '../../lib/size/useSizeControl.js';
|
|
69
|
+
import { ThemeContext } from '../../lib/theming/ThemeContext.js';
|
|
70
|
+
import { getJsRowStyles, getJsStyles, getJsTileStyles, globalClasses } from './FileUploader.styles.js';
|
|
75
71
|
import { FileUploaderControlContext } from './FileUploaderControlContext.js';
|
|
76
|
-
import { FileUploaderFileStatus, getAttachedFile } from './fileUtils.js';
|
|
77
72
|
import { FileUploaderFile } from './FileUploaderFile.js';
|
|
73
|
+
import { FileUploaderFileList } from './FileUploaderFileList/FileUploaderFileList.js';
|
|
74
|
+
import { FileUploaderFileValidationResult } from './FileUploaderFileValidationResult.js';
|
|
75
|
+
import { FileUploaderFileStatus, getAttachedFile } from './fileUtils.js';
|
|
76
|
+
import { useControlLocale } from './hooks/useControlLocale.js';
|
|
77
|
+
import { useFileUploaderSize } from './hooks/useFileUploaderSize.js';
|
|
78
|
+
import { useUpload } from './hooks/useUpload.js';
|
|
78
79
|
import { UploadIcon } from './icons/UploadIcon.js';
|
|
79
|
-
import {
|
|
80
|
+
import { withFileUploaderControlProvider } from './withFileUploaderControlProvider.js';
|
|
80
81
|
var stopPropagation = function (e) { return e.stopPropagation(); };
|
|
81
82
|
export var FileUploaderDataTids = {
|
|
82
83
|
root: 'FileUploader__root',
|
|
@@ -95,14 +96,15 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
|
|
|
95
96
|
var jsRowStyles = useStyles(getJsRowStyles);
|
|
96
97
|
var jsTileStyles = useStyles(getJsTileStyles);
|
|
97
98
|
var keyListener = useKeyListener();
|
|
98
|
-
var disabled = props.disabled, error = props.error, warning = props.warning, _j = props.withValidationTooltip, withValidationTooltip = _j === void 0 ? false : _j, validationTooltipPosition = props.validationTooltipPosition, _k = props.withWarningIcon, withWarningIcon = _k === void 0 ? false : _k, _l = props.multiple, multiple = _l === void 0 ? false : _l, uploaderText = props.uploaderText, uploaderIcon = props.uploaderIcon, _m = props.view, view = _m === void 0 ? 'row' : _m, _o = props.uploadButtonPosition, uploadButtonPosition = _o === void 0 ? 'start' : _o, _p = props.validationSummary, validationSummary = _p === void 0 ? 'auto' : _p, _q = props.validationSummaryStart, validationSummaryStart = _q === void 0 ? 5 : _q, _r = props.width, width = _r === void 0 ? theme.fileUploaderWidth : _r, _s = props.hideFiles, hideFiles = _s === void 0 ? false : _s, onBlur = props.onBlur, onFocus = props.onFocus, onChange = props.onChange, request = props.request, validateBeforeUpload = props.validateBeforeUpload, onRequestSuccess = props.onRequestSuccess, onRequestError = props.onRequestError,
|
|
99
|
-
var
|
|
99
|
+
var disabled = props.disabled, error = props.error, warning = props.warning, _j = props.withValidationTooltip, withValidationTooltip = _j === void 0 ? false : _j, validationTooltipPosition = props.validationTooltipPosition, _k = props.withWarningIcon, withWarningIcon = _k === void 0 ? false : _k, _l = props.multiple, multiple = _l === void 0 ? false : _l, uploaderText = props.uploaderText, uploaderIcon = props.uploaderIcon, _m = props.view, view = _m === void 0 ? 'row' : _m, _o = props.uploadButtonPosition, uploadButtonPosition = _o === void 0 ? 'start' : _o, _p = props.validationSummary, validationSummary = _p === void 0 ? 'auto' : _p, _q = props.validationSummaryStart, validationSummaryStart = _q === void 0 ? 5 : _q, _r = props.width, width = _r === void 0 ? theme.fileUploaderWidth : _r, _s = props.hideFiles, hideFiles = _s === void 0 ? false : _s, onBlur = props.onBlur, onFocus = props.onFocus, onChange = props.onChange, request = props.request, validateBeforeUpload = props.validateBeforeUpload, onRequestSuccess = props.onRequestSuccess, onRequestError = props.onRequestError, sizeProp = props.size, _t = props.renderFile, renderFile = _t === void 0 ? defaultRenderFile : _t, inputProps = __rest(props, ["disabled", "error", "warning", "withValidationTooltip", "validationTooltipPosition", "withWarningIcon", "multiple", "uploaderText", "uploaderIcon", "view", "uploadButtonPosition", "validationSummary", "validationSummaryStart", "width", "hideFiles", "onBlur", "onFocus", "onChange", "request", "validateBeforeUpload", "onRequestSuccess", "onRequestError", "size", "renderFile"]);
|
|
100
|
+
var size = useSizeControl(sizeProp);
|
|
101
|
+
var _u = useContext(FileUploaderControlContext), files = _u.files, setFiles = _u.setFiles, removeFile = _u.removeFile, reset = _u.reset, setFileValidationResult = _u.setFileValidationResult;
|
|
100
102
|
var locale = useControlLocale();
|
|
101
103
|
var inputRef = useRef(null);
|
|
102
104
|
var fileDivRef = useRef(null);
|
|
103
105
|
var isAsync = !!request;
|
|
104
106
|
var isSingleMode = !multiple;
|
|
105
|
-
var
|
|
107
|
+
var _v = useState(false), hovered = _v[0], setHovered = _v[1];
|
|
106
108
|
var upload = useUpload(request, onRequestSuccess, onRequestError);
|
|
107
109
|
var tryValidateAndUpload = useCallback(function (files) {
|
|
108
110
|
files.forEach(function (file) { return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -204,8 +206,8 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
|
|
|
204
206
|
}
|
|
205
207
|
}
|
|
206
208
|
}, [handleChange, disabled]);
|
|
207
|
-
var
|
|
208
|
-
var
|
|
209
|
+
var _w = useDrop({ onDrop: handleDrop }), isDraggable = _w.isDraggable, labelRef = _w.ref;
|
|
210
|
+
var _x = useDrop(), isWindowDraggable = _x.isDraggable, windowRef = _x.ref;
|
|
209
211
|
if (isBrowser(globalObject)) {
|
|
210
212
|
windowRef.current = globalObject.document;
|
|
211
213
|
}
|
|
@@ -243,7 +245,7 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
|
|
|
243
245
|
removeFile: handleRemoveFile,
|
|
244
246
|
getRootNode: function () { return rootNodeRef.current; },
|
|
245
247
|
}); }, [ref, blur, focus, handleReset, handleRemoveFile]);
|
|
246
|
-
var
|
|
248
|
+
var _y = useState(false), focusedByTab = _y[0], setFocusedByTab = _y[1];
|
|
247
249
|
var handleInputChange = function (event) {
|
|
248
250
|
onChange === null || onChange === void 0 ? void 0 : onChange(event);
|
|
249
251
|
handleChange(event.target.files);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploader.js","sourceRoot":"","sources":["../../../components/FileUploader/FileUploader.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\nimport { useEmotion, useGlobal, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { isBrowser } from '../../lib/globalObject.js';\nimport type { InstanceWithRootNode } from '../../lib/rootNode/index.js';\nimport { useMemoObject } from '../../hooks/useMemoObject.js';\nimport { useDrop } from '../../hooks/useDrop.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { useKeyListener } from '../../lib/events/keyListener.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport type { PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup/index.js';\n\nimport { useFileUploaderSize } from './hooks/useFileUploaderSize.js';\nimport { FileUploaderFileValidationResult } from './FileUploaderFileValidationResult.js';\nimport { FileUploaderFileList } from './FileUploaderFileList/FileUploaderFileList.js';\nimport { withFileUploaderControlProvider } from './withFileUploaderControlProvider.js';\nimport type { FileUploaderControlProviderProps } from './FileUploaderControlProvider.js';\nimport { useUpload } from './hooks/useUpload.js';\nimport { useControlLocale } from './hooks/useControlLocale.js';\nimport { FileUploaderControlContext } from './FileUploaderControlContext.js';\nimport { FileUploaderFileStatus, getAttachedFile } from './fileUtils.js';\nimport type {\n FileUploaderAttachedFile,\n FileUploaderUploadButtonPosition,\n FileUploaderValidationSummary,\n FileUploaderView,\n} from './fileUtils.js';\nimport { FileUploaderFile } from './FileUploaderFile.js';\nimport type { FileUploaderFileProps } from './FileUploaderFile.js';\nimport { UploadIcon } from './icons/UploadIcon.js';\nimport { globalClasses, getJsStyles, getJsRowStyles, getJsTileStyles } from './FileUploader.styles.js';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps,\n Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n /** Состояние ошибки всего контрола */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\" */\n warning?: boolean;\n\n /** Задает приоритетное расположение подсказки относительно контрола\n * @default 'top left' */\n validationTooltipPosition?: ShortPopupPositionsType | PopupPositionsType;\n\n /** Использовать тултип для отображения валидации\n * @default false */\n withValidationTooltip?: boolean;\n\n /** Использовать иконку для ворнинга (восклицательный знак)\n * @default false */\n withWarningIcon?: boolean;\n\n /** Задает длину компонента. */\n width?: React.CSSProperties['width'];\n\n /** Задаёт размер контрола.\n * @default small */\n size?: SizeProp;\n\n /** Скрывает отображение файлов.\n * @default false */\n hideFiles?: boolean;\n\n /** Пользовательский текст для загрузки файла\n * @default 'Загрузить файл'\n */\n uploaderText?: string;\n\n /** Пользовательская иконка для загрузки файла\n * @default UploadIcon\n */\n uploaderIcon?: React.ReactNode;\n\n /** Вид компонента\n * - `row` — строчный вид\n * - `tile` — плиточный вид\n * @default row\n */\n view?: FileUploaderView;\n\n /** Отображать ли саммари с детализацией ошибок. Работает с версией темы >= 5_5.\n * - `auto` — саммари отображается, если количество загруженных файлов >= validationSummaryStart\n * - `enabled` — всегда включено\n * - `disabled` — всегда отключено\n * @default auto\n */\n validationSummary?: FileUploaderValidationSummary;\n\n /** Количество файлов, от которого показываем саммари (при validationSummary = `auto`)\n * @default 5 */\n validationSummaryStart?: number;\n\n /** Позиционирование области загрузки файла\n * @default start */\n uploadButtonPosition?: FileUploaderUploadButtonPosition;\n\n /** Задает функцию, через которую отправляются файлы. Используется для отслеживания статуса загрузки файла.\n * @param {FileUploaderAttachedFile} file - файл, статус загрузки которого необходимо отследить. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n\n /** Задает функцию, которая вызывается при удачной попытке отправки через request. */\n onRequestSuccess?: (fileId: string) => void;\n\n /** Задает функцию, которая вызывается при неудачной попытке отправки через request. */\n onRequestError?: (fileId: string) => void;\n\n /** Определяет функцию валидации каждого файла. Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку или объект с ошибкой.\n * @returns {Promise<Nullable<string | { message: string; status: FileUploaderFileStatus }>>} */\n validateBeforeUpload?: (\n file: FileUploaderAttachedFile,\n ) => Promise<Nullable<string | { message: string; status: FileUploaderFileStatus }>>;\n\n /**\n * Задает функцию, которая позволяет кастомизировать файлы. Через нее можно вешать кастомные валидации на каждый файл.\n * @default (props: FileUploaderFileProps) => <FileUploaderFile {...props} />\n * @param {FileUploaderFileProps} props - пропсы компонента `FileUploaderFile`, смотри примеры использования в документации.\n * @returns {ReactNode} элемент, который отрисовывает контент файла.\n */\n renderFile?: (props: FileUploaderFileProps) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n removeFile: (fileId: string) => void;\n}\n\nexport type FileUploader = FileUploaderRef;\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 = (props: FileUploaderFileProps) => <FileUploaderFile {...props} />;\n\nconst _FileUploader = forwardRefAndName<FileUploaderRef, _FileUploaderProps>('FileUploader', (props, ref) => {\n const theme = useContext(ThemeContext);\n const globalObject = useGlobal();\n const { cx } = useEmotion();\n const jsStyles = useStyles(getJsStyles);\n const jsRowStyles = useStyles(getJsRowStyles);\n const jsTileStyles = useStyles(getJsTileStyles);\n const keyListener = useKeyListener();\n\n const {\n disabled,\n error,\n warning,\n withValidationTooltip = false,\n validationTooltipPosition,\n withWarningIcon = false,\n multiple = false,\n uploaderText,\n uploaderIcon,\n view = 'row',\n uploadButtonPosition = 'start',\n validationSummary = 'auto',\n validationSummaryStart = 5,\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 } = 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 [hovered, setHovered] = useState(false);\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 if (typeof validationMessage === 'object') {\n setFileValidationResult(\n file.id,\n FileUploaderFileValidationResult.error(validationMessage.message),\n validationMessage.status,\n );\n } else {\n setFileValidationResult(\n file.id,\n FileUploaderFileValidationResult.error(validationMessage),\n FileUploaderFileStatus.Error,\n );\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n const isTileView = view === 'tile';\n const jsViewStyles = isTileView ? jsTileStyles : jsRowStyles;\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsViewStyles.sizeSmall(theme),\n medium: jsViewStyles.sizeMedium(theme),\n large: jsViewStyles.sizeLarge(theme),\n });\n\n const uploadButtonTileWithFileClassName = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonTileWithFileSmall(theme),\n medium: jsTileStyles.uploadButtonTileWithFileMedium(theme),\n large: jsTileStyles.uploadButtonTileWithFileLarge(theme),\n });\n\n const uploadButtonIconGapClass = useFileUploaderSize(size, {\n small: jsViewStyles.uploadButtonIconGapSmall(theme),\n medium: jsViewStyles.uploadButtonIconGapMedium(theme),\n large: jsViewStyles.uploadButtonIconGapLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: jsStyles.iconSmall(theme),\n medium: jsStyles.iconMedium(theme),\n large: jsStyles.iconLarge(theme),\n });\n\n const sizeWrapperClass = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonWrapperSmall(theme),\n medium: jsTileStyles.uploadButtonWrapperMedium(theme),\n large: jsTileStyles.uploadButtonWrapperLarge(theme),\n });\n\n const sizeWrapperEmptyFileClass = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonWrapperEmptyFileSmall(theme),\n medium: jsTileStyles.uploadButtonWrapperEmptyFileMedium(theme),\n large: jsTileStyles.uploadButtonWrapperEmptyFileLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: jsStyles.contentInnerSmall(theme),\n medium: jsStyles.contentInnerMedium(theme),\n large: jsStyles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles || !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: DragEvent) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n if (dataTransfer) {\n if (isSingleMode && dataTransfer.files.length > 1) {\n dataTransfer.dropEffect = 'none';\n return;\n }\n if (dataTransfer.files?.length > 0) {\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n handleChange(dataTransfer.files);\n }\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 const removeFileFromNativeInput = useCallback(\n (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 [files],\n );\n\n const handleRemoveFile = useCallback(\n (fileId: string) => {\n removeFile(fileId);\n removeFileFromNativeInput(fileId);\n },\n [removeFileFromNativeInput, removeFile],\n );\n\n const handleReset = useCallback(() => {\n reset();\n const dataTransfer = new DataTransfer();\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n }, [reset, handleRemoveFile]);\n\n useImperativeHandle(\n ref,\n () => ({\n focus,\n blur,\n reset: handleReset,\n removeFile: handleRemoveFile,\n getRootNode: () => rootNodeRef.current,\n }),\n [ref, blur, focus, handleReset, handleRemoveFile],\n );\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n setHovered(false);\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 hasFiles = files.length > 0;\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const hasError = !!error || files[0]?.status === FileUploaderFileStatus.Error;\n const hasWarning = !!warning || files[0]?.status === FileUploaderFileStatus.Warning;\n\n const uploadButtonClassNames = cx(\n jsStyles.uploadButton(theme),\n jsViewStyles.uploadButton(),\n sizeClassName,\n hasOneFileForSingle && jsViewStyles.uploadButtonWithFile(theme),\n focusedByTab && jsStyles.uploadButtonFocus(theme),\n disabled && {\n [jsStyles.disabled(theme)]: true,\n [jsStyles.disabledBackground(theme)]: !hasFiles,\n },\n (focusedByTab || !hasOneFileForSingle) && {\n [jsStyles.warningButton(theme)]: hasWarning,\n [jsStyles.errorButton(theme)]: hasError,\n },\n hasOneFileForSingle && {\n [uploadButtonTileWithFileClassName]: isTileView,\n [jsTileStyles.verticalAlign()]: isTileView,\n [jsStyles.warningFile(theme)]: (!isTileView || hovered) && hasWarning,\n [jsStyles.errorFile(theme)]: (!isTileView || hovered) && hasError,\n },\n !disabled &&\n hovered && {\n [jsStyles.hovered(theme)]: true,\n },\n isDraggable && !disabled && jsStyles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = cx(\n isTileView && {\n [sizeWrapperClass]: true,\n [sizeWrapperEmptyFileClass]: !hasOneFileForSingle,\n },\n jsViewStyles.uploadButtonWrapper(),\n canDrop && jsStyles.windowDragOver(theme),\n );\n\n const uploadButtonIconClassNames = cx(\n jsStyles.icon(theme),\n sizeIconClass,\n disabled && jsStyles.iconDisabled(theme),\n uploadButtonIconGapClass,\n );\n\n const rootClassNames = cx(jsStyles.root(theme), !isTileView && jsRowStyles.root());\n\n const contentClassNames = cx(jsViewStyles.content(), {\n [jsViewStyles.contentWithFiles()]: hasOneFileForSingle,\n [contentInnerClass]: !isTileView && (!files.length || !isSingleMode),\n });\n\n const afterLinkTextClassNames = cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? jsStyles.afterLinkText_HasFiles() : jsStyles.afterLinkText(),\n );\n\n const linkClassNames = cx(\n jsStyles.link(theme),\n !disabled && hovered && jsStyles.linkHovered(theme),\n disabled && jsStyles.linkDisabled(theme),\n );\n\n useEffect(() => {\n 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 icon = uploaderIcon ?? <UploadIcon size={size} view={view} />;\n const chooseFileText = uploaderText ?? locale.chooseFile;\n const chooseFileLocale = `${chooseFileText}${String.fromCharCode(0xa0)}`; /* */\n const hideUploaderText = isTileView && uploaderText === '';\n const renderChooseFileText = () =>\n !hideUploaderText && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {!hasOneFileForSingle && chooseFileLocale}\n </span>\n );\n\n const renderFileList = () => {\n return (\n !hideFiles &&\n !isSingleMode &&\n !!files.length && (\n <FileUploaderFileList\n renderFile={renderFile}\n size={size}\n view={view}\n onRemove={handleRemoveFile}\n validationTooltipPosition={validationTooltipPosition}\n withValidationTooltip={withValidationTooltip}\n validationSummary={validationSummary}\n validationSummaryStart={validationSummaryStart}\n withWarningIcon={withWarningIcon}\n disabled={disabled}\n />\n )\n );\n };\n\n const fileProps: FileUploaderFileProps = {\n file: files[0],\n size,\n view,\n onRemove: handleRemoveFile,\n error,\n warning,\n withValidationTooltip,\n validationTooltipPosition,\n withWarningIcon,\n hovered,\n disabled,\n };\n\n const fileElement = renderFile(fileProps);\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={rootClassNames}\n style={useMemoObject({ width: isTileView && !multiple ? theme.fileUploaderTileWidth : width })}\n ref={rootNodeRef}\n >\n {uploadButtonPosition === 'end' && renderFileList()}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n {!hasOneFileForSingle && <div className={uploadButtonIconClassNames}>{icon}</div>}\n <div data-tid={FileUploaderDataTids.content} className={contentClassNames}>\n {renderChooseFileText()}\n <div className={afterLinkTextClassNames}>\n {hasOneFileForSingle && (\n <div ref={fileDivRef} className={jsStyles.singleFile()}>\n {fileElement}\n </div>\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={jsStyles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </FocusControlWrapper>\n </label>\n </div>\n {uploadButtonPosition === 'start' && renderFileList()}\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\n/**\n * `FileUploader` — контрол для выбора пользователем файла на компьютере и отображения статуса его отправки на сервер.\n *\n * Можно использовать для синхронной отправки данных, например, в форме. Или же можно использовать в асинхронном режиме.\n */\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\n\nFileUploader.displayName = 'FileUploader';\n"]}
|
|
1
|
+
{"version":3,"file":"FileUploader.js","sourceRoot":"","sources":["../../../components/FileUploader/FileUploader.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useEffect, useImperativeHandle, useRef, useState } from 'react';\n\nimport { useDrop } from '../../hooks/useDrop.js';\nimport { useMemoObject } from '../../hooks/useMemoObject.js';\nimport type { CommonProps } from '../../internal/CommonWrapper/index.js';\nimport { CommonWrapper } from '../../internal/CommonWrapper/index.js';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper/index.js';\nimport type { PopupPositionsType, ShortPopupPositionsType } from '../../internal/Popup/index.js';\nimport { useKeyListener } from '../../lib/events/keyListener.js';\nimport { forwardRefAndName } from '../../lib/forwardRefAndName.js';\nimport { isBrowser } from '../../lib/globalObject.js';\nimport { useEmotion, useGlobal, useStyles } from '../../lib/renderEnvironment/index.js';\nimport type { InstanceWithRootNode } from '../../lib/rootNode/index.js';\nimport { useSizeControl } from '../../lib/size/useSizeControl.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { SizeProp } from '../../lib/types/props.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { getJsRowStyles, getJsStyles, getJsTileStyles, globalClasses } from './FileUploader.styles.js';\nimport { FileUploaderControlContext } from './FileUploaderControlContext.js';\nimport type { FileUploaderControlProviderProps } from './FileUploaderControlProvider.js';\nimport { FileUploaderFile } from './FileUploaderFile.js';\nimport type { FileUploaderFileProps } from './FileUploaderFile.js';\nimport { FileUploaderFileList } from './FileUploaderFileList/FileUploaderFileList.js';\nimport { FileUploaderFileValidationResult } from './FileUploaderFileValidationResult.js';\nimport type {\n FileUploaderAttachedFile,\n FileUploaderUploadButtonPosition,\n FileUploaderValidationSummary,\n FileUploaderView,\n} from './fileUtils.js';\nimport { FileUploaderFileStatus, getAttachedFile } from './fileUtils.js';\nimport { useControlLocale } from './hooks/useControlLocale.js';\nimport { useFileUploaderSize } from './hooks/useFileUploaderSize.js';\nimport { useUpload } from './hooks/useUpload.js';\nimport { UploadIcon } from './icons/UploadIcon.js';\nimport { withFileUploaderControlProvider } from './withFileUploaderControlProvider.js';\n\nconst stopPropagation: React.ReactEventHandler = (e) => e.stopPropagation();\n\ntype FileUploaderOverriddenProps = 'size';\n\ninterface _FileUploaderProps\n extends CommonProps, Omit<React.InputHTMLAttributes<HTMLInputElement>, FileUploaderOverriddenProps> {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n /** Состояние ошибки всего контрола */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\" */\n warning?: boolean;\n\n /** Задает приоритетное расположение подсказки относительно контрола\n * @default 'top left' */\n validationTooltipPosition?: ShortPopupPositionsType | PopupPositionsType;\n\n /** Использовать тултип для отображения валидации\n * @default false */\n withValidationTooltip?: boolean;\n\n /** Использовать иконку для ворнинга (восклицательный знак)\n * @default false */\n withWarningIcon?: boolean;\n\n /** Задает длину компонента. */\n width?: React.CSSProperties['width'];\n\n /** Задаёт размер контрола.\n * @default small */\n size?: SizeProp;\n\n /** Скрывает отображение файлов.\n * @default false */\n hideFiles?: boolean;\n\n /** Пользовательский текст для загрузки файла\n * @default 'Загрузить файл'\n */\n uploaderText?: string;\n\n /** Пользовательская иконка для загрузки файла\n * @default UploadIcon\n */\n uploaderIcon?: React.ReactNode;\n\n /** Вид компонента\n * - `row` — строчный вид\n * - `tile` — плиточный вид\n * @default row\n */\n view?: FileUploaderView;\n\n /** Отображать ли саммари с детализацией ошибок. Работает с версией темы >= 5_5.\n * - `auto` — саммари отображается, если количество загруженных файлов >= validationSummaryStart\n * - `enabled` — всегда включено\n * - `disabled` — всегда отключено\n * @default auto\n */\n validationSummary?: FileUploaderValidationSummary;\n\n /** Количество файлов, от которого показываем саммари (при validationSummary = `auto`)\n * @default 5 */\n validationSummaryStart?: number;\n\n /** Позиционирование области загрузки файла\n * @default start */\n uploadButtonPosition?: FileUploaderUploadButtonPosition;\n\n /** Задает функцию, через которую отправляются файлы. Используется для отслеживания статуса загрузки файла.\n * @param {FileUploaderAttachedFile} file - файл, статус загрузки которого необходимо отследить. */\n request?: (file: FileUploaderAttachedFile) => Promise<void>;\n\n /** Задает функцию, которая вызывается при удачной попытке отправки через request. */\n onRequestSuccess?: (fileId: string) => void;\n\n /** Задает функцию, которая вызывается при неудачной попытке отправки через request. */\n onRequestError?: (fileId: string) => void;\n\n /** Определяет функцию валидации каждого файла. Срабатывает после выбора файлов и перед попыткой отправить в request.\n * Чтобы вывести валидацию ошибки, промис должен вернуть строку или объект с ошибкой.\n * @returns {Promise<Nullable<string | { message: string; status: FileUploaderFileStatus }>>} */\n validateBeforeUpload?: (\n file: FileUploaderAttachedFile,\n ) => Promise<Nullable<string | { message: string; status: FileUploaderFileStatus }>>;\n\n /**\n * Задает функцию, которая позволяет кастомизировать файлы. Через нее можно вешать кастомные валидации на каждый файл.\n * @default (props: FileUploaderFileProps) => <FileUploaderFile {...props} />\n * @param {FileUploaderFileProps} props - пропсы компонента `FileUploaderFile`, смотри примеры использования в документации.\n * @returns {ReactNode} элемент, который отрисовывает контент файла.\n */\n renderFile?: (props: FileUploaderFileProps) => React.ReactNode;\n}\n\nexport interface FileUploaderRef extends InstanceWithRootNode {\n focus: () => void;\n blur: () => void;\n /** Сбрасывает выбранные файлы */\n reset: () => void;\n removeFile: (fileId: string) => void;\n}\n\nexport type FileUploader = FileUploaderRef;\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 = (props: FileUploaderFileProps) => <FileUploaderFile {...props} />;\n\nconst _FileUploader = forwardRefAndName<FileUploaderRef, _FileUploaderProps>('FileUploader', (props, ref) => {\n const theme = useContext(ThemeContext);\n const globalObject = useGlobal();\n const { cx } = useEmotion();\n const jsStyles = useStyles(getJsStyles);\n const jsRowStyles = useStyles(getJsRowStyles);\n const jsTileStyles = useStyles(getJsTileStyles);\n const keyListener = useKeyListener();\n\n const {\n disabled,\n error,\n warning,\n withValidationTooltip = false,\n validationTooltipPosition,\n withWarningIcon = false,\n multiple = false,\n uploaderText,\n uploaderIcon,\n view = 'row',\n uploadButtonPosition = 'start',\n validationSummary = 'auto',\n validationSummaryStart = 5,\n width = theme.fileUploaderWidth,\n hideFiles = false,\n onBlur,\n onFocus,\n onChange,\n request,\n validateBeforeUpload,\n onRequestSuccess,\n onRequestError,\n size: sizeProp,\n renderFile = defaultRenderFile,\n ...inputProps\n } = props;\n const size = useSizeControl(sizeProp);\n\n const { files, setFiles, removeFile, reset, setFileValidationResult } = 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 [hovered, setHovered] = useState(false);\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 if (typeof validationMessage === 'object') {\n setFileValidationResult(\n file.id,\n FileUploaderFileValidationResult.error(validationMessage.message),\n validationMessage.status,\n );\n } else {\n setFileValidationResult(\n file.id,\n FileUploaderFileValidationResult.error(validationMessage),\n FileUploaderFileStatus.Error,\n );\n }\n });\n },\n [validateBeforeUpload, isAsync, upload, setFileValidationResult],\n );\n\n const isTileView = view === 'tile';\n const jsViewStyles = isTileView ? jsTileStyles : jsRowStyles;\n\n const sizeClassName = useFileUploaderSize(size, {\n small: jsViewStyles.sizeSmall(theme),\n medium: jsViewStyles.sizeMedium(theme),\n large: jsViewStyles.sizeLarge(theme),\n });\n\n const uploadButtonTileWithFileClassName = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonTileWithFileSmall(theme),\n medium: jsTileStyles.uploadButtonTileWithFileMedium(theme),\n large: jsTileStyles.uploadButtonTileWithFileLarge(theme),\n });\n\n const uploadButtonIconGapClass = useFileUploaderSize(size, {\n small: jsViewStyles.uploadButtonIconGapSmall(theme),\n medium: jsViewStyles.uploadButtonIconGapMedium(theme),\n large: jsViewStyles.uploadButtonIconGapLarge(theme),\n });\n\n const sizeIconClass = useFileUploaderSize(size, {\n small: jsStyles.iconSmall(theme),\n medium: jsStyles.iconMedium(theme),\n large: jsStyles.iconLarge(theme),\n });\n\n const sizeWrapperClass = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonWrapperSmall(theme),\n medium: jsTileStyles.uploadButtonWrapperMedium(theme),\n large: jsTileStyles.uploadButtonWrapperLarge(theme),\n });\n\n const sizeWrapperEmptyFileClass = useFileUploaderSize(size, {\n small: jsTileStyles.uploadButtonWrapperEmptyFileSmall(theme),\n medium: jsTileStyles.uploadButtonWrapperEmptyFileMedium(theme),\n large: jsTileStyles.uploadButtonWrapperEmptyFileLarge(theme),\n });\n\n const contentInnerClass = useFileUploaderSize(size, {\n small: jsStyles.contentInnerSmall(theme),\n medium: jsStyles.contentInnerMedium(theme),\n large: jsStyles.contentInnerLarge(theme),\n });\n\n /** common part **/\n const handleChange = useCallback(\n (newFiles: FileList | null) => {\n if (!newFiles || !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: DragEvent) => {\n if (disabled) {\n return;\n }\n\n const { dataTransfer } = event;\n if (dataTransfer) {\n if (isSingleMode && dataTransfer.files.length > 1) {\n dataTransfer.dropEffect = 'none';\n return;\n }\n if (dataTransfer.files?.length > 0) {\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n handleChange(dataTransfer.files);\n }\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 const removeFileFromNativeInput = useCallback(\n (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 [files],\n );\n\n const handleRemoveFile = useCallback(\n (fileId: string) => {\n removeFile(fileId);\n removeFileFromNativeInput(fileId);\n },\n [removeFileFromNativeInput, removeFile],\n );\n\n const handleReset = useCallback(() => {\n reset();\n const dataTransfer = new DataTransfer();\n inputRef.current && (inputRef.current.files = dataTransfer.files);\n }, [reset, handleRemoveFile]);\n\n useImperativeHandle(\n ref,\n () => ({\n focus,\n blur,\n reset: handleReset,\n removeFile: handleRemoveFile,\n getRootNode: () => rootNodeRef.current,\n }),\n [ref, blur, focus, handleReset, handleRemoveFile],\n );\n\n const [focusedByTab, setFocusedByTab] = useState(false);\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event);\n handleChange(event.target.files);\n setHovered(false);\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 hasFiles = files.length > 0;\n const hasOneFile = files.length === 1;\n const hasOneFileForSingle = isSingleMode && hasOneFile && !hideFiles;\n\n const hasError = !!error || files[0]?.status === FileUploaderFileStatus.Error;\n const hasWarning = !!warning || files[0]?.status === FileUploaderFileStatus.Warning;\n\n const uploadButtonClassNames = cx(\n jsStyles.uploadButton(theme),\n jsViewStyles.uploadButton(),\n sizeClassName,\n hasOneFileForSingle && jsViewStyles.uploadButtonWithFile(theme),\n focusedByTab && jsStyles.uploadButtonFocus(theme),\n disabled && {\n [jsStyles.disabled(theme)]: true,\n [jsStyles.disabledBackground(theme)]: !hasFiles,\n },\n (focusedByTab || !hasOneFileForSingle) && {\n [jsStyles.warningButton(theme)]: hasWarning,\n [jsStyles.errorButton(theme)]: hasError,\n },\n hasOneFileForSingle && {\n [uploadButtonTileWithFileClassName]: isTileView,\n [jsTileStyles.verticalAlign()]: isTileView,\n [jsStyles.warningFile(theme)]: (!isTileView || hovered) && hasWarning,\n [jsStyles.errorFile(theme)]: (!isTileView || hovered) && hasError,\n },\n !disabled &&\n hovered && {\n [jsStyles.hovered(theme)]: true,\n },\n isDraggable && !disabled && jsStyles.dragOver(theme),\n );\n\n const canDrop = isWindowDraggable && !disabled;\n const uploadButtonWrapperClassNames = cx(\n isTileView && {\n [sizeWrapperClass]: true,\n [sizeWrapperEmptyFileClass]: !hasOneFileForSingle,\n },\n jsViewStyles.uploadButtonWrapper(),\n canDrop && jsStyles.windowDragOver(theme),\n );\n\n const uploadButtonIconClassNames = cx(\n jsStyles.icon(theme),\n sizeIconClass,\n disabled && jsStyles.iconDisabled(theme),\n uploadButtonIconGapClass,\n );\n\n const rootClassNames = cx(jsStyles.root(theme), !isTileView && jsRowStyles.root());\n\n const contentClassNames = cx(jsViewStyles.content(), {\n [jsViewStyles.contentWithFiles()]: hasOneFileForSingle,\n [contentInnerClass]: !isTileView && (!files.length || !isSingleMode),\n });\n\n const afterLinkTextClassNames = cx(\n globalClasses.afterLinkText,\n hasOneFileForSingle ? jsStyles.afterLinkText_HasFiles() : jsStyles.afterLinkText(),\n );\n\n const linkClassNames = cx(\n jsStyles.link(theme),\n !disabled && hovered && jsStyles.linkHovered(theme),\n disabled && jsStyles.linkDisabled(theme),\n );\n\n useEffect(() => {\n 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 icon = uploaderIcon ?? <UploadIcon size={size} view={view} />;\n const chooseFileText = uploaderText ?? locale.chooseFile;\n const chooseFileLocale = `${chooseFileText}${String.fromCharCode(0xa0)}`; /* */\n const hideUploaderText = isTileView && uploaderText === '';\n const renderChooseFileText = () =>\n !hideUploaderText && (\n <span data-tid={FileUploaderDataTids.link} className={linkClassNames}>\n {!hasOneFileForSingle && chooseFileLocale}\n </span>\n );\n\n const renderFileList = () => {\n return (\n !hideFiles &&\n !isSingleMode &&\n !!files.length && (\n <FileUploaderFileList\n renderFile={renderFile}\n size={size}\n view={view}\n onRemove={handleRemoveFile}\n validationTooltipPosition={validationTooltipPosition}\n withValidationTooltip={withValidationTooltip}\n validationSummary={validationSummary}\n validationSummaryStart={validationSummaryStart}\n withWarningIcon={withWarningIcon}\n disabled={disabled}\n />\n )\n );\n };\n\n const fileProps: FileUploaderFileProps = {\n file: files[0],\n size,\n view,\n onRemove: handleRemoveFile,\n error,\n warning,\n withValidationTooltip,\n validationTooltipPosition,\n withWarningIcon,\n hovered,\n disabled,\n };\n\n const fileElement = renderFile(fileProps);\n\n return (\n <CommonWrapper {...props}>\n <div\n data-tid={FileUploaderDataTids.root}\n className={rootClassNames}\n style={useMemoObject({ width: isTileView && !multiple ? theme.fileUploaderTileWidth : width })}\n ref={rootNodeRef}\n >\n {uploadButtonPosition === 'end' && renderFileList()}\n <div className={uploadButtonWrapperClassNames}>\n <label\n onMouseEnter={() => setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n ref={labelRef}\n className={uploadButtonClassNames}\n >\n {!hasOneFileForSingle && <div className={uploadButtonIconClassNames}>{icon}</div>}\n <div data-tid={FileUploaderDataTids.content} className={contentClassNames}>\n {renderChooseFileText()}\n <div className={afterLinkTextClassNames}>\n {hasOneFileForSingle && (\n <div ref={fileDivRef} className={jsStyles.singleFile()}>\n {fileElement}\n </div>\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={jsStyles.visuallyHidden()}\n onClick={stopPropagation}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n />\n </FocusControlWrapper>\n </label>\n </div>\n {uploadButtonPosition === 'start' && renderFileList()}\n </div>\n </CommonWrapper>\n );\n});\n\nexport interface FileUploaderProps extends _FileUploaderProps, FileUploaderControlProviderProps {}\n\n/**\n * `FileUploader` — контрол для выбора пользователем файла на компьютере и отображения статуса его отправки на сервер.\n *\n * Можно использовать для синхронной отправки данных, например, в форме. Или же можно использовать в асинхронном режиме.\n */\nexport const FileUploader = withFileUploaderControlProvider<FileUploaderProps, FileUploaderRef>(\n React.memo(_FileUploader),\n);\n\nFileUploader.displayName = 'FileUploader';\n"]}
|