@bigbinary/neeto-image-uploader-frontend 2.3.22 → 2.3.25

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 (43) hide show
  1. package/README.md +4 -0
  2. package/dist/AssetLibrary.js +4 -4
  3. package/dist/BasicImageUploader.js +2 -2
  4. package/dist/ImageForm.js +53 -22
  5. package/dist/ImageForm.js.map +1 -1
  6. package/dist/ImageUploader.js +8 -6
  7. package/dist/ImageUploader.js.map +1 -1
  8. package/dist/cjs/AssetLibrary.js +4 -4
  9. package/dist/cjs/BasicImageUploader.js +2 -2
  10. package/dist/cjs/ImageForm.js +53 -22
  11. package/dist/cjs/ImageForm.js.map +1 -1
  12. package/dist/cjs/ImageUploader.js +8 -6
  13. package/dist/cjs/ImageUploader.js.map +1 -1
  14. package/dist/cjs/hooks.js +3 -3
  15. package/dist/cjs/index.js +6 -5
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/hooks.js +3 -3
  18. package/dist/{index-B1JijZPf.js → index-1joql7CE.js} +2 -2
  19. package/dist/index-1joql7CE.js.map +1 -0
  20. package/dist/{index-CmR3zLng.js → index-C7OXkHLU.js} +2 -2
  21. package/dist/index-C7OXkHLU.js.map +1 -0
  22. package/dist/{index-C7sAzF3s.js → index-CGN8PiVt.js} +4 -4
  23. package/dist/{index-C7sAzF3s.js.map → index-CGN8PiVt.js.map} +1 -1
  24. package/dist/{index-DspO4oaA.js → index-F2eQ4VRQ.js} +4 -4
  25. package/dist/{index-DspO4oaA.js.map → index-F2eQ4VRQ.js.map} +1 -1
  26. package/dist/index.js +6 -5
  27. package/dist/index.js.map +1 -1
  28. package/dist/{useImageUploader-YWyed_UV.js → useImageUploader-6Su_fSo7.js} +2 -2
  29. package/dist/{useImageUploader-YWyed_UV.js.map → useImageUploader-6Su_fSo7.js.map} +1 -1
  30. package/dist/{useImageUploader-BfrsCPBL.js → useImageUploader-BhXn2rPO.js} +2 -2
  31. package/dist/{useImageUploader-BfrsCPBL.js.map → useImageUploader-BhXn2rPO.js.map} +1 -1
  32. package/dist/{useProfileImageUpload-BDGk2PWz.js → useProfileImageUpload-DHcyE5Xl.js} +3 -3
  33. package/dist/{useProfileImageUpload-BDGk2PWz.js.map → useProfileImageUpload-DHcyE5Xl.js.map} +1 -1
  34. package/dist/{useProfileImageUpload-B3zr0KBe.js → useProfileImageUpload-Q6eh_T9J.js} +3 -3
  35. package/dist/{useProfileImageUpload-B3zr0KBe.js.map → useProfileImageUpload-Q6eh_T9J.js.map} +1 -1
  36. package/dist/{utils-BoO2mwcq.js → utils-C6ND8KBv.js} +2 -2
  37. package/dist/{utils-BoO2mwcq.js.map → utils-C6ND8KBv.js.map} +1 -1
  38. package/dist/{utils-RGGHgnQc.js → utils-DmLKp6ub.js} +2 -2
  39. package/dist/{utils-RGGHgnQc.js.map → utils-DmLKp6ub.js.map} +1 -1
  40. package/package.json +9 -9
  41. package/types.d.ts +6 -0
  42. package/dist/index-B1JijZPf.js.map +0 -1
  43. package/dist/index-CmR3zLng.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils-BoO2mwcq.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/constants.js","../app/javascript/src/components/ImageEditor/utils.js"],"sourcesContent":["import { globalProps } from \"neetocommons/initializers\";\n\nexport const DEFAULT_ALLOWED_IMAGE_TYPES = {\n \"image/png\": [\".png\"],\n \"image/jpg\": [\".jpg\", \".jpeg\"],\n \"image/gif\": [\".gif\"],\n \"image/svg+xml\": [\".svg\"],\n};\n\nexport const DEFAULT_UPLOAD_CONFIG = {\n maxImageSize: globalProps.endUserUploadedFileSizeLimitInMb,\n allowedImageTypes: DEFAULT_ALLOWED_IMAGE_TYPES,\n};\n\nexport const OPTION_KEYS = { asset: \"asset\", remove: \"remove\" };\n","import { 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 { useDropzone } from \"react-dropzone\";\n\nimport { handleDropRejected } from \"components/common/utils\";\n\nconst useUploadDropzone = ({\n uploadConfig = { allowedImageTypes: [], maxImageSize: 0 },\n onDrop,\n}) => {\n const [uploadProgress, setUploadProgress] = useState(0);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop: acceptedFiles => onDrop(acceptedFiles[0], setUploadProgress),\n accept: uploadConfig?.allowedImageTypes,\n multiple: false,\n maxSize: uploadConfig.maxImageSize * 1_048_576,\n onDropRejected: handleDropRejected,\n });\n\n return {\n getRootProps,\n getInputProps,\n isDragActive,\n uploadProgress,\n };\n};\n\nexport default useUploadDropzone;\n","import 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 = ({\n uploadConfig = DEFAULT_UPLOAD_CONFIG,\n onDrop = noop,\n isDisabled = false,\n setIsAssetLibraryOpen,\n defaultImageSize = {},\n}) => {\n const { getRootProps, getInputProps, isDragActive, uploadProgress } =\n useUploadDropzone({ uploadConfig, onDrop });\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-cy=\"neeto-image-uploader-browse-text\"\n style=\"link\"\n />\n ),\n }}\n />\n </Typography>\n )}\n {setIsAssetLibraryOpen && (\n <Typography\n className=\"text-center leading-4\"\n style=\"body2\"\n onClick={e => {\n e.stopPropagation();\n setIsAssetLibraryOpen(true);\n }}\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.selectImagefromImageLibrary\"\n components={{\n span: (\n <Button data-cy=\"open-asset-library-button\" style=\"link\" />\n ),\n }}\n />\n </Typography>\n )}\n <input\n {...getInputProps()}\n data-cy=\"neeto-image-uploader-file-input\"\n disabled={isDisabled}\n />\n <Typography\n className=\"neeto-ui-text-gray-700 text-center leading-4\"\n data-cy=\"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-cy=\"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\nexport default ImageDirectUpload;\n","import i18next from \"i18next\";\nimport { globalProps } from \"neetocommons/initializers\";\n\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nexport const UNSPLASH_DEFAULT_NAME = \"Unsplash-asset\";\n\nexport const UNSPLASH_URL = \"https://unsplash.com/\";\n\nexport const IMAGES_PER_PAGE = 30;\n\nexport const UNSPLASH_DEFAULT_REQUEST_CONFIG = {\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"GET\",\n },\n responseType: \"blob\",\n};\n\nexport const TABS = [\n {\n label: i18next.t(\"neetoImageUploader.labels.uploadImage\"),\n key: \"upload\",\n dataCy: \"neeto-image-uploader-upload-image-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.myImages\"),\n key: \"images\",\n dataCy: \"neeto-image-uploader-my-images-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.searchTheWeb\"),\n key: \"unsplash\",\n dataCy: \"neeto-image-uploader-unsplash-tab\",\n },\n];\n\nexport const 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 ? \"neeto_image_uploader_engine/cloudflare_images\"\n : \"neeto_image_uploader_engine/imagekit/fetch\";\n\nexport const ASSETS_FETCH_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/fetch\"\n : IMAGE_UPLOAD_SERVICE_URL;\n\nexport const ASSETS_DESTROY_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/bulk_destroy\"\n : \"neeto_image_uploader_engine/imagekit/bulk_destroy\";\n\nexport const IMAGE_WRAPPER_CLASSNAME =\n \"neeto-ui-border-gray-300 neeto-ui-bg-gray-100 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative flex h-full w-full flex-col items-center justify-center gap-5 border border-dashed p-2 transition-all duration-300 ease-in-out\";\n","import ImageKit from \"imagekit-javascript\";\nimport { isPresent } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nconst getWholeNumberAspectRatio = ({ width, height }) => {\n const gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\n\n const divisor = gcd(width, height);\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","handleDropRejected","fileRejections","_ref","errors","_ref2","code","Toastr","error","FILE_ERRORS","t","useUploadDropzone","_ref$uploadConfig","onDrop","_useState","useState","_useState2","_slicedToArray","uploadProgress","setUploadProgress","_useDropzone","useDropzone","acceptedFiles","accept","multiple","maxSize","onDropRejected","getRootProps","getInputProps","isDragActive","ImageDirectUpload","_ref$onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_ref$defaultImageSize","defaultImageSize","_useUploadDropzone","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","DROPZONE_ROOT_DIV_CLASSNAME","children","ProgressBar","progressPercentage","progressValue","concat","_jsxs","Typography","style","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","isPresent","UNSPLASH_DEFAULT_NAME","UNSPLASH_URL","IMAGES_PER_PAGE","UNSPLASH_DEFAULT_REQUEST_CONFIG","headers","responseType","TABS","label","i18next","key","dataCy","DEFAULT_CROP_CONFIG","unit","height","width","x","y","INFINITE_SCROLLER_SIZES","columns","gutter","mq","INFINITE_SCROLLER_STYLE","IMAGE_UPLOAD_SERVICE_URL","assetsUploaderService","CLOUD_FLARE","ASSETS_FETCH_URL","IS_DEVELOPMENT_OR_HEROKU_ENV","ASSETS_DESTROY_URL","IMAGE_WRAPPER_CLASSNAME","getWholeNumberAspectRatio","gcd","a","b","divisor","getCropValues","crop","imageRef","naturalWidth","current","naturalHeight","getImageKitCroppedURL","_ref3","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","value","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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"}
1
+ {"version":3,"file":"utils-C6ND8KBv.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/constants.js","../app/javascript/src/components/ImageEditor/utils.js"],"sourcesContent":["import { globalProps } from \"neetocommons/initializers\";\n\nexport const DEFAULT_ALLOWED_IMAGE_TYPES = {\n \"image/png\": [\".png\"],\n \"image/jpg\": [\".jpg\", \".jpeg\"],\n \"image/gif\": [\".gif\"],\n \"image/svg+xml\": [\".svg\"],\n};\n\nexport const DEFAULT_UPLOAD_CONFIG = {\n maxImageSize: globalProps.endUserUploadedFileSizeLimitInMb,\n allowedImageTypes: DEFAULT_ALLOWED_IMAGE_TYPES,\n};\n\nexport const OPTION_KEYS = { asset: \"asset\", remove: \"remove\" };\n","import { 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 { useDropzone } from \"react-dropzone\";\n\nimport { handleDropRejected } from \"components/common/utils\";\n\nconst useUploadDropzone = ({\n uploadConfig = { allowedImageTypes: [], maxImageSize: 0 },\n onDrop,\n}) => {\n const [uploadProgress, setUploadProgress] = useState(0);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop: acceptedFiles => onDrop(acceptedFiles[0], setUploadProgress),\n accept: uploadConfig?.allowedImageTypes,\n multiple: false,\n maxSize: uploadConfig.maxImageSize * 1_048_576,\n onDropRejected: handleDropRejected,\n });\n\n return {\n getRootProps,\n getInputProps,\n isDragActive,\n uploadProgress,\n };\n};\n\nexport default useUploadDropzone;\n","import 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 = ({\n uploadConfig = DEFAULT_UPLOAD_CONFIG,\n onDrop = noop,\n isDisabled = false,\n setIsAssetLibraryOpen,\n defaultImageSize = {},\n}) => {\n const { getRootProps, getInputProps, isDragActive, uploadProgress } =\n useUploadDropzone({ uploadConfig, onDrop });\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-cy=\"neeto-image-uploader-browse-text\"\n style=\"link\"\n />\n ),\n }}\n />\n </Typography>\n )}\n {setIsAssetLibraryOpen && (\n <Typography\n className=\"text-center leading-4\"\n style=\"body2\"\n onClick={e => {\n e.stopPropagation();\n setIsAssetLibraryOpen(true);\n }}\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.selectImagefromImageLibrary\"\n components={{\n span: (\n <Button data-cy=\"open-asset-library-button\" style=\"link\" />\n ),\n }}\n />\n </Typography>\n )}\n <input\n {...getInputProps()}\n data-cy=\"neeto-image-uploader-file-input\"\n disabled={isDisabled}\n />\n <Typography\n className=\"neeto-ui-text-gray-700 text-center leading-4\"\n data-cy=\"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-cy=\"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\nexport default ImageDirectUpload;\n","import i18next from \"i18next\";\nimport { globalProps } from \"neetocommons/initializers\";\n\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nexport const UNSPLASH_DEFAULT_NAME = \"Unsplash-asset\";\n\nexport const UNSPLASH_URL = \"https://unsplash.com/\";\n\nexport const IMAGES_PER_PAGE = 30;\n\nexport const UNSPLASH_DEFAULT_REQUEST_CONFIG = {\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"GET\",\n },\n responseType: \"blob\",\n};\n\nexport const TABS = [\n {\n label: i18next.t(\"neetoImageUploader.labels.uploadImage\"),\n key: \"upload\",\n dataCy: \"neeto-image-uploader-upload-image-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.myImages\"),\n key: \"images\",\n dataCy: \"neeto-image-uploader-my-images-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.searchTheWeb\"),\n key: \"unsplash\",\n dataCy: \"neeto-image-uploader-unsplash-tab\",\n },\n];\n\nexport const 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 ? \"neeto_image_uploader_engine/cloudflare_images\"\n : \"neeto_image_uploader_engine/imagekit/fetch\";\n\nexport const ASSETS_FETCH_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/fetch\"\n : IMAGE_UPLOAD_SERVICE_URL;\n\nexport const ASSETS_DESTROY_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/bulk_destroy\"\n : \"neeto_image_uploader_engine/imagekit/bulk_destroy\";\n\nexport const IMAGE_WRAPPER_CLASSNAME =\n \"neeto-ui-border-gray-300 neeto-ui-bg-gray-100 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative flex h-full w-full flex-col items-center justify-center gap-5 border border-dashed p-2 transition-all duration-300 ease-in-out\";\n","import ImageKit from \"imagekit-javascript\";\nimport { isPresent } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nconst getWholeNumberAspectRatio = ({ width, height }) => {\n const gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\n\n const divisor = gcd(width, height);\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","handleDropRejected","fileRejections","_ref","errors","_ref2","code","Toastr","error","FILE_ERRORS","t","useUploadDropzone","_ref$uploadConfig","onDrop","_useState","useState","_useState2","_slicedToArray","uploadProgress","setUploadProgress","_useDropzone","useDropzone","acceptedFiles","accept","multiple","maxSize","onDropRejected","getRootProps","getInputProps","isDragActive","ImageDirectUpload","_ref$onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_ref$defaultImageSize","defaultImageSize","_useUploadDropzone","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","DROPZONE_ROOT_DIV_CLASSNAME","children","ProgressBar","progressPercentage","progressValue","concat","_jsxs","Typography","style","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","isPresent","UNSPLASH_DEFAULT_NAME","UNSPLASH_URL","IMAGES_PER_PAGE","UNSPLASH_DEFAULT_REQUEST_CONFIG","headers","responseType","TABS","label","i18next","key","dataCy","DEFAULT_CROP_CONFIG","unit","height","width","x","y","INFINITE_SCROLLER_SIZES","columns","gutter","mq","INFINITE_SCROLLER_STYLE","IMAGE_UPLOAD_SERVICE_URL","assetsUploaderService","CLOUD_FLARE","ASSETS_FETCH_URL","IS_DEVELOPMENT_OR_HEROKU_ENV","ASSETS_DESTROY_URL","IMAGE_WRAPPER_CLASSNAME","getWholeNumberAspectRatio","gcd","a","b","divisor","getCropValues","crop","imageRef","naturalWidth","current","naturalHeight","getImageKitCroppedURL","_ref3","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","value","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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"}
@@ -12,7 +12,7 @@ import { useState } from 'react';
12
12
  import { useDropzone } from 'react-dropzone';
13
13
  import i18next, { t } from 'i18next';
14
14
  import Toastr from '@bigbinary/neetoui/Toastr';
15
- import { F as FILE_ERRORS, D as DROPZONE_ROOT_DIV_CLASSNAME, C as CLOUD_FLARE, I as IS_DEVELOPMENT_OR_HEROKU_ENV, a as ImageKit } from './index-B1JijZPf.js';
15
+ import { F as FILE_ERRORS, D as DROPZONE_ROOT_DIV_CLASSNAME, C as CLOUD_FLARE, I as IS_DEVELOPMENT_OR_HEROKU_ENV, a as ImageKit } from './index-1joql7CE.js';
16
16
  import { jsx, jsxs } from 'react/jsx-runtime';
17
17
 
18
18
  var DEFAULT_ALLOWED_IMAGE_TYPES = {
@@ -412,4 +412,4 @@ var getWrapperRefStyles = function getWrapperRefStyles(wrapperRef, imageRef) {
412
412
  };
413
413
 
414
414
  export { ASSETS_DESTROY_URL as A, DEFAULT_UPLOAD_CONFIG as D, IMAGE_WRAPPER_CLASSNAME as I, OPTION_KEYS as O, TABS as T, UNSPLASH_DEFAULT_NAME as U, isNotNilOrEmpty as a, ImageDirectUpload as b, DEFAULT_CROP_CONFIG as c, getPixels as d, getHeightFromAspectRatio as e, getWidthFromAspectRatio as f, getAspectRatio as g, getInitialCropSize as h, isNilOrEmpty as i, getPercentage as j, isItemsCenter as k, getWrapperRefStyles as l, getCloudFlareCroppedURL as m, getImageKitCroppedURL as n, getCropValues as o, IMAGES_PER_PAGE as p, INFINITE_SCROLLER_SIZES as q, INFINITE_SCROLLER_STYLE as r, ASSETS_FETCH_URL as s, UNSPLASH_DEFAULT_REQUEST_CONFIG as t, useUploadDropzone as u, UNSPLASH_URL as v };
415
- //# sourceMappingURL=utils-RGGHgnQc.js.map
415
+ //# sourceMappingURL=utils-DmLKp6ub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils-RGGHgnQc.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/constants.js","../app/javascript/src/components/ImageEditor/utils.js"],"sourcesContent":["import { globalProps } from \"neetocommons/initializers\";\n\nexport const DEFAULT_ALLOWED_IMAGE_TYPES = {\n \"image/png\": [\".png\"],\n \"image/jpg\": [\".jpg\", \".jpeg\"],\n \"image/gif\": [\".gif\"],\n \"image/svg+xml\": [\".svg\"],\n};\n\nexport const DEFAULT_UPLOAD_CONFIG = {\n maxImageSize: globalProps.endUserUploadedFileSizeLimitInMb,\n allowedImageTypes: DEFAULT_ALLOWED_IMAGE_TYPES,\n};\n\nexport const OPTION_KEYS = { asset: \"asset\", remove: \"remove\" };\n","import { 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 { useDropzone } from \"react-dropzone\";\n\nimport { handleDropRejected } from \"components/common/utils\";\n\nconst useUploadDropzone = ({\n uploadConfig = { allowedImageTypes: [], maxImageSize: 0 },\n onDrop,\n}) => {\n const [uploadProgress, setUploadProgress] = useState(0);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop: acceptedFiles => onDrop(acceptedFiles[0], setUploadProgress),\n accept: uploadConfig?.allowedImageTypes,\n multiple: false,\n maxSize: uploadConfig.maxImageSize * 1_048_576,\n onDropRejected: handleDropRejected,\n });\n\n return {\n getRootProps,\n getInputProps,\n isDragActive,\n uploadProgress,\n };\n};\n\nexport default useUploadDropzone;\n","import 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 = ({\n uploadConfig = DEFAULT_UPLOAD_CONFIG,\n onDrop = noop,\n isDisabled = false,\n setIsAssetLibraryOpen,\n defaultImageSize = {},\n}) => {\n const { getRootProps, getInputProps, isDragActive, uploadProgress } =\n useUploadDropzone({ uploadConfig, onDrop });\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-cy=\"neeto-image-uploader-browse-text\"\n style=\"link\"\n />\n ),\n }}\n />\n </Typography>\n )}\n {setIsAssetLibraryOpen && (\n <Typography\n className=\"text-center leading-4\"\n style=\"body2\"\n onClick={e => {\n e.stopPropagation();\n setIsAssetLibraryOpen(true);\n }}\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.selectImagefromImageLibrary\"\n components={{\n span: (\n <Button data-cy=\"open-asset-library-button\" style=\"link\" />\n ),\n }}\n />\n </Typography>\n )}\n <input\n {...getInputProps()}\n data-cy=\"neeto-image-uploader-file-input\"\n disabled={isDisabled}\n />\n <Typography\n className=\"neeto-ui-text-gray-700 text-center leading-4\"\n data-cy=\"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-cy=\"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\nexport default ImageDirectUpload;\n","import i18next from \"i18next\";\nimport { globalProps } from \"neetocommons/initializers\";\n\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nexport const UNSPLASH_DEFAULT_NAME = \"Unsplash-asset\";\n\nexport const UNSPLASH_URL = \"https://unsplash.com/\";\n\nexport const IMAGES_PER_PAGE = 30;\n\nexport const UNSPLASH_DEFAULT_REQUEST_CONFIG = {\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"GET\",\n },\n responseType: \"blob\",\n};\n\nexport const TABS = [\n {\n label: i18next.t(\"neetoImageUploader.labels.uploadImage\"),\n key: \"upload\",\n dataCy: \"neeto-image-uploader-upload-image-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.myImages\"),\n key: \"images\",\n dataCy: \"neeto-image-uploader-my-images-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.searchTheWeb\"),\n key: \"unsplash\",\n dataCy: \"neeto-image-uploader-unsplash-tab\",\n },\n];\n\nexport const 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 ? \"neeto_image_uploader_engine/cloudflare_images\"\n : \"neeto_image_uploader_engine/imagekit/fetch\";\n\nexport const ASSETS_FETCH_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/fetch\"\n : IMAGE_UPLOAD_SERVICE_URL;\n\nexport const ASSETS_DESTROY_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/bulk_destroy\"\n : \"neeto_image_uploader_engine/imagekit/bulk_destroy\";\n\nexport const IMAGE_WRAPPER_CLASSNAME =\n \"neeto-ui-border-gray-300 neeto-ui-bg-gray-100 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative flex h-full w-full flex-col items-center justify-center gap-5 border border-dashed p-2 transition-all duration-300 ease-in-out\";\n","import ImageKit from \"imagekit-javascript\";\nimport { isPresent } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nconst getWholeNumberAspectRatio = ({ width, height }) => {\n const gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\n\n const divisor = gcd(width, height);\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","handleDropRejected","fileRejections","_ref","errors","_ref2","code","Toastr","error","FILE_ERRORS","t","useUploadDropzone","_ref$uploadConfig","onDrop","_useState","useState","_useState2","_slicedToArray","uploadProgress","setUploadProgress","_useDropzone","useDropzone","acceptedFiles","accept","multiple","maxSize","onDropRejected","getRootProps","getInputProps","isDragActive","ImageDirectUpload","_ref$onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_ref$defaultImageSize","defaultImageSize","_useUploadDropzone","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","DROPZONE_ROOT_DIV_CLASSNAME","children","ProgressBar","progressPercentage","progressValue","concat","_jsxs","Typography","style","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","isPresent","UNSPLASH_DEFAULT_NAME","UNSPLASH_URL","IMAGES_PER_PAGE","UNSPLASH_DEFAULT_REQUEST_CONFIG","headers","responseType","TABS","label","i18next","key","dataCy","DEFAULT_CROP_CONFIG","unit","height","width","x","y","INFINITE_SCROLLER_SIZES","columns","gutter","mq","INFINITE_SCROLLER_STYLE","IMAGE_UPLOAD_SERVICE_URL","assetsUploaderService","CLOUD_FLARE","ASSETS_FETCH_URL","IS_DEVELOPMENT_OR_HEROKU_ENV","ASSETS_DESTROY_URL","IMAGE_WRAPPER_CLASSNAME","getWholeNumberAspectRatio","gcd","a","b","divisor","getCropValues","crop","imageRef","naturalWidth","current","naturalHeight","getImageKitCroppedURL","_ref3","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","value","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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"}
1
+ {"version":3,"file":"utils-DmLKp6ub.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/constants.js","../app/javascript/src/components/ImageEditor/utils.js"],"sourcesContent":["import { globalProps } from \"neetocommons/initializers\";\n\nexport const DEFAULT_ALLOWED_IMAGE_TYPES = {\n \"image/png\": [\".png\"],\n \"image/jpg\": [\".jpg\", \".jpeg\"],\n \"image/gif\": [\".gif\"],\n \"image/svg+xml\": [\".svg\"],\n};\n\nexport const DEFAULT_UPLOAD_CONFIG = {\n maxImageSize: globalProps.endUserUploadedFileSizeLimitInMb,\n allowedImageTypes: DEFAULT_ALLOWED_IMAGE_TYPES,\n};\n\nexport const OPTION_KEYS = { asset: \"asset\", remove: \"remove\" };\n","import { 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 { useDropzone } from \"react-dropzone\";\n\nimport { handleDropRejected } from \"components/common/utils\";\n\nconst useUploadDropzone = ({\n uploadConfig = { allowedImageTypes: [], maxImageSize: 0 },\n onDrop,\n}) => {\n const [uploadProgress, setUploadProgress] = useState(0);\n\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\n onDrop: acceptedFiles => onDrop(acceptedFiles[0], setUploadProgress),\n accept: uploadConfig?.allowedImageTypes,\n multiple: false,\n maxSize: uploadConfig.maxImageSize * 1_048_576,\n onDropRejected: handleDropRejected,\n });\n\n return {\n getRootProps,\n getInputProps,\n isDragActive,\n uploadProgress,\n };\n};\n\nexport default useUploadDropzone;\n","import 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 = ({\n uploadConfig = DEFAULT_UPLOAD_CONFIG,\n onDrop = noop,\n isDisabled = false,\n setIsAssetLibraryOpen,\n defaultImageSize = {},\n}) => {\n const { getRootProps, getInputProps, isDragActive, uploadProgress } =\n useUploadDropzone({ uploadConfig, onDrop });\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-cy=\"neeto-image-uploader-browse-text\"\n style=\"link\"\n />\n ),\n }}\n />\n </Typography>\n )}\n {setIsAssetLibraryOpen && (\n <Typography\n className=\"text-center leading-4\"\n style=\"body2\"\n onClick={e => {\n e.stopPropagation();\n setIsAssetLibraryOpen(true);\n }}\n >\n <Trans\n i18nKey=\"neetoImageUploader.imageUpload.selectImagefromImageLibrary\"\n components={{\n span: (\n <Button data-cy=\"open-asset-library-button\" style=\"link\" />\n ),\n }}\n />\n </Typography>\n )}\n <input\n {...getInputProps()}\n data-cy=\"neeto-image-uploader-file-input\"\n disabled={isDisabled}\n />\n <Typography\n className=\"neeto-ui-text-gray-700 text-center leading-4\"\n data-cy=\"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-cy=\"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\nexport default ImageDirectUpload;\n","import i18next from \"i18next\";\nimport { globalProps } from \"neetocommons/initializers\";\n\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nexport const UNSPLASH_DEFAULT_NAME = \"Unsplash-asset\";\n\nexport const UNSPLASH_URL = \"https://unsplash.com/\";\n\nexport const IMAGES_PER_PAGE = 30;\n\nexport const UNSPLASH_DEFAULT_REQUEST_CONFIG = {\n headers: {\n \"Access-Control-Allow-Origin\": \"*\",\n \"Access-Control-Allow-Methods\": \"GET\",\n },\n responseType: \"blob\",\n};\n\nexport const TABS = [\n {\n label: i18next.t(\"neetoImageUploader.labels.uploadImage\"),\n key: \"upload\",\n dataCy: \"neeto-image-uploader-upload-image-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.myImages\"),\n key: \"images\",\n dataCy: \"neeto-image-uploader-my-images-tab\",\n },\n {\n label: i18next.t(\"neetoImageUploader.labels.searchTheWeb\"),\n key: \"unsplash\",\n dataCy: \"neeto-image-uploader-unsplash-tab\",\n },\n];\n\nexport const 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 ? \"neeto_image_uploader_engine/cloudflare_images\"\n : \"neeto_image_uploader_engine/imagekit/fetch\";\n\nexport const ASSETS_FETCH_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/fetch\"\n : IMAGE_UPLOAD_SERVICE_URL;\n\nexport const ASSETS_DESTROY_URL = IS_DEVELOPMENT_OR_HEROKU_ENV\n ? \"neeto_image_uploader_engine/development/bulk_destroy\"\n : \"neeto_image_uploader_engine/imagekit/bulk_destroy\";\n\nexport const IMAGE_WRAPPER_CLASSNAME =\n \"neeto-ui-border-gray-300 neeto-ui-bg-gray-100 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-lg relative flex h-full w-full flex-col items-center justify-center gap-5 border border-dashed p-2 transition-all duration-300 ease-in-out\";\n","import ImageKit from \"imagekit-javascript\";\nimport { isPresent } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nconst getWholeNumberAspectRatio = ({ width, height }) => {\n const gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\n\n const divisor = gcd(width, height);\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","handleDropRejected","fileRejections","_ref","errors","_ref2","code","Toastr","error","FILE_ERRORS","t","useUploadDropzone","_ref$uploadConfig","onDrop","_useState","useState","_useState2","_slicedToArray","uploadProgress","setUploadProgress","_useDropzone","useDropzone","acceptedFiles","accept","multiple","maxSize","onDropRejected","getRootProps","getInputProps","isDragActive","ImageDirectUpload","_ref$onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_ref$defaultImageSize","defaultImageSize","_useUploadDropzone","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","DROPZONE_ROOT_DIV_CLASSNAME","children","ProgressBar","progressPercentage","progressValue","concat","_jsxs","Typography","style","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","isPresent","UNSPLASH_DEFAULT_NAME","UNSPLASH_URL","IMAGES_PER_PAGE","UNSPLASH_DEFAULT_REQUEST_CONFIG","headers","responseType","TABS","label","i18next","key","dataCy","DEFAULT_CROP_CONFIG","unit","height","width","x","y","INFINITE_SCROLLER_SIZES","columns","gutter","mq","INFINITE_SCROLLER_STYLE","IMAGE_UPLOAD_SERVICE_URL","assetsUploaderService","CLOUD_FLARE","ASSETS_FETCH_URL","IS_DEVELOPMENT_OR_HEROKU_ENV","ASSETS_DESTROY_URL","IMAGE_WRAPPER_CLASSNAME","getWholeNumberAspectRatio","gcd","a","b","divisor","getCropValues","crop","imageRef","naturalWidth","current","naturalHeight","getImageKitCroppedURL","_ref3","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","value","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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-image-uploader-frontend",
3
- "version": "2.3.22",
3
+ "version": "2.3.25",
4
4
  "license": "UNLICENSED",
5
5
  "bugs": {
6
6
  "url": "https://github.com/bigbinary/neeto-image-uploader-nano/issues"
@@ -68,13 +68,13 @@
68
68
  "@bigbinary/babel-preset-neeto": "^1.0.3",
69
69
  "@bigbinary/eslint-plugin-neeto": "1.7.0",
70
70
  "@bigbinary/neeto-cist": "1.0.17",
71
- "@bigbinary/neeto-commons-frontend": "4.13.47",
72
- "@bigbinary/neeto-editor": "1.47.21",
71
+ "@bigbinary/neeto-commons-frontend": "4.13.48",
72
+ "@bigbinary/neeto-editor": "1.47.25",
73
73
  "@bigbinary/neeto-filters-frontend": "4.3.23",
74
74
  "@bigbinary/neeto-icons": "1.20.53",
75
- "@bigbinary/neeto-molecules": "3.16.88",
75
+ "@bigbinary/neeto-molecules": "3.16.96",
76
76
  "@bigbinary/neeto-team-members-frontend": "4.5.25",
77
- "@bigbinary/neetoui": "8.3.14",
77
+ "@bigbinary/neetoui": "8.3.18",
78
78
  "@emotion/is-prop-valid": "1.2.0",
79
79
  "@faker-js/faker": "8.2.0",
80
80
  "@honeybadger-io/js": "6.10.1",
@@ -187,13 +187,13 @@
187
187
  "peerDependencies": {
188
188
  "@babel/runtime": "7.26.10",
189
189
  "@bigbinary/neeto-cist": "1.0.17",
190
- "@bigbinary/neeto-commons-frontend": "4.13.47",
191
- "@bigbinary/neeto-editor": "1.47.21",
190
+ "@bigbinary/neeto-commons-frontend": "4.13.48",
191
+ "@bigbinary/neeto-editor": "1.47.25",
192
192
  "@bigbinary/neeto-filters-frontend": "4.3.23",
193
193
  "@bigbinary/neeto-icons": "1.20.53",
194
- "@bigbinary/neeto-molecules": "3.16.88",
194
+ "@bigbinary/neeto-molecules": "3.16.96",
195
195
  "@bigbinary/neeto-team-members-frontend": "4.5.25",
196
- "@bigbinary/neetoui": "8.3.14",
196
+ "@bigbinary/neetoui": "8.3.18",
197
197
  "@honeybadger-io/js": "6.10.1",
198
198
  "@honeybadger-io/react": "6.1.25",
199
199
  "@rails/activestorage": "7.0.8-3",
package/types.d.ts CHANGED
@@ -25,6 +25,7 @@ interface ImageUploaderProps {
25
25
  };
26
26
  fixedAspectRatio?: { width: number; height: number };
27
27
  defaultImageSize?: { height: number; width: number };
28
+ isOptionsDisabled?: boolean;
28
29
  }
29
30
 
30
31
  interface BasicImageUploaderProps {
@@ -60,12 +61,16 @@ interface ImageFormProps {
60
61
  max: number;
61
62
  };
62
63
  logoSizeVariableName: string;
64
+ showAlignmentBlock?: boolean;
65
+ showAltTextBlock?: boolean;
66
+ isLabelEnabled?: boolean;
63
67
  }
64
68
 
65
69
  interface ImageUploadProps {
66
70
  name: string;
67
71
  handleUpdate: (image: any) => void;
68
72
  maxSize?: number;
73
+ isLabelEnabled?: boolean;
69
74
  }
70
75
 
71
76
  interface SliderBlockProps {
@@ -90,6 +95,7 @@ interface BlockProps {
90
95
  className?: string;
91
96
  childrenClassName?: string;
92
97
  isLoading?: boolean;
98
+ isLabelEnabled?: boolean;
93
99
  }
94
100
 
95
101
  export function useImageUpload(): {
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-B1JijZPf.js","sources":["../app/javascript/src/components/common/constants.js","../node_modules/imagekit-javascript/dist/imagekit.esm.js","../app/javascript/src/constants/index.js"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const DROPZONE_ROOT_DIV_CLASSNAME =\n \"neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full w-full flex-col items-center justify-center gap-3 border border-dashed p-4 transition-all duration-300 ease-in-out\";\n\nexport const FILE_ERRORS = {\n \"file-invalid-type\": t(\"neetoImageUploader.imageUpload.fileTypeError\"),\n \"file-too-large\": t(\"neetoImageUploader.imageUpload.fileSizeError\"),\n \"file-dimension-too-large\": t(\n \"neetoImageUploader.imageUpload.fileDimensionError\"\n ),\n};\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar version = \"1.5.5\";\n\nvar errorMessages = {\n MANDATORY_INITIALIZATION_MISSING: {\n message: \"Missing urlEndpoint during SDK initialization\",\n help: \"\"\n },\n INVALID_TRANSFORMATION_POSITION: {\n message: \"Invalid transformationPosition parameter\",\n help: \"\"\n },\n PRIVATE_KEY_CLIENT_SIDE: {\n message: \"privateKey should not be passed on the client side\",\n help: \"\"\n },\n MISSING_UPLOAD_DATA: {\n message: \"Missing data for upload\",\n help: \"\"\n },\n MISSING_UPLOAD_FILE_PARAMETER: {\n message: \"Missing file parameter for upload\",\n help: \"\"\n },\n MISSING_UPLOAD_FILENAME_PARAMETER: {\n message: \"Missing fileName parameter for upload\",\n help: \"\"\n },\n MISSING_AUTHENTICATION_ENDPOINT: {\n message: \"Missing authentication endpoint for upload\",\n help: \"\"\n },\n MISSING_PUBLIC_KEY: {\n message: \"Missing public key for upload\",\n help: \"\"\n },\n AUTH_ENDPOINT_TIMEOUT: {\n message: \"The authenticationEndpoint you provided timed out in 60 seconds\",\n help: \"\"\n },\n AUTH_ENDPOINT_NETWORK_ERROR: {\n message: \"Request to authenticationEndpoint failed due to network error\",\n help: \"\"\n },\n AUTH_INVALID_RESPONSE: {\n message: \"Invalid response from authenticationEndpoint. The SDK expects a JSON response with three fields i.e. signature, token and expire.\",\n help: \"\"\n },\n UPLOAD_ENDPOINT_NETWORK_ERROR: {\n message: \"Request to ImageKit upload endpoint failed due to network error\",\n help: \"\"\n },\n INVALID_UPLOAD_OPTIONS: {\n message: \"Invalid uploadOptions parameter\",\n help: \"\"\n }\n};\n\nfunction respond (isError, response, callback) {\n if (typeof callback == \"function\") {\n if (isError) {\n callback(response, null);\n } else {\n callback(null, response);\n }\n }\n}\n\nfunction getResponseHeaderMap(xhr) {\n var headers = {};\n var responseHeaders = xhr.getAllResponseHeaders();\n if (Object.keys(responseHeaders).length) {\n responseHeaders.trim().split(/[\\r\\n]+/).map(function (value) {\n return value.split(/: /);\n }).forEach(function (keyValue) {\n headers[keyValue[0].trim()] = keyValue[1].trim();\n });\n }\n return headers;\n}\nvar addResponseHeadersAndBody = function addResponseHeadersAndBody(body, xhr) {\n var response = _objectSpread2({}, body);\n var responseMetadata = {\n statusCode: xhr.status,\n headers: getResponseHeaderMap(xhr)\n };\n Object.defineProperty(response, \"$ResponseMetadata\", {\n value: responseMetadata,\n enumerable: false,\n writable: false\n });\n return response;\n};\nvar request = function request(uploadFileXHR, formData, options, callback) {\n generateSignatureToken(options.authenticationEndpoint).then(function (signaturObj) {\n formData.append(\"signature\", signaturObj.signature);\n formData.append(\"expire\", String(signaturObj.expire));\n formData.append(\"token\", signaturObj.token);\n uploadFile(uploadFileXHR, formData).then(function (result) {\n return respond(false, result, callback);\n }, function (ex) {\n return respond(true, ex, callback);\n });\n }, function (ex) {\n return respond(true, ex, callback);\n });\n};\nvar generateSignatureToken = function generateSignatureToken(authenticationEndpoint) {\n return new Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.timeout = 60000;\n var urlObj = new URL(authenticationEndpoint);\n urlObj.searchParams.append(\"t\", Math.random().toString());\n xhr.open('GET', urlObj.toString());\n xhr.ontimeout = function (e) {\n return reject(errorMessages.AUTH_ENDPOINT_TIMEOUT);\n };\n xhr.onerror = function () {\n return reject(errorMessages.AUTH_ENDPOINT_NETWORK_ERROR);\n };\n xhr.onload = function () {\n if (xhr.status === 200) {\n try {\n var body = JSON.parse(xhr.responseText);\n var obj = {\n signature: body.signature,\n expire: body.expire,\n token: body.token\n };\n if (!obj.signature || !obj.expire || !obj.token) {\n return reject(errorMessages.AUTH_INVALID_RESPONSE);\n }\n return resolve(obj);\n } catch (ex) {\n return reject(errorMessages.AUTH_INVALID_RESPONSE);\n }\n } else {\n return reject(errorMessages.AUTH_INVALID_RESPONSE);\n }\n };\n xhr.send();\n });\n};\nvar uploadFile = function uploadFile(uploadFileXHR, formData) {\n return new Promise(function (resolve, reject) {\n uploadFileXHR.open('POST', 'https://upload.imagekit.io/api/v1/files/upload');\n uploadFileXHR.onerror = function (e) {\n return reject(errorMessages.UPLOAD_ENDPOINT_NETWORK_ERROR);\n };\n uploadFileXHR.onload = function () {\n if (uploadFileXHR.status === 200) {\n try {\n var body = JSON.parse(uploadFileXHR.responseText);\n var uploadResponse = addResponseHeadersAndBody(body, uploadFileXHR);\n return resolve(uploadResponse);\n } catch (ex) {\n return reject(ex);\n }\n } else {\n try {\n var body = JSON.parse(uploadFileXHR.responseText);\n var uploadError = addResponseHeadersAndBody(body, uploadFileXHR);\n return reject(uploadError);\n } catch (ex) {\n return reject(ex);\n }\n }\n };\n uploadFileXHR.send(formData);\n });\n};\n\nvar upload = function upload(xhr, uploadOptions, options, callback) {\n if (!uploadOptions.file) {\n respond(true, errorMessages.MISSING_UPLOAD_FILE_PARAMETER, callback);\n return;\n }\n if (!uploadOptions.fileName) {\n respond(true, errorMessages.MISSING_UPLOAD_FILENAME_PARAMETER, callback);\n return;\n }\n if (!options.authenticationEndpoint) {\n respond(true, errorMessages.MISSING_AUTHENTICATION_ENDPOINT, callback);\n return;\n }\n if (!options.publicKey) {\n respond(true, errorMessages.MISSING_PUBLIC_KEY, callback);\n return;\n }\n var formData = new FormData();\n var key;\n for (key in uploadOptions) {\n if (key) {\n if (key === \"file\" && typeof uploadOptions.file != \"string\") {\n formData.append('file', uploadOptions.file, String(uploadOptions.fileName));\n } else if (key === \"tags\" && Array.isArray(uploadOptions.tags)) {\n formData.append('tags', uploadOptions.tags.join(\",\"));\n } else if (key === \"responseFields\" && Array.isArray(uploadOptions.responseFields)) {\n formData.append('responseFields', uploadOptions.responseFields.join(\",\"));\n } else if (key === \"extensions\" && Array.isArray(uploadOptions.extensions)) {\n formData.append('extensions', JSON.stringify(uploadOptions.extensions));\n } else if (key === \"customMetadata\" && _typeof(uploadOptions.customMetadata) === \"object\" && !Array.isArray(uploadOptions.customMetadata) && uploadOptions.customMetadata !== null) {\n formData.append('customMetadata', JSON.stringify(uploadOptions.customMetadata));\n } else if (uploadOptions[key] !== undefined) {\n formData.append(key, String(uploadOptions[key]));\n }\n }\n }\n formData.append(\"publicKey\", options.publicKey);\n request(xhr, formData, _objectSpread2(_objectSpread2({}, options), {}, {\n authenticationEndpoint: options.authenticationEndpoint\n }), callback);\n};\n\nvar supportedTransforms = {\n width: \"w\",\n height: \"h\",\n aspectRatio: \"ar\",\n quality: \"q\",\n crop: \"c\",\n cropMode: \"cm\",\n focus: \"fo\",\n x: \"x\",\n y: \"y\",\n format: \"f\",\n radius: \"r\",\n background: \"bg\",\n border: \"b\",\n rotation: \"rt\",\n rotate: \"rt\",\n blur: \"bl\",\n named: \"n\",\n overlayImage: \"oi\",\n overlayImageAspectRatio: \"oiar\",\n overlayImageBackground: \"oibg\",\n overlayImageBorder: \"oib\",\n overlayImageDPR: \"oidpr\",\n overlayImageQuality: \"oiq\",\n overlayImageCropping: \"oic\",\n overlayImageTrim: \"oit\",\n overlayX: \"ox\",\n overlayY: \"oy\",\n overlayFocus: \"ofo\",\n overlayHeight: \"oh\",\n overlayWidth: \"ow\",\n overlayText: \"ot\",\n overlayTextFontSize: \"ots\",\n overlayTextFontFamily: \"otf\",\n overlayTextColor: \"otc\",\n overlayTextTransparency: \"oa\",\n overlayAlpha: \"oa\",\n overlayTextTypography: \"ott\",\n overlayBackground: \"obg\",\n overlayTextEncoded: \"ote\",\n overlayTextWidth: \"otw\",\n overlayTextBackground: \"otbg\",\n overlayTextPadding: \"otp\",\n overlayTextInnerAlignment: \"otia\",\n overlayRadius: \"or\",\n progressive: \"pr\",\n lossless: \"lo\",\n trim: \"t\",\n metadata: \"md\",\n colorProfile: \"cp\",\n defaultImage: \"di\",\n dpr: \"dpr\",\n effectSharpen: \"e-sharpen\",\n effectUSM: \"e-usm\",\n effectContrast: \"e-contrast\",\n effectGray: \"e-grayscale\",\n original: \"orig\",\n raw: \"raw\"\n};\n\nvar DEFAULT_TRANSFORMATION_POSITION = \"path\";\nvar QUERY_TRANSFORMATION_POSITION = \"query\";\nvar VALID_TRANSFORMATION_POSITIONS = [DEFAULT_TRANSFORMATION_POSITION, QUERY_TRANSFORMATION_POSITION];\nvar CHAIN_TRANSFORM_DELIMITER = \":\";\nvar TRANSFORM_DELIMITER = \",\";\nvar TRANSFORM_KEY_VALUE_DELIMITER = \"-\";\nvar transformationUtils = {\n getDefault: function getDefault() {\n return DEFAULT_TRANSFORMATION_POSITION;\n },\n addAsQueryParameter: function addAsQueryParameter(options) {\n return options.transformationPosition === QUERY_TRANSFORMATION_POSITION;\n },\n validParameters: function validParameters(options) {\n if (typeof options.transformationPosition == \"undefined\") return false;\n return VALID_TRANSFORMATION_POSITIONS.indexOf(options.transformationPosition) != -1;\n },\n getTransformKey: function getTransformKey(transform) {\n if (!transform) {\n return \"\";\n }\n return supportedTransforms[transform] || supportedTransforms[transform.toLowerCase()] || \"\";\n },\n getChainTransformDelimiter: function getChainTransformDelimiter() {\n return CHAIN_TRANSFORM_DELIMITER;\n },\n getTransformDelimiter: function getTransformDelimiter() {\n return TRANSFORM_DELIMITER;\n },\n getTransformKeyValueDelimiter: function getTransformKeyValueDelimiter() {\n return TRANSFORM_KEY_VALUE_DELIMITER;\n }\n};\n\nvar TRANSFORMATION_PARAMETER = \"tr\";\nfunction removeTrailingSlash(str) {\n if (typeof str == \"string\" && str[str.length - 1] == \"/\") {\n str = str.substring(0, str.length - 1);\n }\n return str;\n}\nfunction removeLeadingSlash(str) {\n if (typeof str == \"string\" && str[0] == \"/\") {\n str = str.slice(1);\n }\n return str;\n}\nfunction pathJoin(parts, sep) {\n var separator = sep || \"/\";\n var replace = new RegExp(separator + \"{1,}\", \"g\");\n return parts.join(separator).replace(replace, separator);\n}\nvar buildURL = function buildURL(opts) {\n if (!opts.path && !opts.src) {\n return \"\";\n }\n var urlObj, isSrcParameterUsedForURL, urlEndpointPattern;\n try {\n if (opts.path) {\n urlEndpointPattern = new URL(opts.urlEndpoint).pathname;\n urlObj = new URL(pathJoin([opts.urlEndpoint.replace(urlEndpointPattern, \"\"), opts.path]));\n } else {\n urlObj = new URL(opts.src);\n isSrcParameterUsedForURL = true;\n }\n } catch (e) {\n console.error(e);\n return \"\";\n }\n for (var i in opts.queryParameters) {\n urlObj.searchParams.append(i, String(opts.queryParameters[i]));\n }\n var transformationString = constructTransformationString(opts.transformation);\n if (transformationString && transformationString.length) {\n if (transformationUtils.addAsQueryParameter(opts) || isSrcParameterUsedForURL) {\n urlObj.searchParams.append(TRANSFORMATION_PARAMETER, transformationString);\n } else {\n urlObj.pathname = pathJoin([TRANSFORMATION_PARAMETER + transformationUtils.getChainTransformDelimiter() + transformationString, urlObj.pathname]);\n }\n }\n if (urlEndpointPattern) {\n urlObj.pathname = pathJoin([urlEndpointPattern, urlObj.pathname]);\n } else {\n urlObj.pathname = pathJoin([urlObj.pathname]);\n }\n return urlObj.href;\n};\nfunction constructTransformationString(transformation) {\n if (!Array.isArray(transformation)) {\n return \"\";\n }\n var parsedTransforms = [];\n for (var i = 0, l = transformation.length; i < l; i++) {\n var parsedTransformStep = [];\n for (var key in transformation[i]) {\n var transformKey = transformationUtils.getTransformKey(key);\n if (!transformKey) {\n transformKey = key;\n }\n if (transformation[i][key] === \"-\") {\n parsedTransformStep.push(transformKey);\n } else if (key === \"raw\") {\n parsedTransformStep.push(transformation[i][key]);\n } else {\n var value = transformation[i][key];\n if (transformKey === \"oi\" || transformKey === \"di\") {\n value = removeTrailingSlash(removeLeadingSlash(value || \"\"));\n value = value.replace(/\\//g, \"@@\");\n }\n parsedTransformStep.push([transformKey, value].join(transformationUtils.getTransformKeyValueDelimiter()));\n }\n }\n parsedTransforms.push(parsedTransformStep.join(transformationUtils.getTransformDelimiter()));\n }\n return parsedTransforms.join(transformationUtils.getChainTransformDelimiter());\n}\n\nvar url = function url(urlOpts, defaultOptions) {\n return buildURL(_objectSpread2(_objectSpread2({}, defaultOptions), urlOpts));\n};\n\nfunction mandatoryParametersAvailable(options) {\n return options.urlEndpoint;\n}\nvar promisify = function promisify(thisContext, fn) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args.length === fn.length && typeof args[args.length - 1] !== \"undefined\") {\n if (typeof args[args.length - 1] !== \"function\") {\n throw new Error(\"Callback must be a function.\");\n }\n fn.call.apply(fn, [thisContext].concat(args));\n } else {\n return new Promise(function (resolve, reject) {\n var callback = function callback(err) {\n if (err) {\n return reject(err);\n } else {\n for (var _len2 = arguments.length, results = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n results[_key2 - 1] = arguments[_key2];\n }\n resolve(results.length > 1 ? results : results[0]);\n }\n };\n args.pop();\n args.push(callback);\n fn.call.apply(fn, [thisContext].concat(args));\n });\n }\n };\n};\nvar ImageKit = function () {\n function ImageKit(opts) {\n _classCallCheck(this, ImageKit);\n _defineProperty(this, \"options\", {\n sdkVersion: \"javascript-\".concat(version),\n publicKey: \"\",\n urlEndpoint: \"\",\n transformationPosition: transformationUtils.getDefault()\n });\n this.options = _objectSpread2(_objectSpread2({}, this.options), opts || {});\n if (!mandatoryParametersAvailable(this.options)) {\n throw errorMessages.MANDATORY_INITIALIZATION_MISSING;\n }\n if (!transformationUtils.validParameters(this.options)) {\n throw errorMessages.INVALID_TRANSFORMATION_POSITION;\n }\n }\n _createClass(ImageKit, [{\n key: \"url\",\n value: function url$1(urlOptions) {\n return url(urlOptions, this.options);\n }\n }, {\n key: \"upload\",\n value: function upload$1(uploadOptions, callbackOrOptions, options) {\n var callback;\n if (typeof callbackOrOptions === 'function') {\n callback = callbackOrOptions;\n } else {\n options = callbackOrOptions || {};\n }\n if (!uploadOptions || _typeof(uploadOptions) !== \"object\") {\n return respond(true, errorMessages.INVALID_UPLOAD_OPTIONS, callback);\n }\n var mergedOptions = _objectSpread2(_objectSpread2({}, this.options), options);\n var _ref = uploadOptions || {},\n userProvidedXHR = _ref.xhr;\n delete uploadOptions.xhr;\n var xhr = userProvidedXHR || new XMLHttpRequest();\n return promisify(this, upload)(xhr, uploadOptions, mergedOptions, callback);\n }\n }]);\n return ImageKit;\n}();\n\nexport default ImageKit;\n","export const IS_DEVELOPMENT_OR_HEROKU_ENV =\n process.env.RAILS_ENV === \"development\" || process.env.RAILS_ENV === \"heroku\";\n\nexport const CLOUD_FLARE = \"cloudflare\";\n"],"names":["DROPZONE_ROOT_DIV_CLASSNAME","FILE_ERRORS","t","IS_DEVELOPMENT_OR_HEROKU_ENV","process","env","RAILS_ENV","CLOUD_FLARE"],"mappings":"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","x_google_ignoreList":[1]}