@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/dist/utils-B5WMTXlT.js
DELETED
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
|
|
2
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
-
import { useState } from 'react';
|
|
4
|
-
import { useDropzone } from 'react-dropzone';
|
|
5
|
-
import i18next, { t } from 'i18next';
|
|
6
|
-
import Toastr from '@bigbinary/neetoui/Toastr';
|
|
7
|
-
import { noop } from '@bigbinary/neeto-cist';
|
|
8
|
-
import { C as CLOUD_FLARE, I as IS_DEVELOPMENT_OR_HEROKU_ENV, a as ImageKit } from './index-CZjb2iXB.js';
|
|
9
|
-
import { isNil, isEmpty } from 'ramda';
|
|
10
|
-
|
|
11
|
-
var DEFAULT_ALLOWED_IMAGE_TYPES = {
|
|
12
|
-
"image/png": [".png"],
|
|
13
|
-
"image/jpg": [".jpg", ".jpeg"],
|
|
14
|
-
"image/gif": [".gif"],
|
|
15
|
-
"image/svg+xml": [".svg"]
|
|
16
|
-
};
|
|
17
|
-
var DEFAULT_UPLOAD_CONFIG = {
|
|
18
|
-
maxImageSize: globalProps.endUserUploadedFileSizeLimitInMb,
|
|
19
|
-
allowedImageTypes: DEFAULT_ALLOWED_IMAGE_TYPES
|
|
20
|
-
};
|
|
21
|
-
var OPTION_KEYS = {
|
|
22
|
-
asset: "asset",
|
|
23
|
-
remove: "remove"
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
var DROPZONE_ROOT_DIV_CLASSNAME = "neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full w-full flex-col items-center justify-center gap-3 border border-dashed p-4 transition-all duration-300 ease-in-out";
|
|
27
|
-
var FILE_ERRORS = {
|
|
28
|
-
"file-invalid-type": t("neetoImageUploader.imageUpload.fileTypeError"),
|
|
29
|
-
"file-too-large": t("neetoImageUploader.imageUpload.fileSizeError")
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
var handleDropRejected = function handleDropRejected(fileRejections) {
|
|
33
|
-
fileRejections.map(function (_ref) {
|
|
34
|
-
var errors = _ref.errors;
|
|
35
|
-
return errors.map(function (_ref2) {
|
|
36
|
-
var code = _ref2.code;
|
|
37
|
-
return Toastr.error(FILE_ERRORS[code] || t("neetoImageUploader.imageUpload.genericError"));
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
var useUploadDropzone = function useUploadDropzone(_ref) {
|
|
43
|
-
var _ref$uploadConfig = _ref.uploadConfig,
|
|
44
|
-
uploadConfig = _ref$uploadConfig === void 0 ? {
|
|
45
|
-
allowedImageTypes: [],
|
|
46
|
-
maxImageSize: 0
|
|
47
|
-
} : _ref$uploadConfig,
|
|
48
|
-
_onDrop = _ref.onDrop;
|
|
49
|
-
var _useState = useState(0),
|
|
50
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
51
|
-
uploadProgress = _useState2[0],
|
|
52
|
-
setUploadProgress = _useState2[1];
|
|
53
|
-
var _useDropzone = useDropzone({
|
|
54
|
-
onDrop: function onDrop(acceptedFiles) {
|
|
55
|
-
return _onDrop(acceptedFiles[0], setUploadProgress);
|
|
56
|
-
},
|
|
57
|
-
accept: uploadConfig === null || uploadConfig === void 0 ? void 0 : uploadConfig.allowedImageTypes,
|
|
58
|
-
multiple: false,
|
|
59
|
-
maxSize: uploadConfig.maxImageSize * 1048576,
|
|
60
|
-
onDropRejected: handleDropRejected
|
|
61
|
-
}),
|
|
62
|
-
getRootProps = _useDropzone.getRootProps,
|
|
63
|
-
getInputProps = _useDropzone.getInputProps,
|
|
64
|
-
isDragActive = _useDropzone.isDragActive,
|
|
65
|
-
inputRef = _useDropzone.inputRef;
|
|
66
|
-
return {
|
|
67
|
-
getRootProps: getRootProps,
|
|
68
|
-
getInputProps: getInputProps,
|
|
69
|
-
isDragActive: isDragActive,
|
|
70
|
-
uploadProgress: uploadProgress,
|
|
71
|
-
inputRef: inputRef
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
var UNSPLASH_DEFAULT_NAME = "Unsplash-asset";
|
|
76
|
-
var UNSPLASH_URL = "https://unsplash.com/";
|
|
77
|
-
var IMAGES_PER_PAGE = 30;
|
|
78
|
-
var UNSPLASH_DEFAULT_REQUEST_CONFIG = {
|
|
79
|
-
headers: {
|
|
80
|
-
"Access-Control-Allow-Origin": "*",
|
|
81
|
-
"Access-Control-Allow-Methods": "GET"
|
|
82
|
-
},
|
|
83
|
-
responseType: "blob"
|
|
84
|
-
};
|
|
85
|
-
var TABS = [{
|
|
86
|
-
label: i18next.t("neetoImageUploader.labels.myImages"),
|
|
87
|
-
key: "images",
|
|
88
|
-
dataCy: "neeto-image-uploader-my-images-tab"
|
|
89
|
-
}, {
|
|
90
|
-
label: i18next.t("neetoImageUploader.labels.searchTheWeb"),
|
|
91
|
-
key: "unsplash",
|
|
92
|
-
dataCy: "neeto-image-uploader-unsplash-tab"
|
|
93
|
-
}];
|
|
94
|
-
var OPTIONS = [{
|
|
95
|
-
key: "local",
|
|
96
|
-
label: i18next.t("neetoImageUploader.labels.uploadNewImage"),
|
|
97
|
-
"data-cy": "upload-new-asset",
|
|
98
|
-
style: "primary",
|
|
99
|
-
onClick: noop
|
|
100
|
-
}];
|
|
101
|
-
var DEFAULT_CROP_CONFIG = {
|
|
102
|
-
unit: "px",
|
|
103
|
-
height: 0,
|
|
104
|
-
width: 0,
|
|
105
|
-
x: 0,
|
|
106
|
-
y: 0
|
|
107
|
-
};
|
|
108
|
-
var INFINITE_SCROLLER_SIZES = [{
|
|
109
|
-
columns: 2,
|
|
110
|
-
gutter: 0
|
|
111
|
-
}, {
|
|
112
|
-
mq: "768px",
|
|
113
|
-
columns: 4,
|
|
114
|
-
gutter: 0
|
|
115
|
-
}, {
|
|
116
|
-
mq: "1024px",
|
|
117
|
-
columns: 4,
|
|
118
|
-
gutter: 0
|
|
119
|
-
}];
|
|
120
|
-
var INFINITE_SCROLLER_STYLE = {
|
|
121
|
-
width: "100%"
|
|
122
|
-
};
|
|
123
|
-
var IMAGE_UPLOAD_SERVICE_URL = globalProps.assetsUploaderService === CLOUD_FLARE ? "neeto_image_uploader_engine/cloudflare_images" : "neeto_image_uploader_engine/imagekit/fetch";
|
|
124
|
-
var ASSETS_FETCH_URL = IS_DEVELOPMENT_OR_HEROKU_ENV ? "neeto_image_uploader_engine/development/fetch" : IMAGE_UPLOAD_SERVICE_URL;
|
|
125
|
-
var ASSETS_DESTROY_URL = IS_DEVELOPMENT_OR_HEROKU_ENV ? "neeto_image_uploader_engine/development/bulk_destroy" : "neeto_image_uploader_engine/imagekit/bulk_destroy";
|
|
126
|
-
var IMAGE_WRAPPER_CLASSNAME = "neeto-ui-border-gray-300 neeto-ui-bg-gray-100 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative flex h-full w-full flex-col items-center justify-center gap-5 border border-dashed p-2 transition-all duration-300 ease-in-out";
|
|
127
|
-
|
|
128
|
-
var getCropValues = function getCropValues(_ref) {
|
|
129
|
-
var crop = _ref.crop,
|
|
130
|
-
imageRef = _ref.imageRef;
|
|
131
|
-
return {
|
|
132
|
-
x: imageRef.current.naturalWidth * (crop.x / imageRef.current.width),
|
|
133
|
-
y: imageRef.current.naturalHeight * (crop.y / imageRef.current.height),
|
|
134
|
-
height: imageRef.current.naturalHeight * (crop.height / imageRef.current.height),
|
|
135
|
-
width: imageRef.current.naturalWidth * (crop.width / imageRef.current.width)
|
|
136
|
-
};
|
|
137
|
-
};
|
|
138
|
-
var getImageKitCroppedURL = function getImageKitCroppedURL(_ref2) {
|
|
139
|
-
var imageURL = _ref2.imageURL,
|
|
140
|
-
crop = _ref2.crop,
|
|
141
|
-
imageRef = _ref2.imageRef;
|
|
142
|
-
var imagekit = new ImageKit({
|
|
143
|
-
urlEndpoint: globalProps.imagekit.urlEndpoint
|
|
144
|
-
});
|
|
145
|
-
var _getCropValues = getCropValues({
|
|
146
|
-
crop: crop,
|
|
147
|
-
imageRef: imageRef
|
|
148
|
-
}),
|
|
149
|
-
x = _getCropValues.x,
|
|
150
|
-
y = _getCropValues.y,
|
|
151
|
-
height = _getCropValues.height,
|
|
152
|
-
width = _getCropValues.width;
|
|
153
|
-
var transformation = [{
|
|
154
|
-
cropMode: "extract",
|
|
155
|
-
x: x,
|
|
156
|
-
y: y,
|
|
157
|
-
height: height,
|
|
158
|
-
width: width
|
|
159
|
-
}];
|
|
160
|
-
return imagekit.url({
|
|
161
|
-
src: imageURL,
|
|
162
|
-
transformation: transformation
|
|
163
|
-
});
|
|
164
|
-
};
|
|
165
|
-
var isNilOrEmpty = function isNilOrEmpty(value) {
|
|
166
|
-
return isNil(value) || isEmpty(value);
|
|
167
|
-
};
|
|
168
|
-
var isNotNilOrEmpty = function isNotNilOrEmpty(value) {
|
|
169
|
-
return !isNilOrEmpty(value);
|
|
170
|
-
};
|
|
171
|
-
var onImageLoaded = function onImageLoaded(_ref3) {
|
|
172
|
-
var image = _ref3.image,
|
|
173
|
-
setCrop = _ref3.setCrop,
|
|
174
|
-
_ref3$cropAspectRatio = _ref3.cropAspectRatio,
|
|
175
|
-
cropAspectRatio = _ref3$cropAspectRatio === void 0 ? 16 / 9 : _ref3$cropAspectRatio;
|
|
176
|
-
var width = image.width,
|
|
177
|
-
height = image.height;
|
|
178
|
-
var imageAspectRatio = width / height;
|
|
179
|
-
var maxCropWidth = 250;
|
|
180
|
-
var maxCropHeight = maxCropWidth / cropAspectRatio;
|
|
181
|
-
var cropWidth, cropHeight;
|
|
182
|
-
if (imageAspectRatio > cropAspectRatio) {
|
|
183
|
-
cropWidth = Math.min(maxCropWidth, width);
|
|
184
|
-
cropHeight = cropWidth / cropAspectRatio;
|
|
185
|
-
} else if (height < maxCropHeight) {
|
|
186
|
-
cropWidth = width;
|
|
187
|
-
cropHeight = height;
|
|
188
|
-
} else {
|
|
189
|
-
cropHeight = Math.min(maxCropHeight, height);
|
|
190
|
-
cropWidth = cropHeight * cropAspectRatio;
|
|
191
|
-
}
|
|
192
|
-
var cropX = (width - cropWidth) / 2;
|
|
193
|
-
var cropY = (height - cropHeight) / 2;
|
|
194
|
-
setCrop({
|
|
195
|
-
unit: "px",
|
|
196
|
-
width: cropWidth,
|
|
197
|
-
height: cropHeight,
|
|
198
|
-
x: cropX,
|
|
199
|
-
y: cropY
|
|
200
|
-
});
|
|
201
|
-
};
|
|
202
|
-
var isItemsCenter = function isItemsCenter(_ref4) {
|
|
203
|
-
var imageRef = _ref4.imageRef,
|
|
204
|
-
wrapperRef = _ref4.wrapperRef;
|
|
205
|
-
var _ref5 = imageRef.current || {},
|
|
206
|
-
imageHeight = _ref5.height,
|
|
207
|
-
imageWidth = _ref5.width;
|
|
208
|
-
var wrapperHeight = (wrapperRef.current || {}).clientHeight;
|
|
209
|
-
if (imageHeight < imageWidth && imageHeight < wrapperHeight - 1) {
|
|
210
|
-
// Landscape images smaller than wrapper dimensions
|
|
211
|
-
return true;
|
|
212
|
-
}
|
|
213
|
-
if (imageHeight === imageWidth && imageHeight < wrapperHeight - 1) {
|
|
214
|
-
// Square images smaller than wrapper dimensions
|
|
215
|
-
return true;
|
|
216
|
-
}
|
|
217
|
-
return imageHeight > imageWidth && imageHeight < wrapperHeight - 1;
|
|
218
|
-
};
|
|
219
|
-
var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCroppedValues(_ref6) {
|
|
220
|
-
var imageRef = _ref6.imageRef,
|
|
221
|
-
image = _ref6.image,
|
|
222
|
-
crop = _ref6.crop;
|
|
223
|
-
var scaleX = image.metadata.width / imageRef.current.width;
|
|
224
|
-
var scaleY = image.metadata.height / imageRef.current.height;
|
|
225
|
-
var sourceX = scaleX * crop.x;
|
|
226
|
-
var sourceY = scaleY * crop.y;
|
|
227
|
-
var sourceWidth = scaleX * crop.width;
|
|
228
|
-
var sourceHeight = scaleY * crop.height;
|
|
229
|
-
var distanceFromRight = Math.abs(image.metadata.width - (sourceX + sourceWidth));
|
|
230
|
-
var distanceFromBottom = Math.abs(image.metadata.height - (sourceY + sourceHeight));
|
|
231
|
-
return {
|
|
232
|
-
top: sourceY,
|
|
233
|
-
right: distanceFromRight,
|
|
234
|
-
bottom: distanceFromBottom,
|
|
235
|
-
left: sourceX
|
|
236
|
-
};
|
|
237
|
-
};
|
|
238
|
-
var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(_ref7) {
|
|
239
|
-
var imageRef = _ref7.imageRef,
|
|
240
|
-
image = _ref7.image,
|
|
241
|
-
crop = _ref7.crop;
|
|
242
|
-
var _calculateCloudFlareI = calculateCloudFlareImageCroppedValues({
|
|
243
|
-
imageRef: imageRef,
|
|
244
|
-
image: image,
|
|
245
|
-
crop: crop
|
|
246
|
-
}),
|
|
247
|
-
top = _calculateCloudFlareI.top,
|
|
248
|
-
right = _calculateCloudFlareI.right,
|
|
249
|
-
bottom = _calculateCloudFlareI.bottom,
|
|
250
|
-
left = _calculateCloudFlareI.left;
|
|
251
|
-
var trimValues = "".concat(top, ";").concat(right, ";").concat(bottom, ";").concat(left);
|
|
252
|
-
return image.url.replace("public", "trim=".concat(trimValues));
|
|
253
|
-
};
|
|
254
|
-
|
|
255
|
-
export { ASSETS_DESTROY_URL as A, DEFAULT_UPLOAD_CONFIG as D, IMAGE_WRAPPER_CLASSNAME as I, OPTION_KEYS as O, TABS as T, UNSPLASH_DEFAULT_NAME as U, isNilOrEmpty as a, DROPZONE_ROOT_DIV_CLASSNAME as b, OPTIONS as c, DEFAULT_CROP_CONFIG as d, isItemsCenter as e, getImageKitCroppedURL as f, getCloudFlareCroppedURL as g, getCropValues as h, isNotNilOrEmpty as i, IMAGES_PER_PAGE as j, INFINITE_SCROLLER_SIZES as k, INFINITE_SCROLLER_STYLE as l, ASSETS_FETCH_URL as m, UNSPLASH_DEFAULT_REQUEST_CONFIG as n, onImageLoaded as o, UNSPLASH_URL as p, useUploadDropzone as u };
|
|
256
|
-
//# sourceMappingURL=utils-B5WMTXlT.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-B5WMTXlT.js","sources":["../app/javascript/src/components/ImageUploader/constants.js","../app/javascript/src/components/common/constants.js","../app/javascript/src/components/common/utils.js","../app/javascript/src/hooks/useUploadDropzone.js","../app/javascript/src/components/constants.js","../app/javascript/src/components/ImageEditor/utils.js"],"sourcesContent":["import { globalProps } from \"neetocommons/initializers\";\n\nexport const DEFAULT_ALLOWED_IMAGE_TYPES = {\n \"image/png\": [\".png\"],\n \"image/jpg\": [\".jpg\", \".jpeg\"],\n \"image/gif\": [\".gif\"],\n \"image/svg+xml\": [\".svg\"],\n};\n\nexport const DEFAULT_UPLOAD_CONFIG = {\n maxImageSize: globalProps.endUserUploadedFileSizeLimitInMb,\n allowedImageTypes: DEFAULT_ALLOWED_IMAGE_TYPES,\n};\n\nexport const OPTION_KEYS = { asset: \"asset\", remove: \"remove\" };\n","import { t } from \"i18next\";\n\nexport const DROPZONE_ROOT_DIV_CLASSNAME =\n \"neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full w-full flex-col items-center justify-center gap-3 border border-dashed p-4 transition-all duration-300 ease-in-out\";\n\nexport const FILE_ERRORS = {\n \"file-invalid-type\": t(\"neetoImageUploader.imageUpload.fileTypeError\"),\n \"file-too-large\": t(\"neetoImageUploader.imageUpload.fileSizeError\"),\n};\n","import { t } from \"i18next\";\nimport { Toastr } from \"neetoui\";\n\nimport { FILE_ERRORS } from \"./constants\";\n\nexport const handleDropRejected = fileRejections => {\n fileRejections.map(({ errors }) =>\n errors.map(({ code }) =>\n Toastr.error(\n FILE_ERRORS[code] || t(\"neetoImageUploader.imageUpload.genericError\")\n )\n )\n );\n};\n","import { useState } from \"react\";\n\nimport { useDropzone } from \"react-dropzone\";\n\nimport { handleDropRejected } from \"components/common/utils\";\n\nconst useUploadDropzone = ({\n uploadConfig = { allowedImageTypes: [], maxImageSize: 0 },\n onDrop,\n}) => {\n const [uploadProgress, setUploadProgress] = useState(0);\n\n const { getRootProps, getInputProps, isDragActive, inputRef } = useDropzone({\n onDrop: acceptedFiles => onDrop(acceptedFiles[0], setUploadProgress),\n accept: uploadConfig?.allowedImageTypes,\n multiple: false,\n maxSize: uploadConfig.maxImageSize * 1_048_576,\n onDropRejected: handleDropRejected,\n });\n\n return {\n getRootProps,\n getInputProps,\n isDragActive,\n uploadProgress,\n inputRef,\n };\n};\n\nexport default useUploadDropzone;\n","import i18next from \"i18next\";\nimport { noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\n\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nexport const UNSPLASH_DEFAULT_NAME = \"Unsplash-asset\";\n\nexport const UNSPLASH_URL = \"https://unsplash.com/\";\n\nexport const IMAGES_PER_PAGE = 30;\n\nexport const UNSPLASH_DEFAULT_REQUEST_CONFIG = {\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"GET\",\n },\n responseType: \"blob\",\n};\n\nexport const TABS = [\n {\n label: i18next.t(\"neetoImageUploader.labels.myImages\"),\n key: \"images\",\n dataCy: \"neeto-image-uploader-my-images-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.searchTheWeb\"),\n key: \"unsplash\",\n dataCy: \"neeto-image-uploader-unsplash-tab\",\n },\n];\n\nexport const OPTIONS = [\n {\n key: \"local\",\n label: i18next.t(\"neetoImageUploader.labels.uploadNewImage\"),\n \"data-cy\": \"upload-new-asset\",\n style: \"primary\",\n onClick: noop,\n },\n];\n\nexport const DEFAULT_CROP_CONFIG = {\n unit: \"px\",\n height: 0,\n width: 0,\n x: 0,\n y: 0,\n};\n\nexport const URL_REGEXP =\n /[(http(s)?)://(www.)?a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/;\n\nexport const INFINITE_SCROLLER_SIZES = [\n { columns: 2, gutter: 0 },\n { mq: \"768px\", columns: 4, gutter: 0 },\n { mq: \"1024px\", columns: 4, gutter: 0 },\n];\n\nexport const INFINITE_SCROLLER_STYLE = { width: \"100%\" };\n\nexport const ALLOWED_IMAGE_TYPES = {\n \"image/*\": [\".png\", \".jpg\", \".jpeg\", \".svg\", \".gif\"],\n};\n\nexport const IMAGE_UPLOAD_SERVICE_URL =\n globalProps.assetsUploaderService === CLOUD_FLARE\n ? \"neeto_image_uploader_engine/cloudflare_images\"\n : \"neeto_image_uploader_engine/imagekit/fetch\";\n\nexport const ASSETS_FETCH_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/fetch\"\n : IMAGE_UPLOAD_SERVICE_URL;\n\nexport const ASSETS_DESTROY_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/bulk_destroy\"\n : \"neeto_image_uploader_engine/imagekit/bulk_destroy\";\n\nexport const IMAGE_WRAPPER_CLASSNAME =\n \"neeto-ui-border-gray-300 neeto-ui-bg-gray-100 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative flex h-full w-full flex-col items-center justify-center gap-5 border border-dashed p-2 transition-all duration-300 ease-in-out\";\n","import ImageKit from \"imagekit-javascript\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nexport const getCropValues = ({ crop, imageRef }) => ({\n x: imageRef.current.naturalWidth * (crop.x / imageRef.current.width),\n y: imageRef.current.naturalHeight * (crop.y / imageRef.current.height),\n height:\n imageRef.current.naturalHeight * (crop.height / imageRef.current.height),\n width: imageRef.current.naturalWidth * (crop.width / imageRef.current.width),\n});\n\nexport const getImageKitCroppedURL = ({ imageURL, crop, imageRef }) => {\n const imagekit = new ImageKit({\n urlEndpoint: globalProps.imagekit.urlEndpoint,\n });\n const { x, y, height, width } = getCropValues({ crop, imageRef });\n\n const transformation = [{ cropMode: \"extract\", x, y, height, width }];\n\n return imagekit.url({ src: imageURL, transformation });\n};\n\nexport const isNilOrEmpty = value => isNil(value) || isEmpty(value);\nexport const isNotNilOrEmpty = value => !isNilOrEmpty(value);\n\nexport const onImageLoaded = ({ image, setCrop, cropAspectRatio = 16 / 9 }) => {\n const { width, height } = image;\n const imageAspectRatio = width / height;\n const maxCropWidth = 250;\n const maxCropHeight = maxCropWidth / cropAspectRatio;\n\n let cropWidth, cropHeight;\n\n if (imageAspectRatio > cropAspectRatio) {\n cropWidth = Math.min(maxCropWidth, width);\n cropHeight = cropWidth / cropAspectRatio;\n } else if (height < maxCropHeight) {\n cropWidth = width;\n cropHeight = height;\n } else {\n cropHeight = Math.min(maxCropHeight, height);\n cropWidth = cropHeight * cropAspectRatio;\n }\n\n const cropX = (width - cropWidth) / 2;\n const cropY = (height - cropHeight) / 2;\n\n setCrop({\n unit: \"px\",\n width: cropWidth,\n height: cropHeight,\n x: cropX,\n y: cropY,\n });\n};\n\nexport const isItemsCenter = ({ imageRef, wrapperRef }) => {\n const { height: imageHeight, width: imageWidth } = imageRef.current || {};\n const wrapperHeight = (wrapperRef.current || {}).clientHeight;\n\n if (imageHeight < imageWidth && imageHeight < wrapperHeight - 1) {\n // Landscape images smaller than wrapper dimensions\n return true;\n }\n\n if (imageHeight === imageWidth && imageHeight < wrapperHeight - 1) {\n // Square images smaller than wrapper dimensions\n return true;\n }\n\n return imageHeight > imageWidth && imageHeight < wrapperHeight - 1;\n};\n\nexport const calculateCloudFlareImageCroppedValues = ({\n imageRef,\n image,\n crop,\n}) => {\n const scaleX = image.metadata.width / imageRef.current.width;\n const scaleY = image.metadata.height / imageRef.current.height;\n\n const sourceX = scaleX * crop.x;\n const sourceY = scaleY * crop.y;\n const sourceWidth = scaleX * crop.width;\n const sourceHeight = scaleY * crop.height;\n\n const distanceFromRight = Math.abs(\n image.metadata.width - (sourceX + sourceWidth)\n );\n\n const distanceFromBottom = Math.abs(\n image.metadata.height - (sourceY + sourceHeight)\n );\n\n return {\n top: sourceY,\n right: distanceFromRight,\n bottom: distanceFromBottom,\n left: sourceX,\n };\n};\n\nexport const getCloudFlareCroppedURL = ({ imageRef, image, crop }) => {\n const { top, right, bottom, left } = calculateCloudFlareImageCroppedValues({\n imageRef,\n image,\n crop,\n });\n const trimValues = `${top};${right};${bottom};${left}`;\n\n return image.url.replace(\"public\", `trim=${trimValues}`);\n};\n"],"names":["DEFAULT_ALLOWED_IMAGE_TYPES","DEFAULT_UPLOAD_CONFIG","maxImageSize","globalProps","endUserUploadedFileSizeLimitInMb","allowedImageTypes","OPTION_KEYS","asset","remove","DROPZONE_ROOT_DIV_CLASSNAME","FILE_ERRORS","t","handleDropRejected","fileRejections","map","_ref","errors","_ref2","code","Toastr","error","useUploadDropzone","_ref$uploadConfig","uploadConfig","onDrop","_useState","useState","_useState2","_slicedToArray","uploadProgress","setUploadProgress","_useDropzone","useDropzone","acceptedFiles","accept","multiple","maxSize","onDropRejected","getRootProps","getInputProps","isDragActive","inputRef","UNSPLASH_DEFAULT_NAME","UNSPLASH_URL","IMAGES_PER_PAGE","UNSPLASH_DEFAULT_REQUEST_CONFIG","headers","responseType","TABS","label","i18next","key","dataCy","OPTIONS","style","onClick","noop","DEFAULT_CROP_CONFIG","unit","height","width","x","y","INFINITE_SCROLLER_SIZES","columns","gutter","mq","INFINITE_SCROLLER_STYLE","IMAGE_UPLOAD_SERVICE_URL","assetsUploaderService","CLOUD_FLARE","ASSETS_FETCH_URL","IS_DEVELOPMENT_OR_HEROKU_ENV","ASSETS_DESTROY_URL","IMAGE_WRAPPER_CLASSNAME","getCropValues","crop","imageRef","current","naturalWidth","naturalHeight","getImageKitCroppedURL","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","value","isNil","isEmpty","isNotNilOrEmpty","onImageLoaded","_ref3","image","setCrop","_ref3$cropAspectRatio","cropAspectRatio","imageAspectRatio","maxCropWidth","maxCropHeight","cropWidth","cropHeight","Math","min","cropX","cropY","isItemsCenter","_ref4","wrapperRef","_ref5","imageHeight","imageWidth","wrapperHeight","clientHeight","calculateCloudFlareImageCroppedValues","_ref6","scaleX","metadata","scaleY","sourceX","sourceY","sourceWidth","sourceHeight","distanceFromRight","abs","distanceFromBottom","top","right","bottom","left","getCloudFlareCroppedURL","_ref7","_calculateCloudFlareI","trimValues","concat","replace"],"mappings":"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"}
|
package/dist/utils-tPaqWDxV.js
DELETED
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
|
|
4
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
-
var require$$0 = require('react');
|
|
6
|
-
var reactDropzone = require('react-dropzone');
|
|
7
|
-
var i18next = require('i18next');
|
|
8
|
-
var Toastr = require('@bigbinary/neetoui/Toastr');
|
|
9
|
-
var neetoCist = require('@bigbinary/neeto-cist');
|
|
10
|
-
var index = require('./index-BtHfh_eu.js');
|
|
11
|
-
var ramda = require('ramda');
|
|
12
|
-
|
|
13
|
-
var DEFAULT_ALLOWED_IMAGE_TYPES = {
|
|
14
|
-
"image/png": [".png"],
|
|
15
|
-
"image/jpg": [".jpg", ".jpeg"],
|
|
16
|
-
"image/gif": [".gif"],
|
|
17
|
-
"image/svg+xml": [".svg"]
|
|
18
|
-
};
|
|
19
|
-
var DEFAULT_UPLOAD_CONFIG = {
|
|
20
|
-
maxImageSize: initializers.globalProps.endUserUploadedFileSizeLimitInMb,
|
|
21
|
-
allowedImageTypes: DEFAULT_ALLOWED_IMAGE_TYPES
|
|
22
|
-
};
|
|
23
|
-
var OPTION_KEYS = {
|
|
24
|
-
asset: "asset",
|
|
25
|
-
remove: "remove"
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
var DROPZONE_ROOT_DIV_CLASSNAME = "neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full w-full flex-col items-center justify-center gap-3 border border-dashed p-4 transition-all duration-300 ease-in-out";
|
|
29
|
-
var FILE_ERRORS = {
|
|
30
|
-
"file-invalid-type": i18next.t("neetoImageUploader.imageUpload.fileTypeError"),
|
|
31
|
-
"file-too-large": i18next.t("neetoImageUploader.imageUpload.fileSizeError")
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
var handleDropRejected = function handleDropRejected(fileRejections) {
|
|
35
|
-
fileRejections.map(function (_ref) {
|
|
36
|
-
var errors = _ref.errors;
|
|
37
|
-
return errors.map(function (_ref2) {
|
|
38
|
-
var code = _ref2.code;
|
|
39
|
-
return Toastr.error(FILE_ERRORS[code] || i18next.t("neetoImageUploader.imageUpload.genericError"));
|
|
40
|
-
});
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
var useUploadDropzone = function useUploadDropzone(_ref) {
|
|
45
|
-
var _ref$uploadConfig = _ref.uploadConfig,
|
|
46
|
-
uploadConfig = _ref$uploadConfig === void 0 ? {
|
|
47
|
-
allowedImageTypes: [],
|
|
48
|
-
maxImageSize: 0
|
|
49
|
-
} : _ref$uploadConfig,
|
|
50
|
-
_onDrop = _ref.onDrop;
|
|
51
|
-
var _useState = require$$0.useState(0),
|
|
52
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
53
|
-
uploadProgress = _useState2[0],
|
|
54
|
-
setUploadProgress = _useState2[1];
|
|
55
|
-
var _useDropzone = reactDropzone.useDropzone({
|
|
56
|
-
onDrop: function onDrop(acceptedFiles) {
|
|
57
|
-
return _onDrop(acceptedFiles[0], setUploadProgress);
|
|
58
|
-
},
|
|
59
|
-
accept: uploadConfig === null || uploadConfig === void 0 ? void 0 : uploadConfig.allowedImageTypes,
|
|
60
|
-
multiple: false,
|
|
61
|
-
maxSize: uploadConfig.maxImageSize * 1048576,
|
|
62
|
-
onDropRejected: handleDropRejected
|
|
63
|
-
}),
|
|
64
|
-
getRootProps = _useDropzone.getRootProps,
|
|
65
|
-
getInputProps = _useDropzone.getInputProps,
|
|
66
|
-
isDragActive = _useDropzone.isDragActive,
|
|
67
|
-
inputRef = _useDropzone.inputRef;
|
|
68
|
-
return {
|
|
69
|
-
getRootProps: getRootProps,
|
|
70
|
-
getInputProps: getInputProps,
|
|
71
|
-
isDragActive: isDragActive,
|
|
72
|
-
uploadProgress: uploadProgress,
|
|
73
|
-
inputRef: inputRef
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
var UNSPLASH_DEFAULT_NAME = "Unsplash-asset";
|
|
78
|
-
var UNSPLASH_URL = "https://unsplash.com/";
|
|
79
|
-
var IMAGES_PER_PAGE = 30;
|
|
80
|
-
var UNSPLASH_DEFAULT_REQUEST_CONFIG = {
|
|
81
|
-
headers: {
|
|
82
|
-
"Access-Control-Allow-Origin": "*",
|
|
83
|
-
"Access-Control-Allow-Methods": "GET"
|
|
84
|
-
},
|
|
85
|
-
responseType: "blob"
|
|
86
|
-
};
|
|
87
|
-
var TABS = [{
|
|
88
|
-
label: i18next.t("neetoImageUploader.labels.myImages"),
|
|
89
|
-
key: "images",
|
|
90
|
-
dataCy: "neeto-image-uploader-my-images-tab"
|
|
91
|
-
}, {
|
|
92
|
-
label: i18next.t("neetoImageUploader.labels.searchTheWeb"),
|
|
93
|
-
key: "unsplash",
|
|
94
|
-
dataCy: "neeto-image-uploader-unsplash-tab"
|
|
95
|
-
}];
|
|
96
|
-
var OPTIONS = [{
|
|
97
|
-
key: "local",
|
|
98
|
-
label: i18next.t("neetoImageUploader.labels.uploadNewImage"),
|
|
99
|
-
"data-cy": "upload-new-asset",
|
|
100
|
-
style: "primary",
|
|
101
|
-
onClick: neetoCist.noop
|
|
102
|
-
}];
|
|
103
|
-
var DEFAULT_CROP_CONFIG = {
|
|
104
|
-
unit: "px",
|
|
105
|
-
height: 0,
|
|
106
|
-
width: 0,
|
|
107
|
-
x: 0,
|
|
108
|
-
y: 0
|
|
109
|
-
};
|
|
110
|
-
var INFINITE_SCROLLER_SIZES = [{
|
|
111
|
-
columns: 2,
|
|
112
|
-
gutter: 0
|
|
113
|
-
}, {
|
|
114
|
-
mq: "768px",
|
|
115
|
-
columns: 4,
|
|
116
|
-
gutter: 0
|
|
117
|
-
}, {
|
|
118
|
-
mq: "1024px",
|
|
119
|
-
columns: 4,
|
|
120
|
-
gutter: 0
|
|
121
|
-
}];
|
|
122
|
-
var INFINITE_SCROLLER_STYLE = {
|
|
123
|
-
width: "100%"
|
|
124
|
-
};
|
|
125
|
-
var IMAGE_UPLOAD_SERVICE_URL = initializers.globalProps.assetsUploaderService === index.CLOUD_FLARE ? "neeto_image_uploader_engine/cloudflare_images" : "neeto_image_uploader_engine/imagekit/fetch";
|
|
126
|
-
var ASSETS_FETCH_URL = index.IS_DEVELOPMENT_OR_HEROKU_ENV ? "neeto_image_uploader_engine/development/fetch" : IMAGE_UPLOAD_SERVICE_URL;
|
|
127
|
-
var ASSETS_DESTROY_URL = index.IS_DEVELOPMENT_OR_HEROKU_ENV ? "neeto_image_uploader_engine/development/bulk_destroy" : "neeto_image_uploader_engine/imagekit/bulk_destroy";
|
|
128
|
-
var IMAGE_WRAPPER_CLASSNAME = "neeto-ui-border-gray-300 neeto-ui-bg-gray-100 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative flex h-full w-full flex-col items-center justify-center gap-5 border border-dashed p-2 transition-all duration-300 ease-in-out";
|
|
129
|
-
|
|
130
|
-
var getCropValues = function getCropValues(_ref) {
|
|
131
|
-
var crop = _ref.crop,
|
|
132
|
-
imageRef = _ref.imageRef;
|
|
133
|
-
return {
|
|
134
|
-
x: imageRef.current.naturalWidth * (crop.x / imageRef.current.width),
|
|
135
|
-
y: imageRef.current.naturalHeight * (crop.y / imageRef.current.height),
|
|
136
|
-
height: imageRef.current.naturalHeight * (crop.height / imageRef.current.height),
|
|
137
|
-
width: imageRef.current.naturalWidth * (crop.width / imageRef.current.width)
|
|
138
|
-
};
|
|
139
|
-
};
|
|
140
|
-
var getImageKitCroppedURL = function getImageKitCroppedURL(_ref2) {
|
|
141
|
-
var imageURL = _ref2.imageURL,
|
|
142
|
-
crop = _ref2.crop,
|
|
143
|
-
imageRef = _ref2.imageRef;
|
|
144
|
-
var imagekit = new index.ImageKit({
|
|
145
|
-
urlEndpoint: initializers.globalProps.imagekit.urlEndpoint
|
|
146
|
-
});
|
|
147
|
-
var _getCropValues = getCropValues({
|
|
148
|
-
crop: crop,
|
|
149
|
-
imageRef: imageRef
|
|
150
|
-
}),
|
|
151
|
-
x = _getCropValues.x,
|
|
152
|
-
y = _getCropValues.y,
|
|
153
|
-
height = _getCropValues.height,
|
|
154
|
-
width = _getCropValues.width;
|
|
155
|
-
var transformation = [{
|
|
156
|
-
cropMode: "extract",
|
|
157
|
-
x: x,
|
|
158
|
-
y: y,
|
|
159
|
-
height: height,
|
|
160
|
-
width: width
|
|
161
|
-
}];
|
|
162
|
-
return imagekit.url({
|
|
163
|
-
src: imageURL,
|
|
164
|
-
transformation: transformation
|
|
165
|
-
});
|
|
166
|
-
};
|
|
167
|
-
var isNilOrEmpty = function isNilOrEmpty(value) {
|
|
168
|
-
return ramda.isNil(value) || ramda.isEmpty(value);
|
|
169
|
-
};
|
|
170
|
-
var isNotNilOrEmpty = function isNotNilOrEmpty(value) {
|
|
171
|
-
return !isNilOrEmpty(value);
|
|
172
|
-
};
|
|
173
|
-
var onImageLoaded = function onImageLoaded(_ref3) {
|
|
174
|
-
var image = _ref3.image,
|
|
175
|
-
setCrop = _ref3.setCrop,
|
|
176
|
-
_ref3$cropAspectRatio = _ref3.cropAspectRatio,
|
|
177
|
-
cropAspectRatio = _ref3$cropAspectRatio === void 0 ? 16 / 9 : _ref3$cropAspectRatio;
|
|
178
|
-
var width = image.width,
|
|
179
|
-
height = image.height;
|
|
180
|
-
var imageAspectRatio = width / height;
|
|
181
|
-
var maxCropWidth = 250;
|
|
182
|
-
var maxCropHeight = maxCropWidth / cropAspectRatio;
|
|
183
|
-
var cropWidth, cropHeight;
|
|
184
|
-
if (imageAspectRatio > cropAspectRatio) {
|
|
185
|
-
cropWidth = Math.min(maxCropWidth, width);
|
|
186
|
-
cropHeight = cropWidth / cropAspectRatio;
|
|
187
|
-
} else if (height < maxCropHeight) {
|
|
188
|
-
cropWidth = width;
|
|
189
|
-
cropHeight = height;
|
|
190
|
-
} else {
|
|
191
|
-
cropHeight = Math.min(maxCropHeight, height);
|
|
192
|
-
cropWidth = cropHeight * cropAspectRatio;
|
|
193
|
-
}
|
|
194
|
-
var cropX = (width - cropWidth) / 2;
|
|
195
|
-
var cropY = (height - cropHeight) / 2;
|
|
196
|
-
setCrop({
|
|
197
|
-
unit: "px",
|
|
198
|
-
width: cropWidth,
|
|
199
|
-
height: cropHeight,
|
|
200
|
-
x: cropX,
|
|
201
|
-
y: cropY
|
|
202
|
-
});
|
|
203
|
-
};
|
|
204
|
-
var isItemsCenter = function isItemsCenter(_ref4) {
|
|
205
|
-
var imageRef = _ref4.imageRef,
|
|
206
|
-
wrapperRef = _ref4.wrapperRef;
|
|
207
|
-
var _ref5 = imageRef.current || {},
|
|
208
|
-
imageHeight = _ref5.height,
|
|
209
|
-
imageWidth = _ref5.width;
|
|
210
|
-
var wrapperHeight = (wrapperRef.current || {}).clientHeight;
|
|
211
|
-
if (imageHeight < imageWidth && imageHeight < wrapperHeight - 1) {
|
|
212
|
-
// Landscape images smaller than wrapper dimensions
|
|
213
|
-
return true;
|
|
214
|
-
}
|
|
215
|
-
if (imageHeight === imageWidth && imageHeight < wrapperHeight - 1) {
|
|
216
|
-
// Square images smaller than wrapper dimensions
|
|
217
|
-
return true;
|
|
218
|
-
}
|
|
219
|
-
return imageHeight > imageWidth && imageHeight < wrapperHeight - 1;
|
|
220
|
-
};
|
|
221
|
-
var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCroppedValues(_ref6) {
|
|
222
|
-
var imageRef = _ref6.imageRef,
|
|
223
|
-
image = _ref6.image,
|
|
224
|
-
crop = _ref6.crop;
|
|
225
|
-
var scaleX = image.metadata.width / imageRef.current.width;
|
|
226
|
-
var scaleY = image.metadata.height / imageRef.current.height;
|
|
227
|
-
var sourceX = scaleX * crop.x;
|
|
228
|
-
var sourceY = scaleY * crop.y;
|
|
229
|
-
var sourceWidth = scaleX * crop.width;
|
|
230
|
-
var sourceHeight = scaleY * crop.height;
|
|
231
|
-
var distanceFromRight = Math.abs(image.metadata.width - (sourceX + sourceWidth));
|
|
232
|
-
var distanceFromBottom = Math.abs(image.metadata.height - (sourceY + sourceHeight));
|
|
233
|
-
return {
|
|
234
|
-
top: sourceY,
|
|
235
|
-
right: distanceFromRight,
|
|
236
|
-
bottom: distanceFromBottom,
|
|
237
|
-
left: sourceX
|
|
238
|
-
};
|
|
239
|
-
};
|
|
240
|
-
var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(_ref7) {
|
|
241
|
-
var imageRef = _ref7.imageRef,
|
|
242
|
-
image = _ref7.image,
|
|
243
|
-
crop = _ref7.crop;
|
|
244
|
-
var _calculateCloudFlareI = calculateCloudFlareImageCroppedValues({
|
|
245
|
-
imageRef: imageRef,
|
|
246
|
-
image: image,
|
|
247
|
-
crop: crop
|
|
248
|
-
}),
|
|
249
|
-
top = _calculateCloudFlareI.top,
|
|
250
|
-
right = _calculateCloudFlareI.right,
|
|
251
|
-
bottom = _calculateCloudFlareI.bottom,
|
|
252
|
-
left = _calculateCloudFlareI.left;
|
|
253
|
-
var trimValues = "".concat(top, ";").concat(right, ";").concat(bottom, ";").concat(left);
|
|
254
|
-
return image.url.replace("public", "trim=".concat(trimValues));
|
|
255
|
-
};
|
|
256
|
-
|
|
257
|
-
exports.ASSETS_DESTROY_URL = ASSETS_DESTROY_URL;
|
|
258
|
-
exports.ASSETS_FETCH_URL = ASSETS_FETCH_URL;
|
|
259
|
-
exports.DEFAULT_CROP_CONFIG = DEFAULT_CROP_CONFIG;
|
|
260
|
-
exports.DEFAULT_UPLOAD_CONFIG = DEFAULT_UPLOAD_CONFIG;
|
|
261
|
-
exports.DROPZONE_ROOT_DIV_CLASSNAME = DROPZONE_ROOT_DIV_CLASSNAME;
|
|
262
|
-
exports.IMAGES_PER_PAGE = IMAGES_PER_PAGE;
|
|
263
|
-
exports.IMAGE_WRAPPER_CLASSNAME = IMAGE_WRAPPER_CLASSNAME;
|
|
264
|
-
exports.INFINITE_SCROLLER_SIZES = INFINITE_SCROLLER_SIZES;
|
|
265
|
-
exports.INFINITE_SCROLLER_STYLE = INFINITE_SCROLLER_STYLE;
|
|
266
|
-
exports.OPTIONS = OPTIONS;
|
|
267
|
-
exports.OPTION_KEYS = OPTION_KEYS;
|
|
268
|
-
exports.TABS = TABS;
|
|
269
|
-
exports.UNSPLASH_DEFAULT_NAME = UNSPLASH_DEFAULT_NAME;
|
|
270
|
-
exports.UNSPLASH_DEFAULT_REQUEST_CONFIG = UNSPLASH_DEFAULT_REQUEST_CONFIG;
|
|
271
|
-
exports.UNSPLASH_URL = UNSPLASH_URL;
|
|
272
|
-
exports.getCloudFlareCroppedURL = getCloudFlareCroppedURL;
|
|
273
|
-
exports.getCropValues = getCropValues;
|
|
274
|
-
exports.getImageKitCroppedURL = getImageKitCroppedURL;
|
|
275
|
-
exports.isItemsCenter = isItemsCenter;
|
|
276
|
-
exports.isNilOrEmpty = isNilOrEmpty;
|
|
277
|
-
exports.isNotNilOrEmpty = isNotNilOrEmpty;
|
|
278
|
-
exports.onImageLoaded = onImageLoaded;
|
|
279
|
-
exports.useUploadDropzone = useUploadDropzone;
|
|
280
|
-
//# sourceMappingURL=utils-tPaqWDxV.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-tPaqWDxV.js","sources":["../app/javascript/src/components/ImageUploader/constants.js","../app/javascript/src/components/common/constants.js","../app/javascript/src/components/common/utils.js","../app/javascript/src/hooks/useUploadDropzone.js","../app/javascript/src/components/constants.js","../app/javascript/src/components/ImageEditor/utils.js"],"sourcesContent":["import { globalProps } from \"neetocommons/initializers\";\n\nexport const DEFAULT_ALLOWED_IMAGE_TYPES = {\n \"image/png\": [\".png\"],\n \"image/jpg\": [\".jpg\", \".jpeg\"],\n \"image/gif\": [\".gif\"],\n \"image/svg+xml\": [\".svg\"],\n};\n\nexport const DEFAULT_UPLOAD_CONFIG = {\n maxImageSize: globalProps.endUserUploadedFileSizeLimitInMb,\n allowedImageTypes: DEFAULT_ALLOWED_IMAGE_TYPES,\n};\n\nexport const OPTION_KEYS = { asset: \"asset\", remove: \"remove\" };\n","import { t } from \"i18next\";\n\nexport const DROPZONE_ROOT_DIV_CLASSNAME =\n \"neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full w-full flex-col items-center justify-center gap-3 border border-dashed p-4 transition-all duration-300 ease-in-out\";\n\nexport const FILE_ERRORS = {\n \"file-invalid-type\": t(\"neetoImageUploader.imageUpload.fileTypeError\"),\n \"file-too-large\": t(\"neetoImageUploader.imageUpload.fileSizeError\"),\n};\n","import { t } from \"i18next\";\nimport { Toastr } from \"neetoui\";\n\nimport { FILE_ERRORS } from \"./constants\";\n\nexport const handleDropRejected = fileRejections => {\n fileRejections.map(({ errors }) =>\n errors.map(({ code }) =>\n Toastr.error(\n FILE_ERRORS[code] || t(\"neetoImageUploader.imageUpload.genericError\")\n )\n )\n );\n};\n","import { useState } from \"react\";\n\nimport { useDropzone } from \"react-dropzone\";\n\nimport { handleDropRejected } from \"components/common/utils\";\n\nconst useUploadDropzone = ({\n uploadConfig = { allowedImageTypes: [], maxImageSize: 0 },\n onDrop,\n}) => {\n const [uploadProgress, setUploadProgress] = useState(0);\n\n const { getRootProps, getInputProps, isDragActive, inputRef } = useDropzone({\n onDrop: acceptedFiles => onDrop(acceptedFiles[0], setUploadProgress),\n accept: uploadConfig?.allowedImageTypes,\n multiple: false,\n maxSize: uploadConfig.maxImageSize * 1_048_576,\n onDropRejected: handleDropRejected,\n });\n\n return {\n getRootProps,\n getInputProps,\n isDragActive,\n uploadProgress,\n inputRef,\n };\n};\n\nexport default useUploadDropzone;\n","import i18next from \"i18next\";\nimport { noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\n\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nexport const UNSPLASH_DEFAULT_NAME = \"Unsplash-asset\";\n\nexport const UNSPLASH_URL = \"https://unsplash.com/\";\n\nexport const IMAGES_PER_PAGE = 30;\n\nexport const UNSPLASH_DEFAULT_REQUEST_CONFIG = {\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"GET\",\n },\n responseType: \"blob\",\n};\n\nexport const TABS = [\n {\n label: i18next.t(\"neetoImageUploader.labels.myImages\"),\n key: \"images\",\n dataCy: \"neeto-image-uploader-my-images-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.searchTheWeb\"),\n key: \"unsplash\",\n dataCy: \"neeto-image-uploader-unsplash-tab\",\n },\n];\n\nexport const OPTIONS = [\n {\n key: \"local\",\n label: i18next.t(\"neetoImageUploader.labels.uploadNewImage\"),\n \"data-cy\": \"upload-new-asset\",\n style: \"primary\",\n onClick: noop,\n },\n];\n\nexport const DEFAULT_CROP_CONFIG = {\n unit: \"px\",\n height: 0,\n width: 0,\n x: 0,\n y: 0,\n};\n\nexport const URL_REGEXP =\n /[(http(s)?)://(www.)?a-zA-Z0-9@:%._+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_+.~#?&//=]*)/;\n\nexport const INFINITE_SCROLLER_SIZES = [\n { columns: 2, gutter: 0 },\n { mq: \"768px\", columns: 4, gutter: 0 },\n { mq: \"1024px\", columns: 4, gutter: 0 },\n];\n\nexport const INFINITE_SCROLLER_STYLE = { width: \"100%\" };\n\nexport const ALLOWED_IMAGE_TYPES = {\n \"image/*\": [\".png\", \".jpg\", \".jpeg\", \".svg\", \".gif\"],\n};\n\nexport const IMAGE_UPLOAD_SERVICE_URL =\n globalProps.assetsUploaderService === CLOUD_FLARE\n ? \"neeto_image_uploader_engine/cloudflare_images\"\n : \"neeto_image_uploader_engine/imagekit/fetch\";\n\nexport const ASSETS_FETCH_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/fetch\"\n : IMAGE_UPLOAD_SERVICE_URL;\n\nexport const ASSETS_DESTROY_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/bulk_destroy\"\n : \"neeto_image_uploader_engine/imagekit/bulk_destroy\";\n\nexport const IMAGE_WRAPPER_CLASSNAME =\n \"neeto-ui-border-gray-300 neeto-ui-bg-gray-100 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative flex h-full w-full flex-col items-center justify-center gap-5 border border-dashed p-2 transition-all duration-300 ease-in-out\";\n","import ImageKit from \"imagekit-javascript\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nexport const getCropValues = ({ crop, imageRef }) => ({\n x: imageRef.current.naturalWidth * (crop.x / imageRef.current.width),\n y: imageRef.current.naturalHeight * (crop.y / imageRef.current.height),\n height:\n imageRef.current.naturalHeight * (crop.height / imageRef.current.height),\n width: imageRef.current.naturalWidth * (crop.width / imageRef.current.width),\n});\n\nexport const getImageKitCroppedURL = ({ imageURL, crop, imageRef }) => {\n const imagekit = new ImageKit({\n urlEndpoint: globalProps.imagekit.urlEndpoint,\n });\n const { x, y, height, width } = getCropValues({ crop, imageRef });\n\n const transformation = [{ cropMode: \"extract\", x, y, height, width }];\n\n return imagekit.url({ src: imageURL, transformation });\n};\n\nexport const isNilOrEmpty = value => isNil(value) || isEmpty(value);\nexport const isNotNilOrEmpty = value => !isNilOrEmpty(value);\n\nexport const onImageLoaded = ({ image, setCrop, cropAspectRatio = 16 / 9 }) => {\n const { width, height } = image;\n const imageAspectRatio = width / height;\n const maxCropWidth = 250;\n const maxCropHeight = maxCropWidth / cropAspectRatio;\n\n let cropWidth, cropHeight;\n\n if (imageAspectRatio > cropAspectRatio) {\n cropWidth = Math.min(maxCropWidth, width);\n cropHeight = cropWidth / cropAspectRatio;\n } else if (height < maxCropHeight) {\n cropWidth = width;\n cropHeight = height;\n } else {\n cropHeight = Math.min(maxCropHeight, height);\n cropWidth = cropHeight * cropAspectRatio;\n }\n\n const cropX = (width - cropWidth) / 2;\n const cropY = (height - cropHeight) / 2;\n\n setCrop({\n unit: \"px\",\n width: cropWidth,\n height: cropHeight,\n x: cropX,\n y: cropY,\n });\n};\n\nexport const isItemsCenter = ({ imageRef, wrapperRef }) => {\n const { height: imageHeight, width: imageWidth } = imageRef.current || {};\n const wrapperHeight = (wrapperRef.current || {}).clientHeight;\n\n if (imageHeight < imageWidth && imageHeight < wrapperHeight - 1) {\n // Landscape images smaller than wrapper dimensions\n return true;\n }\n\n if (imageHeight === imageWidth && imageHeight < wrapperHeight - 1) {\n // Square images smaller than wrapper dimensions\n return true;\n }\n\n return imageHeight > imageWidth && imageHeight < wrapperHeight - 1;\n};\n\nexport const calculateCloudFlareImageCroppedValues = ({\n imageRef,\n image,\n crop,\n}) => {\n const scaleX = image.metadata.width / imageRef.current.width;\n const scaleY = image.metadata.height / imageRef.current.height;\n\n const sourceX = scaleX * crop.x;\n const sourceY = scaleY * crop.y;\n const sourceWidth = scaleX * crop.width;\n const sourceHeight = scaleY * crop.height;\n\n const distanceFromRight = Math.abs(\n image.metadata.width - (sourceX + sourceWidth)\n );\n\n const distanceFromBottom = Math.abs(\n image.metadata.height - (sourceY + sourceHeight)\n );\n\n return {\n top: sourceY,\n right: distanceFromRight,\n bottom: distanceFromBottom,\n left: sourceX,\n };\n};\n\nexport const getCloudFlareCroppedURL = ({ imageRef, image, crop }) => {\n const { top, right, bottom, left } = calculateCloudFlareImageCroppedValues({\n imageRef,\n image,\n crop,\n });\n const trimValues = `${top};${right};${bottom};${left}`;\n\n return image.url.replace(\"public\", `trim=${trimValues}`);\n};\n"],"names":["DEFAULT_ALLOWED_IMAGE_TYPES","DEFAULT_UPLOAD_CONFIG","maxImageSize","globalProps","endUserUploadedFileSizeLimitInMb","allowedImageTypes","OPTION_KEYS","asset","remove","DROPZONE_ROOT_DIV_CLASSNAME","FILE_ERRORS","t","handleDropRejected","fileRejections","map","_ref","errors","_ref2","code","Toastr","error","useUploadDropzone","_ref$uploadConfig","uploadConfig","onDrop","_useState","useState","_useState2","_slicedToArray","uploadProgress","setUploadProgress","_useDropzone","useDropzone","acceptedFiles","accept","multiple","maxSize","onDropRejected","getRootProps","getInputProps","isDragActive","inputRef","UNSPLASH_DEFAULT_NAME","UNSPLASH_URL","IMAGES_PER_PAGE","UNSPLASH_DEFAULT_REQUEST_CONFIG","headers","responseType","TABS","label","i18next","key","dataCy","OPTIONS","style","onClick","noop","DEFAULT_CROP_CONFIG","unit","height","width","x","y","INFINITE_SCROLLER_SIZES","columns","gutter","mq","INFINITE_SCROLLER_STYLE","IMAGE_UPLOAD_SERVICE_URL","assetsUploaderService","CLOUD_FLARE","ASSETS_FETCH_URL","IS_DEVELOPMENT_OR_HEROKU_ENV","ASSETS_DESTROY_URL","IMAGE_WRAPPER_CLASSNAME","getCropValues","crop","imageRef","current","naturalWidth","naturalHeight","getImageKitCroppedURL","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","value","isNil","isEmpty","isNotNilOrEmpty","onImageLoaded","_ref3","image","setCrop","_ref3$cropAspectRatio","cropAspectRatio","imageAspectRatio","maxCropWidth","maxCropHeight","cropWidth","cropHeight","Math","min","cropX","cropY","isItemsCenter","_ref4","wrapperRef","_ref5","imageHeight","imageWidth","wrapperHeight","clientHeight","calculateCloudFlareImageCroppedValues","_ref6","scaleX","metadata","scaleY","sourceX","sourceY","sourceWidth","sourceHeight","distanceFromRight","abs","distanceFromBottom","top","right","bottom","left","getCloudFlareCroppedURL","_ref7","_calculateCloudFlareI","trimValues","concat","replace"],"mappings":"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"}
|