ablok-components 0.3.120 → 0.3.121
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.
|
@@ -5,25 +5,25 @@ import r from "../input-dropdown/input-dropdown.js";
|
|
|
5
5
|
import { useCameraFilter as i } from "../../../composables/useCameraFilter.js";
|
|
6
6
|
import a from "../../atoms/zoom-slider/zoom-slider.js";
|
|
7
7
|
import o from "../../../assets/img/guide.js";
|
|
8
|
-
import { computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createVNode as f, defineComponent as p, nextTick as ee, normalizeClass as m, normalizeStyle as
|
|
9
|
-
import
|
|
8
|
+
import { computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createVNode as f, defineComponent as p, nextTick as ee, normalizeClass as m, normalizeStyle as te, onBeforeUnmount as ne, onMounted as re, openBlock as h, ref as g, toDisplayString as _, vShow as ie, watch as ae, withCtx as oe, withDirectives as se, withModifiers as ce } from "vue";
|
|
9
|
+
import le from "lodash";
|
|
10
10
|
//#region src/components/molecules/base-camera/base-camera.vue?vue&type=script&async=true&setup=true&lang.ts
|
|
11
|
-
var
|
|
11
|
+
var ue = { class: "camera__preview" }, de = {
|
|
12
12
|
key: 0,
|
|
13
13
|
class: "camera__bg-notification"
|
|
14
|
-
},
|
|
14
|
+
}, fe = ["innerHTML"], pe = ["width", "height"], me = {
|
|
15
15
|
key: 1,
|
|
16
16
|
class: "camera__countdown-overlay"
|
|
17
|
-
},
|
|
17
|
+
}, he = ["innerHTML", "data-countdown"], ge = ["src"], _e = {
|
|
18
18
|
key: 3,
|
|
19
19
|
class: "camera__zoom-slider"
|
|
20
|
-
},
|
|
20
|
+
}, ve = { class: "camera__controls" }, ye = { class: "container" }, be = { class: "row" }, xe = { class: "col" }, Se = { class: "btn-group" }, Ce = { key: 0 }, we = { key: 1 }, Te = {
|
|
21
21
|
key: 0,
|
|
22
22
|
class: "camera__select-device"
|
|
23
|
-
},
|
|
23
|
+
}, Ee = { class: "col" }, De = { class: "" }, Oe = {
|
|
24
24
|
name: "BaseCamera",
|
|
25
25
|
inheritAttrs: !1
|
|
26
|
-
},
|
|
26
|
+
}, ke = {
|
|
27
27
|
"1x1": {
|
|
28
28
|
width: 720,
|
|
29
29
|
height: 720
|
|
@@ -60,8 +60,8 @@ var le = { class: "camera__preview" }, ue = {
|
|
|
60
60
|
width: 720,
|
|
61
61
|
height: 1280
|
|
62
62
|
}
|
|
63
|
-
},
|
|
64
|
-
...
|
|
63
|
+
}, Ae = /*@__PURE__*/ p({
|
|
64
|
+
...Oe,
|
|
65
65
|
props: {
|
|
66
66
|
modelValue: { type: null },
|
|
67
67
|
enableSwitchCamera: {
|
|
@@ -123,7 +123,7 @@ var le = { class: "camera__preview" }, ue = {
|
|
|
123
123
|
},
|
|
124
124
|
resolutions: {
|
|
125
125
|
type: Object,
|
|
126
|
-
default: () =>
|
|
126
|
+
default: () => ke
|
|
127
127
|
},
|
|
128
128
|
zoom: {
|
|
129
129
|
type: Number,
|
|
@@ -139,20 +139,20 @@ var le = { class: "camera__preview" }, ue = {
|
|
|
139
139
|
}
|
|
140
140
|
},
|
|
141
141
|
emits: ["update:modelValue"],
|
|
142
|
-
setup(o, { expose: p, emit:
|
|
143
|
-
let { debounce:
|
|
144
|
-
function
|
|
145
|
-
|
|
142
|
+
setup(o, { expose: p, emit: Oe }) {
|
|
143
|
+
let { debounce: Ae } = le, v = o, je = Oe, y = g(), b = g(), Me = g(!1), x = g([]), S = g(), C = g(), w = g(), T = g(), E = g(), D = g(!1), O = g(!1), k = g(0), A = g(0), j = g(), M = g(v.zoom || 1), Ne = g(!1), N = g(!1), P = g(null), Pe = g(!1), F, I, Fe = typeof window < "u" && "DeviceMotionEvent" in window && (window.matchMedia?.("(pointer: coarse)")?.matches || "ontouchstart" in window), Ie = s(() => v.correctOrientation && Fe), L = s(() => Me.value && (!Ie.value || Pe.value));
|
|
144
|
+
function R() {
|
|
145
|
+
I &&= (window.removeEventListener("pointerdown", I, !0), window.removeEventListener("touchend", I, !0), void 0);
|
|
146
146
|
}
|
|
147
|
-
function
|
|
148
|
-
|
|
147
|
+
function z() {
|
|
148
|
+
Pe.value = !0, F &&= (clearTimeout(F), void 0), R();
|
|
149
149
|
}
|
|
150
|
-
function
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}, window.addEventListener("pointerdown",
|
|
150
|
+
function Le() {
|
|
151
|
+
I || (I = () => {
|
|
152
|
+
B();
|
|
153
|
+
}, window.addEventListener("pointerdown", I, !0), window.addEventListener("touchend", I, !0));
|
|
154
154
|
}
|
|
155
|
-
function
|
|
155
|
+
function Re(e) {
|
|
156
156
|
let t = e.accelerationIncludingGravity;
|
|
157
157
|
if (!t || t.x == null || t.y == null) return;
|
|
158
158
|
let n = Math.round(Math.atan2(t.x, t.y) * 180 / Math.PI);
|
|
@@ -161,91 +161,91 @@ var le = { class: "camera__preview" }, ue = {
|
|
|
161
161
|
let e = Math.abs(Math.abs(n) - 90);
|
|
162
162
|
!N.value && e < 40 ? N.value = !0 : N.value && e > 50 && (N.value = !1);
|
|
163
163
|
}
|
|
164
|
-
|
|
164
|
+
Pe.value || z();
|
|
165
165
|
}
|
|
166
|
-
async function
|
|
167
|
-
if (!(!
|
|
166
|
+
async function B() {
|
|
167
|
+
if (!(!v.correctOrientation || Ne.value)) try {
|
|
168
168
|
let e = window.DeviceOrientationEvent, t = window.DeviceMotionEvent;
|
|
169
169
|
if (e && typeof e.requestPermission == "function" && await e.requestPermission() !== "granted") {
|
|
170
|
-
|
|
170
|
+
z();
|
|
171
171
|
return;
|
|
172
172
|
}
|
|
173
|
-
t && typeof t.requestPermission == "function" && await t.requestPermission().catch(() => {}), window.addEventListener("devicemotion",
|
|
173
|
+
t && typeof t.requestPermission == "function" && await t.requestPermission().catch(() => {}), window.addEventListener("devicemotion", Re, !0), Ne.value = !0, R();
|
|
174
174
|
} catch (e) {
|
|
175
|
-
console.error(e, "enableMotion: failed"),
|
|
175
|
+
console.error(e, "enableMotion: failed"), z();
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
let
|
|
179
|
-
...
|
|
180
|
-
...
|
|
181
|
-
})),
|
|
182
|
-
function
|
|
178
|
+
let V = s(() => ({
|
|
179
|
+
...ke,
|
|
180
|
+
...v.resolutions
|
|
181
|
+
})), ze = s(() => Object.values(V.value)[0]);
|
|
182
|
+
function Be(e) {
|
|
183
183
|
return String(e || "").trim().toLowerCase().replace(/\s+/g, "").replace(/[:/]/g, "x");
|
|
184
184
|
}
|
|
185
|
-
let
|
|
186
|
-
if (
|
|
187
|
-
let e =
|
|
188
|
-
if (
|
|
189
|
-
}),
|
|
190
|
-
let e =
|
|
185
|
+
let H = s(() => {
|
|
186
|
+
if (V.value[v.ratio]) return v.ratio;
|
|
187
|
+
let e = Be(v.ratio);
|
|
188
|
+
if (V.value[e]) return e;
|
|
189
|
+
}), U = s(() => H.value ? V.value[H.value] : ze.value), Ve = s(() => {
|
|
190
|
+
let e = H.value ? V.value[H.value] : void 0;
|
|
191
191
|
return e ? `${e.width} / ${e.height}` : void 0;
|
|
192
|
-
}),
|
|
193
|
-
function He(e) {
|
|
194
|
-
e && !K.value.includes(e) && (K.value = [...K.value, e]);
|
|
195
|
-
}
|
|
192
|
+
}), W = s(() => x.value.filter((e) => e.kind === "videoinput")), He = s(() => x.value.filter((e) => e.kind === "audioinput")), G = g([]), K = s(() => W.value.filter((e) => !G.value.includes(e.deviceId)));
|
|
196
193
|
function Ue(e) {
|
|
197
|
-
|
|
194
|
+
e && !G.value.includes(e) && (G.value = [...G.value, e]);
|
|
195
|
+
}
|
|
196
|
+
function We(e) {
|
|
197
|
+
let t = W.value;
|
|
198
198
|
if (!t.length) return;
|
|
199
199
|
let n = t.findIndex((t) => t.deviceId === e);
|
|
200
200
|
for (let e = 1; e <= t.length; e++) {
|
|
201
201
|
let r = t[(Math.max(n, 0) + e) % t.length];
|
|
202
|
-
if (r && !
|
|
202
|
+
if (r && !G.value.includes(r.deviceId)) return r;
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
|
-
let
|
|
205
|
+
let Ge = s(() => K.value.map((e, t) => ({
|
|
206
206
|
text: e.label.slice(0, e.label.indexOf("(")) || `Camera ${t + 1}`,
|
|
207
207
|
value: e.deviceId
|
|
208
|
-
}))),
|
|
208
|
+
}))), Ke = s({
|
|
209
209
|
get() {
|
|
210
|
-
return
|
|
210
|
+
return S.value && S.value.deviceId;
|
|
211
211
|
},
|
|
212
212
|
set(e) {
|
|
213
|
-
|
|
213
|
+
S.value = W.value.find((t) => t.deviceId === e), w.value = void 0;
|
|
214
214
|
}
|
|
215
215
|
});
|
|
216
216
|
s({
|
|
217
217
|
get() {
|
|
218
|
-
return
|
|
218
|
+
return C.value && C.value.deviceId;
|
|
219
219
|
},
|
|
220
220
|
set(e) {
|
|
221
|
-
|
|
221
|
+
C.value = He.value.find((t) => t.deviceId === e);
|
|
222
222
|
}
|
|
223
223
|
});
|
|
224
|
-
let q = s(() =>
|
|
225
|
-
let e =
|
|
224
|
+
let q = s(() => v.enableMirrorCamera ? T.value ? T.value === "user" ? "mirror-cam" : "" : w.value ? w.value === "user" ? "mirror-cam" : "" : (S.value && W.value.findIndex((e) => e.deviceId === S.value?.deviceId)) === 0 ? "mirror-cam" : "" : ""), qe = s(() => {
|
|
225
|
+
let e = S.value && x.value.findIndex((e) => e.deviceId === S.value?.deviceId);
|
|
226
226
|
return q.value ? `${q.value} mirror-device-${e}` : "";
|
|
227
|
-
}), { tintRgb:
|
|
228
|
-
function
|
|
229
|
-
if (
|
|
230
|
-
k.value =
|
|
227
|
+
}), { tintRgb: Je, applyFilterToCanvas: Ye } = i(v);
|
|
228
|
+
function Xe() {
|
|
229
|
+
if (H.value && U.value) {
|
|
230
|
+
k.value = U.value.width, A.value = U.value.height;
|
|
231
231
|
return;
|
|
232
232
|
}
|
|
233
|
-
k.value =
|
|
233
|
+
k.value = y.value.parentElement && y.value.parentElement.clientWidth, A.value = y.value.parentElement && y.value.parentElement.clientHeight;
|
|
234
234
|
}
|
|
235
|
-
let
|
|
236
|
-
|
|
235
|
+
let Ze = Ae(() => {
|
|
236
|
+
Xe();
|
|
237
237
|
}, 300, {
|
|
238
238
|
trailing: !0,
|
|
239
239
|
leading: !1
|
|
240
240
|
});
|
|
241
|
-
function
|
|
241
|
+
function J(e) {
|
|
242
242
|
return new Promise((t) => setTimeout(t, e));
|
|
243
243
|
}
|
|
244
244
|
async function Qe() {
|
|
245
|
-
let e =
|
|
246
|
-
width:
|
|
247
|
-
height:
|
|
248
|
-
} : void 0, t = e ? Math.max(e.width, e.height) : void 0, n = e ? Math.min(e.width, e.height) : void 0, r =
|
|
245
|
+
let e = U.value ? {
|
|
246
|
+
width: U.value.width,
|
|
247
|
+
height: U.value.height
|
|
248
|
+
} : void 0, t = e ? Math.max(e.width, e.height) : void 0, n = e ? Math.min(e.width, e.height) : void 0, r = v.enableAudio && { ...C.value ? { deviceId: C.value.deviceId } : {} }, i = S.value && S.value.deviceId, a = w.value, o = [];
|
|
249
249
|
i ? (t && n && o.push({
|
|
250
250
|
deviceId: { exact: i },
|
|
251
251
|
width: { ideal: t },
|
|
@@ -269,233 +269,235 @@ var le = { class: "camera__preview" }, ue = {
|
|
|
269
269
|
} catch (e) {
|
|
270
270
|
let t = e && e.name;
|
|
271
271
|
if (t === "NotReadableError" || t === "AbortError") {
|
|
272
|
-
await
|
|
272
|
+
await J(500);
|
|
273
273
|
continue;
|
|
274
274
|
}
|
|
275
275
|
break;
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
|
-
function
|
|
279
|
-
|
|
278
|
+
function Y() {
|
|
279
|
+
y.value && y.value.srcObject && (y.value.srcObject.getTracks().forEach((e) => {
|
|
280
280
|
e.stop();
|
|
281
|
-
}),
|
|
281
|
+
}), y.value.srcObject = null);
|
|
282
282
|
}
|
|
283
|
-
let
|
|
284
|
-
function
|
|
285
|
-
|
|
283
|
+
let X = 0, Z, $e;
|
|
284
|
+
function Q() {
|
|
285
|
+
Z &&= (clearTimeout(Z), void 0), $e &&= ($e(), void 0);
|
|
286
286
|
}
|
|
287
287
|
function et(e) {
|
|
288
|
-
|
|
289
|
-
let t =
|
|
290
|
-
t && t.deviceId !== e && (
|
|
288
|
+
Ue(e);
|
|
289
|
+
let t = We(e);
|
|
290
|
+
t && t.deviceId !== e && (S.value = t);
|
|
291
291
|
}
|
|
292
292
|
function tt(e) {
|
|
293
|
-
|
|
294
|
-
let t =
|
|
293
|
+
Q();
|
|
294
|
+
let t = S.value && S.value.deviceId, n = y.value;
|
|
295
295
|
if (!t || !n) return;
|
|
296
296
|
let r = n.srcObject && n.srcObject.getVideoTracks?.()[0];
|
|
297
297
|
if (!r || typeof r.addEventListener != "function" || n.videoWidth > 0) return;
|
|
298
298
|
let i = () => {
|
|
299
|
-
if (
|
|
300
|
-
let n =
|
|
301
|
-
n && n.deviceId !== t && (
|
|
299
|
+
if (Q(), e !== X || !y.value) return;
|
|
300
|
+
let n = We(t);
|
|
301
|
+
n && n.deviceId !== t && (Y(), et(t));
|
|
302
302
|
}, a = () => {
|
|
303
|
-
e ===
|
|
303
|
+
e === X && y.value && y.value.videoWidth > 0 && Q();
|
|
304
304
|
}, o = () => {
|
|
305
305
|
i();
|
|
306
306
|
};
|
|
307
307
|
r.addEventListener("unmute", a), r.addEventListener("ended", o), $e = () => {
|
|
308
308
|
r.removeEventListener("unmute", a), r.removeEventListener("ended", o);
|
|
309
|
-
},
|
|
310
|
-
|
|
309
|
+
}, Z = setTimeout(() => {
|
|
310
|
+
Z = void 0, !(e !== X || !y.value) && (y.value.videoWidth === 0 ? i() : Q());
|
|
311
311
|
}, 8e3);
|
|
312
312
|
}
|
|
313
313
|
let nt = 0;
|
|
314
|
-
async function
|
|
315
|
-
let e = ++
|
|
316
|
-
|
|
317
|
-
let t = !!(
|
|
318
|
-
if (
|
|
314
|
+
async function $() {
|
|
315
|
+
let e = ++X;
|
|
316
|
+
Q();
|
|
317
|
+
let t = !!(y.value && y.value.srcObject);
|
|
318
|
+
if (Y(), E.value = void 0, t && (await J(350), e !== X)) return;
|
|
319
319
|
let n = await Qe();
|
|
320
|
-
if (e !==
|
|
320
|
+
if (e !== X) {
|
|
321
321
|
n?.getTracks?.().forEach((e) => e.stop());
|
|
322
322
|
return;
|
|
323
323
|
}
|
|
324
|
-
if (n &&
|
|
325
|
-
nt = 0,
|
|
324
|
+
if (n && y.value) {
|
|
325
|
+
nt = 0, y.value.srcObject = n;
|
|
326
|
+
let t = n.getVideoTracks?.()[0]?.getSettings?.();
|
|
327
|
+
T.value = t?.facingMode, E.value = t?.deviceId, y.value.muted = !0;
|
|
326
328
|
try {
|
|
327
|
-
await
|
|
329
|
+
await y.value.play?.();
|
|
328
330
|
} catch {}
|
|
329
331
|
tt(e);
|
|
330
|
-
} else if (!n &&
|
|
331
|
-
nt < 2 && (nt++, await
|
|
332
|
+
} else if (!n && S.value) {
|
|
333
|
+
nt < 2 && (nt++, await J(600), e === X && await $());
|
|
332
334
|
return;
|
|
333
335
|
}
|
|
334
|
-
return
|
|
335
|
-
stream:
|
|
336
|
-
devices:
|
|
336
|
+
return x.value = await navigator.mediaDevices.enumerateDevices(), {
|
|
337
|
+
stream: y.value && y.value.srcObject,
|
|
338
|
+
devices: x.value
|
|
337
339
|
};
|
|
338
340
|
}
|
|
339
341
|
function rt() {
|
|
340
|
-
D.value ? (D.value = !1, O.value = !1,
|
|
342
|
+
D.value ? (D.value = !1, O.value = !1, Y()) : (D.value = !0, $());
|
|
341
343
|
}
|
|
342
344
|
function it() {
|
|
343
|
-
|
|
345
|
+
S.value = void 0, w.value = w.value === "user" ? "environment" : "user", $();
|
|
344
346
|
}
|
|
345
347
|
async function at(e, t) {
|
|
346
|
-
e && (!t || e.deviceId !== t.deviceId) && await
|
|
348
|
+
e && e.deviceId === E.value || e && (!t || e.deviceId !== t.deviceId) && await $();
|
|
347
349
|
}
|
|
348
|
-
|
|
349
|
-
function
|
|
350
|
-
|
|
350
|
+
ae(() => S.value, at), ae(() => C.value, at);
|
|
351
|
+
function ot() {
|
|
352
|
+
v.countdown ? (j.value = j.value ? j.value - 1 : v.countdown, j.value ? setTimeout(ot, 1e3) : lt()) : lt();
|
|
351
353
|
}
|
|
352
354
|
p({
|
|
353
|
-
onCapture:
|
|
354
|
-
enableMotion:
|
|
355
|
-
camera:
|
|
355
|
+
onCapture: ot,
|
|
356
|
+
enableMotion: B,
|
|
357
|
+
camera: y.value,
|
|
356
358
|
zoom: M
|
|
357
359
|
});
|
|
358
|
-
function
|
|
359
|
-
if (!
|
|
360
|
+
function st() {
|
|
361
|
+
if (!v.correctOrientation || P.value == null) return 0;
|
|
360
362
|
let e = ((P.value - 180) % 360 + 360) % 360;
|
|
361
363
|
return (-1 * (Math.round(e / 90) * 90 % 360) % 360 + 360) % 360;
|
|
362
364
|
}
|
|
363
|
-
function
|
|
364
|
-
let a =
|
|
365
|
+
function ct(e, t, n, r, i) {
|
|
366
|
+
let a = b.value.width, o = b.value.height;
|
|
365
367
|
e.translate(a / 2, o / 2), q.value && e.scale(-1, 1), e.rotate(n * Math.PI / 180);
|
|
366
368
|
let s = o, c = a, l = Math.max(s / r, c / i) * (M.value && M.value > 0 ? M.value : 1), u = r * l, d = i * l;
|
|
367
369
|
e.drawImage(t, -u / 2, -d / 2, u, d);
|
|
368
370
|
}
|
|
369
|
-
function
|
|
371
|
+
function lt() {
|
|
370
372
|
O.value = !0;
|
|
371
|
-
let e =
|
|
373
|
+
let e = b.value.getContext("2d"), t = y.value, n = t && t.srcObject && t.srcObject.getTracks(), { aspectRatio: r, width: i, height: a } = n.length && n[0].getSettings(), o = t?.videoWidth || i || k.value, s = t?.videoHeight || a || A.value, c = o && s ? o / s : r, l = U.value || {
|
|
372
374
|
width: o,
|
|
373
375
|
height: s
|
|
374
|
-
}, u = l?.width || o, d =
|
|
375
|
-
if (
|
|
376
|
-
let p =
|
|
376
|
+
}, u = l?.width || o, d = H.value ? l?.height || s : Math.round(u / c), f = u / d;
|
|
377
|
+
if (b.value.width = u, b.value.height = d, !o || !s || !c) return;
|
|
378
|
+
let p = st();
|
|
377
379
|
if (e.save(), p === 90 || p === 270) {
|
|
378
|
-
|
|
380
|
+
ct(e, t, p, o, s), e.restore(), Ye(e, b.value.width, b.value.height), ut(b.value.toDataURL("image/png"));
|
|
379
381
|
return;
|
|
380
382
|
}
|
|
381
|
-
if (p === 180 && (e.translate(
|
|
383
|
+
if (p === 180 && (e.translate(b.value.width, b.value.height), e.scale(-1, -1)), q.value && (e.translate(b.value.width, 0), e.scale(-1, 1)), v.enableCropImage) {
|
|
382
384
|
let n = 0, r = 0, i = o, a = s;
|
|
383
385
|
if (c > f ? (i = s * f, n = (o - i) / 2) : c < f && (a = o / f, r = (s - a) / 2), M.value && M.value !== 1) {
|
|
384
386
|
let e = i / M.value, t = a / M.value;
|
|
385
387
|
n += (i - e) / 2, r += (a - t) / 2, i = e, a = t;
|
|
386
388
|
}
|
|
387
|
-
e.drawImage(t, n, r, i, a, 0, 0,
|
|
389
|
+
e.drawImage(t, n, r, i, a, 0, 0, b.value.width, b.value.height);
|
|
388
390
|
} else {
|
|
389
|
-
let n =
|
|
390
|
-
if (c > f ? (r =
|
|
391
|
+
let n = b.value.width, r = b.value.height, i = 0, a = 0;
|
|
392
|
+
if (c > f ? (r = b.value.width / c, a = (b.value.height - r) / 2) : c < f && (n = b.value.height * c, i = (b.value.width - n) / 2), M.value && M.value !== 1) {
|
|
391
393
|
let c = o / M.value, l = s / M.value, u = (o - c) / 2, d = (s - l) / 2;
|
|
392
|
-
q.value && (i =
|
|
393
|
-
} else q.value && (i =
|
|
394
|
+
q.value && (i = b.value.width - i - n), e.drawImage(t, u, d, c, l, i, a, n, r);
|
|
395
|
+
} else q.value && (i = b.value.width - i - n), e.drawImage(t, 0, 0, o, s, i, a, n, r);
|
|
394
396
|
}
|
|
395
|
-
e.restore(),
|
|
397
|
+
e.restore(), Ye(e, b.value.width, b.value.height), ut(b.value.toDataURL("image/png"));
|
|
396
398
|
}
|
|
397
|
-
function
|
|
399
|
+
function ut(e) {
|
|
398
400
|
let t = n(e);
|
|
399
|
-
|
|
401
|
+
je("update:modelValue", {
|
|
400
402
|
name: `cam-pic-${(/* @__PURE__ */ new Date()).toISOString()}`,
|
|
401
403
|
id: `cam-pic-${(/* @__PURE__ */ new Date()).toISOString()}`,
|
|
402
404
|
blob: t,
|
|
403
405
|
size: t.size
|
|
404
406
|
});
|
|
405
407
|
}
|
|
406
|
-
return
|
|
407
|
-
|
|
408
|
-
let e =
|
|
409
|
-
if (
|
|
410
|
-
await
|
|
411
|
-
}), window.addEventListener("resize",
|
|
412
|
-
|
|
408
|
+
return re(async () => {
|
|
409
|
+
w.value = v.defaultRearCamera ? "environment" : "user", await $(), D.value = !0;
|
|
410
|
+
let e = W.value.find((e) => e.deviceId === E.value), t = v.defaultRearCamera && W.value.length > 1 ? W.value[W.value.length - 1] : e || W.value[0];
|
|
411
|
+
if (S.value = t, v.enableAudio && (C.value = He.value[0]), navigator.mediaDevices.addEventListener("devicechange", async (e) => {
|
|
412
|
+
await $();
|
|
413
|
+
}), window.addEventListener("resize", Ze), Xe(), Ie.value) {
|
|
414
|
+
F = setTimeout(z, 3e3);
|
|
413
415
|
let e = window.DeviceOrientationEvent;
|
|
414
|
-
e && typeof e.requestPermission == "function" ?
|
|
416
|
+
e && typeof e.requestPermission == "function" ? Le() : B();
|
|
415
417
|
}
|
|
416
|
-
await ee(),
|
|
417
|
-
}),
|
|
418
|
-
D.value = !1, O.value = !1,
|
|
419
|
-
}), (n, i) => (
|
|
420
|
-
d("div",
|
|
421
|
-
|
|
422
|
-
default:
|
|
418
|
+
await ee(), Me.value = !0;
|
|
419
|
+
}), ne(() => {
|
|
420
|
+
D.value = !1, O.value = !1, Q(), Y(), window.removeEventListener("resize", Ze), window.removeEventListener("devicemotion", Re, !0), F && clearTimeout(F), R();
|
|
421
|
+
}), (n, i) => (h(), u("div", { class: m(["camera", qe.value]) }, [
|
|
422
|
+
d("div", ue, [
|
|
423
|
+
L.value ? l("", !0) : (h(), u("div", de, [f(t, { color: "#000" }, {
|
|
424
|
+
default: oe(() => [d("span", {
|
|
423
425
|
class: m("d-block text-center"),
|
|
424
426
|
innerHTML: n.$t("camera.waitForCameraNotification")
|
|
425
|
-
}, null, 8,
|
|
427
|
+
}, null, 8, fe)]),
|
|
426
428
|
_: 1
|
|
427
429
|
})])),
|
|
428
|
-
|
|
429
|
-
class: m(["camera__video-wrapper",
|
|
430
|
-
style:
|
|
431
|
-
aspectRatio:
|
|
430
|
+
se(d("div", {
|
|
431
|
+
class: m(["camera__video-wrapper", H.value ? `aspect-ratio--${H.value}` : ""]),
|
|
432
|
+
style: te({
|
|
433
|
+
aspectRatio: Ve.value || void 0,
|
|
432
434
|
transform: M.value === 1 ? void 0 : `scale(${M.value})`
|
|
433
435
|
})
|
|
434
436
|
}, [d("video", {
|
|
435
437
|
ref_key: "camera",
|
|
436
|
-
ref:
|
|
438
|
+
ref: y,
|
|
437
439
|
class: "camera__video",
|
|
438
|
-
style:
|
|
439
|
-
filter:
|
|
440
|
+
style: te({
|
|
441
|
+
filter: v.filter === "grayscale" ? "grayscale(100%)" : v.filter === "sepia" ? "sepia(100%)" : "none",
|
|
440
442
|
transform: o.correctOrientation && N.value ? "rotate(180deg)" : void 0
|
|
441
443
|
}),
|
|
442
444
|
autoplay: "",
|
|
443
445
|
muted: "",
|
|
444
446
|
playsinline: ""
|
|
445
|
-
}, null, 4), o.tintColor ? (
|
|
447
|
+
}, null, 4), o.tintColor ? (h(), u("div", {
|
|
446
448
|
key: 0,
|
|
447
449
|
class: "camera__tint-overlay",
|
|
448
|
-
style:
|
|
450
|
+
style: te({
|
|
449
451
|
backgroundColor: o.tintColor,
|
|
450
452
|
opacity: o.tintIntensity,
|
|
451
453
|
mixBlendMode: "multiply"
|
|
452
454
|
})
|
|
453
|
-
}, null, 4)) : l("", !0)], 6), [[
|
|
454
|
-
|
|
455
|
+
}, null, 4)) : l("", !0)], 6), [[ie, L.value]]),
|
|
456
|
+
se(d("canvas", {
|
|
455
457
|
ref_key: "canvas",
|
|
456
|
-
ref:
|
|
458
|
+
ref: b,
|
|
457
459
|
class: "camera__canvas",
|
|
458
460
|
width: k.value,
|
|
459
461
|
height: A.value
|
|
460
|
-
}, null, 8,
|
|
461
|
-
j.value ? (
|
|
462
|
+
}, null, 8, pe), [[ie, O.value]]),
|
|
463
|
+
j.value ? (h(), u("div", me, [(h(), u("p", {
|
|
462
464
|
class: "countdown",
|
|
463
465
|
key: j.value,
|
|
464
466
|
innerHTML: j.value,
|
|
465
467
|
"data-countdown": j.value
|
|
466
|
-
}, null, 8,
|
|
467
|
-
o.enableGuide && D.value &&
|
|
468
|
+
}, null, 8, he))])) : l("", !0),
|
|
469
|
+
o.enableGuide && D.value && L.value ? (h(), u("img", {
|
|
468
470
|
key: 2,
|
|
469
471
|
class: "camera__guide",
|
|
470
472
|
src: o.guideSrc
|
|
471
|
-
}, null, 8,
|
|
472
|
-
o.enableZoomSlider ? (
|
|
473
|
+
}, null, 8, ge)) : l("", !0),
|
|
474
|
+
o.enableZoomSlider ? (h(), u("div", _e, [f(a, {
|
|
473
475
|
modelValue: M.value,
|
|
474
476
|
"onUpdate:modelValue": i[0] ||= (e) => M.value = e
|
|
475
477
|
}, null, 8, ["modelValue"])])) : l("", !0)
|
|
476
478
|
]),
|
|
477
|
-
d("div",
|
|
479
|
+
d("div", ve, [d("div", ye, [d("div", be, [d("div", xe, [d("div", Se, [d("button", {
|
|
478
480
|
type: "button",
|
|
479
481
|
class: "camera__toggle btn btn-primary",
|
|
480
482
|
onClick: rt
|
|
481
|
-
}, [D.value ? (
|
|
483
|
+
}, [D.value ? (h(), u("span", we, _(n.$t("common.pause")), 1)) : (h(), u("span", Ce, _(n.$t("common.play")), 1))]), d("button", {
|
|
482
484
|
type: "button",
|
|
483
485
|
class: "camera__capture btn btn-primary",
|
|
484
|
-
onClick:
|
|
485
|
-
},
|
|
486
|
-
(o.enableSwitchCamera || o.enableSelectDevice) &&
|
|
486
|
+
onClick: ot
|
|
487
|
+
}, _(n.$t("camera.capture")), 1)])])])])]),
|
|
488
|
+
(o.enableSwitchCamera || o.enableSelectDevice) && K.value && K.value.length > 1 ? (h(), u("div", Te, [d("div", Ee, [o.enableSelectDevice ? (h(), c(r, {
|
|
487
489
|
key: 0,
|
|
488
|
-
modelValue:
|
|
489
|
-
"onUpdate:modelValue": i[1] ||= (e) =>
|
|
490
|
-
options:
|
|
490
|
+
modelValue: Ke.value,
|
|
491
|
+
"onUpdate:modelValue": i[1] ||= (e) => Ke.value = e,
|
|
492
|
+
options: Ge.value,
|
|
491
493
|
class: "w-100"
|
|
492
|
-
}, null, 8, ["modelValue", "options"])) : l("", !0)]), d("div",
|
|
494
|
+
}, null, 8, ["modelValue", "options"])) : l("", !0)]), d("div", De, [o.enableSwitchCamera ? (h(), u("button", {
|
|
493
495
|
key: 0,
|
|
494
496
|
class: "btn",
|
|
495
|
-
onClick:
|
|
497
|
+
onClick: ce(it, ["prevent"])
|
|
496
498
|
}, [f(e, { symbol: "switch-camera" })])) : l("", !0)])])) : l("", !0)
|
|
497
499
|
], 2));
|
|
498
500
|
}
|
|
499
501
|
});
|
|
500
502
|
//#endregion
|
|
501
|
-
export {
|
|
503
|
+
export { Ae as default };
|