@bigbinary/neeto-image-uploader-frontend 2.3.10 → 2.3.14
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/README.md +1 -0
- package/app/javascript/src/translations/en.json +3 -2
- package/dist/AssetLibrary.js +6 -5
- package/dist/AssetLibrary.js.map +1 -1
- package/dist/BasicImageUploader.js +3 -3
- package/dist/BasicImageUploader.js.map +1 -1
- package/dist/ImageUploader.js +9 -4
- package/dist/ImageUploader.js.map +1 -1
- package/dist/ImageWithFallback-Csv6Oivd.js +51 -0
- package/dist/ImageWithFallback-Csv6Oivd.js.map +1 -0
- package/dist/ImageWithFallback-DzT_N2Su.js +53 -0
- package/dist/ImageWithFallback-DzT_N2Su.js.map +1 -0
- package/dist/cjs/AssetLibrary.js +6 -5
- package/dist/cjs/AssetLibrary.js.map +1 -1
- package/dist/cjs/BasicImageUploader.js +4 -4
- package/dist/cjs/BasicImageUploader.js.map +1 -1
- package/dist/cjs/ImageUploader.js +14 -9
- package/dist/cjs/ImageUploader.js.map +1 -1
- package/dist/cjs/hooks.js +1 -1
- package/dist/cjs/index.js +6 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/{index-vkjNhoF3.js → index-2Z-tiNdY.js} +819 -391
- package/dist/index-2Z-tiNdY.js.map +1 -0
- package/dist/{index-By7BkNOh.js → index-BsGnAVUR.js} +846 -418
- package/dist/index-BsGnAVUR.js.map +1 -0
- package/dist/index-BtHfh_eu.js.map +1 -1
- package/dist/index-CZjb2iXB.js.map +1 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/query-B0eDmse7.js.map +1 -1
- package/dist/query-B7ahlELA.js.map +1 -1
- package/dist/useImageUploader-Bm9TukCy.js.map +1 -1
- package/dist/useImageUploader-RX88_Cp-.js.map +1 -1
- package/dist/{useProfileImageUpload-UUrg2Lkw.js → useProfileImageUpload-C6Gat9NR.js} +6 -6
- package/dist/useProfileImageUpload-C6Gat9NR.js.map +1 -0
- package/dist/useProfileImageUpload-KpvcwEqx.js.map +1 -1
- package/dist/utils-C58No1u2.js +410 -0
- package/dist/utils-C58No1u2.js.map +1 -0
- package/dist/utils-CFUW0P-E.js +382 -0
- package/dist/utils-CFUW0P-E.js.map +1 -0
- package/dist/utils.js.map +1 -1
- package/package.json +58 -54
- package/types.d.ts +1 -0
- package/dist/ImageWithFallback-Dz9cyV2n.js +0 -144
- package/dist/ImageWithFallback-Dz9cyV2n.js.map +0 -1
- package/dist/ImageWithFallback-c9ANE1IE.js +0 -141
- package/dist/ImageWithFallback-c9ANE1IE.js.map +0 -1
- package/dist/index-By7BkNOh.js.map +0 -1
- package/dist/index-vkjNhoF3.js.map +0 -1
- package/dist/useProfileImageUpload-UUrg2Lkw.js.map +0 -1
- package/dist/utils-B5WMTXlT.js +0 -256
- package/dist/utils-B5WMTXlT.js.map +0 -1
- package/dist/utils-tPaqWDxV.js +0 -280
- package/dist/utils-tPaqWDxV.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-image-uploader-frontend",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.14",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/bigbinary/neeto-image-uploader-nano/issues"
|
|
@@ -57,71 +57,74 @@
|
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@babel/core": "
|
|
61
|
-
"@babel/eslint-parser": "7.
|
|
62
|
-
"@babel/plugin-
|
|
63
|
-
"@babel/
|
|
64
|
-
"@babel/preset-
|
|
65
|
-
"@babel/preset-
|
|
66
|
-
"@babel/
|
|
60
|
+
"@babel/core": "7.26.0",
|
|
61
|
+
"@babel/eslint-parser": "7.25.9",
|
|
62
|
+
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
63
|
+
"@babel/plugin-transform-runtime": "7.25.9",
|
|
64
|
+
"@babel/preset-env": "7.26.0",
|
|
65
|
+
"@babel/preset-react": "7.25.9",
|
|
66
|
+
"@babel/preset-typescript": "7.26.0",
|
|
67
|
+
"@babel/runtime": "7.26.0",
|
|
67
68
|
"@bigbinary/babel-preset-neeto": "^1.0.3",
|
|
68
|
-
"@bigbinary/eslint-plugin-neeto": "1.5.
|
|
69
|
-
"@bigbinary/neeto-cist": "1.0.
|
|
70
|
-
"@bigbinary/neeto-commons-frontend": "4.
|
|
71
|
-
"@bigbinary/neeto-editor": "1.43.
|
|
72
|
-
"@bigbinary/neeto-filters-frontend": "4.3.
|
|
73
|
-
"@bigbinary/neeto-icons": "1.20.
|
|
74
|
-
"@bigbinary/neeto-molecules": "3.
|
|
75
|
-
"@bigbinary/neeto-team-members-frontend": "4.4.
|
|
76
|
-
"@bigbinary/neetoui": "8.2.
|
|
69
|
+
"@bigbinary/eslint-plugin-neeto": "1.5.6",
|
|
70
|
+
"@bigbinary/neeto-cist": "1.0.14",
|
|
71
|
+
"@bigbinary/neeto-commons-frontend": "4.12.6",
|
|
72
|
+
"@bigbinary/neeto-editor": "1.43.28",
|
|
73
|
+
"@bigbinary/neeto-filters-frontend": "4.3.10",
|
|
74
|
+
"@bigbinary/neeto-icons": "1.20.21",
|
|
75
|
+
"@bigbinary/neeto-molecules": "3.13.9",
|
|
76
|
+
"@bigbinary/neeto-team-members-frontend": "4.4.8",
|
|
77
|
+
"@bigbinary/neetoui": "8.2.45",
|
|
77
78
|
"@emotion/is-prop-valid": "1.2.0",
|
|
78
79
|
"@faker-js/faker": "8.2.0",
|
|
79
|
-
"@honeybadger-io/js": "
|
|
80
|
-
"@honeybadger-io/react": "
|
|
80
|
+
"@honeybadger-io/js": "6.10.1",
|
|
81
|
+
"@honeybadger-io/react": "6.1.25",
|
|
81
82
|
"@rails/activestorage": "7.0.8-3",
|
|
82
|
-
"@rollup/plugin-alias": "5.
|
|
83
|
+
"@rollup/plugin-alias": "5.1.1",
|
|
83
84
|
"@rollup/plugin-babel": "6.0.4",
|
|
84
85
|
"@rollup/plugin-commonjs": "25.0.7",
|
|
85
|
-
"@rollup/plugin-json": "6.0
|
|
86
|
-
"@rollup/plugin-node-resolve": "15.
|
|
86
|
+
"@rollup/plugin-json": "6.1.0",
|
|
87
|
+
"@rollup/plugin-node-resolve": "15.3.0",
|
|
87
88
|
"@rollup/plugin-replace": "5.0.4",
|
|
88
89
|
"@svgr/rollup": "8.1.0",
|
|
89
|
-
"@
|
|
90
|
-
"
|
|
90
|
+
"@tailwindcss/container-queries": "^0.1.1",
|
|
91
|
+
"@tanstack/react-query": "5.59.20",
|
|
92
|
+
"antd": "5.22.0",
|
|
91
93
|
"assert": "^2.0.0",
|
|
92
94
|
"autoprefixer": "^10.4.5",
|
|
93
|
-
"axios": "1.7.
|
|
95
|
+
"axios": "1.7.7",
|
|
94
96
|
"babel-loader": "^8.2.5",
|
|
95
97
|
"babel-plugin-istanbul": "^6.1.1",
|
|
96
98
|
"babel-plugin-js-logger": "1.0.17",
|
|
97
99
|
"babel-plugin-macros": "3.1.0",
|
|
100
|
+
"babel-plugin-module-resolver": "^5.0.0",
|
|
98
101
|
"babel-plugin-preval": "^5.1.0",
|
|
99
102
|
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
|
|
100
103
|
"babel-preset-react": "6.24.1",
|
|
101
104
|
"babel-preset-typescript": "^7.0.0-alpha.19",
|
|
102
105
|
"browserify-zlib": "^0.2.0",
|
|
103
106
|
"buffer": "^6.0.3",
|
|
104
|
-
"classnames": "2.
|
|
105
|
-
"crypto-browserify": "
|
|
107
|
+
"classnames": "2.5.1",
|
|
108
|
+
"crypto-browserify": "3.12.1",
|
|
106
109
|
"css-loader": "^6.7.1",
|
|
107
110
|
"dompurify": "^2.4.0",
|
|
108
111
|
"dotenv-webpack": "^8.0.1",
|
|
109
112
|
"eslint": "8.14.0",
|
|
110
113
|
"eslint-config-prettier": "8.5.0",
|
|
111
114
|
"eslint-plugin-cypress": "2.12.1",
|
|
112
|
-
"eslint-plugin-import": "2.
|
|
115
|
+
"eslint-plugin-import": "2.31.0",
|
|
113
116
|
"eslint-plugin-jam3": "0.2.3",
|
|
114
117
|
"eslint-plugin-json": "3.1.0",
|
|
115
|
-
"eslint-plugin-no-unsanitized": "
|
|
118
|
+
"eslint-plugin-no-unsanitized": "4.1.2",
|
|
116
119
|
"eslint-plugin-prettier": "4.0.0",
|
|
117
120
|
"eslint-plugin-promise": "6.0.0",
|
|
118
|
-
"eslint-plugin-react": "7.
|
|
121
|
+
"eslint-plugin-react": "7.37.2",
|
|
119
122
|
"eslint-plugin-react-hooks": "4.5.0",
|
|
120
123
|
"eslint-plugin-security": "^1.7.1",
|
|
121
124
|
"eslint-plugin-sonarjs": "^0.21.0",
|
|
122
125
|
"eslint-plugin-unused-imports": "2.0.0",
|
|
123
126
|
"eslint-plugin-xss": "^0.1.12",
|
|
124
|
-
"formik": "2.
|
|
127
|
+
"formik": "2.4.6",
|
|
125
128
|
"html-webpack-plugin": "5.5.0",
|
|
126
129
|
"https-browserify": "1.0.0",
|
|
127
130
|
"husky": "7.0.4",
|
|
@@ -135,7 +138,7 @@
|
|
|
135
138
|
"os-browserify": "0.3.0",
|
|
136
139
|
"path-browserify": "^1.0.1",
|
|
137
140
|
"perf_hooks": "^0.0.1",
|
|
138
|
-
"postcss": "
|
|
141
|
+
"postcss": "8.4.49",
|
|
139
142
|
"postcss-import": "^15.0.0",
|
|
140
143
|
"postcss-loader": "^7.0.1",
|
|
141
144
|
"postcss-preset-env": "7.8.2",
|
|
@@ -146,7 +149,7 @@
|
|
|
146
149
|
"ramda": "0.29.0",
|
|
147
150
|
"react": "18.2.0",
|
|
148
151
|
"react-dom": "18.2.0",
|
|
149
|
-
"react-dropzone": "14.
|
|
152
|
+
"react-dropzone": "14.3.5",
|
|
150
153
|
"react-helmet": "^6.1.0",
|
|
151
154
|
"react-i18next": "12.3.1",
|
|
152
155
|
"react-image-crop": "^10.0.9",
|
|
@@ -155,7 +158,7 @@
|
|
|
155
158
|
"react-router-dom": "5.3.3",
|
|
156
159
|
"react-toastify": "8.0.2",
|
|
157
160
|
"react_ujs": "^3.1.1",
|
|
158
|
-
"rollup": "
|
|
161
|
+
"rollup": "4.25.0",
|
|
159
162
|
"rollup-plugin-analyzer": "4.0.0",
|
|
160
163
|
"rollup-plugin-cleaner": "1.0.0",
|
|
161
164
|
"rollup-plugin-copy": "3.5.0",
|
|
@@ -168,7 +171,7 @@
|
|
|
168
171
|
"stream-browserify": "^3.0.0",
|
|
169
172
|
"stream-http": "3.2.0",
|
|
170
173
|
"style-loader": "^3.3.1",
|
|
171
|
-
"tailwindcss": "
|
|
174
|
+
"tailwindcss": "3.4.14",
|
|
172
175
|
"tty-browserify": "0.0.1",
|
|
173
176
|
"url": "^0.11.0",
|
|
174
177
|
"util": "^0.12.5",
|
|
@@ -181,26 +184,27 @@
|
|
|
181
184
|
"zustand": "4.3.2"
|
|
182
185
|
},
|
|
183
186
|
"peerDependencies": {
|
|
184
|
-
"@babel/runtime": "7.
|
|
185
|
-
"@bigbinary/neeto-cist": "1.0.
|
|
186
|
-
"@bigbinary/neeto-commons-frontend": "4.
|
|
187
|
-
"@bigbinary/neeto-editor": "1.43.
|
|
188
|
-
"@bigbinary/neeto-filters-frontend": "4.3.
|
|
189
|
-
"@bigbinary/neeto-icons": "1.20.
|
|
190
|
-
"@bigbinary/neeto-molecules": "3.
|
|
191
|
-
"@bigbinary/neeto-team-members-frontend": "4.4.
|
|
192
|
-
"@bigbinary/neetoui": "8.2.
|
|
193
|
-
"@honeybadger-io/js": "
|
|
194
|
-
"@honeybadger-io/react": "
|
|
187
|
+
"@babel/runtime": "7.26.0",
|
|
188
|
+
"@bigbinary/neeto-cist": "1.0.14",
|
|
189
|
+
"@bigbinary/neeto-commons-frontend": "4.12.6",
|
|
190
|
+
"@bigbinary/neeto-editor": "1.43.28",
|
|
191
|
+
"@bigbinary/neeto-filters-frontend": "4.3.10",
|
|
192
|
+
"@bigbinary/neeto-icons": "1.20.21",
|
|
193
|
+
"@bigbinary/neeto-molecules": "3.13.9",
|
|
194
|
+
"@bigbinary/neeto-team-members-frontend": "4.4.8",
|
|
195
|
+
"@bigbinary/neetoui": "8.2.45",
|
|
196
|
+
"@honeybadger-io/js": "6.10.1",
|
|
197
|
+
"@honeybadger-io/react": "6.1.25",
|
|
195
198
|
"@rails/activestorage": "7.0.8-3",
|
|
196
|
-
"@
|
|
197
|
-
"
|
|
198
|
-
"
|
|
199
|
+
"@tailwindcss/container-queries": "^0.1.1",
|
|
200
|
+
"@tanstack/react-query": "5.59.20",
|
|
201
|
+
"antd": "5.22.0",
|
|
202
|
+
"axios": "1.7.7",
|
|
199
203
|
"buffer": "^6.0.3",
|
|
200
|
-
"classnames": "2.
|
|
201
|
-
"crypto-browserify": "
|
|
204
|
+
"classnames": "2.5.1",
|
|
205
|
+
"crypto-browserify": "3.12.1",
|
|
202
206
|
"dompurify": "^2.4.0",
|
|
203
|
-
"formik": "2.
|
|
207
|
+
"formik": "2.4.6",
|
|
204
208
|
"https-browserify": "1.0.0",
|
|
205
209
|
"i18next": "22.5.1",
|
|
206
210
|
"js-logger": "1.6.1",
|
|
@@ -211,7 +215,7 @@
|
|
|
211
215
|
"ramda": "0.29.0",
|
|
212
216
|
"react": "18.2.0",
|
|
213
217
|
"react-dom": "18.2.0",
|
|
214
|
-
"react-dropzone": "14.
|
|
218
|
+
"react-dropzone": "14.3.5",
|
|
215
219
|
"react-helmet": "^6.1.0",
|
|
216
220
|
"react-i18next": "12.3.1",
|
|
217
221
|
"react-query": "3.39.3",
|
|
@@ -220,7 +224,7 @@
|
|
|
220
224
|
"source-map-loader": "4.0.1",
|
|
221
225
|
"stream-browserify": "^3.0.0",
|
|
222
226
|
"stream-http": "3.2.0",
|
|
223
|
-
"tailwindcss": "
|
|
227
|
+
"tailwindcss": "3.4.14",
|
|
224
228
|
"tty-browserify": "0.0.1",
|
|
225
229
|
"url": "^0.11.0",
|
|
226
230
|
"util": "^0.12.5",
|
package/types.d.ts
CHANGED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
-
var classnames = require('classnames');
|
|
5
|
-
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
|
-
var Button = require('@bigbinary/neetoui/Button');
|
|
7
|
-
var Typography = require('@bigbinary/neetoui/Typography');
|
|
8
|
-
var ProgressBar = require('@bigbinary/neetoui/ProgressBar');
|
|
9
|
-
var ramda = require('ramda');
|
|
10
|
-
var reactI18next = require('react-i18next');
|
|
11
|
-
var utils = require('./utils-tPaqWDxV.js');
|
|
12
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
13
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
14
|
-
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
15
|
-
var require$$0 = require('react');
|
|
16
|
-
|
|
17
|
-
var getAllowedTypes = function getAllowedTypes(uploadConfig) {
|
|
18
|
-
return ramda.pipe(ramda.values, ramda.flatten, ramda.map(function (extension) {
|
|
19
|
-
return extension.slice(1);
|
|
20
|
-
}), ramda.map(ramda.toUpper), ramda.join(", "))(uploadConfig.allowedImageTypes);
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
24
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
25
|
-
var ImageDirectUpload = function ImageDirectUpload(_ref) {
|
|
26
|
-
var _ref$uploadConfig = _ref.uploadConfig,
|
|
27
|
-
uploadConfig = _ref$uploadConfig === void 0 ? utils.DEFAULT_UPLOAD_CONFIG : _ref$uploadConfig,
|
|
28
|
-
_ref$onDrop = _ref.onDrop,
|
|
29
|
-
onDrop = _ref$onDrop === void 0 ? neetoCist.noop : _ref$onDrop,
|
|
30
|
-
_ref$isDisabled = _ref.isDisabled,
|
|
31
|
-
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
32
|
-
setIsAssetLibraryOpen = _ref.setIsAssetLibraryOpen;
|
|
33
|
-
var _useUploadDropzone = utils.useUploadDropzone({
|
|
34
|
-
uploadConfig: uploadConfig,
|
|
35
|
-
onDrop: onDrop
|
|
36
|
-
}),
|
|
37
|
-
getRootProps = _useUploadDropzone.getRootProps,
|
|
38
|
-
getInputProps = _useUploadDropzone.getInputProps,
|
|
39
|
-
isDragActive = _useUploadDropzone.isDragActive,
|
|
40
|
-
uploadProgress = _useUploadDropzone.uploadProgress;
|
|
41
|
-
var shouldShowProgress = !!(uploadProgress && !ramda.equals(uploadProgress, 1));
|
|
42
|
-
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$2(_objectSpread$2({}, getRootProps()), {}, {
|
|
43
|
-
className: classnames(utils.DROPZONE_ROOT_DIV_CLASSNAME, {
|
|
44
|
-
"neeto-ui-border-gray-300": !isDragActive,
|
|
45
|
-
"neeto-ui-border-gray-700": isDragActive
|
|
46
|
-
}),
|
|
47
|
-
children: shouldShowProgress ? /*#__PURE__*/jsxRuntime.jsx(ProgressBar, {
|
|
48
|
-
progressPercentage: uploadProgress,
|
|
49
|
-
progressValue: "".concat(uploadProgress, "%")
|
|
50
|
-
}) : /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
51
|
-
className: "flex flex-col space-y-1",
|
|
52
|
-
children: [!isDisabled && /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
53
|
-
className: "neeto-ui-text-gray-800 text-center leading-4",
|
|
54
|
-
style: "body2",
|
|
55
|
-
children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
56
|
-
i18nKey: "neetoImageUploader.imageUpload.dragAndDropOrBrowseFile",
|
|
57
|
-
components: {
|
|
58
|
-
span: /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
59
|
-
"data-cy": "neeto-image-uploader-browse-text",
|
|
60
|
-
style: "link"
|
|
61
|
-
})
|
|
62
|
-
}
|
|
63
|
-
})
|
|
64
|
-
}), setIsAssetLibraryOpen && /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
65
|
-
className: "text-center leading-4",
|
|
66
|
-
style: "body2",
|
|
67
|
-
onClick: function onClick(e) {
|
|
68
|
-
e.stopPropagation();
|
|
69
|
-
setIsAssetLibraryOpen(true);
|
|
70
|
-
},
|
|
71
|
-
children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
72
|
-
i18nKey: "neetoImageUploader.imageUpload.selectImagefromImageLibrary",
|
|
73
|
-
components: {
|
|
74
|
-
span: /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
75
|
-
"data-cy": "open-asset-library-button",
|
|
76
|
-
style: "link"
|
|
77
|
-
})
|
|
78
|
-
}
|
|
79
|
-
})
|
|
80
|
-
}), /*#__PURE__*/jsxRuntime.jsx("input", _objectSpread$2(_objectSpread$2({}, getInputProps()), {}, {
|
|
81
|
-
"data-cy": "neeto-image-uploader-file-input",
|
|
82
|
-
disabled: isDisabled
|
|
83
|
-
})), /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
84
|
-
className: "neeto-ui-text-gray-700 text-center leading-4",
|
|
85
|
-
"data-cy": "neeto-image-uploader-restriction-message",
|
|
86
|
-
lineHeight: "snug",
|
|
87
|
-
style: "nano",
|
|
88
|
-
children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
89
|
-
i18nKey: "neetoImageUploader.imageUpload.restrictionMessage",
|
|
90
|
-
values: {
|
|
91
|
-
fileTypes: getAllowedTypes(uploadConfig),
|
|
92
|
-
size: uploadConfig === null || uploadConfig === void 0 ? void 0 : uploadConfig.maxImageSize
|
|
93
|
-
}
|
|
94
|
-
})
|
|
95
|
-
})]
|
|
96
|
-
})
|
|
97
|
-
}));
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
var _excluded$1 = ["className"];
|
|
101
|
-
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
102
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
103
|
-
var ImagePlaceholder = function ImagePlaceholder(_ref) {
|
|
104
|
-
var _ref$className = _ref.className,
|
|
105
|
-
className = _ref$className === void 0 ? "" : _ref$className,
|
|
106
|
-
props = _objectWithoutProperties(_ref, _excluded$1);
|
|
107
|
-
return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread$1({
|
|
108
|
-
className: classnames("neeto-ui-bg-gray-200", _defineProperty({}, className, className))
|
|
109
|
-
}, props));
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
var _excluded = ["src", "className", "fallback"];
|
|
113
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
114
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
115
|
-
var ImageWithFallback = function ImageWithFallback(_ref) {
|
|
116
|
-
var src = _ref.src,
|
|
117
|
-
_ref$className = _ref.className,
|
|
118
|
-
className = _ref$className === void 0 ? "h-full w-full" : _ref$className,
|
|
119
|
-
_ref$fallback = _ref.fallback,
|
|
120
|
-
Fallback = _ref$fallback === void 0 ? ImagePlaceholder : _ref$fallback,
|
|
121
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
|
122
|
-
var _useState = require$$0.useState(false),
|
|
123
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
124
|
-
isLoaded = _useState2[0],
|
|
125
|
-
setIsLoaded = _useState2[1];
|
|
126
|
-
require$$0.useEffect(function () {
|
|
127
|
-
var img = new Image();
|
|
128
|
-
img.onload = function () {
|
|
129
|
-
setIsLoaded(true);
|
|
130
|
-
};
|
|
131
|
-
img.src = src;
|
|
132
|
-
}, [src]);
|
|
133
|
-
return isLoaded ? /*#__PURE__*/jsxRuntime.jsx("img", _objectSpread(_objectSpread({}, _objectSpread({
|
|
134
|
-
src: src
|
|
135
|
-
}, props)), {}, {
|
|
136
|
-
className: "h-full w-auto object-contain"
|
|
137
|
-
})) : /*#__PURE__*/jsxRuntime.jsx(Fallback, _objectSpread({}, _objectSpread({
|
|
138
|
-
className: className
|
|
139
|
-
}, props)));
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
exports.ImageDirectUpload = ImageDirectUpload;
|
|
143
|
-
exports.ImageWithFallback = ImageWithFallback;
|
|
144
|
-
//# sourceMappingURL=ImageWithFallback-Dz9cyV2n.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImageWithFallback-Dz9cyV2n.js","sources":["../app/javascript/src/components/ImageUploader/utils.js","../app/javascript/src/components/common/ImageDirectUpload.jsx","../app/javascript/src/components/common/ImagePlaceholder.jsx","../app/javascript/src/components/common/ImageWithFallback.jsx"],"sourcesContent":["import { flatten, pipe, join, map, toUpper, values } from \"ramda\";\n\nexport const getAllowedTypes = uploadConfig =>\n pipe(\n values,\n flatten,\n map(extension => extension.slice(1)),\n map(toUpper),\n join(\", \")\n )(uploadConfig.allowedImageTypes);\n","import classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Button, Typography, ProgressBar } from \"neetoui\";\nimport { equals } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport { DEFAULT_UPLOAD_CONFIG } from \"components/ImageUploader/constants\";\nimport { getAllowedTypes } from \"components/ImageUploader/utils\";\nimport useUploadDropzone from \"hooks/useUploadDropzone\";\n\nimport { DROPZONE_ROOT_DIV_CLASSNAME } from \"./constants\";\n\nconst ImageDirectUpload = ({\n uploadConfig = DEFAULT_UPLOAD_CONFIG,\n onDrop = noop,\n isDisabled = false,\n setIsAssetLibraryOpen,\n}) => {\n const { getRootProps, getInputProps, isDragActive, uploadProgress } =\n useUploadDropzone({ uploadConfig, onDrop });\n\n const shouldShowProgress = !!(uploadProgress && !equals(uploadProgress, 1));\n\n return (\n <div\n {...getRootProps()}\n className={classnames(DROPZONE_ROOT_DIV_CLASSNAME, {\n \"neeto-ui-border-gray-300\": !isDragActive,\n \"neeto-ui-border-gray-700\": isDragActive,\n })}\n >\n {shouldShowProgress ? (\n <ProgressBar\n progressPercentage={uploadProgress}\n progressValue={`${uploadProgress}%`}\n />\n ) : (\n <div className=\"flex flex-col space-y-1\">\n {!isDisabled && (\n <Typography\n className=\"neeto-ui-text-gray-800 text-center leading-4\"\n style=\"body2\"\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.dragAndDropOrBrowseFile\"\n components={{\n span: (\n <Button\n data-cy=\"neeto-image-uploader-browse-text\"\n style=\"link\"\n />\n ),\n }}\n />\n </Typography>\n )}\n {setIsAssetLibraryOpen && (\n <Typography\n className=\"text-center leading-4\"\n style=\"body2\"\n onClick={e => {\n e.stopPropagation();\n setIsAssetLibraryOpen(true);\n }}\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.selectImagefromImageLibrary\"\n components={{\n span: (\n <Button data-cy=\"open-asset-library-button\" style=\"link\" />\n ),\n }}\n />\n </Typography>\n )}\n <input\n {...getInputProps()}\n data-cy=\"neeto-image-uploader-file-input\"\n disabled={isDisabled}\n />\n <Typography\n className=\"neeto-ui-text-gray-700 text-center leading-4\"\n data-cy=\"neeto-image-uploader-restriction-message\"\n lineHeight=\"snug\"\n style=\"nano\"\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.restrictionMessage\"\n values={{\n fileTypes: getAllowedTypes(uploadConfig),\n size: uploadConfig?.maxImageSize,\n }}\n />\n </Typography>\n </div>\n )}\n </div>\n );\n};\n\nexport default ImageDirectUpload;\n","import classnames from \"classnames\";\n\nconst ImagePlaceholder = ({ className = \"\", ...props }) => (\n <div\n className={classnames(\"neeto-ui-bg-gray-200\", {\n [className]: className,\n })}\n {...props}\n />\n);\n\nexport default ImagePlaceholder;\n","import { useEffect, useState } from \"react\";\n\nimport ImagePlaceholder from \"./ImagePlaceholder\";\n\nconst ImageWithFallback = ({\n src,\n className = \"h-full w-full\",\n fallback: Fallback = ImagePlaceholder,\n ...props\n}) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n const img = new Image();\n img.onload = () => {\n setIsLoaded(true);\n };\n img.src = src;\n }, [src]);\n\n return isLoaded ? (\n <img {...{ src, ...props }} className=\"h-full w-auto object-contain\" />\n ) : (\n <Fallback {...{ className, ...props }} />\n );\n};\n\nexport default ImageWithFallback;\n"],"names":["getAllowedTypes","uploadConfig","pipe","values","flatten","map","extension","slice","toUpper","join","allowedImageTypes","ImageDirectUpload","_ref","_ref$uploadConfig","DEFAULT_UPLOAD_CONFIG","_ref$onDrop","onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_useUploadDropzone","useUploadDropzone","getRootProps","getInputProps","isDragActive","uploadProgress","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","DROPZONE_ROOT_DIV_CLASSNAME","children","ProgressBar","progressPercentage","progressValue","concat","_jsxs","Typography","style","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","maxImageSize","ImagePlaceholder","_ref$className","props","_objectWithoutProperties","_excluded","_defineProperty","ImageWithFallback","src","_ref$fallback","fallback","Fallback","_useState","useState","_useState2","_slicedToArray","isLoaded","setIsLoaded","useEffect","img","Image","onload"],"mappings":"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"}
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
-
import classnames from 'classnames';
|
|
3
|
-
import { noop } from '@bigbinary/neeto-cist';
|
|
4
|
-
import Button from '@bigbinary/neetoui/Button';
|
|
5
|
-
import Typography from '@bigbinary/neetoui/Typography';
|
|
6
|
-
import ProgressBar from '@bigbinary/neetoui/ProgressBar';
|
|
7
|
-
import { pipe, values, flatten, map, toUpper, join, equals } from 'ramda';
|
|
8
|
-
import { Trans } from 'react-i18next';
|
|
9
|
-
import { u as useUploadDropzone, b as DROPZONE_ROOT_DIV_CLASSNAME, D as DEFAULT_UPLOAD_CONFIG } from './utils-B5WMTXlT.js';
|
|
10
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
11
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
12
|
-
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
13
|
-
import { useState, useEffect } from 'react';
|
|
14
|
-
|
|
15
|
-
var getAllowedTypes = function getAllowedTypes(uploadConfig) {
|
|
16
|
-
return pipe(values, flatten, map(function (extension) {
|
|
17
|
-
return extension.slice(1);
|
|
18
|
-
}), map(toUpper), join(", "))(uploadConfig.allowedImageTypes);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
|
-
var ImageDirectUpload = function ImageDirectUpload(_ref) {
|
|
24
|
-
var _ref$uploadConfig = _ref.uploadConfig,
|
|
25
|
-
uploadConfig = _ref$uploadConfig === void 0 ? DEFAULT_UPLOAD_CONFIG : _ref$uploadConfig,
|
|
26
|
-
_ref$onDrop = _ref.onDrop,
|
|
27
|
-
onDrop = _ref$onDrop === void 0 ? noop : _ref$onDrop,
|
|
28
|
-
_ref$isDisabled = _ref.isDisabled,
|
|
29
|
-
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
30
|
-
setIsAssetLibraryOpen = _ref.setIsAssetLibraryOpen;
|
|
31
|
-
var _useUploadDropzone = useUploadDropzone({
|
|
32
|
-
uploadConfig: uploadConfig,
|
|
33
|
-
onDrop: onDrop
|
|
34
|
-
}),
|
|
35
|
-
getRootProps = _useUploadDropzone.getRootProps,
|
|
36
|
-
getInputProps = _useUploadDropzone.getInputProps,
|
|
37
|
-
isDragActive = _useUploadDropzone.isDragActive,
|
|
38
|
-
uploadProgress = _useUploadDropzone.uploadProgress;
|
|
39
|
-
var shouldShowProgress = !!(uploadProgress && !equals(uploadProgress, 1));
|
|
40
|
-
return /*#__PURE__*/jsx("div", _objectSpread$2(_objectSpread$2({}, getRootProps()), {}, {
|
|
41
|
-
className: classnames(DROPZONE_ROOT_DIV_CLASSNAME, {
|
|
42
|
-
"neeto-ui-border-gray-300": !isDragActive,
|
|
43
|
-
"neeto-ui-border-gray-700": isDragActive
|
|
44
|
-
}),
|
|
45
|
-
children: shouldShowProgress ? /*#__PURE__*/jsx(ProgressBar, {
|
|
46
|
-
progressPercentage: uploadProgress,
|
|
47
|
-
progressValue: "".concat(uploadProgress, "%")
|
|
48
|
-
}) : /*#__PURE__*/jsxs("div", {
|
|
49
|
-
className: "flex flex-col space-y-1",
|
|
50
|
-
children: [!isDisabled && /*#__PURE__*/jsx(Typography, {
|
|
51
|
-
className: "neeto-ui-text-gray-800 text-center leading-4",
|
|
52
|
-
style: "body2",
|
|
53
|
-
children: /*#__PURE__*/jsx(Trans, {
|
|
54
|
-
i18nKey: "neetoImageUploader.imageUpload.dragAndDropOrBrowseFile",
|
|
55
|
-
components: {
|
|
56
|
-
span: /*#__PURE__*/jsx(Button, {
|
|
57
|
-
"data-cy": "neeto-image-uploader-browse-text",
|
|
58
|
-
style: "link"
|
|
59
|
-
})
|
|
60
|
-
}
|
|
61
|
-
})
|
|
62
|
-
}), setIsAssetLibraryOpen && /*#__PURE__*/jsx(Typography, {
|
|
63
|
-
className: "text-center leading-4",
|
|
64
|
-
style: "body2",
|
|
65
|
-
onClick: function onClick(e) {
|
|
66
|
-
e.stopPropagation();
|
|
67
|
-
setIsAssetLibraryOpen(true);
|
|
68
|
-
},
|
|
69
|
-
children: /*#__PURE__*/jsx(Trans, {
|
|
70
|
-
i18nKey: "neetoImageUploader.imageUpload.selectImagefromImageLibrary",
|
|
71
|
-
components: {
|
|
72
|
-
span: /*#__PURE__*/jsx(Button, {
|
|
73
|
-
"data-cy": "open-asset-library-button",
|
|
74
|
-
style: "link"
|
|
75
|
-
})
|
|
76
|
-
}
|
|
77
|
-
})
|
|
78
|
-
}), /*#__PURE__*/jsx("input", _objectSpread$2(_objectSpread$2({}, getInputProps()), {}, {
|
|
79
|
-
"data-cy": "neeto-image-uploader-file-input",
|
|
80
|
-
disabled: isDisabled
|
|
81
|
-
})), /*#__PURE__*/jsx(Typography, {
|
|
82
|
-
className: "neeto-ui-text-gray-700 text-center leading-4",
|
|
83
|
-
"data-cy": "neeto-image-uploader-restriction-message",
|
|
84
|
-
lineHeight: "snug",
|
|
85
|
-
style: "nano",
|
|
86
|
-
children: /*#__PURE__*/jsx(Trans, {
|
|
87
|
-
i18nKey: "neetoImageUploader.imageUpload.restrictionMessage",
|
|
88
|
-
values: {
|
|
89
|
-
fileTypes: getAllowedTypes(uploadConfig),
|
|
90
|
-
size: uploadConfig === null || uploadConfig === void 0 ? void 0 : uploadConfig.maxImageSize
|
|
91
|
-
}
|
|
92
|
-
})
|
|
93
|
-
})]
|
|
94
|
-
})
|
|
95
|
-
}));
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
var _excluded$1 = ["className"];
|
|
99
|
-
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
100
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
101
|
-
var ImagePlaceholder = function ImagePlaceholder(_ref) {
|
|
102
|
-
var _ref$className = _ref.className,
|
|
103
|
-
className = _ref$className === void 0 ? "" : _ref$className,
|
|
104
|
-
props = _objectWithoutProperties(_ref, _excluded$1);
|
|
105
|
-
return /*#__PURE__*/jsx("div", _objectSpread$1({
|
|
106
|
-
className: classnames("neeto-ui-bg-gray-200", _defineProperty({}, className, className))
|
|
107
|
-
}, props));
|
|
108
|
-
};
|
|
109
|
-
|
|
110
|
-
var _excluded = ["src", "className", "fallback"];
|
|
111
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
112
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
113
|
-
var ImageWithFallback = function ImageWithFallback(_ref) {
|
|
114
|
-
var src = _ref.src,
|
|
115
|
-
_ref$className = _ref.className,
|
|
116
|
-
className = _ref$className === void 0 ? "h-full w-full" : _ref$className,
|
|
117
|
-
_ref$fallback = _ref.fallback,
|
|
118
|
-
Fallback = _ref$fallback === void 0 ? ImagePlaceholder : _ref$fallback,
|
|
119
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
|
120
|
-
var _useState = useState(false),
|
|
121
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
122
|
-
isLoaded = _useState2[0],
|
|
123
|
-
setIsLoaded = _useState2[1];
|
|
124
|
-
useEffect(function () {
|
|
125
|
-
var img = new Image();
|
|
126
|
-
img.onload = function () {
|
|
127
|
-
setIsLoaded(true);
|
|
128
|
-
};
|
|
129
|
-
img.src = src;
|
|
130
|
-
}, [src]);
|
|
131
|
-
return isLoaded ? /*#__PURE__*/jsx("img", _objectSpread(_objectSpread({}, _objectSpread({
|
|
132
|
-
src: src
|
|
133
|
-
}, props)), {}, {
|
|
134
|
-
className: "h-full w-auto object-contain"
|
|
135
|
-
})) : /*#__PURE__*/jsx(Fallback, _objectSpread({}, _objectSpread({
|
|
136
|
-
className: className
|
|
137
|
-
}, props)));
|
|
138
|
-
};
|
|
139
|
-
|
|
140
|
-
export { ImageWithFallback as I, ImageDirectUpload as a };
|
|
141
|
-
//# sourceMappingURL=ImageWithFallback-c9ANE1IE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImageWithFallback-c9ANE1IE.js","sources":["../app/javascript/src/components/ImageUploader/utils.js","../app/javascript/src/components/common/ImageDirectUpload.jsx","../app/javascript/src/components/common/ImagePlaceholder.jsx","../app/javascript/src/components/common/ImageWithFallback.jsx"],"sourcesContent":["import { flatten, pipe, join, map, toUpper, values } from \"ramda\";\n\nexport const getAllowedTypes = uploadConfig =>\n pipe(\n values,\n flatten,\n map(extension => extension.slice(1)),\n map(toUpper),\n join(\", \")\n )(uploadConfig.allowedImageTypes);\n","import classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Button, Typography, ProgressBar } from \"neetoui\";\nimport { equals } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport { DEFAULT_UPLOAD_CONFIG } from \"components/ImageUploader/constants\";\nimport { getAllowedTypes } from \"components/ImageUploader/utils\";\nimport useUploadDropzone from \"hooks/useUploadDropzone\";\n\nimport { DROPZONE_ROOT_DIV_CLASSNAME } from \"./constants\";\n\nconst ImageDirectUpload = ({\n uploadConfig = DEFAULT_UPLOAD_CONFIG,\n onDrop = noop,\n isDisabled = false,\n setIsAssetLibraryOpen,\n}) => {\n const { getRootProps, getInputProps, isDragActive, uploadProgress } =\n useUploadDropzone({ uploadConfig, onDrop });\n\n const shouldShowProgress = !!(uploadProgress && !equals(uploadProgress, 1));\n\n return (\n <div\n {...getRootProps()}\n className={classnames(DROPZONE_ROOT_DIV_CLASSNAME, {\n \"neeto-ui-border-gray-300\": !isDragActive,\n \"neeto-ui-border-gray-700\": isDragActive,\n })}\n >\n {shouldShowProgress ? (\n <ProgressBar\n progressPercentage={uploadProgress}\n progressValue={`${uploadProgress}%`}\n />\n ) : (\n <div className=\"flex flex-col space-y-1\">\n {!isDisabled && (\n <Typography\n className=\"neeto-ui-text-gray-800 text-center leading-4\"\n style=\"body2\"\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.dragAndDropOrBrowseFile\"\n components={{\n span: (\n <Button\n data-cy=\"neeto-image-uploader-browse-text\"\n style=\"link\"\n />\n ),\n }}\n />\n </Typography>\n )}\n {setIsAssetLibraryOpen && (\n <Typography\n className=\"text-center leading-4\"\n style=\"body2\"\n onClick={e => {\n e.stopPropagation();\n setIsAssetLibraryOpen(true);\n }}\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.selectImagefromImageLibrary\"\n components={{\n span: (\n <Button data-cy=\"open-asset-library-button\" style=\"link\" />\n ),\n }}\n />\n </Typography>\n )}\n <input\n {...getInputProps()}\n data-cy=\"neeto-image-uploader-file-input\"\n disabled={isDisabled}\n />\n <Typography\n className=\"neeto-ui-text-gray-700 text-center leading-4\"\n data-cy=\"neeto-image-uploader-restriction-message\"\n lineHeight=\"snug\"\n style=\"nano\"\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.restrictionMessage\"\n values={{\n fileTypes: getAllowedTypes(uploadConfig),\n size: uploadConfig?.maxImageSize,\n }}\n />\n </Typography>\n </div>\n )}\n </div>\n );\n};\n\nexport default ImageDirectUpload;\n","import classnames from \"classnames\";\n\nconst ImagePlaceholder = ({ className = \"\", ...props }) => (\n <div\n className={classnames(\"neeto-ui-bg-gray-200\", {\n [className]: className,\n })}\n {...props}\n />\n);\n\nexport default ImagePlaceholder;\n","import { useEffect, useState } from \"react\";\n\nimport ImagePlaceholder from \"./ImagePlaceholder\";\n\nconst ImageWithFallback = ({\n src,\n className = \"h-full w-full\",\n fallback: Fallback = ImagePlaceholder,\n ...props\n}) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n const img = new Image();\n img.onload = () => {\n setIsLoaded(true);\n };\n img.src = src;\n }, [src]);\n\n return isLoaded ? (\n <img {...{ src, ...props }} className=\"h-full w-auto object-contain\" />\n ) : (\n <Fallback {...{ className, ...props }} />\n );\n};\n\nexport default ImageWithFallback;\n"],"names":["getAllowedTypes","uploadConfig","pipe","values","flatten","map","extension","slice","toUpper","join","allowedImageTypes","ImageDirectUpload","_ref","_ref$uploadConfig","DEFAULT_UPLOAD_CONFIG","_ref$onDrop","onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_useUploadDropzone","useUploadDropzone","getRootProps","getInputProps","isDragActive","uploadProgress","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","DROPZONE_ROOT_DIV_CLASSNAME","children","ProgressBar","progressPercentage","progressValue","concat","_jsxs","Typography","style","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","maxImageSize","ImagePlaceholder","_ref$className","props","_objectWithoutProperties","_excluded","_defineProperty","ImageWithFallback","src","_ref$fallback","fallback","Fallback","_useState","useState","_useState2","_slicedToArray","isLoaded","setIsLoaded","useEffect","img","Image","onload"],"mappings":"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"}
|