@hai-dev/ui-kit 1.0.2 → 1.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 (38) hide show
  1. package/dist/{Button-0AB7oP6Y.js → Button-DDlVTM6i.js} +3 -2
  2. package/dist/ButtonBase-CXGZ-DBC.js +1346 -0
  3. package/dist/{CircularProgress-BD6BPlN2.js → CircularProgress-CscJm1An.js} +9 -8
  4. package/dist/{DialogTitle-iOQ7wKEt.js → DialogTitle-KN1sayHD.js} +453 -555
  5. package/dist/assets/photo-list.css +1 -0
  6. package/dist/assets/upload-dialog.css +1 -1
  7. package/dist/components/button/button.js +1 -1
  8. package/dist/components/photo-crop-uploader/components/error-upload-dialog/error-upload-dialog.js +87 -23
  9. package/dist/components/photo-crop-uploader/components/photo-list/constants.d.ts +1 -0
  10. package/dist/components/photo-crop-uploader/components/photo-list/constants.js +4 -0
  11. package/dist/components/photo-crop-uploader/components/photo-list/index.d.ts +1 -0
  12. package/dist/components/photo-crop-uploader/components/photo-list/index.js +4 -0
  13. package/dist/components/photo-crop-uploader/components/photo-list/photo-list.d.ts +3 -0
  14. package/dist/components/photo-crop-uploader/components/photo-list/photo-list.js +88 -0
  15. package/dist/components/photo-crop-uploader/components/photo-list/types.d.ts +8 -0
  16. package/dist/components/photo-crop-uploader/components/photo-list/types.js +1 -0
  17. package/dist/components/photo-crop-uploader/components/upload-button/types.d.ts +3 -1
  18. package/dist/components/photo-crop-uploader/components/upload-button/upload-button.js +72 -62
  19. package/dist/components/photo-crop-uploader/components/upload-dialog/constants.d.ts +1 -0
  20. package/dist/components/photo-crop-uploader/components/upload-dialog/constants.js +4 -0
  21. package/dist/components/photo-crop-uploader/components/upload-dialog/types.d.ts +5 -2
  22. package/dist/components/photo-crop-uploader/components/upload-dialog/upload-dialog.js +170 -136
  23. package/dist/components/photo-crop-uploader/constants.d.ts +3 -0
  24. package/dist/components/photo-crop-uploader/constants.js +36 -33
  25. package/dist/components/photo-crop-uploader/locale.js +8 -2
  26. package/dist/components/photo-crop-uploader/photo-crop-uploader.js +163 -112
  27. package/dist/components/photo-crop-uploader/types.d.ts +3 -1
  28. package/dist/components/photo-crop-uploader/utils/get-default-cropped-photo.d.ts +3 -0
  29. package/dist/components/photo-crop-uploader/utils/get-default-cropped-photo.js +32 -0
  30. package/dist/components/photo-crop-uploader/utils/get-photo-crop.d.ts +1 -1
  31. package/dist/components/photo-crop-uploader/utils/get-photo-crop.js +12 -12
  32. package/dist/components/photo-crop-uploader/utils/index.d.ts +1 -0
  33. package/dist/components/photo-crop-uploader/utils/index.js +4 -2
  34. package/dist/components/photo-crop-uploader/utils/read-photo.js +33 -30
  35. package/dist/createTheme-DSHGFfg6.js +4124 -0
  36. package/dist/extendSxProp-CzeED7BH.js +49 -0
  37. package/package.json +1 -1
  38. package/dist/ButtonBase-Bw_3RZmN.js +0 -5453
@@ -1,154 +1,205 @@
1
- import { jsxs as Y, Fragment as $, jsx as s } from "react/jsx-runtime";
2
- import { useState as a, useRef as S } from "react";
1
+ import { jsxs as io, Fragment as ho, jsx as h } from "react/jsx-runtime";
2
+ import { useState as s, useRef as M } from "react";
3
3
  import "../../index-BiffjjQq.js";
4
- import { c as oo } from "../../index-B2JRaoNz.js";
5
- import { localizedText as to } from "./locale.js";
6
- import { EN_LOCALE as ro } from "../../constants.js";
7
- import { DEFAULT_MIN_DIMENSION as eo, DEFAULT_ASPECT_RATIO as ao, DEFAULT_TIMEOUT as no, DEFAULT_FILE_MAX_SIZE as so } from "./constants.js";
8
- import { UploadDialog as po } from "./components/upload-dialog/upload-dialog.js";
9
- import { UploadButton as lo } from "./components/upload-button/upload-button.js";
10
- import { ErrorUploadDialog as io } from "./components/error-upload-dialog/error-upload-dialog.js";
11
- import { validatePhotoFile as co } from "./utils/validate-photo-file.js";
12
- import { readPhoto as ho } from "./utils/read-photo.js";
13
- import { getPhotoCrop as mo } from "./utils/get-photo-crop.js";
14
- import { getCropedPhoto as fo } from "./utils/get-croped-photo.js";
15
- import '../../assets/photo-crop-uploader.css';const uo = "_photoCropCanvas_1i4lr_1", Co = {
16
- photoCropCanvas: uo
17
- }, Io = (U) => {
4
+ import { c as mo } from "../../index-B2JRaoNz.js";
5
+ import { localizedText as fo } from "./locale.js";
6
+ import { EN_LOCALE as Co } from "../../constants.js";
7
+ import { DEFAULT_MIN_DIMENSION as uo, DEFAULT_ASPECT_RATIO as go, DEFAULT_TIMEOUT as Po, DEFAULT_FILE_MAX_SIZE as Eo } from "./constants.js";
8
+ import { UploadDialog as Do } from "./components/upload-dialog/upload-dialog.js";
9
+ import { UploadButton as So } from "./components/upload-button/upload-button.js";
10
+ import { ErrorUploadDialog as Lo } from "./components/error-upload-dialog/error-upload-dialog.js";
11
+ import { validatePhotoFile as N } from "./utils/validate-photo-file.js";
12
+ import { readPhoto as R } from "./utils/read-photo.js";
13
+ import { getPhotoCrop as wo } from "./utils/get-photo-crop.js";
14
+ import { getCropedPhoto as Uo } from "./utils/get-croped-photo.js";
15
+ import { getDefaultCroppedPhoto as _o } from "./utils/get-default-cropped-photo.js";
16
+ import '../../assets/photo-crop-uploader.css';const xo = "_photoCropCanvas_1i4lr_1", yo = {
17
+ photoCropCanvas: xo
18
+ }, Xo = (k) => {
18
19
  const {
19
- buttonClassname: _ = "",
20
- onStartUpload: T = () => {
20
+ buttonClassname: z = "",
21
+ onStartUpload: H = () => {
21
22
  },
22
- onEndUpload: v = () => {
23
+ onEndUpload: j = () => {
23
24
  },
24
- onError: w = () => {
25
+ onError: B = () => {
25
26
  },
26
- onStartCrop: x = () => {
27
+ onStartCrop: X = () => {
27
28
  },
28
- onEndCrop: A = () => {
29
+ onEndCrop: Z = () => {
29
30
  },
30
- onDragOver: F = () => {
31
+ onDragOver: q = () => {
31
32
  },
32
- onDragLeave: I = () => {
33
+ onDragLeave: G = () => {
33
34
  },
34
- onDragDrop: O = () => {
35
+ onDragDrop: J = () => {
35
36
  },
36
- showErrorPopup: b = !1,
37
- minDimension: n = eo,
38
- aspectRatio: i = ao,
39
- locale: e = ro,
40
- timeout: y = no,
41
- fileMaxSize: M = so,
42
- allowedExtensions: c,
43
- allowedMimeTypes: N,
44
- circular: R,
45
- width: z,
46
- keepSelection: H,
47
- photoCropUploaderSlots: j,
48
- ...k
49
- } = U, [B, p] = a(!1), [X, h] = a(""), [l, d] = a(), m = S(null), f = S(null), [u, C] = a(!1), [E, g] = a(""), [Z, P] = a(!1), D = () => {
50
- p(!1);
51
- }, q = () => {
52
- P(!1);
53
- }, G = (o) => {
54
- v(o), h(o), p(!0), g("");
55
- }, L = (o) => {
56
- o instanceof Error && (console.warn(o.message), w(o), g(o.message), P(!0), h(""), p(!1));
57
- }, J = async (o) => {
58
- const r = o.target.files?.[0];
59
- if (r)
37
+ onClose: P = () => {
38
+ },
39
+ showErrorPopup: K = !1,
40
+ minDimension: a = uo,
41
+ aspectRatio: m = go,
42
+ locale: e = Co,
43
+ timeout: E = Po,
44
+ fileMaxSize: D = Eo,
45
+ allowedExtensions: d,
46
+ allowedMimeTypes: S,
47
+ circular: Q,
48
+ width: V,
49
+ keepSelection: W,
50
+ photoCropUploaderSlots: Y,
51
+ multiple: L,
52
+ fromSources: $,
53
+ ...oo
54
+ } = k, [to, i] = s(!1), [p, w] = s([]), [f, C] = s([]), [l, U] = s(0), _ = M(null), x = M(null), [y, A] = s(!1), [T, v] = s(""), [ro, I] = s(!1), F = (o = []) => {
55
+ P(o, p), i(!1);
56
+ }, eo = () => {
57
+ P([], p), i(!1);
58
+ }, no = () => {
59
+ I(!1);
60
+ }, u = (o) => {
61
+ j(o), w(o), C(Array(o.length)), U(0), i(!0), v("");
62
+ }, g = (o) => {
63
+ o instanceof Error && (console.warn(o.message), B(o), v(o.message), I(!0), w([]), i(!1));
64
+ }, ao = async (o) => {
65
+ const { files: r } = o.target;
66
+ if (r?.length)
60
67
  try {
61
- C(!0), T(), co(
62
- r,
63
- { maxSize: M, allowedExtensions: c, allowedMimeTypes: N },
64
- e
65
- );
66
- const t = await ho(r, n, e, y);
67
- G(t);
68
+ if (A(!0), H(), L) {
69
+ const t = Array.from(r);
70
+ t.forEach((c) => {
71
+ N(
72
+ c,
73
+ { maxSize: D, allowedExtensions: d, allowedMimeTypes: S },
74
+ e
75
+ );
76
+ });
77
+ const n = await Promise.all(
78
+ t.map(
79
+ (c) => R(c, a, e, E)
80
+ )
81
+ );
82
+ u(n);
83
+ } else {
84
+ const t = r[0];
85
+ N(
86
+ t,
87
+ { maxSize: D, allowedExtensions: d, allowedMimeTypes: S },
88
+ e
89
+ );
90
+ const n = await R(t, a, e, E);
91
+ u([n]);
92
+ }
68
93
  } catch (t) {
69
- L(t);
94
+ g(t);
70
95
  } finally {
71
- o.target.value = "", C(!1);
96
+ o.target.value = "", A(!1);
72
97
  }
73
- }, K = (o) => {
74
- const { width: r, height: t } = o.currentTarget, W = mo(r, t, n, i);
75
- d(W);
76
- }, Q = (o, r) => {
77
- d(r);
78
- }, V = () => {
79
- const o = f.current, r = m.current;
80
- if (o && r && l)
98
+ }, so = (o) => {
99
+ const { width: r, height: t } = o.currentTarget, n = wo(r, t, a, m);
100
+ C((c) => {
101
+ const b = [...c];
102
+ return b[l] = n, b;
103
+ });
104
+ }, lo = (o, r) => {
105
+ C((t) => {
106
+ const n = [...t];
107
+ return n[l] = r, n;
108
+ });
109
+ }, O = () => {
110
+ const o = x.current, r = _.current;
111
+ if (o && r && f)
81
112
  try {
82
- x();
83
- const t = fo(
113
+ X();
114
+ const t = Uo(
84
115
  r,
85
116
  o,
86
- l,
117
+ f[l],
87
118
  e
88
119
  );
89
- A(t), D();
120
+ Z(t), l >= p.length - 1 && F();
90
121
  } catch (t) {
91
- t instanceof Error && (console.warn(t), L(t));
122
+ t instanceof Error && (console.warn(t), g(t));
92
123
  }
124
+ }, po = () => {
125
+ O(), U((o) => o + 1);
126
+ }, co = async () => {
127
+ const o = p.slice(l);
128
+ try {
129
+ const r = await Promise.all(
130
+ o.map(
131
+ (t) => _o(t, a, m, e)
132
+ )
133
+ );
134
+ F(r);
135
+ } catch (r) {
136
+ g(r);
137
+ }
93
138
  };
94
- return /* @__PURE__ */ Y($, { children: [
95
- /* @__PURE__ */ s(
96
- lo,
139
+ return /* @__PURE__ */ io(ho, { children: [
140
+ /* @__PURE__ */ h(
141
+ So,
97
142
  {
98
- onChange: J,
99
- buttonClassname: _,
100
- disabled: u,
101
- buttonDisabled: u,
143
+ onChange: ao,
144
+ onPhotoDataLoaded: u,
145
+ buttonClassname: z,
146
+ disabled: y,
147
+ buttonDisabled: y,
102
148
  locale: e,
103
- width: z,
104
- allowedExtensions: c,
105
- onDragDrop: O,
106
- onDragLeave: I,
107
- onDragOver: F,
108
- button: j?.button,
109
- ...k,
110
- children: to[e].upload
149
+ width: V,
150
+ allowedExtensions: d,
151
+ onDragDrop: J,
152
+ onDragLeave: G,
153
+ onDragOver: q,
154
+ button: Y?.button,
155
+ multiple: L,
156
+ fromSources: $,
157
+ ...oo,
158
+ children: fo[e].upload
111
159
  }
112
160
  ),
113
- /* @__PURE__ */ s(
114
- po,
161
+ /* @__PURE__ */ h(
162
+ Do,
115
163
  {
116
- open: B,
117
- photoCrop: l,
118
- photoSource: X,
119
- photoError: E,
120
- onCloseDialogHandler: D,
121
- onCropChange: Q,
122
- onPhotoCrop: V,
123
- onPhotoLoad: K,
124
- imageRef: m,
125
- minDimension: n,
126
- aspectRatio: i,
164
+ open: to,
165
+ photoCrops: f,
166
+ photoSources: p,
167
+ onNextPhoto: po,
168
+ onSkipCrop: co,
169
+ photoError: T,
170
+ onCloseDialogHandler: eo,
171
+ onCropChange: lo,
172
+ onPhotoCrop: O,
173
+ onPhotoLoad: so,
174
+ imageRef: _,
175
+ minDimension: a,
176
+ aspectRatio: m,
127
177
  locale: e,
128
- circular: R,
129
- keepSelection: H
178
+ circular: Q,
179
+ keepSelection: W,
180
+ photoIndex: l
130
181
  }
131
182
  ),
132
- /* @__PURE__ */ s(
133
- io,
183
+ /* @__PURE__ */ h(
184
+ Lo,
134
185
  {
135
- open: b && Z,
136
- photoError: E,
137
- onCloseErrorDialog: q,
186
+ open: K && ro,
187
+ photoError: T,
188
+ onCloseErrorDialog: no,
138
189
  locale: e
139
190
  }
140
191
  ),
141
- /* @__PURE__ */ s(
192
+ /* @__PURE__ */ h(
142
193
  "canvas",
143
194
  {
144
- className: oo(Co.photoCropCanvas),
145
- width: n,
146
- height: n,
147
- ref: f
195
+ className: mo(yo.photoCropCanvas),
196
+ width: a,
197
+ height: a,
198
+ ref: x
148
199
  }
149
200
  )
150
201
  ] });
151
202
  };
152
203
  export {
153
- Io as PhotoCropUploader
204
+ Xo as PhotoCropUploader
154
205
  };
@@ -16,10 +16,11 @@ export type PhotoCropUploaderSlots = {
16
16
  export type PhotoCropUploaderCustomProps = {
17
17
  buttonClassname?: string;
18
18
  onStartUpload?: () => unknown;
19
- onEndUpload?: (photoData: PhotoDataUrl) => unknown;
19
+ onEndUpload?: (photoData: PhotoDataUrl[]) => unknown;
20
20
  onError?: (error: Error) => unknown;
21
21
  onStartCrop?: () => unknown;
22
22
  onEndCrop?: (photoData: PhotoDataUrl) => unknown;
23
+ onClose?: (skipPhotosData: PhotoDataUrl[], sourcesData: PhotoDataUrl[]) => unknown;
23
24
  onDragOver?: (event: DragEvent<HTMLDivElement>) => unknown;
24
25
  onDragLeave?: (event: DragEvent<HTMLDivElement>) => unknown;
25
26
  onDragDrop?: (event: DragEvent<HTMLDivElement>) => unknown;
@@ -35,6 +36,7 @@ export type PhotoCropUploaderCustomProps = {
35
36
  keepSelection?: boolean;
36
37
  width?: number;
37
38
  photoCropUploaderSlots?: PhotoCropUploaderSlots;
39
+ fromSources?: PhotoDataUrl[];
38
40
  };
39
41
  export type PhotoCropUploaderProps = PhotoCropUploaderCustomProps & InputHTMLAttributes<HTMLInputElement>;
40
42
  export type PhotoCropUploaderLocaleText = Record<Locale, Record<string, string>>;
@@ -0,0 +1,3 @@
1
+ import { Locale } from '../../../types';
2
+ import { PhotoDataUrl } from '../types';
3
+ export declare const getDefaultCroppedPhoto: (photoSourse: PhotoDataUrl, minDimension: number, aspectRatio: number, locale: Locale) => Promise<PhotoDataUrl>;
@@ -0,0 +1,32 @@
1
+ import { getPhotoCrop as m } from "./get-photo-crop.js";
2
+ import { getCropedPhoto as g } from "./get-croped-photo.js";
3
+ import { localizedText as P } from "../locale.js";
4
+ const w = async (a, c, s, e) => new Promise((p, n) => {
5
+ const o = new Image(), d = document.createElement("canvas");
6
+ o.src = a, o.addEventListener("load", () => {
7
+ const { width: t, height: h } = o, i = m(
8
+ t,
9
+ h,
10
+ c,
11
+ s,
12
+ !0
13
+ );
14
+ try {
15
+ const r = g(
16
+ o,
17
+ d,
18
+ i,
19
+ e
20
+ );
21
+ p(r);
22
+ } catch (r) {
23
+ n(r);
24
+ }
25
+ }), o.addEventListener("error", () => {
26
+ const t = new Error(P[e]["paint-error"]);
27
+ n(t);
28
+ });
29
+ });
30
+ export {
31
+ w as getDefaultCroppedPhoto
32
+ };
@@ -1,2 +1,2 @@
1
1
  import { Crop } from 'react-image-crop';
2
- export declare const getPhotoCrop: (width: number, height: number, minDimension?: number, aspectRatio?: number) => Crop;
2
+ export declare const getPhotoCrop: (width: number, height: number, minDimension?: number, aspectRatio?: number, maxSize?: boolean) => Crop;
@@ -1,18 +1,18 @@
1
- import { B as I, L as E } from "../../../index-BiffjjQq.js";
2
- import { DEFAULT_MIN_DIMENSION as T, DEFAULT_ASPECT_RATIO as C, PRECENT_UNIT as N } from "../constants.js";
3
- const A = (o, r, t = T, c = C) => {
4
- const e = t / o * 100, n = t / r * 100, p = I(
1
+ import { B as _, L as C } from "../../../index-BiffjjQq.js";
2
+ import { DEFAULT_MIN_DIMENSION as P, DEFAULT_ASPECT_RATIO as T, FULL_CROP_SIZE as o, PRECENT_UNIT as s } from "../constants.js";
3
+ const U = (r, t, c = P, n = T, e = !1) => {
4
+ const p = c / r * o, I = c / t * o, E = _(
5
5
  {
6
- unit: N,
7
- width: e,
8
- height: n
6
+ unit: s,
7
+ width: e ? o : p,
8
+ height: e ? o : I
9
9
  },
10
- c,
11
- o,
12
- r
10
+ n,
11
+ r,
12
+ t
13
13
  );
14
- return E(p, o, r);
14
+ return C(E, r, t);
15
15
  };
16
16
  export {
17
- A as getPhotoCrop
17
+ U as getPhotoCrop
18
18
  };
@@ -2,3 +2,4 @@ export { readPhoto } from './read-photo';
2
2
  export { getPhotoCrop } from './get-photo-crop';
3
3
  export { getCropedPhoto } from './get-croped-photo';
4
4
  export { validatePhotoFile } from './validate-photo-file';
5
+ export { getDefaultCroppedPhoto } from './get-default-cropped-photo';
@@ -1,10 +1,12 @@
1
- import { readPhoto as t } from "./read-photo.js";
1
+ import { readPhoto as e } from "./read-photo.js";
2
2
  import { getPhotoCrop as p } from "./get-photo-crop.js";
3
3
  import { getCropedPhoto as h } from "./get-croped-photo.js";
4
4
  import { validatePhotoFile as x } from "./validate-photo-file.js";
5
+ import { getDefaultCroppedPhoto as a } from "./get-default-cropped-photo.js";
5
6
  export {
6
7
  h as getCropedPhoto,
8
+ a as getDefaultCroppedPhoto,
7
9
  p as getPhotoCrop,
8
- t as readPhoto,
10
+ e as readPhoto,
9
11
  x as validatePhotoFile
10
12
  };
@@ -1,51 +1,54 @@
1
- import { localizedText as d } from "../locale.js";
2
- import { EN_LOCALE as l } from "../../../constants.js";
3
- import { DEFAULT_MIN_DIMENSION as I, DEFAULT_TIMEOUT as c, MS_UNIT as p } from "../constants.js";
1
+ import { localizedText as s } from "../locale.js";
2
+ import { EN_LOCALE as c } from "../../../constants.js";
3
+ import { DEFAULT_MIN_DIMENSION as p, DEFAULT_TIMEOUT as A, MS_UNIT as _, MAX_ASPECT_RATIO as w, MIN_ASPECT_RATIO as l } from "../constants.js";
4
4
  import { PhotoSizeError as v } from "../errors/photo-size.error.js";
5
- const N = async (f, s = I, o = l, u = c) => new Promise(
6
- (m, t) => {
7
- const e = new FileReader();
5
+ const S = async (L, d = p, o = c, T = A) => new Promise(
6
+ (m, e) => {
7
+ const t = new FileReader();
8
8
  let r = !1;
9
9
  const E = setTimeout(() => {
10
- r || (r = !0, e.abort(), t(
10
+ r || (r = !0, t.abort(), e(
11
11
  new Error(
12
- `${d[o]["timeout-error"]}: ${u}${p}`
12
+ `${s[o]["timeout-error"]}: ${T}${_}`
13
13
  )
14
14
  ));
15
- }, u);
16
- e.addEventListener("load", () => {
15
+ }, T);
16
+ t.addEventListener("load", () => {
17
17
  if (r) return;
18
18
  r = !0, clearTimeout(E);
19
- const a = e.result?.toString() || "";
19
+ const a = t.result?.toString() || "";
20
20
  if (!a) {
21
21
  m("");
22
22
  return;
23
23
  }
24
- const n = new Image();
25
- n.src = a, n.addEventListener("load", () => {
26
- const { naturalWidth: i, naturalHeight: L } = n;
27
- if (i < s || L < s) {
28
- const T = v.get(s, o);
29
- t(T);
24
+ const i = new Image();
25
+ i.src = a, i.addEventListener("load", () => {
26
+ const { naturalWidth: n, naturalHeight: f } = i, I = f / n;
27
+ if (n < d || f < d) {
28
+ const u = v.get(d, o);
29
+ e(u);
30
+ } else if (I > w || I < l) {
31
+ const u = new Error(s[o].aspect);
32
+ e(u);
30
33
  } else
31
34
  m(a);
32
- }), n.addEventListener("error", () => {
33
- const i = new Error(d[o]["paint-error"]);
34
- t(i);
35
- }), n.addEventListener("abort", () => {
36
- const i = new Error(d[o]["read-abort"]);
37
- t(i);
35
+ }), i.addEventListener("error", () => {
36
+ const n = new Error(s[o]["paint-error"]);
37
+ e(n);
38
+ }), i.addEventListener("abort", () => {
39
+ const n = new Error(s[o]["read-abort"]);
40
+ e(n);
38
41
  });
39
- }), e.addEventListener("error", () => {
40
- r || (r = !0, clearTimeout(E), t(e.error));
41
- }), e.addEventListener("abort", () => {
42
+ }), t.addEventListener("error", () => {
43
+ r || (r = !0, clearTimeout(E), e(t.error));
44
+ }), t.addEventListener("abort", () => {
42
45
  if (r) return;
43
46
  r = !0, clearTimeout(E);
44
- const a = new Error(d[o]["paint-abort"]);
45
- t(a);
46
- }), e.readAsDataURL(f);
47
+ const a = new Error(s[o]["paint-abort"]);
48
+ e(a);
49
+ }), t.readAsDataURL(L);
47
50
  }
48
51
  );
49
52
  export {
50
- N as readPhoto
53
+ S as readPhoto
51
54
  };