@skbkontur/react-ui 4.0.0-beta.2 → 4.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/Button/Button.d.ts +1 -1
- package/cjs/components/Button/Button.js +4 -3
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +1 -0
- package/cjs/components/Button/Button.styles.js +41 -31
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +2 -2
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +31 -0
- package/cjs/components/FileUploader/FileUploader.js +266 -0
- package/cjs/components/FileUploader/FileUploader.js.map +1 -0
- package/cjs/components/FileUploader/FileUploader.md +67 -0
- package/cjs/components/FileUploader/FileUploader.styles.d.ts +20 -0
- package/cjs/components/FileUploader/FileUploader.styles.js +161 -0
- package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -0
- package/cjs/components/FileUploader/index.d.ts +4 -0
- package/cjs/components/FileUploader/index.js +4 -0
- package/cjs/components/FileUploader/index.js.map +1 -0
- package/cjs/components/FileUploader/locale/index.d.ts +4 -0
- package/cjs/components/FileUploader/locale/index.js +11 -0
- package/cjs/components/FileUploader/locale/index.js.map +1 -0
- package/cjs/components/FileUploader/locale/locales/en.d.ts +2 -0
- package/cjs/components/FileUploader/locale/locales/en.js +7 -0
- package/cjs/components/FileUploader/locale/locales/en.js.map +1 -0
- package/cjs/components/FileUploader/locale/locales/ru.d.ts +2 -0
- package/cjs/components/FileUploader/locale/locales/ru.js +7 -0
- package/cjs/components/FileUploader/locale/locales/ru.js.map +1 -0
- package/cjs/components/FileUploader/locale/types.d.ts +6 -0
- package/cjs/components/FileUploader/locale/types.js +1 -0
- package/cjs/components/FileUploader/locale/types.js.map +1 -0
- package/cjs/components/GlobalLoader/GlabalLoaderView.d.ts +8 -0
- package/cjs/components/GlobalLoader/GlabalLoaderView.js +44 -0
- package/cjs/components/GlobalLoader/GlabalLoaderView.js.map +1 -0
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +102 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +260 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -0
- package/cjs/components/GlobalLoader/GlobalLoader.md +92 -0
- package/cjs/components/GlobalLoader/GlobalLoaderView.styles.d.ts +13 -0
- package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +130 -0
- package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -0
- package/cjs/components/GlobalLoader/index.d.ts +1 -0
- package/cjs/components/GlobalLoader/index.js +1 -0
- package/cjs/components/GlobalLoader/index.js.map +1 -0
- package/cjs/components/Hint/Hint.d.ts +2 -1
- package/cjs/components/Hint/Hint.js +0 -16
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +2 -2
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.js +1 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Link/Link.styles.d.ts +1 -1
- package/cjs/components/Link/Link.styles.js +3 -3
- package/cjs/components/Link/Link.styles.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
- package/cjs/components/MenuItem/MenuItem.js +1 -4
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +1 -0
- package/cjs/components/Modal/Modal.styles.js +16 -8
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.js +1 -0
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePage.styles.d.ts +1 -0
- package/cjs/components/SidePage/SidePage.styles.js +14 -6
- package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.js +2 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +8 -0
- package/cjs/components/Spinner/Spinner.js +22 -3
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.md +1 -0
- package/cjs/components/Spinner/Spinner.styles.d.ts +2 -1
- package/cjs/components/Spinner/Spinner.styles.js +14 -11
- package/cjs/components/Spinner/Spinner.styles.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.js +4 -2
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +8 -21
- package/cjs/components/Tooltip/Tooltip.js +15 -28
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +2 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/hooks/useDrop.d.ts +11 -0
- package/cjs/hooks/useDrop.js +75 -0
- package/cjs/hooks/useDrop.js.map +1 -0
- package/cjs/hooks/useEffectWithoutInitCall.d.ts +2 -0
- package/cjs/hooks/useEffectWithoutInitCall.js +13 -0
- package/cjs/hooks/useEffectWithoutInitCall.js.map +1 -0
- package/cjs/hooks/useMemoObject.d.ts +1 -0
- package/cjs/hooks/useMemoObject.js +5 -0
- package/cjs/hooks/useMemoObject.js.map +1 -0
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +3 -1
- package/cjs/index.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +12 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +16 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +14 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +106 -0
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +10 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +183 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +11 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +68 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +4 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +24 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +4 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +17 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +7 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js +16 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +1 -0
- package/cjs/internal/FileUploaderControl/fileUtils.d.ts +14 -0
- package/cjs/internal/FileUploaderControl/fileUtils.js +26 -0
- package/cjs/internal/FileUploaderControl/fileUtils.js.map +1 -0
- package/cjs/internal/FileUploaderControl/hooks/useControlLocale.d.ts +1 -0
- package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js +4 -0
- package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js.map +1 -0
- package/cjs/internal/FileUploaderControl/hooks/useUpload.d.ts +3 -0
- package/cjs/internal/FileUploaderControl/hooks/useUpload.js +51 -0
- package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +1 -0
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +3 -0
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +19 -0
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -0
- package/cjs/internal/Popup/Popup.d.ts +5 -4
- package/cjs/internal/Popup/Popup.js +13 -24
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.d.ts +2 -2
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/Popup/types.d.ts +1 -0
- package/cjs/internal/Popup/types.js +1 -0
- package/cjs/internal/Popup/types.js.map +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +3 -3
- package/cjs/internal/PopupMenu/PopupMenu.js +18 -4
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/PopupMenu/validatePositions.d.ts +2 -2
- package/cjs/internal/PopupMenu/validatePositions.js +2 -4
- package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.d.ts +15 -0
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js +34 -0
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -0
- package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
- package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +23 -0
- package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -0
- package/cjs/internal/ThemePlayground/Playground.d.ts +1 -0
- package/cjs/internal/ThemePlayground/Playground.js +11 -4
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +0 -2
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +2 -8
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/constants.d.ts +1 -2
- package/cjs/internal/ThemePlayground/constants.js +3 -3
- package/cjs/internal/ThemePlayground/constants.js.map +1 -1
- package/cjs/internal/ThemePlayground/darkTheme.d.ts +14 -0
- package/cjs/internal/ThemePlayground/darkTheme.js +14 -0
- package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js +9 -6
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +4 -2
- package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.js +37 -22
- package/cjs/internal/ThemeShowcase/ThemeShowcase.styles.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndexStorage.d.ts +1 -0
- package/cjs/internal/ZIndex/ZIndexStorage.js +1 -0
- package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
- package/cjs/internal/icons/16px/index.d.ts +3 -0
- package/cjs/internal/icons/16px/index.js +44 -2
- package/cjs/internal/icons/16px/index.js.map +1 -1
- package/cjs/internal/icons/SpinnerIcon.d.ts +4 -1
- package/cjs/internal/icons/SpinnerIcon.js +5 -2
- package/cjs/internal/icons/SpinnerIcon.js.map +1 -1
- package/cjs/internal/themes/DarkTheme.d.ts +34 -0
- package/cjs/internal/themes/DarkTheme.js +55 -3
- package/cjs/internal/themes/DarkTheme.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +39 -3
- package/cjs/internal/themes/DefaultTheme.js +76 -15
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/internal/themes/OldColors.d.ts +6 -0
- package/cjs/internal/themes/OldColors.js +35 -17
- package/cjs/internal/themes/OldColors.js.map +1 -1
- package/cjs/lib/ModalStack.js +16 -17
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/locale/types.d.ts +2 -0
- package/cjs/lib/locale/types.js +2 -0
- package/cjs/lib/locale/types.js.map +1 -1
- package/cjs/lib/locale/useLocaleForControl.d.ts +3 -0
- package/cjs/lib/locale/useLocaleForControl.js +14 -0
- package/cjs/lib/locale/useLocaleForControl.js.map +1 -0
- package/cjs/lib/stringUtils.d.ts +1 -0
- package/cjs/lib/stringUtils.js +13 -0
- package/cjs/lib/stringUtils.js.map +1 -0
- package/cjs/lib/theming/AnimationKeyframes.js +1 -1
- package/cjs/lib/theming/AnimationKeyframes.js.map +1 -1
- package/cjs/lib/theming/useTheme.d.ts +1 -0
- package/cjs/lib/theming/useTheme.js +7 -0
- package/cjs/lib/theming/useTheme.js.map +1 -0
- package/cjs/lib/uidUtils.d.ts +1 -0
- package/cjs/lib/uidUtils.js +5 -0
- package/cjs/lib/uidUtils.js.map +1 -0
- package/cjs/lib/utils.d.ts +33 -0
- package/cjs/lib/utils.js +81 -3
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/typings/html-props.d.ts +123 -0
- package/components/Button/Button/Button.js +3 -7
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -1
- package/components/Button/Button.styles/Button.styles.js +34 -31
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +1 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +2 -2
- package/components/FileUploader/FileUploader/FileUploader.js +258 -0
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -0
- package/components/FileUploader/FileUploader/package.json +6 -0
- package/components/FileUploader/FileUploader.d.ts +31 -0
- package/components/FileUploader/FileUploader.md +67 -0
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +59 -0
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -0
- package/components/FileUploader/FileUploader.styles/package.json +6 -0
- package/components/FileUploader/FileUploader.styles.d.ts +20 -0
- package/components/FileUploader/index/index.js +3 -0
- package/components/FileUploader/index/index.js.map +1 -0
- package/components/FileUploader/index/package.json +6 -0
- package/components/FileUploader/index.d.ts +4 -0
- package/components/FileUploader/locale/index/index.js +8 -0
- package/components/FileUploader/locale/index/index.js.map +1 -0
- package/components/FileUploader/locale/index/package.json +6 -0
- package/components/FileUploader/locale/index.d.ts +4 -0
- package/components/FileUploader/locale/locales/en/en.js +6 -0
- package/components/FileUploader/locale/locales/en/en.js.map +1 -0
- package/components/FileUploader/locale/locales/en/package.json +6 -0
- package/components/FileUploader/locale/locales/en.d.ts +2 -0
- package/components/FileUploader/locale/locales/ru/package.json +6 -0
- package/components/FileUploader/locale/locales/ru/ru.js +6 -0
- package/components/FileUploader/locale/locales/ru/ru.js.map +1 -0
- package/components/FileUploader/locale/locales/ru.d.ts +2 -0
- package/components/FileUploader/locale/package.json +6 -0
- package/components/FileUploader/locale/types/package.json +6 -0
- package/components/FileUploader/locale/types/types.js +1 -0
- package/components/FileUploader/locale/types/types.js.map +1 -0
- package/components/FileUploader/locale/types.d.ts +6 -0
- package/components/FileUploader/package.json +6 -0
- package/components/GlobalLoader/GlabalLoaderView/GlabalLoaderView.js +30 -0
- package/components/GlobalLoader/GlabalLoaderView/GlabalLoaderView.js.map +1 -0
- package/components/GlobalLoader/GlabalLoaderView/package.json +6 -0
- package/components/GlobalLoader/GlabalLoaderView.d.ts +8 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +225 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -0
- package/components/GlobalLoader/GlobalLoader/package.json +6 -0
- package/components/GlobalLoader/GlobalLoader.d.ts +102 -0
- package/components/GlobalLoader/GlobalLoader.md +92 -0
- package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js +40 -0
- package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js.map +1 -0
- package/components/GlobalLoader/GlobalLoaderView.styles/package.json +6 -0
- package/components/GlobalLoader/GlobalLoaderView.styles.d.ts +13 -0
- package/components/GlobalLoader/index/index.js +1 -0
- package/components/GlobalLoader/index/index.js.map +1 -0
- package/components/GlobalLoader/index/package.json +6 -0
- package/components/GlobalLoader/index.d.ts +1 -0
- package/components/GlobalLoader/package.json +6 -0
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +2 -1
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +2 -2
- package/components/Link/Link/Link.js +1 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.styles/Link.styles.js +2 -2
- package/components/Link/Link.styles/Link.styles.js.map +1 -1
- package/components/Link/Link.styles.d.ts +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js +2 -7
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -1
- package/components/Modal/Modal.styles/Modal.styles.js +11 -8
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +1 -0
- package/components/Modal/ModalFooter/ModalFooter.js +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/SidePage/SidePage.styles/SidePage.styles.js +9 -6
- package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePage.styles.d.ts +1 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js +1 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/Spinner/Spinner/Spinner.js +5 -2
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +8 -0
- package/components/Spinner/Spinner.md +1 -0
- package/components/Spinner/Spinner.styles/Spinner.styles.js +13 -10
- package/components/Spinner/Spinner.styles/Spinner.styles.js.map +1 -1
- package/components/Spinner/Spinner.styles.d.ts +2 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js +3 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js +3 -3
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +8 -21
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +2 -2
- package/hooks/useDrop/package.json +6 -0
- package/hooks/useDrop/useDrop.js +57 -0
- package/hooks/useDrop/useDrop.js.map +1 -0
- package/hooks/useDrop.d.ts +11 -0
- package/hooks/useEffectWithoutInitCall/package.json +6 -0
- package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js +11 -0
- package/hooks/useEffectWithoutInitCall/useEffectWithoutInitCall.js.map +1 -0
- package/hooks/useEffectWithoutInitCall.d.ts +2 -0
- package/hooks/useMemoObject/package.json +6 -0
- package/hooks/useMemoObject/useMemoObject.js +6 -0
- package/hooks/useMemoObject/useMemoObject.js.map +1 -0
- package/hooks/useMemoObject.d.ts +1 -0
- package/index.d.ts +2 -0
- package/index.js +3 -1
- package/index.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js +2 -0
- package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +1 -0
- package/internal/FileUploaderControl/FileUploaderControlContext/package.json +6 -0
- package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +12 -0
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +85 -0
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -0
- package/internal/FileUploaderControl/FileUploaderControlProvider/package.json +6 -0
- package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +14 -0
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +177 -0
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -0
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/package.json +6 -0
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +10 -0
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +32 -0
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +1 -0
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/package.json +6 -0
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +11 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +23 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/package.json +6 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +4 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +11 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +1 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/package.json +6 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +4 -0
- package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js +16 -0
- package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js.map +1 -0
- package/internal/FileUploaderControl/FileUploaderFileValidationResult/package.json +6 -0
- package/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +7 -0
- package/internal/FileUploaderControl/fileUtils/fileUtils.js +19 -0
- package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +1 -0
- package/internal/FileUploaderControl/fileUtils/package.json +6 -0
- package/internal/FileUploaderControl/fileUtils.d.ts +14 -0
- package/internal/FileUploaderControl/hooks/useControlLocale/package.json +6 -0
- package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js +5 -0
- package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js.map +1 -0
- package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +1 -0
- package/internal/FileUploaderControl/hooks/useUpload/package.json +6 -0
- package/internal/FileUploaderControl/hooks/useUpload/useUpload.js +56 -0
- package/internal/FileUploaderControl/hooks/useUpload/useUpload.js.map +1 -0
- package/internal/FileUploaderControl/hooks/useUpload.d.ts +3 -0
- package/internal/FileUploaderControl/withFileUploaderControlProvider/package.json +6 -0
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +17 -0
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -0
- package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +3 -0
- package/internal/Popup/Popup/Popup.js +3 -2
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +5 -4
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/Popup/PopupHelper.d.ts +2 -2
- package/internal/Popup/types/package.json +6 -0
- package/internal/Popup/types/types.js +1 -0
- package/internal/Popup/types/types.js.map +1 -0
- package/internal/Popup/types.d.ts +1 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +4 -4
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +3 -3
- package/internal/PopupMenu/validatePositions/validatePositions.js +2 -2
- package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
- package/internal/PopupMenu/validatePositions.d.ts +2 -2
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +51 -0
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -0
- package/internal/TextWidthHelper/TextWidthHelper/package.json +6 -0
- package/internal/TextWidthHelper/TextWidthHelper.d.ts +15 -0
- package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js +14 -0
- package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js.map +1 -0
- package/internal/TextWidthHelper/TextWidthHelper.styles/package.json +6 -0
- package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
- package/internal/ThemePlayground/Playground/Playground.js +13 -8
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/Playground.d.ts +1 -0
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +0 -6
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground.d.ts +0 -2
- package/internal/ThemePlayground/constants/constants.js +3 -1
- package/internal/ThemePlayground/constants/constants.js.map +1 -1
- package/internal/ThemePlayground/constants.d.ts +1 -2
- package/internal/ThemePlayground/darkTheme/darkTheme.js +14 -0
- package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
- package/internal/ThemePlayground/darkTheme.d.ts +14 -0
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +7 -5
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/ThemeShowcase.styles/ThemeShowcase.styles.js +26 -20
- package/internal/ThemeShowcase/ThemeShowcase.styles/ThemeShowcase.styles.js.map +1 -1
- package/internal/ThemeShowcase/ThemeShowcase.styles.d.ts +4 -2
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +1 -0
- package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
- package/internal/ZIndex/ZIndexStorage.d.ts +1 -0
- package/internal/icons/16px/index/index.js +42 -0
- package/internal/icons/16px/index/index.js.map +1 -1
- package/internal/icons/16px/index.d.ts +3 -0
- package/internal/icons/SpinnerIcon/SpinnerIcon.js +5 -2
- package/internal/icons/SpinnerIcon/SpinnerIcon.js.map +1 -1
- package/internal/icons/SpinnerIcon.d.ts +4 -1
- package/internal/themes/DarkTheme/DarkTheme.js +65 -3
- package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/internal/themes/DarkTheme.d.ts +34 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js +104 -20
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +39 -3
- package/internal/themes/OldColors/OldColors.js +31 -19
- package/internal/themes/OldColors/OldColors.js.map +1 -1
- package/internal/themes/OldColors.d.ts +6 -0
- package/lib/ModalStack/ModalStack.js +9 -13
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/locale/types/types.js.map +1 -1
- package/lib/locale/types.d.ts +2 -0
- package/lib/locale/useLocaleForControl/package.json +6 -0
- package/lib/locale/useLocaleForControl/useLocaleForControl.js +12 -0
- package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -0
- package/lib/locale/useLocaleForControl.d.ts +3 -0
- package/lib/stringUtils/package.json +6 -0
- package/lib/stringUtils/stringUtils.js +12 -0
- package/lib/stringUtils/stringUtils.js.map +1 -0
- package/lib/stringUtils.d.ts +1 -0
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js +1 -1
- package/lib/theming/AnimationKeyframes/AnimationKeyframes.js.map +1 -1
- package/lib/theming/useTheme/package.json +6 -0
- package/lib/theming/useTheme/useTheme.js +5 -0
- package/lib/theming/useTheme/useTheme.js.map +1 -0
- package/lib/theming/useTheme.d.ts +1 -0
- package/lib/uidUtils/package.json +6 -0
- package/lib/uidUtils/uidUtils.js +4 -0
- package/lib/uidUtils/uidUtils.js.map +1 -0
- package/lib/uidUtils.d.ts +1 -0
- package/lib/utils/utils.js +84 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +33 -0
- package/package.json +4 -1
- package/typings/html-props.d.ts +123 -0
- package/cjs/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
- package/cjs/internal/PopupMenu/PopupMenuPositions.js +0 -15
- package/cjs/internal/PopupMenu/PopupMenuPositions.js.map +0 -1
- package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js +0 -1
- package/internal/PopupMenu/PopupMenuPositions/PopupMenuPositions.js.map +0 -1
- package/internal/PopupMenu/PopupMenuPositions/package.json +0 -6
- package/internal/PopupMenu/PopupMenuPositions.d.ts +0 -2
package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import React, { useCallback, useState } from 'react';
|
|
3
|
+
import { useMemoObject } from "../../../hooks/useMemoObject";
|
|
4
|
+
import { useEffectWithoutInitCall } from "../../../hooks/useEffectWithoutInitCall";
|
|
5
|
+
import { FileUploaderFileStatus } from "../fileUtils";
|
|
6
|
+
import { FileUploaderControlContext } from "../FileUploaderControlContext";
|
|
7
|
+
import { FileUploaderFileValidationResult } from "../FileUploaderFileValidationResult";
|
|
8
|
+
import { useControlLocale } from "../hooks/useControlLocale";
|
|
9
|
+
|
|
10
|
+
var updateFile = function updateFile(files, fileId, getFileUpdatedProps) {
|
|
11
|
+
var fileIndex = files.findIndex(function (file) {
|
|
12
|
+
return file.id === fileId;
|
|
13
|
+
});
|
|
14
|
+
if (fileIndex === -1) return files;
|
|
15
|
+
var newFiles = [].concat(files);
|
|
16
|
+
var file = files[fileIndex];
|
|
17
|
+
var updatedProps = getFileUpdatedProps(file);
|
|
18
|
+
newFiles[fileIndex] = _extends({}, file, updatedProps);
|
|
19
|
+
return newFiles;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export var FileUploaderControlProvider = function FileUploaderControlProvider(props) {
|
|
23
|
+
var children = props.children,
|
|
24
|
+
onValueChange = props.onValueChange,
|
|
25
|
+
onRemove = props.onRemove,
|
|
26
|
+
onAttach = props.onAttach;
|
|
27
|
+
|
|
28
|
+
var _useState = useState([]),
|
|
29
|
+
files = _useState[0],
|
|
30
|
+
setFiles = _useState[1];
|
|
31
|
+
|
|
32
|
+
var locale = useControlLocale();
|
|
33
|
+
useEffectWithoutInitCall(function () {
|
|
34
|
+
onValueChange == null ? void 0 : onValueChange(files);
|
|
35
|
+
}, [files]);
|
|
36
|
+
var setFileStatus = useCallback(function (fileId, status) {
|
|
37
|
+
setFiles(function (files) {
|
|
38
|
+
return updateFile(files, fileId, function (file) {
|
|
39
|
+
return {
|
|
40
|
+
status: status,
|
|
41
|
+
validationResult: status === FileUploaderFileStatus.Error ? FileUploaderFileValidationResult.error(locale.requestErrorText) : file.validationResult
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
}, [locale]);
|
|
46
|
+
var handleExternalSetFiles = useCallback(function (files) {
|
|
47
|
+
onAttach == null ? void 0 : onAttach(files);
|
|
48
|
+
setFiles(function (state) {
|
|
49
|
+
return [].concat(state, files);
|
|
50
|
+
});
|
|
51
|
+
}, [onAttach]);
|
|
52
|
+
var removeFile = useCallback(function (fileId) {
|
|
53
|
+
onRemove == null ? void 0 : onRemove(fileId);
|
|
54
|
+
setFiles(function (state) {
|
|
55
|
+
return state.filter(function (file) {
|
|
56
|
+
return file.id !== fileId;
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}, [onRemove]);
|
|
60
|
+
var setFileValidationResult = useCallback(function (fileId, validationResult) {
|
|
61
|
+
setFiles(function (files) {
|
|
62
|
+
return updateFile(files, fileId, function () {
|
|
63
|
+
return {
|
|
64
|
+
validationResult: validationResult
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}, []);
|
|
69
|
+
var reset = React.useCallback(function () {
|
|
70
|
+
setFiles(function () {
|
|
71
|
+
return [];
|
|
72
|
+
});
|
|
73
|
+
}, []);
|
|
74
|
+
return /*#__PURE__*/React.createElement(FileUploaderControlContext.Provider, {
|
|
75
|
+
value: useMemoObject({
|
|
76
|
+
setFileStatus: setFileStatus,
|
|
77
|
+
files: files,
|
|
78
|
+
setFiles: handleExternalSetFiles,
|
|
79
|
+
removeFile: removeFile,
|
|
80
|
+
setFileValidationResult: setFileValidationResult,
|
|
81
|
+
reset: reset
|
|
82
|
+
})
|
|
83
|
+
}, children);
|
|
84
|
+
};
|
|
85
|
+
FileUploaderControlProvider.displayName = 'FileUploaderControlProvider';
|
package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FileUploaderControlProvider.tsx"],"names":["React","useCallback","useState","useMemoObject","useEffectWithoutInitCall","FileUploaderFileStatus","FileUploaderControlContext","FileUploaderFileValidationResult","useControlLocale","updateFile","files","fileId","getFileUpdatedProps","fileIndex","findIndex","file","id","newFiles","updatedProps","FileUploaderControlProvider","props","children","onValueChange","onRemove","onAttach","setFiles","locale","setFileStatus","status","validationResult","Error","error","requestErrorText","handleExternalSetFiles","state","removeFile","filter","setFileValidationResult","reset","displayName"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useCallback, useState } from 'react';\n\nimport { useMemoObject } from '../../hooks/useMemoObject';\nimport { useEffectWithoutInitCall } from '../../hooks/useEffectWithoutInitCall';\n\nimport { FileUploaderAttachedFile, FileUploaderFileStatus } from './fileUtils';\nimport { FileUploaderControlContext } from './FileUploaderControlContext';\nimport { FileUploaderFileValidationResult } from './FileUploaderFileValidationResult';\nimport { useControlLocale } from './hooks/useControlLocale';\n\nexport interface FileUploaderControlProviderProps {\n /** Срабатывает при выборе файлов */\n onAttach?: (files: FileUploaderAttachedFile[]) => void;\n /** Срабатывает при удалении файла из контрола */\n onRemove?: (fileId: string) => void;\n /** Срабатывает при onAttach, onRemove и других изменениях файлов. В files передает текущее состояние всего списка файлов */\n onValueChange?: (files: FileUploaderAttachedFile[]) => void;\n}\n\nconst updateFile = (\n files: FileUploaderAttachedFile[],\n fileId: string,\n getFileUpdatedProps: (file: FileUploaderAttachedFile) => Partial<FileUploaderAttachedFile>,\n): FileUploaderAttachedFile[] => {\n const fileIndex = files.findIndex((file) => file.id === fileId);\n if (fileIndex === -1) return files;\n\n const newFiles = [...files];\n const file = files[fileIndex];\n\n const updatedProps = getFileUpdatedProps(file);\n\n newFiles[fileIndex] = {\n ...file,\n ...updatedProps,\n };\n\n return newFiles;\n};\n\nexport const FileUploaderControlProvider = (props: PropsWithChildren<FileUploaderControlProviderProps>) => {\n const { children, onValueChange, onRemove, onAttach } = props;\n\n const [files, setFiles] = useState<FileUploaderAttachedFile[]>([]);\n const locale = useControlLocale();\n\n useEffectWithoutInitCall(() => {\n onValueChange?.(files);\n }, [files]);\n\n const setFileStatus = useCallback(\n (fileId: string, status: FileUploaderFileStatus) => {\n setFiles((files) =>\n updateFile(files, fileId, (file) => ({\n status,\n validationResult:\n status === FileUploaderFileStatus.Error\n ? FileUploaderFileValidationResult.error(locale.requestErrorText)\n : file.validationResult,\n })),\n );\n },\n [locale],\n );\n\n const handleExternalSetFiles = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n onAttach?.(files);\n setFiles((state) => [...state, ...files]);\n },\n [onAttach],\n );\n\n const removeFile = useCallback(\n (fileId: string) => {\n onRemove?.(fileId);\n setFiles((state) => state.filter((file) => file.id !== fileId));\n },\n [onRemove],\n );\n\n const setFileValidationResult = useCallback((fileId: string, validationResult: FileUploaderFileValidationResult) => {\n setFiles((files) => updateFile(files, fileId, () => ({ validationResult })));\n }, []);\n\n const reset = React.useCallback(() => {\n setFiles(() => [] as FileUploaderAttachedFile[]);\n }, []);\n\n return (\n <FileUploaderControlContext.Provider\n value={useMemoObject({\n setFileStatus,\n files,\n setFiles: handleExternalSetFiles,\n removeFile,\n setFileValidationResult,\n reset,\n })}\n >\n {children}\n </FileUploaderControlContext.Provider>\n );\n};\n\nFileUploaderControlProvider.displayName = 'FileUploaderControlProvider';\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
import { FileUploaderAttachedFile } from './fileUtils';
|
|
3
|
+
export interface FileUploaderControlProviderProps {
|
|
4
|
+
/** Срабатывает при выборе файлов */
|
|
5
|
+
onAttach?: (files: FileUploaderAttachedFile[]) => void;
|
|
6
|
+
/** Срабатывает при удалении файла из контрола */
|
|
7
|
+
onRemove?: (fileId: string) => void;
|
|
8
|
+
/** Срабатывает при onAttach, onRemove и других изменениях файлов. В files передает текущее состояние всего списка файлов */
|
|
9
|
+
onValueChange?: (files: FileUploaderAttachedFile[]) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const FileUploaderControlProvider: {
|
|
12
|
+
(props: PropsWithChildren<FileUploaderControlProviderProps>): JSX.Element;
|
|
13
|
+
displayName: string;
|
|
14
|
+
};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
|
|
2
|
+
import { FileUploaderFileStatus } from "../../fileUtils";
|
|
3
|
+
import { formatBytes } from "../../../../lib/utils";
|
|
4
|
+
import { TextWidthHelper } from "../../../../internal/TextWidthHelper/TextWidthHelper";
|
|
5
|
+
import { truncate } from "../../../../lib/stringUtils";
|
|
6
|
+
import { Spinner } from "../../../../components/Spinner";
|
|
7
|
+
import { FileUploaderControlContext } from "../../FileUploaderControlContext";
|
|
8
|
+
import { Tooltip } from "../../../../components/Tooltip";
|
|
9
|
+
import { cx } from "../../../../lib/theming/Emotion";
|
|
10
|
+
import { ThemeContext } from "../../../../lib/theming/ThemeContext";
|
|
11
|
+
import { DeleteIcon, ErrorIcon, OkIcon } from "../../../icons/16px";
|
|
12
|
+
import { keyListener } from "../../../../lib/events/keyListener";
|
|
13
|
+
import { isKeyEnter } from "../../../../lib/events/keyboard/identifiers";
|
|
14
|
+
import { Hint } from "../../../../components/Hint";
|
|
15
|
+
import { jsStyles } from "../FileUploaderFile.styles";
|
|
16
|
+
|
|
17
|
+
var getTruncatedName = function getTruncatedName(fileNameWidth, fileNameElementWidth, name) {
|
|
18
|
+
if (!fileNameWidth && !fileNameElementWidth) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (fileNameWidth <= fileNameElementWidth) {
|
|
23
|
+
return name;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var charWidth = Math.ceil(fileNameWidth / name.length);
|
|
27
|
+
var maxCharsCountInSpan = Math.ceil(fileNameElementWidth / charWidth);
|
|
28
|
+
return truncate(name, maxCharsCountInSpan);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export var FileUploaderFile = function FileUploaderFile(props) {
|
|
32
|
+
var _cx, _cx2;
|
|
33
|
+
|
|
34
|
+
var file = props.file,
|
|
35
|
+
showSize = props.showSize;
|
|
36
|
+
var id = file.id,
|
|
37
|
+
originalFile = file.originalFile,
|
|
38
|
+
status = file.status,
|
|
39
|
+
validationResult = file.validationResult;
|
|
40
|
+
var name = originalFile.name,
|
|
41
|
+
size = originalFile.size;
|
|
42
|
+
|
|
43
|
+
var _useState = useState(false),
|
|
44
|
+
hovered = _useState[0],
|
|
45
|
+
setHovered = _useState[1];
|
|
46
|
+
|
|
47
|
+
var _useState2 = useState(false),
|
|
48
|
+
focusedByTab = _useState2[0],
|
|
49
|
+
setFocusedByTab = _useState2[1];
|
|
50
|
+
|
|
51
|
+
var _useState3 = useState(null),
|
|
52
|
+
truncatedFileName = _useState3[0],
|
|
53
|
+
setTruncatedFileName = _useState3[1];
|
|
54
|
+
|
|
55
|
+
var textHelperRef = useRef(null);
|
|
56
|
+
var fileNameElementRef = useRef(null);
|
|
57
|
+
|
|
58
|
+
var _useContext = useContext(FileUploaderControlContext),
|
|
59
|
+
removeFile = _useContext.removeFile;
|
|
60
|
+
|
|
61
|
+
var theme = useContext(ThemeContext);
|
|
62
|
+
var formattedSize = useMemo(function () {
|
|
63
|
+
return formatBytes(size, 1);
|
|
64
|
+
}, [size]); // важно запустить после рендера, чтобы успели проставиться рефы
|
|
65
|
+
|
|
66
|
+
useEffect(function () {
|
|
67
|
+
var _textHelperRef$curren, _fileNameElementRef$c;
|
|
68
|
+
|
|
69
|
+
var fileNameWidth = ((_textHelperRef$curren = textHelperRef.current) == null ? void 0 : _textHelperRef$curren.getTextWidth()) || 0;
|
|
70
|
+
var fileNameElementWidth = ((_fileNameElementRef$c = fileNameElementRef.current) == null ? void 0 : _fileNameElementRef$c.getBoundingClientRect().width) || 0;
|
|
71
|
+
var truncatedName = getTruncatedName(fileNameWidth, fileNameElementWidth, name);
|
|
72
|
+
setTruncatedFileName(truncatedName);
|
|
73
|
+
}, [name]);
|
|
74
|
+
var removeUploadFile = useCallback(function () {
|
|
75
|
+
removeFile(id);
|
|
76
|
+
}, [removeFile, id]);
|
|
77
|
+
var handleRemove = useCallback(function (event) {
|
|
78
|
+
event.preventDefault();
|
|
79
|
+
event.stopPropagation();
|
|
80
|
+
removeUploadFile();
|
|
81
|
+
}, [removeUploadFile]);
|
|
82
|
+
var isValid = validationResult.isValid,
|
|
83
|
+
message = validationResult.message;
|
|
84
|
+
var icon = useMemo(function () {
|
|
85
|
+
var deleteIcon = /*#__PURE__*/React.createElement(DeleteIcon, {
|
|
86
|
+
className: jsStyles.deleteIcon(theme)
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
if (hovered || focusedByTab) {
|
|
90
|
+
return deleteIcon;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
switch (status) {
|
|
94
|
+
case FileUploaderFileStatus.Loading:
|
|
95
|
+
return /*#__PURE__*/React.createElement(Spinner, {
|
|
96
|
+
type: "mini",
|
|
97
|
+
dimmed: true,
|
|
98
|
+
caption: ""
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
case FileUploaderFileStatus.Uploaded:
|
|
102
|
+
return /*#__PURE__*/React.createElement(OkIcon, {
|
|
103
|
+
color: theme.fileUploaderIconColor
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
default:
|
|
107
|
+
if (!isValid) {
|
|
108
|
+
return /*#__PURE__*/React.createElement(ErrorIcon, null);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
return deleteIcon;
|
|
112
|
+
}
|
|
113
|
+
}, [hovered, status, isValid, theme, focusedByTab]);
|
|
114
|
+
var renderTooltipContent = useCallback(function () {
|
|
115
|
+
return isValid ? null : message;
|
|
116
|
+
}, [isValid, message]);
|
|
117
|
+
var contentClassNames = cx(jsStyles.content(), (_cx = {}, _cx[jsStyles.error(theme)] = !isValid, _cx));
|
|
118
|
+
var handleMouseEnter = useCallback(function () {
|
|
119
|
+
setHovered(true);
|
|
120
|
+
}, []);
|
|
121
|
+
var handleMouseLeave = useCallback(function () {
|
|
122
|
+
setHovered(false);
|
|
123
|
+
}, []);
|
|
124
|
+
var handleFocus = useCallback(function () {
|
|
125
|
+
// focus event fires before keyDown eventlistener
|
|
126
|
+
// so we should check tabPressed in async way
|
|
127
|
+
requestAnimationFrame(function () {
|
|
128
|
+
if (keyListener.isTabPressed) {
|
|
129
|
+
setFocusedByTab(true);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}, []);
|
|
133
|
+
var handleBlur = useCallback(function () {
|
|
134
|
+
setFocusedByTab(false);
|
|
135
|
+
}, []);
|
|
136
|
+
var handleIconKeyDown = useCallback(function (e) {
|
|
137
|
+
if (isKeyEnter(e)) {
|
|
138
|
+
removeUploadFile();
|
|
139
|
+
}
|
|
140
|
+
}, [removeUploadFile]);
|
|
141
|
+
var iconClassNames = cx(jsStyles.icon(theme), (_cx2 = {}, _cx2[jsStyles.focusedIcon(theme)] = focusedByTab, _cx2));
|
|
142
|
+
var isTruncated = truncatedFileName !== name;
|
|
143
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
144
|
+
"data-tid": "FileUploader__file",
|
|
145
|
+
className: jsStyles.root(),
|
|
146
|
+
onMouseEnter: handleMouseEnter,
|
|
147
|
+
onMouseLeave: handleMouseLeave
|
|
148
|
+
}, /*#__PURE__*/React.createElement(Tooltip, {
|
|
149
|
+
"data-tid": "FileUploader__fileTooltip",
|
|
150
|
+
pos: "right middle",
|
|
151
|
+
render: renderTooltipContent
|
|
152
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
153
|
+
className: contentClassNames
|
|
154
|
+
}, /*#__PURE__*/React.createElement(TextWidthHelper, {
|
|
155
|
+
ref: textHelperRef,
|
|
156
|
+
text: name
|
|
157
|
+
}), /*#__PURE__*/React.createElement(Hint, {
|
|
158
|
+
maxWidth: '100%',
|
|
159
|
+
text: isTruncated ? name : null
|
|
160
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
161
|
+
"data-tid": "FileUploader__fileName",
|
|
162
|
+
ref: fileNameElementRef,
|
|
163
|
+
className: jsStyles.name()
|
|
164
|
+
}, truncatedFileName)), !!showSize && formattedSize && /*#__PURE__*/React.createElement("span", {
|
|
165
|
+
"data-tid": "FileUploader__fileSize",
|
|
166
|
+
className: jsStyles.size()
|
|
167
|
+
}, formattedSize), /*#__PURE__*/React.createElement("div", {
|
|
168
|
+
className: iconClassNames,
|
|
169
|
+
"data-tid": "FileUploader__fileIcon",
|
|
170
|
+
tabIndex: 0,
|
|
171
|
+
onClick: handleRemove,
|
|
172
|
+
onFocus: handleFocus,
|
|
173
|
+
onBlur: handleBlur,
|
|
174
|
+
onKeyDown: handleIconKeyDown
|
|
175
|
+
}, icon))));
|
|
176
|
+
};
|
|
177
|
+
FileUploaderFile.displayName = 'FileUploaderFile';
|
package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FileUploaderFile.tsx"],"names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","FileUploaderFileStatus","formatBytes","TextWidthHelper","truncate","Spinner","FileUploaderControlContext","Tooltip","cx","ThemeContext","DeleteIcon","ErrorIcon","OkIcon","keyListener","isKeyEnter","Hint","jsStyles","getTruncatedName","fileNameWidth","fileNameElementWidth","name","charWidth","Math","ceil","length","maxCharsCountInSpan","FileUploaderFile","props","file","showSize","id","originalFile","status","validationResult","size","hovered","setHovered","focusedByTab","setFocusedByTab","truncatedFileName","setTruncatedFileName","textHelperRef","fileNameElementRef","removeFile","theme","formattedSize","current","getTextWidth","getBoundingClientRect","width","truncatedName","removeUploadFile","handleRemove","event","preventDefault","stopPropagation","isValid","message","icon","deleteIcon","Loading","Uploaded","fileUploaderIconColor","renderTooltipContent","contentClassNames","content","error","handleMouseEnter","handleMouseLeave","handleFocus","requestAnimationFrame","isTabPressed","handleBlur","handleIconKeyDown","e","iconClassNames","focusedIcon","isTruncated","root","displayName"],"mappings":"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","sourcesContent":["import React, { ReactNode, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { FileUploaderAttachedFile, FileUploaderFileStatus } from '../fileUtils';\nimport { formatBytes } from '../../../lib/utils';\nimport { TextWidthHelper } from '../../../internal/TextWidthHelper/TextWidthHelper';\nimport { truncate } from '../../../lib/stringUtils';\nimport { Spinner } from '../../../components/Spinner';\nimport { FileUploaderControlContext } from '../FileUploaderControlContext';\nimport { Tooltip } from '../../../components/Tooltip';\nimport { cx } from '../../../lib/theming/Emotion';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\nimport { DeleteIcon, ErrorIcon, OkIcon } from '../../icons/16px';\nimport { keyListener } from '../../../lib/events/keyListener';\nimport { isKeyEnter } from '../../../lib/events/keyboard/identifiers';\nimport { Nullable } from '../../../typings/utility-types';\nimport { Hint } from '../../../components/Hint';\n\nimport { jsStyles } from './FileUploaderFile.styles';\n\ninterface FileUploaderFileProps {\n file: FileUploaderAttachedFile;\n showSize?: boolean;\n}\n\nconst getTruncatedName = (fileNameWidth: number, fileNameElementWidth: number, name: string) => {\n if (!fileNameWidth && !fileNameElementWidth) {\n return null;\n }\n\n if (fileNameWidth <= fileNameElementWidth) {\n return name;\n }\n\n const charWidth = Math.ceil(fileNameWidth / name.length);\n const maxCharsCountInSpan = Math.ceil(fileNameElementWidth / charWidth);\n\n return truncate(name, maxCharsCountInSpan);\n};\n\nexport const FileUploaderFile = (props: FileUploaderFileProps) => {\n const { file, showSize } = props;\n const { id, originalFile, status, validationResult } = file;\n const { name, size } = originalFile;\n\n const [hovered, setHovered] = useState<boolean>(false);\n const [focusedByTab, setFocusedByTab] = useState(false);\n const [truncatedFileName, setTruncatedFileName] = useState<Nullable<string>>(null);\n\n const textHelperRef = useRef<TextWidthHelper>(null);\n const fileNameElementRef = useRef<HTMLSpanElement>(null);\n\n const { removeFile } = useContext(FileUploaderControlContext);\n const theme = useContext(ThemeContext);\n\n const formattedSize = useMemo(() => formatBytes(size, 1), [size]);\n\n // важно запустить после рендера, чтобы успели проставиться рефы\n useEffect(() => {\n const fileNameWidth = textHelperRef.current?.getTextWidth() || 0;\n const fileNameElementWidth = fileNameElementRef.current?.getBoundingClientRect().width || 0;\n const truncatedName = getTruncatedName(fileNameWidth, fileNameElementWidth, name);\n\n setTruncatedFileName(truncatedName);\n }, [name]);\n\n const removeUploadFile = useCallback(() => {\n removeFile(id);\n }, [removeFile, id]);\n\n const handleRemove = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n event.preventDefault();\n event.stopPropagation();\n removeUploadFile();\n },\n [removeUploadFile],\n );\n\n const { isValid, message } = validationResult;\n\n const icon: ReactNode = useMemo(() => {\n const deleteIcon = <DeleteIcon className={jsStyles.deleteIcon(theme)} />;\n\n if (hovered || focusedByTab) {\n return deleteIcon;\n }\n\n switch (status) {\n case FileUploaderFileStatus.Loading:\n return <Spinner type=\"mini\" dimmed caption=\"\" />;\n case FileUploaderFileStatus.Uploaded:\n return <OkIcon color={theme.fileUploaderIconColor} />;\n default:\n if (!isValid) {\n return <ErrorIcon />;\n }\n return deleteIcon;\n }\n }, [hovered, status, isValid, theme, focusedByTab]);\n\n const renderTooltipContent = useCallback((): ReactNode => {\n return isValid ? null : message;\n }, [isValid, message]);\n\n const contentClassNames = cx(jsStyles.content(), {\n [jsStyles.error(theme)]: !isValid,\n });\n\n const handleMouseEnter = useCallback(() => {\n setHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setHovered(false);\n }, []);\n\n const handleFocus = useCallback(() => {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n setFocusedByTab(true);\n }\n });\n }, []);\n\n const handleBlur = useCallback(() => {\n setFocusedByTab(false);\n }, []);\n\n const handleIconKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (isKeyEnter(e)) {\n removeUploadFile();\n }\n },\n [removeUploadFile],\n );\n\n const iconClassNames = cx(jsStyles.icon(theme), {\n [jsStyles.focusedIcon(theme)]: focusedByTab,\n });\n\n const isTruncated = truncatedFileName !== name;\n\n return (\n <div\n data-tid=\"FileUploader__file\"\n className={jsStyles.root()}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <Tooltip data-tid=\"FileUploader__fileTooltip\" pos=\"right middle\" render={renderTooltipContent}>\n <div className={contentClassNames}>\n <TextWidthHelper ref={textHelperRef} text={name} />\n <Hint maxWidth={'100%'} text={isTruncated ? name : null}>\n <span data-tid=\"FileUploader__fileName\" ref={fileNameElementRef} className={jsStyles.name()}>\n {truncatedFileName}\n </span>\n </Hint>\n {!!showSize && formattedSize && (\n <span data-tid=\"FileUploader__fileSize\" className={jsStyles.size()}>\n {formattedSize}\n </span>\n )}\n <div\n className={iconClassNames}\n data-tid=\"FileUploader__fileIcon\"\n tabIndex={0}\n onClick={handleRemove}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleIconKeyDown}\n >\n {icon}\n </div>\n </div>\n </Tooltip>\n </div>\n );\n};\n\nFileUploaderFile.displayName = 'FileUploaderFile';\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FileUploaderAttachedFile } from '../fileUtils';
|
|
2
|
+
interface FileUploaderFileProps {
|
|
3
|
+
file: FileUploaderAttachedFile;
|
|
4
|
+
showSize?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const FileUploaderFile: {
|
|
7
|
+
(props: FileUploaderFileProps): JSX.Element;
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
2
|
+
|
|
3
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
|
|
4
|
+
|
|
5
|
+
import { css, memoizeStyle } from "../../../../lib/theming/Emotion";
|
|
6
|
+
var styles = {
|
|
7
|
+
root: function root() {
|
|
8
|
+
return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n width: 100%;\n "])));
|
|
9
|
+
},
|
|
10
|
+
content: function content() {
|
|
11
|
+
return css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteralLoose(["\n display: flex;\n width: 100%;\n align-items: center;\n position: relative;\n "])));
|
|
12
|
+
},
|
|
13
|
+
error: function error(t) {
|
|
14
|
+
return css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteralLoose(["\n color: ", ";\n "])), t.fileUploaderBorderColorError);
|
|
15
|
+
},
|
|
16
|
+
name: function name() {
|
|
17
|
+
return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n flex: 1 1 100%;\n overflow: hidden;\n "])));
|
|
18
|
+
},
|
|
19
|
+
size: function size() {
|
|
20
|
+
return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n margin-left: 28px;\n flex: 1 0 auto;\n "])));
|
|
21
|
+
},
|
|
22
|
+
icon: function icon(t) {
|
|
23
|
+
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteralLoose(["\n width: 16px;\n margin-left: 23px;\n flex: 1 0 auto;\n cursor: pointer;\n font-size: ", ";\n text-align: right;\n outline: none;\n "])), t.fileUploaderIconSize);
|
|
24
|
+
},
|
|
25
|
+
deleteIcon: function deleteIcon(t) {
|
|
26
|
+
return css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteralLoose(["\n color: ", ";\n &:hover {\n color: ", ";\n }\n "])), t.fileUploaderIconColor, t.fileUploaderIconHoverColor);
|
|
27
|
+
},
|
|
28
|
+
focusedIcon: function focusedIcon(t) {
|
|
29
|
+
return css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteralLoose(["\n outline: 1px solid ", ";\n "])), t.borderColorFocus);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
export var jsStyles = memoizeStyle(styles);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FileUploaderFile.styles.ts"],"names":["css","memoizeStyle","styles","root","content","error","t","fileUploaderBorderColorError","name","size","icon","fileUploaderIconSize","deleteIcon","fileUploaderIconColor","fileUploaderIconHoverColor","focusedIcon","borderColorFocus","jsStyles"],"mappings":"kPAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,8BAAlC;;;AAGA,IAAMC,MAAM,GAAG;AACbC,EAAAA,IADa,kBACN;AACL,WAAOH,GAAP;;;AAGD,GALY;;AAObI,EAAAA,OAPa,qBAOH;AACR,WAAOJ,GAAP;;;;;;AAMD,GAdY;;AAgBbK,EAAAA,KAhBa,iBAgBPC,CAhBO,EAgBG;AACd,WAAON,GAAP;AACWM,IAAAA,CAAC,CAACC,4BADb;;AAGD,GApBY;;AAsBbC,EAAAA,IAtBa,kBAsBN;AACL,WAAOR,GAAP;;;;AAID,GA3BY;;AA6BbS,EAAAA,IA7Ba,kBA6BN;AACL,WAAOT,GAAP;;;;AAID,GAlCY;;AAoCbU,EAAAA,IApCa,gBAoCRJ,CApCQ,EAoCE;AACb,WAAON,GAAP;;;;;AAKeM,IAAAA,CAAC,CAACK,oBALjB;;;;AASD,GA9CY;;AAgDbC,EAAAA,UAhDa,sBAgDFN,CAhDE,EAgDQ;AACnB,WAAON,GAAP;AACWM,IAAAA,CAAC,CAACO,qBADb;;AAGaP,IAAAA,CAAC,CAACQ,0BAHf;;;AAMD,GAvDY;;AAyDbC,EAAAA,WAzDa,uBAyDDT,CAzDC,EAyDS;AACpB,WAAON,GAAP;AACuBM,IAAAA,CAAC,CAACU,gBADzB;;AAGD,GA7DY,EAAf;;;AAgEA,OAAO,IAAMC,QAAQ,GAAGhB,YAAY,CAACC,MAAD,CAA7B","sourcesContent":["import { css, memoizeStyle } from '../../../lib/theming/Emotion';\nimport { Theme } from '../../../lib/theming/Theme';\n\nconst styles = {\n root() {\n return css`\n width: 100%;\n `;\n },\n\n content() {\n return css`\n display: flex;\n width: 100%;\n align-items: center;\n position: relative;\n `;\n },\n\n error(t: Theme) {\n return css`\n color: ${t.fileUploaderBorderColorError};\n `;\n },\n\n name() {\n return css`\n flex: 1 1 100%;\n overflow: hidden;\n `;\n },\n\n size() {\n return css`\n margin-left: 28px;\n flex: 1 0 auto;\n `;\n },\n\n icon(t: Theme) {\n return css`\n width: 16px;\n margin-left: 23px;\n flex: 1 0 auto;\n cursor: pointer;\n font-size: ${t.fileUploaderIconSize};\n text-align: right;\n outline: none;\n `;\n },\n\n deleteIcon(t: Theme) {\n return css`\n color: ${t.fileUploaderIconColor};\n &:hover {\n color: ${t.fileUploaderIconHoverColor};\n }\n `;\n },\n\n focusedIcon(t: Theme) {\n return css`\n outline: 1px solid ${t.borderColorFocus};\n `;\n },\n};\n\nexport const jsStyles = memoizeStyle(styles);\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Theme } from '../../../lib/theming/Theme';
|
|
2
|
+
export declare const jsStyles: {
|
|
3
|
+
root(): string;
|
|
4
|
+
content(): string;
|
|
5
|
+
error(t: Theme): string;
|
|
6
|
+
name(): string;
|
|
7
|
+
size(): string;
|
|
8
|
+
icon(t: Theme): string;
|
|
9
|
+
deleteIcon(t: Theme): string;
|
|
10
|
+
focusedIcon(t: Theme): string;
|
|
11
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import { FileUploaderControlContext } from "../../FileUploaderControlContext";
|
|
3
|
+
import { ThemeContext } from "../../../../lib/theming/ThemeContext";
|
|
4
|
+
import { FileUploaderFile } from "../../FileUploaderFile/FileUploaderFile";
|
|
5
|
+
import { jsStyles } from "../FileUploaderFileList.styles";
|
|
6
|
+
export var FileUploaderFileList = function FileUploaderFileList() {
|
|
7
|
+
var _useContext = useContext(FileUploaderControlContext),
|
|
8
|
+
files = _useContext.files;
|
|
9
|
+
|
|
10
|
+
var theme = useContext(ThemeContext);
|
|
11
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
12
|
+
"data-tid": "FileUploader__fileList"
|
|
13
|
+
}, files.map(function (file) {
|
|
14
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
15
|
+
key: file.id,
|
|
16
|
+
className: jsStyles.fileWrapper(theme)
|
|
17
|
+
}, /*#__PURE__*/React.createElement(FileUploaderFile, {
|
|
18
|
+
file: file,
|
|
19
|
+
showSize: true
|
|
20
|
+
}));
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
FileUploaderFileList.displayName = 'FileUploaderFileList';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FileUploaderFileList.tsx"],"names":["React","useContext","FileUploaderControlContext","ThemeContext","FileUploaderFile","jsStyles","FileUploaderFileList","files","theme","map","file","id","fileWrapper","displayName"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;;AAEA,SAASC,0BAAT,QAA2C,+BAA3C;AACA,SAASC,YAAT,QAA6B,mCAA7B;AACA,SAASC,gBAAT,QAAiC,sCAAjC;;AAEA,SAASC,QAAT,QAAyB,+BAAzB;;AAEA,OAAO,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACxC,oBAAkBL,UAAU,CAACC,0BAAD,CAA5B,CAAQK,KAAR,eAAQA,KAAR;AACA,MAAMC,KAAK,GAAGP,UAAU,CAACE,YAAD,CAAxB;;AAEA;AACE,iCAAK,YAAS,wBAAd;AACGI,IAAAA,KAAK,CAACE,GAAN,CAAU,UAACC,IAAD;AACT,qCAAK,GAAG,EAAEA,IAAI,CAACC,EAAf,EAAmB,SAAS,EAAEN,QAAQ,CAACO,WAAT,CAAqBJ,KAArB,CAA9B;AACE,4BAAC,gBAAD,IAAkB,IAAI,EAAEE,IAAxB,EAA8B,QAAQ,MAAtC,GADF,CADS,GAAV,CADH,CADF;;;;;AASD,CAbM;;AAePJ,oBAAoB,CAACO,WAArB,GAAmC,sBAAnC","sourcesContent":["import React, { useContext } from 'react';\n\nimport { FileUploaderControlContext } from '../FileUploaderControlContext';\nimport { ThemeContext } from '../../../lib/theming/ThemeContext';\nimport { FileUploaderFile } from '../FileUploaderFile/FileUploaderFile';\n\nimport { jsStyles } from './FileUploaderFileList.styles';\n\nexport const FileUploaderFileList = () => {\n const { files } = useContext(FileUploaderControlContext);\n const theme = useContext(ThemeContext);\n\n return (\n <div data-tid=\"FileUploader__fileList\">\n {files.map((file) => (\n <div key={file.id} className={jsStyles.fileWrapper(theme)}>\n <FileUploaderFile file={file} showSize />\n </div>\n ))}\n </div>\n );\n};\n\nFileUploaderFileList.displayName = 'FileUploaderFileList';\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
|
|
2
|
+
|
|
3
|
+
var _templateObject;
|
|
4
|
+
|
|
5
|
+
import { css, memoizeStyle } from "../../../../lib/theming/Emotion";
|
|
6
|
+
var styles = {
|
|
7
|
+
fileWrapper: function fileWrapper(t) {
|
|
8
|
+
return css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n width: 100%;\n height: 32px;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n padding: ", " ", ";\n "])), t.fileUploaderPaddingY, t.fileUploaderPaddingX);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
export var jsStyles = memoizeStyle(styles);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FileUploaderFileList.styles.ts"],"names":["css","memoizeStyle","styles","fileWrapper","t","fileUploaderPaddingY","fileUploaderPaddingX","jsStyles"],"mappings":"oHAAA,SAASA,GAAT,EAAcC,YAAd,QAAkC,8BAAlC;;;AAGA,IAAMC,MAAM,GAAG;AACbC,EAAAA,WADa,uBACDC,CADC,EACS;AACpB,WAAOJ,GAAP;;;;;;AAMaI,IAAAA,CAAC,CAACC,oBANf,EAMuCD,CAAC,CAACE,oBANzC;;AAQD,GAVY,EAAf;;;AAaA,OAAO,IAAMC,QAAQ,GAAGN,YAAY,CAACC,MAAD,CAA7B","sourcesContent":["import { css, memoizeStyle } from '../../../lib/theming/Emotion';\nimport { Theme } from '../../../lib/theming/Theme';\n\nconst styles = {\n fileWrapper(t: Theme) {\n return css`\n width: 100%;\n height: 32px;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n padding: ${t.fileUploaderPaddingY} ${t.fileUploaderPaddingX};\n `;\n },\n};\n\nexport const jsStyles = memoizeStyle(styles);\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export var FileUploaderFileValidationResult = /*#__PURE__*/function () {
|
|
2
|
+
function FileUploaderFileValidationResult(isValid, message) {
|
|
3
|
+
this.isValid = isValid;
|
|
4
|
+
this.message = message;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
FileUploaderFileValidationResult.error = function error(message) {
|
|
8
|
+
return new FileUploaderFileValidationResult(false, message);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
FileUploaderFileValidationResult.ok = function ok() {
|
|
12
|
+
return new FileUploaderFileValidationResult(true);
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
return FileUploaderFileValidationResult;
|
|
16
|
+
}();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["FileUploaderFileValidationResult.ts"],"names":["FileUploaderFileValidationResult","isValid","message","error","ok"],"mappings":"AAAA,WAAaA,gCAAb;;;;AAIE,4CAAYC,OAAZ,EAA8BC,OAA9B,EAAgD;AAC9C,SAAKD,OAAL,GAAeA,OAAf;AACA,SAAKC,OAAL,GAAeA,OAAf;AACD,GAPH;;AASSC,EAAAA,KATT,GASE,eAAaD,OAAb,EAAgE;AAC9D,WAAO,IAAIF,gCAAJ,CAAqC,KAArC,EAA4CE,OAA5C,CAAP;AACD,GAXH;;AAaSE,EAAAA,EAbT,GAaE,cAA8C;AAC5C,WAAO,IAAIJ,gCAAJ,CAAqC,IAArC,CAAP;AACD,GAfH","sourcesContent":["export class FileUploaderFileValidationResult {\n readonly isValid: boolean;\n readonly message?: string;\n\n constructor(isValid: boolean, message?: string) {\n this.isValid = isValid;\n this.message = message;\n }\n\n static error(message: string): FileUploaderFileValidationResult {\n return new FileUploaderFileValidationResult(false, message);\n }\n\n static ok(): FileUploaderFileValidationResult {\n return new FileUploaderFileValidationResult(true);\n }\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class FileUploaderFileValidationResult {
|
|
2
|
+
readonly isValid: boolean;
|
|
3
|
+
readonly message?: string;
|
|
4
|
+
constructor(isValid: boolean, message?: string);
|
|
5
|
+
static error(message: string): FileUploaderFileValidationResult;
|
|
6
|
+
static ok(): FileUploaderFileValidationResult;
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { getUid } from "../../../lib/uidUtils";
|
|
2
|
+
import { FileUploaderFileValidationResult } from "../FileUploaderFileValidationResult";
|
|
3
|
+
export var FileUploaderFileStatus;
|
|
4
|
+
|
|
5
|
+
(function (FileUploaderFileStatus) {
|
|
6
|
+
FileUploaderFileStatus["Attached"] = "Attached";
|
|
7
|
+
FileUploaderFileStatus["Loading"] = "Loading";
|
|
8
|
+
FileUploaderFileStatus["Uploaded"] = "Uploaded";
|
|
9
|
+
FileUploaderFileStatus["Error"] = "Error";
|
|
10
|
+
})(FileUploaderFileStatus || (FileUploaderFileStatus = {}));
|
|
11
|
+
|
|
12
|
+
export var getAttachedFile = function getAttachedFile(file) {
|
|
13
|
+
return {
|
|
14
|
+
id: getUid(),
|
|
15
|
+
originalFile: file,
|
|
16
|
+
status: FileUploaderFileStatus.Attached,
|
|
17
|
+
validationResult: FileUploaderFileValidationResult.ok()
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["fileUtils.ts"],"names":["getUid","FileUploaderFileValidationResult","FileUploaderFileStatus","getAttachedFile","file","id","originalFile","status","Attached","validationResult","ok"],"mappings":"AAAA,SAASA,MAAT,QAAuB,oBAAvB;;AAEA,SAASC,gCAAT,QAAiD,oCAAjD;;AAEA,WAAYC,sBAAZ,C,WAAYA,sB,GAAAA,sB,0BAAAA,sB,wBAAAA,sB,0BAAAA,sB,uBAAAA,sB,KAAAA,sB;;;;;;;;;;;;;;AAcZ,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,IAAD,EAA0C;AACvE,SAAO;AACLC,IAAAA,EAAE,EAAEL,MAAM,EADL;AAELM,IAAAA,YAAY,EAAEF,IAFT;AAGLG,IAAAA,MAAM,EAAEL,sBAAsB,CAACM,QAH1B;AAILC,IAAAA,gBAAgB,EAAER,gCAAgC,CAACS,EAAjC,EAJb,EAAP;;AAMD,CAPM","sourcesContent":["import { getUid } from '../../lib/uidUtils';\n\nimport { FileUploaderFileValidationResult } from './FileUploaderFileValidationResult';\n\nexport enum FileUploaderFileStatus {\n Attached = 'Attached',\n Loading = 'Loading',\n Uploaded = 'Uploaded',\n Error = 'Error',\n}\n\nexport interface FileUploaderAttachedFile {\n id: string;\n originalFile: File;\n status: FileUploaderFileStatus;\n validationResult: FileUploaderFileValidationResult;\n}\n\nexport const getAttachedFile = (file: File): FileUploaderAttachedFile => {\n return {\n id: getUid(),\n originalFile: file,\n status: FileUploaderFileStatus.Attached,\n validationResult: FileUploaderFileValidationResult.ok(),\n };\n};\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FileUploaderFileValidationResult } from './FileUploaderFileValidationResult';
|
|
2
|
+
export declare enum FileUploaderFileStatus {
|
|
3
|
+
Attached = "Attached",
|
|
4
|
+
Loading = "Loading",
|
|
5
|
+
Uploaded = "Uploaded",
|
|
6
|
+
Error = "Error"
|
|
7
|
+
}
|
|
8
|
+
export interface FileUploaderAttachedFile {
|
|
9
|
+
id: string;
|
|
10
|
+
originalFile: File;
|
|
11
|
+
status: FileUploaderFileStatus;
|
|
12
|
+
validationResult: FileUploaderFileValidationResult;
|
|
13
|
+
}
|
|
14
|
+
export declare const getAttachedFile: (file: File) => FileUploaderAttachedFile;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { useLocaleForControl } from "../../../../lib/locale/useLocaleForControl";
|
|
2
|
+
import { FileUploaderLocaleHelper } from "../../../../components/FileUploader/locale";
|
|
3
|
+
export var useControlLocale = function useControlLocale() {
|
|
4
|
+
return useLocaleForControl('FileUploader', FileUploaderLocaleHelper);
|
|
5
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useControlLocale.ts"],"names":["useLocaleForControl","FileUploaderLocaleHelper","useControlLocale"],"mappings":"AAAA,SAASA,mBAAT,QAAoC,yCAApC;AACA,SAASC,wBAAT,QAAyC,yCAAzC;;AAEA,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,WAAMF,mBAAmB,CAAC,cAAD,EAAiBC,wBAAjB,CAAzB,EAAzB","sourcesContent":["import { useLocaleForControl } from '../../../lib/locale/useLocaleForControl';\nimport { FileUploaderLocaleHelper } from '../../../components/FileUploader/locale';\n\nexport const useControlLocale = () => useLocaleForControl('FileUploader', FileUploaderLocaleHelper);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useControlLocale: () => import("../../../components/FileUploader/locale").FileUploaderLocale;
|