@bigbinary/neeto-image-uploader-frontend 4.0.12 → 4.0.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/dist/.ready +1 -1
- package/dist/AssetLibrary.js +5 -5
- package/dist/BasicImageUploader.js +2 -2
- package/dist/ImageForm.js +5 -5
- package/dist/ImageUploader.js +5 -5
- package/dist/cjs/AssetLibrary.js +5 -5
- package/dist/cjs/BasicImageUploader.js +2 -2
- package/dist/cjs/ImageForm.js +5 -5
- package/dist/cjs/ImageUploader.js +5 -5
- package/dist/cjs/hooks.js +1 -1
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/v2/AssetLibrary.js +5 -5
- package/dist/cjs/v2/BasicImageUploader.js +1 -1
- package/dist/cjs/v2/ImageForm.js +5 -5
- package/dist/cjs/v2/ImageUploader.js +5 -5
- package/dist/cjs/v2/hooks.js +1 -1
- package/dist/cjs/v2/index.js +5 -5
- package/dist/{constants-D8YY7aVx.js → constants-BNGwgivX.js} +6 -2
- package/dist/constants-BNGwgivX.js.map +1 -0
- package/dist/{constants-rSdnoUWv.js → constants-DaSuAD1y.js} +6 -1
- package/dist/constants-DaSuAD1y.js.map +1 -0
- package/dist/hooks.js +1 -1
- package/dist/{index-BFPek9ek.js → index-BYfso12Q.js} +20 -12
- package/dist/index-BYfso12Q.js.map +1 -0
- package/dist/{index-q56JLh5J.js → index-BlUNJMFN.js} +18 -8
- package/dist/index-BlUNJMFN.js.map +1 -0
- package/dist/{index-CbRMVeis.js → index-C7wF6PXg.js} +20 -12
- package/dist/index-C7wF6PXg.js.map +1 -0
- package/dist/{index-e471xvRu.js → index-D--_BhYf.js} +18 -8
- package/dist/index-D--_BhYf.js.map +1 -0
- package/dist/index.js +5 -5
- package/dist/{useImageUploader-BsSpqUky.js → useImageUploader-BWLT38Jh.js} +25 -18
- package/dist/useImageUploader-BWLT38Jh.js.map +1 -0
- package/dist/{useImageUploader-TOt_v6Rn.js → useImageUploader-C0LPNMXM.js} +25 -18
- package/dist/useImageUploader-C0LPNMXM.js.map +1 -0
- package/dist/{useImageUploader-J3bippyP.js → useImageUploader-D8EKfvhs.js} +25 -18
- package/dist/useImageUploader-D8EKfvhs.js.map +1 -0
- package/dist/{useImageUploader-uFdwIcWA.js → useImageUploader-oEM4sZhG.js} +25 -18
- package/dist/useImageUploader-oEM4sZhG.js.map +1 -0
- package/dist/{useUnsplashApi-Dl6ZdUSP.js → useUnsplashApi-_-5cRT70.js} +2 -2
- package/dist/{useUnsplashApi-Dl6ZdUSP.js.map → useUnsplashApi-_-5cRT70.js.map} +1 -1
- package/dist/{useUnsplashApi-BLygxRcf.js → useUnsplashApi-qANYsRgw.js} +2 -2
- package/dist/{useUnsplashApi-BLygxRcf.js.map → useUnsplashApi-qANYsRgw.js.map} +1 -1
- package/dist/{utils-gOguzq7u.js → utils-BG5uqsQH.js} +55 -44
- package/dist/utils-BG5uqsQH.js.map +1 -0
- package/dist/{utils-C-_hvapN.js → utils-CBR0uhqY.js} +52 -44
- package/dist/utils-CBR0uhqY.js.map +1 -0
- package/dist/{utils-BuYOlqCV.js → utils-DQye8ufx.js} +55 -44
- package/dist/utils-DQye8ufx.js.map +1 -0
- package/dist/{utils-BkIHGr19.js → utils-hFSeEG9S.js} +52 -44
- package/dist/utils-hFSeEG9S.js.map +1 -0
- package/dist/v2/AssetLibrary.js +5 -5
- package/dist/v2/BasicImageUploader.js +1 -1
- package/dist/v2/ImageForm.js +5 -5
- package/dist/v2/ImageUploader.js +5 -5
- package/dist/v2/hooks.js +1 -1
- package/dist/v2/index.js +5 -5
- package/package.json +23 -23
- package/dist/constants-D8YY7aVx.js.map +0 -1
- package/dist/constants-rSdnoUWv.js.map +0 -1
- package/dist/index-BFPek9ek.js.map +0 -1
- package/dist/index-CbRMVeis.js.map +0 -1
- package/dist/index-e471xvRu.js.map +0 -1
- package/dist/index-q56JLh5J.js.map +0 -1
- package/dist/useImageUploader-BsSpqUky.js.map +0 -1
- package/dist/useImageUploader-J3bippyP.js.map +0 -1
- package/dist/useImageUploader-TOt_v6Rn.js.map +0 -1
- package/dist/useImageUploader-uFdwIcWA.js.map +0 -1
- package/dist/utils-BkIHGr19.js.map +0 -1
- package/dist/utils-BuYOlqCV.js.map +0 -1
- package/dist/utils-C-_hvapN.js.map +0 -1
- package/dist/utils-gOguzq7u.js.map +0 -1
|
@@ -227,6 +227,10 @@ var DEFAULT_CROP_CONFIG = {
|
|
|
227
227
|
x: 0,
|
|
228
228
|
y: 0
|
|
229
229
|
};
|
|
230
|
+
var DEFAULT_ASPECT_RATIO = {
|
|
231
|
+
width: 16,
|
|
232
|
+
height: 9
|
|
233
|
+
};
|
|
230
234
|
var INFINITE_SCROLLER_SIZES = [{
|
|
231
235
|
columns: 2,
|
|
232
236
|
gutter: 0
|
|
@@ -254,20 +258,30 @@ var getWholeNumberAspectRatio = function getWholeNumberAspectRatio(_ref) {
|
|
|
254
258
|
width: 1,
|
|
255
259
|
height: 1
|
|
256
260
|
};
|
|
257
|
-
|
|
258
|
-
|
|
261
|
+
|
|
262
|
+
// NaN or Infinity would make the gcd loop below never terminate.
|
|
263
|
+
if (!Number.isFinite(width) || !Number.isFinite(height)) {
|
|
264
|
+
return DEFAULT_ASPECT_RATIO;
|
|
265
|
+
}
|
|
266
|
+
var gcd = function gcd(a, b) {
|
|
267
|
+
while (b !== 0) {
|
|
268
|
+
var _ref2 = [b, a % b];
|
|
269
|
+
a = _ref2[0];
|
|
270
|
+
b = _ref2[1];
|
|
271
|
+
}
|
|
272
|
+
return a;
|
|
259
273
|
};
|
|
260
274
|
|
|
261
275
|
// Multiplying by 1000 is a temporary fix to prevent height and width with fractions (eg: 100.91).
|
|
262
|
-
var divisor =
|
|
276
|
+
var divisor = gcd(width * 1000, height * 1000);
|
|
263
277
|
return {
|
|
264
278
|
width: width / divisor,
|
|
265
279
|
height: height / divisor
|
|
266
280
|
};
|
|
267
281
|
};
|
|
268
|
-
var getCropValues = function getCropValues(
|
|
269
|
-
var crop =
|
|
270
|
-
imageRef =
|
|
282
|
+
var getCropValues = function getCropValues(_ref3) {
|
|
283
|
+
var crop = _ref3.crop,
|
|
284
|
+
imageRef = _ref3.imageRef;
|
|
271
285
|
var naturalWidth = imageRef.current.naturalWidth;
|
|
272
286
|
var naturalHeight = imageRef.current.naturalHeight;
|
|
273
287
|
return {
|
|
@@ -277,10 +291,10 @@ var getCropValues = function getCropValues(_ref2) {
|
|
|
277
291
|
height: crop.height / 100 * naturalHeight
|
|
278
292
|
};
|
|
279
293
|
};
|
|
280
|
-
var getImageKitCroppedURL = function getImageKitCroppedURL(
|
|
281
|
-
var imageURL =
|
|
282
|
-
crop =
|
|
283
|
-
imageRef =
|
|
294
|
+
var getImageKitCroppedURL = function getImageKitCroppedURL(_ref4) {
|
|
295
|
+
var imageURL = _ref4.imageURL,
|
|
296
|
+
crop = _ref4.crop,
|
|
297
|
+
imageRef = _ref4.imageRef;
|
|
284
298
|
var imagekit = new ImageKit({
|
|
285
299
|
urlEndpoint: globalProps.imagekit.urlEndpoint
|
|
286
300
|
});
|
|
@@ -310,12 +324,12 @@ var isNilOrEmpty = function isNilOrEmpty(value) {
|
|
|
310
324
|
var isNotNilOrEmpty = function isNotNilOrEmpty(value) {
|
|
311
325
|
return !isNilOrEmpty(value);
|
|
312
326
|
};
|
|
313
|
-
var isItemsCenter = function isItemsCenter(
|
|
314
|
-
var imageRef =
|
|
315
|
-
wrapperRef =
|
|
316
|
-
var
|
|
317
|
-
imageHeight =
|
|
318
|
-
imageWidth =
|
|
327
|
+
var isItemsCenter = function isItemsCenter(_ref5) {
|
|
328
|
+
var imageRef = _ref5.imageRef,
|
|
329
|
+
wrapperRef = _ref5.wrapperRef;
|
|
330
|
+
var _ref6 = imageRef.current || {},
|
|
331
|
+
imageHeight = _ref6.height,
|
|
332
|
+
imageWidth = _ref6.width;
|
|
319
333
|
var wrapperHeight = (wrapperRef.current || {}).clientHeight;
|
|
320
334
|
if (imageHeight < imageWidth && imageHeight < wrapperHeight - 1) {
|
|
321
335
|
// Landscape images smaller than wrapper dimensions
|
|
@@ -327,9 +341,9 @@ var isItemsCenter = function isItemsCenter(_ref4) {
|
|
|
327
341
|
}
|
|
328
342
|
return imageHeight > imageWidth && imageHeight < wrapperHeight - 1;
|
|
329
343
|
};
|
|
330
|
-
var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCroppedValues(
|
|
331
|
-
var image =
|
|
332
|
-
crop =
|
|
344
|
+
var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCroppedValues(_ref7) {
|
|
345
|
+
var image = _ref7.image,
|
|
346
|
+
crop = _ref7.crop;
|
|
333
347
|
var naturalWidth = image.metadata.width;
|
|
334
348
|
var naturalHeight = image.metadata.height;
|
|
335
349
|
var sourceX = crop.x / 100 * naturalWidth;
|
|
@@ -345,9 +359,9 @@ var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCro
|
|
|
345
359
|
left: sourceX
|
|
346
360
|
};
|
|
347
361
|
};
|
|
348
|
-
var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(
|
|
349
|
-
var image =
|
|
350
|
-
crop =
|
|
362
|
+
var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(_ref8) {
|
|
363
|
+
var image = _ref8.image,
|
|
364
|
+
crop = _ref8.crop;
|
|
351
365
|
var _calculateCloudFlareI = calculateCloudFlareImageCroppedValues({
|
|
352
366
|
image: image,
|
|
353
367
|
crop: crop
|
|
@@ -359,19 +373,16 @@ var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(_ref7) {
|
|
|
359
373
|
var trimValues = "".concat(top, ";").concat(right, ";").concat(bottom, ";").concat(left);
|
|
360
374
|
return image.url.replace("public", "trim=".concat(trimValues));
|
|
361
375
|
};
|
|
362
|
-
var getAspectRatio = function getAspectRatio(
|
|
363
|
-
var fixedAspectRatio =
|
|
364
|
-
imageSize =
|
|
376
|
+
var getAspectRatio = function getAspectRatio(_ref9) {
|
|
377
|
+
var fixedAspectRatio = _ref9.fixedAspectRatio,
|
|
378
|
+
imageSize = _ref9.imageSize;
|
|
365
379
|
if (isPresent(fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.width) && isPresent(fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.height)) {
|
|
366
380
|
return fixedAspectRatio;
|
|
367
381
|
}
|
|
368
382
|
if (isPresent(imageSize === null || imageSize === void 0 ? void 0 : imageSize.width) && isPresent(imageSize === null || imageSize === void 0 ? void 0 : imageSize.height)) {
|
|
369
383
|
return getWholeNumberAspectRatio(imageSize);
|
|
370
384
|
}
|
|
371
|
-
return
|
|
372
|
-
width: 16,
|
|
373
|
-
height: 9
|
|
374
|
-
};
|
|
385
|
+
return DEFAULT_ASPECT_RATIO;
|
|
375
386
|
};
|
|
376
387
|
var getPixels = function getPixels(percentage, pixel) {
|
|
377
388
|
return Math.round(percentage / 100 * pixel);
|
|
@@ -379,10 +390,10 @@ var getPixels = function getPixels(percentage, pixel) {
|
|
|
379
390
|
var getPercentage = function getPercentage(crop, full) {
|
|
380
391
|
return crop / full * 100;
|
|
381
392
|
};
|
|
382
|
-
var getInitialCropSize = function getInitialCropSize(
|
|
383
|
-
var image =
|
|
384
|
-
aspectRatioFactor =
|
|
385
|
-
maxCropWidth =
|
|
393
|
+
var getInitialCropSize = function getInitialCropSize(_ref0) {
|
|
394
|
+
var image = _ref0.image,
|
|
395
|
+
aspectRatioFactor = _ref0.aspectRatioFactor,
|
|
396
|
+
maxCropWidth = _ref0.maxCropWidth;
|
|
386
397
|
var imageWidth = image.naturalWidth,
|
|
387
398
|
imageHeight = image.naturalHeight;
|
|
388
399
|
var imageAspectRatio = imageWidth / imageHeight;
|
|
@@ -410,16 +421,16 @@ var getWidthFromAspectRatio = function getWidthFromAspectRatio(height, aspectRat
|
|
|
410
421
|
return Math.round(height * aspectRatio.width / aspectRatio.height);
|
|
411
422
|
};
|
|
412
423
|
var getWrapperRefStyles = function getWrapperRefStyles(wrapperRef, imageRef) {
|
|
413
|
-
var
|
|
414
|
-
|
|
415
|
-
naturalHeight =
|
|
416
|
-
|
|
417
|
-
naturalWidth =
|
|
418
|
-
var
|
|
419
|
-
|
|
420
|
-
clientHeight =
|
|
421
|
-
|
|
422
|
-
clientWidth =
|
|
424
|
+
var _ref1 = imageRef.current || {},
|
|
425
|
+
_ref1$naturalHeight = _ref1.naturalHeight,
|
|
426
|
+
naturalHeight = _ref1$naturalHeight === void 0 ? 100 : _ref1$naturalHeight,
|
|
427
|
+
_ref1$naturalWidth = _ref1.naturalWidth,
|
|
428
|
+
naturalWidth = _ref1$naturalWidth === void 0 ? 100 : _ref1$naturalWidth;
|
|
429
|
+
var _ref10 = wrapperRef.current || {},
|
|
430
|
+
_ref10$clientHeight = _ref10.clientHeight,
|
|
431
|
+
clientHeight = _ref10$clientHeight === void 0 ? 100 : _ref10$clientHeight,
|
|
432
|
+
_ref10$clientWidth = _ref10.clientWidth,
|
|
433
|
+
clientWidth = _ref10$clientWidth === void 0 ? 100 : _ref10$clientWidth;
|
|
423
434
|
if (naturalWidth <= clientWidth && naturalHeight <= clientHeight) {
|
|
424
435
|
return {
|
|
425
436
|
maxWidth: naturalWidth
|
|
@@ -450,4 +461,4 @@ var getWrapperRefStyles = function getWrapperRefStyles(wrapperRef, imageRef) {
|
|
|
450
461
|
};
|
|
451
462
|
|
|
452
463
|
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, ImageDirectUpload as a, isNilOrEmpty as b, DEFAULT_CROP_CONFIG as c, getPixels as d, getHeightFromAspectRatio as e, getWidthFromAspectRatio as f, getAspectRatio as g, getInitialCropSize as h, isNotNilOrEmpty as i, getPercentage as j, getWrapperRefStyles as k, isItemsCenter as l, getCloudFlareCroppedURL as m, getImageKitCroppedURL as n, getCropValues as o, INFINITE_SCROLLER_STYLE as p, INFINITE_SCROLLER_SIZES as q, IMAGES_PER_PAGE as r, ASSETS_FETCH_URL as s, UNSPLASH_DEFAULT_REQUEST_CONFIG as t, useUploadDropzone as u, UNSPLASH_URL as v };
|
|
453
|
-
//# sourceMappingURL=utils-
|
|
464
|
+
//# sourceMappingURL=utils-BG5uqsQH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-BG5uqsQH.js","sources":["../app/javascript/src/v2/components/common/constants.js","../app/javascript/src/v2/components/common/utils.js","../app/javascript/src/v2/hooks/useUploadDropzone.js","../app/javascript/src/v2/components/ImageUploader/constants.js","../app/javascript/src/v2/components/ImageUploader/utils.js","../app/javascript/src/v2/components/common/ImageDirectUpload.jsx","../app/javascript/src/v2/components/constants.js","../app/javascript/src/v2/components/ImageEditor/utils.js"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const DROPZONE_ROOT_DIV_CLASSNAME =\n \"border-primary hover:bg-muted 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 relative\";\n\nexport const FILE_ERRORS = {\n \"file-invalid-type\": t(\"neetoImageUploader.imageUpload.fileTypeError\"),\n \"file-too-large\": t(\"neetoImageUploader.imageUpload.fileSizeError\"),\n \"file-dimension-too-large\": t(\n \"neetoImageUploader.imageUpload.fileDimensionError\"\n ),\n \"file-resolution-too-large\": t(\n \"neetoImageUploader.imageUpload.fileResolutionError\"\n ),\n};\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\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 { noop } from \"neetocist\";\nimport { useDropzone } from \"react-dropzone\";\n\nimport { handleDropRejected } from \"v2/components/common/utils\";\n\nconst useUploadDropzone = ({\n uploadConfig = { allowedImageTypes: [], maxImageSize: 0 },\n onDrop,\n setImage = noop,\n}) => {\n const [uploadProgress, setUploadProgress] = useState(0);\n\n const { getRootProps, getInputProps, isDragActive, open } = useDropzone({\n onDrop: acceptedFiles =>\n onDrop(acceptedFiles[0], setUploadProgress, setImage),\n accept: uploadConfig?.allowedImageTypes,\n multiple: false,\n maxSize: uploadConfig.maxImageSize * 1_048_576,\n onDropRejected: handleDropRejected,\n noDragEventsBubbling: true,\n });\n\n return {\n getRootProps,\n getInputProps,\n isDragActive,\n open,\n uploadProgress,\n setUploadProgress,\n };\n};\n\nexport default useUploadDropzone;\n","import { globalProps } from \"neetocommons/v2/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 { 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 { forwardRef, useImperativeHandle } from \"react\";\n\nimport { Button, Progress, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { noop, isPresent } from \"neetocist\";\nimport { equals } from \"ramda\";\nimport { Trans } from \"react-i18next\";\n\nimport useUploadDropzone from \"v2/hooks/useUploadDropzone\";\nimport { DEFAULT_UPLOAD_CONFIG } from \"v2/components/ImageUploader/constants\";\nimport { getAllowedTypes } from \"v2/components/ImageUploader/utils\";\n\nimport { DROPZONE_ROOT_DIV_CLASSNAME } from \"./constants\";\n\nconst ImageDirectUpload = forwardRef(\n (\n {\n uploadConfig = DEFAULT_UPLOAD_CONFIG,\n onDrop = noop,\n isDisabled = false,\n setIsAssetLibraryOpen,\n defaultImageSize = {},\n isUploadDisabled = false,\n setImage,\n },\n ref\n ) => {\n const {\n getRootProps,\n getInputProps,\n isDragActive,\n open,\n uploadProgress,\n setUploadProgress,\n } = useUploadDropzone({ uploadConfig, onDrop, setImage });\n\n useImperativeHandle(ref, () => ({\n upload: file => onDrop(file, setUploadProgress, setImage),\n }));\n\n const shouldShowProgress = !!(uploadProgress && !equals(uploadProgress, 1));\n\n return (\n <div\n {...getRootProps()}\n className={classnames(DROPZONE_ROOT_DIV_CLASSNAME, {\n \"border-border\": !isDragActive,\n \"border-foreground\": isDragActive,\n })}\n >\n {shouldShowProgress ? (\n <Progress\n progressValue={`${uploadProgress}%`}\n value={uploadProgress}\n />\n ) : (\n <div className=\"flex flex-col space-y-1\">\n {!isDisabled && (\n <Typography\n className=\"text-center leading-4\"\n color=\"default\"\n variant=\"body2\"\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.dragAndDropOrBrowseFile\"\n components={{\n span: (\n <Button\n data-testid=\"neeto-image-uploader-browse-text\"\n variant=\"link\"\n onClick={event => {\n event.stopPropagation();\n open();\n }}\n />\n ),\n }}\n />\n </Typography>\n )}\n {setIsAssetLibraryOpen && (\n <Typography\n variant=\"body2\"\n className={classnames(\"text-center leading-4\", {\n \"pointer-events-none\": isUploadDisabled,\n })}\n onClick={e => {\n e.stopPropagation();\n setIsAssetLibraryOpen(true);\n }}\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.upload\"\n components={{\n span: (\n <Button\n data-testid=\"open-asset-library-button\"\n variant=\"link\"\n />\n ),\n }}\n />\n </Typography>\n )}\n <input\n {...getInputProps()}\n data-testid=\"neeto-image-uploader-file-input\"\n disabled={isDisabled || isUploadDisabled}\n />\n <Typography\n className=\"text-center leading-4\"\n color=\"muted\"\n data-testid=\"neeto-image-uploader-restriction-message\"\n variant=\"nano\"\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.restrictionMessage\"\n values={{\n fileTypes: getAllowedTypes(uploadConfig),\n size: uploadConfig?.maxImageSize,\n }}\n />\n </Typography>\n {isPresent(defaultImageSize) && (\n <Typography\n className=\"text-center leading-4\"\n color=\"muted\"\n data-testid=\"neeto-image-uploader-ideal-image-size-info-text\"\n variant=\"nano\"\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.idealImageSizeInfo\"\n values={{ ...defaultImageSize }}\n />\n </Typography>\n )}\n </div>\n )}\n </div>\n );\n }\n);\n\nImageDirectUpload.displayName = \"ImageDirectUpload\";\n\nexport default ImageDirectUpload;\n","import i18next from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\n\nimport {\n IMAGE_UPLOADER_BASE_URL,\n CLOUD_FLARE,\n IS_DEVELOPMENT_OR_HEROKU_ENV,\n} 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.uploadImage\"),\n key: \"upload\",\n dataTestid: \"neeto-image-uploader-upload-image-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.myImages\"),\n key: \"images\",\n dataTestid: \"neeto-image-uploader-my-images-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.searchTheWeb\"),\n key: \"unsplash\",\n dataTestid: \"neeto-image-uploader-unsplash-tab\",\n },\n];\n\nexport const DEFAULT_CROP_CONFIG = {\n unit: \"%\",\n height: 100,\n width: 100,\n x: 0,\n y: 0,\n};\n\nexport const DEFAULT_ASPECT_RATIO = { width: 16, height: 9 };\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 ? `${IMAGE_UPLOADER_BASE_URL}/cloudflare_images`\n : `${IMAGE_UPLOADER_BASE_URL}/imagekit/fetch`;\n\nexport const ASSETS_FETCH_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? `${IMAGE_UPLOADER_BASE_URL}/development/fetch`\n : IMAGE_UPLOAD_SERVICE_URL;\n\nexport const ASSETS_DESTROY_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? `${IMAGE_UPLOADER_BASE_URL}/development/bulk_destroy`\n : `${IMAGE_UPLOADER_BASE_URL}/imagekit/bulk_destroy`;\n\nexport const IMAGE_WRAPPER_CLASSNAME =\n \"border-border bg-muted hover:bg-muted/80 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 { isPresent } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nimport { DEFAULT_ASPECT_RATIO } from \"v2/components/constants\";\n\nconst getWholeNumberAspectRatio = ({ width, height }) => {\n if (width === height) return { width: 1, height: 1 };\n\n // NaN or Infinity would make the gcd loop below never terminate.\n if (!Number.isFinite(width) || !Number.isFinite(height)) {\n return DEFAULT_ASPECT_RATIO;\n }\n\n const gcd = (a, b) => {\n while (b !== 0) [a, b] = [b, a % b];\n\n return a;\n };\n\n // Multiplying by 1000 is a temporary fix to prevent height and width with fractions (eg: 100.91).\n const divisor = gcd(width * 1000, height * 1000);\n\n return { width: width / divisor, height: height / divisor };\n};\n\nexport const getCropValues = ({ crop, imageRef }) => {\n const naturalWidth = imageRef.current.naturalWidth;\n const naturalHeight = imageRef.current.naturalHeight;\n\n return {\n x: (crop.x / 100) * naturalWidth,\n y: (crop.y / 100) * naturalHeight,\n width: (crop.width / 100) * naturalWidth,\n height: (crop.height / 100) * naturalHeight,\n };\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 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 = ({ image, crop }) => {\n const naturalWidth = image.metadata.width;\n const naturalHeight = image.metadata.height;\n\n const sourceX = (crop.x / 100) * naturalWidth;\n const sourceY = (crop.y / 100) * naturalHeight;\n const sourceWidth = (crop.width / 100) * naturalWidth;\n const sourceHeight = (crop.height / 100) * naturalHeight;\n\n const distanceFromRight = Math.abs(naturalWidth - (sourceX + sourceWidth));\n const distanceFromBottom = Math.abs(naturalHeight - (sourceY + sourceHeight));\n\n return {\n top: sourceY,\n right: distanceFromRight,\n bottom: distanceFromBottom,\n left: sourceX,\n };\n};\n\nexport const getCloudFlareCroppedURL = ({ image, crop }) => {\n const { top, right, bottom, left } = calculateCloudFlareImageCroppedValues({\n image,\n crop,\n });\n const trimValues = `${top};${right};${bottom};${left}`;\n\n return image.url.replace(\"public\", `trim=${trimValues}`);\n};\n\nexport const getAspectRatio = ({ fixedAspectRatio, imageSize }) => {\n if (\n isPresent(fixedAspectRatio?.width) &&\n isPresent(fixedAspectRatio?.height)\n ) {\n return fixedAspectRatio;\n }\n\n if (isPresent(imageSize?.width) && isPresent(imageSize?.height)) {\n return getWholeNumberAspectRatio(imageSize);\n }\n\n return DEFAULT_ASPECT_RATIO;\n};\n\nexport const getPixels = (percentage, pixel) =>\n Math.round((percentage / 100) * pixel);\n\nexport const getPercentage = (crop, full) => (crop / full) * 100;\n\nexport const getInitialCropSize = ({\n image,\n aspectRatioFactor,\n maxCropWidth,\n}) => {\n const { naturalWidth: imageWidth, naturalHeight: imageHeight } = image;\n const imageAspectRatio = imageWidth / imageHeight;\n const maxCropHeight = maxCropWidth / aspectRatioFactor;\n\n let cropWidth, cropHeight;\n\n if (imageAspectRatio > aspectRatioFactor) {\n cropWidth = Math.min(maxCropWidth, imageWidth);\n cropHeight = cropWidth / aspectRatioFactor;\n } else if (imageHeight < maxCropHeight) {\n cropWidth = imageWidth;\n cropHeight = imageHeight;\n } else {\n cropHeight = Math.min(maxCropHeight, imageHeight);\n cropWidth = cropHeight * aspectRatioFactor;\n }\n\n return { cropWidth, cropHeight };\n};\n\nexport const getHeightFromAspectRatio = (width, aspectRatio) =>\n Math.round((width * aspectRatio.height) / aspectRatio.width);\n\nexport const getWidthFromAspectRatio = (height, aspectRatio) =>\n Math.round((height * aspectRatio.width) / aspectRatio.height);\n\nexport const getWrapperRefStyles = (wrapperRef, imageRef) => {\n const { naturalHeight = 100, naturalWidth = 100 } = imageRef.current || {};\n const { clientHeight = 100, clientWidth = 100 } = wrapperRef.current || {};\n\n if (naturalWidth <= clientWidth && naturalHeight <= clientHeight) {\n return { maxWidth: naturalWidth };\n } else if (naturalWidth > clientWidth && naturalHeight <= clientHeight) {\n return { maxWidth: clientWidth };\n } else if (naturalWidth <= clientWidth && naturalHeight > clientHeight) {\n const maxWidth = (naturalWidth / naturalHeight) * clientHeight;\n\n return { maxWidth };\n }\n\n // landscape\n if (naturalWidth > naturalHeight) {\n return { maxWidth: clientWidth };\n }\n\n // portrait\n const maxWidth = (naturalWidth / naturalHeight) * clientHeight;\n\n return { maxWidth };\n};\n"],"names":["DROPZONE_ROOT_DIV_CLASSNAME","FILE_ERRORS","t","handleDropRejected","fileRejections","map","_ref","errors","_ref2","code","Toastr","error","useUploadDropzone","_ref$uploadConfig","uploadConfig","allowedImageTypes","maxImageSize","onDrop","_ref$setImage","setImage","noop","_useState","useState","_useState2","_slicedToArray","uploadProgress","setUploadProgress","_useDropzone","useDropzone","acceptedFiles","accept","multiple","maxSize","onDropRejected","noDragEventsBubbling","getRootProps","getInputProps","isDragActive","open","DEFAULT_ALLOWED_IMAGE_TYPES","DEFAULT_UPLOAD_CONFIG","globalProps","endUserUploadedFileSizeLimitInMb","OPTION_KEYS","asset","remove","getAllowedTypes","pipe","values","flatten","extension","slice","toUpper","join","ImageDirectUpload","forwardRef","ref","_ref$onDrop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_ref$defaultImageSize","defaultImageSize","_ref$isUploadDisabled","isUploadDisabled","_useUploadDropzone","useImperativeHandle","upload","file","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","children","Progress","progressValue","concat","value","_jsxs","Typography","color","variant","Trans","i18nKey","components","span","Button","onClick","event","stopPropagation","e","disabled","fileTypes","size","isPresent","displayName","UNSPLASH_DEFAULT_NAME","UNSPLASH_URL","IMAGES_PER_PAGE","UNSPLASH_DEFAULT_REQUEST_CONFIG","headers","responseType","TABS","label","i18next","key","dataTestid","DEFAULT_CROP_CONFIG","unit","height","width","x","y","DEFAULT_ASPECT_RATIO","INFINITE_SCROLLER_SIZES","columns","gutter","mq","INFINITE_SCROLLER_STYLE","IMAGE_UPLOAD_SERVICE_URL","assetsUploaderService","CLOUD_FLARE","IMAGE_UPLOADER_BASE_URL","ASSETS_FETCH_URL","IS_DEVELOPMENT_OR_HEROKU_ENV","ASSETS_DESTROY_URL","IMAGE_WRAPPER_CLASSNAME","getWholeNumberAspectRatio","Number","isFinite","gcd","a","b","divisor","getCropValues","_ref3","crop","imageRef","naturalWidth","current","naturalHeight","getImageKitCroppedURL","_ref4","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","isNil","isEmpty","isNotNilOrEmpty","isItemsCenter","_ref5","wrapperRef","_ref6","imageHeight","imageWidth","wrapperHeight","clientHeight","calculateCloudFlareImageCroppedValues","_ref7","image","metadata","sourceX","sourceY","sourceWidth","sourceHeight","distanceFromRight","Math","abs","distanceFromBottom","top","right","bottom","left","getCloudFlareCroppedURL","_ref8","_calculateCloudFlareI","trimValues","replace","getAspectRatio","_ref9","fixedAspectRatio","imageSize","getPixels","percentage","pixel","round","getPercentage","full","getInitialCropSize","_ref0","aspectRatioFactor","maxCropWidth","imageAspectRatio","maxCropHeight","cropWidth","cropHeight","min","getHeightFromAspectRatio","aspectRatio","getWidthFromAspectRatio","getWrapperRefStyles","_ref1","_ref1$naturalHeight","_ref1$naturalWidth","_ref10","_ref10$clientHeight","_ref10$clientWidth","clientWidth","maxWidth"],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ import Toastr from '@bigbinary/neetoui/Toastr';
|
|
|
15
15
|
import { F as FILE_ERRORS, D as DROPZONE_ROOT_DIV_CLASSNAME } from './constants-BF4SgnWe.js';
|
|
16
16
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
17
17
|
import { a as ImageKit } from './imagekit.esm-Wbu4ABaW.js';
|
|
18
|
+
import { D as DEFAULT_ASPECT_RATIO } from './constants-BNGwgivX.js';
|
|
18
19
|
|
|
19
20
|
var DEFAULT_ALLOWED_IMAGE_TYPES = {
|
|
20
21
|
"image/png": [".png"],
|
|
@@ -199,20 +200,30 @@ var getWholeNumberAspectRatio = function getWholeNumberAspectRatio(_ref) {
|
|
|
199
200
|
width: 1,
|
|
200
201
|
height: 1
|
|
201
202
|
};
|
|
202
|
-
|
|
203
|
-
|
|
203
|
+
|
|
204
|
+
// NaN or Infinity would make the gcd loop below never terminate.
|
|
205
|
+
if (!Number.isFinite(width) || !Number.isFinite(height)) {
|
|
206
|
+
return DEFAULT_ASPECT_RATIO;
|
|
207
|
+
}
|
|
208
|
+
var gcd = function gcd(a, b) {
|
|
209
|
+
while (b !== 0) {
|
|
210
|
+
var _ref2 = [b, a % b];
|
|
211
|
+
a = _ref2[0];
|
|
212
|
+
b = _ref2[1];
|
|
213
|
+
}
|
|
214
|
+
return a;
|
|
204
215
|
};
|
|
205
216
|
|
|
206
217
|
// Multiplying by 1000 is a temporary fix to prevent height and width with fractions (eg: 100.91).
|
|
207
|
-
var divisor =
|
|
218
|
+
var divisor = gcd(width * 1000, height * 1000);
|
|
208
219
|
return {
|
|
209
220
|
width: width / divisor,
|
|
210
221
|
height: height / divisor
|
|
211
222
|
};
|
|
212
223
|
};
|
|
213
|
-
var getCropValues = function getCropValues(
|
|
214
|
-
var crop =
|
|
215
|
-
imageRef =
|
|
224
|
+
var getCropValues = function getCropValues(_ref3) {
|
|
225
|
+
var crop = _ref3.crop,
|
|
226
|
+
imageRef = _ref3.imageRef;
|
|
216
227
|
var naturalWidth = imageRef.current.naturalWidth;
|
|
217
228
|
var naturalHeight = imageRef.current.naturalHeight;
|
|
218
229
|
return {
|
|
@@ -222,10 +233,10 @@ var getCropValues = function getCropValues(_ref2) {
|
|
|
222
233
|
height: crop.height / 100 * naturalHeight
|
|
223
234
|
};
|
|
224
235
|
};
|
|
225
|
-
var getImageKitCroppedURL = function getImageKitCroppedURL(
|
|
226
|
-
var imageURL =
|
|
227
|
-
crop =
|
|
228
|
-
imageRef =
|
|
236
|
+
var getImageKitCroppedURL = function getImageKitCroppedURL(_ref4) {
|
|
237
|
+
var imageURL = _ref4.imageURL,
|
|
238
|
+
crop = _ref4.crop,
|
|
239
|
+
imageRef = _ref4.imageRef;
|
|
229
240
|
var imagekit = new ImageKit({
|
|
230
241
|
urlEndpoint: globalProps.imagekit.urlEndpoint
|
|
231
242
|
});
|
|
@@ -255,12 +266,12 @@ var isNilOrEmpty = function isNilOrEmpty(value) {
|
|
|
255
266
|
var isNotNilOrEmpty = function isNotNilOrEmpty(value) {
|
|
256
267
|
return !isNilOrEmpty(value);
|
|
257
268
|
};
|
|
258
|
-
var isItemsCenter = function isItemsCenter(
|
|
259
|
-
var imageRef =
|
|
260
|
-
wrapperRef =
|
|
261
|
-
var
|
|
262
|
-
imageHeight =
|
|
263
|
-
imageWidth =
|
|
269
|
+
var isItemsCenter = function isItemsCenter(_ref5) {
|
|
270
|
+
var imageRef = _ref5.imageRef,
|
|
271
|
+
wrapperRef = _ref5.wrapperRef;
|
|
272
|
+
var _ref6 = imageRef.current || {},
|
|
273
|
+
imageHeight = _ref6.height,
|
|
274
|
+
imageWidth = _ref6.width;
|
|
264
275
|
var wrapperHeight = (wrapperRef.current || {}).clientHeight;
|
|
265
276
|
if (imageHeight < imageWidth && imageHeight < wrapperHeight - 1) {
|
|
266
277
|
// Landscape images smaller than wrapper dimensions
|
|
@@ -272,9 +283,9 @@ var isItemsCenter = function isItemsCenter(_ref4) {
|
|
|
272
283
|
}
|
|
273
284
|
return imageHeight > imageWidth && imageHeight < wrapperHeight - 1;
|
|
274
285
|
};
|
|
275
|
-
var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCroppedValues(
|
|
276
|
-
var image =
|
|
277
|
-
crop =
|
|
286
|
+
var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCroppedValues(_ref7) {
|
|
287
|
+
var image = _ref7.image,
|
|
288
|
+
crop = _ref7.crop;
|
|
278
289
|
var naturalWidth = image.metadata.width;
|
|
279
290
|
var naturalHeight = image.metadata.height;
|
|
280
291
|
var sourceX = crop.x / 100 * naturalWidth;
|
|
@@ -290,9 +301,9 @@ var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCro
|
|
|
290
301
|
left: sourceX
|
|
291
302
|
};
|
|
292
303
|
};
|
|
293
|
-
var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(
|
|
294
|
-
var image =
|
|
295
|
-
crop =
|
|
304
|
+
var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(_ref8) {
|
|
305
|
+
var image = _ref8.image,
|
|
306
|
+
crop = _ref8.crop;
|
|
296
307
|
var _calculateCloudFlareI = calculateCloudFlareImageCroppedValues({
|
|
297
308
|
image: image,
|
|
298
309
|
crop: crop
|
|
@@ -304,19 +315,16 @@ var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(_ref7) {
|
|
|
304
315
|
var trimValues = "".concat(top, ";").concat(right, ";").concat(bottom, ";").concat(left);
|
|
305
316
|
return image.url.replace("public", "trim=".concat(trimValues));
|
|
306
317
|
};
|
|
307
|
-
var getAspectRatio = function getAspectRatio(
|
|
308
|
-
var fixedAspectRatio =
|
|
309
|
-
imageSize =
|
|
318
|
+
var getAspectRatio = function getAspectRatio(_ref9) {
|
|
319
|
+
var fixedAspectRatio = _ref9.fixedAspectRatio,
|
|
320
|
+
imageSize = _ref9.imageSize;
|
|
310
321
|
if (isPresent(fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.width) && isPresent(fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.height)) {
|
|
311
322
|
return fixedAspectRatio;
|
|
312
323
|
}
|
|
313
324
|
if (isPresent(imageSize === null || imageSize === void 0 ? void 0 : imageSize.width) && isPresent(imageSize === null || imageSize === void 0 ? void 0 : imageSize.height)) {
|
|
314
325
|
return getWholeNumberAspectRatio(imageSize);
|
|
315
326
|
}
|
|
316
|
-
return
|
|
317
|
-
width: 16,
|
|
318
|
-
height: 9
|
|
319
|
-
};
|
|
327
|
+
return DEFAULT_ASPECT_RATIO;
|
|
320
328
|
};
|
|
321
329
|
var getPixels = function getPixels(percentage, pixel) {
|
|
322
330
|
return Math.round(percentage / 100 * pixel);
|
|
@@ -324,10 +332,10 @@ var getPixels = function getPixels(percentage, pixel) {
|
|
|
324
332
|
var getPercentage = function getPercentage(crop, full) {
|
|
325
333
|
return crop / full * 100;
|
|
326
334
|
};
|
|
327
|
-
var getInitialCropSize = function getInitialCropSize(
|
|
328
|
-
var image =
|
|
329
|
-
aspectRatioFactor =
|
|
330
|
-
maxCropWidth =
|
|
335
|
+
var getInitialCropSize = function getInitialCropSize(_ref0) {
|
|
336
|
+
var image = _ref0.image,
|
|
337
|
+
aspectRatioFactor = _ref0.aspectRatioFactor,
|
|
338
|
+
maxCropWidth = _ref0.maxCropWidth;
|
|
331
339
|
var imageWidth = image.naturalWidth,
|
|
332
340
|
imageHeight = image.naturalHeight;
|
|
333
341
|
var imageAspectRatio = imageWidth / imageHeight;
|
|
@@ -355,16 +363,16 @@ var getWidthFromAspectRatio = function getWidthFromAspectRatio(height, aspectRat
|
|
|
355
363
|
return Math.round(height * aspectRatio.width / aspectRatio.height);
|
|
356
364
|
};
|
|
357
365
|
var getWrapperRefStyles = function getWrapperRefStyles(wrapperRef, imageRef) {
|
|
358
|
-
var
|
|
359
|
-
|
|
360
|
-
naturalHeight =
|
|
361
|
-
|
|
362
|
-
naturalWidth =
|
|
363
|
-
var
|
|
364
|
-
|
|
365
|
-
clientHeight =
|
|
366
|
-
|
|
367
|
-
clientWidth =
|
|
366
|
+
var _ref1 = imageRef.current || {},
|
|
367
|
+
_ref1$naturalHeight = _ref1.naturalHeight,
|
|
368
|
+
naturalHeight = _ref1$naturalHeight === void 0 ? 100 : _ref1$naturalHeight,
|
|
369
|
+
_ref1$naturalWidth = _ref1.naturalWidth,
|
|
370
|
+
naturalWidth = _ref1$naturalWidth === void 0 ? 100 : _ref1$naturalWidth;
|
|
371
|
+
var _ref10 = wrapperRef.current || {},
|
|
372
|
+
_ref10$clientHeight = _ref10.clientHeight,
|
|
373
|
+
clientHeight = _ref10$clientHeight === void 0 ? 100 : _ref10$clientHeight,
|
|
374
|
+
_ref10$clientWidth = _ref10.clientWidth,
|
|
375
|
+
clientWidth = _ref10$clientWidth === void 0 ? 100 : _ref10$clientWidth;
|
|
368
376
|
if (naturalWidth <= clientWidth && naturalHeight <= clientHeight) {
|
|
369
377
|
return {
|
|
370
378
|
maxWidth: naturalWidth
|
|
@@ -395,4 +403,4 @@ var getWrapperRefStyles = function getWrapperRefStyles(wrapperRef, imageRef) {
|
|
|
395
403
|
};
|
|
396
404
|
|
|
397
405
|
export { DEFAULT_UPLOAD_CONFIG as D, ImageDirectUpload as I, OPTION_KEYS as O, isNilOrEmpty as a, getPixels as b, getHeightFromAspectRatio as c, getWidthFromAspectRatio as d, getInitialCropSize as e, getPercentage as f, getAspectRatio as g, getWrapperRefStyles as h, isNotNilOrEmpty as i, isItemsCenter as j, getCloudFlareCroppedURL as k, getImageKitCroppedURL as l, getCropValues as m, useUploadDropzone as u };
|
|
398
|
-
//# sourceMappingURL=utils-
|
|
406
|
+
//# sourceMappingURL=utils-CBR0uhqY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-CBR0uhqY.js","sources":["../app/javascript/src/components/ImageUploader/constants.js","../app/javascript/src/components/ImageUploader/utils.js","../app/javascript/src/components/common/utils.js","../app/javascript/src/hooks/useUploadDropzone.js","../app/javascript/src/components/common/ImageDirectUpload.jsx","../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 { 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 { 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 { noop } from \"neetocist\";\nimport { useDropzone } from \"react-dropzone\";\n\nimport { handleDropRejected } from \"components/common/utils\";\n\nconst useUploadDropzone = ({\n uploadConfig = { allowedImageTypes: [], maxImageSize: 0 },\n onDrop,\n setImage = noop,\n}) => {\n const [uploadProgress, setUploadProgress] = useState(0);\n\n const { getRootProps, getInputProps, isDragActive, open } = useDropzone({\n onDrop: acceptedFiles =>\n onDrop(acceptedFiles[0], setUploadProgress, setImage),\n accept: uploadConfig?.allowedImageTypes,\n multiple: false,\n maxSize: uploadConfig.maxImageSize * 1_048_576,\n onDropRejected: handleDropRejected,\n noDragEventsBubbling: true,\n });\n\n return {\n getRootProps,\n getInputProps,\n isDragActive,\n open,\n uploadProgress,\n setUploadProgress,\n };\n};\n\nexport default useUploadDropzone;\n","import { forwardRef, useImperativeHandle } from \"react\";\n\nimport classnames from \"classnames\";\nimport { noop, isPresent } 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 = forwardRef(\n (\n {\n uploadConfig = DEFAULT_UPLOAD_CONFIG,\n onDrop = noop,\n isDisabled = false,\n setIsAssetLibraryOpen,\n defaultImageSize = {},\n isUploadDisabled = false,\n setImage,\n },\n ref\n ) => {\n const {\n getRootProps,\n getInputProps,\n isDragActive,\n open,\n uploadProgress,\n setUploadProgress,\n } = useUploadDropzone({ uploadConfig, onDrop, setImage });\n\n useImperativeHandle(ref, () => ({\n upload: file => onDrop(file, setUploadProgress, setImage),\n }));\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-testid=\"neeto-image-uploader-browse-text\"\n style=\"link\"\n onClick={event => {\n event.stopPropagation();\n open();\n }}\n />\n ),\n }}\n />\n </Typography>\n )}\n {setIsAssetLibraryOpen && (\n <Typography\n style=\"body2\"\n className={classnames(\"text-center leading-4\", {\n \"pointer-events-none\": isUploadDisabled,\n })}\n onClick={e => {\n e.stopPropagation();\n setIsAssetLibraryOpen(true);\n }}\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.upload\"\n components={{\n span: (\n <Button\n data-testid=\"open-asset-library-button\"\n style=\"link\"\n />\n ),\n }}\n />\n </Typography>\n )}\n <input\n {...getInputProps()}\n data-testid=\"neeto-image-uploader-file-input\"\n disabled={isDisabled || isUploadDisabled}\n />\n <Typography\n className=\"neeto-ui-text-gray-700 text-center leading-4\"\n data-testid=\"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 {isPresent(defaultImageSize) && (\n <Typography\n className=\"neeto-ui-text-gray-700 text-center leading-4\"\n data-testid=\"neeto-image-uploader-ideal-image-size-info-text\"\n lineHeight=\"snug\"\n style=\"nano\"\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.idealImageSizeInfo\"\n values={{ ...defaultImageSize }}\n />\n </Typography>\n )}\n </div>\n )}\n </div>\n );\n }\n);\n\nImageDirectUpload.displayName = \"ImageDirectUpload\";\n\nexport default ImageDirectUpload;\n","import ImageKit from \"imagekit-javascript\";\nimport { isPresent } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nimport { DEFAULT_ASPECT_RATIO } from \"components/constants\";\n\nconst getWholeNumberAspectRatio = ({ width, height }) => {\n if (width === height) return { width: 1, height: 1 };\n\n // NaN or Infinity would make the gcd loop below never terminate.\n if (!Number.isFinite(width) || !Number.isFinite(height)) {\n return DEFAULT_ASPECT_RATIO;\n }\n\n const gcd = (a, b) => {\n while (b !== 0) [a, b] = [b, a % b];\n\n return a;\n };\n\n // Multiplying by 1000 is a temporary fix to prevent height and width with fractions (eg: 100.91).\n const divisor = gcd(width * 1000, height * 1000);\n\n return { width: width / divisor, height: height / divisor };\n};\n\nexport const getCropValues = ({ crop, imageRef }) => {\n const naturalWidth = imageRef.current.naturalWidth;\n const naturalHeight = imageRef.current.naturalHeight;\n\n return {\n x: (crop.x / 100) * naturalWidth,\n y: (crop.y / 100) * naturalHeight,\n width: (crop.width / 100) * naturalWidth,\n height: (crop.height / 100) * naturalHeight,\n };\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 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 = ({ image, crop }) => {\n const naturalWidth = image.metadata.width;\n const naturalHeight = image.metadata.height;\n\n const sourceX = (crop.x / 100) * naturalWidth;\n const sourceY = (crop.y / 100) * naturalHeight;\n const sourceWidth = (crop.width / 100) * naturalWidth;\n const sourceHeight = (crop.height / 100) * naturalHeight;\n\n const distanceFromRight = Math.abs(naturalWidth - (sourceX + sourceWidth));\n const distanceFromBottom = Math.abs(naturalHeight - (sourceY + sourceHeight));\n\n return {\n top: sourceY,\n right: distanceFromRight,\n bottom: distanceFromBottom,\n left: sourceX,\n };\n};\n\nexport const getCloudFlareCroppedURL = ({ image, crop }) => {\n const { top, right, bottom, left } = calculateCloudFlareImageCroppedValues({\n image,\n crop,\n });\n const trimValues = `${top};${right};${bottom};${left}`;\n\n return image.url.replace(\"public\", `trim=${trimValues}`);\n};\n\nexport const getAspectRatio = ({ fixedAspectRatio, imageSize }) => {\n if (\n isPresent(fixedAspectRatio?.width) &&\n isPresent(fixedAspectRatio?.height)\n ) {\n return fixedAspectRatio;\n }\n\n if (isPresent(imageSize?.width) && isPresent(imageSize?.height)) {\n return getWholeNumberAspectRatio(imageSize);\n }\n\n return DEFAULT_ASPECT_RATIO;\n};\n\nexport const getPixels = (percentage, pixel) =>\n Math.round((percentage / 100) * pixel);\n\nexport const getPercentage = (crop, full) => (crop / full) * 100;\n\nexport const getInitialCropSize = ({\n image,\n aspectRatioFactor,\n maxCropWidth,\n}) => {\n const { naturalWidth: imageWidth, naturalHeight: imageHeight } = image;\n const imageAspectRatio = imageWidth / imageHeight;\n const maxCropHeight = maxCropWidth / aspectRatioFactor;\n\n let cropWidth, cropHeight;\n\n if (imageAspectRatio > aspectRatioFactor) {\n cropWidth = Math.min(maxCropWidth, imageWidth);\n cropHeight = cropWidth / aspectRatioFactor;\n } else if (imageHeight < maxCropHeight) {\n cropWidth = imageWidth;\n cropHeight = imageHeight;\n } else {\n cropHeight = Math.min(maxCropHeight, imageHeight);\n cropWidth = cropHeight * aspectRatioFactor;\n }\n\n return { cropWidth, cropHeight };\n};\n\nexport const getHeightFromAspectRatio = (width, aspectRatio) =>\n Math.round((width * aspectRatio.height) / aspectRatio.width);\n\nexport const getWidthFromAspectRatio = (height, aspectRatio) =>\n Math.round((height * aspectRatio.width) / aspectRatio.height);\n\nexport const getWrapperRefStyles = (wrapperRef, imageRef) => {\n const { naturalHeight = 100, naturalWidth = 100 } = imageRef.current || {};\n const { clientHeight = 100, clientWidth = 100 } = wrapperRef.current || {};\n\n if (naturalWidth <= clientWidth && naturalHeight <= clientHeight) {\n return { maxWidth: naturalWidth };\n } else if (naturalWidth > clientWidth && naturalHeight <= clientHeight) {\n return { maxWidth: clientWidth };\n } else if (naturalWidth <= clientWidth && naturalHeight > clientHeight) {\n const maxWidth = (naturalWidth / naturalHeight) * clientHeight;\n\n return { maxWidth };\n }\n\n // landscape\n if (naturalWidth > naturalHeight) {\n return { maxWidth: clientWidth };\n }\n\n // portrait\n const maxWidth = (naturalWidth / naturalHeight) * clientHeight;\n\n return { maxWidth };\n};\n"],"names":["DEFAULT_ALLOWED_IMAGE_TYPES","DEFAULT_UPLOAD_CONFIG","maxImageSize","globalProps","endUserUploadedFileSizeLimitInMb","allowedImageTypes","OPTION_KEYS","asset","remove","getAllowedTypes","uploadConfig","pipe","values","flatten","map","extension","slice","toUpper","join","handleDropRejected","fileRejections","_ref","errors","_ref2","code","Toastr","error","FILE_ERRORS","t","useUploadDropzone","_ref$uploadConfig","onDrop","_ref$setImage","setImage","noop","_useState","useState","_useState2","_slicedToArray","uploadProgress","setUploadProgress","_useDropzone","useDropzone","acceptedFiles","accept","multiple","maxSize","onDropRejected","noDragEventsBubbling","getRootProps","getInputProps","isDragActive","open","ImageDirectUpload","forwardRef","ref","_ref$onDrop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_ref$defaultImageSize","defaultImageSize","_ref$isUploadDisabled","isUploadDisabled","_useUploadDropzone","useImperativeHandle","upload","file","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","DROPZONE_ROOT_DIV_CLASSNAME","children","ProgressBar","progressPercentage","progressValue","concat","_jsxs","Typography","style","Trans","i18nKey","components","span","Button","onClick","event","stopPropagation","e","disabled","lineHeight","fileTypes","size","isPresent","displayName","getWholeNumberAspectRatio","width","height","Number","isFinite","DEFAULT_ASPECT_RATIO","gcd","a","b","divisor","getCropValues","_ref3","crop","imageRef","naturalWidth","current","naturalHeight","x","y","getImageKitCroppedURL","_ref4","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","value","isNil","isEmpty","isNotNilOrEmpty","isItemsCenter","_ref5","wrapperRef","_ref6","imageHeight","imageWidth","wrapperHeight","clientHeight","calculateCloudFlareImageCroppedValues","_ref7","image","metadata","sourceX","sourceY","sourceWidth","sourceHeight","distanceFromRight","Math","abs","distanceFromBottom","top","right","bottom","left","getCloudFlareCroppedURL","_ref8","_calculateCloudFlareI","trimValues","replace","getAspectRatio","_ref9","fixedAspectRatio","imageSize","getPixels","percentage","pixel","round","getPercentage","full","getInitialCropSize","_ref0","aspectRatioFactor","maxCropWidth","imageAspectRatio","maxCropHeight","cropWidth","cropHeight","min","getHeightFromAspectRatio","aspectRatio","getWidthFromAspectRatio","getWrapperRefStyles","_ref1","_ref1$naturalHeight","_ref1$naturalWidth","_ref10","_ref10$clientHeight","_ref10$clientWidth","clientWidth","maxWidth"],"mappings":"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"}
|