@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.
Files changed (72) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/AssetLibrary.js +5 -5
  3. package/dist/BasicImageUploader.js +2 -2
  4. package/dist/ImageForm.js +5 -5
  5. package/dist/ImageUploader.js +5 -5
  6. package/dist/cjs/AssetLibrary.js +5 -5
  7. package/dist/cjs/BasicImageUploader.js +2 -2
  8. package/dist/cjs/ImageForm.js +5 -5
  9. package/dist/cjs/ImageUploader.js +5 -5
  10. package/dist/cjs/hooks.js +1 -1
  11. package/dist/cjs/index.js +5 -5
  12. package/dist/cjs/v2/AssetLibrary.js +5 -5
  13. package/dist/cjs/v2/BasicImageUploader.js +1 -1
  14. package/dist/cjs/v2/ImageForm.js +5 -5
  15. package/dist/cjs/v2/ImageUploader.js +5 -5
  16. package/dist/cjs/v2/hooks.js +1 -1
  17. package/dist/cjs/v2/index.js +5 -5
  18. package/dist/{constants-D8YY7aVx.js → constants-BNGwgivX.js} +6 -2
  19. package/dist/constants-BNGwgivX.js.map +1 -0
  20. package/dist/{constants-rSdnoUWv.js → constants-DaSuAD1y.js} +6 -1
  21. package/dist/constants-DaSuAD1y.js.map +1 -0
  22. package/dist/hooks.js +1 -1
  23. package/dist/{index-BFPek9ek.js → index-BYfso12Q.js} +20 -12
  24. package/dist/index-BYfso12Q.js.map +1 -0
  25. package/dist/{index-q56JLh5J.js → index-BlUNJMFN.js} +18 -8
  26. package/dist/index-BlUNJMFN.js.map +1 -0
  27. package/dist/{index-CbRMVeis.js → index-C7wF6PXg.js} +20 -12
  28. package/dist/index-C7wF6PXg.js.map +1 -0
  29. package/dist/{index-e471xvRu.js → index-D--_BhYf.js} +18 -8
  30. package/dist/index-D--_BhYf.js.map +1 -0
  31. package/dist/index.js +5 -5
  32. package/dist/{useImageUploader-BsSpqUky.js → useImageUploader-BWLT38Jh.js} +25 -18
  33. package/dist/useImageUploader-BWLT38Jh.js.map +1 -0
  34. package/dist/{useImageUploader-TOt_v6Rn.js → useImageUploader-C0LPNMXM.js} +25 -18
  35. package/dist/useImageUploader-C0LPNMXM.js.map +1 -0
  36. package/dist/{useImageUploader-J3bippyP.js → useImageUploader-D8EKfvhs.js} +25 -18
  37. package/dist/useImageUploader-D8EKfvhs.js.map +1 -0
  38. package/dist/{useImageUploader-uFdwIcWA.js → useImageUploader-oEM4sZhG.js} +25 -18
  39. package/dist/useImageUploader-oEM4sZhG.js.map +1 -0
  40. package/dist/{useUnsplashApi-Dl6ZdUSP.js → useUnsplashApi-_-5cRT70.js} +2 -2
  41. package/dist/{useUnsplashApi-Dl6ZdUSP.js.map → useUnsplashApi-_-5cRT70.js.map} +1 -1
  42. package/dist/{useUnsplashApi-BLygxRcf.js → useUnsplashApi-qANYsRgw.js} +2 -2
  43. package/dist/{useUnsplashApi-BLygxRcf.js.map → useUnsplashApi-qANYsRgw.js.map} +1 -1
  44. package/dist/{utils-gOguzq7u.js → utils-BG5uqsQH.js} +55 -44
  45. package/dist/utils-BG5uqsQH.js.map +1 -0
  46. package/dist/{utils-C-_hvapN.js → utils-CBR0uhqY.js} +52 -44
  47. package/dist/utils-CBR0uhqY.js.map +1 -0
  48. package/dist/{utils-BuYOlqCV.js → utils-DQye8ufx.js} +55 -44
  49. package/dist/utils-DQye8ufx.js.map +1 -0
  50. package/dist/{utils-BkIHGr19.js → utils-hFSeEG9S.js} +52 -44
  51. package/dist/utils-hFSeEG9S.js.map +1 -0
  52. package/dist/v2/AssetLibrary.js +5 -5
  53. package/dist/v2/BasicImageUploader.js +1 -1
  54. package/dist/v2/ImageForm.js +5 -5
  55. package/dist/v2/ImageUploader.js +5 -5
  56. package/dist/v2/hooks.js +1 -1
  57. package/dist/v2/index.js +5 -5
  58. package/package.json +23 -23
  59. package/dist/constants-D8YY7aVx.js.map +0 -1
  60. package/dist/constants-rSdnoUWv.js.map +0 -1
  61. package/dist/index-BFPek9ek.js.map +0 -1
  62. package/dist/index-CbRMVeis.js.map +0 -1
  63. package/dist/index-e471xvRu.js.map +0 -1
  64. package/dist/index-q56JLh5J.js.map +0 -1
  65. package/dist/useImageUploader-BsSpqUky.js.map +0 -1
  66. package/dist/useImageUploader-J3bippyP.js.map +0 -1
  67. package/dist/useImageUploader-TOt_v6Rn.js.map +0 -1
  68. package/dist/useImageUploader-uFdwIcWA.js.map +0 -1
  69. package/dist/utils-BkIHGr19.js.map +0 -1
  70. package/dist/utils-BuYOlqCV.js.map +0 -1
  71. package/dist/utils-C-_hvapN.js.map +0 -1
  72. 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
- var _gcd = function gcd(a, b) {
258
- return b === 0 ? a : _gcd(b, a % b);
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 = _gcd(width * 1000, height * 1000);
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(_ref2) {
269
- var crop = _ref2.crop,
270
- imageRef = _ref2.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(_ref3) {
281
- var imageURL = _ref3.imageURL,
282
- crop = _ref3.crop,
283
- imageRef = _ref3.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(_ref4) {
314
- var imageRef = _ref4.imageRef,
315
- wrapperRef = _ref4.wrapperRef;
316
- var _ref5 = imageRef.current || {},
317
- imageHeight = _ref5.height,
318
- imageWidth = _ref5.width;
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(_ref6) {
331
- var image = _ref6.image,
332
- crop = _ref6.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(_ref7) {
349
- var image = _ref7.image,
350
- crop = _ref7.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(_ref8) {
363
- var fixedAspectRatio = _ref8.fixedAspectRatio,
364
- imageSize = _ref8.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(_ref9) {
383
- var image = _ref9.image,
384
- aspectRatioFactor = _ref9.aspectRatioFactor,
385
- maxCropWidth = _ref9.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 _ref10 = imageRef.current || {},
414
- _ref10$naturalHeight = _ref10.naturalHeight,
415
- naturalHeight = _ref10$naturalHeight === void 0 ? 100 : _ref10$naturalHeight,
416
- _ref10$naturalWidth = _ref10.naturalWidth,
417
- naturalWidth = _ref10$naturalWidth === void 0 ? 100 : _ref10$naturalWidth;
418
- var _ref11 = wrapperRef.current || {},
419
- _ref11$clientHeight = _ref11.clientHeight,
420
- clientHeight = _ref11$clientHeight === void 0 ? 100 : _ref11$clientHeight,
421
- _ref11$clientWidth = _ref11.clientWidth,
422
- clientWidth = _ref11$clientWidth === void 0 ? 100 : _ref11$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-gOguzq7u.js.map
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
- var _gcd = function gcd(a, b) {
203
- return b === 0 ? a : _gcd(b, a % b);
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 = _gcd(width * 1000, height * 1000);
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(_ref2) {
214
- var crop = _ref2.crop,
215
- imageRef = _ref2.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(_ref3) {
226
- var imageURL = _ref3.imageURL,
227
- crop = _ref3.crop,
228
- imageRef = _ref3.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(_ref4) {
259
- var imageRef = _ref4.imageRef,
260
- wrapperRef = _ref4.wrapperRef;
261
- var _ref5 = imageRef.current || {},
262
- imageHeight = _ref5.height,
263
- imageWidth = _ref5.width;
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(_ref6) {
276
- var image = _ref6.image,
277
- crop = _ref6.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(_ref7) {
294
- var image = _ref7.image,
295
- crop = _ref7.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(_ref8) {
308
- var fixedAspectRatio = _ref8.fixedAspectRatio,
309
- imageSize = _ref8.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(_ref9) {
328
- var image = _ref9.image,
329
- aspectRatioFactor = _ref9.aspectRatioFactor,
330
- maxCropWidth = _ref9.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 _ref10 = imageRef.current || {},
359
- _ref10$naturalHeight = _ref10.naturalHeight,
360
- naturalHeight = _ref10$naturalHeight === void 0 ? 100 : _ref10$naturalHeight,
361
- _ref10$naturalWidth = _ref10.naturalWidth,
362
- naturalWidth = _ref10$naturalWidth === void 0 ? 100 : _ref10$naturalWidth;
363
- var _ref11 = wrapperRef.current || {},
364
- _ref11$clientHeight = _ref11.clientHeight,
365
- clientHeight = _ref11$clientHeight === void 0 ? 100 : _ref11$clientHeight,
366
- _ref11$clientWidth = _ref11.clientWidth,
367
- clientWidth = _ref11$clientWidth === void 0 ? 100 : _ref11$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-C-_hvapN.js.map
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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"}