@bigbinary/neeto-image-uploader-frontend 2.3.6 → 2.3.8

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.
@@ -0,0 +1,1984 @@
1
+ import _objectWithoutProperties$1 from '@babel/runtime/helpers/objectWithoutProperties';
2
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
3
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
+ import require$$0, { useState, useEffect, useRef, useCallback, createElement } from 'react';
5
+ import { findBy, isPresent, noop } from '@bigbinary/neeto-cist';
6
+ import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
7
+ import NeetoUIModal from '@bigbinary/neetoui/Modal';
8
+ import Button from '@bigbinary/neetoui/Button';
9
+ import Tab from '@bigbinary/neetoui/Tab';
10
+ import Spinner from '@bigbinary/neetoui/Spinner';
11
+ import Toastr from '@bigbinary/neetoui/Toastr';
12
+ import Typography from '@bigbinary/neetoui/Typography';
13
+ import { mergeLeft, mergeRight, identity, prop, equals } from 'ramda';
14
+ import { useTranslation, Trans } from 'react-i18next';
15
+ import { O as OPTIONS, i as isNilOrEmpty, D as DEFAULT_CROP_CONFIG, a as isItemsCenter, o as onImageLoaded, g as getCloudFlareCroppedURL, b as getImageKitCroppedURL, c as getCropValues, I as IMAGES_PER_PAGE, d as INFINITE_SCROLLER_SIZES, e as INFINITE_SCROLLER_STYLE, T as TABS, A as ASSETS_DESTROY_URL, f as ASSETS_FETCH_URL, U as UNSPLASH_DEFAULT_NAME, h as UNSPLASH_DEFAULT_REQUEST_CONFIG, j as DEFAULT_UPLOAD_CONFIG, u as useUploadDropzone, k as UNSPLASH_URL } from './utils-fa0fa918.js';
16
+ import { u as useCreateBlob, a as useImageUploader, g as generateASCIIFileName } from './useImageUploader-1c60ac64.js';
17
+ import { I as IS_DEVELOPMENT_OR_HEROKU_ENV, C as CLOUD_FLARE } from './index-8605e11c.js';
18
+ import classnames from 'classnames';
19
+ import LeftArrow from '@bigbinary/neeto-icons/LeftArrow';
20
+ import { useMutation, useInfiniteQuery, useQueryClient, keepPreviousData } from '@tanstack/react-query';
21
+ import axios from 'axios';
22
+ import { useDebounce } from '@bigbinary/neeto-commons-frontend/react-utils';
23
+ import { withEventTargetValue, hasPermission } from '@bigbinary/neeto-commons-frontend/utils';
24
+ import Input from '@bigbinary/neetoui/Input';
25
+ import Switch from '@bigbinary/neetoui/Switch';
26
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
27
+ import { Q as QUERY_KEYS, A as ASSETS_STALE_TIME, U as UNSPLASH_STALE_TIME } from './query-dcc7b81b.js';
28
+ import MenuHorizontal from '@bigbinary/neeto-icons/MenuHorizontal';
29
+ import { VIEW_ROLES_PERMISSION } from '@bigbinary/neeto-team-members-frontend/constants';
30
+ import Alert from '@bigbinary/neetoui/Alert';
31
+ import Dropdown from '@bigbinary/neetoui/Dropdown';
32
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
33
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
34
+
35
+ var constructCloudflareImageURL = function constructCloudflareImageURL(url) {
36
+ var domain = window.location.host.split(".").slice(-2).join(".");
37
+ return url.replace("https://imagedelivery.net", "https://images.".concat(domain, "/cdn-cgi/imagedelivery"));
38
+ };
39
+
40
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
41
+
42
+ var css$2 = ".niu-modal {\n width: 95vw !important;\n height: 75vh !important;\n max-width: 1152px !important;\n max-height: 576px !important;\n position: relative !important;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX21vZGFsLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDRSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EsNEJBQUE7RUFDQSw0QkFBQTtFQUNBLDZCQUFBO0FBRkYiLCJzb3VyY2VzQ29udGVudCI6WyIvL0Fic3RyYWN0c1xuQGltcG9ydCBcIi4uL2Fic3RyYWN0cy92YXJpYWJsZXNcIjtcblxuLm5pdS1tb2RhbCB7XG4gIHdpZHRoOiAkbml1LW1vZGFsLXdpZHRoICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogJG5pdS1tb2RhbC1oZWlnaHQgIWltcG9ydGFudDtcbiAgbWF4LXdpZHRoOiAkbml1LW1vZGFsLW1heC13aWR0aCAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiAkbml1LW1vZGFsLW1heC1oZWlnaHQgIWltcG9ydGFudDtcbiAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG59XG4iXX0= */";
43
+ n(css$2,{});
44
+
45
+ var createOptions = function createOptions() {
46
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
47
+ return OPTIONS.map(function (option) {
48
+ return mergeLeft(findBy({
49
+ key: option.key
50
+ }, options), option);
51
+ });
52
+ };
53
+
54
+ var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
55
+
56
+ function getDefaultExportFromCjs (x) {
57
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
58
+ }
59
+
60
+ function getAugmentedNamespace(n) {
61
+ if (n.__esModule) return n;
62
+ var f = n.default;
63
+ if (typeof f == "function") {
64
+ var a = function a () {
65
+ if (this instanceof a) {
66
+ return Reflect.construct(f, arguments, this.constructor);
67
+ }
68
+ return f.apply(this, arguments);
69
+ };
70
+ a.prototype = f.prototype;
71
+ } else a = {};
72
+ Object.defineProperty(a, '__esModule', {value: true});
73
+ Object.keys(n).forEach(function (k) {
74
+ var d = Object.getOwnPropertyDescriptor(n, k);
75
+ Object.defineProperty(a, k, d.get ? d : {
76
+ enumerable: true,
77
+ get: function () {
78
+ return n[k];
79
+ }
80
+ });
81
+ });
82
+ return a;
83
+ }
84
+
85
+ var ReactCrop_min = {exports: {}};
86
+
87
+ ReactCrop_min.exports;
88
+
89
+ (function (module, exports) {
90
+ !function(e,t){module.exports=t(require$$0);}(commonjsGlobal,(e=>(()=>{var t={899:t=>{t.exports=e;}},n={};function o(e){var r=n[e];if(void 0!==r)return r.exports;var i=n[e]={exports:{}};return t[e](i,i.exports,o),i.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]});},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0});};var r={};return (()=>{o.r(r),o.d(r,{Component:()=>u,areCropsEqual:()=>h,centerCrop:()=>d,clamp:()=>a,containCrop:()=>p,convertToPercentCrop:()=>c,convertToPixelCrop:()=>l,default:()=>u,defaultCrop:()=>i,makeAspectCrop:()=>s,nudgeCrop:()=>g});var e=o(899),t=o.n(e);function n(e){var t,o,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(o=n(e[t]))&&(r&&(r+=" "),r+=o);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}const i={x:0,y:0,width:0,height:0,unit:"px"};function a(e,t,n){return Math.min(Math.max(e,t),n)}function h(e,t){return e.width===t.width&&e.height===t.height&&e.x===t.x&&e.y===t.y&&e.unit===t.unit}function s(e,t,n,o){const r=l(e,n,o);return e.width&&(r.height=r.width/t),e.height&&(r.width=r.height*t),r.y+r.height>o&&(r.height=o-r.y,r.width=r.height*t),r.x+r.width>n&&(r.width=n-r.x,r.height=r.width/t),"%"===e.unit?c(r,n,o):r}function d(e,t,n){const o=l(e,t,n);return o.x=(t-o.width)/2,o.y=(n-o.height)/2,"%"===e.unit?c(o,t,n):o}function c(e,t,n){return "%"===e.unit?{...i,...e,unit:"%"}:{unit:"%",x:e.x?e.x/t*100:0,y:e.y?e.y/n*100:0,width:e.width?e.width/t*100:0,height:e.height?e.height/n*100:0}}function l(e,t,n){return e.unit?"px"===e.unit?{...i,...e,unit:"px"}:{unit:"px",x:e.x?e.x*t/100:0,y:e.y?e.y*n/100:0,width:e.width?e.width*t/100:0,height:e.height?e.height*n/100:0}:{...i,...e,unit:"px"}}function p(e,t,n,o,r,i=0,a=0,h=o,s=r){const d={...e};let c=Math.min(i,o),l=Math.min(a,r),p=Math.min(h,o),g=Math.min(s,r);t&&(t>1?(c=a?a*t:c,l=c/t,p=h*t):(l=i?i/t:l,c=l*t,g=s/t)),d.y<0&&(d.height=Math.max(d.height+d.y,l),d.y=0),d.x<0&&(d.width=Math.max(d.width+d.x,c),d.x=0);const w=o-(d.x+d.width);w<0&&(d.x=Math.min(d.x,o-c),d.width+=w);const u=r-(d.y+d.height);if(u<0&&(d.y=Math.min(d.y,r-l),d.height+=u),d.width<c&&("sw"!==n&&"nw"!=n||(d.x-=c-d.width),d.width=c),d.height<l&&("nw"!==n&&"ne"!=n||(d.y-=l-d.height),d.height=l),d.width>p&&("sw"!==n&&"nw"!=n||(d.x-=p-d.width),d.width=p),d.height>g&&("nw"!==n&&"ne"!=n||(d.y-=g-d.height),d.height=g),t){const e=d.width/d.height;if(e<t){const e=Math.max(d.width/t,l);"nw"!==n&&"ne"!=n||(d.y-=e-d.height),d.height=e;}else if(e>t){const e=Math.max(d.height*t,c);"sw"!==n&&"nw"!=n||(d.x-=e-d.width),d.width=e;}}return d}function g(e,t,n,o){const r={...e};return "ArrowLeft"===t?"nw"===o?(r.x-=n,r.y-=n,r.width+=n,r.height+=n):"w"===o?(r.x-=n,r.width+=n):"sw"===o?(r.x-=n,r.width+=n,r.height+=n):"ne"===o?(r.y+=n,r.width-=n,r.height-=n):"e"===o?r.width-=n:"se"===o&&(r.width-=n,r.height-=n):"ArrowRight"===t&&("nw"===o?(r.x+=n,r.y+=n,r.width-=n,r.height-=n):"w"===o?(r.x+=n,r.width-=n):"sw"===o?(r.x+=n,r.width-=n,r.height-=n):"ne"===o?(r.y-=n,r.width+=n,r.height+=n):"e"===o?r.width+=n:"se"===o&&(r.width+=n,r.height+=n)),"ArrowUp"===t?"nw"===o?(r.x-=n,r.y-=n,r.width+=n,r.height+=n):"n"===o?(r.y-=n,r.height+=n):"ne"===o?(r.y-=n,r.width+=n,r.height+=n):"sw"===o?(r.x+=n,r.width-=n,r.height-=n):"s"===o?r.height-=n:"se"===o&&(r.width-=n,r.height-=n):"ArrowDown"===t&&("nw"===o?(r.x+=n,r.y+=n,r.width-=n,r.height-=n):"n"===o?(r.y+=n,r.height-=n):"ne"===o?(r.y+=n,r.width-=n,r.height-=n):"sw"===o?(r.x-=n,r.width+=n,r.height+=n):"s"===o?r.height+=n:"se"===o&&(r.width+=n,r.height+=n)),r}const w={capture:!0,passive:!1};class u extends e.PureComponent{constructor(){super(...arguments),this.docMoveBound=!1,this.mouseDownOnCrop=!1,this.dragStarted=!1,this.evData={startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0},this.componentRef=(0, e.createRef)(),this.mediaRef=(0, e.createRef)(),this.initChangeCalled=!1,this.state={cropIsActive:!1,newCropIsBeingDrawn:!1},this.onCropPointerDown=e=>{const{crop:t,disabled:n}=this.props,o=this.getBox();if(!t)return;const r=l(t,o.width,o.height);if(n)return;e.cancelable&&e.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});const i=e.target.dataset.ord,a=Boolean(i);let h=e.clientX,s=e.clientY,d=r.x,c=r.y;if(i){const t=e.clientX-o.x,n=e.clientY-o.y;let a=0,l=0;"ne"===i||"e"==i?(a=t-(r.x+r.width),l=n-r.y,d=r.x,c=r.y+r.height):"se"===i||"s"===i?(a=t-(r.x+r.width),l=n-(r.y+r.height),d=r.x,c=r.y):"sw"===i||"w"==i?(a=t-r.x,l=n-(r.y+r.height),d=r.x+r.width,c=r.y):"nw"!==i&&"n"!=i||(a=t-r.x,l=n-r.y,d=r.x+r.width,c=r.y+r.height),h=d+o.x+a,s=c+o.y+l;}this.evData={startClientX:h,startClientY:s,startCropX:d,startCropY:c,clientX:e.clientX,clientY:e.clientY,isResize:a,ord:i},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0});},this.onComponentPointerDown=e=>{const{crop:t,disabled:n,locked:o,keepSelection:r,onChange:i}=this.props,a=this.getBox();if(n||o||r&&t)return;e.cancelable&&e.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});const h=e.clientX-a.x,s=e.clientY-a.y,d={unit:"px",x:h,y:s,width:0,height:0};this.evData={startClientX:e.clientX,startClientY:e.clientY,startCropX:h,startCropY:s,clientX:e.clientX,clientY:e.clientY,isResize:!0},this.mouseDownOnCrop=!0,i(l(d,a.width,a.height),c(d,a.width,a.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0});},this.onDocPointerMove=e=>{const{crop:t,disabled:n,onChange:o,onDragStart:r}=this.props,i=this.getBox();if(n||!t||!this.mouseDownOnCrop)return;e.cancelable&&e.preventDefault(),this.dragStarted||(this.dragStarted=!0,r&&r(e));const{evData:a}=this;let s;a.clientX=e.clientX,a.clientY=e.clientY,s=a.isResize?this.resizeCrop():this.dragCrop(),h(t,s)||o(l(s,i.width,i.height),c(s,i.width,i.height));},this.onComponentKeyDown=e=>{const{crop:t,disabled:n,onChange:o,onComplete:r}=this.props,i=this.getBox();if(n)return;const h=e.key;let s=!1;if(!t)return;const d=this.makePixelCrop(),p=(navigator.platform.match("Mac")?e.metaKey:e.ctrlKey)?u.nudgeStepLarge:e.shiftKey?u.nudgeStepMedium:u.nudgeStep;if("ArrowLeft"===h?(d.x-=p,s=!0):"ArrowRight"===h?(d.x+=p,s=!0):"ArrowUp"===h?(d.y-=p,s=!0):"ArrowDown"===h&&(d.y+=p,s=!0),s){e.cancelable&&e.preventDefault(),d.x=a(d.x,0,i.width-d.width),d.y=a(d.y,0,i.height-d.height);const t=l(d,i.width,i.height),n=c(d,i.width,i.height);o(t,n),r&&r(t,n);}},this.onHandlerKeyDown=(e,t)=>{const{aspect:n=0,crop:o,disabled:r,minWidth:i=0,minHeight:a=0,maxWidth:s,maxHeight:d,onChange:w,onComplete:m}=this.props,y=this.getBox();if(r||!o)return;if("ArrowUp"!==e.key&&"ArrowDown"!==e.key&&"ArrowLeft"!==e.key&&"ArrowRight"!==e.key)return;e.stopPropagation(),e.preventDefault();const x=(navigator.platform.match("Mac")?e.metaKey:e.ctrlKey)?u.nudgeStepLarge:e.shiftKey?u.nudgeStepMedium:u.nudgeStep,C=p(g(l(o,y.width,y.height),e.key,x,t),n,t,y.width,y.height,i,a,s,d);if(!h(o,C)){const e=c(C,y.width,y.height);w(C,e),m&&m(C,e);}},this.onDocPointerDone=e=>{const{crop:t,disabled:n,onComplete:o,onDragEnd:r}=this.props,i=this.getBox();this.unbindDocMove(),!n&&t&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,r&&r(e),o&&o(l(t,i.width,i.height),c(t,i.width,i.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}));},this.onDragFocus=e=>{var t;null===(t=this.componentRef.current)||void 0===t||t.scrollTo(0,0);};}get document(){return document}getBox(){const e=this.mediaRef.current;if(!e)return {x:0,y:0,width:0,height:0};const{x:t,y:n,width:o,height:r}=e.getBoundingClientRect();return {x:t,y:n,width:o,height:r}}componentDidUpdate(e){const{crop:t,onComplete:n}=this.props;if(n&&!e.crop&&t){const{width:e,height:o}=this.getBox();e&&o&&n(l(t,e,o),c(t,e,o));}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect();}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,w),this.document.addEventListener("pointerup",this.onDocPointerDone,w),this.document.addEventListener("pointercancel",this.onDocPointerDone,w),this.docMoveBound=!0);}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,w),this.document.removeEventListener("pointerup",this.onDocPointerDone,w),this.document.removeEventListener("pointercancel",this.onDocPointerDone,w),this.docMoveBound=!1);}getCropStyle(){const{crop:e}=this.props;if(e)return {top:`${e.y}${e.unit}`,left:`${e.x}${e.unit}`,width:`${e.width}${e.unit}`,height:`${e.height}${e.unit}`}}dragCrop(){const{evData:e}=this,t=this.getBox(),n=this.makePixelCrop(),o=e.clientX-e.startClientX,r=e.clientY-e.startClientY;return n.x=a(e.startCropX+o,0,t.width-n.width),n.y=a(e.startCropY+r,0,t.height-n.height),n}getPointRegion(e){const{evData:t}=this,n=t.clientX-e.x,o=t.clientY-e.y<t.startCropY;return n<t.startCropX?o?"nw":"sw":o?"ne":"se"}resizeCrop(){const{evData:e}=this,t=this.getBox(),{aspect:n=0,minWidth:o=0,minHeight:r=0,maxWidth:i,maxHeight:a}=this.props,h=this.getPointRegion(t),s=this.makePixelCrop(),d=e.ord?e.ord:h,c=e.clientX-e.startClientX,l=e.clientY-e.startClientY,g={unit:"px",x:0,y:0,width:0,height:0};"ne"===h?(g.x=e.startCropX,g.width=c,n?(g.height=g.width/n,g.y=e.startCropY-g.height):(g.height=Math.abs(l),g.y=e.startCropY-g.height)):"se"===h?(g.x=e.startCropX,g.y=e.startCropY,g.width=c,g.height=n?g.width/n:l):"sw"===h?(g.x=e.startCropX+c,g.y=e.startCropY,g.width=Math.abs(c),g.height=n?g.width/n:l):"nw"===h&&(g.x=e.startCropX+c,g.width=Math.abs(c),n?(g.height=g.width/n,g.y=e.startCropY-g.height):(g.height=Math.abs(l),g.y=e.startCropY+l));const w=p(g,n,h,t.width,t.height,o,r,i,a);return n||u.xyOrds.indexOf(d)>-1?(s.x=w.x,s.y=w.y,s.width=w.width,s.height=w.height):u.xOrds.indexOf(d)>-1?(s.x=w.x,s.width=w.width):u.yOrds.indexOf(d)>-1&&(s.y=w.y,s.height=w.height),s}createCropSelection(){const{ariaLabels:e=u.defaultProps.ariaLabels,disabled:n,locked:o,renderSelectionAddon:r,ruleOfThirds:i,crop:a}=this.props,h=this.getCropStyle();if(a)return t().createElement("div",{style:h,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":e.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!n&&!o&&t().createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},t().createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),t().createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),t().createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),t().createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),t().createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":e.nwDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"nw"),role:"button"}),t().createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":e.nDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"n"),role:"button"}),t().createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":e.neDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"ne"),role:"button"}),t().createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":e.eDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"e"),role:"button"}),t().createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":e.seDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"se"),role:"button"}),t().createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":e.sDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"s"),role:"button"}),t().createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":e.swDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"sw"),role:"button"}),t().createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":e.wDragHandle,onKeyDown:e=>this.onHandlerKeyDown(e,"w"),role:"button"})),r&&t().createElement("div",{className:"ReactCrop__selection-addon",onMouseDown:e=>e.stopPropagation()},r(this.state)),i&&t().createElement(t().Fragment,null,t().createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),t().createElement("div",{className:"ReactCrop__rule-of-thirds-vt"})))}makePixelCrop(){const e={...i,...this.props.crop||{}},t=this.getBox();return l(e,t.width,t.height)}render(){const{aspect:e,children:o,circularCrop:r,className:i,crop:a,disabled:h,locked:s,style:d,ruleOfThirds:c}=this.props,{cropIsActive:l,newCropIsBeingDrawn:p}=this.state,g=a?this.createCropSelection():null,w=function(){for(var e,t,o=0,r="";o<arguments.length;)(e=arguments[o++])&&(t=n(e))&&(r&&(r+=" "),r+=t);return r}("ReactCrop",i,{"ReactCrop--active":l,"ReactCrop--disabled":h,"ReactCrop--locked":s,"ReactCrop--new-crop":p,"ReactCrop--fixed-aspect":a&&e,"ReactCrop--circular-crop":a&&r,"ReactCrop--rule-of-thirds":a&&c,"ReactCrop--invisible-crop":!this.dragStarted&&a&&!a.width&&!a.height});return t().createElement("div",{ref:this.componentRef,className:w,style:d},t().createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},o),g)}}u.xOrds=["e","w"],u.yOrds=["n","s"],u.xyOrds=["nw","ne","se","sw"],u.nudgeStep=1,u.nudgeStepMedium=10,u.nudgeStepLarge=100,u.defaultProps={ariaLabels:{cropArea:"Use the arrow keys to move the crop selection area",nwDragHandle:"Use the arrow keys to move the north west drag handle to change the crop selection area",nDragHandle:"Use the up and down arrow keys to move the north drag handle to change the crop selection area",neDragHandle:"Use the arrow keys to move the north east drag handle to change the crop selection area",eDragHandle:"Use the up and down arrow keys to move the east drag handle to change the crop selection area",seDragHandle:"Use the arrow keys to move the south east drag handle to change the crop selection area",sDragHandle:"Use the up and down arrow keys to move the south drag handle to change the crop selection area",swDragHandle:"Use the arrow keys to move the south west drag handle to change the crop selection area",wDragHandle:"Use the up and down arrow keys to move the west drag handle to change the crop selection area"}};})(),r})()));
91
+ } (ReactCrop_min, ReactCrop_min.exports));
92
+
93
+ var ReactCrop_minExports = ReactCrop_min.exports;
94
+ var ReactCrop = /*@__PURE__*/getDefaultExportFromCjs(ReactCrop_minExports);
95
+
96
+ var cropImage = function cropImage(payload) {
97
+ return axios.post("neeto_image_uploader_engine/development/crop_image", payload);
98
+ };
99
+ var developmentApi = {
100
+ cropImage: cropImage
101
+ };
102
+
103
+ function ownKeys$4(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; }
104
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
105
+ var useCropImage = function useCropImage(options) {
106
+ return useMutation(_objectSpread$4({
107
+ mutationFn: developmentApi.cropImage
108
+ }, options));
109
+ };
110
+
111
+ var css$1 = ".ReactCrop{position:relative;display:inline-block;cursor:crosshair;overflow:hidden;max-width:100%}.ReactCrop *,.ReactCrop *::before,.ReactCrop *::after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translate3d(0, 0, 0);cursor:move;box-shadow:0 0 0 9999em rgba(0,0,0,.5);border:1px dashed #fff}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%;box-shadow:0px 0px 1px 1px #fff,0 0 0 9999em rgba(0,0,0,.5)}.ReactCrop__crop-selection:focus{outline:none;border-color:blue;border-style:solid}.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt::before,.ReactCrop__rule-of-thirds-vt::after,.ReactCrop__rule-of-thirds-hz::before,.ReactCrop__rule-of-thirds-hz::after{content:\"\";display:block;position:absolute;background-color:rgba(255,255,255,.4)}.ReactCrop__rule-of-thirds-vt::before,.ReactCrop__rule-of-thirds-vt::after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt::before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt::after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz::before,.ReactCrop__rule-of-thirds-hz::after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz::before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz::after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute}.ReactCrop__drag-handle::after{position:absolute;content:\"\";display:block;width:10px;height:10px;background-color:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.7);outline:1px solid rgba(0,0,0,0)}.ReactCrop__drag-handle:focus::after{border-color:blue;background:#2dbfff}.ReactCrop .ord-nw{top:0;left:0;margin-top:-5px;margin-left:-5px;cursor:nw-resize}.ReactCrop .ord-nw::after{top:0;left:0}.ReactCrop .ord-n{top:0;left:50%;margin-top:-5px;margin-left:-5px;cursor:n-resize}.ReactCrop .ord-n::after{top:0}.ReactCrop .ord-ne{top:0;right:0;margin-top:-5px;margin-right:-5px;cursor:ne-resize}.ReactCrop .ord-ne::after{top:0;right:0}.ReactCrop .ord-e{top:50%;right:0;margin-top:-5px;margin-right:-5px;cursor:e-resize}.ReactCrop .ord-e::after{right:0}.ReactCrop .ord-se{bottom:0;right:0;margin-bottom:-5px;margin-right:-5px;cursor:se-resize}.ReactCrop .ord-se::after{bottom:0;right:0}.ReactCrop .ord-s{bottom:0;left:50%;margin-bottom:-5px;margin-left:-5px;cursor:s-resize}.ReactCrop .ord-s::after{bottom:0}.ReactCrop .ord-sw{bottom:0;left:0;margin-bottom:-5px;margin-left:-5px;cursor:sw-resize}.ReactCrop .ord-sw::after{bottom:0;left:0}.ReactCrop .ord-w{top:50%;left:0;margin-top:-5px;margin-left:-5px;cursor:w-resize}.ReactCrop .ord-w::after{left:0}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:6px;margin-top:-3px}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:6px;height:100%;margin-right:-3px}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:6px;margin-bottom:-3px}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:6px;height:100%;margin-left:-3px}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar{display:none}.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media(pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:24px;height:24px}}.ReactCrop .ReactCrop__child-wrapper {\n width: 100%;\n height: 100%;\n}.ReactCrop .ReactCrop__child-wrapper img {\n height: auto;\n width: auto;\n max-width: 100%;\n max-height: 100%;\n display: block;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9yZWFjdC1pbWFnZS1jcm9wL2Rpc3QvUmVhY3RDcm9wLmNzcyIsImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX3JlYWN0LWNyb3Auc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUFXLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsc0RBQXNELHFCQUFxQixDQUFDLHdDQUF3QyxjQUFjLENBQUMsMEJBQTBCLGtCQUFrQixDQUFDLDhEQUE4RCxhQUFhLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLHdJQUF3SSxpQkFBaUIsQ0FBQyxnRUFBZ0UsaUJBQWlCLENBQUMsMkJBQTJCLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsOEJBQThCLENBQUMsV0FBVyxDQUFDLHNDQUFzQyxDQUFDLHNCQUFzQixDQUFDLGdEQUFnRCxjQUFjLENBQUMscURBQXFELGlCQUFpQixDQUFDLDJEQUEyRCxDQUFDLGlDQUFpQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsc0RBQXNELFlBQVksQ0FBQyxzSkFBc0osVUFBVSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxxQ0FBcUMsQ0FBQywyRUFBMkUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxzQ0FBb0QsbUJBQW1CLENBQUMscUNBQW1ELG1CQUFtQixDQUFDLDJFQUEyRSxVQUFVLENBQUMsVUFBVSxDQUFDLHNDQUFtRCxrQkFBa0IsQ0FBQyxxQ0FBa0Qsa0JBQWtCLENBQUMsd0JBQXdCLGlCQUFpQixDQUFDLCtCQUErQixpQkFBaUIsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsK0JBQStCLENBQUMscUNBQXFDLENBQUMsK0JBQStCLENBQUMscUNBQXFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLHlCQUF5QixLQUFLLENBQUMsbUJBQW1CLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLDBCQUEwQixLQUFLLENBQUMsT0FBTyxDQUFDLGtCQUFrQixPQUFPLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMseUJBQXlCLE9BQU8sQ0FBQyxtQkFBbUIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsUUFBUSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMseUJBQXlCLFFBQVEsQ0FBQyxtQkFBbUIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLHlCQUF5QixNQUFNLENBQUMsNkNBQTZDLGNBQWMsQ0FBQyxxQkFBcUIsaUJBQWlCLENBQUMsMkJBQTJCLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsMkJBQTJCLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQywyQkFBMkIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMscUlBQXFJLFlBQVksQ0FBQyw0TkFBNE4sWUFBWSxDQUFDLHdCQUF3Qix3RUFBd0UsWUFBWSxDQUFDLHdCQUF3QixVQUFVLENBQUMsV0FBVyxDQUFDLENDRzcrSDtFQUNFLFdBQUE7RUFDQSxZQUFBO0FBREosQ0FHSTtFQUNFLFlBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtBQUROIiwic291cmNlc0NvbnRlbnQiOlsiLlJlYWN0Q3JvcHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jaztjdXJzb3I6Y3Jvc3NoYWlyO292ZXJmbG93OmhpZGRlbjttYXgtd2lkdGg6MTAwJX0uUmVhY3RDcm9wICosLlJlYWN0Q3JvcCAqOjpiZWZvcmUsLlJlYWN0Q3JvcCAqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3h9LlJlYWN0Q3JvcC0tZGlzYWJsZWQsLlJlYWN0Q3JvcC0tbG9ja2Vke2N1cnNvcjppbmhlcml0fS5SZWFjdENyb3BfX2NoaWxkLXdyYXBwZXJ7bWF4LWhlaWdodDppbmhlcml0fS5SZWFjdENyb3BfX2NoaWxkLXdyYXBwZXI+aW1nLC5SZWFjdENyb3BfX2NoaWxkLXdyYXBwZXI+dmlkZW97ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OmluaGVyaXR9LlJlYWN0Q3JvcDpub3QoLlJlYWN0Q3JvcC0tZGlzYWJsZWQpIC5SZWFjdENyb3BfX2NoaWxkLXdyYXBwZXI+aW1nLC5SZWFjdENyb3A6bm90KC5SZWFjdENyb3AtLWRpc2FibGVkKSAuUmVhY3RDcm9wX19jaGlsZC13cmFwcGVyPnZpZGVve3RvdWNoLWFjdGlvbjpub25lfS5SZWFjdENyb3A6bm90KC5SZWFjdENyb3AtLWRpc2FibGVkKSAuUmVhY3RDcm9wX19jcm9wLXNlbGVjdGlvbnt0b3VjaC1hY3Rpb246bm9uZX0uUmVhY3RDcm9wX19jcm9wLXNlbGVjdGlvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO2N1cnNvcjptb3ZlO2JveC1zaGFkb3c6MCAwIDAgOTk5OWVtIHJnYmEoMCwwLDAsLjUpO2JvcmRlcjoxcHggZGFzaGVkICNmZmZ9LlJlYWN0Q3JvcC0tZGlzYWJsZWQgLlJlYWN0Q3JvcF9fY3JvcC1zZWxlY3Rpb257Y3Vyc29yOmluaGVyaXR9LlJlYWN0Q3JvcC0tY2lyY3VsYXItY3JvcCAuUmVhY3RDcm9wX19jcm9wLXNlbGVjdGlvbntib3JkZXItcmFkaXVzOjUwJTtib3gtc2hhZG93OjBweCAwcHggMXB4IDFweCAjZmZmLDAgMCAwIDk5OTllbSByZ2JhKDAsMCwwLC41KX0uUmVhY3RDcm9wX19jcm9wLXNlbGVjdGlvbjpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOmJsdWU7Ym9yZGVyLXN0eWxlOnNvbGlkfS5SZWFjdENyb3AtLWludmlzaWJsZS1jcm9wIC5SZWFjdENyb3BfX2Nyb3Atc2VsZWN0aW9ue2Rpc3BsYXk6bm9uZX0uUmVhY3RDcm9wX19ydWxlLW9mLXRoaXJkcy12dDo6YmVmb3JlLC5SZWFjdENyb3BfX3J1bGUtb2YtdGhpcmRzLXZ0OjphZnRlciwuUmVhY3RDcm9wX19ydWxlLW9mLXRoaXJkcy1oejo6YmVmb3JlLC5SZWFjdENyb3BfX3J1bGUtb2YtdGhpcmRzLWh6OjphZnRlcntjb250ZW50OlwiXCI7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjQpfS5SZWFjdENyb3BfX3J1bGUtb2YtdGhpcmRzLXZ0OjpiZWZvcmUsLlJlYWN0Q3JvcF9fcnVsZS1vZi10aGlyZHMtdnQ6OmFmdGVye3dpZHRoOjFweDtoZWlnaHQ6MTAwJX0uUmVhY3RDcm9wX19ydWxlLW9mLXRoaXJkcy12dDo6YmVmb3Jle2xlZnQ6MzMuMzMzMyU7bGVmdDozMy4zMzMzMzMzMzMzJX0uUmVhY3RDcm9wX19ydWxlLW9mLXRoaXJkcy12dDo6YWZ0ZXJ7bGVmdDo2Ni42NjY2JTtsZWZ0OjY2LjY2NjY2NjY2NjclfS5SZWFjdENyb3BfX3J1bGUtb2YtdGhpcmRzLWh6OjpiZWZvcmUsLlJlYWN0Q3JvcF9fcnVsZS1vZi10aGlyZHMtaHo6OmFmdGVye3dpZHRoOjEwMCU7aGVpZ2h0OjFweH0uUmVhY3RDcm9wX19ydWxlLW9mLXRoaXJkcy1oejo6YmVmb3Jle3RvcDozMy4zMzMzJTt0b3A6MzMuMzMzMzMzMzMzMyV9LlJlYWN0Q3JvcF9fcnVsZS1vZi10aGlyZHMtaHo6OmFmdGVye3RvcDo2Ni42NjY2JTt0b3A6NjYuNjY2NjY2NjY2NyV9LlJlYWN0Q3JvcF9fZHJhZy1oYW5kbGV7cG9zaXRpb246YWJzb2x1dGV9LlJlYWN0Q3JvcF9fZHJhZy1oYW5kbGU6OmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2NvbnRlbnQ6XCJcIjtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwcHg7aGVpZ2h0OjEwcHg7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC4yKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjcpO291dGxpbmU6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCl9LlJlYWN0Q3JvcF9fZHJhZy1oYW5kbGU6Zm9jdXM6OmFmdGVye2JvcmRlci1jb2xvcjpibHVlO2JhY2tncm91bmQ6IzJkYmZmZn0uUmVhY3RDcm9wIC5vcmQtbnd7dG9wOjA7bGVmdDowO21hcmdpbi10b3A6LTVweDttYXJnaW4tbGVmdDotNXB4O2N1cnNvcjpudy1yZXNpemV9LlJlYWN0Q3JvcCAub3JkLW53OjphZnRlcnt0b3A6MDtsZWZ0OjB9LlJlYWN0Q3JvcCAub3JkLW57dG9wOjA7bGVmdDo1MCU7bWFyZ2luLXRvcDotNXB4O21hcmdpbi1sZWZ0Oi01cHg7Y3Vyc29yOm4tcmVzaXplfS5SZWFjdENyb3AgLm9yZC1uOjphZnRlcnt0b3A6MH0uUmVhY3RDcm9wIC5vcmQtbmV7dG9wOjA7cmlnaHQ6MDttYXJnaW4tdG9wOi01cHg7bWFyZ2luLXJpZ2h0Oi01cHg7Y3Vyc29yOm5lLXJlc2l6ZX0uUmVhY3RDcm9wIC5vcmQtbmU6OmFmdGVye3RvcDowO3JpZ2h0OjB9LlJlYWN0Q3JvcCAub3JkLWV7dG9wOjUwJTtyaWdodDowO21hcmdpbi10b3A6LTVweDttYXJnaW4tcmlnaHQ6LTVweDtjdXJzb3I6ZS1yZXNpemV9LlJlYWN0Q3JvcCAub3JkLWU6OmFmdGVye3JpZ2h0OjB9LlJlYWN0Q3JvcCAub3JkLXNle2JvdHRvbTowO3JpZ2h0OjA7bWFyZ2luLWJvdHRvbTotNXB4O21hcmdpbi1yaWdodDotNXB4O2N1cnNvcjpzZS1yZXNpemV9LlJlYWN0Q3JvcCAub3JkLXNlOjphZnRlcntib3R0b206MDtyaWdodDowfS5SZWFjdENyb3AgLm9yZC1ze2JvdHRvbTowO2xlZnQ6NTAlO21hcmdpbi1ib3R0b206LTVweDttYXJnaW4tbGVmdDotNXB4O2N1cnNvcjpzLXJlc2l6ZX0uUmVhY3RDcm9wIC5vcmQtczo6YWZ0ZXJ7Ym90dG9tOjB9LlJlYWN0Q3JvcCAub3JkLXN3e2JvdHRvbTowO2xlZnQ6MDttYXJnaW4tYm90dG9tOi01cHg7bWFyZ2luLWxlZnQ6LTVweDtjdXJzb3I6c3ctcmVzaXplfS5SZWFjdENyb3AgLm9yZC1zdzo6YWZ0ZXJ7Ym90dG9tOjA7bGVmdDowfS5SZWFjdENyb3AgLm9yZC13e3RvcDo1MCU7bGVmdDowO21hcmdpbi10b3A6LTVweDttYXJnaW4tbGVmdDotNXB4O2N1cnNvcjp3LXJlc2l6ZX0uUmVhY3RDcm9wIC5vcmQtdzo6YWZ0ZXJ7bGVmdDowfS5SZWFjdENyb3BfX2Rpc2FibGVkIC5SZWFjdENyb3BfX2RyYWctaGFuZGxle2N1cnNvcjppbmhlcml0fS5SZWFjdENyb3BfX2RyYWctYmFye3Bvc2l0aW9uOmFic29sdXRlfS5SZWFjdENyb3BfX2RyYWctYmFyLm9yZC1ue3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDo2cHg7bWFyZ2luLXRvcDotM3B4fS5SZWFjdENyb3BfX2RyYWctYmFyLm9yZC1le3JpZ2h0OjA7dG9wOjA7d2lkdGg6NnB4O2hlaWdodDoxMDAlO21hcmdpbi1yaWdodDotM3B4fS5SZWFjdENyb3BfX2RyYWctYmFyLm9yZC1ze2JvdHRvbTowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDo2cHg7bWFyZ2luLWJvdHRvbTotM3B4fS5SZWFjdENyb3BfX2RyYWctYmFyLm9yZC13e3RvcDowO2xlZnQ6MDt3aWR0aDo2cHg7aGVpZ2h0OjEwMCU7bWFyZ2luLWxlZnQ6LTNweH0uUmVhY3RDcm9wLS1uZXctY3JvcCAuUmVhY3RDcm9wX19kcmFnLWJhciwuUmVhY3RDcm9wLS1uZXctY3JvcCAuUmVhY3RDcm9wX19kcmFnLWhhbmRsZSwuUmVhY3RDcm9wLS1maXhlZC1hc3BlY3QgLlJlYWN0Q3JvcF9fZHJhZy1iYXJ7ZGlzcGxheTpub25lfS5SZWFjdENyb3AtLWZpeGVkLWFzcGVjdCAuUmVhY3RDcm9wX19kcmFnLWhhbmRsZS5vcmQtbiwuUmVhY3RDcm9wLS1maXhlZC1hc3BlY3QgLlJlYWN0Q3JvcF9fZHJhZy1oYW5kbGUub3JkLWUsLlJlYWN0Q3JvcC0tZml4ZWQtYXNwZWN0IC5SZWFjdENyb3BfX2RyYWctaGFuZGxlLm9yZC1zLC5SZWFjdENyb3AtLWZpeGVkLWFzcGVjdCAuUmVhY3RDcm9wX19kcmFnLWhhbmRsZS5vcmQtd3tkaXNwbGF5Om5vbmV9QG1lZGlhKHBvaW50ZXI6IGNvYXJzZSl7LlJlYWN0Q3JvcCAub3JkLW4sLlJlYWN0Q3JvcCAub3JkLWUsLlJlYWN0Q3JvcCAub3JkLXMsLlJlYWN0Q3JvcCAub3JkLXd7ZGlzcGxheTpub25lfS5SZWFjdENyb3BfX2RyYWctaGFuZGxle3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHh9fVxuIiwiQGltcG9ydCBcInJlYWN0LWltYWdlLWNyb3AvZGlzdC9SZWFjdENyb3AuY3NzXCI7XG5cbi5SZWFjdENyb3Age1xuICAuUmVhY3RDcm9wX19jaGlsZC13cmFwcGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG59XG4iXX0= */";
112
+ n(css$1,{});
113
+
114
+ var useImageControls = function useImageControls(_ref) {
115
+ var isAspectRatioLocked = _ref.isAspectRatioLocked,
116
+ setAspectRatioLocked = _ref.setAspectRatioLocked,
117
+ setCrop = _ref.setCrop,
118
+ _ref$crop = _ref.crop,
119
+ crop = _ref$crop === void 0 ? {} : _ref$crop,
120
+ aspectRatio = _ref.aspectRatio,
121
+ imageRef = _ref.imageRef,
122
+ setAspectRatio = _ref.setAspectRatio,
123
+ setHeight = _ref.setHeight,
124
+ setWidth = _ref.setWidth;
125
+ var onToggleAspectRatioLock = function onToggleAspectRatioLock() {
126
+ setAspectRatioLocked(function (isAspectRatioLocked) {
127
+ return !isAspectRatioLocked;
128
+ });
129
+ if (!isAspectRatioLocked) {
130
+ var newHeight = crop.width / (aspectRatio.width / aspectRatio.height);
131
+ var newWidth = crop.height * (aspectRatio.width / aspectRatio.height);
132
+ newWidth + Math.trunc(crop.x) <= imageRef.current.width ? setCrop(mergeRight(crop, {
133
+ width: newWidth
134
+ })) : setCrop(mergeRight(crop, {
135
+ height: newHeight
136
+ }));
137
+ }
138
+ };
139
+ var handleWidthChange = function handleWidthChange(width) {
140
+ var cropWidth = Number(width);
141
+ var displayWidth = cropWidth * imageRef.current.width / imageRef.current.naturalWidth;
142
+ if (displayWidth > 0 && Math.trunc(crop.x) + displayWidth <= imageRef.current.width) {
143
+ if (isAspectRatioLocked) {
144
+ var displayHeight = displayWidth / (aspectRatio.width / aspectRatio.height);
145
+ displayHeight + Math.trunc(crop.y) <= imageRef.current.height && setCrop(mergeRight(crop, {
146
+ width: displayWidth,
147
+ height: displayHeight
148
+ }));
149
+ } else {
150
+ setCrop(mergeRight(crop, {
151
+ width: displayWidth
152
+ }));
153
+ }
154
+ } else {
155
+ setWidth(crop.width.toFixed(2));
156
+ }
157
+ };
158
+ var handleHeightChange = function handleHeightChange(height) {
159
+ var cropHeight = Number(height);
160
+ var displayHeight = cropHeight * imageRef.current.height / imageRef.current.naturalHeight;
161
+ if (displayHeight > 0 && Math.trunc(crop.y) + displayHeight <= imageRef.current.height) {
162
+ if (isAspectRatioLocked) {
163
+ var displayWidth = displayHeight * aspectRatio.width / aspectRatio.height;
164
+ displayWidth + Math.trunc(crop.x) <= imageRef.current.width && setCrop(mergeRight(crop, {
165
+ height: displayHeight,
166
+ width: displayWidth
167
+ }));
168
+ } else {
169
+ setCrop(mergeRight(crop, {
170
+ height: displayHeight
171
+ }));
172
+ }
173
+ } else {
174
+ setHeight(crop.height.toFixed(2));
175
+ }
176
+ };
177
+ var handleAspectWidthChange = function handleAspectWidthChange(aspectWidth) {
178
+ if (aspectWidth <= 0) {
179
+ return;
180
+ }
181
+ if (!isAspectRatioLocked) {
182
+ setAspectRatio(mergeRight(aspectRatio, {
183
+ width: aspectWidth
184
+ }));
185
+ return;
186
+ }
187
+ var newWidth = crop.height * (aspectWidth / aspectRatio.height);
188
+ if (newWidth + Math.trunc(crop.x) <= imageRef.current.width) {
189
+ setCrop(mergeRight(crop, {
190
+ width: newWidth
191
+ }));
192
+ setAspectRatio(mergeRight(aspectRatio, {
193
+ width: aspectWidth
194
+ }));
195
+ }
196
+ };
197
+ var handleAspectHeightChange = function handleAspectHeightChange(aspectHeight) {
198
+ if (aspectHeight <= 0) {
199
+ return;
200
+ }
201
+ if (!isAspectRatioLocked) {
202
+ setAspectRatio(mergeRight(aspectRatio, {
203
+ height: aspectHeight
204
+ }));
205
+ return;
206
+ }
207
+ var newHeight = crop.width / (aspectRatio.width / aspectHeight);
208
+ if (newHeight + Math.trunc(crop.y) <= imageRef.current.height) {
209
+ setCrop(mergeRight(crop, {
210
+ height: newHeight
211
+ }));
212
+ setAspectRatio(mergeRight(aspectRatio, {
213
+ height: aspectHeight
214
+ }));
215
+ }
216
+ };
217
+ return {
218
+ onToggleAspectRatioLock: onToggleAspectRatioLock,
219
+ handleWidthChange: handleWidthChange,
220
+ handleHeightChange: handleHeightChange,
221
+ handleAspectWidthChange: handleAspectWidthChange,
222
+ handleAspectHeightChange: handleAspectHeightChange
223
+ };
224
+ };
225
+
226
+ var Controls = function Controls(_ref) {
227
+ var aspectRatio = _ref.aspectRatio,
228
+ isAspectRatioLocked = _ref.isAspectRatioLocked,
229
+ crop = _ref.crop,
230
+ handleSubmit = _ref.handleSubmit,
231
+ setAspectRatio = _ref.setAspectRatio,
232
+ setAspectRatioLocked = _ref.setAspectRatioLocked,
233
+ setCrop = _ref.setCrop,
234
+ imageRef = _ref.imageRef,
235
+ isFullImage = _ref.isFullImage,
236
+ setIsFullImage = _ref.setIsFullImage,
237
+ _ref$hideControls = _ref.hideControls,
238
+ hideControls = _ref$hideControls === void 0 ? false : _ref$hideControls;
239
+ var _useTranslation = useTranslation(),
240
+ t = _useTranslation.t;
241
+ var getActualCropHeight = function getActualCropHeight(cropHeight) {
242
+ var _imageRef$current, _imageRef$current2;
243
+ return cropHeight * (((_imageRef$current = imageRef.current) === null || _imageRef$current === void 0 ? void 0 : _imageRef$current.naturalHeight) / ((_imageRef$current2 = imageRef.current) === null || _imageRef$current2 === void 0 ? void 0 : _imageRef$current2.height));
244
+ };
245
+ var getActualCropWidth = function getActualCropWidth(cropHeight) {
246
+ var _imageRef$current3, _imageRef$current4;
247
+ return cropHeight * (((_imageRef$current3 = imageRef.current) === null || _imageRef$current3 === void 0 ? void 0 : _imageRef$current3.naturalWidth) / ((_imageRef$current4 = imageRef.current) === null || _imageRef$current4 === void 0 ? void 0 : _imageRef$current4.width));
248
+ };
249
+ var _useState = useState(getActualCropHeight(crop.height)),
250
+ _useState2 = _slicedToArray(_useState, 2),
251
+ height = _useState2[0],
252
+ setHeight = _useState2[1];
253
+ var _useState3 = useState(getActualCropWidth(crop.width)),
254
+ _useState4 = _slicedToArray(_useState3, 2),
255
+ width = _useState4[0],
256
+ setWidth = _useState4[1];
257
+ var _useImageControls = useImageControls({
258
+ isAspectRatioLocked: isAspectRatioLocked,
259
+ setAspectRatioLocked: setAspectRatioLocked,
260
+ setCrop: setCrop,
261
+ crop: crop,
262
+ aspectRatio: aspectRatio,
263
+ imageRef: imageRef,
264
+ setAspectRatio: setAspectRatio,
265
+ setHeight: setHeight,
266
+ setWidth: setWidth
267
+ }),
268
+ onToggleAspectRatioLock = _useImageControls.onToggleAspectRatioLock,
269
+ handleWidthChange = _useImageControls.handleWidthChange,
270
+ handleHeightChange = _useImageControls.handleHeightChange,
271
+ handleAspectWidthChange = _useImageControls.handleAspectWidthChange,
272
+ handleAspectHeightChange = _useImageControls.handleAspectHeightChange;
273
+ var debouncedHeight = useDebounce(height, 800);
274
+ var debouncedWidth = useDebounce(width, 800);
275
+ useEffect(function () {
276
+ handleHeightChange(debouncedHeight);
277
+ }, [debouncedHeight]);
278
+ useEffect(function () {
279
+ handleWidthChange(debouncedWidth);
280
+ }, [debouncedWidth]);
281
+ useEffect(function () {
282
+ setHeight(getActualCropHeight(crop.height));
283
+ setWidth(getActualCropWidth(crop.width));
284
+ }, [crop]);
285
+ return /*#__PURE__*/jsxs("div", {
286
+ className: "flex flex-col p-4 md:w-2/6 ",
287
+ children: [!hideControls && /*#__PURE__*/jsxs(Fragment, {
288
+ children: [/*#__PURE__*/jsx(Switch, {
289
+ checked: isFullImage,
290
+ className: "flex-grow-0",
291
+ label: t("neetoImageUploader.labels.selectOriginalImage"),
292
+ onChange: function onChange() {
293
+ return setIsFullImage(function (isFullImage) {
294
+ return !isFullImage;
295
+ });
296
+ }
297
+ }), /*#__PURE__*/jsx(Switch, {
298
+ checked: isAspectRatioLocked,
299
+ className: "mt-4 flex-grow-0",
300
+ disabled: isFullImage,
301
+ label: t("neetoImageUploader.labels.lockAspectRatio"),
302
+ onChange: onToggleAspectRatioLock
303
+ }), /*#__PURE__*/jsx(Typography, {
304
+ className: "mb-2 mt-6",
305
+ style: "body2",
306
+ children: t("neetoImageUploader.imageEditor.aspectRatio")
307
+ }), /*#__PURE__*/jsxs("div", {
308
+ className: "flex gap-4 self-start",
309
+ children: [/*#__PURE__*/jsx(Input, {
310
+ "data-cy": "aspect-ratio-width-input",
311
+ disabled: isFullImage,
312
+ size: "small",
313
+ type: "number",
314
+ value: aspectRatio.width,
315
+ onChange: withEventTargetValue(handleAspectWidthChange)
316
+ }), /*#__PURE__*/jsx(Typography, {
317
+ children: " : "
318
+ }), /*#__PURE__*/jsx(Input, {
319
+ "data-cy": "aspect-ratio-height-input",
320
+ disabled: isFullImage,
321
+ size: "small",
322
+ type: "number",
323
+ value: aspectRatio.height,
324
+ onChange: withEventTargetValue(handleAspectHeightChange)
325
+ })]
326
+ })]
327
+ }), /*#__PURE__*/jsx(Input, {
328
+ className: "mt-4 flex-grow-0",
329
+ disabled: isFullImage,
330
+ label: t("neetoImageUploader.labels.width"),
331
+ type: "number",
332
+ value: Math.round(width),
333
+ onChange: withEventTargetValue(setWidth)
334
+ }), /*#__PURE__*/jsx(Input, {
335
+ className: "mt-4 flex-grow-0",
336
+ disabled: isFullImage,
337
+ label: t("neetoImageUploader.labels.height"),
338
+ type: "number",
339
+ value: Math.round(height),
340
+ onChange: withEventTargetValue(setHeight)
341
+ }), /*#__PURE__*/jsx(Button, {
342
+ className: "mt-6 self-start",
343
+ "data-cy": "neeto-image-uploader-crop-submit-button",
344
+ label: t("neetoImageUploader.labels.done"),
345
+ disabled: isNilOrEmpty(imageRef.current) && (crop.width <= 0 || crop.height <= 0),
346
+ onClick: handleSubmit
347
+ })]
348
+ });
349
+ };
350
+
351
+ var ImageEditor = function ImageEditor(_ref) {
352
+ var image = _ref.image,
353
+ handleReset = _ref.handleReset,
354
+ _ref$handleImageEditC = _ref.handleImageEditComplete,
355
+ handleImageEditComplete = _ref$handleImageEditC === void 0 ? noop : _ref$handleImageEditC,
356
+ _ref$signedId = _ref.signedId,
357
+ signedId = _ref$signedId === void 0 ? "" : _ref$signedId,
358
+ _ref$fixedAspectRatio = _ref.fixedAspectRatio,
359
+ fixedAspectRatio = _ref$fixedAspectRatio === void 0 ? {} : _ref$fixedAspectRatio;
360
+ var _useState = useState(true),
361
+ _useState2 = _slicedToArray(_useState, 2),
362
+ isAspectRatioLocked = _useState2[0],
363
+ setIsAspectRatioLocked = _useState2[1];
364
+ var _useState3 = useState(false),
365
+ _useState4 = _slicedToArray(_useState3, 2),
366
+ isFullImage = _useState4[0],
367
+ setIsFullImage = _useState4[1];
368
+ var _useState5 = useState({
369
+ width: (fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.width) || 16,
370
+ height: (fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.height) || 9
371
+ }),
372
+ _useState6 = _slicedToArray(_useState5, 2),
373
+ aspectRatio = _useState6[0],
374
+ setAspectRatio = _useState6[1];
375
+ var _useState7 = useState(DEFAULT_CROP_CONFIG),
376
+ _useState8 = _slicedToArray(_useState7, 2),
377
+ crop = _useState8[0],
378
+ setCrop = _useState8[1];
379
+ var _useTranslation = useTranslation(),
380
+ t = _useTranslation.t;
381
+ var _useCropImage = useCropImage(),
382
+ cropImage = _useCropImage.mutate;
383
+ var imageRef = useRef(null);
384
+ var wrapperRef = useRef(null);
385
+ var cropAspectRatio = isPresent(fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.width) && isPresent(fixedAspectRatio.height) ? (fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.width) / (fixedAspectRatio === null || fixedAspectRatio === void 0 ? void 0 : fixedAspectRatio.height) : 16 / 9;
386
+ var processCrop = function processCrop() {
387
+ if (isFullImage) {
388
+ handleImageEditComplete(image);
389
+ return;
390
+ }
391
+ cropImage({
392
+ crop: getCropValues({
393
+ crop: crop,
394
+ imageRef: imageRef
395
+ }),
396
+ signedId: signedId
397
+ }, {
398
+ onSuccess: handleImageEditComplete
399
+ });
400
+ };
401
+ var handleSubmit = function handleSubmit() {
402
+ if (IS_DEVELOPMENT_OR_HEROKU_ENV) {
403
+ processCrop();
404
+ return;
405
+ }
406
+ if (isFullImage) {
407
+ handleImageEditComplete(image);
408
+ return;
409
+ }
410
+ var newURL = globalProps.assetsUploaderService === CLOUD_FLARE ? getCloudFlareCroppedURL({
411
+ imageRef: imageRef,
412
+ image: image,
413
+ crop: crop
414
+ }) : getImageKitCroppedURL({
415
+ crop: crop,
416
+ imageURL: image.url,
417
+ imageRef: imageRef
418
+ });
419
+ handleImageEditComplete(mergeRight(image, {
420
+ url: newURL
421
+ }));
422
+ };
423
+ return /*#__PURE__*/jsxs("div", {
424
+ className: "flex h-full flex-col gap-4 px-8 py-12",
425
+ children: [/*#__PURE__*/jsx(Button, {
426
+ className: "self-start",
427
+ "data-cy": "image-editor-back-button",
428
+ icon: LeftArrow,
429
+ iconPosition: "left",
430
+ style: "text",
431
+ onClick: handleReset
432
+ }), /*#__PURE__*/jsxs("div", {
433
+ className: "flex h-full w-full flex-col gap-2 overflow-y-scroll md:flex-row md:overflow-y-auto",
434
+ children: [/*#__PURE__*/jsx("div", {
435
+ id: "imageEditor",
436
+ ref: wrapperRef,
437
+ className: classnames("flex", "h-full w-full md:w-4/6", "justify-around", "neeto-ui-bg-gray-200", {
438
+ "items-center": isItemsCenter({
439
+ wrapperRef: wrapperRef,
440
+ imageRef: imageRef
441
+ })
442
+ }),
443
+ children: /*#__PURE__*/jsx(ReactCrop, {
444
+ crop: isFullImage ? null : crop,
445
+ src: image === null || image === void 0 ? void 0 : image.url,
446
+ aspect: isAspectRatioLocked ? aspectRatio.width / aspectRatio.height : 0,
447
+ onChange: setCrop,
448
+ onComplete: setCrop,
449
+ children: /*#__PURE__*/jsx("img", {
450
+ alt: t("neetoImageUploader.common.image"),
451
+ "data-cy": "image-editor-uploaded-image",
452
+ ref: imageRef,
453
+ src: image === null || image === void 0 ? void 0 : image.url,
454
+ onLoad: function onLoad(e) {
455
+ return onImageLoaded({
456
+ image: e.target,
457
+ setCrop: setCrop,
458
+ cropAspectRatio: cropAspectRatio
459
+ });
460
+ }
461
+ })
462
+ })
463
+ }), /*#__PURE__*/jsx(Controls, {
464
+ aspectRatio: aspectRatio,
465
+ crop: crop,
466
+ handleSubmit: handleSubmit,
467
+ imageRef: imageRef,
468
+ isAspectRatioLocked: isAspectRatioLocked,
469
+ isFullImage: isFullImage,
470
+ setAspectRatio: setAspectRatio,
471
+ setCrop: setCrop,
472
+ setIsFullImage: setIsFullImage,
473
+ hideControls: isPresent(fixedAspectRatio),
474
+ setAspectRatioLocked: setIsAspectRatioLocked
475
+ })]
476
+ })]
477
+ });
478
+ };
479
+
480
+ var fetch = function fetch(_ref) {
481
+ var searchTerm = _ref.searchTerm,
482
+ url = _ref.url,
483
+ page = _ref.page,
484
+ per = _ref.per;
485
+ return axios.get(url, {
486
+ params: {
487
+ searchTerm: searchTerm,
488
+ page: page,
489
+ per: per
490
+ }
491
+ });
492
+ };
493
+ var bulkDestroy = function bulkDestroy(imageIds, url) {
494
+ return axios["delete"](url, {
495
+ params: {
496
+ imageIds: imageIds
497
+ }
498
+ });
499
+ };
500
+ var imagesApi = {
501
+ fetch: fetch,
502
+ bulkDestroy: bulkDestroy
503
+ };
504
+
505
+ function ownKeys$3(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; }
506
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
507
+ var useFetchAssets = function useFetchAssets(_ref) {
508
+ var searchTerm = _ref.searchTerm,
509
+ url = _ref.url,
510
+ per = _ref.per;
511
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
512
+ return useInfiniteQuery(_objectSpread$3({
513
+ queryKey: [QUERY_KEYS.ASSETS_LIST, searchTerm],
514
+ queryFn: function queryFn(_ref2) {
515
+ var _ref2$pageParam = _ref2.pageParam,
516
+ pageParam = _ref2$pageParam === void 0 ? 1 : _ref2$pageParam;
517
+ return imagesApi.fetch({
518
+ searchTerm: searchTerm,
519
+ url: url,
520
+ page: pageParam,
521
+ per: per
522
+ });
523
+ },
524
+ getNextPageParam: function getNextPageParam(lastPage, _, lastPageParam) {
525
+ return lastPage.length === IMAGES_PER_PAGE ? lastPageParam + 1 : null;
526
+ },
527
+ select: function select(data) {
528
+ var results = data.pages.flatMap(identity);
529
+ return {
530
+ results: results
531
+ };
532
+ },
533
+ initialPageParam: 1,
534
+ staleTime: ASSETS_STALE_TIME
535
+ }, options));
536
+ };
537
+ var useBulkDestroyAssets = function useBulkDestroyAssets(url) {
538
+ var queryClient = useQueryClient();
539
+ return useMutation({
540
+ mutationFn: function mutationFn(imageIds) {
541
+ return imagesApi.bulkDestroy(imageIds, url);
542
+ },
543
+ onSuccess: function onSuccess(_, variables) {
544
+ queryClient.setQueriesData({
545
+ queryKey: [QUERY_KEYS.ASSETS_LIST]
546
+ }, function (old) {
547
+ return {
548
+ pages: old.pages.map(function (page) {
549
+ return page.filter(function (item) {
550
+ return !variables.includes(item.fileId || item.id);
551
+ });
552
+ }),
553
+ pageParams: old.pageParams
554
+ };
555
+ });
556
+ }
557
+ });
558
+ };
559
+
560
+ var lib = {};
561
+
562
+ var propTypes = {exports: {}};
563
+
564
+ /**
565
+ * Copyright (c) 2013-present, Facebook, Inc.
566
+ *
567
+ * This source code is licensed under the MIT license found in the
568
+ * LICENSE file in the root directory of this source tree.
569
+ */
570
+
571
+ var ReactPropTypesSecret$1 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
572
+
573
+ var ReactPropTypesSecret_1 = ReactPropTypesSecret$1;
574
+
575
+ /**
576
+ * Copyright (c) 2013-present, Facebook, Inc.
577
+ *
578
+ * This source code is licensed under the MIT license found in the
579
+ * LICENSE file in the root directory of this source tree.
580
+ */
581
+
582
+ var ReactPropTypesSecret = ReactPropTypesSecret_1;
583
+
584
+ function emptyFunction() {}
585
+ function emptyFunctionWithReset() {}
586
+ emptyFunctionWithReset.resetWarningCache = emptyFunction;
587
+
588
+ var factoryWithThrowingShims = function() {
589
+ function shim(props, propName, componentName, location, propFullName, secret) {
590
+ if (secret === ReactPropTypesSecret) {
591
+ // It is still safe when called from React.
592
+ return;
593
+ }
594
+ var err = new Error(
595
+ 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
596
+ 'Use PropTypes.checkPropTypes() to call them. ' +
597
+ 'Read more at http://fb.me/use-check-prop-types'
598
+ );
599
+ err.name = 'Invariant Violation';
600
+ throw err;
601
+ } shim.isRequired = shim;
602
+ function getShim() {
603
+ return shim;
604
+ } // Important!
605
+ // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
606
+ var ReactPropTypes = {
607
+ array: shim,
608
+ bigint: shim,
609
+ bool: shim,
610
+ func: shim,
611
+ number: shim,
612
+ object: shim,
613
+ string: shim,
614
+ symbol: shim,
615
+
616
+ any: shim,
617
+ arrayOf: getShim,
618
+ element: shim,
619
+ elementType: shim,
620
+ instanceOf: getShim,
621
+ node: shim,
622
+ objectOf: getShim,
623
+ oneOf: getShim,
624
+ oneOfType: getShim,
625
+ shape: getShim,
626
+ exact: getShim,
627
+
628
+ checkPropTypes: emptyFunctionWithReset,
629
+ resetWarningCache: emptyFunction
630
+ };
631
+
632
+ ReactPropTypes.PropTypes = ReactPropTypes;
633
+
634
+ return ReactPropTypes;
635
+ };
636
+
637
+ /**
638
+ * Copyright (c) 2013-present, Facebook, Inc.
639
+ *
640
+ * This source code is licensed under the MIT license found in the
641
+ * LICENSE file in the root directory of this source tree.
642
+ */
643
+
644
+ {
645
+ // By explicitly using `prop-types` you are opting into new production behavior.
646
+ // http://fb.me/prop-types-in-prod
647
+ propTypes.exports = factoryWithThrowingShims();
648
+ }
649
+
650
+ var propTypesExports = propTypes.exports;
651
+
652
+ var _extends = Object.assign || function (target) {
653
+ for (var i = 1; i < arguments.length; i++) {
654
+ var source = arguments[i];
655
+
656
+ for (var key in source) {
657
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
658
+ target[key] = source[key];
659
+ }
660
+ }
661
+ }
662
+
663
+ return target;
664
+ };
665
+
666
+ var knot = function knot() {
667
+ var extended = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
668
+
669
+ var events = Object.create(null);
670
+
671
+ function on(name, handler) {
672
+ events[name] = events[name] || [];
673
+ events[name].push(handler);
674
+ return this;
675
+ }
676
+
677
+ function once(name, handler) {
678
+ handler._once = true;
679
+ on(name, handler);
680
+ return this;
681
+ }
682
+
683
+ function off(name) {
684
+ var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
685
+
686
+ handler ? events[name].splice(events[name].indexOf(handler), 1) : delete events[name];
687
+
688
+ return this;
689
+ }
690
+
691
+ function emit(name) {
692
+ var _this = this;
693
+
694
+ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
695
+ args[_key - 1] = arguments[_key];
696
+ }
697
+
698
+ // cache the events, to avoid consequences of mutation
699
+ var cache = events[name] && events[name].slice();
700
+
701
+ // only fire handlers if they exist
702
+ cache && cache.forEach(function (handler) {
703
+ // remove handlers added with 'once'
704
+ handler._once && off(name, handler);
705
+
706
+ // set 'this' context, pass args to handlers
707
+ handler.apply(_this, args);
708
+ });
709
+
710
+ return this;
711
+ }
712
+
713
+ return _extends({}, extended, {
714
+
715
+ on: on,
716
+ once: once,
717
+ off: off,
718
+ emit: emit
719
+ });
720
+ };
721
+
722
+ var bricks = function bricks() {
723
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
724
+
725
+ // privates
726
+
727
+ var persist = void 0; // packing new elements, or all elements?
728
+ var ticking = void 0; // for debounced resize
729
+
730
+ var sizeIndex = void 0;
731
+ var sizeDetail = void 0;
732
+
733
+ var columnTarget = void 0;
734
+ var columnHeights = void 0;
735
+
736
+ var nodeTop = void 0;
737
+ var nodeLeft = void 0;
738
+ var nodeWidth = void 0;
739
+ var nodeHeight = void 0;
740
+
741
+ var nodes = void 0;
742
+ var nodesWidths = void 0;
743
+ var nodesHeights = void 0;
744
+
745
+ // resolve options
746
+
747
+ var packed = options.packed.indexOf('data-') === 0 ? options.packed : 'data-' + options.packed;
748
+ var sizes = options.sizes.slice().reverse();
749
+ var position = options.position !== false;
750
+
751
+ var container = options.container.nodeType ? options.container : document.querySelector(options.container);
752
+
753
+ var selectors = {
754
+ all: function all() {
755
+ return toArray(container.children);
756
+ },
757
+ new: function _new() {
758
+ return toArray(container.children).filter(function (node) {
759
+ return !node.hasAttribute('' + packed);
760
+ });
761
+ }
762
+ };
763
+
764
+ // series
765
+
766
+ var setup = [setSizeIndex, setSizeDetail, setColumns];
767
+
768
+ var run = [setNodes, setNodesDimensions, setNodesStyles, setContainerStyles];
769
+
770
+ // instance
771
+
772
+ var instance = knot({
773
+ pack: pack,
774
+ update: update,
775
+ resize: resize
776
+ });
777
+
778
+ return instance;
779
+
780
+ // general helpers
781
+
782
+ function runSeries(functions) {
783
+ functions.forEach(function (func) {
784
+ return func();
785
+ });
786
+ }
787
+
788
+ // array helpers
789
+
790
+ function toArray(input) {
791
+
792
+ return Array.prototype.slice.call(input);
793
+ }
794
+
795
+ function fillArray(length) {
796
+ return Array.apply(null, Array(length)).map(function () {
797
+ return 0;
798
+ });
799
+ }
800
+
801
+ // size helpers
802
+
803
+ function getSizeIndex() {
804
+ // find index of widest matching media query
805
+ return sizes.map(function (size) {
806
+ return size.mq && window.matchMedia('(min-width: ' + size.mq + ')').matches;
807
+ }).indexOf(true);
808
+ }
809
+
810
+ function setSizeIndex() {
811
+ sizeIndex = getSizeIndex();
812
+ }
813
+
814
+ function setSizeDetail() {
815
+ // if no media queries matched, use the base case
816
+ sizeDetail = sizeIndex === -1 ? sizes[sizes.length - 1] : sizes[sizeIndex];
817
+ }
818
+
819
+ // column helpers
820
+
821
+ function setColumns() {
822
+ columnHeights = fillArray(sizeDetail.columns);
823
+ }
824
+
825
+ // node helpers
826
+
827
+ function setNodes() {
828
+ nodes = selectors[persist ? 'new' : 'all']();
829
+ }
830
+
831
+ function setNodesDimensions() {
832
+ // exit if empty container
833
+ if (nodes.length === 0) {
834
+ return;
835
+ }
836
+
837
+ nodesWidths = nodes.map(function (element) {
838
+ return element.clientWidth;
839
+ });
840
+ nodesHeights = nodes.map(function (element) {
841
+ return element.clientHeight;
842
+ });
843
+ }
844
+
845
+ function setNodesStyles() {
846
+ nodes.forEach(function (element, index) {
847
+ columnTarget = columnHeights.indexOf(Math.min.apply(Math, columnHeights));
848
+
849
+ element.style.position = 'absolute';
850
+
851
+ nodeTop = columnHeights[columnTarget] + 'px';
852
+ nodeLeft = columnTarget * nodesWidths[index] + columnTarget * sizeDetail.gutter + 'px';
853
+
854
+ // support positioned elements (default) or transformed elements
855
+ if (position) {
856
+ element.style.top = nodeTop;
857
+ element.style.left = nodeLeft;
858
+ } else {
859
+ element.style.transform = 'translate3d(' + nodeLeft + ', ' + nodeTop + ', 0)';
860
+ }
861
+
862
+ element.setAttribute(packed, '');
863
+
864
+ // ignore nodes with no width and/or height
865
+ nodeWidth = nodesWidths[index];
866
+ nodeHeight = nodesHeights[index];
867
+
868
+ if (nodeWidth && nodeHeight) {
869
+ columnHeights[columnTarget] += nodeHeight + sizeDetail.gutter;
870
+ }
871
+ });
872
+ }
873
+
874
+ // container helpers
875
+
876
+ function setContainerStyles() {
877
+ container.style.position = 'relative';
878
+ container.style.width = sizeDetail.columns * nodeWidth + (sizeDetail.columns - 1) * sizeDetail.gutter + 'px';
879
+ container.style.height = Math.max.apply(Math, columnHeights) - sizeDetail.gutter + 'px';
880
+ }
881
+
882
+ // resize helpers
883
+
884
+ function resizeFrame() {
885
+ if (!ticking) {
886
+ window.requestAnimationFrame(resizeHandler);
887
+ ticking = true;
888
+ }
889
+ }
890
+
891
+ function resizeHandler() {
892
+ if (sizeIndex !== getSizeIndex()) {
893
+ pack();
894
+ instance.emit('resize', sizeDetail);
895
+ }
896
+
897
+ ticking = false;
898
+ }
899
+
900
+ // API
901
+
902
+ function pack() {
903
+ persist = false;
904
+ runSeries(setup.concat(run));
905
+
906
+ return instance.emit('pack');
907
+ }
908
+
909
+ function update() {
910
+ persist = true;
911
+ runSeries(run);
912
+
913
+ return instance.emit('update');
914
+ }
915
+
916
+ function resize() {
917
+ var flag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
918
+
919
+ var action = flag ? 'addEventListener' : 'removeEventListener';
920
+
921
+ window[action]('resize', resizeFrame);
922
+
923
+ return instance;
924
+ }
925
+ };
926
+
927
+ var bricks_module = /*#__PURE__*/Object.freeze({
928
+ __proto__: null,
929
+ 'default': bricks
930
+ });
931
+
932
+ var require$$2 = /*@__PURE__*/getAugmentedNamespace(bricks_module);
933
+
934
+ var InfiniteScroll = {exports: {}};
935
+
936
+ InfiniteScroll.exports;
937
+
938
+ (function (module, exports) {
939
+
940
+ Object.defineProperty(exports, "__esModule", {
941
+ value: true
942
+ });
943
+
944
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
945
+
946
+ var _react = require$$0;
947
+
948
+ var _react2 = _interopRequireDefault(_react);
949
+
950
+ var _propTypes = propTypesExports;
951
+
952
+ var _propTypes2 = _interopRequireDefault(_propTypes);
953
+
954
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
955
+
956
+ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
957
+
958
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
959
+
960
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
961
+
962
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
963
+
964
+ var InfiniteScroll = function (_Component) {
965
+ _inherits(InfiniteScroll, _Component);
966
+
967
+ function InfiniteScroll(props) {
968
+ _classCallCheck(this, InfiniteScroll);
969
+
970
+ var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));
971
+
972
+ _this.scrollListener = _this.scrollListener.bind(_this);
973
+ _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);
974
+ _this.mousewheelListener = _this.mousewheelListener.bind(_this);
975
+ return _this;
976
+ }
977
+
978
+ _createClass(InfiniteScroll, [{
979
+ key: 'componentDidMount',
980
+ value: function componentDidMount() {
981
+ this.pageLoaded = this.props.pageStart;
982
+ this.options = this.eventListenerOptions();
983
+ this.attachScrollListener();
984
+ }
985
+ }, {
986
+ key: 'componentDidUpdate',
987
+ value: function componentDidUpdate() {
988
+ if (this.props.isReverse && this.loadMore) {
989
+ var parentElement = this.getParentElement(this.scrollComponent);
990
+ parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;
991
+ this.loadMore = false;
992
+ }
993
+ this.attachScrollListener();
994
+ }
995
+ }, {
996
+ key: 'componentWillUnmount',
997
+ value: function componentWillUnmount() {
998
+ this.detachScrollListener();
999
+ this.detachMousewheelListener();
1000
+ }
1001
+ }, {
1002
+ key: 'isPassiveSupported',
1003
+ value: function isPassiveSupported() {
1004
+ var passive = false;
1005
+
1006
+ var testOptions = {
1007
+ get passive() {
1008
+ passive = true;
1009
+ }
1010
+ };
1011
+
1012
+ try {
1013
+ document.addEventListener('test', null, testOptions);
1014
+ document.removeEventListener('test', null, testOptions);
1015
+ } catch (e) {
1016
+ // ignore
1017
+ }
1018
+ return passive;
1019
+ }
1020
+ }, {
1021
+ key: 'eventListenerOptions',
1022
+ value: function eventListenerOptions() {
1023
+ var options = this.props.useCapture;
1024
+
1025
+ if (this.isPassiveSupported()) {
1026
+ options = {
1027
+ useCapture: this.props.useCapture,
1028
+ passive: true
1029
+ };
1030
+ } else {
1031
+ options = {
1032
+ passive: false
1033
+ };
1034
+ }
1035
+ return options;
1036
+ }
1037
+
1038
+ // Set a defaut loader for all your `InfiniteScroll` components
1039
+
1040
+ }, {
1041
+ key: 'setDefaultLoader',
1042
+ value: function setDefaultLoader(loader) {
1043
+ this.defaultLoader = loader;
1044
+ }
1045
+ }, {
1046
+ key: 'detachMousewheelListener',
1047
+ value: function detachMousewheelListener() {
1048
+ var scrollEl = window;
1049
+ if (this.props.useWindow === false) {
1050
+ scrollEl = this.scrollComponent.parentNode;
1051
+ }
1052
+
1053
+ scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
1054
+ }
1055
+ }, {
1056
+ key: 'detachScrollListener',
1057
+ value: function detachScrollListener() {
1058
+ var scrollEl = window;
1059
+ if (this.props.useWindow === false) {
1060
+ scrollEl = this.getParentElement(this.scrollComponent);
1061
+ }
1062
+
1063
+ scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
1064
+ scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
1065
+ }
1066
+ }, {
1067
+ key: 'getParentElement',
1068
+ value: function getParentElement(el) {
1069
+ var scrollParent = this.props.getScrollParent && this.props.getScrollParent();
1070
+ if (scrollParent != null) {
1071
+ return scrollParent;
1072
+ }
1073
+ return el && el.parentNode;
1074
+ }
1075
+ }, {
1076
+ key: 'filterProps',
1077
+ value: function filterProps(props) {
1078
+ return props;
1079
+ }
1080
+ }, {
1081
+ key: 'attachScrollListener',
1082
+ value: function attachScrollListener() {
1083
+ var parentElement = this.getParentElement(this.scrollComponent);
1084
+
1085
+ if (!this.props.hasMore || !parentElement) {
1086
+ return;
1087
+ }
1088
+
1089
+ var scrollEl = window;
1090
+ if (this.props.useWindow === false) {
1091
+ scrollEl = parentElement;
1092
+ }
1093
+
1094
+ scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);
1095
+ scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);
1096
+ scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);
1097
+
1098
+ if (this.props.initialLoad) {
1099
+ this.scrollListener();
1100
+ }
1101
+ }
1102
+ }, {
1103
+ key: 'mousewheelListener',
1104
+ value: function mousewheelListener(e) {
1105
+ // Prevents Chrome hangups
1106
+ // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257
1107
+ if (e.deltaY === 1 && !this.isPassiveSupported()) {
1108
+ e.preventDefault();
1109
+ }
1110
+ }
1111
+ }, {
1112
+ key: 'scrollListener',
1113
+ value: function scrollListener() {
1114
+ var el = this.scrollComponent;
1115
+ var scrollEl = window;
1116
+ var parentNode = this.getParentElement(el);
1117
+
1118
+ var offset = void 0;
1119
+ if (this.props.useWindow) {
1120
+ var doc = document.documentElement || document.body.parentNode || document.body;
1121
+ var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;
1122
+ if (this.props.isReverse) {
1123
+ offset = scrollTop;
1124
+ } else {
1125
+ offset = this.calculateOffset(el, scrollTop);
1126
+ }
1127
+ } else if (this.props.isReverse) {
1128
+ offset = parentNode.scrollTop;
1129
+ } else {
1130
+ offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;
1131
+ }
1132
+
1133
+ // Here we make sure the element is visible as well as checking the offset
1134
+ if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {
1135
+ this.detachScrollListener();
1136
+ this.beforeScrollHeight = parentNode.scrollHeight;
1137
+ this.beforeScrollTop = parentNode.scrollTop;
1138
+ // Call loadMore after detachScrollListener to allow for non-async loadMore functions
1139
+ if (typeof this.props.loadMore === 'function') {
1140
+ this.props.loadMore(this.pageLoaded += 1);
1141
+ this.loadMore = true;
1142
+ }
1143
+ }
1144
+ }
1145
+ }, {
1146
+ key: 'calculateOffset',
1147
+ value: function calculateOffset(el, scrollTop) {
1148
+ if (!el) {
1149
+ return 0;
1150
+ }
1151
+
1152
+ return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);
1153
+ }
1154
+ }, {
1155
+ key: 'calculateTopPosition',
1156
+ value: function calculateTopPosition(el) {
1157
+ if (!el) {
1158
+ return 0;
1159
+ }
1160
+ return el.offsetTop + this.calculateTopPosition(el.offsetParent);
1161
+ }
1162
+ }, {
1163
+ key: 'render',
1164
+ value: function render() {
1165
+ var _this2 = this;
1166
+
1167
+ var renderProps = this.filterProps(this.props);
1168
+
1169
+ var children = renderProps.children,
1170
+ element = renderProps.element,
1171
+ hasMore = renderProps.hasMore;
1172
+ renderProps.initialLoad;
1173
+ var isReverse = renderProps.isReverse,
1174
+ loader = renderProps.loader;
1175
+ renderProps.loadMore;
1176
+ renderProps.pageStart;
1177
+ var ref = renderProps.ref;
1178
+ renderProps.threshold;
1179
+ renderProps.useCapture;
1180
+ renderProps.useWindow;
1181
+ renderProps.getScrollParent;
1182
+ var props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);
1183
+
1184
+ props.ref = function (node) {
1185
+ _this2.scrollComponent = node;
1186
+ if (ref) {
1187
+ ref(node);
1188
+ }
1189
+ };
1190
+
1191
+ var childrenArray = [children];
1192
+ if (hasMore) {
1193
+ if (loader) {
1194
+ isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);
1195
+ } else if (this.defaultLoader) {
1196
+ isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);
1197
+ }
1198
+ }
1199
+ return _react2.default.createElement(element, props, childrenArray);
1200
+ }
1201
+ }]);
1202
+
1203
+ return InfiniteScroll;
1204
+ }(_react.Component);
1205
+
1206
+ InfiniteScroll.propTypes = {
1207
+ children: _propTypes2.default.node.isRequired,
1208
+ element: _propTypes2.default.node,
1209
+ hasMore: _propTypes2.default.bool,
1210
+ initialLoad: _propTypes2.default.bool,
1211
+ isReverse: _propTypes2.default.bool,
1212
+ loader: _propTypes2.default.node,
1213
+ loadMore: _propTypes2.default.func.isRequired,
1214
+ pageStart: _propTypes2.default.number,
1215
+ ref: _propTypes2.default.func,
1216
+ getScrollParent: _propTypes2.default.func,
1217
+ threshold: _propTypes2.default.number,
1218
+ useCapture: _propTypes2.default.bool,
1219
+ useWindow: _propTypes2.default.bool
1220
+ };
1221
+ InfiniteScroll.defaultProps = {
1222
+ element: 'div',
1223
+ hasMore: false,
1224
+ initialLoad: true,
1225
+ pageStart: 0,
1226
+ ref: null,
1227
+ threshold: 250,
1228
+ useWindow: true,
1229
+ isReverse: false,
1230
+ useCapture: false,
1231
+ loader: null,
1232
+ getScrollParent: null
1233
+ };
1234
+ exports.default = InfiniteScroll;
1235
+ module.exports = exports['default'];
1236
+ } (InfiniteScroll, InfiniteScroll.exports));
1237
+
1238
+ var InfiniteScrollExports = InfiniteScroll.exports;
1239
+
1240
+ var reactInfiniteScroller = InfiniteScrollExports;
1241
+
1242
+ Object.defineProperty(lib, "__esModule", {
1243
+ value: true
1244
+ });
1245
+ var _default = lib.default = undefined;
1246
+
1247
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
1248
+
1249
+ var _class, _temp2;
1250
+
1251
+ var _react = require$$0;
1252
+
1253
+ var _react2 = _interopRequireDefault(_react);
1254
+
1255
+ var _propTypes = propTypesExports;
1256
+
1257
+ var _propTypes2 = _interopRequireDefault(_propTypes);
1258
+
1259
+ var _bricks = require$$2;
1260
+
1261
+ var _bricks2 = _interopRequireDefault(_bricks);
1262
+
1263
+ var _reactInfiniteScroller = reactInfiniteScroller;
1264
+
1265
+ var _reactInfiniteScroller2 = _interopRequireDefault(_reactInfiniteScroller);
1266
+
1267
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1268
+
1269
+ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
1270
+
1271
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1272
+
1273
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
1274
+
1275
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
1276
+
1277
+ var MasonryInfiniteScroller = (_temp2 = _class = function (_Component) {
1278
+ _inherits(MasonryInfiniteScroller, _Component);
1279
+
1280
+ function MasonryInfiniteScroller() {
1281
+ var _ref;
1282
+
1283
+ var _temp, _this, _ret;
1284
+
1285
+ _classCallCheck(this, MasonryInfiniteScroller);
1286
+
1287
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
1288
+ args[_key] = arguments[_key];
1289
+ }
1290
+
1291
+ return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = MasonryInfiniteScroller.__proto__ || Object.getPrototypeOf(MasonryInfiniteScroller)).call.apply(_ref, [this].concat(args))), _this), _this.setContainerRef = function (component) {
1292
+ _this.masonryContainer = component;
1293
+ }, _this.forcePack = function () {
1294
+ if (_this.masonryContainer) {
1295
+ _this.state.instance.pack();
1296
+ }
1297
+ }, _this.forceUpdate = function () {
1298
+ if (_this.masonryContainer) {
1299
+ _this.state.instance.update();
1300
+ }
1301
+ }, _this.createNewInstance = function () {
1302
+ var _this$props = _this.props,
1303
+ packed = _this$props.packed,
1304
+ sizes = _this$props.sizes,
1305
+ children = _this$props.children,
1306
+ position = _this$props.position;
1307
+
1308
+ var instance = (0, _bricks2.default)({
1309
+ container: _this.masonryContainer,
1310
+ packed: packed,
1311
+ sizes: sizes,
1312
+ position: position
1313
+ });
1314
+
1315
+ instance.resize(true);
1316
+
1317
+ if (children.length > 0) {
1318
+ instance.pack();
1319
+ }
1320
+
1321
+ _this.setState(function () {
1322
+ return { instance: instance };
1323
+ });
1324
+ }, _temp), _possibleConstructorReturn(_this, _ret);
1325
+ }
1326
+
1327
+ _createClass(MasonryInfiniteScroller, [{
1328
+ key: 'componentDidMount',
1329
+ value: function componentDidMount() {
1330
+ this.createNewInstance();
1331
+ }
1332
+ }, {
1333
+ key: 'componentDidUpdate',
1334
+ value: function componentDidUpdate(prevProps) {
1335
+ var children = this.props.children;
1336
+ var instance = this.state.instance;
1337
+
1338
+
1339
+ if (prevProps.children.length === 0 && children.length === 0) {
1340
+ return;
1341
+ }
1342
+
1343
+ if (prevProps.children.length === 0 && children.length > 0) {
1344
+ return instance.pack();
1345
+ }
1346
+
1347
+ if (prevProps.children.length !== children.length) {
1348
+ if (this.props.pack) {
1349
+ return instance.pack();
1350
+ } else {
1351
+ return instance.update();
1352
+ }
1353
+ }
1354
+ }
1355
+ }, {
1356
+ key: 'componentWillUnmount',
1357
+ value: function componentWillUnmount() {
1358
+ if (this.state) {
1359
+ this.state.instance.resize(false);
1360
+ }
1361
+ }
1362
+ }, {
1363
+ key: 'render',
1364
+ value: function render() {
1365
+ var _props = this.props,
1366
+ children = _props.children,
1367
+ className = _props.className,
1368
+ style = _props.style;
1369
+ _props.pack;
1370
+ _props.packed;
1371
+ _props.position;
1372
+ _props.sizes;
1373
+ var props = _objectWithoutProperties(_props, ['children', 'className', 'style', 'pack', 'packed', 'position', 'sizes']);
1374
+
1375
+ return _react2.default.createElement(
1376
+ _reactInfiniteScroller2.default,
1377
+ props,
1378
+ _react2.default.createElement(
1379
+ 'div',
1380
+ { ref: this.setContainerRef, className: className, style: style },
1381
+ children
1382
+ )
1383
+ );
1384
+ }
1385
+ }]);
1386
+
1387
+ return MasonryInfiniteScroller;
1388
+ }(_react.Component), _class.propTypes = {
1389
+ children: _propTypes2.default.arrayOf(_propTypes2.default.element).isRequired,
1390
+ className: _propTypes2.default.string,
1391
+ initialLoad: _propTypes2.default.bool,
1392
+ pack: _propTypes2.default.bool,
1393
+ packed: _propTypes2.default.string,
1394
+ position: _propTypes2.default.bool,
1395
+ sizes: _propTypes2.default.array,
1396
+ style: _propTypes2.default.object
1397
+ }, _class.defaultProps = {
1398
+ className: '',
1399
+ initialLoad: true,
1400
+ pack: false,
1401
+ packed: 'data-packed',
1402
+ position: true,
1403
+ sizes: [{ columns: 1, gutter: 20 }, { mq: '768px', columns: 2, gutter: 20 }, { mq: '1024px', columns: 3, gutter: 20 }],
1404
+ style: {}
1405
+ }, _temp2);
1406
+ _default = lib.default = MasonryInfiniteScroller;
1407
+
1408
+ var css = ".niu-unsplash-container {\n height: calc(75vh - 220px) !important;\n max-height: 355px;\n}\n.niu-unsplash-container img {\n height: 100%;\n width: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n animation: fade-in 1.2s 1s cubic-bezier(0.39, 0.575, 0.565, 1) both;\n border-radius: var(--neeto-ui-rounded);\n position: relative;\n cursor: pointer;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2NvbXBvbmVudHMvX2ltYWdlLWxpYnJhcnkuc2NzcyIsImFwcC9qYXZhc2NyaXB0L3N0eWxlc2hlZXRzL2Fic3RyYWN0cy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDRSxxQ0FBQTtFQUNBLGlCQ0NrQztBREhwQztBQUlFO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxvQkFBQTtLQUFBLGlCQUFBO0VBQ0EsbUVBQUE7RUFDQSxzQ0FBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtBQUZKIiwic291cmNlc0NvbnRlbnQiOlsiLy9BYnN0cmFjdHNcbkBpbXBvcnQgXCIuLi9hYnN0cmFjdHMvdmFyaWFibGVzXCI7XG5cbi5uaXUtdW5zcGxhc2gtY29udGFpbmVyIHtcbiAgaGVpZ2h0OiBjYWxjKCN7JG5pdS1tb2RhbC1oZWlnaHR9IC0gI3skbml1LW1vZGFsLWhlYWRlci1oZWlnaHR9KSAhaW1wb3J0YW50O1xuICBtYXgtaGVpZ2h0OiAkbml1LXVuc3BsYXNoLWNvbnRhaW5lci1tYXgtaGVpZ2h0O1xuXG4gIGltZyB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGFuaW1hdGlvbjogZmFkZS1pbiAxLjJzIDFzIGN1YmljLWJlemllcigwLjM5LCAwLjU3NSwgMC41NjUsIDEpIGJvdGg7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tbmVldG8tdWktcm91bmRlZCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxufVxuIiwiJG5pdS1tb2RhbC13aWR0aDogOTV2dztcbiRuaXUtbW9kYWwtaGVpZ2h0OiA3NXZoO1xuJG5pdS1tb2RhbC1tYXgtd2lkdGg6IDExNTJweDtcbiRuaXUtbW9kYWwtbWF4LWhlaWdodDogNTc2cHg7XG4kbml1LW1vZGFsLWhlYWRlci1oZWlnaHQ6IDIyMHB4O1xuXG4kbml1LXVuc3BsYXNoLWNvbnRhaW5lci1tYXgtaGVpZ2h0OiAzNTVweDtcbiJdfQ== */";
1409
+ n(css,{});
1410
+
1411
+ var Menu = Dropdown.Menu,
1412
+ MenuItem = Dropdown.MenuItem;
1413
+ var InfiniteScroller = function InfiniteScroller(_ref) {
1414
+ var _ref$hasMore = _ref.hasMore,
1415
+ hasMore = _ref$hasMore === void 0 ? false : _ref$hasMore,
1416
+ _ref$loadMore = _ref.loadMore,
1417
+ loadMore = _ref$loadMore === void 0 ? noop : _ref$loadMore,
1418
+ tab = _ref.tab,
1419
+ images = _ref.images,
1420
+ _ref$setSelectedImage = _ref.setSelectedImage,
1421
+ setSelectedImage = _ref$setSelectedImage === void 0 ? noop : _ref$setSelectedImage,
1422
+ _ref$handleUnsplashIm = _ref.handleUnsplashImageSelect,
1423
+ handleUnsplashImageSelect = _ref$handleUnsplashIm === void 0 ? noop : _ref$handleUnsplashIm;
1424
+ var _useTranslation = useTranslation(),
1425
+ t = _useTranslation.t;
1426
+ var _useState = useState({
1427
+ isOpen: false,
1428
+ imageIds: []
1429
+ }),
1430
+ _useState2 = _slicedToArray(_useState, 2),
1431
+ deleteConfirmation = _useState2[0],
1432
+ setDeleteConfirmation = _useState2[1];
1433
+ var isMenuButtonEnabled = globalProps.assetsUploaderService !== CLOUD_FLARE;
1434
+ var _useBulkDestroyAssets = useBulkDestroyAssets(ASSETS_DESTROY_URL),
1435
+ isPending = _useBulkDestroyAssets.isPending,
1436
+ bulkDelete = _useBulkDestroyAssets.mutate;
1437
+ var handleDelete = useCallback(function () {
1438
+ bulkDelete(deleteConfirmation.imageIds, {
1439
+ onSuccess: function onSuccess() {
1440
+ return setDeleteConfirmation({
1441
+ isOpen: false,
1442
+ imageIds: []
1443
+ });
1444
+ }
1445
+ });
1446
+ }, [deleteConfirmation.imageIds]);
1447
+ var Loader = /*#__PURE__*/jsx("div", {
1448
+ className: "flex justify-center",
1449
+ children: /*#__PURE__*/jsx(Spinner, {})
1450
+ });
1451
+ return /*#__PURE__*/jsxs("div", {
1452
+ className: "niu-unsplash-container mr-2 max-w-full overflow-x-hidden overflow-y-scroll",
1453
+ children: [/*#__PURE__*/jsx(_default, {
1454
+ hasMore: hasMore,
1455
+ loadMore: loadMore,
1456
+ pack: true,
1457
+ position: true,
1458
+ className: "w-full",
1459
+ loader: Loader,
1460
+ sizes: INFINITE_SCROLLER_SIZES,
1461
+ style: INFINITE_SCROLLER_STYLE,
1462
+ useWindow: false,
1463
+ children: images.map(function (image, index) {
1464
+ var _image$urls, _image$user, _image$user2;
1465
+ return /*#__PURE__*/jsx("div", {
1466
+ className: "float-left w-1/2 pb-4 pr-4 md:w-1/4",
1467
+ children: /*#__PURE__*/jsx("div", {
1468
+ className: "relative w-full",
1469
+ style: {
1470
+ paddingBottom: "".concat(image.height / image.width * 100, "%")
1471
+ },
1472
+ children: /*#__PURE__*/jsxs("div", {
1473
+ className: "neeto-ui-rounded-sm neeto-ui-bg-gray-100 group absolute h-full w-full",
1474
+ "data-cy": "library-image-card",
1475
+ id: "unsplashImage".concat(image.id),
1476
+ children: [tab === TABS[1].key && /*#__PURE__*/jsxs(Fragment, {
1477
+ children: [/*#__PURE__*/jsx("img", {
1478
+ "data-cy": "niu-unsplash-image-".concat(index),
1479
+ src: image === null || image === void 0 ? void 0 : (_image$urls = image.urls) === null || _image$urls === void 0 ? void 0 : _image$urls.regular,
1480
+ onClick: function onClick() {
1481
+ return handleUnsplashImageSelect(image);
1482
+ }
1483
+ }), /*#__PURE__*/jsxs("a", {
1484
+ className: "neeto-ui-text-gray-100 absolute bottom-2 left-2 m-auto text-xs underline opacity-0 group-hover:opacity-100",
1485
+ href: "https://unsplash.com/@".concat(image === null || image === void 0 ? void 0 : (_image$user = image.user) === null || _image$user === void 0 ? void 0 : _image$user.username),
1486
+ rel: "noreferrer",
1487
+ target: "_blank",
1488
+ children: [image === null || image === void 0 ? void 0 : (_image$user2 = image.user) === null || _image$user2 === void 0 ? void 0 : _image$user2.name, " | ", " ", t("neetoImageUploader.labels.unsplash")]
1489
+ })]
1490
+ }), tab === TABS[0].key && /*#__PURE__*/jsxs(Fragment, {
1491
+ children: [hasPermission(VIEW_ROLES_PERMISSION) && isMenuButtonEnabled && /*#__PURE__*/jsx(Dropdown, {
1492
+ buttonSize: "small",
1493
+ buttonStyle: "tertiary",
1494
+ "data-cy": "image-library-image-options-".concat(index),
1495
+ icon: MenuHorizontal,
1496
+ buttonProps: {
1497
+ className:
1498
+ // eslint-disable-next-line @bigbinary/neeto/use-neetoui-classes
1499
+ "absolute right-2 top-2 z-[1] rounded-full"
1500
+ },
1501
+ children: /*#__PURE__*/jsx(Menu, {
1502
+ children: /*#__PURE__*/jsx(MenuItem.Button, {
1503
+ "data-cy": "image-library-image-delete",
1504
+ onClick: function onClick() {
1505
+ return setDeleteConfirmation({
1506
+ isOpen: true,
1507
+ imageIds: [(image === null || image === void 0 ? void 0 : image.fileId) || image.id]
1508
+ });
1509
+ },
1510
+ children: t("neetoImageUploader.deleteConfirmation.delete")
1511
+ })
1512
+ })
1513
+ }), /*#__PURE__*/jsx("img", {
1514
+ "data-cy": "niu-library-image-".concat(index),
1515
+ src: image === null || image === void 0 ? void 0 : image.url,
1516
+ onClick: function onClick() {
1517
+ return setSelectedImage(image);
1518
+ }
1519
+ })]
1520
+ })]
1521
+ })
1522
+ })
1523
+ }, image.id);
1524
+ })
1525
+ }), /*#__PURE__*/jsx(Alert, {
1526
+ isOpen: deleteConfirmation.isOpen,
1527
+ isSubmitting: isPending,
1528
+ message: t("neetoImageUploader.deleteConfirmation.message"),
1529
+ submitButtonLabel: t("neetoImageUploader.deleteConfirmation.delete"),
1530
+ title: t("neetoImageUploader.deleteConfirmation.title"),
1531
+ onClose: function onClose() {
1532
+ return setDeleteConfirmation({
1533
+ isOpen: false,
1534
+ imageIds: []
1535
+ });
1536
+ },
1537
+ onSubmit: handleDelete
1538
+ })]
1539
+ });
1540
+ };
1541
+
1542
+ var Images = function Images(_ref) {
1543
+ var debouncedQuery = _ref.debouncedQuery,
1544
+ setSelectedImage = _ref.setSelectedImage;
1545
+ var _useTranslation = useTranslation(),
1546
+ t = _useTranslation.t;
1547
+ var _useFetchAssets = useFetchAssets({
1548
+ searchTerm: debouncedQuery,
1549
+ per: IMAGES_PER_PAGE,
1550
+ url: ASSETS_FETCH_URL
1551
+ }),
1552
+ fetchNextPage = _useFetchAssets.fetchNextPage,
1553
+ hasNextPage = _useFetchAssets.hasNextPage,
1554
+ _useFetchAssets$data = _useFetchAssets.data,
1555
+ _useFetchAssets$data2 = _useFetchAssets$data === void 0 ? {} : _useFetchAssets$data,
1556
+ _useFetchAssets$data3 = _useFetchAssets$data2.results,
1557
+ results = _useFetchAssets$data3 === void 0 ? [] : _useFetchAssets$data3,
1558
+ isLoading = _useFetchAssets.isLoading,
1559
+ isError = _useFetchAssets.isError;
1560
+ if (isError) {
1561
+ return /*#__PURE__*/jsx(Typography, {
1562
+ className: "mt-9 flex justify-center",
1563
+ style: "body2",
1564
+ children: t("neetoImageUploader.unsplash.errorMessage")
1565
+ });
1566
+ }
1567
+ if (isLoading) {
1568
+ return /*#__PURE__*/jsx("div", {
1569
+ className: "flex justify-around",
1570
+ children: /*#__PURE__*/jsx(Spinner, {})
1571
+ });
1572
+ }
1573
+ return /*#__PURE__*/createElement(InfiniteScroller, {
1574
+ setSelectedImage: setSelectedImage,
1575
+ hasMore: hasNextPage,
1576
+ images: results,
1577
+ key: debouncedQuery,
1578
+ loadMore: fetchNextPage,
1579
+ tab: TABS[0].key
1580
+ });
1581
+ };
1582
+
1583
+ var newAxiosInstance = axios.create();
1584
+ var searchUnsplashImages = function searchUnsplashImages(_ref) {
1585
+ var pageNo = _ref.pageNo,
1586
+ query = _ref.query;
1587
+ return axios.get("neeto_image_uploader_engine/unsplash/fetch", {
1588
+ params: {
1589
+ page: pageNo,
1590
+ per_page: 30,
1591
+ query: query || "latest"
1592
+ }
1593
+ });
1594
+ };
1595
+ var getUnsplashImage = function getUnsplashImage(url) {
1596
+ var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1597
+ return newAxiosInstance.get(url, config);
1598
+ };
1599
+ var unsplashApi = {
1600
+ searchUnsplashImages: searchUnsplashImages,
1601
+ getUnsplashImage: getUnsplashImage
1602
+ };
1603
+
1604
+ function ownKeys$2(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; }
1605
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1606
+ var UNSPLASH_LIST = QUERY_KEYS.UNSPLASH_LIST;
1607
+ var useFetchUnsplashImages = function useFetchUnsplashImages(_ref) {
1608
+ var query = _ref.query;
1609
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
1610
+ return useInfiniteQuery(_objectSpread$2({
1611
+ queryKey: [UNSPLASH_LIST, {
1612
+ query: query
1613
+ }],
1614
+ queryFn: function queryFn(_ref2) {
1615
+ var _ref2$pageParam = _ref2.pageParam,
1616
+ pageParam = _ref2$pageParam === void 0 ? 1 : _ref2$pageParam;
1617
+ return unsplashApi.searchUnsplashImages({
1618
+ pageNo: pageParam,
1619
+ query: query
1620
+ });
1621
+ },
1622
+ initialPageParam: 1,
1623
+ getNextPageParam: function getNextPageParam(lastPage, _, lastPageParam) {
1624
+ return lastPageParam < lastPage.totalPages ? lastPageParam + 1 : null;
1625
+ },
1626
+ select: function select(data) {
1627
+ var results = data.pages.flatMap(prop("results"));
1628
+ return {
1629
+ results: results
1630
+ };
1631
+ },
1632
+ staleTime: UNSPLASH_STALE_TIME,
1633
+ placeholderData: keepPreviousData
1634
+ }, options));
1635
+ };
1636
+
1637
+ 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; }
1638
+ 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) { _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; }
1639
+ var UnsplashLibrary = function UnsplashLibrary(_ref) {
1640
+ var debouncedQuery = _ref.debouncedQuery,
1641
+ setSelectedImage = _ref.setSelectedImage,
1642
+ setIsUploading = _ref.setIsUploading,
1643
+ setActiveTab = _ref.setActiveTab;
1644
+ var _useCreateBlob = useCreateBlob(),
1645
+ createBlob = _useCreateBlob.mutate;
1646
+ var handleBlobCreation = function handleBlobCreation(image) {
1647
+ var payload = {
1648
+ filename: generateASCIIFileName(image.filename),
1649
+ content_type: image.contentType,
1650
+ byte_size: image.byteSize,
1651
+ checksum: image.checksum,
1652
+ metadata: _objectSpread$1(_objectSpread$1({}, image.metadata), {}, {
1653
+ url: constructCloudflareImageURL(image.url),
1654
+ isCropped: false
1655
+ }),
1656
+ service_name: "cloudflare_image"
1657
+ };
1658
+ createBlob(payload);
1659
+ };
1660
+ var handleUploadComplete = function handleUploadComplete(image) {
1661
+ globalProps.assetsUploaderService === CLOUD_FLARE && handleBlobCreation(image);
1662
+ setSelectedImage(image);
1663
+ };
1664
+ var _useImageUploader = useImageUploader({
1665
+ onUploadComplete: handleUploadComplete,
1666
+ setIsUploading: setIsUploading
1667
+ }),
1668
+ uploadFile = _useImageUploader.uploadFile;
1669
+ var handleUnsplashImageSelect = /*#__PURE__*/function () {
1670
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(image) {
1671
+ var _image$urls, response, file;
1672
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
1673
+ while (1) switch (_context.prev = _context.next) {
1674
+ case 0:
1675
+ _context.prev = 0;
1676
+ setIsUploading(true);
1677
+ _context.next = 4;
1678
+ return unsplashApi.getUnsplashImage((_image$urls = image.urls) === null || _image$urls === void 0 ? void 0 : _image$urls.regular, UNSPLASH_DEFAULT_REQUEST_CONFIG);
1679
+ case 4:
1680
+ response = _context.sent;
1681
+ file = new File([response.data], UNSPLASH_DEFAULT_NAME, {
1682
+ type: response.data.type
1683
+ });
1684
+ uploadFile(file);
1685
+ _context.next = 14;
1686
+ break;
1687
+ case 9:
1688
+ _context.prev = 9;
1689
+ _context.t0 = _context["catch"](0);
1690
+ Toastr.error(_context.t0);
1691
+ setActiveTab(TABS[0].key);
1692
+ setIsUploading(false);
1693
+ case 14:
1694
+ case "end":
1695
+ return _context.stop();
1696
+ }
1697
+ }, _callee, null, [[0, 9]]);
1698
+ }));
1699
+ return function handleUnsplashImageSelect(_x) {
1700
+ return _ref2.apply(this, arguments);
1701
+ };
1702
+ }();
1703
+ var _useTranslation = useTranslation(),
1704
+ t = _useTranslation.t;
1705
+ var _useFetchUnsplashImag = useFetchUnsplashImages({
1706
+ query: debouncedQuery
1707
+ }),
1708
+ fetchNextPage = _useFetchUnsplashImag.fetchNextPage,
1709
+ hasNextPage = _useFetchUnsplashImag.hasNextPage,
1710
+ _useFetchUnsplashImag2 = _useFetchUnsplashImag.data,
1711
+ _useFetchUnsplashImag3 = _useFetchUnsplashImag2 === void 0 ? {} : _useFetchUnsplashImag2,
1712
+ _useFetchUnsplashImag4 = _useFetchUnsplashImag3.results,
1713
+ results = _useFetchUnsplashImag4 === void 0 ? [] : _useFetchUnsplashImag4,
1714
+ isError = _useFetchUnsplashImag.isError,
1715
+ isLoading = _useFetchUnsplashImag.isLoading;
1716
+ if (isError) {
1717
+ return /*#__PURE__*/jsx(Typography, {
1718
+ className: "mt-9 flex justify-center",
1719
+ style: "body2",
1720
+ children: t("neetoImageUploader.unsplash.errorMessage")
1721
+ });
1722
+ }
1723
+ if (isLoading) {
1724
+ return /*#__PURE__*/jsx("div", {
1725
+ className: "flex justify-around",
1726
+ children: /*#__PURE__*/jsx(Spinner, {})
1727
+ });
1728
+ }
1729
+ return /*#__PURE__*/createElement(InfiniteScroller, {
1730
+ debouncedQuery: debouncedQuery,
1731
+ handleUnsplashImageSelect: handleUnsplashImageSelect,
1732
+ hasMore: hasNextPage,
1733
+ images: results,
1734
+ key: debouncedQuery,
1735
+ loadMore: fetchNextPage,
1736
+ tab: TABS[1].key
1737
+ });
1738
+ };
1739
+
1740
+ var ImageLibrary = function ImageLibrary(_ref) {
1741
+ var setSelectedImage = _ref.setSelectedImage,
1742
+ tab = _ref.tab,
1743
+ setIsUploading = _ref.setIsUploading,
1744
+ setActiveTab = _ref.setActiveTab;
1745
+ var _useState = useState(""),
1746
+ _useState2 = _slicedToArray(_useState, 2),
1747
+ query = _useState2[0],
1748
+ setQuery = _useState2[1];
1749
+ var _useTranslation = useTranslation(),
1750
+ t = _useTranslation.t;
1751
+ var debouncedQuery = useDebounce(query, 400);
1752
+ var inputPlaceHolder = equals(tab, TABS[1].key) ? t("neetoImageUploader.placeholders.searchImageFromWeb") : t("neetoImageUploader.placeholders.searchImage");
1753
+ useEffect(function () {
1754
+ setQuery("");
1755
+ }, [tab]);
1756
+ return /*#__PURE__*/jsxs("div", {
1757
+ className: "w-full pb-2 pl-6 pt-1",
1758
+ children: [/*#__PURE__*/jsx(Input, {
1759
+ autoFocus: true,
1760
+ className: "mb-4 mr-6",
1761
+ "data-cy": "niu-unsplash-image-picker-search-input",
1762
+ name: "text",
1763
+ placeholder: inputPlaceHolder,
1764
+ value: query,
1765
+ onChange: function onChange(_ref2) {
1766
+ var value = _ref2.target.value;
1767
+ return setQuery(value);
1768
+ }
1769
+ }), tab === TABS[0].key ? /*#__PURE__*/jsx(Images, {
1770
+ debouncedQuery: debouncedQuery,
1771
+ query: query,
1772
+ setSelectedImage: setSelectedImage
1773
+ }) : /*#__PURE__*/jsx(UnsplashLibrary, {
1774
+ debouncedQuery: debouncedQuery,
1775
+ query: query,
1776
+ setActiveTab: setActiveTab,
1777
+ setIsUploading: setIsUploading,
1778
+ setSelectedImage: setSelectedImage
1779
+ })]
1780
+ });
1781
+ };
1782
+
1783
+ var _excluded = ["key"];
1784
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1785
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1786
+ var Modal = function Modal(_ref) {
1787
+ var isOpen = _ref.isOpen,
1788
+ _ref$onClose = _ref.onClose,
1789
+ onClose = _ref$onClose === void 0 ? noop : _ref$onClose,
1790
+ _ref$onUploadComplete = _ref.onUploadComplete,
1791
+ onUploadComplete = _ref$onUploadComplete === void 0 ? noop : _ref$onUploadComplete,
1792
+ _ref$uploadConfig = _ref.uploadConfig,
1793
+ uploadConfig = _ref$uploadConfig === void 0 ? {} : _ref$uploadConfig,
1794
+ _ref$fixedAspectRatio = _ref.fixedAspectRatio,
1795
+ fixedAspectRatio = _ref$fixedAspectRatio === void 0 ? {} : _ref$fixedAspectRatio;
1796
+ var _useState = useState(TABS[0].key),
1797
+ _useState2 = _slicedToArray(_useState, 2),
1798
+ activeTab = _useState2[0],
1799
+ setActiveTab = _useState2[1];
1800
+ var _useState3 = useState({}),
1801
+ _useState4 = _slicedToArray(_useState3, 2),
1802
+ selectedImage = _useState4[0],
1803
+ setSelectedImage = _useState4[1];
1804
+ var _useState5 = useState(false),
1805
+ _useState6 = _slicedToArray(_useState5, 2),
1806
+ isUploading = _useState6[0],
1807
+ setIsUploading = _useState6[1];
1808
+ var _useTranslation = useTranslation(),
1809
+ t = _useTranslation.t;
1810
+ var _useCreateBlob = useCreateBlob(),
1811
+ createBlob = _useCreateBlob.mutate;
1812
+ var uploadConfigWithDefaults = mergeRight(DEFAULT_UPLOAD_CONFIG, uploadConfig);
1813
+ var isCloudFlareImageUploader = globalProps.assetsUploaderService === CLOUD_FLARE;
1814
+ var handleCloseModal = function handleCloseModal() {
1815
+ onClose();
1816
+ setSelectedImage({});
1817
+ };
1818
+ var handleImageEditComplete = function handleImageEditComplete(editedImage) {
1819
+ handleCreateBlob(editedImage, true);
1820
+ handleCloseModal();
1821
+ };
1822
+ var handleUploadComplete = function handleUploadComplete(image) {
1823
+ isCloudFlareImageUploader && handleCreateBlob(image);
1824
+ setSelectedImage(image);
1825
+ };
1826
+ var handleCreateBlob = function handleCreateBlob(editedImage) {
1827
+ var isCropped = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1828
+ if (IS_DEVELOPMENT_OR_HEROKU_ENV) {
1829
+ onUploadComplete({
1830
+ url: editedImage.url,
1831
+ signedId: editedImage.signedId
1832
+ });
1833
+ } else {
1834
+ var imageKitPayload = function imageKitPayload() {
1835
+ return {
1836
+ filename: generateASCIIFileName(editedImage.name),
1837
+ byte_size: editedImage.size,
1838
+ content_type: editedImage.fileType,
1839
+ checksum: editedImage.fileId,
1840
+ metadata: editedImage,
1841
+ service_name: "imagekitio"
1842
+ };
1843
+ };
1844
+ var cloudFlarePayload = function cloudFlarePayload() {
1845
+ return {
1846
+ filename: generateASCIIFileName(editedImage.filename),
1847
+ content_type: editedImage.contentType,
1848
+ byte_size: editedImage.byteSize,
1849
+ checksum: editedImage.checksum,
1850
+ metadata: _objectSpread(_objectSpread({}, editedImage.metadata), {}, {
1851
+ url: constructCloudflareImageURL(editedImage.url),
1852
+ isCropped: isCropped
1853
+ }),
1854
+ service_name: "cloudflare_image"
1855
+ };
1856
+ };
1857
+ var payload = isCloudFlareImageUploader ? cloudFlarePayload() : imageKitPayload();
1858
+ createBlob(payload, {
1859
+ onSuccess: function onSuccess(image) {
1860
+ onUploadComplete({
1861
+ url: image.blobUrl,
1862
+ signedId: image.signedId
1863
+ });
1864
+ },
1865
+ onError: Toastr.error
1866
+ });
1867
+ }
1868
+ };
1869
+ var _useImageUploader = useImageUploader({
1870
+ onUploadComplete: handleUploadComplete,
1871
+ setIsUploading: setIsUploading
1872
+ }),
1873
+ uploadFile = _useImageUploader.uploadFile;
1874
+ var _useUploadDropzone = useUploadDropzone({
1875
+ uploadConfig: uploadConfigWithDefaults,
1876
+ onDrop: uploadFile
1877
+ }),
1878
+ getRootProps = _useUploadDropzone.getRootProps,
1879
+ getInputProps = _useUploadDropzone.getInputProps,
1880
+ isDragActive = _useUploadDropzone.isDragActive,
1881
+ inputRef = _useUploadDropzone.inputRef;
1882
+ var openFileUploadDialog = function openFileUploadDialog() {
1883
+ var _inputRef$current;
1884
+ return (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.click();
1885
+ };
1886
+ var options = createOptions([{
1887
+ key: "local",
1888
+ onClick: openFileUploadDialog
1889
+ }]);
1890
+ useEffect(function () {
1891
+ setActiveTab(TABS[0].key);
1892
+ }, [isOpen]);
1893
+ return /*#__PURE__*/jsxs(NeetoUIModal, {
1894
+ isOpen: isOpen,
1895
+ className: "niu-modal",
1896
+ size: "large",
1897
+ onClose: handleCloseModal,
1898
+ children: [isUploading && /*#__PURE__*/jsx("div", {
1899
+ className: "neeto-ui-bg-gray-400 absolute inset-0 z-50 flex h-full items-center justify-center opacity-50",
1900
+ children: /*#__PURE__*/jsx(Spinner, {})
1901
+ }), isNilOrEmpty(selectedImage) && isDragActive && /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
1902
+ className: "neeto-ui-rounded-xl neeto-ui-bg-gray-400 absolute flex h-full w-full flex-col items-center justify-around border-4 border-dashed border-gray-900 opacity-40"
1903
+ }, getRootProps()), {}, {
1904
+ children: /*#__PURE__*/jsx(Typography, {
1905
+ children: t("neetoImageUploader.common.dropHere")
1906
+ })
1907
+ })), !isNilOrEmpty(selectedImage) ? /*#__PURE__*/jsx(ImageEditor, {
1908
+ fixedAspectRatio: fixedAspectRatio,
1909
+ handleImageEditComplete: handleImageEditComplete,
1910
+ handleReset: function handleReset() {
1911
+ return setSelectedImage({});
1912
+ },
1913
+ image: selectedImage,
1914
+ signedId: selectedImage === null || selectedImage === void 0 ? void 0 : selectedImage.signedId
1915
+ }) : /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
1916
+ className: "h-full flex-col"
1917
+ }, getRootProps({
1918
+ onClick: function onClick(event) {
1919
+ return event.stopPropagation();
1920
+ }
1921
+ })), {}, {
1922
+ children: [/*#__PURE__*/jsx(NeetoUIModal.Header, {
1923
+ children: /*#__PURE__*/jsx(Typography, {
1924
+ style: "h2",
1925
+ children: t("neetoImageUploader.common.imageLibrary")
1926
+ })
1927
+ }), /*#__PURE__*/jsx("div", {
1928
+ className: "px-6 py-2",
1929
+ children: /*#__PURE__*/jsxs("div", {
1930
+ className: "flex flex-col items-center justify-between gap-2 sm:flex-row",
1931
+ children: [/*#__PURE__*/jsx("div", {
1932
+ className: "flex gap-2",
1933
+ children: /*#__PURE__*/jsx(Tab, {
1934
+ size: "small",
1935
+ children: TABS.map(function (tab) {
1936
+ return /*#__PURE__*/jsx(Tab.Item, {
1937
+ active: activeTab === tab.key,
1938
+ "data-cy": tab.dataCy,
1939
+ onClick: function onClick() {
1940
+ return setActiveTab(tab.key);
1941
+ },
1942
+ children: tab.label
1943
+ }, tab.key);
1944
+ })
1945
+ })
1946
+ }), /*#__PURE__*/jsx("div", {
1947
+ className: "flex gap-2",
1948
+ children: options.map(function (_ref2) {
1949
+ var key = _ref2.key,
1950
+ otherProps = _objectWithoutProperties$1(_ref2, _excluded);
1951
+ return /*#__PURE__*/createElement(Button, _objectSpread(_objectSpread({}, otherProps), {}, {
1952
+ key: key,
1953
+ size: "small"
1954
+ }));
1955
+ })
1956
+ })]
1957
+ })
1958
+ }), /*#__PURE__*/jsx(ImageLibrary, {
1959
+ setActiveTab: setActiveTab,
1960
+ setIsUploading: setIsUploading,
1961
+ setSelectedImage: setSelectedImage,
1962
+ tab: activeTab
1963
+ }), equals(activeTab, TABS[1].key) && /*#__PURE__*/jsx(NeetoUIModal.Footer, {
1964
+ className: "flex items-center justify-center gap-2",
1965
+ children: /*#__PURE__*/jsx(Typography, {
1966
+ style: "body2",
1967
+ children: /*#__PURE__*/jsx(Trans, {
1968
+ i18nKey: "neetoImageUploader.unsplash.poweredByUnsplash",
1969
+ components: {
1970
+ a: /*#__PURE__*/jsx("a", {
1971
+ href: UNSPLASH_URL,
1972
+ rel: "noreferrer",
1973
+ target: "_blank"
1974
+ })
1975
+ }
1976
+ })
1977
+ })
1978
+ })]
1979
+ })), /*#__PURE__*/jsx("input", _objectSpread({}, getInputProps()))]
1980
+ });
1981
+ };
1982
+
1983
+ export { Modal as M, constructCloudflareImageURL as c };
1984
+ //# sourceMappingURL=index-60324d58.js.map