@bigbinary/neeto-image-uploader-frontend 2.3.0 → 2.3.2

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 (57) hide show
  1. package/app/javascript/src/translations/en.json +2 -2
  2. package/dist/AssetLibrary.js +53 -32
  3. package/dist/AssetLibrary.js.map +1 -1
  4. package/dist/BasicImageUploader.js +3 -3
  5. package/dist/ImageUploader.js +34 -16
  6. package/dist/ImageUploader.js.map +1 -1
  7. package/dist/{ImageWithFallback-a45f3f4a.js → ImageWithFallback-1d3c6c16.js} +3 -3
  8. package/dist/{ImageWithFallback-a45f3f4a.js.map → ImageWithFallback-1d3c6c16.js.map} +1 -1
  9. package/dist/{ImageWithFallback-aacc383b.js → ImageWithFallback-da061171.js} +3 -3
  10. package/dist/{ImageWithFallback-aacc383b.js.map → ImageWithFallback-da061171.js.map} +1 -1
  11. package/dist/cjs/AssetLibrary.js +60 -39
  12. package/dist/cjs/AssetLibrary.js.map +1 -1
  13. package/dist/cjs/BasicImageUploader.js +3 -3
  14. package/dist/cjs/ImageUploader.js +34 -16
  15. package/dist/cjs/ImageUploader.js.map +1 -1
  16. package/dist/cjs/hooks.js +4 -3
  17. package/dist/cjs/hooks.js.map +1 -1
  18. package/dist/cjs/index.js +8 -5
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/utils.js +14 -0
  21. package/dist/cjs/utils.js.map +1 -0
  22. package/dist/hooks.js +4 -3
  23. package/dist/hooks.js.map +1 -1
  24. package/dist/{index-7f064861.js → index-69559a7a.js} +3 -1
  25. package/dist/index-69559a7a.js.map +1 -0
  26. package/dist/{index-b9963255.js → index-c128d963.js} +3 -2
  27. package/dist/index-c128d963.js.map +1 -0
  28. package/dist/index.js +7 -5
  29. package/dist/index.js.map +1 -1
  30. package/dist/query-3c31bf92.js +14 -0
  31. package/dist/query-3c31bf92.js.map +1 -0
  32. package/dist/query-dcc7b81b.js +10 -0
  33. package/dist/query-dcc7b81b.js.map +1 -0
  34. package/dist/{useImageUploader-550a5fdc.js → useImageUploader-b78deb18.js} +74 -58
  35. package/dist/useImageUploader-b78deb18.js.map +1 -0
  36. package/dist/{useImageUploader-36a03350.js → useImageUploader-b93adc31.js} +74 -55
  37. package/dist/useImageUploader-b93adc31.js.map +1 -0
  38. package/dist/{useProfileImageUpload-837e76b8.js → useProfileImageUpload-085576e5.js} +4 -4
  39. package/dist/useProfileImageUpload-085576e5.js.map +1 -0
  40. package/dist/{useProfileImageUpload-f0088c2a.js → useProfileImageUpload-51ab47be.js} +4 -4
  41. package/dist/useProfileImageUpload-51ab47be.js.map +1 -0
  42. package/dist/{utils-88cce499.js → utils-2fc0a9dc.js} +5 -4
  43. package/dist/utils-2fc0a9dc.js.map +1 -0
  44. package/dist/{utils-96eacd77.js → utils-46caa3d3.js} +5 -4
  45. package/dist/utils-46caa3d3.js.map +1 -0
  46. package/dist/utils.js +10 -0
  47. package/dist/utils.js.map +1 -0
  48. package/package.json +29 -29
  49. package/types.d.ts +3 -0
  50. package/dist/index-7f064861.js.map +0 -1
  51. package/dist/index-b9963255.js.map +0 -1
  52. package/dist/useImageUploader-36a03350.js.map +0 -1
  53. package/dist/useImageUploader-550a5fdc.js.map +0 -1
  54. package/dist/useProfileImageUpload-837e76b8.js.map +0 -1
  55. package/dist/useProfileImageUpload-f0088c2a.js.map +0 -1
  56. package/dist/utils-88cce499.js.map +0 -1
  57. package/dist/utils-96eacd77.js.map +0 -1
@@ -1,10 +1,10 @@
1
- import { _ as _defineProperty } from './index-b9963255.js';
2
- import { _ as _objectWithoutProperties, i as isNilOrEmpty, l as isNotNilOrEmpty, m as IMAGE_WRAPPER_CLASSNAME } from './utils-96eacd77.js';
1
+ import { _ as _defineProperty } from './index-c128d963.js';
2
+ import { _ as _objectWithoutProperties, i as isNilOrEmpty, l as isNotNilOrEmpty, m as IMAGE_WRAPPER_CLASSNAME } from './utils-46caa3d3.js';
3
3
  import classnames from 'classnames';
4
4
  import { noop } from '@bigbinary/neeto-cist';
5
5
  import Delete$1 from '@bigbinary/neeto-icons/Delete';
6
6
  import Button from '@bigbinary/neetoui/Button';
7
- import { I as ImageWithFallback, a as ImageDirectUpload } from './ImageWithFallback-a45f3f4a.js';
7
+ import { I as ImageWithFallback, a as ImageDirectUpload } from './ImageWithFallback-1d3c6c16.js';
8
8
  import { jsx, jsxs } from 'react/jsx-runtime';
9
9
  import '@bigbinary/neeto-commons-frontend/initializers';
10
10
  import 'react';
@@ -1,18 +1,18 @@
1
- import { a as _slicedToArray, _ as _defineProperty, I as IS_DEVELOPMENT_OR_HEROKU_ENV } from './index-b9963255.js';
2
- import { h as DEFAULT_UPLOAD_CONFIG, k as OPTION_KEYS, l as isNotNilOrEmpty, m as IMAGE_WRAPPER_CLASSNAME, _ as _objectWithoutProperties } from './utils-96eacd77.js';
1
+ import { h as DEFAULT_UPLOAD_CONFIG, k as OPTION_KEYS, l as isNotNilOrEmpty, m as IMAGE_WRAPPER_CLASSNAME, _ as _objectWithoutProperties } from './utils-46caa3d3.js';
2
+ import { a as _slicedToArray, C as CLOUD_FLARE, _ as _defineProperty, I as IS_DEVELOPMENT_OR_HEROKU_ENV } from './index-c128d963.js';
3
3
  import { useState, createElement } from 'react';
4
4
  import classnames from 'classnames';
5
5
  import { isPresent, noop } from '@bigbinary/neeto-cist';
6
+ import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
6
7
  import MenuHorizontal from '@bigbinary/neeto-icons/MenuHorizontal';
7
8
  import Dropdown from '@bigbinary/neetoui/Dropdown';
8
9
  import Toastr from '@bigbinary/neetoui/Toastr';
9
10
  import { mergeRight } from 'ramda';
10
11
  import { useTranslation } from 'react-i18next';
11
- import { I as ImageWithFallback, a as ImageDirectUpload } from './ImageWithFallback-a45f3f4a.js';
12
+ import { I as ImageWithFallback, a as ImageDirectUpload } from './ImageWithFallback-1d3c6c16.js';
12
13
  import Modal from './AssetLibrary.js';
13
- import { u as useCreateBlob, e as useImageUploader } from './useImageUploader-36a03350.js';
14
+ import { u as useCreateBlob, e as useImageUploader, f as generateASCIIFileName } from './useImageUploader-b93adc31.js';
14
15
  import { jsxs, jsx } from 'react/jsx-runtime';
15
- import '@bigbinary/neeto-commons-frontend/initializers';
16
16
  import 'react-dropzone';
17
17
  import 'i18next';
18
18
  import '@bigbinary/neetoui/Button';
@@ -27,6 +27,7 @@ import '@bigbinary/neeto-commons-frontend/react-utils';
27
27
  import '@bigbinary/neeto-commons-frontend/utils';
28
28
  import '@bigbinary/neetoui/Input';
29
29
  import '@bigbinary/neetoui/Switch';
30
+ import './query-dcc7b81b.js';
30
31
  import '@bigbinary/neeto-molecules/Container';
31
32
  import '@bigbinary/neeto-molecules/Header';
32
33
  import '@bigbinary/neeto-commons-frontend/constants';
@@ -107,6 +108,7 @@ var ImageUploader = function ImageUploader(_ref) {
107
108
  var _useCreateBlob = useCreateBlob(),
108
109
  createBlob = _useCreateBlob.mutate;
109
110
  var uploadConfigWithDefaults = mergeRight(DEFAULT_UPLOAD_CONFIG, uploadConfig);
111
+ var isCloudFlareImageUploader = globalProps.assetsUploaderService === CLOUD_FLARE;
110
112
  var handleDelete = function handleDelete() {
111
113
  setImage({});
112
114
  onChange({
@@ -126,7 +128,7 @@ var ImageUploader = function ImageUploader(_ref) {
126
128
  url: attachedImage.metadata.url
127
129
  }));
128
130
  onChange({
129
- filename: attachedImage.filename,
131
+ filename: generateASCIIFileName(attachedImage.filename),
130
132
  key: attachedImage.key,
131
133
  url: attachedImage.blobUrl,
132
134
  signedId: attachedImage.signedId,
@@ -138,23 +140,39 @@ var ImageUploader = function ImageUploader(_ref) {
138
140
  setImage(image);
139
141
  onChange(image);
140
142
  };
141
- var handleUploadComplete = function handleUploadComplete(image) {
143
+ var handleUploadComplete = function handleUploadComplete(result) {
144
+ var file = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
142
145
  if (IS_DEVELOPMENT_OR_HEROKU_ENV) {
143
- handleSuccess(mergeRight(image, {
146
+ handleSuccess(mergeRight(result, {
144
147
  metadata: {
145
- url: image.url
148
+ url: result.url
146
149
  }
147
150
  }));
148
151
  return;
149
152
  }
150
- var payload = {
151
- filename: image.name,
152
- byte_size: image.size,
153
- content_type: image.fileType,
154
- checksum: image.fileId,
155
- metadata: image,
156
- service_name: "imagekitio"
153
+ var imageKitPayload = function imageKitPayload() {
154
+ return {
155
+ filename: generateASCIIFileName(result.name),
156
+ byte_size: result.size,
157
+ content_type: result.fileType,
158
+ checksum: result.fileId,
159
+ metadata: result,
160
+ service_name: "imagekitio"
161
+ };
157
162
  };
163
+ var cloudFlarePayload = function cloudFlarePayload() {
164
+ return {
165
+ filename: generateASCIIFileName(result.filename),
166
+ content_type: file.type,
167
+ byte_size: file.size,
168
+ checksum: result.id,
169
+ metadata: _objectSpread(_objectSpread({}, result), {}, {
170
+ url: result.variants[0]
171
+ }),
172
+ service_name: "cloudflare_image"
173
+ };
174
+ };
175
+ var payload = isCloudFlareImageUploader ? cloudFlarePayload() : imageKitPayload();
158
176
  createBlob(payload, {
159
177
  onSuccess: handleSuccess,
160
178
  onError: Toastr.error
@@ -1 +1 @@
1
- {"version":3,"file":"ImageUploader.js","sources":["../app/javascript/src/components/ImageUploader/index.jsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent, noop } from \"neetocist\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown, Toastr } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ImageDirectUpload from \"components/common/ImageDirectUpload\";\nimport ImageWithFallback from \"components/common/ImageWithFallback\";\nimport { IMAGE_WRAPPER_CLASSNAME } from \"components/constants\";\nimport { isNotNilOrEmpty } from \"components/ImageEditor/utils\";\nimport AssetLibrary from \"components/Modal\";\nimport { useCreateBlob } from \"hooks/useDirectUploads\";\nimport useImageUploader from \"hooks/useImageUploader\";\nimport { IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nimport { DEFAULT_UPLOAD_CONFIG, OPTION_KEYS } from \"./constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst ImageUploader = ({\n onUploadComplete = noop,\n className = \"\",\n src = \"\",\n uploadConfig = {},\n fixedAspectRatio = {},\n}) => {\n const [isAssetLibraryOpen, setIsAssetLibraryOpen] = useState(false);\n const [image, setImage] = useState({ url: src });\n\n const { t } = useTranslation();\n\n const { mutate: createBlob } = useCreateBlob();\n\n const uploadConfigWithDefaults = mergeRight(\n DEFAULT_UPLOAD_CONFIG,\n uploadConfig\n );\n\n const handleDelete = () => {\n setImage({});\n onChange({\n url: \"\",\n signedId: \"\",\n key: \"\",\n filename: \"\",\n size: \"\",\n type: \"\",\n });\n };\n\n const onChange = file => onUploadComplete(file);\n\n const handleSuccess = attachedImage => {\n setImage(mergeRight(image, { url: attachedImage.metadata.url }));\n onChange({\n filename: attachedImage.filename,\n key: attachedImage.key,\n url: attachedImage.blobUrl,\n signedId: attachedImage.signedId,\n size: attachedImage.byteSize,\n type: attachedImage.contentType,\n });\n };\n\n const handleImageSelectionFromLibrary = image => {\n setImage(image);\n onChange(image);\n };\n\n const handleUploadComplete = image => {\n if (IS_DEVELOPMENT_OR_HEROKU_ENV) {\n handleSuccess(mergeRight(image, { metadata: { url: image.url } }));\n\n return;\n }\n\n const payload = {\n filename: image.name,\n byte_size: image.size,\n content_type: image.fileType,\n checksum: image.fileId,\n metadata: image,\n service_name: \"imagekitio\",\n };\n\n createBlob(payload, {\n onSuccess: handleSuccess,\n onError: Toastr.error,\n });\n };\n\n const { uploadFile } = useImageUploader({\n onUploadComplete: handleUploadComplete,\n });\n\n const options = [\n {\n key: OPTION_KEYS.asset,\n label: t(\"neetoImageUploader.imageUpload.imageLibrary\"),\n onClick: () => setIsAssetLibraryOpen(true),\n \"data-cy\": \"image-uploader-open-image-library-button\",\n },\n {\n key: OPTION_KEYS.remove,\n label: t(\"neetoImageUploader.imageUpload.remove\"),\n onClick: handleDelete,\n \"data-cy\": \"image-uploader-remove-button\",\n },\n ];\n\n return (\n <div className={classnames(className, { \"cursor-pointer\": true })}>\n {isNotNilOrEmpty(image.url) ? (\n <div\n className={IMAGE_WRAPPER_CLASSNAME}\n data-cy=\"image-uploader-wrapper\"\n >\n <ImageWithFallback\n className=\"h-full w-full\"\n data-cy=\"uploaded-image\"\n src={image.url}\n />\n <Dropdown\n buttonSize=\"small\"\n buttonStyle=\"tertiary\"\n icon={MenuHorizontal}\n buttonProps={{\n // eslint-disable-next-line @bigbinary/neeto/use-neetoui-classes\n className: \"absolute right-3 top-3 rounded-full\",\n }}\n >\n <Menu>\n {options.map(({ key, label, ...otherProps }) => (\n <MenuItem.Button {...otherProps} key={key}>\n {label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n </div>\n ) : (\n <ImageDirectUpload\n {...{ setIsAssetLibraryOpen }}\n isDisabled={isPresent(fixedAspectRatio)}\n uploadConfig={uploadConfigWithDefaults}\n onDrop={uploadFile}\n />\n )}\n <AssetLibrary\n {...{ fixedAspectRatio }}\n isOpen={isAssetLibraryOpen}\n uploadConfig={uploadConfigWithDefaults}\n onClose={() => setIsAssetLibraryOpen(false)}\n onUploadComplete={handleImageSelectionFromLibrary}\n />\n </div>\n );\n};\n\nexport default ImageUploader;\n"],"names":["Menu","Dropdown","MenuItem","ImageUploader","_ref","_ref$onUploadComplete","onUploadComplete","noop","_ref$className","className","_ref$src","src","_ref$uploadConfig","uploadConfig","_ref$fixedAspectRatio","fixedAspectRatio","_useState","useState","_useState2","_slicedToArray","isAssetLibraryOpen","setIsAssetLibraryOpen","_useState3","url","_useState4","image","setImage","_useTranslation","useTranslation","t","_useCreateBlob","useCreateBlob","createBlob","mutate","uploadConfigWithDefaults","mergeRight","DEFAULT_UPLOAD_CONFIG","handleDelete","onChange","signedId","key","filename","size","type","file","handleSuccess","attachedImage","metadata","blobUrl","byteSize","contentType","handleImageSelectionFromLibrary","handleUploadComplete","IS_DEVELOPMENT_OR_HEROKU_ENV","payload","name","byte_size","content_type","fileType","checksum","fileId","service_name","onSuccess","onError","Toastr","error","_useImageUploader","useImageUploader","uploadFile","options","OPTION_KEYS","asset","label","onClick","remove","_jsxs","classnames","children","isNotNilOrEmpty","IMAGE_WRAPPER_CLASSNAME","_jsx","ImageWithFallback","buttonSize","buttonStyle","icon","MenuHorizontal","buttonProps","map","_ref2","otherProps","_objectWithoutProperties","_excluded","_createElement","Button","_objectSpread","ImageDirectUpload","isDisabled","isPresent","onDrop","AssetLibrary","isOpen","onClose"],"mappings":"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"}
1
+ {"version":3,"file":"ImageUploader.js","sources":["../app/javascript/src/components/ImageUploader/index.jsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown, Toastr } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ImageDirectUpload from \"components/common/ImageDirectUpload\";\nimport ImageWithFallback from \"components/common/ImageWithFallback\";\nimport { IMAGE_WRAPPER_CLASSNAME } from \"components/constants\";\nimport { isNotNilOrEmpty } from \"components/ImageEditor/utils\";\nimport AssetLibrary from \"components/Modal\";\nimport { useCreateBlob } from \"hooks/useDirectUploads\";\nimport useImageUploader from \"hooks/useImageUploader\";\nimport { generateASCIIFileName } from \"hooks/utils\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nimport { DEFAULT_UPLOAD_CONFIG, OPTION_KEYS } from \"./constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst ImageUploader = ({\n onUploadComplete = noop,\n className = \"\",\n src = \"\",\n uploadConfig = {},\n fixedAspectRatio = {},\n}) => {\n const [isAssetLibraryOpen, setIsAssetLibraryOpen] = useState(false);\n const [image, setImage] = useState({ url: src });\n\n const { t } = useTranslation();\n\n const { mutate: createBlob } = useCreateBlob();\n\n const uploadConfigWithDefaults = mergeRight(\n DEFAULT_UPLOAD_CONFIG,\n uploadConfig\n );\n\n const isCloudFlareImageUploader =\n globalProps.assetsUploaderService === CLOUD_FLARE;\n\n const handleDelete = () => {\n setImage({});\n onChange({\n url: \"\",\n signedId: \"\",\n key: \"\",\n filename: \"\",\n size: \"\",\n type: \"\",\n });\n };\n\n const onChange = file => onUploadComplete(file);\n\n const handleSuccess = attachedImage => {\n setImage(mergeRight(image, { url: attachedImage.metadata.url }));\n onChange({\n filename: generateASCIIFileName(attachedImage.filename),\n key: attachedImage.key,\n url: attachedImage.blobUrl,\n signedId: attachedImage.signedId,\n size: attachedImage.byteSize,\n type: attachedImage.contentType,\n });\n };\n\n const handleImageSelectionFromLibrary = image => {\n setImage(image);\n onChange(image);\n };\n\n const handleUploadComplete = (result, file = {}) => {\n if (IS_DEVELOPMENT_OR_HEROKU_ENV) {\n handleSuccess(mergeRight(result, { metadata: { url: result.url } }));\n\n return;\n }\n\n const imageKitPayload = () => ({\n filename: generateASCIIFileName(result.name),\n byte_size: result.size,\n content_type: result.fileType,\n checksum: result.fileId,\n metadata: result,\n service_name: \"imagekitio\",\n });\n\n const cloudFlarePayload = () => ({\n filename: generateASCIIFileName(result.filename),\n content_type: file.type,\n byte_size: file.size,\n checksum: result.id,\n metadata: { ...result, url: result.variants[0] },\n service_name: \"cloudflare_image\",\n });\n\n const payload = isCloudFlareImageUploader\n ? cloudFlarePayload()\n : imageKitPayload();\n\n createBlob(payload, {\n onSuccess: handleSuccess,\n onError: Toastr.error,\n });\n };\n\n const { uploadFile } = useImageUploader({\n onUploadComplete: handleUploadComplete,\n });\n\n const options = [\n {\n key: OPTION_KEYS.asset,\n label: t(\"neetoImageUploader.imageUpload.imageLibrary\"),\n onClick: () => setIsAssetLibraryOpen(true),\n \"data-cy\": \"image-uploader-open-image-library-button\",\n },\n {\n key: OPTION_KEYS.remove,\n label: t(\"neetoImageUploader.imageUpload.remove\"),\n onClick: handleDelete,\n \"data-cy\": \"image-uploader-remove-button\",\n },\n ];\n\n return (\n <div className={classnames(className, { \"cursor-pointer\": true })}>\n {isNotNilOrEmpty(image.url) ? (\n <div\n className={IMAGE_WRAPPER_CLASSNAME}\n data-cy=\"image-uploader-wrapper\"\n >\n <ImageWithFallback\n className=\"h-full w-full\"\n data-cy=\"uploaded-image\"\n src={image.url}\n />\n <Dropdown\n buttonSize=\"small\"\n buttonStyle=\"tertiary\"\n icon={MenuHorizontal}\n buttonProps={{\n // eslint-disable-next-line @bigbinary/neeto/use-neetoui-classes\n className: \"absolute right-3 top-3 rounded-full\",\n }}\n >\n <Menu>\n {options.map(({ key, label, ...otherProps }) => (\n <MenuItem.Button {...otherProps} key={key}>\n {label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n </div>\n ) : (\n <ImageDirectUpload\n {...{ setIsAssetLibraryOpen }}\n isDisabled={isPresent(fixedAspectRatio)}\n uploadConfig={uploadConfigWithDefaults}\n onDrop={uploadFile}\n />\n )}\n <AssetLibrary\n {...{ fixedAspectRatio }}\n isOpen={isAssetLibraryOpen}\n uploadConfig={uploadConfigWithDefaults}\n onClose={() => setIsAssetLibraryOpen(false)}\n onUploadComplete={handleImageSelectionFromLibrary}\n />\n </div>\n );\n};\n\nexport default ImageUploader;\n"],"names":["Menu","Dropdown","MenuItem","ImageUploader","_ref","_ref$onUploadComplete","onUploadComplete","noop","_ref$className","className","_ref$src","src","_ref$uploadConfig","uploadConfig","_ref$fixedAspectRatio","fixedAspectRatio","_useState","useState","_useState2","_slicedToArray","isAssetLibraryOpen","setIsAssetLibraryOpen","_useState3","url","_useState4","image","setImage","_useTranslation","useTranslation","t","_useCreateBlob","useCreateBlob","createBlob","mutate","uploadConfigWithDefaults","mergeRight","DEFAULT_UPLOAD_CONFIG","isCloudFlareImageUploader","globalProps","assetsUploaderService","CLOUD_FLARE","handleDelete","onChange","signedId","key","filename","size","type","file","handleSuccess","attachedImage","metadata","generateASCIIFileName","blobUrl","byteSize","contentType","handleImageSelectionFromLibrary","handleUploadComplete","result","arguments","length","undefined","IS_DEVELOPMENT_OR_HEROKU_ENV","imageKitPayload","name","byte_size","content_type","fileType","checksum","fileId","service_name","cloudFlarePayload","id","_objectSpread","variants","payload","onSuccess","onError","Toastr","error","_useImageUploader","useImageUploader","uploadFile","options","OPTION_KEYS","asset","label","onClick","remove","_jsxs","classnames","children","isNotNilOrEmpty","IMAGE_WRAPPER_CLASSNAME","_jsx","ImageWithFallback","buttonSize","buttonStyle","icon","MenuHorizontal","buttonProps","map","_ref2","otherProps","_objectWithoutProperties","_excluded","_createElement","Button","ImageDirectUpload","isDisabled","isPresent","onDrop","AssetLibrary","isOpen","onClose"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { _ as _defineProperty, a as _slicedToArray } from './index-b9963255.js';
1
+ import { _ as _defineProperty, a as _slicedToArray } from './index-c128d963.js';
2
2
  import classnames from 'classnames';
3
3
  import { noop } from '@bigbinary/neeto-cist';
4
4
  import Button from '@bigbinary/neetoui/Button';
5
5
  import Typography from '@bigbinary/neetoui/Typography';
6
6
  import { pipe, values, flatten, map, toUpper, join, equals } from 'ramda';
7
7
  import { Trans } from 'react-i18next';
8
- import { u as useUploadDropzone, n as DROPZONE_ROOT_DIV_CLASSNAME, h as DEFAULT_UPLOAD_CONFIG, _ as _objectWithoutProperties } from './utils-96eacd77.js';
8
+ import { u as useUploadDropzone, n as DROPZONE_ROOT_DIV_CLASSNAME, h as DEFAULT_UPLOAD_CONFIG, _ as _objectWithoutProperties } from './utils-46caa3d3.js';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';
10
10
  import { useState, useEffect } from 'react';
11
11
 
@@ -155,4 +155,4 @@ var ImageWithFallback = function ImageWithFallback(_ref) {
155
155
  };
156
156
 
157
157
  export { ImageWithFallback as I, ImageDirectUpload as a };
158
- //# sourceMappingURL=ImageWithFallback-a45f3f4a.js.map
158
+ //# sourceMappingURL=ImageWithFallback-1d3c6c16.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImageWithFallback-a45f3f4a.js","sources":["../app/javascript/src/components/ImageUploader/utils.js","../app/javascript/src/components/common/ProgressBar.jsx","../app/javascript/src/components/common/ImageDirectUpload.jsx","../app/javascript/src/components/common/ImagePlaceholder.jsx","../app/javascript/src/components/common/ImageWithFallback.jsx"],"sourcesContent":["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","const ProgressBar = ({ progressPercentage = 0, progressValue }) => (\n <div className=\"neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full cursor-pointer items-center justify-center gap-3 border border-dashed p-5 transition-all duration-300 ease-in-out\">\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-full w-full overflow-hidden dark:bg-gray-700\">\n <div\n className=\"neeto-ui-bg-primary-600 text-2xs neeto-ui-text-primary-100 neeto-ui-rounded-full flex h-3 animate-pulse items-center justify-center font-medium leading-none transition-all duration-300 ease-in-out\"\n data-cy=\"neeto-image-uploader-progress-bar\"\n style={{ width: `${progressPercentage}%` }}\n >\n {progressValue}\n </div>\n </div>\n </div>\n);\n\nexport default ProgressBar;\n","import classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Button, Typography } 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\";\nimport ProgressBar from \"./ProgressBar\";\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 shouldShowProgress ? (\n <ProgressBar\n progressPercentage={uploadProgress}\n progressValue={`${uploadProgress}%`}\n />\n ) : (\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 <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 </div>\n );\n};\n\nexport default ImageDirectUpload;\n","import classnames from \"classnames\";\n\nconst ImagePlaceholder = ({ className = \"\", ...props }) => (\n <div\n className={classnames(\"neeto-ui-bg-gray-200\", {\n [className]: className,\n })}\n {...props}\n />\n);\n\nexport default ImagePlaceholder;\n","import { useEffect, useState } from \"react\";\n\nimport ImagePlaceholder from \"./ImagePlaceholder\";\n\nconst ImageWithFallback = ({\n src,\n className = \"h-full w-full\",\n fallback: Fallback = ImagePlaceholder,\n ...props\n}) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n const img = new Image();\n img.onload = () => {\n setIsLoaded(true);\n };\n img.src = src;\n }, [src]);\n\n return isLoaded ? (\n <img {...{ src, ...props }} className=\"h-full w-auto object-contain\" />\n ) : (\n <Fallback {...{ className, ...props }} />\n );\n};\n\nexport default ImageWithFallback;\n"],"names":["getAllowedTypes","uploadConfig","pipe","values","flatten","map","extension","slice","toUpper","join","allowedImageTypes","ProgressBar","_ref","_ref$progressPercenta","progressPercentage","progressValue","_jsx","className","children","style","width","concat","ImageDirectUpload","_ref$uploadConfig","DEFAULT_UPLOAD_CONFIG","_ref$onDrop","onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_useUploadDropzone","useUploadDropzone","getRootProps","getInputProps","isDragActive","uploadProgress","shouldShowProgress","equals","_objectSpread","classnames","DROPZONE_ROOT_DIV_CLASSNAME","_jsxs","Typography","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","maxImageSize","ImagePlaceholder","_ref$className","props","_objectWithoutProperties","_excluded","_defineProperty","ImageWithFallback","src","_ref$fallback","fallback","Fallback","_useState","useState","_useState2","_slicedToArray","isLoaded","setIsLoaded","useEffect","img","Image","onload"],"mappings":"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"}
1
+ {"version":3,"file":"ImageWithFallback-1d3c6c16.js","sources":["../app/javascript/src/components/ImageUploader/utils.js","../app/javascript/src/components/common/ProgressBar.jsx","../app/javascript/src/components/common/ImageDirectUpload.jsx","../app/javascript/src/components/common/ImagePlaceholder.jsx","../app/javascript/src/components/common/ImageWithFallback.jsx"],"sourcesContent":["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","const ProgressBar = ({ progressPercentage = 0, progressValue }) => (\n <div className=\"neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full cursor-pointer items-center justify-center gap-3 border border-dashed p-5 transition-all duration-300 ease-in-out\">\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-full w-full overflow-hidden dark:bg-gray-700\">\n <div\n className=\"neeto-ui-bg-primary-600 text-2xs neeto-ui-text-primary-100 neeto-ui-rounded-full flex h-3 animate-pulse items-center justify-center font-medium leading-none transition-all duration-300 ease-in-out\"\n data-cy=\"neeto-image-uploader-progress-bar\"\n style={{ width: `${progressPercentage}%` }}\n >\n {progressValue}\n </div>\n </div>\n </div>\n);\n\nexport default ProgressBar;\n","import classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Button, Typography } 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\";\nimport ProgressBar from \"./ProgressBar\";\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 shouldShowProgress ? (\n <ProgressBar\n progressPercentage={uploadProgress}\n progressValue={`${uploadProgress}%`}\n />\n ) : (\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 <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 </div>\n );\n};\n\nexport default ImageDirectUpload;\n","import classnames from \"classnames\";\n\nconst ImagePlaceholder = ({ className = \"\", ...props }) => (\n <div\n className={classnames(\"neeto-ui-bg-gray-200\", {\n [className]: className,\n })}\n {...props}\n />\n);\n\nexport default ImagePlaceholder;\n","import { useEffect, useState } from \"react\";\n\nimport ImagePlaceholder from \"./ImagePlaceholder\";\n\nconst ImageWithFallback = ({\n src,\n className = \"h-full w-full\",\n fallback: Fallback = ImagePlaceholder,\n ...props\n}) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n const img = new Image();\n img.onload = () => {\n setIsLoaded(true);\n };\n img.src = src;\n }, [src]);\n\n return isLoaded ? (\n <img {...{ src, ...props }} className=\"h-full w-auto object-contain\" />\n ) : (\n <Fallback {...{ className, ...props }} />\n );\n};\n\nexport default ImageWithFallback;\n"],"names":["getAllowedTypes","uploadConfig","pipe","values","flatten","map","extension","slice","toUpper","join","allowedImageTypes","ProgressBar","_ref","_ref$progressPercenta","progressPercentage","progressValue","_jsx","className","children","style","width","concat","ImageDirectUpload","_ref$uploadConfig","DEFAULT_UPLOAD_CONFIG","_ref$onDrop","onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_useUploadDropzone","useUploadDropzone","getRootProps","getInputProps","isDragActive","uploadProgress","shouldShowProgress","equals","_objectSpread","classnames","DROPZONE_ROOT_DIV_CLASSNAME","_jsxs","Typography","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","maxImageSize","ImagePlaceholder","_ref$className","props","_objectWithoutProperties","_excluded","_defineProperty","ImageWithFallback","src","_ref$fallback","fallback","Fallback","_useState","useState","_useState2","_slicedToArray","isLoaded","setIsLoaded","useEffect","img","Image","onload"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-7f064861.js');
3
+ var index = require('./index-69559a7a.js');
4
4
  var classnames = require('classnames');
5
5
  var neetoCist = require('@bigbinary/neeto-cist');
6
6
  var Button = require('@bigbinary/neetoui/Button');
7
7
  var Typography = require('@bigbinary/neetoui/Typography');
8
8
  var ramda = require('ramda');
9
9
  var reactI18next = require('react-i18next');
10
- var utils = require('./utils-88cce499.js');
10
+ var utils = require('./utils-2fc0a9dc.js');
11
11
  var jsxRuntime = require('react/jsx-runtime');
12
12
  var require$$0 = require('react');
13
13
 
@@ -164,4 +164,4 @@ var ImageWithFallback = function ImageWithFallback(_ref) {
164
164
 
165
165
  exports.ImageDirectUpload = ImageDirectUpload;
166
166
  exports.ImageWithFallback = ImageWithFallback;
167
- //# sourceMappingURL=ImageWithFallback-aacc383b.js.map
167
+ //# sourceMappingURL=ImageWithFallback-da061171.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImageWithFallback-aacc383b.js","sources":["../app/javascript/src/components/ImageUploader/utils.js","../app/javascript/src/components/common/ProgressBar.jsx","../app/javascript/src/components/common/ImageDirectUpload.jsx","../app/javascript/src/components/common/ImagePlaceholder.jsx","../app/javascript/src/components/common/ImageWithFallback.jsx"],"sourcesContent":["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","const ProgressBar = ({ progressPercentage = 0, progressValue }) => (\n <div className=\"neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full cursor-pointer items-center justify-center gap-3 border border-dashed p-5 transition-all duration-300 ease-in-out\">\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-full w-full overflow-hidden dark:bg-gray-700\">\n <div\n className=\"neeto-ui-bg-primary-600 text-2xs neeto-ui-text-primary-100 neeto-ui-rounded-full flex h-3 animate-pulse items-center justify-center font-medium leading-none transition-all duration-300 ease-in-out\"\n data-cy=\"neeto-image-uploader-progress-bar\"\n style={{ width: `${progressPercentage}%` }}\n >\n {progressValue}\n </div>\n </div>\n </div>\n);\n\nexport default ProgressBar;\n","import classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Button, Typography } 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\";\nimport ProgressBar from \"./ProgressBar\";\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 shouldShowProgress ? (\n <ProgressBar\n progressPercentage={uploadProgress}\n progressValue={`${uploadProgress}%`}\n />\n ) : (\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 <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 </div>\n );\n};\n\nexport default ImageDirectUpload;\n","import classnames from \"classnames\";\n\nconst ImagePlaceholder = ({ className = \"\", ...props }) => (\n <div\n className={classnames(\"neeto-ui-bg-gray-200\", {\n [className]: className,\n })}\n {...props}\n />\n);\n\nexport default ImagePlaceholder;\n","import { useEffect, useState } from \"react\";\n\nimport ImagePlaceholder from \"./ImagePlaceholder\";\n\nconst ImageWithFallback = ({\n src,\n className = \"h-full w-full\",\n fallback: Fallback = ImagePlaceholder,\n ...props\n}) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n const img = new Image();\n img.onload = () => {\n setIsLoaded(true);\n };\n img.src = src;\n }, [src]);\n\n return isLoaded ? (\n <img {...{ src, ...props }} className=\"h-full w-auto object-contain\" />\n ) : (\n <Fallback {...{ className, ...props }} />\n );\n};\n\nexport default ImageWithFallback;\n"],"names":["getAllowedTypes","uploadConfig","pipe","values","flatten","map","extension","slice","toUpper","join","allowedImageTypes","ProgressBar","_ref","_ref$progressPercenta","progressPercentage","progressValue","_jsx","className","children","style","width","concat","ImageDirectUpload","_ref$uploadConfig","DEFAULT_UPLOAD_CONFIG","_ref$onDrop","onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_useUploadDropzone","useUploadDropzone","getRootProps","getInputProps","isDragActive","uploadProgress","shouldShowProgress","equals","_objectSpread","classnames","DROPZONE_ROOT_DIV_CLASSNAME","_jsxs","Typography","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","maxImageSize","ImagePlaceholder","_ref$className","props","_objectWithoutProperties","_excluded","_defineProperty","ImageWithFallback","src","_ref$fallback","fallback","Fallback","_useState","useState","_useState2","_slicedToArray","isLoaded","setIsLoaded","useEffect","img","Image","onload"],"mappings":"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"}
1
+ {"version":3,"file":"ImageWithFallback-da061171.js","sources":["../app/javascript/src/components/ImageUploader/utils.js","../app/javascript/src/components/common/ProgressBar.jsx","../app/javascript/src/components/common/ImageDirectUpload.jsx","../app/javascript/src/components/common/ImagePlaceholder.jsx","../app/javascript/src/components/common/ImageWithFallback.jsx"],"sourcesContent":["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","const ProgressBar = ({ progressPercentage = 0, progressValue }) => (\n <div className=\"neeto-ui-border-primary-600 hover:neeto-ui-bg-gray-100 neeto-ui-rounded-lg flex h-full cursor-pointer items-center justify-center gap-3 border border-dashed p-5 transition-all duration-300 ease-in-out\">\n <div className=\"neeto-ui-bg-gray-200 neeto-ui-rounded-full w-full overflow-hidden dark:bg-gray-700\">\n <div\n className=\"neeto-ui-bg-primary-600 text-2xs neeto-ui-text-primary-100 neeto-ui-rounded-full flex h-3 animate-pulse items-center justify-center font-medium leading-none transition-all duration-300 ease-in-out\"\n data-cy=\"neeto-image-uploader-progress-bar\"\n style={{ width: `${progressPercentage}%` }}\n >\n {progressValue}\n </div>\n </div>\n </div>\n);\n\nexport default ProgressBar;\n","import classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { Button, Typography } 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\";\nimport ProgressBar from \"./ProgressBar\";\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 shouldShowProgress ? (\n <ProgressBar\n progressPercentage={uploadProgress}\n progressValue={`${uploadProgress}%`}\n />\n ) : (\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 <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 </div>\n );\n};\n\nexport default ImageDirectUpload;\n","import classnames from \"classnames\";\n\nconst ImagePlaceholder = ({ className = \"\", ...props }) => (\n <div\n className={classnames(\"neeto-ui-bg-gray-200\", {\n [className]: className,\n })}\n {...props}\n />\n);\n\nexport default ImagePlaceholder;\n","import { useEffect, useState } from \"react\";\n\nimport ImagePlaceholder from \"./ImagePlaceholder\";\n\nconst ImageWithFallback = ({\n src,\n className = \"h-full w-full\",\n fallback: Fallback = ImagePlaceholder,\n ...props\n}) => {\n const [isLoaded, setIsLoaded] = useState(false);\n\n useEffect(() => {\n const img = new Image();\n img.onload = () => {\n setIsLoaded(true);\n };\n img.src = src;\n }, [src]);\n\n return isLoaded ? (\n <img {...{ src, ...props }} className=\"h-full w-auto object-contain\" />\n ) : (\n <Fallback {...{ className, ...props }} />\n );\n};\n\nexport default ImageWithFallback;\n"],"names":["getAllowedTypes","uploadConfig","pipe","values","flatten","map","extension","slice","toUpper","join","allowedImageTypes","ProgressBar","_ref","_ref$progressPercenta","progressPercentage","progressValue","_jsx","className","children","style","width","concat","ImageDirectUpload","_ref$uploadConfig","DEFAULT_UPLOAD_CONFIG","_ref$onDrop","onDrop","noop","_ref$isDisabled","isDisabled","setIsAssetLibraryOpen","_useUploadDropzone","useUploadDropzone","getRootProps","getInputProps","isDragActive","uploadProgress","shouldShowProgress","equals","_objectSpread","classnames","DROPZONE_ROOT_DIV_CLASSNAME","_jsxs","Typography","Trans","i18nKey","components","span","Button","onClick","e","stopPropagation","disabled","lineHeight","fileTypes","size","maxImageSize","ImagePlaceholder","_ref$className","props","_objectWithoutProperties","_excluded","_defineProperty","ImageWithFallback","src","_ref$fallback","fallback","Fallback","_useState","useState","_useState2","_slicedToArray","isLoaded","setIsLoaded","useEffect","img","Image","onload"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var utils$3 = require('../utils-88cce499.js');
4
- var index = require('../index-7f064861.js');
3
+ var utils$3 = require('../utils-2fc0a9dc.js');
4
+ var index = require('../index-69559a7a.js');
5
5
  var require$$0 = require('react');
6
6
  var neetoCist = require('@bigbinary/neeto-cist');
7
+ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
7
8
  var NeetoUIModal = require('@bigbinary/neetoui/Modal');
8
9
  var Button = require('@bigbinary/neetoui/Button');
9
10
  var Tab = require('@bigbinary/neetoui/Tab');
@@ -12,7 +13,7 @@ var Toastr = require('@bigbinary/neetoui/Toastr');
12
13
  var Typography = require('@bigbinary/neetoui/Typography');
13
14
  var ramda = require('ramda');
14
15
  var reactI18next = require('react-i18next');
15
- var useImageUploader = require('../useImageUploader-550a5fdc.js');
16
+ var useImageUploader = require('../useImageUploader-b78deb18.js');
16
17
  var classnames = require('classnames');
17
18
  var LeftArrow = require('@bigbinary/neeto-icons/LeftArrow');
18
19
  var reactQuery = require('@tanstack/react-query');
@@ -22,8 +23,8 @@ var utils$4 = require('@bigbinary/neeto-commons-frontend/utils');
22
23
  var Input = require('@bigbinary/neetoui/Input');
23
24
  var Switch = require('@bigbinary/neetoui/Switch');
24
25
  var jsxRuntime = require('react/jsx-runtime');
26
+ var query = require('../query-3c31bf92.js');
25
27
  var MenuHorizontal = require('@bigbinary/neeto-icons/MenuHorizontal');
26
- var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
27
28
  var Container = require('@bigbinary/neeto-molecules/Container');
28
29
  var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
29
30
  var i18next = require('i18next');
@@ -586,7 +587,7 @@ var useFetchAssets = function useFetchAssets(_ref) {
586
587
  per = _ref.per;
587
588
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
588
589
  return reactQuery.useInfiniteQuery(_objectSpread$i({
589
- queryKey: [useImageUploader.QUERY_KEYS.ASSETS_LIST, searchTerm],
590
+ queryKey: [query.QUERY_KEYS.ASSETS_LIST, searchTerm],
590
591
  queryFn: function queryFn(_ref2) {
591
592
  var _ref2$pageParam = _ref2.pageParam,
592
593
  pageParam = _ref2$pageParam === void 0 ? 1 : _ref2$pageParam;
@@ -607,7 +608,7 @@ var useFetchAssets = function useFetchAssets(_ref) {
607
608
  };
608
609
  },
609
610
  initialPageParam: 1,
610
- staleTime: useImageUploader.ASSETS_STALE_TIME
611
+ staleTime: query.ASSETS_STALE_TIME
611
612
  }, options));
612
613
  };
613
614
  var useBulkDestroyAssets = function useBulkDestroyAssets(url) {
@@ -618,7 +619,7 @@ var useBulkDestroyAssets = function useBulkDestroyAssets(url) {
618
619
  },
619
620
  onSuccess: function onSuccess(_, variables) {
620
621
  queryClient.setQueriesData({
621
- queryKey: [useImageUploader.QUERY_KEYS.ASSETS_LIST]
622
+ queryKey: [query.QUERY_KEYS.ASSETS_LIST]
622
623
  }, function (old) {
623
624
  return {
624
625
  pages: old.pages.map(function (page) {
@@ -642,21 +643,6 @@ function _typeof$1(o) {
642
643
  return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
643
644
  }, _typeof$1(o);
644
645
  }
645
-
646
- var hasPermission = function hasPermission() {
647
- var _globalProps$permissi;
648
- var permissions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
649
- var type = _typeof$1(permissions);
650
- var userPermissions = (_globalProps$permissi = initializers.globalProps.permissions) !== null && _globalProps$permissi !== void 0 ? _globalProps$permissi : [];
651
- if (Object.is(type, "string")) {
652
- return userPermissions.includes(permissions);
653
- } else if (Array.isArray(permissions)) {
654
- return permissions.some(function (permission) {
655
- return userPermissions.includes(permission);
656
- });
657
- }
658
- return false;
659
- };
660
646
  var isOverflown = function isOverflown(_ref) {
661
647
  var clientWidth = _ref.clientWidth,
662
648
  clientHeight = _ref.clientHeight,
@@ -9744,7 +9730,9 @@ var InfiniteScroller = function InfiniteScroller(_ref) {
9744
9730
  _ref$setSelectedImage = _ref.setSelectedImage,
9745
9731
  setSelectedImage = _ref$setSelectedImage === void 0 ? neetoCist.noop : _ref$setSelectedImage,
9746
9732
  _ref$handleUnsplashIm = _ref.handleUnsplashImageSelect,
9747
- handleUnsplashImageSelect = _ref$handleUnsplashIm === void 0 ? neetoCist.noop : _ref$handleUnsplashIm;
9733
+ handleUnsplashImageSelect = _ref$handleUnsplashIm === void 0 ? neetoCist.noop : _ref$handleUnsplashIm,
9734
+ _ref$handleSubmit = _ref.handleSubmit,
9735
+ handleSubmit = _ref$handleSubmit === void 0 ? neetoCist.noop : _ref$handleSubmit;
9748
9736
  var _useTranslation = reactI18next.useTranslation(),
9749
9737
  t = _useTranslation.t;
9750
9738
  var _useState = require$$0.useState({
@@ -9757,7 +9745,7 @@ var InfiniteScroller = function InfiniteScroller(_ref) {
9757
9745
  var _useBulkDestroyAssets = useBulkDestroyAssets(utils$3.ASSETS_DESTROY_URL),
9758
9746
  isPending = _useBulkDestroyAssets.isPending,
9759
9747
  bulkDelete = _useBulkDestroyAssets.mutate;
9760
- var hasPermissioToDeleteImage = hasPermission(VIEW_ROLES_PERMISSION);
9748
+ var isMenuButtonEnabled = initializers.globalProps.assetsUploaderService !== index.CLOUD_FLARE;
9761
9749
  var handleDelete = require$$0.useCallback(function () {
9762
9750
  bulkDelete(deleteConfirmation.imageIds, {
9763
9751
  onSuccess: function onSuccess() {
@@ -9795,6 +9783,7 @@ var InfiniteScroller = function InfiniteScroller(_ref) {
9795
9783
  },
9796
9784
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
9797
9785
  className: "neeto-ui-rounded-sm neeto-ui-bg-gray-100 group absolute h-full w-full",
9786
+ "data-cy": "library-image-card",
9798
9787
  id: "unsplashImage".concat(image.id),
9799
9788
  children: [tab === utils$3.TABS[1].key && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
9800
9789
  children: [/*#__PURE__*/jsxRuntime.jsx("img", {
@@ -9811,7 +9800,7 @@ var InfiniteScroller = function InfiniteScroller(_ref) {
9811
9800
  children: [image === null || image === void 0 || (_image$user2 = image.user) === null || _image$user2 === void 0 ? void 0 : _image$user2.name, " | ", " ", t("neetoImageUploader.labels.unsplash")]
9812
9801
  })]
9813
9802
  }), tab === utils$3.TABS[0].key && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
9814
- children: [hasPermissioToDeleteImage && /*#__PURE__*/jsxRuntime.jsx(Dropdown__default["default"], {
9803
+ children: [utils$4.hasPermission(VIEW_ROLES_PERMISSION) && isMenuButtonEnabled && /*#__PURE__*/jsxRuntime.jsx(Dropdown__default["default"], {
9815
9804
  buttonSize: "small",
9816
9805
  buttonStyle: "tertiary",
9817
9806
  "data-cy": "image-library-image-options-".concat(index),
@@ -9837,7 +9826,8 @@ var InfiniteScroller = function InfiniteScroller(_ref) {
9837
9826
  "data-cy": "niu-library-image-".concat(index),
9838
9827
  src: image === null || image === void 0 ? void 0 : image.url,
9839
9828
  onClick: function onClick() {
9840
- return setSelectedImage(image);
9829
+ setSelectedImage(image);
9830
+ handleSubmit(image);
9841
9831
  }
9842
9832
  })]
9843
9833
  })]
@@ -9864,7 +9854,8 @@ var InfiniteScroller = function InfiniteScroller(_ref) {
9864
9854
 
9865
9855
  var Images = function Images(_ref) {
9866
9856
  var debouncedQuery = _ref.debouncedQuery,
9867
- setSelectedImage = _ref.setSelectedImage;
9857
+ setSelectedImage = _ref.setSelectedImage,
9858
+ handleSubmit = _ref.handleSubmit;
9868
9859
  var _useTranslation = reactI18next.useTranslation(),
9869
9860
  t = _useTranslation.t;
9870
9861
  var _useFetchAssets = useFetchAssets({
@@ -9894,6 +9885,7 @@ var Images = function Images(_ref) {
9894
9885
  });
9895
9886
  }
9896
9887
  return /*#__PURE__*/require$$0.createElement(InfiniteScroller, {
9888
+ handleSubmit: handleSubmit,
9897
9889
  setSelectedImage: setSelectedImage,
9898
9890
  hasMore: hasNextPage,
9899
9891
  images: results,
@@ -9926,20 +9918,20 @@ var unsplashApi = {
9926
9918
 
9927
9919
  function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9928
9920
  function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { index._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9929
- var UNSPLASH_LIST = useImageUploader.QUERY_KEYS.UNSPLASH_LIST;
9921
+ var UNSPLASH_LIST = query.QUERY_KEYS.UNSPLASH_LIST;
9930
9922
  var useFetchUnsplashImages = function useFetchUnsplashImages(_ref) {
9931
- var query = _ref.query;
9923
+ var query$1 = _ref.query;
9932
9924
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
9933
9925
  return reactQuery.useInfiniteQuery(_objectSpread$1({
9934
9926
  queryKey: [UNSPLASH_LIST, {
9935
- query: query
9927
+ query: query$1
9936
9928
  }],
9937
9929
  queryFn: function queryFn(_ref2) {
9938
9930
  var _ref2$pageParam = _ref2.pageParam,
9939
9931
  pageParam = _ref2$pageParam === void 0 ? 1 : _ref2$pageParam;
9940
9932
  return unsplashApi.searchUnsplashImages({
9941
9933
  pageNo: pageParam,
9942
- query: query
9934
+ query: query$1
9943
9935
  });
9944
9936
  },
9945
9937
  initialPageParam: 1,
@@ -9952,7 +9944,7 @@ var useFetchUnsplashImages = function useFetchUnsplashImages(_ref) {
9952
9944
  results: results
9953
9945
  };
9954
9946
  },
9955
- staleTime: useImageUploader.UNSPLASH_STALE_TIME,
9947
+ staleTime: query.UNSPLASH_STALE_TIME,
9956
9948
  placeholderData: reactQuery.keepPreviousData
9957
9949
  }, options));
9958
9950
  };
@@ -10099,7 +10091,9 @@ var ImageLibrary = function ImageLibrary(_ref) {
10099
10091
  var setSelectedImage = _ref.setSelectedImage,
10100
10092
  tab = _ref.tab,
10101
10093
  setIsUploading = _ref.setIsUploading,
10102
- setActiveTab = _ref.setActiveTab;
10094
+ setActiveTab = _ref.setActiveTab,
10095
+ _ref$handleSubmit = _ref.handleSubmit,
10096
+ handleSubmit = _ref$handleSubmit === void 0 ? neetoCist.noop : _ref$handleSubmit;
10103
10097
  var _useState = require$$0.useState(""),
10104
10098
  _useState2 = index._slicedToArray(_useState, 2),
10105
10099
  query = _useState2[0],
@@ -10126,6 +10120,7 @@ var ImageLibrary = function ImageLibrary(_ref) {
10126
10120
  }
10127
10121
  }), tab === utils$3.TABS[0].key ? /*#__PURE__*/jsxRuntime.jsx(Images, {
10128
10122
  debouncedQuery: debouncedQuery,
10123
+ handleSubmit: handleSubmit,
10129
10124
  query: query,
10130
10125
  setSelectedImage: setSelectedImage
10131
10126
  }) : /*#__PURE__*/jsxRuntime.jsx(UnsplashLibrary, {
@@ -10168,6 +10163,8 @@ var Modal = function Modal(_ref) {
10168
10163
  var _useCreateBlob = useImageUploader.useCreateBlob(),
10169
10164
  createBlob = _useCreateBlob.mutate;
10170
10165
  var uploadConfigWithDefaults = ramda.mergeRight(utils$3.DEFAULT_UPLOAD_CONFIG, uploadConfig);
10166
+ var isImageCropEnabled = initializers.globalProps.assetsUploaderService !== index.CLOUD_FLARE;
10167
+ var isCloudFlareImageUploader = initializers.globalProps.assetsUploaderService === index.CLOUD_FLARE;
10171
10168
  var handleCloseModal = function handleCloseModal() {
10172
10169
  onClose();
10173
10170
  setSelectedImage({});
@@ -10180,7 +10177,7 @@ var Modal = function Modal(_ref) {
10180
10177
  });
10181
10178
  } else {
10182
10179
  var payload = {
10183
- filename: editedImage.name,
10180
+ filename: useImageUploader.generateASCIIFileName(editedImage.name),
10184
10181
  byte_size: editedImage.size,
10185
10182
  content_type: editedImage.fileType,
10186
10183
  checksum: editedImage.fileId,
@@ -10199,8 +10196,29 @@ var Modal = function Modal(_ref) {
10199
10196
  }
10200
10197
  handleCloseModal();
10201
10198
  };
10199
+ var handleUploadToCloudFlare = function handleUploadToCloudFlare(result) {
10200
+ var file = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
10201
+ var payload = {
10202
+ filename: useImageUploader.generateASCIIFileName(result.filename),
10203
+ content_type: file.type,
10204
+ byte_size: file.size,
10205
+ checksum: result.id,
10206
+ metadata: _objectSpread(_objectSpread({}, result), {}, {
10207
+ url: result.variants[0]
10208
+ }),
10209
+ service_name: "cloudflare_image"
10210
+ };
10211
+ createBlob(payload);
10212
+ };
10213
+ var handleSubmit = function handleSubmit(image) {
10214
+ onUploadComplete({
10215
+ url: image.url,
10216
+ signedId: image.signedId
10217
+ });
10218
+ handleCloseModal();
10219
+ };
10202
10220
  var _useImageUploader = useImageUploader.useImageUploader({
10203
- onUploadComplete: setSelectedImage,
10221
+ onUploadComplete: isCloudFlareImageUploader ? handleUploadToCloudFlare : setSelectedImage,
10204
10222
  setIsUploading: setIsUploading
10205
10223
  }),
10206
10224
  uploadFile = _useImageUploader.uploadFile;
@@ -10237,7 +10255,7 @@ var Modal = function Modal(_ref) {
10237
10255
  children: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
10238
10256
  children: t("neetoImageUploader.common.dropHere")
10239
10257
  })
10240
- })), !utils$3.isNilOrEmpty(selectedImage) ? /*#__PURE__*/jsxRuntime.jsx(ImageEditor, {
10258
+ })), !utils$3.isNilOrEmpty(selectedImage) && isImageCropEnabled ? /*#__PURE__*/jsxRuntime.jsx(ImageEditor, {
10241
10259
  fixedAspectRatio: fixedAspectRatio,
10242
10260
  handleImageEditComplete: handleImageEditComplete,
10243
10261
  handleReset: function handleReset() {
@@ -10288,12 +10306,15 @@ var Modal = function Modal(_ref) {
10288
10306
  })
10289
10307
  })]
10290
10308
  })
10291
- }), /*#__PURE__*/jsxRuntime.jsx(ImageLibrary, {
10309
+ }), /*#__PURE__*/jsxRuntime.jsx(ImageLibrary, _objectSpread(_objectSpread({}, _objectSpread({
10292
10310
  setActiveTab: setActiveTab,
10293
10311
  setIsUploading: setIsUploading,
10294
- setSelectedImage: setSelectedImage,
10312
+ setSelectedImage: setSelectedImage
10313
+ }, isCloudFlareImageUploader && {
10314
+ handleSubmit: handleSubmit
10315
+ })), {}, {
10295
10316
  tab: activeTab
10296
- }), ramda.equals(activeTab, utils$3.TABS[1].key) && /*#__PURE__*/jsxRuntime.jsx(NeetoUIModal__default["default"].Footer, {
10317
+ })), ramda.equals(activeTab, utils$3.TABS[1].key) && /*#__PURE__*/jsxRuntime.jsx(NeetoUIModal__default["default"].Footer, {
10297
10318
  className: "flex items-center justify-center gap-2",
10298
10319
  children: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
10299
10320
  style: "body2",