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

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