ablok-components 0.3.74 → 0.3.75

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