@synerise/ds-file-uploader 0.7.2 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/AvatarUploader/AvatarUploader.js +28 -44
- package/dist/AvatarUploader/FileViewAvatar/FileViewAvatar.js +11 -25
- package/dist/FileUploader.js +31 -52
- package/dist/FileView/FileView.js +11 -26
- package/dist/ItemUploader/ItemUploader.js +25 -39
- package/dist/ItemUploader/UploaderButton/FileViewItem.js +8 -20
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [0.7.4](https://github.com/Synerise/synerise-design/compare/@synerise/ds-file-uploader@0.7.3...@synerise/ds-file-uploader@0.7.4) (2024-11-28)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @synerise/ds-file-uploader
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [0.7.3](https://github.com/Synerise/synerise-design/compare/@synerise/ds-file-uploader@0.7.2...@synerise/ds-file-uploader@0.7.3) (2024-11-22)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @synerise/ds-file-uploader
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [0.7.2](https://github.com/Synerise/synerise-design/compare/@synerise/ds-file-uploader@0.7.1...@synerise/ds-file-uploader@0.7.2) (2024-11-21)
|
|
7
23
|
|
|
8
24
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
2
|
import React from 'react';
|
|
4
3
|
import { useDropzone } from 'react-dropzone';
|
|
5
4
|
import Tooltip from '@synerise/ds-tooltip';
|
|
@@ -7,48 +6,41 @@ import Icon, { InfoFillS, Add3M, FileTypePictureL } from '@synerise/ds-icon';
|
|
|
7
6
|
import Button from '@synerise/ds-button';
|
|
8
7
|
import FileViewAvatar from './FileViewAvatar/FileViewAvatar';
|
|
9
8
|
import * as S from './AvatarUploader.styles';
|
|
10
|
-
|
|
11
9
|
function readAsText(file) {
|
|
12
10
|
return new Promise(function (resolve) {
|
|
13
11
|
// eslint-disable-next-line no-undef
|
|
14
12
|
var reader = new FileReader();
|
|
15
13
|
file.type !== 'text/plain' && resolve(null);
|
|
16
|
-
|
|
17
14
|
reader.onerror = function () {
|
|
18
15
|
return resolve(null);
|
|
19
16
|
};
|
|
20
|
-
|
|
21
17
|
reader.onload = function () {
|
|
22
18
|
return resolve(reader.result);
|
|
23
19
|
};
|
|
24
|
-
|
|
25
20
|
reader.readAsText(file);
|
|
26
21
|
});
|
|
27
22
|
}
|
|
28
|
-
|
|
29
23
|
var AvatarUploader = function AvatarUploader(_ref) {
|
|
30
24
|
var className = _ref.className,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
25
|
+
onUpload = _ref.onUpload,
|
|
26
|
+
disabled = _ref.disabled,
|
|
27
|
+
accept = _ref.accept,
|
|
28
|
+
error = _ref.error,
|
|
29
|
+
label = _ref.label,
|
|
30
|
+
_onRemove = _ref.onRemove,
|
|
31
|
+
description = _ref.description,
|
|
32
|
+
tooltip = _ref.tooltip,
|
|
33
|
+
filesAmount = _ref.filesAmount,
|
|
34
|
+
_ref$mode = _ref.mode,
|
|
35
|
+
mode = _ref$mode === void 0 ? 'single' : _ref$mode,
|
|
36
|
+
_ref$removable = _ref.removable,
|
|
37
|
+
removable = _ref$removable === void 0 ? true : _ref$removable,
|
|
38
|
+
_ref$files = _ref.files,
|
|
39
|
+
files = _ref$files === void 0 ? [] : _ref$files,
|
|
40
|
+
texts = _ref.texts;
|
|
48
41
|
var _React$useState = React.useState(true),
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
uploadSuccess = _React$useState[0],
|
|
43
|
+
setUploadSuccess = _React$useState[1];
|
|
52
44
|
var readFilesContent = React.useCallback(function (addedFiles) {
|
|
53
45
|
var readerPromises = addedFiles.map(function (file) {
|
|
54
46
|
return readAsText(file);
|
|
@@ -64,11 +56,9 @@ var AvatarUploader = function AvatarUploader(_ref) {
|
|
|
64
56
|
}, [onUpload]);
|
|
65
57
|
var onDrop = React.useCallback(function (acceptedFiles) {
|
|
66
58
|
var possibleUpload = 0;
|
|
67
|
-
|
|
68
59
|
if (filesAmount) {
|
|
69
60
|
possibleUpload = filesAmount - files.length;
|
|
70
61
|
}
|
|
71
|
-
|
|
72
62
|
if (possibleUpload !== 0 && acceptedFiles.length > possibleUpload) {
|
|
73
63
|
setUploadSuccess(false);
|
|
74
64
|
} else {
|
|
@@ -76,29 +66,24 @@ var AvatarUploader = function AvatarUploader(_ref) {
|
|
|
76
66
|
readFilesContent(acceptedFiles);
|
|
77
67
|
}
|
|
78
68
|
}, [filesAmount, files, setUploadSuccess, readFilesContent]);
|
|
79
|
-
|
|
80
69
|
var _useDropzone = useDropzone({
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
70
|
+
accept: accept ? accept.join(',') : undefined,
|
|
71
|
+
multiple: mode !== 'single',
|
|
72
|
+
onDrop: onDrop,
|
|
73
|
+
disabled: disabled
|
|
74
|
+
}),
|
|
75
|
+
getRootProps = _useDropzone.getRootProps,
|
|
76
|
+
getInputProps = _useDropzone.getInputProps,
|
|
77
|
+
isDragActive = _useDropzone.isDragActive;
|
|
90
78
|
if (filesAmount && filesAmount < 1) {
|
|
91
79
|
// eslint-disable-next-line no-param-reassign
|
|
92
80
|
filesAmount = 1;
|
|
93
81
|
throw new Error('Invalid value of property "filesAmount" ');
|
|
94
82
|
}
|
|
95
|
-
|
|
96
83
|
var hasError = Boolean(error) || !uploadSuccess;
|
|
97
|
-
|
|
98
84
|
var _React$useState2 = React.useState(false),
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
85
|
+
pressed = _React$useState2[0],
|
|
86
|
+
setPressed = _React$useState2[1];
|
|
102
87
|
return /*#__PURE__*/React.createElement(S.Container, {
|
|
103
88
|
className: "ds-file-avatar-uploader " + (className || '')
|
|
104
89
|
}, label && /*#__PURE__*/React.createElement(S.Label, null, /*#__PURE__*/React.createElement("span", null, label), tooltip && /*#__PURE__*/React.createElement(Tooltip, {
|
|
@@ -154,5 +139,4 @@ var AvatarUploader = function AvatarUploader(_ref) {
|
|
|
154
139
|
hasError: hasError
|
|
155
140
|
}, description))));
|
|
156
141
|
};
|
|
157
|
-
|
|
158
142
|
export default AvatarUploader;
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
-
|
|
3
2
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
|
|
5
3
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
|
|
7
4
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
8
|
-
|
|
9
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
10
|
-
|
|
11
6
|
import React, { useState } from 'react';
|
|
12
7
|
import { FormattedMessage } from 'react-intl';
|
|
13
8
|
import Tooltip from '@synerise/ds-tooltip';
|
|
@@ -21,19 +16,17 @@ var mapperOfIcons = {
|
|
|
21
16
|
'image/svg+xml': /*#__PURE__*/React.createElement(FileTypeImageM, null),
|
|
22
17
|
'text/csv': /*#__PURE__*/React.createElement(FileTypeImageM, null)
|
|
23
18
|
};
|
|
24
|
-
|
|
25
19
|
var FileViewAvatar = function FileViewAvatar(_ref) {
|
|
26
20
|
var data = _ref.data,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
21
|
+
texts = _ref.texts,
|
|
22
|
+
onRemove = _ref.onRemove,
|
|
23
|
+
removable = _ref.removable,
|
|
24
|
+
description = _ref.description;
|
|
31
25
|
var disabled = data.disabled,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
error = data.error,
|
|
27
|
+
file = data.file,
|
|
28
|
+
progress = data.progress;
|
|
35
29
|
var fileSource = URL.createObjectURL(data.file);
|
|
36
|
-
|
|
37
30
|
var finalTexts = _objectSpread({
|
|
38
31
|
retryTooltip: /*#__PURE__*/React.createElement(FormattedMessage, {
|
|
39
32
|
id: "DS.FILE-UPLOADER.RETRY-TOOLTIP",
|
|
@@ -44,28 +37,22 @@ var FileViewAvatar = function FileViewAvatar(_ref) {
|
|
|
44
37
|
defaultMessage: "Remove"
|
|
45
38
|
})
|
|
46
39
|
}, texts);
|
|
47
|
-
|
|
48
40
|
var hasError = !!error;
|
|
49
41
|
var hasProgress = typeof progress === 'number';
|
|
50
|
-
|
|
51
42
|
var _useState = useState(false),
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
43
|
+
pressed = _useState[0],
|
|
44
|
+
setPressed = _useState[1];
|
|
55
45
|
var handleRemoveAvatar = function handleRemoveAvatar() {
|
|
56
46
|
onRemove && onRemove();
|
|
57
47
|
setPressed(false);
|
|
58
48
|
};
|
|
59
|
-
|
|
60
49
|
var _useState2 = useState(false),
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
50
|
+
removeButtonPressed = _useState2[0],
|
|
51
|
+
removeButtonSetPressed = _useState2[1];
|
|
64
52
|
var handleRemove = function handleRemove() {
|
|
65
53
|
onRemove && onRemove();
|
|
66
54
|
removeButtonSetPressed(false);
|
|
67
55
|
};
|
|
68
|
-
|
|
69
56
|
return /*#__PURE__*/React.createElement(S.FileAvatarContainer, null, /*#__PURE__*/React.createElement(S.AvatarContainer, {
|
|
70
57
|
removable: removable,
|
|
71
58
|
disabled: disabled,
|
|
@@ -123,5 +110,4 @@ var FileViewAvatar = function FileViewAvatar(_ref) {
|
|
|
123
110
|
size: 16
|
|
124
111
|
}))))), /*#__PURE__*/React.createElement(S.DescriptionUploader, null, description)));
|
|
125
112
|
};
|
|
126
|
-
|
|
127
113
|
export default FileViewAvatar;
|
package/dist/FileUploader.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
2
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
-
|
|
5
3
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
|
-
|
|
7
4
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
-
|
|
9
5
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
10
|
-
|
|
11
6
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
12
|
-
|
|
13
7
|
import React, { useState, useCallback } from 'react';
|
|
14
8
|
import { FormattedMessage } from 'react-intl';
|
|
15
9
|
import { useDropzone } from 'react-dropzone';
|
|
@@ -17,49 +11,42 @@ import Icon, { AddM, InfoFillS, FileUploadL } from '@synerise/ds-icon';
|
|
|
17
11
|
import Tooltip from '@synerise/ds-tooltip';
|
|
18
12
|
import FileView from './FileView/FileView';
|
|
19
13
|
import * as S from './FileUploader.styles';
|
|
20
|
-
|
|
21
14
|
function readAsText(file) {
|
|
22
15
|
return new Promise(function (resolve) {
|
|
23
16
|
// eslint-disable-next-line no-undef
|
|
24
17
|
var reader = new FileReader();
|
|
25
18
|
file.type !== 'text/plain' && resolve(null);
|
|
26
|
-
|
|
27
19
|
reader.onerror = function () {
|
|
28
20
|
return resolve(null);
|
|
29
21
|
};
|
|
30
|
-
|
|
31
22
|
reader.onload = function () {
|
|
32
23
|
return resolve(reader.result);
|
|
33
24
|
};
|
|
34
|
-
|
|
35
25
|
reader.readAsText(file);
|
|
36
26
|
});
|
|
37
27
|
}
|
|
38
|
-
|
|
39
28
|
var FileUploader = function FileUploader(_ref) {
|
|
40
29
|
var className = _ref.className,
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
30
|
+
onUpload = _ref.onUpload,
|
|
31
|
+
disabled = _ref.disabled,
|
|
32
|
+
accept = _ref.accept,
|
|
33
|
+
error = _ref.error,
|
|
34
|
+
label = _ref.label,
|
|
35
|
+
_onRemove = _ref.onRemove,
|
|
36
|
+
description = _ref.description,
|
|
37
|
+
tooltip = _ref.tooltip,
|
|
38
|
+
filesAmount = _ref.filesAmount,
|
|
39
|
+
_ref$mode = _ref.mode,
|
|
40
|
+
mode = _ref$mode === void 0 ? 'single' : _ref$mode,
|
|
41
|
+
_ref$removable = _ref.removable,
|
|
42
|
+
removable = _ref$removable === void 0 ? true : _ref$removable,
|
|
43
|
+
_ref$files = _ref.files,
|
|
44
|
+
files = _ref$files === void 0 ? [] : _ref$files,
|
|
45
|
+
retry = _ref.retry,
|
|
46
|
+
texts = _ref.texts;
|
|
59
47
|
var _useState = useState(true),
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
48
|
+
uploadSuccess = _useState[0],
|
|
49
|
+
setUploadSuccess = _useState[1];
|
|
63
50
|
var finalTexts = _objectSpread({
|
|
64
51
|
buttonLabel: /*#__PURE__*/React.createElement(FormattedMessage, {
|
|
65
52
|
id: "DS.FILE-UPLOADER.BUTTON-LABEL",
|
|
@@ -74,7 +61,6 @@ var FileUploader = function FileUploader(_ref) {
|
|
|
74
61
|
defaultMessage: "Description"
|
|
75
62
|
})
|
|
76
63
|
}, texts);
|
|
77
|
-
|
|
78
64
|
var readFilesContent = useCallback(function (addedFiles) {
|
|
79
65
|
var readerPromises = addedFiles.map(function (file) {
|
|
80
66
|
return readAsText(file);
|
|
@@ -90,11 +76,9 @@ var FileUploader = function FileUploader(_ref) {
|
|
|
90
76
|
}, [onUpload]);
|
|
91
77
|
var onDrop = useCallback(function (acceptedFiles) {
|
|
92
78
|
var possibleUpload = 0;
|
|
93
|
-
|
|
94
79
|
if (filesAmount) {
|
|
95
80
|
possibleUpload = filesAmount - files.length;
|
|
96
81
|
}
|
|
97
|
-
|
|
98
82
|
if (possibleUpload !== 0 && acceptedFiles.length > possibleUpload) {
|
|
99
83
|
setUploadSuccess(false);
|
|
100
84
|
} else {
|
|
@@ -102,29 +86,24 @@ var FileUploader = function FileUploader(_ref) {
|
|
|
102
86
|
readFilesContent(acceptedFiles);
|
|
103
87
|
}
|
|
104
88
|
}, [filesAmount, files, setUploadSuccess, readFilesContent]);
|
|
105
|
-
|
|
106
89
|
var _useDropzone = useDropzone({
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
90
|
+
accept: accept ? accept.join(',') : undefined,
|
|
91
|
+
multiple: mode !== 'single',
|
|
92
|
+
onDrop: onDrop,
|
|
93
|
+
disabled: disabled
|
|
94
|
+
}),
|
|
95
|
+
getRootProps = _useDropzone.getRootProps,
|
|
96
|
+
getInputProps = _useDropzone.getInputProps,
|
|
97
|
+
isDragActive = _useDropzone.isDragActive;
|
|
116
98
|
if (filesAmount && filesAmount < 1) {
|
|
117
99
|
// eslint-disable-next-line no-param-reassign
|
|
118
100
|
filesAmount = 1;
|
|
119
101
|
throw new Error('Invalid value of property "filesAmount" ');
|
|
120
102
|
}
|
|
121
|
-
|
|
122
103
|
var hasError = Boolean(error) || !uploadSuccess;
|
|
123
|
-
|
|
124
104
|
var _useState2 = useState(false),
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
105
|
+
pressed = _useState2[0],
|
|
106
|
+
setPressed = _useState2[1];
|
|
128
107
|
var errors = hasError && !uploadSuccess ? [error].concat('To many files uploaded') : [error];
|
|
129
108
|
return /*#__PURE__*/React.createElement(S.Container, {
|
|
130
109
|
className: "ds-file-uploader " + (className || '')
|
|
@@ -164,7 +143,8 @@ var FileUploader = function FileUploader(_ref) {
|
|
|
164
143
|
component: /*#__PURE__*/React.createElement(AddM, null),
|
|
165
144
|
size: 24
|
|
166
145
|
}), /*#__PURE__*/React.createElement(S.DropAreaLabel, null, finalTexts.buttonLabel))))), files.length > 0 && files.map(function (file, index) {
|
|
167
|
-
return /*#__PURE__*/React.createElement(FileView
|
|
146
|
+
return /*#__PURE__*/React.createElement(FileView
|
|
147
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
168
148
|
, {
|
|
169
149
|
key: index,
|
|
170
150
|
texts: texts,
|
|
@@ -185,5 +165,4 @@ var FileUploader = function FileUploader(_ref) {
|
|
|
185
165
|
hasError: hasError
|
|
186
166
|
}, description));
|
|
187
167
|
};
|
|
188
|
-
|
|
189
168
|
export default FileUploader;
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
-
|
|
3
2
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
|
|
5
3
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
|
|
7
4
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
8
|
-
|
|
9
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
10
|
-
|
|
11
6
|
import React, { useState } from 'react';
|
|
12
7
|
import filesize from 'filesize.js';
|
|
13
8
|
import ProgressBar from '@synerise/ds-progress-bar';
|
|
@@ -33,25 +28,21 @@ var mapperOfIcons = {
|
|
|
33
28
|
'application/vnd.openxmlformats-officedocument.presentationml.presentation': /*#__PURE__*/React.createElement(FileTypePptx, null),
|
|
34
29
|
'text/csv': /*#__PURE__*/React.createElement(FileTypeTxt, null)
|
|
35
30
|
};
|
|
36
|
-
|
|
37
31
|
var FileView = function FileView(_ref) {
|
|
38
32
|
var data = _ref.data,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
33
|
+
texts = _ref.texts,
|
|
34
|
+
onRemove = _ref.onRemove,
|
|
35
|
+
removable = _ref.removable,
|
|
36
|
+
retry = _ref.retry,
|
|
37
|
+
retryButtonProps = _ref.retryButtonProps;
|
|
45
38
|
var getFriendlySize = function getFriendlySize(size) {
|
|
46
39
|
return filesize(size || 0);
|
|
47
40
|
};
|
|
48
|
-
|
|
49
41
|
var disabled = data.disabled,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
42
|
+
error = data.error,
|
|
43
|
+
file = data.file,
|
|
44
|
+
progress = data.progress,
|
|
45
|
+
success = data.success;
|
|
55
46
|
var finalTexts = _objectSpread({
|
|
56
47
|
size: /*#__PURE__*/React.createElement(FormattedMessage, {
|
|
57
48
|
id: "DS.FILE-UPLOADER.SIZE",
|
|
@@ -90,19 +81,15 @@ var FileView = function FileView(_ref) {
|
|
|
90
81
|
defaultMessage: "Retry"
|
|
91
82
|
})
|
|
92
83
|
}, texts);
|
|
93
|
-
|
|
94
84
|
var hasError = !!error;
|
|
95
85
|
var hasProgress = typeof progress === 'number';
|
|
96
|
-
|
|
97
86
|
var _useState = useState(false),
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
87
|
+
pressed = _useState[0],
|
|
88
|
+
setPressed = _useState[1];
|
|
101
89
|
var handleRemove = function handleRemove() {
|
|
102
90
|
onRemove && onRemove();
|
|
103
91
|
setPressed(false);
|
|
104
92
|
};
|
|
105
|
-
|
|
106
93
|
return /*#__PURE__*/React.createElement(S.FileViewContainer, {
|
|
107
94
|
success: success,
|
|
108
95
|
pressed: pressed,
|
|
@@ -137,7 +124,6 @@ var FileView = function FileView(_ref) {
|
|
|
137
124
|
}))))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(S.Name, null, file.name), /*#__PURE__*/React.createElement(S.SizeOrError, null, error || /*#__PURE__*/React.createElement(React.Fragment, null, finalTexts.size, " ", getFriendlySize(file.size))))), error && retry && !hasProgress && /*#__PURE__*/React.createElement(Button, {
|
|
138
125
|
onClick: function onClick(event) {
|
|
139
126
|
onRemove && onRemove();
|
|
140
|
-
|
|
141
127
|
if (retryButtonProps != null && retryButtonProps.onClick) {
|
|
142
128
|
retryButtonProps.onClick(event);
|
|
143
129
|
}
|
|
@@ -181,5 +167,4 @@ var FileView = function FileView(_ref) {
|
|
|
181
167
|
size: 20
|
|
182
168
|
})))));
|
|
183
169
|
};
|
|
184
|
-
|
|
185
170
|
export default FileView;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
2
|
import React from 'react';
|
|
4
3
|
import { useDropzone } from 'react-dropzone';
|
|
5
4
|
import Icon, { InfoFillS, Add3M } from '@synerise/ds-icon';
|
|
@@ -7,48 +6,41 @@ import Tooltip from '@synerise/ds-tooltip';
|
|
|
7
6
|
import Button from '@synerise/ds-button';
|
|
8
7
|
import * as S from './ItemUploader.styles';
|
|
9
8
|
import FileViewItem from './UploaderButton/FileViewItem';
|
|
10
|
-
|
|
11
9
|
function readAsText(file) {
|
|
12
10
|
return new Promise(function (resolve) {
|
|
13
11
|
// eslint-disable-next-line no-undef
|
|
14
12
|
var reader = new FileReader();
|
|
15
13
|
file.type !== 'text/plain' && resolve(null);
|
|
16
|
-
|
|
17
14
|
reader.onerror = function () {
|
|
18
15
|
return resolve(null);
|
|
19
16
|
};
|
|
20
|
-
|
|
21
17
|
reader.onload = function () {
|
|
22
18
|
return resolve(reader.result);
|
|
23
19
|
};
|
|
24
|
-
|
|
25
20
|
reader.readAsText(file);
|
|
26
21
|
});
|
|
27
22
|
}
|
|
28
|
-
|
|
29
23
|
var ItemUploader = function ItemUploader(_ref) {
|
|
30
24
|
var className = _ref.className,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
25
|
+
onUpload = _ref.onUpload,
|
|
26
|
+
disabled = _ref.disabled,
|
|
27
|
+
accept = _ref.accept,
|
|
28
|
+
label = _ref.label,
|
|
29
|
+
_onRemove = _ref.onRemove,
|
|
30
|
+
description = _ref.description,
|
|
31
|
+
tooltip = _ref.tooltip,
|
|
32
|
+
filesAmount = _ref.filesAmount,
|
|
33
|
+
error = _ref.error,
|
|
34
|
+
_ref$mode = _ref.mode,
|
|
35
|
+
mode = _ref$mode === void 0 ? 'single' : _ref$mode,
|
|
36
|
+
_ref$removable = _ref.removable,
|
|
37
|
+
removable = _ref$removable === void 0 ? true : _ref$removable,
|
|
38
|
+
_ref$files = _ref.files,
|
|
39
|
+
files = _ref$files === void 0 ? [] : _ref$files,
|
|
40
|
+
texts = _ref.texts;
|
|
48
41
|
var _React$useState = React.useState(true),
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
uploadSuccess = _React$useState[0],
|
|
43
|
+
setUploadSuccess = _React$useState[1];
|
|
52
44
|
var readFilesContent = React.useCallback(function (addedFiles) {
|
|
53
45
|
var readerPromises = addedFiles.map(function (file) {
|
|
54
46
|
return readAsText(file);
|
|
@@ -64,11 +56,9 @@ var ItemUploader = function ItemUploader(_ref) {
|
|
|
64
56
|
}, [onUpload]);
|
|
65
57
|
var onDrop = React.useCallback(function (acceptedFiles) {
|
|
66
58
|
var possibleUpload = 0;
|
|
67
|
-
|
|
68
59
|
if (filesAmount) {
|
|
69
60
|
possibleUpload = filesAmount - files.length;
|
|
70
61
|
}
|
|
71
|
-
|
|
72
62
|
if (possibleUpload !== 0 && acceptedFiles.length > possibleUpload) {
|
|
73
63
|
setUploadSuccess(false);
|
|
74
64
|
} else {
|
|
@@ -76,22 +66,19 @@ var ItemUploader = function ItemUploader(_ref) {
|
|
|
76
66
|
readFilesContent(acceptedFiles);
|
|
77
67
|
}
|
|
78
68
|
}, [filesAmount, files, setUploadSuccess, readFilesContent]);
|
|
79
|
-
|
|
80
69
|
var _useDropzone = useDropzone({
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
70
|
+
accept: accept ? accept.join(',') : undefined,
|
|
71
|
+
multiple: mode !== 'single',
|
|
72
|
+
onDrop: onDrop,
|
|
73
|
+
disabled: disabled
|
|
74
|
+
}),
|
|
75
|
+
getRootProps = _useDropzone.getRootProps,
|
|
76
|
+
getInputProps = _useDropzone.getInputProps;
|
|
89
77
|
if (filesAmount && filesAmount < 1) {
|
|
90
78
|
// eslint-disable-next-line no-param-reassign
|
|
91
79
|
filesAmount = 1;
|
|
92
80
|
throw new Error('Invalid value of property "filesAmount" ');
|
|
93
81
|
}
|
|
94
|
-
|
|
95
82
|
var hasError = Boolean(error) || !uploadSuccess;
|
|
96
83
|
var errors = hasError && !uploadSuccess ? [error].concat('To many files uploaded') : [error];
|
|
97
84
|
return /*#__PURE__*/React.createElement(S.Container, {
|
|
@@ -136,5 +123,4 @@ var ItemUploader = function ItemUploader(_ref) {
|
|
|
136
123
|
hasError: hasError
|
|
137
124
|
}, description));
|
|
138
125
|
};
|
|
139
|
-
|
|
140
126
|
export default ItemUploader;
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
-
|
|
3
2
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
-
|
|
5
3
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
|
|
7
4
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
8
|
-
|
|
9
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
10
|
-
|
|
11
6
|
import React, { useState } from 'react';
|
|
12
7
|
import { FormattedMessage } from 'react-intl';
|
|
13
8
|
import Tooltip from '@synerise/ds-tooltip';
|
|
@@ -21,17 +16,15 @@ var mapperOfIcons = {
|
|
|
21
16
|
'image/svg+xml': /*#__PURE__*/React.createElement(FileTypeTextM, null),
|
|
22
17
|
'text/csv': /*#__PURE__*/React.createElement(FileTypeTextM, null)
|
|
23
18
|
};
|
|
24
|
-
|
|
25
19
|
var FileViewItem = function FileViewItem(_ref) {
|
|
26
20
|
var data = _ref.data,
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
21
|
+
texts = _ref.texts,
|
|
22
|
+
onRemove = _ref.onRemove,
|
|
23
|
+
removable = _ref.removable;
|
|
30
24
|
var disabled = data.disabled,
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
error = data.error,
|
|
26
|
+
file = data.file,
|
|
27
|
+
progress = data.progress;
|
|
35
28
|
var finalTexts = _objectSpread({
|
|
36
29
|
retryTooltip: /*#__PURE__*/React.createElement(FormattedMessage, {
|
|
37
30
|
id: "DS.FILE-UPLOADER.RETRY-TOOLTIP",
|
|
@@ -42,19 +35,15 @@ var FileViewItem = function FileViewItem(_ref) {
|
|
|
42
35
|
defaultMessage: "Remove"
|
|
43
36
|
})
|
|
44
37
|
}, texts);
|
|
45
|
-
|
|
46
38
|
var hasError = !!error;
|
|
47
39
|
var hasProgress = typeof progress === 'number';
|
|
48
|
-
|
|
49
40
|
var _useState = useState(false),
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
41
|
+
removeButtonPressed = _useState[0],
|
|
42
|
+
removeButtonSetPressed = _useState[1];
|
|
53
43
|
var handleRemove = function handleRemove() {
|
|
54
44
|
onRemove && onRemove();
|
|
55
45
|
removeButtonSetPressed(false);
|
|
56
46
|
};
|
|
57
|
-
|
|
58
47
|
return /*#__PURE__*/React.createElement(S.FileViewContainer, null, /*#__PURE__*/React.createElement(Tooltip, {
|
|
59
48
|
overlayStyle: {
|
|
60
49
|
maxWidth: '350px'
|
|
@@ -93,5 +82,4 @@ var FileViewItem = function FileViewItem(_ref) {
|
|
|
93
82
|
size: 16
|
|
94
83
|
}))))));
|
|
95
84
|
};
|
|
96
|
-
|
|
97
85
|
export default FileViewItem;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synerise/ds-file-uploader",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.4",
|
|
4
4
|
"description": "FileUploader UI Component for the Synerise Design System",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"repository": "Synerise/synerise-design",
|
|
@@ -34,13 +34,13 @@
|
|
|
34
34
|
],
|
|
35
35
|
"types": "dist/index.d.ts",
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@synerise/ds-button": "^0.21.
|
|
38
|
-
"@synerise/ds-icon": "^0.67.
|
|
37
|
+
"@synerise/ds-button": "^0.21.20",
|
|
38
|
+
"@synerise/ds-icon": "^0.67.1",
|
|
39
39
|
"@synerise/ds-loader": "^0.3.22",
|
|
40
|
-
"@synerise/ds-popconfirm": "^0.10.
|
|
41
|
-
"@synerise/ds-progress-bar": "^0.7.
|
|
42
|
-
"@synerise/ds-tooltip": "^0.14.
|
|
43
|
-
"@synerise/ds-typography": "^0.16.
|
|
40
|
+
"@synerise/ds-popconfirm": "^0.10.62",
|
|
41
|
+
"@synerise/ds-progress-bar": "^0.7.15",
|
|
42
|
+
"@synerise/ds-tooltip": "^0.14.50",
|
|
43
|
+
"@synerise/ds-typography": "^0.16.7",
|
|
44
44
|
"@synerise/ds-utils": "^0.31.2",
|
|
45
45
|
"filesize.js": "^2.0.0",
|
|
46
46
|
"react-dropzone": "^10.2.1"
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"react-intl": ">=3.12.0 <= 6.8",
|
|
52
52
|
"styled-components": "5.0.1"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "4a56ee7ef816c22341ce704154dc7aa65b7d1dcc"
|
|
55
55
|
}
|