@bigbinary/neeto-image-uploader-frontend 4.0.11 → 4.0.13

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 (110) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/AssetLibrary.js +10 -10
  3. package/dist/BasicImageUploader.js +4 -4
  4. package/dist/ImageForm.js +8 -8
  5. package/dist/ImageUploader.js +8 -8
  6. package/dist/cjs/AssetLibrary.js +10 -10
  7. package/dist/cjs/BasicImageUploader.js +4 -4
  8. package/dist/cjs/ImageForm.js +8 -8
  9. package/dist/cjs/ImageUploader.js +8 -8
  10. package/dist/cjs/hooks.js +5 -4
  11. package/dist/cjs/hooks.js.map +1 -1
  12. package/dist/cjs/index.js +9 -9
  13. package/dist/cjs/v2/AssetLibrary.js +9 -10
  14. package/dist/cjs/v2/AssetLibrary.js.map +1 -1
  15. package/dist/cjs/v2/BasicImageUploader.js +2 -4
  16. package/dist/cjs/v2/BasicImageUploader.js.map +1 -1
  17. package/dist/cjs/v2/ImageForm.js +8 -9
  18. package/dist/cjs/v2/ImageForm.js.map +1 -1
  19. package/dist/cjs/v2/ImageUploader.js +8 -9
  20. package/dist/cjs/v2/ImageUploader.js.map +1 -1
  21. package/dist/cjs/v2/hooks.js +20 -476
  22. package/dist/cjs/v2/hooks.js.map +1 -1
  23. package/dist/cjs/v2/index.js +9 -10
  24. package/dist/cjs/v2/index.js.map +1 -1
  25. package/dist/constants-BF4SgnWe.js +12 -0
  26. package/dist/constants-BF4SgnWe.js.map +1 -0
  27. package/dist/{constants-BVxeajuh.js → constants-BNGwgivX.js} +7 -3
  28. package/dist/constants-BNGwgivX.js.map +1 -0
  29. package/dist/{constants-BJsrtAQc.js → constants-DaSuAD1y.js} +7 -2
  30. package/dist/constants-DaSuAD1y.js.map +1 -0
  31. package/dist/constants-Dos-Y7GC.js +15 -0
  32. package/dist/constants-Dos-Y7GC.js.map +1 -0
  33. package/dist/hooks.js +5 -4
  34. package/dist/hooks.js.map +1 -1
  35. package/dist/{imagekit.esm-Bps9lPzh.js → imagekit.esm-Wbu4ABaW.js} +2 -12
  36. package/dist/imagekit.esm-Wbu4ABaW.js.map +1 -0
  37. package/dist/{imagekit.esm-BOkeWsyX.js → imagekit.esm-ZYrS-YIL.js} +1 -13
  38. package/dist/imagekit.esm-ZYrS-YIL.js.map +1 -0
  39. package/dist/{index-DfxvM32h.js → index-BP6z5Bmi.js} +9 -10
  40. package/dist/index-BP6z5Bmi.js.map +1 -0
  41. package/dist/{index-PE1rZoJJ.js → index-Btd2LbOZ.js} +10 -11
  42. package/dist/index-Btd2LbOZ.js.map +1 -0
  43. package/dist/{index-YZ7Lhfkg.js → index-ByiQIHFV.js} +10 -11
  44. package/dist/index-ByiQIHFV.js.map +1 -0
  45. package/dist/{index-7XBgPy09.js → index-DJjmk0Nc.js} +11 -12
  46. package/dist/index-DJjmk0Nc.js.map +1 -0
  47. package/dist/index.js +9 -9
  48. package/dist/{useImageUploader-CHyjhRSo.js → useImageUploader-BsSpqUky.js} +4 -3
  49. package/dist/useImageUploader-BsSpqUky.js.map +1 -0
  50. package/dist/{useImageUploader-sa1Apcxi.js → useImageUploader-J3bippyP.js} +6 -5
  51. package/dist/useImageUploader-J3bippyP.js.map +1 -0
  52. package/dist/useImageUploader-TOt_v6Rn.js +225 -0
  53. package/dist/useImageUploader-TOt_v6Rn.js.map +1 -0
  54. package/dist/useImageUploader-uFdwIcWA.js +223 -0
  55. package/dist/useImageUploader-uFdwIcWA.js.map +1 -0
  56. package/dist/useProfileImageUpload-BZb8Cttj.js +272 -0
  57. package/dist/useProfileImageUpload-BZb8Cttj.js.map +1 -0
  58. package/dist/{useProfileImageUpload-C7ealrbB.js → useProfileImageUpload-CeIh1MMh.js} +3 -3
  59. package/dist/{useProfileImageUpload-C7ealrbB.js.map → useProfileImageUpload-CeIh1MMh.js.map} +1 -1
  60. package/dist/{useProfileImageUpload-BM3MsePR.js → useProfileImageUpload-D5doE-yM.js} +3 -3
  61. package/dist/{useProfileImageUpload-BM3MsePR.js.map → useProfileImageUpload-D5doE-yM.js.map} +1 -1
  62. package/dist/useProfileImageUpload-YeoM7k6I.js +269 -0
  63. package/dist/useProfileImageUpload-YeoM7k6I.js.map +1 -0
  64. package/dist/{useUnsplashApi-okMiRC9G.js → useUnsplashApi-_-5cRT70.js} +3 -3
  65. package/dist/{useUnsplashApi-okMiRC9G.js.map → useUnsplashApi-_-5cRT70.js.map} +1 -1
  66. package/dist/{useUnsplashApi-2sRCzI6B.js → useUnsplashApi-qANYsRgw.js} +3 -3
  67. package/dist/{useUnsplashApi-2sRCzI6B.js.map → useUnsplashApi-qANYsRgw.js.map} +1 -1
  68. package/dist/{utils-B9Wu-jti.js → utils-BG5uqsQH.js} +118 -59
  69. package/dist/utils-BG5uqsQH.js.map +1 -0
  70. package/dist/{utils-kGoo6Gnk.js → utils-CBR0uhqY.js} +108 -49
  71. package/dist/utils-CBR0uhqY.js.map +1 -0
  72. package/dist/{utils-DbfNL99D.js → utils-DQSN1LLd.js} +2 -2
  73. package/dist/{utils-DbfNL99D.js.map → utils-DQSN1LLd.js.map} +1 -1
  74. package/dist/{utils-CDFlFfgu.js → utils-DQye8ufx.js} +116 -56
  75. package/dist/utils-DQye8ufx.js.map +1 -0
  76. package/dist/{utils-KinCgQeq.js → utils-Dshsishe.js} +2 -2
  77. package/dist/{utils-KinCgQeq.js.map → utils-Dshsishe.js.map} +1 -1
  78. package/dist/{utils-adgVs86v.js → utils-hFSeEG9S.js} +108 -48
  79. package/dist/utils-hFSeEG9S.js.map +1 -0
  80. package/dist/v2/AssetLibrary.js +9 -10
  81. package/dist/v2/AssetLibrary.js.map +1 -1
  82. package/dist/v2/BasicImageUploader.js +2 -4
  83. package/dist/v2/BasicImageUploader.js.map +1 -1
  84. package/dist/v2/ImageForm.js +8 -9
  85. package/dist/v2/ImageForm.js.map +1 -1
  86. package/dist/v2/ImageUploader.js +8 -9
  87. package/dist/v2/ImageUploader.js.map +1 -1
  88. package/dist/v2/hooks.js +17 -477
  89. package/dist/v2/hooks.js.map +1 -1
  90. package/dist/v2/index.js +9 -10
  91. package/dist/v2/index.js.map +1 -1
  92. package/package.json +22 -22
  93. package/dist/constants-BJsrtAQc.js.map +0 -1
  94. package/dist/constants-BVxeajuh.js.map +0 -1
  95. package/dist/imagekit.esm-BOkeWsyX.js.map +0 -1
  96. package/dist/imagekit.esm-Bps9lPzh.js.map +0 -1
  97. package/dist/index-7XBgPy09.js.map +0 -1
  98. package/dist/index-DfxvM32h.js.map +0 -1
  99. package/dist/index-PE1rZoJJ.js.map +0 -1
  100. package/dist/index-YZ7Lhfkg.js.map +0 -1
  101. package/dist/useImageUploader-CHyjhRSo.js.map +0 -1
  102. package/dist/useImageUploader-sa1Apcxi.js.map +0 -1
  103. package/dist/useUploadDropzone-CTwUeaY1.js +0 -57
  104. package/dist/useUploadDropzone-CTwUeaY1.js.map +0 -1
  105. package/dist/useUploadDropzone-I7mlv7Zx.js +0 -59
  106. package/dist/useUploadDropzone-I7mlv7Zx.js.map +0 -1
  107. package/dist/utils-B9Wu-jti.js.map +0 -1
  108. package/dist/utils-CDFlFfgu.js.map +0 -1
  109. package/dist/utils-adgVs86v.js.map +0 -1
  110. package/dist/utils-kGoo6Gnk.js.map +0 -1
@@ -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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"}
@@ -2,7 +2,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import '@tanstack/react-query';
3
3
  import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
4
4
  import axios from 'axios';
5
- import { a as IMAGE_UPLOADER_BASE_URL } from './imagekit.esm-Bps9lPzh.js';
5
+ import { b as IMAGE_UPLOADER_BASE_URL } from './imagekit.esm-Wbu4ABaW.js';
6
6
  import { Q as QUERY_KEYS } from './query-BJnGLX4z.js';
7
7
 
8
8
  var create = function create(payload) {
@@ -70,4 +70,4 @@ var isGif = function isGif(fileOrImage) {
70
70
  };
71
71
 
72
72
  export { cloudflareImageApi as c, directUploadsApi as d, generateASCIIFileName as g, isGif as i, useCreateBlob as u };
73
- //# sourceMappingURL=utils-DbfNL99D.js.map
73
+ //# sourceMappingURL=utils-DQSN1LLd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils-DbfNL99D.js","sources":["../app/javascript/src/apis/direct_uploads.js","../app/javascript/src/hooks/useDirectUploads.js","../app/javascript/src/apis/cloudflare_image.js","../app/javascript/src/hooks/utils.js"],"sourcesContent":["import axios from \"axios\";\n\nimport { IMAGE_UPLOADER_BASE_URL } from \"src/constants\";\n\nconst create = payload =>\n axios.post(\n \"/api/direct_uploads\",\n { blob: payload },\n { transformRequestCase: false }\n );\n\nconst update = ({ id, payload }) =>\n axios.put(\n `${IMAGE_UPLOADER_BASE_URL}/api/direct_uploads/${id}`,\n { blob: payload },\n { transformRequestCase: false }\n );\nconst directUploadsApi = { create, update };\n\nexport default directUploadsApi;\n","import { useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useCreateBlob = options =>\n useMutationWithInvalidation(directUploadsApi.create, {\n keysToInvalidate: [QUERY_KEYS.ASSETS_LIST],\n ...options,\n });\n\nconst useUpdateBlob = options =>\n useMutation({ mutationFn: directUploadsApi.update, ...options });\n\nexport { useCreateBlob, useUpdateBlob };\n","import axios from \"axios\";\n\nimport { IMAGE_UPLOADER_BASE_URL } from \"src/constants\";\n\nconst generate = () =>\n axios.post(`${IMAGE_UPLOADER_BASE_URL}/cloudflare_images`);\n\nconst upload = ({ url, formData, setUploadProgress }) =>\n axios.post(url, formData, {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n onUploadProgress: event => {\n const percentComplete = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percentComplete);\n },\n transformRequestCase: false,\n });\n\nconst cloudflareImageApi = { generate, upload };\n\nexport default cloudflareImageApi;\n","export const generateASCIIFileName = originalFileName => {\n const sanitizedFileName = originalFileName.replace(/[\\u00A0\\u202F]/g, \" \");\n\n if (/^[A-Za-z0-9-_.~ ]*$/.test(sanitizedFileName)) {\n return originalFileName;\n }\n\n const extension = originalFileName.split(\".\").pop();\n\n return `image.${extension}`;\n};\n\nexport const isGif = fileOrImage =>\n fileOrImage?.type === \"image/gif\" || fileOrImage?.contentType === \"image/gif\";\n"],"names":["create","payload","axios","post","blob","transformRequestCase","update","_ref","id","put","concat","IMAGE_UPLOADER_BASE_URL","directUploadsApi","useCreateBlob","options","useMutationWithInvalidation","_objectSpread","keysToInvalidate","QUERY_KEYS","ASSETS_LIST","generate","upload","url","formData","setUploadProgress","headers","onUploadProgress","event","percentComplete","Math","round","loaded","total","cloudflareImageApi","generateASCIIFileName","originalFileName","sanitizedFileName","replace","test","extension","split","pop","isGif","fileOrImage","type","contentType"],"mappings":"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"}
1
+ {"version":3,"file":"utils-DQSN1LLd.js","sources":["../app/javascript/src/apis/direct_uploads.js","../app/javascript/src/hooks/useDirectUploads.js","../app/javascript/src/apis/cloudflare_image.js","../app/javascript/src/hooks/utils.js"],"sourcesContent":["import axios from \"axios\";\n\nimport { IMAGE_UPLOADER_BASE_URL } from \"src/constants\";\n\nconst create = payload =>\n axios.post(\n \"/api/direct_uploads\",\n { blob: payload },\n { transformRequestCase: false }\n );\n\nconst update = ({ id, payload }) =>\n axios.put(\n `${IMAGE_UPLOADER_BASE_URL}/api/direct_uploads/${id}`,\n { blob: payload },\n { transformRequestCase: false }\n );\nconst directUploadsApi = { create, update };\n\nexport default directUploadsApi;\n","import { useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useCreateBlob = options =>\n useMutationWithInvalidation(directUploadsApi.create, {\n keysToInvalidate: [QUERY_KEYS.ASSETS_LIST],\n ...options,\n });\n\nconst useUpdateBlob = options =>\n useMutation({ mutationFn: directUploadsApi.update, ...options });\n\nexport { useCreateBlob, useUpdateBlob };\n","import axios from \"axios\";\n\nimport { IMAGE_UPLOADER_BASE_URL } from \"src/constants\";\n\nconst generate = () =>\n axios.post(`${IMAGE_UPLOADER_BASE_URL}/cloudflare_images`);\n\nconst upload = ({ url, formData, setUploadProgress }) =>\n axios.post(url, formData, {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n onUploadProgress: event => {\n const percentComplete = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percentComplete);\n },\n transformRequestCase: false,\n });\n\nconst cloudflareImageApi = { generate, upload };\n\nexport default cloudflareImageApi;\n","export const generateASCIIFileName = originalFileName => {\n const sanitizedFileName = originalFileName.replace(/[\\u00A0\\u202F]/g, \" \");\n\n if (/^[A-Za-z0-9-_.~ ]*$/.test(sanitizedFileName)) {\n return originalFileName;\n }\n\n const extension = originalFileName.split(\".\").pop();\n\n return `image.${extension}`;\n};\n\nexport const isGif = fileOrImage =>\n fileOrImage?.type === \"image/gif\" || fileOrImage?.contentType === \"image/gif\";\n"],"names":["create","payload","axios","post","blob","transformRequestCase","update","_ref","id","put","concat","IMAGE_UPLOADER_BASE_URL","directUploadsApi","useCreateBlob","options","useMutationWithInvalidation","_objectSpread","keysToInvalidate","QUERY_KEYS","ASSETS_LIST","generate","upload","url","formData","setUploadProgress","headers","onUploadProgress","event","percentComplete","Math","round","loaded","total","cloudflareImageApi","generateASCIIFileName","originalFileName","sanitizedFileName","replace","test","extension","split","pop","isGif","fileOrImage","type","contentType"],"mappings":"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"}
@@ -7,11 +7,67 @@ var classnames = require('classnames');
7
7
  var neetoCist = require('@bigbinary/neeto-cist');
8
8
  var ramda = require('ramda');
9
9
  var reactI18next = require('react-i18next');
10
- var useUploadDropzone = require('./useUploadDropzone-I7mlv7Zx.js');
11
- var initializers = require('@bigbinary/neeto-commons-frontend/v2/initializers');
10
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
11
+ var reactDropzone = require('react-dropzone');
12
12
  var i18next = require('i18next');
13
+ var initializers = require('@bigbinary/neeto-commons-frontend/v2/initializers');
13
14
  var jsxRuntime = require('react/jsx-runtime');
14
- var imagekit_esm = require('./imagekit.esm-BOkeWsyX.js');
15
+ var imagekit_esm = require('./imagekit.esm-ZYrS-YIL.js');
16
+
17
+ var DROPZONE_ROOT_DIV_CLASSNAME = "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";
18
+ var FILE_ERRORS = {
19
+ "file-invalid-type": i18next.t("neetoImageUploader.imageUpload.fileTypeError"),
20
+ "file-too-large": i18next.t("neetoImageUploader.imageUpload.fileSizeError"),
21
+ "file-dimension-too-large": i18next.t("neetoImageUploader.imageUpload.fileDimensionError"),
22
+ "file-resolution-too-large": i18next.t("neetoImageUploader.imageUpload.fileResolutionError")
23
+ };
24
+
25
+ var handleDropRejected = function handleDropRejected(fileRejections) {
26
+ fileRejections.map(function (_ref) {
27
+ var errors = _ref.errors;
28
+ return errors.map(function (_ref2) {
29
+ var code = _ref2.code;
30
+ return neetoAtoms.Toastr.error(FILE_ERRORS[code] || i18next.t("neetoImageUploader.imageUpload.genericError"));
31
+ });
32
+ });
33
+ };
34
+
35
+ var useUploadDropzone = function useUploadDropzone(_ref) {
36
+ var _ref$uploadConfig = _ref.uploadConfig,
37
+ uploadConfig = _ref$uploadConfig === void 0 ? {
38
+ allowedImageTypes: [],
39
+ maxImageSize: 0
40
+ } : _ref$uploadConfig,
41
+ _onDrop = _ref.onDrop,
42
+ _ref$setImage = _ref.setImage,
43
+ setImage = _ref$setImage === void 0 ? neetoCist.noop : _ref$setImage;
44
+ var _useState = require$$0.useState(0),
45
+ _useState2 = _slicedToArray(_useState, 2),
46
+ uploadProgress = _useState2[0],
47
+ setUploadProgress = _useState2[1];
48
+ var _useDropzone = reactDropzone.useDropzone({
49
+ onDrop: function onDrop(acceptedFiles) {
50
+ return _onDrop(acceptedFiles[0], setUploadProgress, setImage);
51
+ },
52
+ accept: uploadConfig === null || uploadConfig === void 0 ? void 0 : uploadConfig.allowedImageTypes,
53
+ multiple: false,
54
+ maxSize: uploadConfig.maxImageSize * 1048576,
55
+ onDropRejected: handleDropRejected,
56
+ noDragEventsBubbling: true
57
+ }),
58
+ getRootProps = _useDropzone.getRootProps,
59
+ getInputProps = _useDropzone.getInputProps,
60
+ isDragActive = _useDropzone.isDragActive,
61
+ open = _useDropzone.open;
62
+ return {
63
+ getRootProps: getRootProps,
64
+ getInputProps: getInputProps,
65
+ isDragActive: isDragActive,
66
+ open: open,
67
+ uploadProgress: uploadProgress,
68
+ setUploadProgress: setUploadProgress
69
+ };
70
+ };
15
71
 
16
72
  var DEFAULT_ALLOWED_IMAGE_TYPES = {
17
73
  "image/png": [".png"],
@@ -34,14 +90,6 @@ var getAllowedTypes = function getAllowedTypes(uploadConfig) {
34
90
  }), ramda.map(ramda.toUpper), ramda.join(", "))(uploadConfig.allowedImageTypes);
35
91
  };
36
92
 
37
- var DROPZONE_ROOT_DIV_CLASSNAME = "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";
38
- ({
39
- "file-invalid-type": i18next.t("neetoImageUploader.imageUpload.fileTypeError"),
40
- "file-too-large": i18next.t("neetoImageUploader.imageUpload.fileSizeError"),
41
- "file-dimension-too-large": i18next.t("neetoImageUploader.imageUpload.fileDimensionError"),
42
- "file-resolution-too-large": i18next.t("neetoImageUploader.imageUpload.fileResolutionError")
43
- });
44
-
45
93
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
46
94
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
47
95
  var ImageDirectUpload = /*#__PURE__*/require$$0.forwardRef(function (_ref, ref) {
@@ -57,7 +105,7 @@ var ImageDirectUpload = /*#__PURE__*/require$$0.forwardRef(function (_ref, ref)
57
105
  _ref$isUploadDisabled = _ref.isUploadDisabled,
58
106
  isUploadDisabled = _ref$isUploadDisabled === void 0 ? false : _ref$isUploadDisabled,
59
107
  setImage = _ref.setImage;
60
- var _useUploadDropzone = useUploadDropzone.useUploadDropzone({
108
+ var _useUploadDropzone = useUploadDropzone({
61
109
  uploadConfig: uploadConfig,
62
110
  onDrop: onDrop,
63
111
  setImage: setImage
@@ -181,6 +229,10 @@ var DEFAULT_CROP_CONFIG = {
181
229
  x: 0,
182
230
  y: 0
183
231
  };
232
+ var DEFAULT_ASPECT_RATIO = {
233
+ width: 16,
234
+ height: 9
235
+ };
184
236
  var INFINITE_SCROLLER_SIZES = [{
185
237
  columns: 2,
186
238
  gutter: 0
@@ -208,20 +260,30 @@ var getWholeNumberAspectRatio = function getWholeNumberAspectRatio(_ref) {
208
260
  width: 1,
209
261
  height: 1
210
262
  };
211
- var _gcd = function gcd(a, b) {
212
- return b === 0 ? a : _gcd(b, a % b);
263
+
264
+ // NaN or Infinity would make the gcd loop below never terminate.
265
+ if (!Number.isFinite(width) || !Number.isFinite(height)) {
266
+ return DEFAULT_ASPECT_RATIO;
267
+ }
268
+ var gcd = function gcd(a, b) {
269
+ while (b !== 0) {
270
+ var _ref2 = [b, a % b];
271
+ a = _ref2[0];
272
+ b = _ref2[1];
273
+ }
274
+ return a;
213
275
  };
214
276
 
215
277
  // Multiplying by 1000 is a temporary fix to prevent height and width with fractions (eg: 100.91).
216
- var divisor = _gcd(width * 1000, height * 1000);
278
+ var divisor = gcd(width * 1000, height * 1000);
217
279
  return {
218
280
  width: width / divisor,
219
281
  height: height / divisor
220
282
  };
221
283
  };
222
- var getCropValues = function getCropValues(_ref2) {
223
- var crop = _ref2.crop,
224
- imageRef = _ref2.imageRef;
284
+ var getCropValues = function getCropValues(_ref3) {
285
+ var crop = _ref3.crop,
286
+ imageRef = _ref3.imageRef;
225
287
  var naturalWidth = imageRef.current.naturalWidth;
226
288
  var naturalHeight = imageRef.current.naturalHeight;
227
289
  return {
@@ -231,10 +293,10 @@ var getCropValues = function getCropValues(_ref2) {
231
293
  height: crop.height / 100 * naturalHeight
232
294
  };
233
295
  };
234
- var getImageKitCroppedURL = function getImageKitCroppedURL(_ref3) {
235
- var imageURL = _ref3.imageURL,
236
- crop = _ref3.crop,
237
- imageRef = _ref3.imageRef;
296
+ var getImageKitCroppedURL = function getImageKitCroppedURL(_ref4) {
297
+ var imageURL = _ref4.imageURL,
298
+ crop = _ref4.crop,
299
+ imageRef = _ref4.imageRef;
238
300
  var imagekit = new imagekit_esm.ImageKit({
239
301
  urlEndpoint: initializers.globalProps.imagekit.urlEndpoint
240
302
  });
@@ -264,12 +326,12 @@ var isNilOrEmpty = function isNilOrEmpty(value) {
264
326
  var isNotNilOrEmpty = function isNotNilOrEmpty(value) {
265
327
  return !isNilOrEmpty(value);
266
328
  };
267
- var isItemsCenter = function isItemsCenter(_ref4) {
268
- var imageRef = _ref4.imageRef,
269
- wrapperRef = _ref4.wrapperRef;
270
- var _ref5 = imageRef.current || {},
271
- imageHeight = _ref5.height,
272
- imageWidth = _ref5.width;
329
+ var isItemsCenter = function isItemsCenter(_ref5) {
330
+ var imageRef = _ref5.imageRef,
331
+ wrapperRef = _ref5.wrapperRef;
332
+ var _ref6 = imageRef.current || {},
333
+ imageHeight = _ref6.height,
334
+ imageWidth = _ref6.width;
273
335
  var wrapperHeight = (wrapperRef.current || {}).clientHeight;
274
336
  if (imageHeight < imageWidth && imageHeight < wrapperHeight - 1) {
275
337
  // Landscape images smaller than wrapper dimensions
@@ -281,9 +343,9 @@ var isItemsCenter = function isItemsCenter(_ref4) {
281
343
  }
282
344
  return imageHeight > imageWidth && imageHeight < wrapperHeight - 1;
283
345
  };
284
- var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCroppedValues(_ref6) {
285
- var image = _ref6.image,
286
- crop = _ref6.crop;
346
+ var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCroppedValues(_ref7) {
347
+ var image = _ref7.image,
348
+ crop = _ref7.crop;
287
349
  var naturalWidth = image.metadata.width;
288
350
  var naturalHeight = image.metadata.height;
289
351
  var sourceX = crop.x / 100 * naturalWidth;
@@ -299,9 +361,9 @@ var calculateCloudFlareImageCroppedValues = function calculateCloudFlareImageCro
299
361
  left: sourceX
300
362
  };
301
363
  };
302
- var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(_ref7) {
303
- var image = _ref7.image,
304
- crop = _ref7.crop;
364
+ var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(_ref8) {
365
+ var image = _ref8.image,
366
+ crop = _ref8.crop;
305
367
  var _calculateCloudFlareI = calculateCloudFlareImageCroppedValues({
306
368
  image: image,
307
369
  crop: crop
@@ -313,19 +375,16 @@ var getCloudFlareCroppedURL = function getCloudFlareCroppedURL(_ref7) {
313
375
  var trimValues = "".concat(top, ";").concat(right, ";").concat(bottom, ";").concat(left);
314
376
  return image.url.replace("public", "trim=".concat(trimValues));
315
377
  };
316
- var getAspectRatio = function getAspectRatio(_ref8) {
317
- var fixedAspectRatio = _ref8.fixedAspectRatio,
318
- imageSize = _ref8.imageSize;
378
+ var getAspectRatio = function getAspectRatio(_ref9) {
379
+ var fixedAspectRatio = _ref9.fixedAspectRatio,
380
+ imageSize = _ref9.imageSize;
319
381
  if (neetoCist.isPresent(fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.width) && neetoCist.isPresent(fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.height)) {
320
382
  return fixedAspectRatio;
321
383
  }
322
384
  if (neetoCist.isPresent(imageSize === null || imageSize === void 0 ? void 0 : imageSize.width) && neetoCist.isPresent(imageSize === null || imageSize === void 0 ? void 0 : imageSize.height)) {
323
385
  return getWholeNumberAspectRatio(imageSize);
324
386
  }
325
- return {
326
- width: 16,
327
- height: 9
328
- };
387
+ return DEFAULT_ASPECT_RATIO;
329
388
  };
330
389
  var getPixels = function getPixels(percentage, pixel) {
331
390
  return Math.round(percentage / 100 * pixel);
@@ -333,10 +392,10 @@ var getPixels = function getPixels(percentage, pixel) {
333
392
  var getPercentage = function getPercentage(crop, full) {
334
393
  return crop / full * 100;
335
394
  };
336
- var getInitialCropSize = function getInitialCropSize(_ref9) {
337
- var image = _ref9.image,
338
- aspectRatioFactor = _ref9.aspectRatioFactor,
339
- maxCropWidth = _ref9.maxCropWidth;
395
+ var getInitialCropSize = function getInitialCropSize(_ref0) {
396
+ var image = _ref0.image,
397
+ aspectRatioFactor = _ref0.aspectRatioFactor,
398
+ maxCropWidth = _ref0.maxCropWidth;
340
399
  var imageWidth = image.naturalWidth,
341
400
  imageHeight = image.naturalHeight;
342
401
  var imageAspectRatio = imageWidth / imageHeight;
@@ -364,16 +423,16 @@ var getWidthFromAspectRatio = function getWidthFromAspectRatio(height, aspectRat
364
423
  return Math.round(height * aspectRatio.width / aspectRatio.height);
365
424
  };
366
425
  var getWrapperRefStyles = function getWrapperRefStyles(wrapperRef, imageRef) {
367
- var _ref10 = imageRef.current || {},
368
- _ref10$naturalHeight = _ref10.naturalHeight,
369
- naturalHeight = _ref10$naturalHeight === void 0 ? 100 : _ref10$naturalHeight,
370
- _ref10$naturalWidth = _ref10.naturalWidth,
371
- naturalWidth = _ref10$naturalWidth === void 0 ? 100 : _ref10$naturalWidth;
372
- var _ref11 = wrapperRef.current || {},
373
- _ref11$clientHeight = _ref11.clientHeight,
374
- clientHeight = _ref11$clientHeight === void 0 ? 100 : _ref11$clientHeight,
375
- _ref11$clientWidth = _ref11.clientWidth,
376
- clientWidth = _ref11$clientWidth === void 0 ? 100 : _ref11$clientWidth;
426
+ var _ref1 = imageRef.current || {},
427
+ _ref1$naturalHeight = _ref1.naturalHeight,
428
+ naturalHeight = _ref1$naturalHeight === void 0 ? 100 : _ref1$naturalHeight,
429
+ _ref1$naturalWidth = _ref1.naturalWidth,
430
+ naturalWidth = _ref1$naturalWidth === void 0 ? 100 : _ref1$naturalWidth;
431
+ var _ref10 = wrapperRef.current || {},
432
+ _ref10$clientHeight = _ref10.clientHeight,
433
+ clientHeight = _ref10$clientHeight === void 0 ? 100 : _ref10$clientHeight,
434
+ _ref10$clientWidth = _ref10.clientWidth,
435
+ clientWidth = _ref10$clientWidth === void 0 ? 100 : _ref10$clientWidth;
377
436
  if (naturalWidth <= clientWidth && naturalHeight <= clientHeight) {
378
437
  return {
379
438
  maxWidth: naturalWidth
@@ -430,4 +489,5 @@ exports.getWrapperRefStyles = getWrapperRefStyles;
430
489
  exports.isItemsCenter = isItemsCenter;
431
490
  exports.isNilOrEmpty = isNilOrEmpty;
432
491
  exports.isNotNilOrEmpty = isNotNilOrEmpty;
433
- //# sourceMappingURL=utils-CDFlFfgu.js.map
492
+ exports.useUploadDropzone = useUploadDropzone;
493
+ //# sourceMappingURL=utils-DQye8ufx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-DQye8ufx.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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"}
@@ -4,7 +4,7 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  require('@tanstack/react-query');
5
5
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
6
6
  var axios = require('axios');
7
- var imagekit_esm = require('./imagekit.esm-BOkeWsyX.js');
7
+ var imagekit_esm = require('./imagekit.esm-ZYrS-YIL.js');
8
8
  var query = require('./query-eZTZ-5Dm.js');
9
9
 
10
10
  var create = function create(payload) {
@@ -76,4 +76,4 @@ exports.directUploadsApi = directUploadsApi;
76
76
  exports.generateASCIIFileName = generateASCIIFileName;
77
77
  exports.isGif = isGif;
78
78
  exports.useCreateBlob = useCreateBlob;
79
- //# sourceMappingURL=utils-KinCgQeq.js.map
79
+ //# sourceMappingURL=utils-Dshsishe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils-KinCgQeq.js","sources":["../app/javascript/src/apis/direct_uploads.js","../app/javascript/src/hooks/useDirectUploads.js","../app/javascript/src/apis/cloudflare_image.js","../app/javascript/src/hooks/utils.js"],"sourcesContent":["import axios from \"axios\";\n\nimport { IMAGE_UPLOADER_BASE_URL } from \"src/constants\";\n\nconst create = payload =>\n axios.post(\n \"/api/direct_uploads\",\n { blob: payload },\n { transformRequestCase: false }\n );\n\nconst update = ({ id, payload }) =>\n axios.put(\n `${IMAGE_UPLOADER_BASE_URL}/api/direct_uploads/${id}`,\n { blob: payload },\n { transformRequestCase: false }\n );\nconst directUploadsApi = { create, update };\n\nexport default directUploadsApi;\n","import { useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useCreateBlob = options =>\n useMutationWithInvalidation(directUploadsApi.create, {\n keysToInvalidate: [QUERY_KEYS.ASSETS_LIST],\n ...options,\n });\n\nconst useUpdateBlob = options =>\n useMutation({ mutationFn: directUploadsApi.update, ...options });\n\nexport { useCreateBlob, useUpdateBlob };\n","import axios from \"axios\";\n\nimport { IMAGE_UPLOADER_BASE_URL } from \"src/constants\";\n\nconst generate = () =>\n axios.post(`${IMAGE_UPLOADER_BASE_URL}/cloudflare_images`);\n\nconst upload = ({ url, formData, setUploadProgress }) =>\n axios.post(url, formData, {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n onUploadProgress: event => {\n const percentComplete = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percentComplete);\n },\n transformRequestCase: false,\n });\n\nconst cloudflareImageApi = { generate, upload };\n\nexport default cloudflareImageApi;\n","export const generateASCIIFileName = originalFileName => {\n const sanitizedFileName = originalFileName.replace(/[\\u00A0\\u202F]/g, \" \");\n\n if (/^[A-Za-z0-9-_.~ ]*$/.test(sanitizedFileName)) {\n return originalFileName;\n }\n\n const extension = originalFileName.split(\".\").pop();\n\n return `image.${extension}`;\n};\n\nexport const isGif = fileOrImage =>\n fileOrImage?.type === \"image/gif\" || fileOrImage?.contentType === \"image/gif\";\n"],"names":["create","payload","axios","post","blob","transformRequestCase","update","_ref","id","put","concat","IMAGE_UPLOADER_BASE_URL","directUploadsApi","useCreateBlob","options","useMutationWithInvalidation","_objectSpread","keysToInvalidate","QUERY_KEYS","ASSETS_LIST","generate","upload","url","formData","setUploadProgress","headers","onUploadProgress","event","percentComplete","Math","round","loaded","total","cloudflareImageApi","generateASCIIFileName","originalFileName","sanitizedFileName","replace","test","extension","split","pop","isGif","fileOrImage","type","contentType"],"mappings":";;;;;;;;;AAIA,IAAMA,MAAM,GAAG,SAATA,MAAMA,CAAGC,OAAO,EAAA;AAAA,EAAA,OACpBC,KAAK,CAACC,IAAI,CACR,qBAAqB,EACrB;AAAEC,IAAAA,IAAI,EAAEH;AAAQ,GAAC,EACjB;AAAEI,IAAAA,oBAAoB,EAAE;AAAM,GAChC,CAAC;AAAA,CAAA;AAEH,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,EAAE,GAAAD,IAAA,CAAFC,EAAE;IAAEP,OAAO,GAAAM,IAAA,CAAPN,OAAO;EAAA,OAC3BC,KAAK,CAACO,GAAG,CAAA,EAAA,CAAAC,MAAA,CACJC,oCAAuB,EAAA,sBAAA,CAAA,CAAAD,MAAA,CAAuBF,EAAE,CAAA,EACnD;AAAEJ,IAAAA,IAAI,EAAEH;AAAQ,GAAC,EACjB;AAAEI,IAAAA,oBAAoB,EAAE;AAAM,GAChC,CAAC;AAAA,CAAA;AACH,IAAMO,gBAAgB,GAAG;AAAEZ,EAAAA,MAAM,EAANA,MAAM;AAAEM,EAAAA,MAAM,EAANA;AAAO;;;;ACX1C,IAAMO,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,OAAO,EAAA;AAAA,EAAA,OAC3BC,sCAA2B,CAACH,gBAAgB,CAACZ,MAAM,EAAAgB,aAAA,CAAA;AACjDC,IAAAA,gBAAgB,EAAE,CAACC,gBAAU,CAACC,WAAW;GAAC,EACvCL,OAAO,CACX,CAAC;AAAA;;ACNJ,IAAMM,QAAQ,GAAG,SAAXA,QAAQA,GAAA;EAAA,OACZlB,KAAK,CAACC,IAAI,CAAA,EAAA,CAAAO,MAAA,CAAIC,oCAAuB,uBAAoB,CAAC;AAAA,CAAA;AAE5D,IAAMU,MAAM,GAAG,SAATA,MAAMA,CAAAd,IAAA,EAAA;AAAA,EAAA,IAAMe,GAAG,GAAAf,IAAA,CAAHe,GAAG;IAAEC,QAAQ,GAAAhB,IAAA,CAARgB,QAAQ;IAAEC,iBAAiB,GAAAjB,IAAA,CAAjBiB,iBAAiB;AAAA,EAAA,OAChDtB,KAAK,CAACC,IAAI,CAACmB,GAAG,EAAEC,QAAQ,EAAE;AACxBE,IAAAA,OAAO,EAAE;AAAE,MAAA,cAAc,EAAE;KAAuB;AAClDC,IAAAA,gBAAgB,EAAE,SAAlBA,gBAAgBA,CAAEC,KAAK,EAAI;AACzB,MAAA,IAAMC,eAAe,GAAGC,IAAI,CAACC,KAAK,CAAEH,KAAK,CAACI,MAAM,GAAGJ,KAAK,CAACK,KAAK,GAAI,GAAG,CAAC;MACtER,iBAAiB,CAACI,eAAe,CAAC;IACpC,CAAC;AACDvB,IAAAA,oBAAoB,EAAE;AACxB,GAAC,CAAC;AAAA,CAAA;AAEJ,IAAM4B,kBAAkB,GAAG;AAAEb,EAAAA,QAAQ,EAARA,QAAQ;AAAEC,EAAAA,MAAM,EAANA;AAAO;;ICjBjCa,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAGC,gBAAgB,EAAI;EACvD,IAAMC,iBAAiB,GAAGD,gBAAgB,CAACE,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;AAE1E,EAAA,IAAI,qBAAqB,CAACC,IAAI,CAACF,iBAAiB,CAAC,EAAE;AACjD,IAAA,OAAOD,gBAAgB;AACzB,EAAA;EAEA,IAAMI,SAAS,GAAGJ,gBAAgB,CAACK,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE;EAEnD,OAAA,QAAA,CAAA/B,MAAA,CAAgB6B,SAAS,CAAA;AAC3B;IAEaG,KAAK,GAAG,SAARA,KAAKA,CAAGC,WAAW,EAAA;EAAA,OAC9B,CAAAA,WAAW,KAAA,IAAA,IAAXA,WAAW,uBAAXA,WAAW,CAAEC,IAAI,MAAK,WAAW,IAAI,CAAAD,WAAW,aAAXA,WAAW,KAAA,MAAA,GAAA,MAAA,GAAXA,WAAW,CAAEE,WAAW,MAAK,WAAW;AAAA;;;;;;;;"}
1
+ {"version":3,"file":"utils-Dshsishe.js","sources":["../app/javascript/src/apis/direct_uploads.js","../app/javascript/src/hooks/useDirectUploads.js","../app/javascript/src/apis/cloudflare_image.js","../app/javascript/src/hooks/utils.js"],"sourcesContent":["import axios from \"axios\";\n\nimport { IMAGE_UPLOADER_BASE_URL } from \"src/constants\";\n\nconst create = payload =>\n axios.post(\n \"/api/direct_uploads\",\n { blob: payload },\n { transformRequestCase: false }\n );\n\nconst update = ({ id, payload }) =>\n axios.put(\n `${IMAGE_UPLOADER_BASE_URL}/api/direct_uploads/${id}`,\n { blob: payload },\n { transformRequestCase: false }\n );\nconst directUploadsApi = { create, update };\n\nexport default directUploadsApi;\n","import { useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useCreateBlob = options =>\n useMutationWithInvalidation(directUploadsApi.create, {\n keysToInvalidate: [QUERY_KEYS.ASSETS_LIST],\n ...options,\n });\n\nconst useUpdateBlob = options =>\n useMutation({ mutationFn: directUploadsApi.update, ...options });\n\nexport { useCreateBlob, useUpdateBlob };\n","import axios from \"axios\";\n\nimport { IMAGE_UPLOADER_BASE_URL } from \"src/constants\";\n\nconst generate = () =>\n axios.post(`${IMAGE_UPLOADER_BASE_URL}/cloudflare_images`);\n\nconst upload = ({ url, formData, setUploadProgress }) =>\n axios.post(url, formData, {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n onUploadProgress: event => {\n const percentComplete = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percentComplete);\n },\n transformRequestCase: false,\n });\n\nconst cloudflareImageApi = { generate, upload };\n\nexport default cloudflareImageApi;\n","export const generateASCIIFileName = originalFileName => {\n const sanitizedFileName = originalFileName.replace(/[\\u00A0\\u202F]/g, \" \");\n\n if (/^[A-Za-z0-9-_.~ ]*$/.test(sanitizedFileName)) {\n return originalFileName;\n }\n\n const extension = originalFileName.split(\".\").pop();\n\n return `image.${extension}`;\n};\n\nexport const isGif = fileOrImage =>\n fileOrImage?.type === \"image/gif\" || fileOrImage?.contentType === \"image/gif\";\n"],"names":["create","payload","axios","post","blob","transformRequestCase","update","_ref","id","put","concat","IMAGE_UPLOADER_BASE_URL","directUploadsApi","useCreateBlob","options","useMutationWithInvalidation","_objectSpread","keysToInvalidate","QUERY_KEYS","ASSETS_LIST","generate","upload","url","formData","setUploadProgress","headers","onUploadProgress","event","percentComplete","Math","round","loaded","total","cloudflareImageApi","generateASCIIFileName","originalFileName","sanitizedFileName","replace","test","extension","split","pop","isGif","fileOrImage","type","contentType"],"mappings":"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"}