@bigbinary/neeto-image-uploader-frontend 2.0.2 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/javascript/src/translations/en.json +5 -0
- package/dist/AssetLibrary.js +10231 -0
- package/dist/AssetLibrary.js.map +1 -0
- package/dist/BasicImageUploader.js +66 -0
- package/dist/BasicImageUploader.js.map +1 -0
- package/dist/ImageUploader.js +228 -0
- package/dist/ImageUploader.js.map +1 -0
- package/dist/ImageWithFallback-7492935f.js +167 -0
- package/dist/ImageWithFallback-7492935f.js.map +1 -0
- package/dist/ImageWithFallback-e6b44c73.js +158 -0
- package/dist/ImageWithFallback-e6b44c73.js.map +1 -0
- package/dist/cjs/AssetLibrary.js +10303 -0
- package/dist/cjs/AssetLibrary.js.map +1 -0
- package/dist/cjs/BasicImageUploader.js +74 -0
- package/dist/cjs/BasicImageUploader.js.map +1 -0
- package/dist/cjs/ImageUploader.js +237 -0
- package/dist/cjs/ImageUploader.js.map +1 -0
- package/dist/cjs/hooks.js +24 -0
- package/dist/cjs/hooks.js.map +1 -0
- package/dist/cjs/index.js +95 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/hooks.js +14 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index-7f064861.js +663 -0
- package/dist/index-7f064861.js.map +1 -0
- package/dist/index-b9963255.js +658 -0
- package/dist/index-b9963255.js.map +1 -0
- package/dist/index.js +81 -3910
- package/dist/index.js.map +1 -1
- package/dist/useImageUploader-36a03350.js +598 -0
- package/dist/useImageUploader-36a03350.js.map +1 -0
- package/dist/useImageUploader-550a5fdc.js +616 -0
- package/dist/useImageUploader-550a5fdc.js.map +1 -0
- package/dist/useProfileImageUpload-837e76b8.js +256 -0
- package/dist/useProfileImageUpload-837e76b8.js.map +1 -0
- package/dist/useProfileImageUpload-f0088c2a.js +263 -0
- package/dist/useProfileImageUpload-f0088c2a.js.map +1 -0
- package/dist/utils-88cce499.js +277 -0
- package/dist/utils-88cce499.js.map +1 -0
- package/dist/utils-96eacd77.js +248 -0
- package/dist/utils-96eacd77.js.map +1 -0
- package/package.json +30 -18
- package/dist/index.cjs.js +0 -3939
- package/dist/index.cjs.js.map +0 -1
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { _ as _defineProperty, a as _slicedToArray } from './index-b9963255.js';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import classnames from 'classnames';
|
|
4
|
+
import { noop } from '@bigbinary/neeto-cist';
|
|
5
|
+
import Button from '@bigbinary/neetoui/Button';
|
|
6
|
+
import Typography from '@bigbinary/neetoui/Typography';
|
|
7
|
+
import { pipe, values, flatten, map, toUpper, join, equals } from 'ramda';
|
|
8
|
+
import { Trans } from 'react-i18next';
|
|
9
|
+
import { u as useUploadDropzone, n as DROPZONE_ROOT_DIV_CLASSNAME, h as DEFAULT_UPLOAD_CONFIG, _ as _objectWithoutProperties } from './utils-96eacd77.js';
|
|
10
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
11
|
+
|
|
12
|
+
var getAllowedTypes = function getAllowedTypes(uploadConfig) {
|
|
13
|
+
return pipe(values, flatten, map(function (extension) {
|
|
14
|
+
return extension.slice(1);
|
|
15
|
+
}), map(toUpper), join(", "))(uploadConfig.allowedImageTypes);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
var ProgressBar = function ProgressBar(_ref) {
|
|
19
|
+
var _ref$progressPercenta = _ref.progressPercentage,
|
|
20
|
+
progressPercentage = _ref$progressPercenta === void 0 ? 0 : _ref$progressPercenta,
|
|
21
|
+
progressValue = _ref.progressValue;
|
|
22
|
+
return /*#__PURE__*/jsx("div", {
|
|
23
|
+
className: "neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full cursor-pointer items-center justify-center gap-3 border border-dashed p-5 transition-all duration-300 ease-in-out",
|
|
24
|
+
children: /*#__PURE__*/jsx("div", {
|
|
25
|
+
className: "neeto-ui-bg-gray-200 neeto-ui-rounded-full w-full overflow-hidden dark:bg-gray-700",
|
|
26
|
+
children: /*#__PURE__*/jsx("div", {
|
|
27
|
+
className: "neeto-ui-bg-primary-600 text-2xs neeto-ui-text-primary-100 neeto-ui-rounded-full flex h-3 animate-pulse items-center justify-center font-medium leading-none transition-all duration-300 ease-in-out",
|
|
28
|
+
"data-cy": "neeto-image-uploader-progress-bar",
|
|
29
|
+
style: {
|
|
30
|
+
width: "".concat(progressPercentage, "%")
|
|
31
|
+
},
|
|
32
|
+
children: progressValue
|
|
33
|
+
})
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
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; }
|
|
39
|
+
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; }
|
|
40
|
+
var ImageDirectUpload = function ImageDirectUpload(_ref) {
|
|
41
|
+
var _ref$uploadConfig = _ref.uploadConfig,
|
|
42
|
+
uploadConfig = _ref$uploadConfig === void 0 ? DEFAULT_UPLOAD_CONFIG : _ref$uploadConfig,
|
|
43
|
+
_ref$onDrop = _ref.onDrop,
|
|
44
|
+
onDrop = _ref$onDrop === void 0 ? noop : _ref$onDrop,
|
|
45
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
46
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
47
|
+
setIsAssetLibraryOpen = _ref.setIsAssetLibraryOpen;
|
|
48
|
+
var _useUploadDropzone = useUploadDropzone({
|
|
49
|
+
uploadConfig: uploadConfig,
|
|
50
|
+
onDrop: onDrop
|
|
51
|
+
}),
|
|
52
|
+
getRootProps = _useUploadDropzone.getRootProps,
|
|
53
|
+
getInputProps = _useUploadDropzone.getInputProps,
|
|
54
|
+
isDragActive = _useUploadDropzone.isDragActive,
|
|
55
|
+
uploadProgress = _useUploadDropzone.uploadProgress;
|
|
56
|
+
var shouldShowProgress = !!(uploadProgress && !equals(uploadProgress, 1));
|
|
57
|
+
return shouldShowProgress ? /*#__PURE__*/jsx(ProgressBar, {
|
|
58
|
+
progressPercentage: uploadProgress,
|
|
59
|
+
progressValue: "".concat(uploadProgress, "%")
|
|
60
|
+
}) : /*#__PURE__*/jsx("div", _objectSpread$2(_objectSpread$2({}, getRootProps()), {}, {
|
|
61
|
+
className: classnames(DROPZONE_ROOT_DIV_CLASSNAME, {
|
|
62
|
+
"neeto-ui-border-gray-300": !isDragActive,
|
|
63
|
+
"neeto-ui-border-gray-700": isDragActive
|
|
64
|
+
}),
|
|
65
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
66
|
+
className: "flex flex-col space-y-1",
|
|
67
|
+
children: [!isDisabled && /*#__PURE__*/jsx(Typography, {
|
|
68
|
+
className: "neeto-ui-text-gray-800 text-center leading-4",
|
|
69
|
+
style: "body2",
|
|
70
|
+
children: /*#__PURE__*/jsx(Trans, {
|
|
71
|
+
i18nKey: "neetoImageUploader.imageUpload.dragAndDropOrBrowseFile",
|
|
72
|
+
components: {
|
|
73
|
+
span: /*#__PURE__*/jsx(Button, {
|
|
74
|
+
"data-cy": "neeto-image-uploader-browse-text",
|
|
75
|
+
style: "link"
|
|
76
|
+
})
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
}), setIsAssetLibraryOpen && /*#__PURE__*/jsx(Typography, {
|
|
80
|
+
className: "text-center leading-4",
|
|
81
|
+
style: "body2",
|
|
82
|
+
onClick: function onClick(e) {
|
|
83
|
+
e.stopPropagation();
|
|
84
|
+
setIsAssetLibraryOpen(true);
|
|
85
|
+
},
|
|
86
|
+
children: /*#__PURE__*/jsx(Trans, {
|
|
87
|
+
i18nKey: "neetoImageUploader.imageUpload.selectImagefromImageLibrary",
|
|
88
|
+
components: {
|
|
89
|
+
span: /*#__PURE__*/jsx(Button, {
|
|
90
|
+
"data-cy": "open-asset-library-button",
|
|
91
|
+
style: "link"
|
|
92
|
+
})
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
}), /*#__PURE__*/jsx("input", _objectSpread$2(_objectSpread$2({}, getInputProps()), {}, {
|
|
96
|
+
"data-cy": "neeto-image-uploader-file-input",
|
|
97
|
+
disabled: isDisabled
|
|
98
|
+
})), /*#__PURE__*/jsx(Typography, {
|
|
99
|
+
className: "neeto-ui-text-gray-700 text-center leading-4",
|
|
100
|
+
"data-cy": "neeto-image-uploader-restriction-message",
|
|
101
|
+
lineHeight: "snug",
|
|
102
|
+
style: "nano",
|
|
103
|
+
children: /*#__PURE__*/jsx(Trans, {
|
|
104
|
+
i18nKey: "neetoImageUploader.imageUpload.restrictionMessage",
|
|
105
|
+
values: {
|
|
106
|
+
fileTypes: getAllowedTypes(uploadConfig),
|
|
107
|
+
size: uploadConfig === null || uploadConfig === void 0 ? void 0 : uploadConfig.maxImageSize
|
|
108
|
+
}
|
|
109
|
+
})
|
|
110
|
+
})]
|
|
111
|
+
})
|
|
112
|
+
}));
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
var _excluded$1 = ["className"];
|
|
116
|
+
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; }
|
|
117
|
+
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; }
|
|
118
|
+
var ImagePlaceholder = function ImagePlaceholder(_ref) {
|
|
119
|
+
var _ref$className = _ref.className,
|
|
120
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
121
|
+
props = _objectWithoutProperties(_ref, _excluded$1);
|
|
122
|
+
return /*#__PURE__*/jsx("div", _objectSpread$1({
|
|
123
|
+
className: classnames("neeto-ui-bg-gray-200", _defineProperty({}, className, className))
|
|
124
|
+
}, props));
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
var _excluded = ["src", "className", "fallback"];
|
|
128
|
+
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; }
|
|
129
|
+
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; }
|
|
130
|
+
var ImageWithFallback = function ImageWithFallback(_ref) {
|
|
131
|
+
var src = _ref.src,
|
|
132
|
+
_ref$className = _ref.className,
|
|
133
|
+
className = _ref$className === void 0 ? "h-full w-full" : _ref$className,
|
|
134
|
+
_ref$fallback = _ref.fallback,
|
|
135
|
+
Fallback = _ref$fallback === void 0 ? ImagePlaceholder : _ref$fallback,
|
|
136
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
137
|
+
var _useState = useState(false),
|
|
138
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
139
|
+
isLoaded = _useState2[0],
|
|
140
|
+
setIsLoaded = _useState2[1];
|
|
141
|
+
useEffect(function () {
|
|
142
|
+
var img = new Image();
|
|
143
|
+
img.onload = function () {
|
|
144
|
+
setIsLoaded(true);
|
|
145
|
+
};
|
|
146
|
+
img.src = src;
|
|
147
|
+
}, [src]);
|
|
148
|
+
return isLoaded ? /*#__PURE__*/jsx("img", _objectSpread(_objectSpread({}, _objectSpread({
|
|
149
|
+
src: src
|
|
150
|
+
}, props)), {}, {
|
|
151
|
+
className: "h-full w-auto object-contain"
|
|
152
|
+
})) : /*#__PURE__*/jsx(Fallback, _objectSpread({}, _objectSpread({
|
|
153
|
+
className: className
|
|
154
|
+
}, props)));
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
export { ImageWithFallback as I, ImageDirectUpload as a };
|
|
158
|
+
//# sourceMappingURL=ImageWithFallback-e6b44c73.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageWithFallback-e6b44c73.js","sources":["../app/javascript/src/components/ImageUploader/utils.js","../app/javascript/src/components/common/ProgressBar.jsx","../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 React from \"react\";\n\nconst ProgressBar = ({ progressPercentage = 0, progressValue }) => (\n <div className=\"neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full cursor-pointer items-center justify-center gap-3 border border-dashed p-5 transition-all duration-300 ease-in-out\">\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-full w-full overflow-hidden dark:bg-gray-700\">\n <div\n className=\"neeto-ui-bg-primary-600 text-2xs neeto-ui-text-primary-100 neeto-ui-rounded-full flex h-3 animate-pulse items-center justify-center font-medium leading-none transition-all duration-300 ease-in-out\"\n data-cy=\"neeto-image-uploader-progress-bar\"\n style={{ width: `${progressPercentage}%` }}\n >\n {progressValue}\n </div>\n </div>\n </div>\n);\n\nexport default ProgressBar;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Button, Typography } 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\";\nimport ProgressBar from \"./ProgressBar\";\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 shouldShowProgress ? (\n <ProgressBar\n progressPercentage={uploadProgress}\n progressValue={`${uploadProgress}%`}\n />\n ) : (\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 <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 </div>\n );\n};\n\nexport default ImageDirectUpload;\n","import React from \"react\";\n\nimport 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 React, { 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","ProgressBar","_ref","_ref$progressPercenta","progressPercentage","progressValue","_jsx","className","children","style","width","concat","ImageDirectUpload","_ref$uploadConfig","DEFAULT_UPLOAD_CONFIG","_ref$onDrop","onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_useUploadDropzone","useUploadDropzone","getRootProps","getInputProps","isDragActive","uploadProgress","shouldShowProgress","equals","_objectSpread","classnames","DROPZONE_ROOT_DIV_CLASSNAME","_jsxs","Typography","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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"}
|