@bigbinary/neeto-image-uploader-frontend 4.0.3 → 4.0.4

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 (101) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/AssetLibrary.js +12 -9
  3. package/dist/AssetLibrary.js.map +1 -1
  4. package/dist/BasicImageUploader.js +4 -2
  5. package/dist/BasicImageUploader.js.map +1 -1
  6. package/dist/ImageForm.js +7 -4
  7. package/dist/ImageForm.js.map +1 -1
  8. package/dist/ImageUploader.js +9 -6
  9. package/dist/ImageUploader.js.map +1 -1
  10. package/dist/{ImageWithFallback-Bq5rs1yf.js → ImageWithFallback-B3DoquUi.js} +4 -4
  11. package/dist/ImageWithFallback-B3DoquUi.js.map +1 -0
  12. package/dist/ImageWithFallback-CSHOljd2.js +59 -0
  13. package/dist/ImageWithFallback-CSHOljd2.js.map +1 -0
  14. package/dist/ImageWithFallback-D1ClfJLn.js +61 -0
  15. package/dist/{ImageWithFallback-Bq5rs1yf.js.map → ImageWithFallback-D1ClfJLn.js.map} +1 -1
  16. package/dist/cjs/AssetLibrary.js +10 -7
  17. package/dist/cjs/AssetLibrary.js.map +1 -1
  18. package/dist/cjs/BasicImageUploader.js +5 -3
  19. package/dist/cjs/BasicImageUploader.js.map +1 -1
  20. package/dist/cjs/ImageForm.js +9 -6
  21. package/dist/cjs/ImageForm.js.map +1 -1
  22. package/dist/cjs/ImageUploader.js +14 -11
  23. package/dist/cjs/ImageUploader.js.map +1 -1
  24. package/dist/cjs/hooks.js +1 -1
  25. package/dist/cjs/index.js +9 -6
  26. package/dist/cjs/index.js.map +1 -1
  27. package/dist/cjs/v2/AssetLibrary.js +40 -0
  28. package/dist/cjs/v2/AssetLibrary.js.map +1 -0
  29. package/dist/cjs/v2/BasicImageUploader.js +71 -0
  30. package/dist/cjs/v2/BasicImageUploader.js.map +1 -0
  31. package/dist/cjs/v2/ImageForm.js +324 -0
  32. package/dist/cjs/v2/ImageForm.js.map +1 -0
  33. package/dist/cjs/v2/ImageUploader.js +247 -0
  34. package/dist/cjs/v2/ImageUploader.js.map +1 -0
  35. package/dist/cjs/v2/hooks.js +27 -0
  36. package/dist/cjs/v2/hooks.js.map +1 -0
  37. package/dist/cjs/v2/index.js +61 -0
  38. package/dist/cjs/v2/index.js.map +1 -0
  39. package/dist/cjs/v2/utils.js +9 -0
  40. package/dist/cjs/v2/utils.js.map +1 -0
  41. package/dist/constants-Csle2bxb.js +56 -0
  42. package/dist/constants-Csle2bxb.js.map +1 -0
  43. package/dist/constants-DI8wBtC-.js +68 -0
  44. package/dist/constants-DI8wBtC-.js.map +1 -0
  45. package/dist/hooks.js +3 -3
  46. package/dist/{imagekit.esm-CXW6c1fP.js → imagekit.esm-IYQEzBnD.js} +2 -2
  47. package/dist/{imagekit.esm-CXW6c1fP.js.map → imagekit.esm-IYQEzBnD.js.map} +1 -1
  48. package/dist/index-BuSc2dEl.js +949 -0
  49. package/dist/index-BuSc2dEl.js.map +1 -0
  50. package/dist/index-CBorETxd.js +972 -0
  51. package/dist/index-CBorETxd.js.map +1 -0
  52. package/dist/index-Cv97u10a.js +952 -0
  53. package/dist/index-Cv97u10a.js.map +1 -0
  54. package/dist/index-krkZ4CNS.js +969 -0
  55. package/dist/index-krkZ4CNS.js.map +1 -0
  56. package/dist/index.js +10 -7
  57. package/dist/index.js.map +1 -1
  58. package/dist/{useImageUploader-BLOdyAwv.js → useImageUploader-D8luC4Qw.js} +2 -2
  59. package/dist/{useImageUploader-BLOdyAwv.js.map → useImageUploader-D8luC4Qw.js.map} +1 -1
  60. package/dist/{useProfileImageUpload-CiGxDpEx.js → useProfileImageUpload-CbjVfcfI.js} +3 -3
  61. package/dist/{useProfileImageUpload-CiGxDpEx.js.map → useProfileImageUpload-CbjVfcfI.js.map} +1 -1
  62. package/dist/{useProfileImageUpload-DkmUBjtt.js → useProfileImageUpload-DbanXK57.js} +6 -6
  63. package/dist/useProfileImageUpload-DbanXK57.js.map +1 -0
  64. package/dist/useUnsplashApi-CNeNh58q.js +1065 -0
  65. package/dist/useUnsplashApi-CNeNh58q.js.map +1 -0
  66. package/dist/useUnsplashApi-D_ekWD8p.js +1057 -0
  67. package/dist/useUnsplashApi-D_ekWD8p.js.map +1 -0
  68. package/dist/useUploadDropzone-8Xa8PI-1.js +56 -0
  69. package/dist/useUploadDropzone-8Xa8PI-1.js.map +1 -0
  70. package/dist/useUploadDropzone-DMv8VMRF.js +58 -0
  71. package/dist/useUploadDropzone-DMv8VMRF.js.map +1 -0
  72. package/dist/utils-BTmA9hHb.js +364 -0
  73. package/dist/utils-BTmA9hHb.js.map +1 -0
  74. package/dist/{utils-BYMSmzRM.js → utils-D5iQ8UME.js} +24 -68
  75. package/dist/utils-D5iQ8UME.js.map +1 -0
  76. package/dist/{utils-C0TymZ5r.js → utils-De7yUxgQ.js} +32 -77
  77. package/dist/utils-De7yUxgQ.js.map +1 -0
  78. package/dist/utils-DyCNC3w5.js +347 -0
  79. package/dist/utils-DyCNC3w5.js.map +1 -0
  80. package/dist/v2/AssetLibrary.js +34 -0
  81. package/dist/v2/AssetLibrary.js.map +1 -0
  82. package/dist/v2/BasicImageUploader.js +69 -0
  83. package/dist/v2/BasicImageUploader.js.map +1 -0
  84. package/dist/v2/ImageForm.js +322 -0
  85. package/dist/v2/ImageForm.js.map +1 -0
  86. package/dist/v2/ImageUploader.js +245 -0
  87. package/dist/v2/ImageUploader.js.map +1 -0
  88. package/dist/v2/hooks.js +19 -0
  89. package/dist/v2/hooks.js.map +1 -0
  90. package/dist/v2/index.js +48 -0
  91. package/dist/v2/index.js.map +1 -0
  92. package/dist/v2/utils.js +3 -0
  93. package/dist/v2/utils.js.map +1 -0
  94. package/package.json +49 -37
  95. package/dist/index-BuYEdyOT.js +0 -2413
  96. package/dist/index-BuYEdyOT.js.map +0 -1
  97. package/dist/index-Dpyvz0h1.js +0 -2410
  98. package/dist/index-Dpyvz0h1.js.map +0 -1
  99. package/dist/useProfileImageUpload-DkmUBjtt.js.map +0 -1
  100. package/dist/utils-BYMSmzRM.js.map +0 -1
  101. package/dist/utils-C0TymZ5r.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-D5iQ8UME.js","sources":["../app/javascript/src/v2/components/ImageUploader/constants.js","../app/javascript/src/v2/components/ImageUploader/utils.js","../app/javascript/src/v2/components/common/constants.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 { 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 { t } from \"i18next\";\n\nexport const DROPZONE_ROOT_DIV_CLASSNAME =\n \"neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full w-full flex-col items-center justify-center gap-3 border border-dashed p-4 transition-all duration-300 ease-in-out 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 { 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 \"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 \"neeto-ui-border-gray-300\": !isDragActive,\n \"neeto-ui-border-gray-700\": 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=\"neeto-ui-text-gray-800 text-center leading-4\"\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=\"neeto-ui-text-gray-700 text-center leading-4\"\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=\"neeto-ui-text-gray-700 text-center leading-4\"\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 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 \"neeto-ui-border-gray-300 neeto-ui-bg-gray-100 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative flex h-full w-full flex-col items-center justify-center gap-5 border border-dashed p-2 transition-all duration-300 ease-in-out\";\n","import ImageKit from \"imagekit-javascript\";\nimport { isPresent } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nconst getWholeNumberAspectRatio = ({ width, height }) => {\n if (width === height) return { width: 1, height: 1 };\n\n const gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\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 { width: 16, height: 9 };\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","DROPZONE_ROOT_DIV_CLASSNAME","t","ImageDirectUpload","forwardRef","_ref","ref","_ref$uploadConfig","_ref$onDrop","onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_ref$defaultImageSize","defaultImageSize","_ref$isUploadDisabled","isUploadDisabled","setImage","_useUploadDropzone","useUploadDropzone","getRootProps","getInputProps","isDragActive","open","uploadProgress","setUploadProgress","useImperativeHandle","upload","file","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","children","Progress","progressValue","concat","value","_jsxs","Typography","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","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","gcd","a","b","divisor","getCropValues","_ref2","crop","imageRef","naturalWidth","current","naturalHeight","getImageKitCroppedURL","_ref3","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","isNil","isEmpty","isNotNilOrEmpty","isItemsCenter","_ref4","wrapperRef","_ref5","imageHeight","imageWidth","wrapperHeight","clientHeight","calculateCloudFlareImageCroppedValues","_ref6","image","metadata","sourceX","sourceY","sourceWidth","sourceHeight","distanceFromRight","Math","abs","distanceFromBottom","top","right","bottom","left","getCloudFlareCroppedURL","_ref7","_calculateCloudFlareI","trimValues","replace","getAspectRatio","_ref8","fixedAspectRatio","imageSize","getPixels","percentage","pixel","round","getPercentage","full","getInitialCropSize","_ref9","aspectRatioFactor","maxCropWidth","imageAspectRatio","maxCropHeight","cropWidth","cropHeight","min","getHeightFromAspectRatio","aspectRatio","getWidthFromAspectRatio","getWrapperRefStyles","_ref10","_ref10$naturalHeight","_ref10$naturalWidth","_ref11","_ref11$clientHeight","_ref11$clientWidth","clientWidth","maxWidth"],"mappings":";;;;;;;;;;;;;AAEO,IAAMA,2BAA2B,GAAG;EACzC,WAAW,EAAE,CAAC,MAAM,CAAC;AACrB,EAAA,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;EAC9B,WAAW,EAAE,CAAC,MAAM,CAAC;EACrB,eAAe,EAAE,CAAC,MAAM;AAC1B,CAAC;AAEM,IAAMC,qBAAqB,GAAG;EACnCC,YAAY,EAAEC,WAAW,CAACC,gCAAgC;AAC1DC,EAAAA,iBAAiB,EAAEL;AACrB;AAEO,IAAMM,WAAW,GAAG;AAAEC,EAAAA,KAAK,EAAE,OAAO;AAAEC,EAAAA,MAAM,EAAE;AAAS;;ACZvD,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAGC,YAAY,EAAA;EAAA,OACzCC,IAAI,CACFC,MAAM,EACNC,OAAO,EACPC,GAAG,CAAC,UAAAC,SAAS,EAAA;AAAA,IAAA,OAAIA,SAAS,CAACC,KAAK,CAAC,CAAC,CAAC;AAAA,EAAA,CAAA,CAAC,EACpCF,GAAG,CAACG,OAAO,CAAC,EACZC,IAAI,CAAC,IAAI,CACX,CAAC,CAACR,YAAY,CAACL,iBAAiB,CAAC;AAAA,CAAA;;ACP5B,IAAMc,2BAA2B,GACtC,oNAAoN;CAE3L;AACzB,EAAA,mBAAmB,EAAEC,CAAC,CAAC,8CAA8C,CAAC;AACtE,EAAA,gBAAgB,EAAEA,CAAC,CAAC,8CAA8C,CAAC;AACnE,EAAA,0BAA0B,EAAEA,CAAC,CAC3B,mDACF,CAAC;EACD,2BAA2B,EAAEA,CAAC,CAC5B,oDACF;AACF;;;;ACAA,IAAMC,iBAAiB,gBAAGC,UAAU,CAClC,UAAAC,IAAA,EAUEC,GAAG,EACA;AAAA,EAAA,IAAAC,iBAAA,GAAAF,IAAA,CATDb,YAAY;AAAZA,IAAAA,YAAY,GAAAe,iBAAA,KAAA,MAAA,GAAGxB,qBAAqB,GAAAwB,iBAAA;IAAAC,WAAA,GAAAH,IAAA,CACpCI,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAGE,IAAI,GAAAF,WAAA;IAAAG,eAAA,GAAAN,IAAA,CACbO,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,eAAA;IAClBE,qBAAqB,GAAAR,IAAA,CAArBQ,qBAAqB;IAAAC,qBAAA,GAAAT,IAAA,CACrBU,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAAAX,IAAA,CACrBY,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;IACxBE,QAAQ,GAAAb,IAAA,CAARa,QAAQ;EAIV,IAAAC,kBAAA,GAOIC,iBAAiB,CAAC;AAAE5B,MAAAA,YAAY,EAAZA,YAAY;AAAEiB,MAAAA,MAAM,EAANA,MAAM;AAAES,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAC;IANvDG,YAAY,GAAAF,kBAAA,CAAZE,YAAY;IACZC,aAAa,GAAAH,kBAAA,CAAbG,aAAa;IACbC,YAAY,GAAAJ,kBAAA,CAAZI,YAAY;IACZC,IAAI,GAAAL,kBAAA,CAAJK,IAAI;IACJC,cAAc,GAAAN,kBAAA,CAAdM,cAAc;IACdC,iBAAiB,GAAAP,kBAAA,CAAjBO,iBAAiB;EAGnBC,mBAAmB,CAACrB,GAAG,EAAE,YAAA;IAAA,OAAO;AAC9BsB,MAAAA,MAAM,EAAE,SAARA,MAAMA,CAAEC,IAAI,EAAA;AAAA,QAAA,OAAIpB,MAAM,CAACoB,IAAI,EAAEH,iBAAiB,EAAER,QAAQ,CAAC;AAAA,MAAA;KAC1D;AAAA,EAAA,CAAC,CAAC;AAEH,EAAA,IAAMY,kBAAkB,GAAG,CAAC,EAAEL,cAAc,IAAI,CAACM,MAAM,CAACN,cAAc,EAAE,CAAC,CAAC,CAAC;EAE3E,oBACEO,GAAA,QAAAC,aAAA,CAAAA,aAAA,CAAA,EAAA,EACMZ,YAAY,EAAE,CAAA,EAAA,EAAA,EAAA;AAClBa,IAAAA,SAAS,EAAEC,UAAU,CAAClC,2BAA2B,EAAE;MACjD,0BAA0B,EAAE,CAACsB,YAAY;AACzC,MAAA,0BAA0B,EAAEA;AAC9B,KAAC,CAAE;AAAAa,IAAAA,QAAA,EAEFN,kBAAkB,gBACjBE,GAAA,CAACK,QAAQ,EAAA;AACPC,MAAAA,aAAa,EAAA,EAAA,CAAAC,MAAA,CAAKd,cAAc,EAAA,GAAA,CAAI;AACpCe,MAAAA,KAAK,EAAEf;KACR,CAAC,gBAEFgB,IAAA,CAAA,KAAA,EAAA;AAAKP,MAAAA,SAAS,EAAC,yBAAyB;AAAAE,MAAAA,QAAA,GACrC,CAACxB,UAAU,iBACVoB,GAAA,CAACU,UAAU,EAAA;AACTR,QAAAA,SAAS,EAAC,8CAA8C;AACxDS,QAAAA,OAAO,EAAC,OAAO;QAAAP,QAAA,eAEfJ,GAAA,CAACY,KAAK,EAAA;AACJC,UAAAA,OAAO,EAAC,wDAAwD;AAChEC,UAAAA,UAAU,EAAE;YACVC,IAAI,eACFf,GAAA,CAACgB,MAAM,EAAA;AACL,cAAA,aAAA,EAAY,kCAAkC;AAC9CL,cAAAA,OAAO,EAAC,MAAM;AACdM,cAAAA,OAAO,EAAE,SAATA,OAAOA,CAAEC,KAAK,EAAI;gBAChBA,KAAK,CAACC,eAAe,EAAE;AACvB3B,gBAAAA,IAAI,EAAE;AACR,cAAA;aACD;AAEL;SACD;AAAC,OACQ,CACb,EACAX,qBAAqB,iBACpBmB,GAAA,CAACU,UAAU,EAAA;AACTC,QAAAA,OAAO,EAAC,OAAO;AACfT,QAAAA,SAAS,EAAEC,UAAU,CAAC,uBAAuB,EAAE;AAC7C,UAAA,qBAAqB,EAAElB;AACzB,SAAC,CAAE;AACHgC,QAAAA,OAAO,EAAE,SAATA,OAAOA,CAAEG,CAAC,EAAI;UACZA,CAAC,CAACD,eAAe,EAAE;UACnBtC,qBAAqB,CAAC,IAAI,CAAC;QAC7B,CAAE;QAAAuB,QAAA,eAEFJ,GAAA,CAACY,KAAK,EAAA;AACJC,UAAAA,OAAO,EAAC,uCAAuC;AAC/CC,UAAAA,UAAU,EAAE;YACVC,IAAI,eACFf,GAAA,CAACgB,MAAM,EAAA;AACL,cAAA,aAAA,EAAY,2BAA2B;AACvCL,cAAAA,OAAO,EAAC;aACT;AAEL;SACD;OACS,CACb,eACDX,GAAA,CAAA,OAAA,EAAAC,aAAA,CAAAA,aAAA,CAAA,EAAA,EACMX,aAAa,EAAE,CAAA,EAAA,EAAA,EAAA;AACnB,QAAA,aAAA,EAAY,iCAAiC;QAC7C+B,QAAQ,EAAEzC,UAAU,IAAIK;AAAiB,OAAA,CAC1C,CAAC,eACFe,GAAA,CAACU,UAAU,EAAA;AACTR,QAAAA,SAAS,EAAC,8CAA8C;AACxD,QAAA,aAAA,EAAY,0CAA0C;AACtDS,QAAAA,OAAO,EAAC,MAAM;QAAAP,QAAA,eAEdJ,GAAA,CAACY,KAAK,EAAA;AACJC,UAAAA,OAAO,EAAC,mDAAmD;AAC3DnD,UAAAA,MAAM,EAAE;AACN4D,YAAAA,SAAS,EAAE/D,eAAe,CAACC,YAAY,CAAC;AACxC+D,YAAAA,IAAI,EAAE/D,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,MAAA,GAAA,MAAA,GAAZA,YAAY,CAAER;AACtB;SACD;OACS,CAAC,EACZwE,SAAS,CAACzC,gBAAgB,CAAC,iBAC1BiB,GAAA,CAACU,UAAU,EAAA;AACTR,QAAAA,SAAS,EAAC,8CAA8C;AACxD,QAAA,aAAA,EAAY,iDAAiD;AAC7DS,QAAAA,OAAO,EAAC,MAAM;QAAAP,QAAA,eAEdJ,GAAA,CAACY,KAAK,EAAA;AACJC,UAAAA,OAAO,EAAC,mDAAmD;UAC3DnD,MAAM,EAAAuC,aAAA,CAAA,EAAA,EAAOlB,gBAAgB;SAC9B;AAAC,OACQ,CACb;KACE;AACN,GAAA,CACE,CAAC;AAEV,CACF;AAEAZ,iBAAiB,CAACsD,WAAW,GAAG,mBAAmB;;ACnI5C,IAAMC,qBAAqB,GAAG;AAE9B,IAAMC,YAAY,GAAG;AAErB,IAAMC,eAAe,GAAG;AAExB,IAAMC,+BAA+B,GAAG;AAC7CC,EAAAA,OAAO,EAAE;AACP,IAAA,6BAA6B,EAAE,GAAG;AAClC,IAAA,8BAA8B,EAAE;GACjC;AACDC,EAAAA,YAAY,EAAE;AAChB;AAEO,IAAMC,IAAI,GAAG,CAClB;AACEC,EAAAA,KAAK,EAAEC,OAAO,CAAChE,CAAC,CAAC,uCAAuC,CAAC;AACzDiE,EAAAA,GAAG,EAAE,QAAQ;AACbC,EAAAA,UAAU,EAAE;AACd,CAAC,EACD;AACEH,EAAAA,KAAK,EAAEC,OAAO,CAAChE,CAAC,CAAC,oCAAoC,CAAC;AACtDiE,EAAAA,GAAG,EAAE,QAAQ;AACbC,EAAAA,UAAU,EAAE;AACd,CAAC,EACD;AACEH,EAAAA,KAAK,EAAEC,OAAO,CAAChE,CAAC,CAAC,wCAAwC,CAAC;AAC1DiE,EAAAA,GAAG,EAAE,UAAU;AACfC,EAAAA,UAAU,EAAE;AACd,CAAC;AAGI,IAAMC,mBAAmB,GAAG;AACjCC,EAAAA,IAAI,EAAE,GAAG;AACTC,EAAAA,MAAM,EAAE,GAAG;AACXC,EAAAA,KAAK,EAAE,GAAG;AACVC,EAAAA,CAAC,EAAE,CAAC;AACJC,EAAAA,CAAC,EAAE;AACL;AAKO,IAAMC,uBAAuB,GAAG,CACrC;AAAEC,EAAAA,OAAO,EAAE,CAAC;AAAEC,EAAAA,MAAM,EAAE;AAAE,CAAC,EACzB;AAAEC,EAAAA,EAAE,EAAE,OAAO;AAAEF,EAAAA,OAAO,EAAE,CAAC;AAAEC,EAAAA,MAAM,EAAE;AAAE,CAAC,EACtC;AAAEC,EAAAA,EAAE,EAAE,QAAQ;AAAEF,EAAAA,OAAO,EAAE,CAAC;AAAEC,EAAAA,MAAM,EAAE;AAAE,CAAC;AAGlC,IAAME,uBAAuB,GAAG;AAAEP,EAAAA,KAAK,EAAE;AAAO;AAMhD,IAAMQ,wBAAwB,GACnC/F,WAAW,CAACgG,qBAAqB,KAAKC,WAAW,GAAA,EAAA,CAAA3C,MAAA,CAC1C4C,uBAAuB,EAAA,oBAAA,CAAA,GAAA,EAAA,CAAA5C,MAAA,CACvB4C,uBAAuB,EAAA,iBAAA,CAAiB;AAE1C,IAAMC,gBAAgB,GAAGC,4BAA4B,MAAA9C,MAAA,CACrD4C,uBAAuB,EAAA,oBAAA,CAAA,GAC1BH;AAEG,IAAMM,kBAAkB,GAAGD,4BAA4B,GAAA,EAAA,CAAA9C,MAAA,CACvD4C,uBAAuB,EAAA,2BAAA,CAAA,GAAA,EAAA,CAAA5C,MAAA,CACvB4C,uBAAuB,EAAA,wBAAA;AAEvB,IAAMI,uBAAuB,GAClC;;ACzEF,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAAnF,IAAA,EAA0B;AAAA,EAAA,IAApBmE,KAAK,GAAAnE,IAAA,CAALmE,KAAK;IAAED,MAAM,GAAAlE,IAAA,CAANkE,MAAM;AAChD,EAAA,IAAIC,KAAK,KAAKD,MAAM,EAAE,OAAO;AAAEC,IAAAA,KAAK,EAAE,CAAC;AAAED,IAAAA,MAAM,EAAE;GAAG;AAEpD,EAAA,IAAMkB,IAAG,GAAG,SAANA,GAAGA,CAAIC,CAAC,EAAEC,CAAC,EAAA;AAAA,IAAA,OAAMA,CAAC,KAAK,CAAC,GAAGD,CAAC,GAAGD,IAAG,CAACE,CAAC,EAAED,CAAC,GAAGC,CAAC,CAAC;EAAA,CAAC;;AAEnD;EACA,IAAMC,OAAO,GAAGH,IAAG,CAACjB,KAAK,GAAG,IAAI,EAAED,MAAM,GAAG,IAAI,CAAC;EAEhD,OAAO;IAAEC,KAAK,EAAEA,KAAK,GAAGoB,OAAO;IAAErB,MAAM,EAAEA,MAAM,GAAGqB;GAAS;AAC7D,CAAC;IAEYC,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,KAAA,EAA2B;AAAA,EAAA,IAArBC,IAAI,GAAAD,KAAA,CAAJC,IAAI;IAAEC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;AAC5C,EAAA,IAAMC,YAAY,GAAGD,QAAQ,CAACE,OAAO,CAACD,YAAY;AAClD,EAAA,IAAME,aAAa,GAAGH,QAAQ,CAACE,OAAO,CAACC,aAAa;EAEpD,OAAO;AACL1B,IAAAA,CAAC,EAAGsB,IAAI,CAACtB,CAAC,GAAG,GAAG,GAAIwB,YAAY;AAChCvB,IAAAA,CAAC,EAAGqB,IAAI,CAACrB,CAAC,GAAG,GAAG,GAAIyB,aAAa;AACjC3B,IAAAA,KAAK,EAAGuB,IAAI,CAACvB,KAAK,GAAG,GAAG,GAAIyB,YAAY;AACxC1B,IAAAA,MAAM,EAAGwB,IAAI,CAACxB,MAAM,GAAG,GAAG,GAAI4B;GAC/B;AACH;IAEaC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAC,KAAA,EAAqC;AAAA,EAAA,IAA/BC,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IAAEP,IAAI,GAAAM,KAAA,CAAJN,IAAI;IAAEC,QAAQ,GAAAK,KAAA,CAARL,QAAQ;AAC9D,EAAA,IAAMO,QAAQ,GAAG,IAAIC,QAAQ,CAAC;AAC5BC,IAAAA,WAAW,EAAExH,WAAW,CAACsH,QAAQ,CAACE;AACpC,GAAC,CAAC;EACF,IAAAC,cAAA,GAAgCb,aAAa,CAAC;AAAEE,MAAAA,IAAI,EAAJA,IAAI;AAAEC,MAAAA,QAAQ,EAARA;AAAS,KAAC,CAAC;IAAzDvB,CAAC,GAAAiC,cAAA,CAADjC,CAAC;IAAEC,CAAC,GAAAgC,cAAA,CAADhC,CAAC;IAAEH,MAAM,GAAAmC,cAAA,CAANnC,MAAM;IAAEC,KAAK,GAAAkC,cAAA,CAALlC,KAAK;EAE3B,IAAMmC,cAAc,GAAG,CAAC;AAAEC,IAAAA,QAAQ,EAAE,SAAS;AAAEnC,IAAAA,CAAC,EAADA,CAAC;AAAEC,IAAAA,CAAC,EAADA,CAAC;AAAEH,IAAAA,MAAM,EAANA,MAAM;AAAEC,IAAAA,KAAK,EAALA;AAAM,GAAC,CAAC;EAErE,OAAO+B,QAAQ,CAACM,GAAG,CAAC;AAAEC,IAAAA,GAAG,EAAER,QAAQ;AAAEK,IAAAA,cAAc,EAAdA;AAAe,GAAC,CAAC;AACxD;IAEaI,YAAY,GAAG,SAAfA,YAAYA,CAAGvE,KAAK,EAAA;EAAA,OAAIwE,KAAK,CAACxE,KAAK,CAAC,IAAIyE,OAAO,CAACzE,KAAK,CAAC;AAAA;IACtD0E,eAAe,GAAG,SAAlBA,eAAeA,CAAG1E,KAAK,EAAA;AAAA,EAAA,OAAI,CAACuE,YAAY,CAACvE,KAAK,CAAC;AAAA;IAE/C2E,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,KAAA,EAAiC;AAAA,EAAA,IAA3BpB,QAAQ,GAAAoB,KAAA,CAARpB,QAAQ;IAAEqB,UAAU,GAAAD,KAAA,CAAVC,UAAU;AAClD,EAAA,IAAAC,KAAA,GAAmDtB,QAAQ,CAACE,OAAO,IAAI,EAAE;IAAzDqB,WAAW,GAAAD,KAAA,CAAnB/C,MAAM;IAAsBiD,UAAU,GAAAF,KAAA,CAAjB9C,KAAK;EAClC,IAAMiD,aAAa,GAAG,CAACJ,UAAU,CAACnB,OAAO,IAAI,EAAE,EAAEwB,YAAY;EAE7D,IAAIH,WAAW,GAAGC,UAAU,IAAID,WAAW,GAAGE,aAAa,GAAG,CAAC,EAAE;AAC/D;AACA,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,IAAIF,WAAW,KAAKC,UAAU,IAAID,WAAW,GAAGE,aAAa,GAAG,CAAC,EAAE;AACjE;AACA,IAAA,OAAO,IAAI;AACb,EAAA;EAEA,OAAOF,WAAW,GAAGC,UAAU,IAAID,WAAW,GAAGE,aAAa,GAAG,CAAC;AACpE;AAEO,IAAME,qCAAqC,GAAG,SAAxCA,qCAAqCA,CAAAC,KAAA,EAAwB;AAAA,EAAA,IAAlBC,KAAK,GAAAD,KAAA,CAALC,KAAK;IAAE9B,IAAI,GAAA6B,KAAA,CAAJ7B,IAAI;AACjE,EAAA,IAAME,YAAY,GAAG4B,KAAK,CAACC,QAAQ,CAACtD,KAAK;AACzC,EAAA,IAAM2B,aAAa,GAAG0B,KAAK,CAACC,QAAQ,CAACvD,MAAM;EAE3C,IAAMwD,OAAO,GAAIhC,IAAI,CAACtB,CAAC,GAAG,GAAG,GAAIwB,YAAY;EAC7C,IAAM+B,OAAO,GAAIjC,IAAI,CAACrB,CAAC,GAAG,GAAG,GAAIyB,aAAa;EAC9C,IAAM8B,WAAW,GAAIlC,IAAI,CAACvB,KAAK,GAAG,GAAG,GAAIyB,YAAY;EACrD,IAAMiC,YAAY,GAAInC,IAAI,CAACxB,MAAM,GAAG,GAAG,GAAI4B,aAAa;AAExD,EAAA,IAAMgC,iBAAiB,GAAGC,IAAI,CAACC,GAAG,CAACpC,YAAY,IAAI8B,OAAO,GAAGE,WAAW,CAAC,CAAC;AAC1E,EAAA,IAAMK,kBAAkB,GAAGF,IAAI,CAACC,GAAG,CAAClC,aAAa,IAAI6B,OAAO,GAAGE,YAAY,CAAC,CAAC;EAE7E,OAAO;AACLK,IAAAA,GAAG,EAAEP,OAAO;AACZQ,IAAAA,KAAK,EAAEL,iBAAiB;AACxBM,IAAAA,MAAM,EAAEH,kBAAkB;AAC1BI,IAAAA,IAAI,EAAEX;GACP;AACH,CAAC;IAEYY,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAAC,KAAA,EAAwB;AAAA,EAAA,IAAlBf,KAAK,GAAAe,KAAA,CAALf,KAAK;IAAE9B,IAAI,GAAA6C,KAAA,CAAJ7C,IAAI;EACnD,IAAA8C,qBAAA,GAAqClB,qCAAqC,CAAC;AACzEE,MAAAA,KAAK,EAALA,KAAK;AACL9B,MAAAA,IAAI,EAAJA;AACF,KAAC,CAAC;IAHMwC,GAAG,GAAAM,qBAAA,CAAHN,GAAG;IAAEC,KAAK,GAAAK,qBAAA,CAALL,KAAK;IAAEC,MAAM,GAAAI,qBAAA,CAANJ,MAAM;IAAEC,IAAI,GAAAG,qBAAA,CAAJH,IAAI;AAIhC,EAAA,IAAMI,UAAU,GAAA,EAAA,CAAAvG,MAAA,CAAMgG,GAAG,OAAAhG,MAAA,CAAIiG,KAAK,EAAA,GAAA,CAAA,CAAAjG,MAAA,CAAIkG,MAAM,OAAAlG,MAAA,CAAImG,IAAI,CAAE;AAEtD,EAAA,OAAOb,KAAK,CAAChB,GAAG,CAACkC,OAAO,CAAC,QAAQ,EAAA,OAAA,CAAAxG,MAAA,CAAUuG,UAAU,CAAE,CAAC;AAC1D;IAEaE,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,KAAA,EAAwC;AAAA,EAAA,IAAlCC,gBAAgB,GAAAD,KAAA,CAAhBC,gBAAgB;IAAEC,SAAS,GAAAF,KAAA,CAATE,SAAS;EAC1D,IACE3F,SAAS,CAAC0F,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAA,MAAA,GAAA,MAAA,GAAhBA,gBAAgB,CAAE1E,KAAK,CAAC,IAClChB,SAAS,CAAC0F,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE3E,MAAM,CAAC,EACnC;AACA,IAAA,OAAO2E,gBAAgB;AACzB,EAAA;EAEA,IAAI1F,SAAS,CAAC2F,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,MAAA,GAAA,MAAA,GAATA,SAAS,CAAE3E,KAAK,CAAC,IAAIhB,SAAS,CAAC2F,SAAS,KAAA,IAAA,IAATA,SAAS,uBAATA,SAAS,CAAE5E,MAAM,CAAC,EAAE;IAC/D,OAAOiB,yBAAyB,CAAC2D,SAAS,CAAC;AAC7C,EAAA;EAEA,OAAO;AAAE3E,IAAAA,KAAK,EAAE,EAAE;AAAED,IAAAA,MAAM,EAAE;GAAG;AACjC;AAEO,IAAM6E,SAAS,GAAG,SAAZA,SAASA,CAAIC,UAAU,EAAEC,KAAK,EAAA;EAAA,OACzClB,IAAI,CAACmB,KAAK,CAAEF,UAAU,GAAG,GAAG,GAAIC,KAAK,CAAC;AAAA;AAEjC,IAAME,aAAa,GAAG,SAAhBA,aAAaA,CAAIzD,IAAI,EAAE0D,IAAI,EAAA;AAAA,EAAA,OAAM1D,IAAI,GAAG0D,IAAI,GAAI,GAAG;AAAA;IAEnDC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,KAAA,EAIzB;AAAA,EAAA,IAHJ9B,KAAK,GAAA8B,KAAA,CAAL9B,KAAK;IACL+B,iBAAiB,GAAAD,KAAA,CAAjBC,iBAAiB;IACjBC,YAAY,GAAAF,KAAA,CAAZE,YAAY;AAEZ,EAAA,IAAsBrC,UAAU,GAAiCK,KAAK,CAA9D5B,YAAY;IAA6BsB,WAAW,GAAKM,KAAK,CAApC1B,aAAa;AAC/C,EAAA,IAAM2D,gBAAgB,GAAGtC,UAAU,GAAGD,WAAW;AACjD,EAAA,IAAMwC,aAAa,GAAGF,YAAY,GAAGD,iBAAiB;EAEtD,IAAII,SAAS,EAAEC,UAAU;EAEzB,IAAIH,gBAAgB,GAAGF,iBAAiB,EAAE;IACxCI,SAAS,GAAG5B,IAAI,CAAC8B,GAAG,CAACL,YAAY,EAAErC,UAAU,CAAC;IAC9CyC,UAAU,GAAGD,SAAS,GAAGJ,iBAAiB;AAC5C,EAAA,CAAC,MAAM,IAAIrC,WAAW,GAAGwC,aAAa,EAAE;AACtCC,IAAAA,SAAS,GAAGxC,UAAU;AACtByC,IAAAA,UAAU,GAAG1C,WAAW;AAC1B,EAAA,CAAC,MAAM;IACL0C,UAAU,GAAG7B,IAAI,CAAC8B,GAAG,CAACH,aAAa,EAAExC,WAAW,CAAC;IACjDyC,SAAS,GAAGC,UAAU,GAAGL,iBAAiB;AAC5C,EAAA;EAEA,OAAO;AAAEI,IAAAA,SAAS,EAATA,SAAS;AAAEC,IAAAA,UAAU,EAAVA;GAAY;AAClC;AAEO,IAAME,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAI3F,KAAK,EAAE4F,WAAW,EAAA;AAAA,EAAA,OACzDhC,IAAI,CAACmB,KAAK,CAAE/E,KAAK,GAAG4F,WAAW,CAAC7F,MAAM,GAAI6F,WAAW,CAAC5F,KAAK,CAAC;AAAA;AAEvD,IAAM6F,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAI9F,MAAM,EAAE6F,WAAW,EAAA;AAAA,EAAA,OACzDhC,IAAI,CAACmB,KAAK,CAAEhF,MAAM,GAAG6F,WAAW,CAAC5F,KAAK,GAAI4F,WAAW,CAAC7F,MAAM,CAAC;AAAA;AAExD,IAAM+F,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIjD,UAAU,EAAErB,QAAQ,EAAK;AAC3D,EAAA,IAAAuE,MAAA,GAAoDvE,QAAQ,CAACE,OAAO,IAAI,EAAE;IAAAsE,oBAAA,GAAAD,MAAA,CAAlEpE,aAAa;AAAbA,IAAAA,aAAa,GAAAqE,oBAAA,KAAA,MAAA,GAAG,GAAG,GAAAA,oBAAA;IAAAC,mBAAA,GAAAF,MAAA,CAAEtE,YAAY;AAAZA,IAAAA,YAAY,GAAAwE,mBAAA,KAAA,MAAA,GAAG,GAAG,GAAAA,mBAAA;AAC/C,EAAA,IAAAC,MAAA,GAAkDrD,UAAU,CAACnB,OAAO,IAAI,EAAE;IAAAyE,mBAAA,GAAAD,MAAA,CAAlEhD,YAAY;AAAZA,IAAAA,YAAY,GAAAiD,mBAAA,KAAA,MAAA,GAAG,GAAG,GAAAA,mBAAA;IAAAC,kBAAA,GAAAF,MAAA,CAAEG,WAAW;AAAXA,IAAAA,WAAW,GAAAD,kBAAA,KAAA,MAAA,GAAG,GAAG,GAAAA,kBAAA;AAE7C,EAAA,IAAI3E,YAAY,IAAI4E,WAAW,IAAI1E,aAAa,IAAIuB,YAAY,EAAE;IAChE,OAAO;AAAEoD,MAAAA,QAAQ,EAAE7E;KAAc;EACnC,CAAC,MAAM,IAAIA,YAAY,GAAG4E,WAAW,IAAI1E,aAAa,IAAIuB,YAAY,EAAE;IACtE,OAAO;AAAEoD,MAAAA,QAAQ,EAAED;KAAa;EAClC,CAAC,MAAM,IAAI5E,YAAY,IAAI4E,WAAW,IAAI1E,aAAa,GAAGuB,YAAY,EAAE;AACtE,IAAA,IAAMoD,SAAQ,GAAI7E,YAAY,GAAGE,aAAa,GAAIuB,YAAY;IAE9D,OAAO;AAAEoD,MAAAA,QAAQ,EAARA;KAAU;AACrB,EAAA;;AAEA;EACA,IAAI7E,YAAY,GAAGE,aAAa,EAAE;IAChC,OAAO;AAAE2E,MAAAA,QAAQ,EAAED;KAAa;AAClC,EAAA;;AAEA;AACA,EAAA,IAAMC,QAAQ,GAAI7E,YAAY,GAAGE,aAAa,GAAIuB,YAAY;EAE9D,OAAO;AAAEoD,IAAAA,QAAQ,EAARA;GAAU;AACrB;;;;"}
@@ -1,21 +1,17 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
- var g = require('react');
4
+ var require$$0 = require('react');
5
+ var neetoAtoms = require('@bigbinary/neeto-atoms');
5
6
  var classnames = require('classnames');
6
7
  var neetoCist = require('@bigbinary/neeto-cist');
7
- var Button = require('@bigbinary/neetoui/Button');
8
- var Typography = require('@bigbinary/neetoui/Typography');
9
- var ProgressBar = require('@bigbinary/neetoui/ProgressBar');
10
8
  var ramda = require('ramda');
11
9
  var reactI18next = require('react-i18next');
12
- var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
13
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
14
- var reactDropzone = require('react-dropzone');
10
+ var useUploadDropzone = require('./useUploadDropzone-DMv8VMRF.js');
11
+ var initializers = require('@bigbinary/neeto-commons-frontend/v2/initializers');
15
12
  var i18next = require('i18next');
16
- var Toastr = require('@bigbinary/neetoui/Toastr');
17
- var imagekit_esm = require('./imagekit.esm-CisvUNYU.js');
18
13
  var jsxRuntime = require('react/jsx-runtime');
14
+ var imagekit_esm = require('./imagekit.esm-CisvUNYU.js');
19
15
 
20
16
  var DEFAULT_ALLOWED_IMAGE_TYPES = {
21
17
  "image/png": [".png"],
@@ -38,55 +34,17 @@ var getAllowedTypes = function getAllowedTypes(uploadConfig) {
38
34
  }), ramda.map(ramda.toUpper), ramda.join(", "))(uploadConfig.allowedImageTypes);
39
35
  };
40
36
 
41
- var handleDropRejected = function handleDropRejected(fileRejections) {
42
- fileRejections.map(function (_ref) {
43
- var errors = _ref.errors;
44
- return errors.map(function (_ref2) {
45
- var code = _ref2.code;
46
- return Toastr.error(imagekit_esm.FILE_ERRORS[code] || i18next.t("neetoImageUploader.imageUpload.genericError"));
47
- });
48
- });
49
- };
50
-
51
- var useUploadDropzone = function useUploadDropzone(_ref) {
52
- var _ref$uploadConfig = _ref.uploadConfig,
53
- uploadConfig = _ref$uploadConfig === void 0 ? {
54
- allowedImageTypes: [],
55
- maxImageSize: 0
56
- } : _ref$uploadConfig,
57
- _onDrop = _ref.onDrop,
58
- _ref$setImage = _ref.setImage,
59
- setImage = _ref$setImage === void 0 ? neetoCist.noop : _ref$setImage;
60
- var _useState = g.useState(0),
61
- _useState2 = _slicedToArray(_useState, 2),
62
- uploadProgress = _useState2[0],
63
- setUploadProgress = _useState2[1];
64
- var _useDropzone = reactDropzone.useDropzone({
65
- onDrop: function onDrop(acceptedFiles) {
66
- return _onDrop(acceptedFiles[0], setUploadProgress, setImage);
67
- },
68
- accept: uploadConfig === null || uploadConfig === void 0 ? void 0 : uploadConfig.allowedImageTypes,
69
- multiple: false,
70
- maxSize: uploadConfig.maxImageSize * 1048576,
71
- onDropRejected: handleDropRejected
72
- }),
73
- getRootProps = _useDropzone.getRootProps,
74
- getInputProps = _useDropzone.getInputProps,
75
- isDragActive = _useDropzone.isDragActive,
76
- open = _useDropzone.open;
77
- return {
78
- getRootProps: getRootProps,
79
- getInputProps: getInputProps,
80
- isDragActive: isDragActive,
81
- open: open,
82
- uploadProgress: uploadProgress,
83
- setUploadProgress: setUploadProgress
84
- };
85
- };
37
+ var DROPZONE_ROOT_DIV_CLASSNAME = "neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full w-full flex-col items-center justify-center gap-3 border border-dashed p-4 transition-all duration-300 ease-in-out 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
+ });
86
44
 
87
45
  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; }
88
46
  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; }
89
- var ImageDirectUpload = /*#__PURE__*/g.forwardRef(function (_ref, ref) {
47
+ var ImageDirectUpload = /*#__PURE__*/require$$0.forwardRef(function (_ref, ref) {
90
48
  var _ref$uploadConfig = _ref.uploadConfig,
91
49
  uploadConfig = _ref$uploadConfig === void 0 ? DEFAULT_UPLOAD_CONFIG : _ref$uploadConfig,
92
50
  _ref$onDrop = _ref.onDrop,
@@ -99,7 +57,7 @@ var ImageDirectUpload = /*#__PURE__*/g.forwardRef(function (_ref, ref) {
99
57
  _ref$isUploadDisabled = _ref.isUploadDisabled,
100
58
  isUploadDisabled = _ref$isUploadDisabled === void 0 ? false : _ref$isUploadDisabled,
101
59
  setImage = _ref.setImage;
102
- var _useUploadDropzone = useUploadDropzone({
60
+ var _useUploadDropzone = useUploadDropzone.useUploadDropzone({
103
61
  uploadConfig: uploadConfig,
104
62
  onDrop: onDrop,
105
63
  setImage: setImage
@@ -110,7 +68,7 @@ var ImageDirectUpload = /*#__PURE__*/g.forwardRef(function (_ref, ref) {
110
68
  open = _useUploadDropzone.open,
111
69
  uploadProgress = _useUploadDropzone.uploadProgress,
112
70
  setUploadProgress = _useUploadDropzone.setUploadProgress;
113
- g.useImperativeHandle(ref, function () {
71
+ require$$0.useImperativeHandle(ref, function () {
114
72
  return {
115
73
  upload: function upload(file) {
116
74
  return onDrop(file, setUploadProgress, setImage);
@@ -119,24 +77,24 @@ var ImageDirectUpload = /*#__PURE__*/g.forwardRef(function (_ref, ref) {
119
77
  });
120
78
  var shouldShowProgress = !!(uploadProgress && !ramda.equals(uploadProgress, 1));
121
79
  return /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({}, getRootProps()), {}, {
122
- className: classnames(imagekit_esm.DROPZONE_ROOT_DIV_CLASSNAME, {
80
+ className: classnames(DROPZONE_ROOT_DIV_CLASSNAME, {
123
81
  "neeto-ui-border-gray-300": !isDragActive,
124
82
  "neeto-ui-border-gray-700": isDragActive
125
83
  }),
126
- children: shouldShowProgress ? /*#__PURE__*/jsxRuntime.jsx(ProgressBar, {
127
- progressPercentage: uploadProgress,
128
- progressValue: "".concat(uploadProgress, "%")
84
+ children: shouldShowProgress ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Progress, {
85
+ progressValue: "".concat(uploadProgress, "%"),
86
+ value: uploadProgress
129
87
  }) : /*#__PURE__*/jsxRuntime.jsxs("div", {
130
88
  className: "flex flex-col space-y-1",
131
- children: [!isDisabled && /*#__PURE__*/jsxRuntime.jsx(Typography, {
89
+ children: [!isDisabled && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
132
90
  className: "neeto-ui-text-gray-800 text-center leading-4",
133
- style: "body2",
91
+ variant: "body2",
134
92
  children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
135
93
  i18nKey: "neetoImageUploader.imageUpload.dragAndDropOrBrowseFile",
136
94
  components: {
137
- span: /*#__PURE__*/jsxRuntime.jsx(Button, {
95
+ span: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
138
96
  "data-testid": "neeto-image-uploader-browse-text",
139
- style: "link",
97
+ variant: "link",
140
98
  onClick: function onClick(event) {
141
99
  event.stopPropagation();
142
100
  open();
@@ -144,8 +102,8 @@ var ImageDirectUpload = /*#__PURE__*/g.forwardRef(function (_ref, ref) {
144
102
  })
145
103
  }
146
104
  })
147
- }), setIsAssetLibraryOpen && /*#__PURE__*/jsxRuntime.jsx(Typography, {
148
- style: "body2",
105
+ }), setIsAssetLibraryOpen && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
106
+ variant: "body2",
149
107
  className: classnames("text-center leading-4", {
150
108
  "pointer-events-none": isUploadDisabled
151
109
  }),
@@ -156,20 +114,19 @@ var ImageDirectUpload = /*#__PURE__*/g.forwardRef(function (_ref, ref) {
156
114
  children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
157
115
  i18nKey: "neetoImageUploader.imageUpload.upload",
158
116
  components: {
159
- span: /*#__PURE__*/jsxRuntime.jsx(Button, {
117
+ span: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
160
118
  "data-testid": "open-asset-library-button",
161
- style: "link"
119
+ variant: "link"
162
120
  })
163
121
  }
164
122
  })
165
123
  }), /*#__PURE__*/jsxRuntime.jsx("input", _objectSpread(_objectSpread({}, getInputProps()), {}, {
166
124
  "data-testid": "neeto-image-uploader-file-input",
167
125
  disabled: isDisabled || isUploadDisabled
168
- })), /*#__PURE__*/jsxRuntime.jsx(Typography, {
126
+ })), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
169
127
  className: "neeto-ui-text-gray-700 text-center leading-4",
170
128
  "data-testid": "neeto-image-uploader-restriction-message",
171
- lineHeight: "snug",
172
- style: "nano",
129
+ variant: "nano",
173
130
  children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
174
131
  i18nKey: "neetoImageUploader.imageUpload.restrictionMessage",
175
132
  values: {
@@ -177,11 +134,10 @@ var ImageDirectUpload = /*#__PURE__*/g.forwardRef(function (_ref, ref) {
177
134
  size: uploadConfig === null || uploadConfig === void 0 ? void 0 : uploadConfig.maxImageSize
178
135
  }
179
136
  })
180
- }), neetoCist.isPresent(defaultImageSize) && /*#__PURE__*/jsxRuntime.jsx(Typography, {
137
+ }), neetoCist.isPresent(defaultImageSize) && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
181
138
  className: "neeto-ui-text-gray-700 text-center leading-4",
182
139
  "data-testid": "neeto-image-uploader-ideal-image-size-info-text",
183
- lineHeight: "snug",
184
- style: "nano",
140
+ variant: "nano",
185
141
  children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
186
142
  i18nKey: "neetoImageUploader.imageUpload.idealImageSizeInfo",
187
143
  values: _objectSpread({}, defaultImageSize)
@@ -471,5 +427,4 @@ exports.getWrapperRefStyles = getWrapperRefStyles;
471
427
  exports.isItemsCenter = isItemsCenter;
472
428
  exports.isNilOrEmpty = isNilOrEmpty;
473
429
  exports.isNotNilOrEmpty = isNotNilOrEmpty;
474
- exports.useUploadDropzone = useUploadDropzone;
475
- //# sourceMappingURL=utils-C0TymZ5r.js.map
430
+ //# sourceMappingURL=utils-De7yUxgQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-De7yUxgQ.js","sources":["../app/javascript/src/v2/components/ImageUploader/constants.js","../app/javascript/src/v2/components/ImageUploader/utils.js","../app/javascript/src/v2/components/common/constants.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 { 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 { t } from \"i18next\";\n\nexport const DROPZONE_ROOT_DIV_CLASSNAME =\n \"neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full w-full flex-col items-center justify-center gap-3 border border-dashed p-4 transition-all duration-300 ease-in-out 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 { 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 \"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 \"neeto-ui-border-gray-300\": !isDragActive,\n \"neeto-ui-border-gray-700\": 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=\"neeto-ui-text-gray-800 text-center leading-4\"\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=\"neeto-ui-text-gray-700 text-center leading-4\"\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=\"neeto-ui-text-gray-700 text-center leading-4\"\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 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 \"neeto-ui-border-gray-300 neeto-ui-bg-gray-100 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative flex h-full w-full flex-col items-center justify-center gap-5 border border-dashed p-2 transition-all duration-300 ease-in-out\";\n","import ImageKit from \"imagekit-javascript\";\nimport { isPresent } from \"neetocist\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nconst getWholeNumberAspectRatio = ({ width, height }) => {\n if (width === height) return { width: 1, height: 1 };\n\n const gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\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 { width: 16, height: 9 };\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","DROPZONE_ROOT_DIV_CLASSNAME","t","ImageDirectUpload","forwardRef","_ref","ref","_ref$uploadConfig","_ref$onDrop","onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_ref$defaultImageSize","defaultImageSize","_ref$isUploadDisabled","isUploadDisabled","setImage","_useUploadDropzone","useUploadDropzone","getRootProps","getInputProps","isDragActive","open","uploadProgress","setUploadProgress","useImperativeHandle","upload","file","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","children","Progress","progressValue","concat","value","_jsxs","Typography","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","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","gcd","a","b","divisor","getCropValues","_ref2","crop","imageRef","naturalWidth","current","naturalHeight","getImageKitCroppedURL","_ref3","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","isNil","isEmpty","isNotNilOrEmpty","isItemsCenter","_ref4","wrapperRef","_ref5","imageHeight","imageWidth","wrapperHeight","clientHeight","calculateCloudFlareImageCroppedValues","_ref6","image","metadata","sourceX","sourceY","sourceWidth","sourceHeight","distanceFromRight","Math","abs","distanceFromBottom","top","right","bottom","left","getCloudFlareCroppedURL","_ref7","_calculateCloudFlareI","trimValues","replace","getAspectRatio","_ref8","fixedAspectRatio","imageSize","getPixels","percentage","pixel","round","getPercentage","full","getInitialCropSize","_ref9","aspectRatioFactor","maxCropWidth","imageAspectRatio","maxCropHeight","cropWidth","cropHeight","min","getHeightFromAspectRatio","aspectRatio","getWidthFromAspectRatio","getWrapperRefStyles","_ref10","_ref10$naturalHeight","_ref10$naturalWidth","_ref11","_ref11$clientHeight","_ref11$clientWidth","clientWidth","maxWidth"],"mappings":"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"}