@bigbinary/neeto-image-uploader-frontend 2.3.11 → 2.3.15

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 (44) hide show
  1. package/README.md +1 -0
  2. package/app/javascript/src/translations/en.json +2 -1
  3. package/dist/AssetLibrary.js +2 -2
  4. package/dist/BasicImageUploader.js +1 -1
  5. package/dist/BasicImageUploader.js.map +1 -1
  6. package/dist/ImageUploader.js +7 -3
  7. package/dist/ImageUploader.js.map +1 -1
  8. package/dist/ImageWithFallback-Csv6Oivd.js.map +1 -1
  9. package/dist/{ImageWithFallback-DeznMgbx.js → ImageWithFallback-DzT_N2Su.js} +4 -4
  10. package/dist/{ImageWithFallback-DeznMgbx.js.map → ImageWithFallback-DzT_N2Su.js.map} +1 -1
  11. package/dist/cjs/AssetLibrary.js +2 -2
  12. package/dist/cjs/BasicImageUploader.js +2 -2
  13. package/dist/cjs/BasicImageUploader.js.map +1 -1
  14. package/dist/cjs/ImageUploader.js +12 -8
  15. package/dist/cjs/ImageUploader.js.map +1 -1
  16. package/dist/cjs/hooks.js +1 -1
  17. package/dist/cjs/index.js +4 -4
  18. package/dist/cjs/utils.js.map +1 -1
  19. package/dist/{index-FbPHXCzL.js → index-BGcxuPcd.js} +726 -291
  20. package/dist/index-BGcxuPcd.js.map +1 -0
  21. package/dist/{index-BkKE5xo-.js → index-BXN-qII4.js} +734 -299
  22. package/dist/index-BXN-qII4.js.map +1 -0
  23. package/dist/index-BtHfh_eu.js.map +1 -1
  24. package/dist/index-CZjb2iXB.js.map +1 -1
  25. package/dist/index.js +2 -2
  26. package/dist/query-B0eDmse7.js.map +1 -1
  27. package/dist/query-B7ahlELA.js.map +1 -1
  28. package/dist/useImageUploader-Bm9TukCy.js.map +1 -1
  29. package/dist/useImageUploader-RX88_Cp-.js.map +1 -1
  30. package/dist/{useProfileImageUpload-UUrg2Lkw.js → useProfileImageUpload-C6Gat9NR.js} +6 -6
  31. package/dist/useProfileImageUpload-C6Gat9NR.js.map +1 -0
  32. package/dist/useProfileImageUpload-KpvcwEqx.js.map +1 -1
  33. package/dist/{utils-BxC_k1lu.js → utils-C58No1u2.js} +108 -62
  34. package/dist/utils-C58No1u2.js.map +1 -0
  35. package/dist/{utils-WEbpTEyB.js → utils-CFUW0P-E.js} +102 -61
  36. package/dist/utils-CFUW0P-E.js.map +1 -0
  37. package/dist/utils.js.map +1 -1
  38. package/package.json +57 -54
  39. package/types.d.ts +1 -0
  40. package/dist/index-BkKE5xo-.js.map +0 -1
  41. package/dist/index-FbPHXCzL.js.map +0 -1
  42. package/dist/useProfileImageUpload-UUrg2Lkw.js.map +0 -1
  43. package/dist/utils-BxC_k1lu.js.map +0 -1
  44. package/dist/utils-WEbpTEyB.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils-WEbpTEyB.js","sources":["../app/javascript/src/components/ImageUploader/constants.js","../app/javascript/src/components/ImageUploader/utils.js","../app/javascript/src/components/common/constants.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\";\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};\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 } 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}) => {\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 </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: \"px\",\n height: 0,\n width: 0,\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 { globalProps } from \"neetocommons/initializers\";\nimport { isEmpty, isNil } from \"ramda\";\n\nexport const getCropValues = ({ crop, imageRef }) => ({\n x: imageRef.current.naturalWidth * (crop.x / imageRef.current.width),\n y: imageRef.current.naturalHeight * (crop.y / imageRef.current.height),\n height:\n imageRef.current.naturalHeight * (crop.height / imageRef.current.height),\n width: imageRef.current.naturalWidth * (crop.width / imageRef.current.width),\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 onImageLoaded = ({ image, setCrop, cropAspectRatio = 16 / 9 }) => {\n const { width, height } = image;\n const imageAspectRatio = width / height;\n const maxCropWidth = 250;\n const maxCropHeight = maxCropWidth / cropAspectRatio;\n\n let cropWidth, cropHeight;\n\n if (imageAspectRatio > cropAspectRatio) {\n cropWidth = Math.min(maxCropWidth, width);\n cropHeight = cropWidth / cropAspectRatio;\n } else if (height < maxCropHeight) {\n cropWidth = width;\n cropHeight = height;\n } else {\n cropHeight = Math.min(maxCropHeight, height);\n cropWidth = cropHeight * cropAspectRatio;\n }\n\n const cropX = (width - cropWidth) / 2;\n const cropY = (height - cropHeight) / 2;\n\n setCrop({\n unit: \"px\",\n width: cropWidth,\n height: cropHeight,\n x: cropX,\n y: cropY,\n });\n};\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 = ({\n imageRef,\n image,\n crop,\n}) => {\n const scaleX = image.metadata.width / imageRef.current.width;\n const scaleY = image.metadata.height / imageRef.current.height;\n\n const sourceX = scaleX * crop.x;\n const sourceY = scaleY * crop.y;\n const sourceWidth = scaleX * crop.width;\n const sourceHeight = scaleY * crop.height;\n\n const distanceFromRight = Math.abs(\n image.metadata.width - (sourceX + sourceWidth)\n );\n\n const distanceFromBottom = Math.abs(\n image.metadata.height - (sourceY + sourceHeight)\n );\n\n return {\n top: sourceY,\n right: distanceFromRight,\n bottom: distanceFromBottom,\n left: sourceX,\n };\n};\n\nexport const getCloudFlareCroppedURL = ({ imageRef, image, crop }) => {\n const { top, right, bottom, left } = calculateCloudFlareImageCroppedValues({\n imageRef,\n image,\n crop,\n });\n const trimValues = `${top};${right};${bottom};${left}`;\n\n return image.url.replace(\"public\", `trim=${trimValues}`);\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","FILE_ERRORS","t","handleDropRejected","fileRejections","_ref","errors","_ref2","code","Toastr","error","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","_useUploadDropzone","shouldShowProgress","equals","_jsx","_objectSpread","className","classnames","children","ProgressBar","progressPercentage","progressValue","concat","_jsxs","Typography","style","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","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","getCropValues","crop","imageRef","current","naturalWidth","naturalHeight","getImageKitCroppedURL","imageURL","imagekit","ImageKit","urlEndpoint","_getCropValues","transformation","cropMode","url","src","isNilOrEmpty","value","isNil","isEmpty","isNotNilOrEmpty","onImageLoaded","_ref3","image","setCrop","_ref3$cropAspectRatio","cropAspectRatio","imageAspectRatio","maxCropWidth","maxCropHeight","cropWidth","cropHeight","Math","min","cropX","cropY","isItemsCenter","_ref4","wrapperRef","_ref5","imageHeight","imageWidth","wrapperHeight","clientHeight","calculateCloudFlareImageCroppedValues","_ref6","scaleX","metadata","scaleY","sourceX","sourceY","sourceWidth","sourceHeight","distanceFromRight","abs","distanceFromBottom","top","right","bottom","left","getCloudFlareCroppedURL","_ref7","_calculateCloudFlareI","trimValues","replace"],"mappings":"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"}