ablok-components 0.3.120 → 0.3.122

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