@skbkontur/react-ui 3.9.2-radiogroup.2 → 3.10.0-fileuploader.2

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.
Files changed (249) hide show
  1. package/cjs/components/FileUploader/FileUploader.d.ts +31 -0
  2. package/cjs/components/FileUploader/FileUploader.js +265 -0
  3. package/cjs/components/FileUploader/FileUploader.js.map +1 -0
  4. package/cjs/components/FileUploader/FileUploader.md +67 -0
  5. package/cjs/components/FileUploader/FileUploader.styles.d.ts +19 -0
  6. package/cjs/components/FileUploader/FileUploader.styles.js +159 -0
  7. package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -0
  8. package/cjs/components/FileUploader/index.d.ts +4 -0
  9. package/cjs/components/FileUploader/index.js +4 -0
  10. package/cjs/components/FileUploader/index.js.map +1 -0
  11. package/cjs/components/FileUploader/locale/index.d.ts +4 -0
  12. package/cjs/components/FileUploader/locale/index.js +11 -0
  13. package/cjs/components/FileUploader/locale/index.js.map +1 -0
  14. package/cjs/components/FileUploader/locale/locales/en.d.ts +2 -0
  15. package/cjs/components/FileUploader/locale/locales/en.js +7 -0
  16. package/cjs/components/FileUploader/locale/locales/en.js.map +1 -0
  17. package/cjs/components/FileUploader/locale/locales/ru.d.ts +2 -0
  18. package/cjs/components/FileUploader/locale/locales/ru.js +7 -0
  19. package/cjs/components/FileUploader/locale/locales/ru.js.map +1 -0
  20. package/cjs/components/FileUploader/locale/types.d.ts +6 -0
  21. package/cjs/components/FileUploader/locale/types.js +1 -0
  22. package/cjs/components/FileUploader/locale/types.js.map +1 -0
  23. package/cjs/components/RadioGroup/RadioGroup.d.ts +23 -0
  24. package/cjs/components/RadioGroup/RadioGroup.js +25 -1
  25. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  26. package/cjs/components/SidePage/SidePage.d.ts +0 -1
  27. package/cjs/components/SidePage/SidePage.js +1 -3
  28. package/cjs/components/SidePage/SidePage.js.map +1 -1
  29. package/cjs/hooks/useDrop.d.ts +11 -0
  30. package/cjs/hooks/useDrop.js +75 -0
  31. package/cjs/hooks/useDrop.js.map +1 -0
  32. package/cjs/hooks/useMemoObject.d.ts +1 -0
  33. package/cjs/hooks/useMemoObject.js +5 -0
  34. package/cjs/hooks/useMemoObject.js.map +1 -0
  35. package/cjs/index.d.ts +1 -0
  36. package/cjs/index.js +1 -0
  37. package/cjs/index.js.map +1 -1
  38. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.d.ts +12 -0
  39. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js +16 -0
  40. package/cjs/internal/FileUploaderControl/FileUploaderControlContext.js.map +1 -0
  41. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +14 -0
  42. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +124 -0
  43. package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -0
  44. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +10 -0
  45. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +178 -0
  46. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -0
  47. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +11 -0
  48. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js +66 -0
  49. package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.js.map +1 -0
  50. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +4 -0
  51. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +24 -0
  52. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -0
  53. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +4 -0
  54. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js +17 -0
  55. package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.js.map +1 -0
  56. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +7 -0
  57. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js +16 -0
  58. package/cjs/internal/FileUploaderControl/FileUploaderFileValidationResult.js.map +1 -0
  59. package/cjs/internal/FileUploaderControl/fileUtils.d.ts +14 -0
  60. package/cjs/internal/FileUploaderControl/fileUtils.js +26 -0
  61. package/cjs/internal/FileUploaderControl/fileUtils.js.map +1 -0
  62. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.d.ts +1 -0
  63. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js +4 -0
  64. package/cjs/internal/FileUploaderControl/hooks/useControlLocale.js.map +1 -0
  65. package/cjs/internal/FileUploaderControl/hooks/useUpload.d.ts +3 -0
  66. package/cjs/internal/FileUploaderControl/hooks/useUpload.js +51 -0
  67. package/cjs/internal/FileUploaderControl/hooks/useUpload.js.map +1 -0
  68. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +3 -0
  69. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +18 -0
  70. package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -0
  71. package/cjs/internal/TextWidthHelper/TextWidthHelper.d.ts +15 -0
  72. package/cjs/internal/TextWidthHelper/TextWidthHelper.js +34 -0
  73. package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -0
  74. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
  75. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js +23 -0
  76. package/cjs/internal/TextWidthHelper/TextWidthHelper.styles.js.map +1 -0
  77. package/cjs/internal/ThemePlayground/Playground.d.ts +1 -0
  78. package/cjs/internal/ThemePlayground/Playground.js +11 -1
  79. package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
  80. package/cjs/internal/ThemePlayground/darkTheme.d.ts +15 -0
  81. package/cjs/internal/ThemePlayground/darkTheme.js +25 -1
  82. package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
  83. package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  84. package/cjs/internal/icons/16px/index.d.ts +3 -0
  85. package/cjs/internal/icons/16px/index.js +38 -2
  86. package/cjs/internal/icons/16px/index.js.map +1 -1
  87. package/cjs/internal/themes/DefaultTheme.d.ts +23 -0
  88. package/cjs/internal/themes/DefaultTheme.js +64 -1
  89. package/cjs/internal/themes/DefaultTheme.js.map +1 -1
  90. package/cjs/lib/guidUtils.d.ts +1 -0
  91. package/cjs/lib/guidUtils.js +5 -0
  92. package/cjs/lib/guidUtils.js.map +1 -0
  93. package/cjs/lib/locale/types.d.ts +2 -0
  94. package/cjs/lib/locale/types.js +2 -0
  95. package/cjs/lib/locale/types.js.map +1 -1
  96. package/cjs/lib/locale/useLocaleForControl.d.ts +3 -0
  97. package/cjs/lib/locale/useLocaleForControl.js +14 -0
  98. package/cjs/lib/locale/useLocaleForControl.js.map +1 -0
  99. package/cjs/lib/stringUtils.d.ts +1 -0
  100. package/cjs/lib/stringUtils.js +13 -0
  101. package/cjs/lib/stringUtils.js.map +1 -0
  102. package/cjs/lib/utils.d.ts +1 -0
  103. package/cjs/lib/utils.js +20 -2
  104. package/cjs/lib/utils.js.map +1 -1
  105. package/components/FileUploader/FileUploader/FileUploader.js +241 -0
  106. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -0
  107. package/components/FileUploader/FileUploader/package.json +6 -0
  108. package/components/FileUploader/FileUploader.d.ts +31 -0
  109. package/components/FileUploader/FileUploader.md +67 -0
  110. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +56 -0
  111. package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -0
  112. package/components/FileUploader/FileUploader.styles/package.json +6 -0
  113. package/components/FileUploader/FileUploader.styles.d.ts +19 -0
  114. package/components/FileUploader/index/index.js +3 -0
  115. package/components/FileUploader/index/index.js.map +1 -0
  116. package/components/FileUploader/index/package.json +6 -0
  117. package/components/FileUploader/index.d.ts +4 -0
  118. package/components/FileUploader/locale/index/index.js +8 -0
  119. package/components/FileUploader/locale/index/index.js.map +1 -0
  120. package/components/FileUploader/locale/index/package.json +6 -0
  121. package/components/FileUploader/locale/index.d.ts +4 -0
  122. package/components/FileUploader/locale/locales/en/en.js +6 -0
  123. package/components/FileUploader/locale/locales/en/en.js.map +1 -0
  124. package/components/FileUploader/locale/locales/en/package.json +6 -0
  125. package/components/FileUploader/locale/locales/en.d.ts +2 -0
  126. package/components/FileUploader/locale/locales/ru/package.json +6 -0
  127. package/components/FileUploader/locale/locales/ru/ru.js +6 -0
  128. package/components/FileUploader/locale/locales/ru/ru.js.map +1 -0
  129. package/components/FileUploader/locale/locales/ru.d.ts +2 -0
  130. package/components/FileUploader/locale/package.json +6 -0
  131. package/components/FileUploader/locale/types/package.json +6 -0
  132. package/components/FileUploader/locale/types/types.js +0 -0
  133. package/components/FileUploader/locale/types/types.js.map +1 -0
  134. package/components/FileUploader/locale/types.d.ts +6 -0
  135. package/components/FileUploader/package.json +6 -0
  136. package/components/RadioGroup/RadioGroup/RadioGroup.js +13 -0
  137. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  138. package/components/RadioGroup/RadioGroup.d.ts +23 -0
  139. package/components/SidePage/SidePage/SidePage.js +0 -2
  140. package/components/SidePage/SidePage/SidePage.js.map +1 -1
  141. package/components/SidePage/SidePage.d.ts +0 -1
  142. package/hooks/useDrop/package.json +6 -0
  143. package/hooks/useDrop/useDrop.js +57 -0
  144. package/hooks/useDrop/useDrop.js.map +1 -0
  145. package/hooks/useDrop.d.ts +11 -0
  146. package/hooks/useMemoObject/package.json +6 -0
  147. package/hooks/useMemoObject/useMemoObject.js +6 -0
  148. package/hooks/useMemoObject/useMemoObject.js.map +1 -0
  149. package/hooks/useMemoObject.d.ts +1 -0
  150. package/index.d.ts +1 -0
  151. package/index.js +1 -0
  152. package/index.js.map +1 -1
  153. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js +2 -0
  154. package/internal/FileUploaderControl/FileUploaderControlContext/FileUploaderControlContext.js.map +1 -0
  155. package/internal/FileUploaderControl/FileUploaderControlContext/package.json +6 -0
  156. package/internal/FileUploaderControl/FileUploaderControlContext.d.ts +12 -0
  157. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +91 -0
  158. package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -0
  159. package/internal/FileUploaderControl/FileUploaderControlProvider/package.json +6 -0
  160. package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +14 -0
  161. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +172 -0
  162. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -0
  163. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/package.json +6 -0
  164. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +10 -0
  165. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js +32 -0
  166. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/FileUploaderFile.styles.js.map +1 -0
  167. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles/package.json +6 -0
  168. package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.styles.d.ts +11 -0
  169. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +23 -0
  170. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -0
  171. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/package.json +6 -0
  172. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +4 -0
  173. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js +11 -0
  174. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/FileUploaderFileList.styles.js.map +1 -0
  175. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles/package.json +6 -0
  176. package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.styles.d.ts +4 -0
  177. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js +18 -0
  178. package/internal/FileUploaderControl/FileUploaderFileValidationResult/FileUploaderFileValidationResult.js.map +1 -0
  179. package/internal/FileUploaderControl/FileUploaderFileValidationResult/package.json +6 -0
  180. package/internal/FileUploaderControl/FileUploaderFileValidationResult.d.ts +7 -0
  181. package/internal/FileUploaderControl/fileUtils/fileUtils.js +19 -0
  182. package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +1 -0
  183. package/internal/FileUploaderControl/fileUtils/package.json +6 -0
  184. package/internal/FileUploaderControl/fileUtils.d.ts +14 -0
  185. package/internal/FileUploaderControl/hooks/useControlLocale/package.json +6 -0
  186. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js +5 -0
  187. package/internal/FileUploaderControl/hooks/useControlLocale/useControlLocale.js.map +1 -0
  188. package/internal/FileUploaderControl/hooks/useControlLocale.d.ts +1 -0
  189. package/internal/FileUploaderControl/hooks/useUpload/package.json +6 -0
  190. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js +56 -0
  191. package/internal/FileUploaderControl/hooks/useUpload/useUpload.js.map +1 -0
  192. package/internal/FileUploaderControl/hooks/useUpload.d.ts +3 -0
  193. package/internal/FileUploaderControl/withFileUploaderControlProvider/package.json +6 -0
  194. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +16 -0
  195. package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -0
  196. package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +3 -0
  197. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +51 -0
  198. package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -0
  199. package/internal/TextWidthHelper/TextWidthHelper/package.json +6 -0
  200. package/internal/TextWidthHelper/TextWidthHelper.d.ts +15 -0
  201. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js +14 -0
  202. package/internal/TextWidthHelper/TextWidthHelper.styles/TextWidthHelper.styles.js.map +1 -0
  203. package/internal/TextWidthHelper/TextWidthHelper.styles/package.json +6 -0
  204. package/internal/TextWidthHelper/TextWidthHelper.styles.d.ts +4 -0
  205. package/internal/ThemePlayground/Playground/Playground.js +11 -1
  206. package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
  207. package/internal/ThemePlayground/Playground.d.ts +1 -0
  208. package/internal/ThemePlayground/darkTheme/darkTheme.js +26 -1
  209. package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
  210. package/internal/ThemePlayground/darkTheme.d.ts +15 -0
  211. package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
  212. package/internal/icons/16px/index/index.js +27 -0
  213. package/internal/icons/16px/index/index.js.map +1 -1
  214. package/internal/icons/16px/index.d.ts +3 -0
  215. package/internal/themes/DefaultTheme/DefaultTheme.js +67 -0
  216. package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
  217. package/internal/themes/DefaultTheme.d.ts +23 -0
  218. package/lib/guidUtils/guidUtils.js +4 -0
  219. package/lib/guidUtils/guidUtils.js.map +1 -0
  220. package/lib/guidUtils/package.json +6 -0
  221. package/lib/guidUtils.d.ts +1 -0
  222. package/lib/locale/types/types.js.map +1 -1
  223. package/lib/locale/types.d.ts +2 -0
  224. package/lib/locale/useLocaleForControl/package.json +6 -0
  225. package/lib/locale/useLocaleForControl/useLocaleForControl.js +12 -0
  226. package/lib/locale/useLocaleForControl/useLocaleForControl.js.map +1 -0
  227. package/lib/locale/useLocaleForControl.d.ts +3 -0
  228. package/lib/stringUtils/package.json +6 -0
  229. package/lib/stringUtils/stringUtils.js +12 -0
  230. package/lib/stringUtils/stringUtils.js.map +1 -0
  231. package/lib/stringUtils.d.ts +1 -0
  232. package/lib/utils/utils.js +18 -0
  233. package/lib/utils/utils.js.map +1 -1
  234. package/lib/utils.d.ts +1 -0
  235. package/package.json +1 -1
  236. package/cjs/lib/getDisplayName.d.ts +0 -3
  237. package/cjs/lib/getDisplayName.js +0 -9
  238. package/cjs/lib/getDisplayName.js.map +0 -1
  239. package/cjs/lib/withClassWrapper.d.ts +0 -68
  240. package/cjs/lib/withClassWrapper.js +0 -59
  241. package/cjs/lib/withClassWrapper.js.map +0 -1
  242. package/lib/getDisplayName/getDisplayName.js +0 -3
  243. package/lib/getDisplayName/getDisplayName.js.map +0 -1
  244. package/lib/getDisplayName/package.json +0 -6
  245. package/lib/getDisplayName.d.ts +0 -3
  246. package/lib/withClassWrapper/package.json +0 -6
  247. package/lib/withClassWrapper/withClassWrapper.js +0 -70
  248. package/lib/withClassWrapper/withClassWrapper.js.map +0 -1
  249. package/lib/withClassWrapper.d.ts +0 -68
@@ -0,0 +1,124 @@
1
+ "use strict";var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.FileUploaderControlProvider = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _react = _interopRequireWildcard(require("react"));
2
+
3
+ var _useMemoObject = require("../../hooks/useMemoObject");
4
+
5
+ var _fileUtils = require("./fileUtils");
6
+ var _FileUploaderControlContext = require("./FileUploaderControlContext");
7
+ var _FileUploaderFileValidationResult = require("./FileUploaderFileValidationResult");
8
+ var _useControlLocale = require("./hooks/useControlLocale");
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+ var updateFile = function updateFile(
20
+ files,
21
+ fileId,
22
+ getFileUpdatedProps)
23
+ {
24
+ var fileIndex = files.findIndex(function (file) {return file.id === fileId;});
25
+ if (fileIndex === -1) return files;
26
+
27
+ var newFiles = [].concat(files);
28
+ var file = files[fileIndex];
29
+
30
+ var updatedProps = getFileUpdatedProps(file);
31
+
32
+ newFiles[fileIndex] = (0, _extends2.default)({},
33
+ file,
34
+ updatedProps);
35
+
36
+
37
+ return newFiles;
38
+ };
39
+
40
+ var FileUploaderControlProvider = function FileUploaderControlProvider(props) {var
41
+ children = props.children,onValueChange = props.onValueChange,onRemove = props.onRemove,onSelect = props.onSelect;var _useState =
42
+
43
+ (0, _react.useState)([]),files = _useState[0],setFiles = _useState[1];
44
+ var locale = (0, _useControlLocale.useControlLocale)();
45
+
46
+ var setFileStatus = (0, _react.useCallback)(
47
+ function (fileId, status) {
48
+ setFiles(function (files) {
49
+ var newFiles = updateFile(files, fileId, function (file) {
50
+ return {
51
+ status: status,
52
+ validationResult:
53
+ status === _fileUtils.FileUploaderFileStatus.Error ?
54
+ _FileUploaderFileValidationResult.FileUploaderFileValidationResult.error(locale.requestErrorText) :
55
+ file.validationResult };
56
+
57
+ });
58
+ onValueChange == null ? void 0 : onValueChange(newFiles);
59
+ return newFiles;
60
+ });
61
+ },
62
+ [locale, onValueChange]);
63
+
64
+
65
+ var handleExternalSetFiles = (0, _react.useCallback)(
66
+ function (files) {
67
+ onSelect == null ? void 0 : onSelect(files);
68
+ setFiles(function (state) {
69
+ var newFiles = [].concat(state, files);
70
+ onValueChange == null ? void 0 : onValueChange(newFiles);
71
+ return newFiles;
72
+ });
73
+ },
74
+ [onValueChange, onSelect]);
75
+
76
+
77
+ var removeFile = (0, _react.useCallback)(
78
+ function (fileId) {
79
+ onRemove == null ? void 0 : onRemove(fileId);
80
+ setFiles(function (state) {
81
+ var newFiles = state.filter(function (file) {return file.id !== fileId;});
82
+ onValueChange == null ? void 0 : onValueChange(newFiles);
83
+ return newFiles;
84
+ });
85
+ },
86
+ [onValueChange, onRemove]);
87
+
88
+
89
+ var setFileValidationResult = (0, _react.useCallback)(
90
+ function (fileId, validationResult) {
91
+ setFiles(function (files) {
92
+ var newFiles = updateFile(files, fileId, function () {return { validationResult: validationResult };});
93
+ onValueChange == null ? void 0 : onValueChange(newFiles);
94
+ return newFiles;
95
+ });
96
+ },
97
+ [onValueChange]);
98
+
99
+
100
+ var reset = _react.default.useCallback(function () {
101
+ setFiles(function () {
102
+ var newFiles = [];
103
+ onValueChange == null ? void 0 : onValueChange(newFiles);
104
+ return newFiles;
105
+ });
106
+ }, [onValueChange]);
107
+
108
+ return /*#__PURE__*/(
109
+ _react.default.createElement(_FileUploaderControlContext.FileUploaderControlContext.Provider, {
110
+ value: (0, _useMemoObject.useMemoObject)({
111
+ setFileStatus: setFileStatus,
112
+ files: files,
113
+ setFiles: handleExternalSetFiles,
114
+ removeFile: removeFile,
115
+ setFileValidationResult: setFileValidationResult,
116
+ reset: reset }) },
117
+
118
+
119
+ children));
120
+
121
+
122
+ };exports.FileUploaderControlProvider = FileUploaderControlProvider;
123
+
124
+ FileUploaderControlProvider.displayName = 'FileUploaderControlProvider';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FileUploaderControlProvider.tsx"],"names":["updateFile","files","fileId","getFileUpdatedProps","fileIndex","findIndex","file","id","newFiles","updatedProps","FileUploaderControlProvider","props","children","onValueChange","onRemove","onSelect","setFiles","locale","setFileStatus","status","validationResult","FileUploaderFileStatus","Error","FileUploaderFileValidationResult","error","requestErrorText","handleExternalSetFiles","state","removeFile","filter","setFileValidationResult","reset","React","useCallback","displayName"],"mappings":"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","sourcesContent":["import React, { PropsWithChildren, useCallback, useState } from 'react';\n\nimport { useMemoObject } from '../../hooks/useMemoObject';\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 onSelect?: (files: FileUploaderAttachedFile[]) => void;\n /** Срабатывает при удалении файла из контрола */\n onRemove?: (fileId: string) => void;\n /** Срабатывает при onSelect, 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, onSelect } = props;\n\n const [files, setFiles] = useState<FileUploaderAttachedFile[]>([]);\n const locale = useControlLocale();\n\n const setFileStatus = useCallback(\n (fileId: string, status: FileUploaderFileStatus) => {\n setFiles((files) => {\n const newFiles = updateFile(files, fileId, (file) => {\n return {\n status,\n validationResult:\n status === FileUploaderFileStatus.Error\n ? FileUploaderFileValidationResult.error(locale.requestErrorText)\n : file.validationResult,\n };\n });\n onValueChange?.(newFiles);\n return newFiles;\n });\n },\n [locale, onValueChange],\n );\n\n const handleExternalSetFiles = useCallback(\n (files: FileUploaderAttachedFile[]) => {\n onSelect?.(files);\n setFiles((state) => {\n const newFiles = [...state, ...files];\n onValueChange?.(newFiles);\n return newFiles;\n });\n },\n [onValueChange, onSelect],\n );\n\n const removeFile = useCallback(\n (fileId: string) => {\n onRemove?.(fileId);\n setFiles((state) => {\n const newFiles = state.filter((file) => file.id !== fileId);\n onValueChange?.(newFiles);\n return newFiles;\n });\n },\n [onValueChange, onRemove],\n );\n\n const setFileValidationResult = useCallback(\n (fileId: string, validationResult: FileUploaderFileValidationResult) => {\n setFiles((files) => {\n const newFiles = updateFile(files, fileId, () => ({ validationResult }));\n onValueChange?.(newFiles);\n return newFiles;\n });\n },\n [onValueChange],\n );\n\n const reset = React.useCallback(() => {\n setFiles(() => {\n const newFiles = [] as FileUploaderAttachedFile[];\n onValueChange?.(newFiles);\n return newFiles;\n });\n }, [onValueChange]);\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,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,178 @@
1
+ "use strict";var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");exports.__esModule = true;exports.FileUploaderFile = void 0;var _react = _interopRequireWildcard(require("react"));
2
+
3
+ var _fileUtils = require("../fileUtils");
4
+ var _utils = require("../../../lib/utils");
5
+ var _TextWidthHelper = require("../../../internal/TextWidthHelper/TextWidthHelper");
6
+ var _stringUtils = require("../../../lib/stringUtils");
7
+ var _Spinner = require("../../../components/Spinner");
8
+ var _FileUploaderControlContext = require("../FileUploaderControlContext");
9
+ var _Tooltip = require("../../../components/Tooltip");
10
+ var _Emotion = require("../../../lib/theming/Emotion");
11
+ var _ThemeContext = require("../../../lib/theming/ThemeContext");
12
+ var _px = require("../../icons/16px");
13
+ var _keyListener = require("../../../lib/events/keyListener");
14
+ var _identifiers = require("../../../lib/events/keyboard/identifiers");
15
+
16
+
17
+ var _FileUploaderFile = require("./FileUploaderFile.styles");
18
+
19
+
20
+
21
+
22
+
23
+
24
+ var getTruncatedName = function getTruncatedName(fileNameWidth, fileNameElementWidth, name) {
25
+ if (!fileNameWidth && !fileNameElementWidth) {
26
+ return null;
27
+ }
28
+
29
+ if (fileNameWidth <= fileNameElementWidth) {
30
+ return name;
31
+ }
32
+
33
+ var charWidth = Math.ceil(fileNameWidth / name.length);
34
+ var maxCharsCountInSpan = Math.ceil(fileNameElementWidth / charWidth);
35
+
36
+ return (0, _stringUtils.truncate)(name, maxCharsCountInSpan);
37
+ };
38
+
39
+ var FileUploaderFile = function FileUploaderFile(props) {var _cx, _cx2;var
40
+ file = props.file,showSize = props.showSize;var
41
+ id = file.id,originalFile = file.originalFile,status = file.status,validationResult = file.validationResult;var
42
+ name = originalFile.name,size = originalFile.size;var _useState =
43
+
44
+ (0, _react.useState)(false),hovered = _useState[0],setHovered = _useState[1];var _useState2 =
45
+ (0, _react.useState)(false),focusedByTab = _useState2[0],setFocusedByTab = _useState2[1];var _useState3 =
46
+ (0, _react.useState)(null),truncatedFileName = _useState3[0],setTruncatedFileName = _useState3[1];
47
+
48
+ var textHelperRef = (0, _react.useRef)(null);
49
+ var fileNameElementRef = (0, _react.useRef)(null);var _useContext =
50
+
51
+ (0, _react.useContext)(_FileUploaderControlContext.FileUploaderControlContext),removeFile = _useContext.removeFile;
52
+ var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
53
+
54
+ var formattedSize = (0, _react.useMemo)(function () {return (0, _utils.formatBytes)(size, 1);}, [size]);
55
+
56
+ // важно запустить после рендера, чтобы успели проставиться рефы
57
+ (0, _react.useEffect)(function () {var _textHelperRef$curren, _fileNameElementRef$c;
58
+ var fileNameWidth = ((_textHelperRef$curren = textHelperRef.current) == null ? void 0 : _textHelperRef$curren.getTextWidth()) || 0;
59
+ var fileNameElementWidth = ((_fileNameElementRef$c = fileNameElementRef.current) == null ? void 0 : _fileNameElementRef$c.getBoundingClientRect().width) || 0;
60
+ var truncatedName = getTruncatedName(fileNameWidth, fileNameElementWidth, name);
61
+
62
+ setTruncatedFileName(truncatedName);
63
+ }, [name]);
64
+
65
+ var removeUploadFile = (0, _react.useCallback)(function () {
66
+ removeFile(id);
67
+ }, [removeFile, id]);
68
+
69
+ var handleRemove = (0, _react.useCallback)(
70
+ function (event) {
71
+ event.preventDefault();
72
+ event.stopPropagation();
73
+ removeUploadFile();
74
+ },
75
+ [removeUploadFile]);var
76
+
77
+
78
+ isValid = validationResult.isValid,message = validationResult.message;
79
+
80
+ var icon = (0, _react.useMemo)(function () {
81
+ var deleteIcon = /*#__PURE__*/_react.default.createElement(_px.DeleteIcon, { className: _FileUploaderFile.jsStyles.deleteIcon(theme) });
82
+
83
+ if (hovered || focusedByTab) {
84
+ return deleteIcon;
85
+ }
86
+
87
+ switch (status) {
88
+ case _fileUtils.FileUploaderFileStatus.Loading:
89
+ return /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { type: "mini", dimmed: true, caption: "" });
90
+ case _fileUtils.FileUploaderFileStatus.Uploaded:
91
+ return /*#__PURE__*/_react.default.createElement(_px.OkIcon, { color: theme.fileUploaderIconColor });
92
+ default:
93
+ if (!isValid) {
94
+ return /*#__PURE__*/_react.default.createElement(_px.ErrorIcon, null);
95
+ }
96
+ return deleteIcon;}
97
+
98
+ }, [hovered, status, isValid, theme, focusedByTab]);
99
+
100
+ var renderTooltipContent = (0, _react.useCallback)(function () {
101
+ return isValid ? null : message;
102
+ }, [isValid, message]);
103
+
104
+ var contentClassNames = (0, _Emotion.cx)(_FileUploaderFile.jsStyles.content(), (_cx = {}, _cx[
105
+ _FileUploaderFile.jsStyles.error(theme)] = !isValid, _cx));
106
+
107
+
108
+ var handleMouseEnter = (0, _react.useCallback)(function () {
109
+ setHovered(true);
110
+ }, []);
111
+
112
+ var handleMouseLeave = (0, _react.useCallback)(function () {
113
+ setHovered(false);
114
+ }, []);
115
+
116
+ var handleFocus = (0, _react.useCallback)(function () {
117
+ // focus event fires before keyDown eventlistener
118
+ // so we should check tabPressed in async way
119
+ requestAnimationFrame(function () {
120
+ if (_keyListener.keyListener.isTabPressed) {
121
+ setFocusedByTab(true);
122
+ }
123
+ });
124
+ }, []);
125
+
126
+ var handleBlur = (0, _react.useCallback)(function () {
127
+ setFocusedByTab(false);
128
+ }, []);
129
+
130
+ var handleIconKeyDown = (0, _react.useCallback)(
131
+ function (e) {
132
+ if ((0, _identifiers.isKeyEnter)(e)) {
133
+ removeUploadFile();
134
+ }
135
+ },
136
+ [removeUploadFile]);
137
+
138
+
139
+ var iconClassNames = (0, _Emotion.cx)(_FileUploaderFile.jsStyles.icon(theme), (_cx2 = {}, _cx2[
140
+ _FileUploaderFile.jsStyles.focusedIcon(theme)] = focusedByTab, _cx2));
141
+
142
+
143
+ return /*#__PURE__*/(
144
+ _react.default.createElement("div", {
145
+ "data-tid": "FileUploader__file",
146
+ className: _FileUploaderFile.jsStyles.root(),
147
+ onMouseEnter: handleMouseEnter,
148
+ onMouseLeave: handleMouseLeave }, /*#__PURE__*/
149
+
150
+ _react.default.createElement(_Tooltip.Tooltip, { "data-tid": "FileUploader__fileTooltip", pos: "right middle", render: renderTooltipContent }, /*#__PURE__*/
151
+ _react.default.createElement("div", { className: contentClassNames }, /*#__PURE__*/
152
+ _react.default.createElement(_TextWidthHelper.TextWidthHelper, { ref: textHelperRef, text: name }), /*#__PURE__*/
153
+ _react.default.createElement("span", { "data-tid": "FileUploader__fileName", ref: fileNameElementRef, className: _FileUploaderFile.jsStyles.name() },
154
+ truncatedFileName),
155
+
156
+ !!showSize && formattedSize && /*#__PURE__*/
157
+ _react.default.createElement("span", { "data-tid": "FileUploader__fileSize", className: _FileUploaderFile.jsStyles.size() },
158
+ formattedSize), /*#__PURE__*/
159
+
160
+
161
+ _react.default.createElement("div", {
162
+ className: iconClassNames,
163
+ "data-tid": "FileUploader__fileIcon",
164
+ tabIndex: 0,
165
+ onClick: handleRemove,
166
+ onFocus: handleFocus,
167
+ onBlur: handleBlur,
168
+ onKeyDown: handleIconKeyDown },
169
+
170
+ icon)))));
171
+
172
+
173
+
174
+
175
+
176
+ };exports.FileUploaderFile = FileUploaderFile;
177
+
178
+ FileUploaderFile.displayName = 'FileUploaderFile';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FileUploaderFile.tsx"],"names":["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","FileUploaderControlContext","removeFile","theme","ThemeContext","formattedSize","current","getTextWidth","getBoundingClientRect","width","truncatedName","removeUploadFile","handleRemove","event","preventDefault","stopPropagation","isValid","message","icon","deleteIcon","jsStyles","FileUploaderFileStatus","Loading","Uploaded","fileUploaderIconColor","renderTooltipContent","contentClassNames","content","error","handleMouseEnter","handleMouseLeave","handleFocus","requestAnimationFrame","keyListener","isTabPressed","handleBlur","handleIconKeyDown","e","iconClassNames","focusedIcon","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';\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 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 <span data-tid=\"FileUploader__fileName\" ref={fileNameElementRef} className={jsStyles.name()}>\n {truncatedFileName}\n </span>\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,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,66 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.jsStyles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
2
+
3
+
4
+ var styles = {
5
+ root: function root() {
6
+ return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n width: 100%;\n "])));
7
+
8
+
9
+ },
10
+
11
+ content: function content() {
12
+ return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: flex;\n width: 100%;\n position: relative;\n "])));
13
+
14
+
15
+
16
+
17
+ },
18
+
19
+ error: function error(t) {
20
+ return (0, _Emotion.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n "])),
21
+ t.fileUploaderBorderColorError);
22
+
23
+ },
24
+
25
+ name: function name() {
26
+ return (0, _Emotion.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["\n flex: 1 1 100%;\n overflow: hidden;\n "])));
27
+
28
+
29
+
30
+ },
31
+
32
+ size: function size() {
33
+ return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin-left: 28px;\n flex: 1 0 auto;\n "])));
34
+
35
+
36
+
37
+ },
38
+
39
+ icon: function icon(t) {
40
+ return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin-left: 23px;\n flex: 1 0 auto;\n cursor: pointer;\n font-size: ", ";\n text-align: right;\n outline: none;\n "])),
41
+
42
+
43
+
44
+ t.fileUploaderIconSize);
45
+
46
+
47
+
48
+ },
49
+
50
+ deleteIcon: function deleteIcon(t) {
51
+ return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n &:hover {\n color: ", ";\n }\n "])),
52
+ t.fileUploaderIconColor,
53
+
54
+ t.fileUploaderIconHoverColor);
55
+
56
+
57
+ },
58
+
59
+ focusedIcon: function focusedIcon(t) {
60
+ return (0, _Emotion.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteralLoose2.default)(["\n outline: 1px solid ", ";\n "])),
61
+ t.borderColorFocus);
62
+
63
+ } };
64
+
65
+
66
+ var jsStyles = (0, _Emotion.memoizeStyle)(styles);exports.jsStyles = jsStyles;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FileUploaderFile.styles.ts"],"names":["styles","root","css","content","error","t","fileUploaderBorderColorError","name","size","icon","fileUploaderIconSize","deleteIcon","fileUploaderIconColor","fileUploaderIconHoverColor","focusedIcon","borderColorFocus","jsStyles"],"mappings":"8QAAA,uD;;;AAGA,IAAMA,MAAM,GAAG;AACbC,EAAAA,IADa,kBACN;AACL,eAAOC,YAAP;;;AAGD,GALY;;AAObC,EAAAA,OAPa,qBAOH;AACR,eAAOD,YAAP;;;;;AAKD,GAbY;;AAebE,EAAAA,KAfa,iBAePC,CAfO,EAeG;AACd,eAAOH,YAAP;AACWG,IAAAA,CAAC,CAACC,4BADb;;AAGD,GAnBY;;AAqBbC,EAAAA,IArBa,kBAqBN;AACL,eAAOL,YAAP;;;;AAID,GA1BY;;AA4BbM,EAAAA,IA5Ba,kBA4BN;AACL,eAAON,YAAP;;;;AAID,GAjCY;;AAmCbO,EAAAA,IAnCa,gBAmCRJ,CAnCQ,EAmCE;AACb,eAAOH,YAAP;;;;AAIeG,IAAAA,CAAC,CAACK,oBAJjB;;;;AAQD,GA5CY;;AA8CbC,EAAAA,UA9Ca,sBA8CFN,CA9CE,EA8CQ;AACnB,eAAOH,YAAP;AACWG,IAAAA,CAAC,CAACO,qBADb;;AAGaP,IAAAA,CAAC,CAACQ,0BAHf;;;AAMD,GArDY;;AAuDbC,EAAAA,WAvDa,uBAuDDT,CAvDC,EAuDS;AACpB,eAAOH,YAAP;AACuBG,IAAAA,CAAC,CAACU,gBADzB;;AAGD,GA3DY,EAAf;;;AA8DO,IAAMC,QAAQ,GAAG,2BAAahB,MAAb,CAAjB,C","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 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 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,4 @@
1
+ export declare const FileUploaderFileList: {
2
+ (): JSX.Element;
3
+ displayName: string;
4
+ };
@@ -0,0 +1,24 @@
1
+ "use strict";var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");exports.__esModule = true;exports.FileUploaderFileList = void 0;var _react = _interopRequireWildcard(require("react"));
2
+
3
+ var _FileUploaderControlContext = require("../FileUploaderControlContext");
4
+ var _ThemeContext = require("../../../lib/theming/ThemeContext");
5
+ var _FileUploaderFile = require("../FileUploaderFile/FileUploaderFile");
6
+
7
+ var _FileUploaderFileList = require("./FileUploaderFileList.styles");
8
+
9
+ var FileUploaderFileList = function FileUploaderFileList() {var _useContext =
10
+ (0, _react.useContext)(_FileUploaderControlContext.FileUploaderControlContext),files = _useContext.files;
11
+ var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
12
+
13
+ return /*#__PURE__*/(
14
+ _react.default.createElement("div", { "data-tid": "FileUploader__fileList" },
15
+ files.map(function (file) {return /*#__PURE__*/(
16
+ _react.default.createElement("div", { key: file.id, className: _FileUploaderFileList.jsStyles.fileWrapper(theme) }, /*#__PURE__*/
17
+ _react.default.createElement(_FileUploaderFile.FileUploaderFile, { file: file, showSize: true })));})));
18
+
19
+
20
+
21
+
22
+ };exports.FileUploaderFileList = FileUploaderFileList;
23
+
24
+ FileUploaderFileList.displayName = 'FileUploaderFileList';
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FileUploaderFileList.tsx"],"names":["FileUploaderFileList","FileUploaderControlContext","files","theme","ThemeContext","map","file","id","jsStyles","fileWrapper","displayName"],"mappings":"oKAAA;;AAEA;AACA;AACA;;AAEA;;AAEO,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AACtB,yBAAWC,sDAAX,CADsB,CAChCC,KADgC,eAChCA,KADgC;AAExC,MAAMC,KAAK,GAAG,uBAAWC,0BAAX,CAAd;;AAEA;AACE,0CAAK,YAAS,wBAAd;AACGF,IAAAA,KAAK,CAACG,GAAN,CAAU,UAACC,IAAD;AACT,8CAAK,GAAG,EAAEA,IAAI,CAACC,EAAf,EAAmB,SAAS,EAAEC,+BAASC,WAAT,CAAqBN,KAArB,CAA9B;AACE,qCAAC,kCAAD,IAAkB,IAAI,EAAEG,IAAxB,EAA8B,QAAQ,MAAtC,GADF,CADS,GAAV,CADH,CADF;;;;;AASD,CAbM,C;;AAePN,oBAAoB,CAACU,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,4 @@
1
+ import { Theme } from '../../../lib/theming/Theme';
2
+ export declare const jsStyles: {
3
+ fileWrapper(t: Theme): string;
4
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.jsStyles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../../lib/theming/Emotion");var _templateObject;
2
+
3
+
4
+ var styles = {
5
+ fileWrapper: function fileWrapper(t) {
6
+ return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n width: 100%;\n height: 32px;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n padding: ", " ", ";\n "])),
7
+
8
+
9
+
10
+
11
+
12
+ t.fileUploaderPaddingY, t.fileUploaderPaddingX);
13
+
14
+ } };
15
+
16
+
17
+ var jsStyles = (0, _Emotion.memoizeStyle)(styles);exports.jsStyles = jsStyles;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FileUploaderFileList.styles.ts"],"names":["styles","fileWrapper","t","css","fileUploaderPaddingY","fileUploaderPaddingX","jsStyles"],"mappings":"8QAAA,uD;;;AAGA,IAAMA,MAAM,GAAG;AACbC,EAAAA,WADa,uBACDC,CADC,EACS;AACpB,eAAOC,YAAP;;;;;;AAMaD,IAAAA,CAAC,CAACE,oBANf,EAMuCF,CAAC,CAACG,oBANzC;;AAQD,GAVY,EAAf;;;AAaO,IAAMC,QAAQ,GAAG,2BAAaN,MAAb,CAAjB,C","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,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,16 @@
1
+ "use strict";exports.__esModule = true;exports.FileUploaderFileValidationResult = void 0;var FileUploaderFileValidationResult = /*#__PURE__*/function () {
2
+
3
+
4
+
5
+ function FileUploaderFileValidationResult(isValid, message) {this.isValid = void 0;this.message = void 0;
6
+ this.isValid = isValid;
7
+ this.message = message;
8
+ }FileUploaderFileValidationResult.
9
+
10
+ error = function error(message) {
11
+ return new FileUploaderFileValidationResult(false, message);
12
+ };FileUploaderFileValidationResult.
13
+
14
+ ok = function ok() {
15
+ return new FileUploaderFileValidationResult(true);
16
+ };return FileUploaderFileValidationResult;}();exports.FileUploaderFileValidationResult = FileUploaderFileValidationResult;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FileUploaderFileValidationResult.ts"],"names":["FileUploaderFileValidationResult","isValid","message","error","ok"],"mappings":"6FAAaA,gC;;;;AAIX,4CAAYC,OAAZ,EAA8BC,OAA9B,EAAgD,MAHvCD,OAGuC,eAFvCC,OAEuC;AAC9C,SAAKD,OAAL,GAAeA,OAAf;AACA,SAAKC,OAAL,GAAeA,OAAf;AACD,G;;AAEMC,EAAAA,K,GAAP,eAAaD,OAAb,EAAgE;AAC9D,WAAO,IAAIF,gCAAJ,CAAqC,KAArC,EAA4CE,OAA5C,CAAP;AACD,G;;AAEME,EAAAA,E,GAAP,cAA8C;AAC5C,WAAO,IAAIJ,gCAAJ,CAAqC,IAArC,CAAP;AACD,G","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,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,26 @@
1
+ "use strict";exports.__esModule = true;exports.getAttachedFile = exports.FileUploaderFileStatus = void 0;var _guidUtils = require("../../lib/guidUtils");
2
+
3
+ var _FileUploaderFileValidationResult = require("./FileUploaderFileValidationResult");var
4
+
5
+ FileUploaderFileStatus;exports.FileUploaderFileStatus = FileUploaderFileStatus;(function (FileUploaderFileStatus) {FileUploaderFileStatus["Attached"] = "Attached";FileUploaderFileStatus["Loading"] = "Loading";FileUploaderFileStatus["Uploaded"] = "Uploaded";FileUploaderFileStatus["Error"] = "Error";})(FileUploaderFileStatus || (exports.FileUploaderFileStatus = FileUploaderFileStatus = {}));
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+ var getAttachedFile = function getAttachedFile(file) {
20
+ return {
21
+ id: (0, _guidUtils.getGuid)(),
22
+ originalFile: file,
23
+ status: FileUploaderFileStatus.Attached,
24
+ validationResult: _FileUploaderFileValidationResult.FileUploaderFileValidationResult.ok() };
25
+
26
+ };exports.getAttachedFile = getAttachedFile;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["fileUtils.ts"],"names":["FileUploaderFileStatus","getAttachedFile","file","id","originalFile","status","Attached","validationResult","FileUploaderFileValidationResult","ok"],"mappings":"yGAAA;;AAEA,sF;;AAEYA,sB,oEAAAA,sB,GAAAA,sB,0BAAAA,sB,wBAAAA,sB,0BAAAA,sB,uBAAAA,sB,sCAAAA,sB;;;;;;;;;;;;;;AAcL,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,IAAD,EAA0C;AACvE,SAAO;AACLC,IAAAA,EAAE,EAAE,yBADC;AAELC,IAAAA,YAAY,EAAEF,IAFT;AAGLG,IAAAA,MAAM,EAAEL,sBAAsB,CAACM,QAH1B;AAILC,IAAAA,gBAAgB,EAAEC,mEAAiCC,EAAjC,EAJb,EAAP;;AAMD,CAPM,C","sourcesContent":["import { getGuid } from '../../lib/guidUtils';\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: getGuid(),\n originalFile: file,\n status: FileUploaderFileStatus.Attached,\n validationResult: FileUploaderFileValidationResult.ok(),\n };\n};\n"]}
@@ -0,0 +1 @@
1
+ export declare const useControlLocale: () => import("../../../components/FileUploader/locale").FileUploaderLocale;
@@ -0,0 +1,4 @@
1
+ "use strict";exports.__esModule = true;exports.useControlLocale = void 0;var _useLocaleForControl = require("../../../lib/locale/useLocaleForControl");
2
+ var _locale = require("../../../components/FileUploader/locale");
3
+
4
+ var useControlLocale = function useControlLocale() {return (0, _useLocaleForControl.useLocaleForControl)('FileUploader', _locale.FileUploaderLocaleHelper);};exports.useControlLocale = useControlLocale;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useControlLocale.ts"],"names":["useControlLocale","FileUploaderLocaleHelper"],"mappings":"yEAAA;AACA;;AAEO,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,WAAM,8CAAoB,cAApB,EAAoCC,gCAApC,CAAN,EAAzB,C","sourcesContent":["import { useLocaleForControl } from '../../../lib/locale/useLocaleForControl';\nimport { FileUploaderLocaleHelper } from '../../../components/FileUploader/locale';\n\nexport const useControlLocale = () => useLocaleForControl('FileUploader', FileUploaderLocaleHelper);\n"]}
@@ -0,0 +1,3 @@
1
+ import { Nullable } from '../../../typings/utility-types';
2
+ import { FileUploaderAttachedFile } from '../fileUtils';
3
+ export declare const useUpload: (request: Nullable<(file: FileUploaderAttachedFile) => Promise<void>>, onRequestSuccess?: Nullable<(fileId: string) => void>, onRequestError?: Nullable<(fileId: string) => void>) => (file: FileUploaderAttachedFile) => Promise<void>;