ablok-photobooth 0.2.32 → 0.2.34
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.
- package/dist/ablok-photobooth.es.js +139 -137
- package/dist/ablok-photobooth.umd.js +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defineComponent as AA, getCurrentInstance as QA, computed as
|
|
2
|
-
import { BaseCamera as MA, BaseImage as
|
|
1
|
+
import { defineComponent as AA, getCurrentInstance as QA, computed as H, ref as D, watch as X, onMounted as wA, openBlock as f, createElementBlock as w, normalizeClass as Y, normalizeStyle as G, createVNode as L, unref as B, createCommentVNode as E, createBlock as R, Transition as IA, withCtx as _, createElementVNode as C, withModifiers as q, toDisplayString as P, withDirectives as iA, vShow as cA, Fragment as kA, renderList as SA, createTextVNode as J, renderSlot as bA, onBeforeMount as hA } from "vue";
|
|
2
|
+
import { BaseCamera as MA, BaseImage as CA, LoadingSpinner as BA, BaseButton as lA, SvgIcon as Z, InputFile as PA, useCameraFilter as UA, MediaThumbnails as EA, TouchWrapper as OA, ColorPalette as jA } from "ablok-components";
|
|
3
3
|
import { useI18n as LA } from "vue-i18n";
|
|
4
4
|
import { debounce as TA } from "lodash";
|
|
5
5
|
async function FA(A) {
|
|
@@ -123,7 +123,7 @@ async function xA(A) {
|
|
|
123
123
|
const r = await RA(A);
|
|
124
124
|
return await VA(r);
|
|
125
125
|
}
|
|
126
|
-
async function
|
|
126
|
+
async function GA(A, r) {
|
|
127
127
|
const a = await HA(A), s = document.createElement("canvas"), c = s.getContext("2d");
|
|
128
128
|
return s.width = a.width, s.height = a.height, c.setTransform(1, 0, 0, 1, s.width / 2, s.height / 2), c.rotate(r), c.drawImage(a, -a.width / 2, -a.height / 2), s.toDataURL();
|
|
129
129
|
}
|
|
@@ -156,10 +156,10 @@ const DA = {
|
|
|
156
156
|
body: s
|
|
157
157
|
}).then((o) => o.json()).catch((o) => [o])).dataUrl;
|
|
158
158
|
}
|
|
159
|
-
}, GA = "data:image/png;base64,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", zA = { class: "photo-app__drop-target__canvas" }, NA = { class: "flex-grow-1 text-center" }, $A = ["innerHTML"], WA = { class: "ml-2" }, JA = {
|
|
159
|
+
}, _A = "data:image/png;base64,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", zA = { class: "photo-app__drop-target__canvas" }, NA = { class: "flex-grow-1 text-center" }, $A = ["innerHTML"], WA = { class: "ml-2" }, JA = {
|
|
160
160
|
key: 0,
|
|
161
161
|
class: "d-flex flex-column align-center justify-center"
|
|
162
|
-
},
|
|
162
|
+
}, ZA = { key: 0 }, XA = { class: "photo-app__errors mt-2" }, KA = { class: "error--text" }, qA = {
|
|
163
163
|
key: 1,
|
|
164
164
|
class: "photo-app__file-list"
|
|
165
165
|
}, Ae = { class: "row" }, ee = { key: 0 }, te = { key: 1 }, ae = { key: 2 }, oe = { key: 3 }, le = { class: "photo-app__form-input text-center" }, ne = { class: "photo-app__controls" }, re = { class: "row" }, se = { class: "col col-12" }, ie = ["innerHTML"], ce = {
|
|
@@ -252,7 +252,7 @@ const DA = {
|
|
|
252
252
|
},
|
|
253
253
|
guideSrc: {
|
|
254
254
|
type: String,
|
|
255
|
-
default:
|
|
255
|
+
default: _A
|
|
256
256
|
},
|
|
257
257
|
acceptButton: {
|
|
258
258
|
type: Boolean,
|
|
@@ -326,28 +326,28 @@ const DA = {
|
|
|
326
326
|
zoom: Number,
|
|
327
327
|
enableZoomSlider: {
|
|
328
328
|
type: Boolean,
|
|
329
|
-
default: !
|
|
329
|
+
default: !0
|
|
330
330
|
}
|
|
331
331
|
},
|
|
332
332
|
emits: ["update:modelValue"],
|
|
333
333
|
setup(A, { emit: r }) {
|
|
334
|
-
const { tm: a } = LA(), s = QA(), c = s && s.appContext.config.globalProperties.$config, o = A, g = r, i =
|
|
334
|
+
const { tm: a } = LA(), s = QA(), c = s && s.appContext.config.globalProperties.$config, o = A, g = r, i = H(() => c.baseMediaPath), y = H(() => l.value && l.value.length && l.value.filter((n) => n.response && Object.keys(n.response).length).length === l.value.length), h = H(() => {
|
|
335
335
|
const n = l.value.find((p) => p.response && p.response.path);
|
|
336
336
|
return n && n.response.path;
|
|
337
|
-
}), k =
|
|
337
|
+
}), k = H(() => h.value ? `${i.value}${h.value}` : ""), d = H(() => ({
|
|
338
338
|
...o.i18n ? o.i18n.messages : {},
|
|
339
339
|
...o.messages
|
|
340
340
|
}));
|
|
341
|
-
|
|
342
|
-
const v =
|
|
343
|
-
|
|
341
|
+
H(() => !!(l.value && l.value.length));
|
|
342
|
+
const v = H(() => l.value.length ? d.value.reviewTitle : d.value.captureTitle), l = D([]), m = D(), S = D(), u = D(), N = D(!1), M = D(!1), eA = D(), U = D(), F = D(!1), tA = D("");
|
|
343
|
+
X(eA, async (n, p) => {
|
|
344
344
|
if (n) {
|
|
345
|
-
const I = n.blob && n.blob.type.split("/")[1], Q = new File([n.blob], `${n.id}.${I}`), T = await xA(Q), z = await mA(Q), $ = await
|
|
345
|
+
const I = n.blob && n.blob.type.split("/")[1], Q = new File([n.blob], `${n.id}.${I}`), T = await xA(Q), z = await mA(Q), $ = await GA(z, T), x = await (await fetch($)).blob();
|
|
346
346
|
l.value.push(new File([x], `${n.id}.${I}`, {
|
|
347
347
|
type: x.type
|
|
348
|
-
})),
|
|
348
|
+
})), F.value = !1, dA();
|
|
349
349
|
}
|
|
350
|
-
}, { deep: !0 }),
|
|
350
|
+
}, { deep: !0 }), X(l, async (n, p) => {
|
|
351
351
|
if (o.enableInstantUpload)
|
|
352
352
|
n.find((I) => !I.response.path) && (m.value.active = !0);
|
|
353
353
|
else {
|
|
@@ -359,13 +359,13 @@ const DA = {
|
|
|
359
359
|
}));
|
|
360
360
|
U.value = I[0];
|
|
361
361
|
}
|
|
362
|
-
}, { deep: !0 }),
|
|
362
|
+
}, { deep: !0 }), X(y, async (n, p) => {
|
|
363
363
|
n && !p && (U.value = o.enableInstantUpload ? h.value : await yA(k.value));
|
|
364
|
-
}, { deep: !0 }),
|
|
364
|
+
}, { deep: !0 }), X(U, async (n, p) => {
|
|
365
365
|
o.enableAutoSave && U !== p && rA();
|
|
366
366
|
});
|
|
367
367
|
function nA() {
|
|
368
|
-
U.value = "", l.value = [];
|
|
368
|
+
U.value = "", l.value = [], F.value = !1;
|
|
369
369
|
}
|
|
370
370
|
function dA() {
|
|
371
371
|
M.value = !1;
|
|
@@ -406,7 +406,7 @@ const DA = {
|
|
|
406
406
|
l.value = I;
|
|
407
407
|
}
|
|
408
408
|
const rA = (async () => {
|
|
409
|
-
|
|
409
|
+
F.value = !0, o.enableProcessImage && o.processImage && (U.value = await o.processImage.reduce(async (n, p) => {
|
|
410
410
|
const I = await n;
|
|
411
411
|
return await fA(I, p);
|
|
412
412
|
}, Promise.resolve(U.value))), g("update:modelValue", U.value);
|
|
@@ -416,7 +416,7 @@ const DA = {
|
|
|
416
416
|
p.basePath
|
|
417
417
|
)}`);
|
|
418
418
|
function sA() {
|
|
419
|
-
|
|
419
|
+
F.value = !0, S.value?.onCapture();
|
|
420
420
|
}
|
|
421
421
|
return wA(() => {
|
|
422
422
|
["dragenter", "dragover"].forEach((n) => {
|
|
@@ -442,7 +442,7 @@ const DA = {
|
|
|
442
442
|
A.enableCamera ? (f(), w("div", {
|
|
443
443
|
key: 0,
|
|
444
444
|
class: "photo-app__canvas media-container",
|
|
445
|
-
style:
|
|
445
|
+
style: G({
|
|
446
446
|
color: A.color,
|
|
447
447
|
backgroundColor: A.backgroundColor
|
|
448
448
|
})
|
|
@@ -450,7 +450,7 @@ const DA = {
|
|
|
450
450
|
M.value ? (f(), w("div", {
|
|
451
451
|
key: 0,
|
|
452
452
|
class: Y(["photo-app__camera", `${A.ratio ? `aspect-ratio--${A.ratio}` : ""}`]),
|
|
453
|
-
style:
|
|
453
|
+
style: G({ borderColor: A.color })
|
|
454
454
|
}, [
|
|
455
455
|
L(B(MA), {
|
|
456
456
|
ref_key: "camera",
|
|
@@ -474,15 +474,17 @@ const DA = {
|
|
|
474
474
|
resolutions: A.resolutions,
|
|
475
475
|
filter: A.filter,
|
|
476
476
|
"tint-color": A.tint?.color,
|
|
477
|
-
"tint-intensity": A.tint?.intensity
|
|
478
|
-
|
|
477
|
+
"tint-intensity": A.tint?.intensity,
|
|
478
|
+
zoom: A.zoom,
|
|
479
|
+
"enable-zoom-slider": A.enableZoomSlider
|
|
480
|
+
}, null, 8, ["modelValue", "enable-toggle-play", "countdown", "enable-mirror-camera", "enable-switch-camera", "default-rear-camera", "enable-guide", "guide-src", "fixed-resolution", "enable-audio", "enable-select-device", "enable-crop-image", "text-color", "ratio", "resolutions", "filter", "tint-color", "tint-intensity", "zoom", "enable-zoom-slider"])
|
|
479
481
|
], 6)) : E("", !0),
|
|
480
482
|
l.value && l.value.length && !M.value ? (f(), w("div", {
|
|
481
483
|
key: 1,
|
|
482
484
|
class: "photo-app__preview",
|
|
483
|
-
style:
|
|
485
|
+
style: G({ borderColor: A.color })
|
|
484
486
|
}, [
|
|
485
|
-
U.value ? (f(), R(B(
|
|
487
|
+
U.value ? (f(), R(B(CA), {
|
|
486
488
|
key: 0,
|
|
487
489
|
src: k.value || U.value
|
|
488
490
|
}, null, 8, ["src"])) : E("", !0),
|
|
@@ -490,19 +492,19 @@ const DA = {
|
|
|
490
492
|
name: "fade",
|
|
491
493
|
mode: "out-in"
|
|
492
494
|
}, {
|
|
493
|
-
default:
|
|
494
|
-
|
|
495
|
+
default: _(() => [
|
|
496
|
+
F.value ? (f(), R(B(BA), { key: 0 })) : E("", !0)
|
|
495
497
|
]),
|
|
496
498
|
_: 1
|
|
497
499
|
})
|
|
498
500
|
], 4)) : M.value ? E("", !0) : (f(), w("div", {
|
|
499
501
|
key: 2,
|
|
500
502
|
class: Y(["photo-app__drop-target", `${A.ratio ? `aspect-ratio--${A.ratio}` : ""}`]),
|
|
501
|
-
style:
|
|
503
|
+
style: G({ borderColor: A.color })
|
|
502
504
|
}, [
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
505
|
+
C("div", zA, [
|
|
506
|
+
C("div", NA, [
|
|
507
|
+
C("p", {
|
|
506
508
|
class: "headline h2 font-weight-bold",
|
|
507
509
|
innerHTML: d.value.title || n.$t("fileInput.coverTitle")
|
|
508
510
|
}, null, 8, $A),
|
|
@@ -510,71 +512,71 @@ const DA = {
|
|
|
510
512
|
key: 0,
|
|
511
513
|
type: "button",
|
|
512
514
|
onClick: q(K, ["prevent"]),
|
|
513
|
-
style:
|
|
515
|
+
style: G({ color: A.color }),
|
|
514
516
|
icon: "camera",
|
|
515
517
|
class: "rounded-pill"
|
|
516
518
|
}, {
|
|
517
|
-
default:
|
|
518
|
-
L(B(
|
|
519
|
-
|
|
519
|
+
default: _(() => [
|
|
520
|
+
L(B(Z), { symbol: "camera" }),
|
|
521
|
+
C("span", WA, P(d.value.launchCamera || n.$t("fileInput.coverLaunchCta")), 1)
|
|
520
522
|
]),
|
|
521
523
|
_: 1
|
|
522
524
|
}, 8, ["style"])) : E("", !0)
|
|
523
525
|
]),
|
|
524
526
|
A.enableLocalFileUpload ? (f(), w("div", JA, [
|
|
525
|
-
|
|
527
|
+
C("p", {
|
|
526
528
|
class: "subtitle fw-bold ma-0",
|
|
527
|
-
style:
|
|
529
|
+
style: G({ color: A.color })
|
|
528
530
|
}, P(d.value.localFileTitle || n.$t("fileInput.coverLocalSelectTitle")), 5),
|
|
529
|
-
|
|
531
|
+
C("p", {
|
|
530
532
|
class: "text-body-1",
|
|
531
|
-
style:
|
|
533
|
+
style: G({ color: A.color })
|
|
532
534
|
}, [
|
|
533
|
-
A.enableDragDrop ? (f(), w("span",
|
|
534
|
-
|
|
535
|
+
A.enableDragDrop ? (f(), w("span", ZA, P(d.value.dropTarget || n.$t("fileInput.coverDropTarget")) + " " + P(A.enableLocalFileUpload && A.enableDragDrop ? d.value.or || n.$t("common.or") : "") + " " + P(), 1)) : E("", !0),
|
|
536
|
+
C("label", {
|
|
535
537
|
for: "fileUpload",
|
|
536
538
|
role: "button",
|
|
537
539
|
class: "d-inline link",
|
|
538
|
-
style:
|
|
540
|
+
style: G({ color: A.color })
|
|
539
541
|
}, P(d.value.coverSelectFileCta || n.$t("fileInput.coverLocalFileCta")), 5)
|
|
540
542
|
], 4)
|
|
541
543
|
])) : E("", !0)
|
|
542
544
|
])
|
|
543
545
|
], 6))
|
|
544
546
|
], 4)) : E("", !0),
|
|
545
|
-
iA(
|
|
547
|
+
iA(C("div", {
|
|
546
548
|
class: "photo-app__drop-overlay",
|
|
547
549
|
ref_key: "dropArea",
|
|
548
550
|
ref: u
|
|
549
551
|
}, [
|
|
550
|
-
|
|
552
|
+
C("h3", null, P(d.value.dropTarget || n.$t("fileInput.dropTargetLabel")), 1)
|
|
551
553
|
], 512), [
|
|
552
554
|
[cA, A.enableLocalFileUpload && A.enableDragDrop && N.value]
|
|
553
555
|
]),
|
|
554
|
-
iA(
|
|
555
|
-
|
|
556
|
+
iA(C("div", XA, [
|
|
557
|
+
C("p", KA, P(tA.value), 1)
|
|
556
558
|
], 512), [
|
|
557
559
|
[cA, tA.value]
|
|
558
560
|
]),
|
|
559
561
|
A.enableFileList && l.value.length ? (f(), w("div", qA, [
|
|
560
|
-
|
|
562
|
+
C("div", Ae, [
|
|
561
563
|
(f(!0), w(kA, null, SA(l.value, (I) => (f(), w("div", {
|
|
562
564
|
key: I.id,
|
|
563
565
|
class: "col col-12"
|
|
564
566
|
}, [
|
|
565
|
-
|
|
567
|
+
C("span", null, P(I.name), 1),
|
|
566
568
|
p[2] || (p[2] = J(" - ", -1)),
|
|
567
|
-
|
|
569
|
+
C("span", null, P(I.size), 1),
|
|
568
570
|
p[3] || (p[3] = J(" - ", -1)),
|
|
569
571
|
I.error ? (f(), w("span", ee, P(I.error), 1)) : I.success ? (f(), w("span", te, P(n.$t("common.success")), 1)) : I.active ? (f(), w("span", ae, P(n.$t("common.active")), 1)) : (f(), w("span", oe))
|
|
570
572
|
]))), 128))
|
|
571
573
|
])
|
|
572
574
|
])) : E("", !0),
|
|
573
|
-
iA(
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
575
|
+
iA(C("div", le, [
|
|
576
|
+
C("div", ne, [
|
|
577
|
+
C("div", re, [
|
|
578
|
+
C("div", se, [
|
|
579
|
+
bA(n.$slots, "headline", {}, () => [
|
|
578
580
|
A.enableTitle && (M.value || l.value.length) ? (f(), w("p", {
|
|
579
581
|
key: 0,
|
|
580
582
|
class: "headline",
|
|
@@ -582,15 +584,15 @@ const DA = {
|
|
|
582
584
|
}, null, 8, ie)) : E("", !0)
|
|
583
585
|
]),
|
|
584
586
|
!A.enableLegacyInput && (M.value || l.value.length) ? (f(), w("div", ce, [
|
|
585
|
-
|
|
587
|
+
C("div", ue, [
|
|
586
588
|
M.value || l.value.length && (!m.value || !m.value.active) ? (f(), R(B(lA), {
|
|
587
589
|
key: 0,
|
|
588
590
|
type: "button",
|
|
589
591
|
class: Y(["btn btn-primary-outline rounded-circle", `theme--${A.variant}`]),
|
|
590
592
|
onClick: p[1] || (p[1] = q((I) => M.value ? K() : nA(), ["prevent"]))
|
|
591
593
|
}, {
|
|
592
|
-
default:
|
|
593
|
-
L(B(
|
|
594
|
+
default: _(() => [
|
|
595
|
+
L(B(Z), {
|
|
594
596
|
symbol: "x",
|
|
595
597
|
"base-path": B(c).iconSprite,
|
|
596
598
|
class: "primary"
|
|
@@ -605,10 +607,10 @@ const DA = {
|
|
|
605
607
|
type: "button",
|
|
606
608
|
class: Y(["btn btn-primary rounded-circle", `theme--${A.variant}`]),
|
|
607
609
|
onClick: q(sA, ["prevent"]),
|
|
608
|
-
disabled:
|
|
610
|
+
disabled: F.value
|
|
609
611
|
}, {
|
|
610
|
-
default:
|
|
611
|
-
L(B(
|
|
612
|
+
default: _(() => [
|
|
613
|
+
L(B(Z), {
|
|
612
614
|
symbol: "camera",
|
|
613
615
|
"base-path": B(c).iconSprite
|
|
614
616
|
}, null, 8, ["base-path"]),
|
|
@@ -621,30 +623,30 @@ const DA = {
|
|
|
621
623
|
type: "button",
|
|
622
624
|
class: Y(["btn btn-primary rounded-circle", {
|
|
623
625
|
[`theme--${A.variant}`]: A.variant,
|
|
624
|
-
"btn-success":
|
|
626
|
+
"btn-success": F.value
|
|
625
627
|
}]),
|
|
626
628
|
onClick: q(rA, ["prevent"]),
|
|
627
|
-
disabled:
|
|
629
|
+
disabled: F.value
|
|
628
630
|
}, {
|
|
629
|
-
default:
|
|
630
|
-
L(B(
|
|
631
|
+
default: _(() => [
|
|
632
|
+
L(B(Z), { symbol: "check" }),
|
|
631
633
|
J(" " + P(A.enableButtonCaptions ? d.value.accept || n.$t("common.accept") : ""), 1)
|
|
632
634
|
]),
|
|
633
635
|
_: 1
|
|
634
636
|
}, 8, ["class", "disabled"])
|
|
635
637
|
])) : E("", !0)
|
|
636
638
|
])) : E("", !0),
|
|
637
|
-
iA(
|
|
639
|
+
iA(C("div", {
|
|
638
640
|
class: Y(["justify-center col-10 mx-auto", {
|
|
639
641
|
"d-flex": A.enableLegacyInput && (M.value || l.value.length)
|
|
640
642
|
}])
|
|
641
643
|
}, [
|
|
642
|
-
|
|
644
|
+
C("button", {
|
|
643
645
|
type: "button",
|
|
644
646
|
class: Y(["btn btn-primary", `theme--${A.variant}`]),
|
|
645
647
|
onClick: q(K, ["prevent"])
|
|
646
648
|
}, [
|
|
647
|
-
A.enableButtonIcons ? (f(), R(B(
|
|
649
|
+
A.enableButtonIcons ? (f(), R(B(Z), {
|
|
648
650
|
key: 0,
|
|
649
651
|
symbol: "camera"
|
|
650
652
|
})) : E("", !0),
|
|
@@ -655,10 +657,10 @@ const DA = {
|
|
|
655
657
|
type: "button",
|
|
656
658
|
class: Y(["btn btn-primary", `theme--${A.variant}`]),
|
|
657
659
|
onClick: q(sA, ["prevent"]),
|
|
658
|
-
disabled:
|
|
660
|
+
disabled: F.value
|
|
659
661
|
}, {
|
|
660
|
-
default:
|
|
661
|
-
A.enableButtonIcons ? (f(), R(B(
|
|
662
|
+
default: _(() => [
|
|
663
|
+
A.enableButtonIcons ? (f(), R(B(Z), {
|
|
662
664
|
key: 0,
|
|
663
665
|
symbol: "camera"
|
|
664
666
|
})) : E("", !0),
|
|
@@ -674,14 +676,14 @@ const DA = {
|
|
|
674
676
|
"onUpdate:modelValue": gA,
|
|
675
677
|
name: "fileUpload"
|
|
676
678
|
}, {
|
|
677
|
-
default:
|
|
678
|
-
|
|
679
|
-
|
|
679
|
+
default: _(() => [
|
|
680
|
+
bA(n.$slots, "label", {}, () => [
|
|
681
|
+
C("label", {
|
|
680
682
|
for: "fileUpload",
|
|
681
683
|
type: "button",
|
|
682
684
|
class: Y(["btn btn-primary", `theme--${A.variant}`])
|
|
683
685
|
}, [
|
|
684
|
-
A.enableButtonIcons ? (f(), R(B(
|
|
686
|
+
A.enableButtonIcons ? (f(), R(B(Z), {
|
|
685
687
|
key: 0,
|
|
686
688
|
symbol: "camera"
|
|
687
689
|
})) : E("", !0)
|
|
@@ -729,10 +731,10 @@ function vA() {
|
|
|
729
731
|
function pe(A, r = vA()) {
|
|
730
732
|
return r("readonly", (a) => uA(a.get(A)));
|
|
731
733
|
}
|
|
732
|
-
function
|
|
734
|
+
function be(A, r, a = vA()) {
|
|
733
735
|
return a("readwrite", (s) => (s.put(r, A), uA(s.transaction)));
|
|
734
736
|
}
|
|
735
|
-
function
|
|
737
|
+
function Ce(A, r = vA()) {
|
|
736
738
|
return r("readwrite", (a) => (a.delete(A), uA(a.transaction)));
|
|
737
739
|
}
|
|
738
740
|
const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23ffffffCC'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20class='feather%20feather-rotate-cw'%3e%3cpolyline%20points='23%204%2023%2010%2017%2010'%3e%3c/polyline%3e%3cpath%20d='M20.49%2015a9%209%200%201%201-2.12-9.36L23%2010'%3e%3c/path%3e%3c/svg%3e", ye = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23ffffffCC'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20class='feather%20feather-x-circle'%3e%3ccircle%20cx='12'%20cy='12'%20r='10'%20fill='none'%3e%3c/circle%3e%3cline%20x1='15'%20y1='9'%20x2='9'%20y2='15'%20fill='none'%3e%3c/line%3e%3cline%20x1='9'%20y1='9'%20x2='15'%20y2='15'%20fill='none'%3e%3c/line%3e%3c/svg%3e", we = { class: "fabric-canvas__canvas" }, Ie = {
|
|
@@ -791,7 +793,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
791
793
|
let u, N = !1;
|
|
792
794
|
const M = D();
|
|
793
795
|
async function eA(e, t) {
|
|
794
|
-
return new Promise(async (
|
|
796
|
+
return new Promise(async (b) => {
|
|
795
797
|
const O = JSON.parse(t);
|
|
796
798
|
if (O.backgroundImage) {
|
|
797
799
|
const j = await U(O.backgroundImage.src || O.backgroundImage.filename);
|
|
@@ -813,27 +815,27 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
813
815
|
reviver: void 0
|
|
814
816
|
})).forEach((j) => {
|
|
815
817
|
e.add(j);
|
|
816
|
-
}),
|
|
818
|
+
}), b(e);
|
|
817
819
|
});
|
|
818
820
|
}
|
|
819
821
|
async function U(e) {
|
|
820
822
|
const t = await V(e);
|
|
821
823
|
e.includes("data:image") || (t.filename = e);
|
|
822
|
-
const
|
|
824
|
+
const b = g.findScaleToCover(t, u), O = t instanceof c;
|
|
823
825
|
return t.set({
|
|
824
826
|
left: 0,
|
|
825
827
|
top: 0,
|
|
826
828
|
opacity: O && v.animationDuration > 0 ? 0 : 1,
|
|
827
|
-
scaleX:
|
|
828
|
-
scaleY:
|
|
829
|
+
scaleX: b,
|
|
830
|
+
scaleY: b,
|
|
829
831
|
src: e
|
|
830
832
|
}), t;
|
|
831
833
|
}
|
|
832
|
-
async function
|
|
833
|
-
!(e instanceof c) || v.animationDuration === 0 || (v.emitPending && d("update:pending", !0), await new Promise((
|
|
834
|
+
async function F(e) {
|
|
835
|
+
!(e instanceof c) || v.animationDuration === 0 || (v.emitPending && d("update:pending", !0), await new Promise((b) => {
|
|
834
836
|
const O = v.animationDuration, aA = Date.now(), j = () => {
|
|
835
837
|
const oA = Date.now() - aA, W = Math.min(oA / O, 1);
|
|
836
|
-
e.set("opacity", W), u.renderAll(), W < 1 ? requestAnimationFrame(j) : (v.emitPending && d("update:pending", !1),
|
|
838
|
+
e.set("opacity", W), u.renderAll(), W < 1 ? requestAnimationFrame(j) : (v.emitPending && d("update:pending", !1), b());
|
|
837
839
|
};
|
|
838
840
|
requestAnimationFrame(j);
|
|
839
841
|
}));
|
|
@@ -847,11 +849,11 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
847
849
|
}
|
|
848
850
|
async function nA(e) {
|
|
849
851
|
const t = await U(e.src);
|
|
850
|
-
u.backgroundImage = t, u.centerObject(t), u.renderAll(), await
|
|
852
|
+
u.backgroundImage = t, u.centerObject(t), u.renderAll(), await F(t), Q();
|
|
851
853
|
}
|
|
852
854
|
async function dA(e) {
|
|
853
855
|
const t = await U(e.src);
|
|
854
|
-
t.selectable = !1, t.assetType = "foreground", u.add(t), u.centerObject(t), u.renderAll(), await
|
|
856
|
+
t.selectable = !1, t.assetType = "foreground", u.add(t), u.centerObject(t), u.renderAll(), await F(t), Q();
|
|
855
857
|
}
|
|
856
858
|
async function K(e) {
|
|
857
859
|
const t = await U(e.src);
|
|
@@ -860,24 +862,24 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
860
862
|
top: S.value / 2,
|
|
861
863
|
scaleX: m.value / t.width,
|
|
862
864
|
scaleY: S.value / t.height
|
|
863
|
-
}), u.overlayImage = t, u.renderAll(), await
|
|
865
|
+
}), u.overlayImage = t, u.renderAll(), await F(t), Q();
|
|
864
866
|
}
|
|
865
867
|
async function gA(e) {
|
|
866
868
|
u.discardActiveObject();
|
|
867
869
|
const t = await V(e.src);
|
|
868
870
|
t.filename = e.src;
|
|
869
|
-
const
|
|
871
|
+
const b = m.value / 3, O = S.value / 3, aA = b / t.width, j = O / t.height, oA = Math.min(aA, j);
|
|
870
872
|
t.set({
|
|
871
873
|
scaleX: oA,
|
|
872
874
|
scaleY: oA,
|
|
873
875
|
left: m.value / 2,
|
|
874
876
|
top: S.value / 2
|
|
875
|
-
}), t.id = e.id, t.padding = 8, u.add(t), u.setActiveObject(t), await
|
|
877
|
+
}), t.id = e.id, t.padding = 8, u.add(t), u.setActiveObject(t), await F(t), u.renderAll();
|
|
876
878
|
}
|
|
877
879
|
function rA(e, t) {
|
|
878
880
|
t.target.id;
|
|
879
|
-
const
|
|
880
|
-
return u.remove(
|
|
881
|
+
const b = t.target;
|
|
882
|
+
return u.remove(b), u.requestRenderAll(), !0;
|
|
881
883
|
}
|
|
882
884
|
function fA() {
|
|
883
885
|
if (m.value = l.value.offsetWidth, S.value = l.value.offsetHeight, u.setDimensions({ width: m.value, height: S.value }), u.backgroundImage && (u.backgroundImage = tA(u.backgroundImage), u.centerObject(u.backgroundImage)), u.overlayImage) {
|
|
@@ -895,8 +897,8 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
895
897
|
fA();
|
|
896
898
|
}, 200, { trailing: !0, leading: !1 });
|
|
897
899
|
function n(e) {
|
|
898
|
-
return (t,
|
|
899
|
-
t.save(), t.translate(
|
|
900
|
+
return (t, b, O, aA, j) => {
|
|
901
|
+
t.save(), t.translate(b, O), t.rotate(g.degreesToRadians(j.angle)), t.fillStyle = v.options.themeData?.colors?.primary, t.fillRect(-24 / 2, -24 / 2, 24, 24);
|
|
900
902
|
const W = 20;
|
|
901
903
|
t.drawImage(e, -W / 2, -W / 2, W, W), t.restore();
|
|
902
904
|
};
|
|
@@ -905,8 +907,8 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
905
907
|
const e = document.createElement("img");
|
|
906
908
|
e.src = ve;
|
|
907
909
|
const t = document.createElement("img");
|
|
908
|
-
t.src = ye, u.on("object:added", (
|
|
909
|
-
|
|
910
|
+
t.src = ye, u.on("object:added", (b) => {
|
|
911
|
+
b.target && b.target.controls && (b.target.set({
|
|
910
912
|
transparentCorners: !1,
|
|
911
913
|
cornerSize: 16,
|
|
912
914
|
cornerStyle: "circle",
|
|
@@ -915,7 +917,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
915
917
|
cornerStrokeColor: v.options.themeData?.colors?.primary,
|
|
916
918
|
borderColor: v.options.themeData?.colors?.primary
|
|
917
919
|
} : {}
|
|
918
|
-
}),
|
|
920
|
+
}), b.target.controls.ml.visible = !1, b.target.controls.mr.visible = !1, b.target.controls.mb.visible = !1, b.target.controls.mt.visible = !1, b.target.controls.mtr.visible = !1, b.target.controls.rotate = new o({
|
|
919
921
|
x: 0.5,
|
|
920
922
|
y: -0.5,
|
|
921
923
|
offsetX: 32,
|
|
@@ -925,7 +927,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
925
927
|
actionHandler: k.rotationWithSnapping,
|
|
926
928
|
cursorStyleHandler: k.rotationStyleHandler,
|
|
927
929
|
render: n(e)
|
|
928
|
-
}),
|
|
930
|
+
}), b.target.controls.delete = new o({
|
|
929
931
|
x: 0.5,
|
|
930
932
|
y: -0.5,
|
|
931
933
|
offsetX: 32,
|
|
@@ -947,7 +949,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
947
949
|
function Q() {
|
|
948
950
|
setTimeout(async () => {
|
|
949
951
|
const e = u.toDatalessJSON(["selectable", "assetType", "filename"]);
|
|
950
|
-
await
|
|
952
|
+
await be("fabric-canvas", JSON.stringify(e));
|
|
951
953
|
let t = !0;
|
|
952
954
|
if (v.required)
|
|
953
955
|
switch (t = !1, v.feature) {
|
|
@@ -965,8 +967,8 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
965
967
|
}
|
|
966
968
|
if (t) {
|
|
967
969
|
N = !0;
|
|
968
|
-
const
|
|
969
|
-
d("update:modelValue",
|
|
970
|
+
const b = await I();
|
|
971
|
+
d("update:modelValue", b), d("update:jsonModel", e);
|
|
970
972
|
}
|
|
971
973
|
}, 120);
|
|
972
974
|
}
|
|
@@ -978,12 +980,12 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
978
980
|
}
|
|
979
981
|
}
|
|
980
982
|
async function z(e) {
|
|
981
|
-
const { objects: t, options:
|
|
982
|
-
return g.groupSVGElements(t,
|
|
983
|
+
const { objects: t, options: b } = await i(e);
|
|
984
|
+
return g.groupSVGElements(t, b);
|
|
983
985
|
}
|
|
984
986
|
async function $(e) {
|
|
985
|
-
const { objects: t, options:
|
|
986
|
-
return g.groupSVGElements(t,
|
|
987
|
+
const { objects: t, options: b } = await y(e);
|
|
988
|
+
return g.groupSVGElements(t, b);
|
|
987
989
|
}
|
|
988
990
|
async function V(e) {
|
|
989
991
|
return e && typeof e == "string" && e.trim().startsWith("<") ? await $(e) : e && new RegExp(/([\w_/-]*\.svg$)|(image\/svg\+xml)/gi).test(e) ? await z(e) : await T(e);
|
|
@@ -991,14 +993,14 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
991
993
|
async function x(e, t) {
|
|
992
994
|
e && !t && !N && dA({ src: e });
|
|
993
995
|
}
|
|
994
|
-
return
|
|
996
|
+
return X(() => v.modelValue, async (e, t) => {
|
|
995
997
|
x(e, t);
|
|
996
998
|
}), wA(async () => {
|
|
997
999
|
({ Canvas: s, FabricImage: c, Control: o, util: g, loadSVGFromURL: i, loadSVGFromString: y, config: h, controlsUtils: k } = await import("fabric")), m.value = l.value.offsetWidth, S.value = l.value.offsetHeight, window.addEventListener("resize", sA), h.NUM_FRACTION_DIGITS = 8;
|
|
998
1000
|
const e = s.prototype._onTouchStart;
|
|
999
1001
|
s.prototype._onTouchStart = function(t) {
|
|
1000
|
-
const
|
|
1001
|
-
this.allowTouchScrolling &&
|
|
1002
|
+
const b = this.findTarget(t);
|
|
1003
|
+
this.allowTouchScrolling && b.assetType && !this.isDrawingMode || e.call(this, t);
|
|
1002
1004
|
}, u = new s("fabricCanvas", {
|
|
1003
1005
|
width: m.value,
|
|
1004
1006
|
height: S.value,
|
|
@@ -1007,7 +1009,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1007
1009
|
// devicePixelRatio: 4,
|
|
1008
1010
|
allowTouchScrolling: !0
|
|
1009
1011
|
// backstoreOnly: true
|
|
1010
|
-
}), v.resetState && await
|
|
1012
|
+
}), v.resetState && await Ce("fabric-canvas"), M.value = await pe("fabric-canvas"), M.value ? (await eA(u, M.value), u.requestRenderAll(), requestAnimationFrame(() => {
|
|
1011
1013
|
u.renderAll();
|
|
1012
1014
|
})) : v.modelValue && x(v.modelValue, ""), u.on("object:added", Q), u.on("object:removed", Q), u.on("object:modified", Q), p(), u.renderAll(), d("on-ready", u);
|
|
1013
1015
|
}), (e, t) => (f(), w("div", {
|
|
@@ -1015,10 +1017,10 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1015
1017
|
ref_key: "root",
|
|
1016
1018
|
ref: l
|
|
1017
1019
|
}, [
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
+
C("div", we, [
|
|
1021
|
+
C("canvas", Ie, null, 512)
|
|
1020
1022
|
]),
|
|
1021
|
-
|
|
1023
|
+
bA(e.$slots, "default")
|
|
1022
1024
|
], 512));
|
|
1023
1025
|
}
|
|
1024
1026
|
}), Be = { class: "creative-booth" }, Ee = { class: "media-container" }, De = ["innerHTML"], Qe = { class: "creative-booth__thumbnails" }, ke = [
|
|
@@ -1065,7 +1067,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1065
1067
|
mediaType: "svg",
|
|
1066
1068
|
filters: ["asset-01", "asset-02"]
|
|
1067
1069
|
}
|
|
1068
|
-
],
|
|
1070
|
+
], Ge = /* @__PURE__ */ AA({
|
|
1069
1071
|
__name: "creative-booth",
|
|
1070
1072
|
props: {
|
|
1071
1073
|
modelValue: {
|
|
@@ -1139,23 +1141,23 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1139
1141
|
},
|
|
1140
1142
|
emits: ["update:modelValue", "update:jsonModel", "update:ready", "update:pending"],
|
|
1141
1143
|
setup(A, { emit: r }) {
|
|
1142
|
-
const a = A, s = r, c = D(), o = D(), g = D(!1), i =
|
|
1144
|
+
const a = A, s = r, c = D(), o = D(), g = D(!1), i = H(
|
|
1143
1145
|
() => a.assetFilters && a.assetFilters.length > 0 ? a.assets.filter((l) => !l.filters || l.filters.length == 0 || a.assetFilters.some((m) => l.filters.includes(m))) : a.assets
|
|
1144
|
-
), y =
|
|
1146
|
+
), y = H({
|
|
1145
1147
|
get() {
|
|
1146
1148
|
return a.modelValue;
|
|
1147
1149
|
},
|
|
1148
1150
|
set(l) {
|
|
1149
1151
|
s("update:modelValue", l);
|
|
1150
1152
|
}
|
|
1151
|
-
}), h =
|
|
1153
|
+
}), h = H({
|
|
1152
1154
|
get() {
|
|
1153
1155
|
return a.jsonModel;
|
|
1154
1156
|
},
|
|
1155
1157
|
set(l) {
|
|
1156
1158
|
s("update:jsonModel", l);
|
|
1157
1159
|
}
|
|
1158
|
-
}), k =
|
|
1160
|
+
}), k = H({
|
|
1159
1161
|
get() {
|
|
1160
1162
|
return a.pending;
|
|
1161
1163
|
},
|
|
@@ -1163,7 +1165,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1163
1165
|
a.ready && s("update:pending", l);
|
|
1164
1166
|
}
|
|
1165
1167
|
});
|
|
1166
|
-
|
|
1168
|
+
X(o, async (l, m) => {
|
|
1167
1169
|
l && l !== m && s("update:modelValue", l);
|
|
1168
1170
|
}, { deep: !0 });
|
|
1169
1171
|
function d(l) {
|
|
@@ -1189,7 +1191,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1189
1191
|
s("update:ready", !0);
|
|
1190
1192
|
});
|
|
1191
1193
|
return (l, m) => (f(), w("div", Be, [
|
|
1192
|
-
|
|
1194
|
+
C("div", Ee, [
|
|
1193
1195
|
L(he, {
|
|
1194
1196
|
modelValue: y.value,
|
|
1195
1197
|
"onUpdate:modelValue": m[0] || (m[0] = (S) => y.value = S),
|
|
@@ -1214,7 +1216,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1214
1216
|
class: "headline",
|
|
1215
1217
|
innerHTML: A.messages.headline
|
|
1216
1218
|
}, null, 8, De)) : E("", !0),
|
|
1217
|
-
|
|
1219
|
+
C("div", Qe, [
|
|
1218
1220
|
g.value ? (f(), R(B(EA), {
|
|
1219
1221
|
key: 0,
|
|
1220
1222
|
assets: i.value,
|
|
@@ -1329,7 +1331,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1329
1331
|
mediaType: "image",
|
|
1330
1332
|
filters: []
|
|
1331
1333
|
}
|
|
1332
|
-
],
|
|
1334
|
+
], _e = /* @__PURE__ */ AA({
|
|
1333
1335
|
__name: "face-swap",
|
|
1334
1336
|
props: {
|
|
1335
1337
|
modelValue: {
|
|
@@ -1368,7 +1370,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1368
1370
|
emits: ["update:modelValue"],
|
|
1369
1371
|
setup(A, { emit: r }) {
|
|
1370
1372
|
const a = A, s = r, c = D(), o = D(), g = D(), i = D(!1);
|
|
1371
|
-
|
|
1373
|
+
H({
|
|
1372
1374
|
get() {
|
|
1373
1375
|
return a.modelValue;
|
|
1374
1376
|
},
|
|
@@ -1376,8 +1378,8 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1376
1378
|
s("update:modelValue", d);
|
|
1377
1379
|
}
|
|
1378
1380
|
});
|
|
1379
|
-
const y =
|
|
1380
|
-
|
|
1381
|
+
const y = H(() => g.value || c.value && c.value.src || o.value);
|
|
1382
|
+
X(g, async (d, v) => {
|
|
1381
1383
|
d && d !== v && s("update:modelValue", d);
|
|
1382
1384
|
}, { deep: !0 });
|
|
1383
1385
|
function h(d) {
|
|
@@ -1399,17 +1401,17 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1399
1401
|
return hA(() => {
|
|
1400
1402
|
o.value = a.modelValue;
|
|
1401
1403
|
}), (d, v) => (f(), w("div", Se, [
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
+
C("div", Me, [
|
|
1405
|
+
C("div", {
|
|
1404
1406
|
class: Y(["media-container", `${A.ratio ? `ratio ratio-${A.ratio}` : ""}`])
|
|
1405
1407
|
}, [
|
|
1406
1408
|
L(IA, {
|
|
1407
1409
|
name: "fade",
|
|
1408
1410
|
mode: "out-in"
|
|
1409
1411
|
}, {
|
|
1410
|
-
default:
|
|
1412
|
+
default: _(() => [
|
|
1411
1413
|
(f(), w("div", { key: y.value }, [
|
|
1412
|
-
L(B(
|
|
1414
|
+
L(B(CA), { src: y.value }, null, 8, ["src"])
|
|
1413
1415
|
]))
|
|
1414
1416
|
]),
|
|
1415
1417
|
_: 1
|
|
@@ -1421,7 +1423,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1421
1423
|
class: "btn face-swap__swap-face",
|
|
1422
1424
|
onClick: k
|
|
1423
1425
|
}, [
|
|
1424
|
-
o.value && !g.value && !i.value ? (f(), R(B(
|
|
1426
|
+
o.value && !g.value && !i.value ? (f(), R(B(CA), {
|
|
1425
1427
|
key: 0,
|
|
1426
1428
|
src: o.value,
|
|
1427
1429
|
class: "img-thumbnail"
|
|
@@ -1434,7 +1436,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1434
1436
|
class: "headline",
|
|
1435
1437
|
innerHTML: A.messages.headline
|
|
1436
1438
|
}, null, 8, Pe)) : E("", !0),
|
|
1437
|
-
|
|
1439
|
+
C("div", Ue, [
|
|
1438
1440
|
L(B(EA), {
|
|
1439
1441
|
assets: A.assets,
|
|
1440
1442
|
onSelect: h
|
|
@@ -1475,12 +1477,12 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1475
1477
|
return (g, i) => (f(), w("div", {
|
|
1476
1478
|
class: Y(["svg-canvas", `${A.scale > 1 ? "overflow-scroll" : ""}`])
|
|
1477
1479
|
}, [
|
|
1478
|
-
|
|
1480
|
+
C("div", {
|
|
1479
1481
|
ref_key: "svg",
|
|
1480
1482
|
ref: c,
|
|
1481
1483
|
class: "svg-wrapper",
|
|
1482
1484
|
innerHTML: A.modelValue,
|
|
1483
|
-
style:
|
|
1485
|
+
style: G({ transform: `scale(${A.scale})` }),
|
|
1484
1486
|
onClick: i[0] || (i[0] = (y) => o(y))
|
|
1485
1487
|
}, null, 12, je)
|
|
1486
1488
|
], 2));
|
|
@@ -1497,7 +1499,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1497
1499
|
},
|
|
1498
1500
|
emits: ["update:modelValue"],
|
|
1499
1501
|
setup(A, { emit: r }) {
|
|
1500
|
-
const a = A, s = r, c = D(""), o = D(1), g =
|
|
1502
|
+
const a = A, s = r, c = D(""), o = D(1), g = H({
|
|
1501
1503
|
get() {
|
|
1502
1504
|
return a.modelValue;
|
|
1503
1505
|
},
|
|
@@ -1508,12 +1510,12 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1508
1510
|
return hA(() => {
|
|
1509
1511
|
c.value = a.colors?.length ? a.colors[0] : "";
|
|
1510
1512
|
}), (i, y) => (f(), w("div", Te, [
|
|
1511
|
-
|
|
1513
|
+
C("div", Fe, [
|
|
1512
1514
|
L(B(OA), {
|
|
1513
1515
|
modelValue: o.value,
|
|
1514
1516
|
"onUpdate:modelValue": y[1] || (y[1] = (h) => o.value = h)
|
|
1515
1517
|
}, {
|
|
1516
|
-
default:
|
|
1518
|
+
default: _(() => [
|
|
1517
1519
|
L(Le, {
|
|
1518
1520
|
modelValue: g.value,
|
|
1519
1521
|
"onUpdate:modelValue": y[0] || (y[0] = (h) => g.value = h),
|
|
@@ -1536,8 +1538,8 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1536
1538
|
});
|
|
1537
1539
|
export {
|
|
1538
1540
|
ze as ColorBooth,
|
|
1539
|
-
|
|
1541
|
+
Ge as CreativeBooth,
|
|
1540
1542
|
he as FabricCanvas,
|
|
1541
|
-
|
|
1543
|
+
_e as FaceSwap,
|
|
1542
1544
|
xe as PhotoApp
|
|
1543
1545
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(M,A){typeof exports=="object"&&typeof module<"u"?A(exports,require("vue"),require("ablok-components"),require("vue-i18n"),require("lodash")):typeof define=="function"&&define.amd?define(["exports","vue","ablok-components","vue-i18n","lodash"],A):(M=typeof globalThis<"u"?globalThis:M||self,A(M.AblokPhotobooth={},M.Vue,M.AblokComponents,M.VueI18n,M._))})(this,(function(M,A,h,aA,oA){"use strict";async function nA(e){let s=await fetch(e,{mode:"no-cors"}).then(o=>o.blob());return await new Promise(o=>{let i=new FileReader;i.onload=()=>o(i.result),i.readAsDataURL(s)})}async function W(e){return await new Promise(s=>{let o=new FileReader;o.onload=()=>s(o.result),o.readAsDataURL(e)})}function lA(e){return new Promise((s,o)=>{const i=new Image;i.onload=()=>s(i),i.onerror=o,i.src=e})}function rA(e,s=0,o=0){return new Promise((i,d)=>{const n=new Image;n.crossOrigin="anonymous",n.naturalWidth,n.naturalHeight,n.onload=()=>{const m=document.createElement("canvas"),c=m.getContext("2d");m.width=s,m.height=n.height*s/n.width,c.drawImage(n,0,0,m.width,m.height);const y=m.toDataURL();i(y)},n.src=e})}function AA(e,s=1){return new Promise((o,i)=>{const d=new Image;d.crossOrigin="anonymous",d.onload=()=>{const n=d.naturalWidth,m=d.naturalHeight,c=n/m;let y=n,B=m;c>s?y=m*s:c<s&&(B=n/s);const E=document.createElement("canvas");E.width=y,E.height=B,E.getContext("2d").drawImage(d,E.width/2-d.width/2,E.height/2-d.height/2),o(E.toDataURL())},d.src=e})}const sA=e=>{const s=new FileReader;return new Promise(o=>{s.onload=i=>{if(!i.target)return o(0);const d=i.target,n=new DataView(d.result);if(n.getUint16(0,!1)!=65496)return o(-2);const m=n.byteLength;let c=2;for(;c<m;){if(n.getUint16(c+2,!1)<=8)return o(-1);let y=n.getUint16(c,!1);if(c+=2,y==65505){if(n.getUint32(c+=2,!1)!=1165519206)return o(-1);let B=n.getUint16(c+=6,!1)==18761;c+=n.getUint32(c+4,B);let E=n.getUint16(c,B);c+=2;for(let f=0;f<E;f++)if(n.getUint16(c+f*12,B)==274)return o(n.getUint16(c+f*12+8,B))}else{if((y&65280)!=65280)break;c+=n.getUint16(c,!1)}}return o(-1)},s.readAsArrayBuffer(e)})};function iA(e){let s=0;switch(e){case 3:s=180;break;case 6:s=90;break;case 8:s=270;break;default:s=0}return s}async function cA(e){const s=await sA(e);return await iA(s)}async function dA(e,s){const o=await lA(e),i=document.createElement("canvas"),d=i.getContext("2d");return i.width=o.width,i.height=o.height,d.setTransform(1,0,0,1,i.width/2,i.height/2),d.rotate(s),d.drawImage(o,-o.width/2,-o.height/2),i.toDataURL()}const eA={processImage:async(e,s,o="/media")=>{const i=JSON.stringify({...s});return await(await fetch(e,{headers:{"Content-Type":"application/json"},method:"POST",body:i}).then(n=>n.json()).catch(n=>[n])).dataUrl}},gA="data:image/png;base64,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",fA={class:"photo-app__drop-target__canvas"},mA={class:"flex-grow-1 text-center"},uA=["innerHTML"],pA={class:"ml-2"},CA={key:0,class:"d-flex flex-column align-center justify-center"},bA={key:0},yA={class:"photo-app__errors mt-2"},wA={class:"error--text"},BA={key:1,class:"photo-app__file-list"},hA={class:"row"},IA={key:0},EA={key:1},DA={key:2},QA={key:3},kA={class:"photo-app__form-input text-center"},SA={class:"photo-app__controls"},VA={class:"row"},NA={class:"col col-12"},MA=["innerHTML"],vA={key:0,class:"d-flex justify-center col-8 mx-auto"},TA={class:"col"},PA={key:0,class:"col"},OA={key:1,class:"col"},UA=["required","value"],jA=A.defineComponent({__name:"photo-app",props:{modelValue:{type:String,default:""},enableDragDrop:{type:Boolean,default:!0},enableLocalFileUpload:{type:Boolean,default:!0},enableCamera:{type:Boolean,default:!0},enableSwitchCamera:{type:Boolean,default:!1},defaultRearCamera:{type:Boolean,default:!1},enableFileList:{type:Boolean,default:!1},enableTogglePlay:{type:Boolean,default:!1},enableButtonIcons:{type:Boolean,default:!1},enableButtonCaptions:{type:Boolean,default:!1},enableLegacyInput:{type:Boolean,default:!1},enableInstantUpload:{type:Boolean,default:!1},enableAutoSave:{type:Boolean,default:!1},enableMirrorCamera:{type:Boolean,default:!1},enableCropImage:{type:Boolean,default:!0},enableGuide:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!0},enableReview:{type:Boolean,default:!0},downScaleImages:{type:Boolean,default:!1},guideSrc:{type:String,default:gA},acceptButton:{type:Boolean,default:""},captureCountdown:{type:Number,default:3},backgroundColor:{type:String,default:""},color:{type:String,default:""},i18n:{},messages:{default:()=>({})},apiEndpoint:{type:String,default:""},apiEndpointSuffix:{type:String,default:""},required:{type:Boolean,default:!1},variant:{type:String,default:"light"},maxFileSize:{type:Number,default:1024*1024},fixedResolution:{type:Number,default:1024},ratio:{type:String,default:"3x4"},enableAudio:{type:Boolean,default:!1},enableSelectDevice:{type:Boolean,default:!1},enableProcessImage:{type:Boolean,default:!1},processImage:null,filter:String,tint:Object,resolutions:Object,zoom:Number,enableZoomSlider:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(e,{emit:s}){const{tm:o}=aA.useI18n(),i=A.getCurrentInstance(),d=i&&i.appContext.config.globalProperties.$config,n=e,m=s,c=A.computed(()=>d.baseMediaPath),y=A.computed(()=>l.value&&l.value.length&&l.value.filter(r=>r.response&&Object.keys(r.response).length).length===l.value.length),B=A.computed(()=>{const r=l.value.find(p=>p.response&&p.response.path);return r&&r.response.path}),E=A.computed(()=>B.value?`${c.value}${B.value}`:""),f=A.computed(()=>({...n.i18n?n.i18n.messages:{},...n.messages}));A.computed(()=>!!(l.value&&l.value.length));const b=A.computed(()=>l.value.length?f.value.reviewTitle:f.value.captureTitle),l=A.ref([]),u=A.ref(),D=A.ref(),g=A.ref(),U=A.ref(!1),Q=A.ref(!1),H=A.ref(),k=A.ref(),v=A.ref(!1),x=A.ref("");A.watch(H,async(r,p)=>{if(r){const w=r.blob&&r.blob.type.split("/")[1],I=new File([r.blob],`${r.id}.${w}`),N=await cA(I),O=await W(I),j=await dA(O,N),P=await(await fetch(j)).blob();l.value.push(new File([P],`${r.id}.${w}`,{type:P.type})),v.value=!1,Z()}},{deep:!0}),A.watch(l,async(r,p)=>{if(n.enableInstantUpload)r.find(w=>!w.response.path)&&(u.value.active=!0);else{const w=await Promise.all(r.map(async I=>{let N=await W(I);n.downScaleImages&&Number(n.maxFileSize)&&I.size>Number(n.maxFileSize)&&(N=await rA(N,800,800));const O=n.ratio.split("x");return await AA(N,Number(O[0])/Number(O[1]))}));k.value=w[0]}},{deep:!0}),A.watch(y,async(r,p)=>{r&&!p&&(k.value=n.enableInstantUpload?B.value:await AA(E.value))},{deep:!0}),A.watch(k,async(r,p)=>{n.enableAutoSave&&k!==p&&G()});function _(){k.value="",l.value=[]}function Z(){Q.value=!1}function F(){_(),Q.value=!Q.value}async function K(r){if(!n.filter){l.value=r;return}const{applyFilterToImageBlob:p}=h.useCameraFilter({...n,tintColor:n.tint?.color,tintIntensity:n.tint?.intensity}),w=await Promise.all((r||[]).map(async I=>{const N=I?.file instanceof File?I.file:I instanceof File?I:null;if(!N)return I;const O=await W(N),j=await p(O),T=new File([j],N.name,{type:j.type||N.type,lastModified:N.lastModified});if(I?.file instanceof File){const P=window.URL||window.webkitURL;return{...I,file:T,size:T.size,type:T.type,name:T.name,blob:P&&P.createObjectURL?P.createObjectURL(T):I.blob}}return T}));l.value=w}const G=(async()=>{v.value=!0,n.enableProcessImage&&n.processImage&&(k.value=await n.processImage.reduce(async(r,p)=>{const w=await r;return await q(w,p)},Promise.resolve(k.value))),m("update:modelValue",k.value)}),q=(async(r,p)=>`${await eA.processImage(`${p.endpoint}${p.search?`?${p.search}`:""}`,{...p.body,dataUrl:r,resolution:n.fixedResolution},p.basePath)}`);function $(){v.value=!0,D.value?.onCapture()}return A.onMounted(()=>{["dragenter","dragover"].forEach(r=>{document.body.addEventListener(r,p=>{p.preventDefault(),U.value=!0},!1)}),["dragleave","drop"].forEach(r=>{g.value.addEventListener(r,p=>{p.preventDefault(),U.value=!1},!1)}),["drop"].forEach(r=>{g.value.addEventListener(r,p=>{p.preventDefault(),U.value=!1;const w=p.dataTransfer;(w&&Array.from(w.files||[]))?.forEach(N=>{l.value.push(N)})},!1)})}),(r,p)=>(A.openBlock(),A.createElementBlock("div",{class:A.normalizeClass(["photo-app",e.variant==="dark"&&"theme--dark"])},[e.enableCamera?(A.openBlock(),A.createElementBlock("div",{key:0,class:"photo-app__canvas media-container",style:A.normalizeStyle({color:e.color,backgroundColor:e.backgroundColor})},[Q.value?(A.openBlock(),A.createElementBlock("div",{key:0,class:A.normalizeClass(["photo-app__camera",`${e.ratio?`aspect-ratio--${e.ratio}`:""}`]),style:A.normalizeStyle({borderColor:e.color})},[A.createVNode(A.unref(h.BaseCamera),{ref_key:"camera",ref:D,modelValue:H.value,"onUpdate:modelValue":p[0]||(p[0]=w=>H.value=w),"enable-toggle-play":e.enableTogglePlay,countdown:e.captureCountdown,"enable-mirror-camera":e.enableMirrorCamera,"enable-switch-camera":e.enableSwitchCamera,"default-rear-camera":e.defaultRearCamera,"enable-guide":e.enableGuide,"guide-src":e.guideSrc,"fixed-resolution":e.fixedResolution,"enable-audio":e.enableAudio,"enable-select-device":e.enableSelectDevice,"enable-crop-image":e.enableCropImage,onOnStopped:F,"text-color":e.color,ratio:e.ratio,resolutions:e.resolutions,filter:e.filter,"tint-color":e.tint?.color,"tint-intensity":e.tint?.intensity},null,8,["modelValue","enable-toggle-play","countdown","enable-mirror-camera","enable-switch-camera","default-rear-camera","enable-guide","guide-src","fixed-resolution","enable-audio","enable-select-device","enable-crop-image","text-color","ratio","resolutions","filter","tint-color","tint-intensity"])],6)):A.createCommentVNode("",!0),l.value&&l.value.length&&!Q.value?(A.openBlock(),A.createElementBlock("div",{key:1,class:"photo-app__preview",style:A.normalizeStyle({borderColor:e.color})},[k.value?(A.openBlock(),A.createBlock(A.unref(h.BaseImage),{key:0,src:E.value||k.value},null,8,["src"])):A.createCommentVNode("",!0),A.createVNode(A.Transition,{name:"fade",mode:"out-in"},{default:A.withCtx(()=>[v.value?(A.openBlock(),A.createBlock(A.unref(h.LoadingSpinner),{key:0})):A.createCommentVNode("",!0)]),_:1})],4)):Q.value?A.createCommentVNode("",!0):(A.openBlock(),A.createElementBlock("div",{key:2,class:A.normalizeClass(["photo-app__drop-target",`${e.ratio?`aspect-ratio--${e.ratio}`:""}`]),style:A.normalizeStyle({borderColor:e.color})},[A.createElementVNode("div",fA,[A.createElementVNode("div",mA,[A.createElementVNode("p",{class:"headline h2 font-weight-bold",innerHTML:f.value.title||r.$t("fileInput.coverTitle")},null,8,uA),e.enableCamera?(A.openBlock(),A.createBlock(A.unref(h.BaseButton),{key:0,type:"button",onClick:A.withModifiers(F,["prevent"]),style:A.normalizeStyle({color:e.color}),icon:"camera",class:"rounded-pill"},{default:A.withCtx(()=>[A.createVNode(A.unref(h.SvgIcon),{symbol:"camera"}),A.createElementVNode("span",pA,A.toDisplayString(f.value.launchCamera||r.$t("fileInput.coverLaunchCta")),1)]),_:1},8,["style"])):A.createCommentVNode("",!0)]),e.enableLocalFileUpload?(A.openBlock(),A.createElementBlock("div",CA,[A.createElementVNode("p",{class:"subtitle fw-bold ma-0",style:A.normalizeStyle({color:e.color})},A.toDisplayString(f.value.localFileTitle||r.$t("fileInput.coverLocalSelectTitle")),5),A.createElementVNode("p",{class:"text-body-1",style:A.normalizeStyle({color:e.color})},[e.enableDragDrop?(A.openBlock(),A.createElementBlock("span",bA,A.toDisplayString(f.value.dropTarget||r.$t("fileInput.coverDropTarget"))+" "+A.toDisplayString(e.enableLocalFileUpload&&e.enableDragDrop?f.value.or||r.$t("common.or"):"")+" "+A.toDisplayString(),1)):A.createCommentVNode("",!0),A.createElementVNode("label",{for:"fileUpload",role:"button",class:"d-inline link",style:A.normalizeStyle({color:e.color})},A.toDisplayString(f.value.coverSelectFileCta||r.$t("fileInput.coverLocalFileCta")),5)],4)])):A.createCommentVNode("",!0)])],6))],4)):A.createCommentVNode("",!0),A.withDirectives(A.createElementVNode("div",{class:"photo-app__drop-overlay",ref_key:"dropArea",ref:g},[A.createElementVNode("h3",null,A.toDisplayString(f.value.dropTarget||r.$t("fileInput.dropTargetLabel")),1)],512),[[A.vShow,e.enableLocalFileUpload&&e.enableDragDrop&&U.value]]),A.withDirectives(A.createElementVNode("div",yA,[A.createElementVNode("p",wA,A.toDisplayString(x.value),1)],512),[[A.vShow,x.value]]),e.enableFileList&&l.value.length?(A.openBlock(),A.createElementBlock("div",BA,[A.createElementVNode("div",hA,[(A.openBlock(!0),A.createElementBlock(A.Fragment,null,A.renderList(l.value,w=>(A.openBlock(),A.createElementBlock("div",{key:w.id,class:"col col-12"},[A.createElementVNode("span",null,A.toDisplayString(w.name),1),p[2]||(p[2]=A.createTextVNode(" - ",-1)),A.createElementVNode("span",null,A.toDisplayString(w.size),1),p[3]||(p[3]=A.createTextVNode(" - ",-1)),w.error?(A.openBlock(),A.createElementBlock("span",IA,A.toDisplayString(w.error),1)):w.success?(A.openBlock(),A.createElementBlock("span",EA,A.toDisplayString(r.$t("common.success")),1)):w.active?(A.openBlock(),A.createElementBlock("span",DA,A.toDisplayString(r.$t("common.active")),1)):(A.openBlock(),A.createElementBlock("span",QA))]))),128))])])):A.createCommentVNode("",!0),A.withDirectives(A.createElementVNode("div",kA,[A.createElementVNode("div",SA,[A.createElementVNode("div",VA,[A.createElementVNode("div",NA,[A.renderSlot(r.$slots,"headline",{},()=>[e.enableTitle&&(Q.value||l.value.length)?(A.openBlock(),A.createElementBlock("p",{key:0,class:"headline",innerHTML:b.value},null,8,MA)):A.createCommentVNode("",!0)]),!e.enableLegacyInput&&(Q.value||l.value.length)?(A.openBlock(),A.createElementBlock("div",vA,[A.createElementVNode("div",TA,[Q.value||l.value.length&&(!u.value||!u.value.active)?(A.openBlock(),A.createBlock(A.unref(h.BaseButton),{key:0,type:"button",class:A.normalizeClass(["btn btn-primary-outline rounded-circle",`theme--${e.variant}`]),onClick:p[1]||(p[1]=A.withModifiers(w=>Q.value?F():_(),["prevent"]))},{default:A.withCtx(()=>[A.createVNode(A.unref(h.SvgIcon),{symbol:"x","base-path":A.unref(d).iconSprite,class:"primary"},null,8,["base-path"]),A.createTextVNode(" "+A.toDisplayString(e.enableButtonCaptions?f.value.cancel||r.$t("fileInput.cancel"):""),1)]),_:1},8,["class"])):A.createCommentVNode("",!0)]),Q.value?(A.openBlock(),A.createElementBlock("div",PA,[A.createVNode(A.unref(h.BaseButton),{type:"button",class:A.normalizeClass(["btn btn-primary rounded-circle",`theme--${e.variant}`]),onClick:A.withModifiers($,["prevent"]),disabled:v.value},{default:A.withCtx(()=>[A.createVNode(A.unref(h.SvgIcon),{symbol:"camera","base-path":A.unref(d).iconSprite},null,8,["base-path"]),A.createTextVNode(" "+A.toDisplayString(e.enableButtonCaptions?f.value.shoot||r.$t("fileInput.shoot"):""),1)]),_:1},8,["class","disabled"])])):e.enableReview?(A.openBlock(),A.createElementBlock("div",OA,[A.createVNode(A.unref(h.BaseButton),{type:"button",class:A.normalizeClass(["btn btn-primary rounded-circle",{[`theme--${e.variant}`]:e.variant,"btn-success":v.value}]),onClick:A.withModifiers(G,["prevent"]),disabled:v.value},{default:A.withCtx(()=>[A.createVNode(A.unref(h.SvgIcon),{symbol:"check"}),A.createTextVNode(" "+A.toDisplayString(e.enableButtonCaptions?f.value.accept||r.$t("common.accept"):""),1)]),_:1},8,["class","disabled"])])):A.createCommentVNode("",!0)])):A.createCommentVNode("",!0),A.withDirectives(A.createElementVNode("div",{class:A.normalizeClass(["justify-center col-10 mx-auto",{"d-flex":e.enableLegacyInput&&(Q.value||l.value.length)}])},[A.createElementVNode("button",{type:"button",class:A.normalizeClass(["btn btn-primary",`theme--${e.variant}`]),onClick:A.withModifiers(F,["prevent"])},[e.enableButtonIcons?(A.openBlock(),A.createBlock(A.unref(h.SvgIcon),{key:0,symbol:"camera"})):A.createCommentVNode("",!0),A.createTextVNode(" "+A.toDisplayString(e.enableButtonCaptions?Q.value?f.value.cancel||r.$t("common.cancel"):f.value.camera||r.$t("fileInput.selectCameraCta"):""),1)],2),Q.value&&(!r.$refs.upload||u.value.active)?(A.openBlock(),A.createBlock(A.unref(h.BaseButton),{key:0,type:"button",class:A.normalizeClass(["btn btn-primary",`theme--${e.variant}`]),onClick:A.withModifiers($,["prevent"]),disabled:v.value},{default:A.withCtx(()=>[e.enableButtonIcons?(A.openBlock(),A.createBlock(A.unref(h.SvgIcon),{key:0,symbol:"camera"})):A.createCommentVNode("",!0),A.createTextVNode(" "+A.toDisplayString(e.enableButtonCaptions?f.value.shoot||r.$t("fileInput.shoot"):""),1)]),_:1},8,["class","disabled"])):A.createCommentVNode("",!0),A.createVNode(A.unref(h.InputFile),{ref_key:"upload",ref:u,"model-value":l.value,id:"fileUpload","onUpdate:modelValue":K,name:"fileUpload"},{default:A.withCtx(()=>[A.renderSlot(r.$slots,"label",{},()=>[A.createElementVNode("label",{for:"fileUpload",type:"button",class:A.normalizeClass(["btn btn-primary",`theme--${e.variant}`])},[e.enableButtonIcons?(A.openBlock(),A.createBlock(A.unref(h.SvgIcon),{key:0,symbol:"camera"})):A.createCommentVNode("",!0)],2)])]),_:3},8,["model-value"])],2),[[A.vShow,e.enableLegacyInput&&(Q.value||l.value.length)]]),e.required?(A.openBlock(),A.createElementBlock("input",{key:1,ref:"hiddenInput",required:e.required,value:k.value,style:{display:"none"}},null,8,UA)):A.createCommentVNode("",!0)])])])],512),[[A.vShow,Q.value||l.value.length]])],2))}});function R(e){return new Promise((s,o)=>{e.oncomplete=e.onsuccess=()=>s(e.result),e.onabort=e.onerror=()=>o(e.error)})}function LA(e,s){const o=indexedDB.open(e);o.onupgradeneeded=()=>o.result.createObjectStore(s);const i=R(o);return(d,n)=>i.then(m=>n(m.transaction(s,d).objectStore(s)))}let J;function X(){return J||(J=LA("keyval-store","keyval")),J}function FA(e,s=X()){return s("readonly",o=>R(o.get(e)))}function HA(e,s,o=X()){return o("readwrite",i=>(i.put(s,e),R(i.transaction)))}function xA(e,s=X()){return s("readwrite",o=>(o.delete(e),R(o.transaction)))}const zA="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23ffffffCC'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20class='feather%20feather-rotate-cw'%3e%3cpolyline%20points='23%204%2023%2010%2017%2010'%3e%3c/polyline%3e%3cpath%20d='M20.49%2015a9%209%200%201%201-2.12-9.36L23%2010'%3e%3c/path%3e%3c/svg%3e",YA="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23ffffffCC'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20class='feather%20feather-x-circle'%3e%3ccircle%20cx='12'%20cy='12'%20r='10'%20fill='none'%3e%3c/circle%3e%3cline%20x1='15'%20y1='9'%20x2='9'%20y2='15'%20fill='none'%3e%3c/line%3e%3cline%20x1='9'%20y1='9'%20x2='15'%20y2='15'%20fill='none'%3e%3c/line%3e%3c/svg%3e",RA={class:"fabric-canvas__canvas"},_A={id:"fabricCanvas",ref:"canvasRef"},tA=A.defineComponent({__name:"fabric-canvas",props:{modelValue:{type:String,default:""},jsonModel:{type:null,default:void 0},exportToSvg:{type:Boolean,default:!1},resetState:{type:Boolean,default:!1},options:{type:Object,default:()=>({})},feature:{type:String,default:""},required:{type:Boolean,default:!1},pending:{type:Boolean,default:!1},emitPending:{type:Boolean,default:!1},animationDuration:{type:Number,default:0}},emits:["update:modelValue","update:jsonModel","update:pending","on-ready"],setup(e,{expose:s,emit:o}){let i,d,n,m,c,y,B,E;const f=o;s({setBackgroundImage:_,setOverlayImage:F,addCanvasObject:K});const b=e,l=A.ref(),u=A.ref(0),D=A.ref(0);let g,U=!1;const Q=A.ref();async function H(t,a){return new Promise(async C=>{const S=JSON.parse(a);if(S.backgroundImage){const V=await k(S.backgroundImage.src||S.backgroundImage.filename);V.set({opacity:1}),t.backgroundImage=V,t.centerObject(V)}if(S.overlayImage){const V=await k(S.overlayImage.src||S.overlayImage.filename);V.set({opacity:1,left:u.value/2,top:D.value/2,scaleX:u.value/V.width,scaleY:D.value/V.height}),t.overlayImage=V}(await m.enlivenObjects(S.objects,{reviver:void 0})).forEach(V=>{t.add(V)}),C(t)})}async function k(t){const a=await T(t);t.includes("data:image")||(a.filename=t);const C=m.findScaleToCover(a,g),S=a instanceof d;return a.set({left:0,top:0,opacity:S&&b.animationDuration>0?0:1,scaleX:C,scaleY:C,src:t}),a}async function v(t){!(t instanceof d)||b.animationDuration===0||(b.emitPending&&f("update:pending",!0),await new Promise(C=>{const S=b.animationDuration,z=Date.now(),V=()=>{const Y=Date.now()-z,L=Math.min(Y/S,1);t.set("opacity",L),g.renderAll(),L<1?requestAnimationFrame(V):(b.emitPending&&f("update:pending",!1),C())};requestAnimationFrame(V)}))}function x(t){const a=m.findScaleToCover(t,g);return t.set({scaleX:a,scaleY:a}),t}async function _(t){const a=await k(t.src);g.backgroundImage=a,g.centerObject(a),g.renderAll(),await v(a),I()}async function Z(t){const a=await k(t.src);a.selectable=!1,a.assetType="foreground",g.add(a),g.centerObject(a),g.renderAll(),await v(a),I()}async function F(t){const a=await k(t.src);a.set({left:u.value/2,top:D.value/2,scaleX:u.value/a.width,scaleY:D.value/a.height}),g.overlayImage=a,g.renderAll(),await v(a),I()}async function K(t){g.discardActiveObject();const a=await T(t.src);a.filename=t.src;const C=u.value/3,S=D.value/3,z=C/a.width,V=S/a.height,Y=Math.min(z,V);a.set({scaleX:Y,scaleY:Y,left:u.value/2,top:D.value/2}),a.id=t.id,a.padding=8,g.add(a),g.setActiveObject(a),await v(a),g.renderAll()}function G(t,a){a.target.id;const C=a.target;return g.remove(C),g.requestRenderAll(),!0}function q(){if(u.value=l.value.offsetWidth,D.value=l.value.offsetHeight,g.setDimensions({width:u.value,height:D.value}),g.backgroundImage&&(g.backgroundImage=x(g.backgroundImage),g.centerObject(g.backgroundImage)),g.overlayImage){const t=g.overlayImage;t.set({scaleX:u.value/t.width,scaleY:D.value/t.height})}g.getObjects().forEach(t=>{t.assetType==="foreground"&&(t=x(t),g.centerObject(t))}),g.renderAll()}const $=oA.debounce(()=>{q()},200,{trailing:!0,leading:!1});function r(t){return(a,C,S,z,V)=>{a.save(),a.translate(C,S),a.rotate(m.degreesToRadians(V.angle)),a.fillStyle=b.options.themeData?.colors?.primary,a.fillRect(-24/2,-24/2,24,24);const L=20;a.drawImage(t,-L/2,-L/2,L,L),a.restore()}}function p(){const t=document.createElement("img");t.src=zA;const a=document.createElement("img");a.src=YA,g.on("object:added",C=>{C.target&&C.target.controls&&(C.target.set({transparentCorners:!1,cornerSize:16,cornerStyle:"circle",...b.options.themeData?.colors?.primary?{cornerColor:b.options.themeData?.colors?.primary,cornerStrokeColor:b.options.themeData?.colors?.primary,borderColor:b.options.themeData?.colors?.primary}:{}}),C.target.controls.ml.visible=!1,C.target.controls.mr.visible=!1,C.target.controls.mb.visible=!1,C.target.controls.mt.visible=!1,C.target.controls.mtr.visible=!1,C.target.controls.rotate=new n({x:.5,y:-.5,offsetX:32,offsetY:0,cursorStyle:"pointer",actionName:"rotate",actionHandler:E.rotationWithSnapping,cursorStyleHandler:E.rotationStyleHandler,render:r(t)}),C.target.controls.delete=new n({x:.5,y:-.5,offsetX:32,offsetY:32,cursorStyle:"pointer",mouseUpHandler:G,render:r(a)}))})}async function w(){return await new Promise(t=>{setTimeout(()=>{const a=b.exportToSvg?g.toSVG():g.toDataURL({multiplier:2});t(a)},200)})}function I(){setTimeout(async()=>{const t=g.toDatalessJSON(["selectable","assetType","filename"]);await HA("fabric-canvas",JSON.stringify(t));let a=!0;if(b.required)switch(a=!1,b.feature){case"overlay":t.overlayImage&&(a=!0);break;case"background":t.backgroundImage&&(a=!0);break;case"stickers":t.objects.length>1&&(a=!0);break;default:(t.objects.length>1||t.backgroundImage||t.overlayImage)&&(a=!0)}if(a){U=!0;const C=await w();f("update:modelValue",C),f("update:jsonModel",t)}},120)}async function N(t){try{return await d.fromURL(t)}catch(a){throw console.error("Error loading image:",a),a}}async function O(t){const{objects:a,options:C}=await c(t);return m.groupSVGElements(a,C)}async function j(t){const{objects:a,options:C}=await y(t);return m.groupSVGElements(a,C)}async function T(t){return t&&typeof t=="string"&&t.trim().startsWith("<")?await j(t):t&&new RegExp(/([\w_/-]*\.svg$)|(image\/svg\+xml)/gi).test(t)?await O(t):await N(t)}async function P(t,a){t&&!a&&!U&&Z({src:t})}return A.watch(()=>b.modelValue,async(t,a)=>{P(t,a)}),A.onMounted(async()=>{({Canvas:i,FabricImage:d,Control:n,util:m,loadSVGFromURL:c,loadSVGFromString:y,config:B,controlsUtils:E}=await import("fabric")),u.value=l.value.offsetWidth,D.value=l.value.offsetHeight,window.addEventListener("resize",$),B.NUM_FRACTION_DIGITS=8;const t=i.prototype._onTouchStart;i.prototype._onTouchStart=function(a){const C=this.findTarget(a);this.allowTouchScrolling&&C.assetType&&!this.isDrawingMode||t.call(this,a)},g=new i("fabricCanvas",{width:u.value,height:D.value,skipOffscreen:!0,allowTouchScrolling:!0}),b.resetState&&await xA("fabric-canvas"),Q.value=await FA("fabric-canvas"),Q.value?(await H(g,Q.value),g.requestRenderAll(),requestAnimationFrame(()=>{g.renderAll()})):b.modelValue&&P(b.modelValue,""),g.on("object:added",I),g.on("object:removed",I),g.on("object:modified",I),p(),g.renderAll(),f("on-ready",g)}),(t,a)=>(A.openBlock(),A.createElementBlock("div",{class:"fabric-canvas",ref_key:"root",ref:l},[A.createElementVNode("div",RA,[A.createElementVNode("canvas",_A,null,512)]),A.renderSlot(t.$slots,"default")],512))}}),GA={class:"creative-booth"},$A={class:"media-container"},WA=["innerHTML"],JA={class:"creative-booth__thumbnails"},XA=[{type:"background",thumbnail:"/themes/corp/backgrounds/corporate-your-background-1024x1024.jpg",src:"/themes/corp/backgrounds/corporate-your-background-1024x1024.jpg",mediaType:"image",filters:["asset-01","asset-02"]},{type:"background",thumbnail:"/themes/corp/backgrounds/corp-background-09-white.jpg",src:"/themes/corp/backgrounds/corp-background-09-white.jpg",mediaType:"image",filters:["asset-01","asset-02"]},{type:"overlay",src:"/themes/corp/overlays/corporate-your-overlay-1024x1024.png",mediaType:"image",filters:["asset-01"]},{type:"overlay",src:"/themes/corp/overlays/corp-overlay-02-white.png",mediaType:"image",filters:["asset-01"]},{type:"object",src:"/themes/corp/stickers/corporate-your-sticker-512x512.svg",mediaType:"svg",filters:["asset-02"]},{type:"object",src:"/themes/corp/stickers/corp-sticker-01.svg",mediaType:"svg"},{type:"object",src:"/themes/corp/stickers/corp-sticker-02.svg",mediaType:"svg",filters:["asset-01","asset-02"]}],ZA=A.defineComponent({__name:"creative-booth",props:{modelValue:{default:null},jsonModel:{type:null,default:void 0},config:{type:Object,default:null},feature:{type:String,default:""},required:{type:Boolean,default:!1},variant:{type:String,default:"light"},messages:{type:Object,default:{}},assets:{type:Array,default:()=>XA},assetFilters:{type:Array,default:()=>[]},exportToSvg:{type:Boolean,default:!1},resetState:{type:Boolean,default:!1},ratio:{type:String,default:"4x3"},themeData:{type:Object,default:()=>({})},autoSelect:Number,ready:{type:Boolean,default:!1},pending:{type:Boolean,default:!1},emitPending:{type:Boolean,default:!1},animationDuration:{type:Number,default:320}},emits:["update:modelValue","update:jsonModel","update:ready","update:pending"],setup(e,{emit:s}){const o=e,i=s,d=A.ref(),n=A.ref(),m=A.ref(!1),c=A.computed(()=>o.assetFilters&&o.assetFilters.length>0?o.assets.filter(l=>!l.filters||l.filters.length==0||o.assetFilters.some(u=>l.filters.includes(u))):o.assets),y=A.computed({get(){return o.modelValue},set(l){i("update:modelValue",l)}}),B=A.computed({get(){return o.jsonModel},set(l){i("update:jsonModel",l)}}),E=A.computed({get(){return o.pending},set(l){o.ready&&i("update:pending",l)}});A.watch(n,async(l,u)=>{l&&l!==u&&i("update:modelValue",l)},{deep:!0});function f(l){if(typeof l<"u"){const u=c.value[l];switch(u.type){case"background":d.value?.setBackgroundImage(u);break;case"overlay":d.value.setOverlayImage(u);break;default:d.value.addCanvasObject(u)}}}const b=(async()=>{if(m.value=!0,o.autoSelect!==void 0){const l=o.autoSelect>=0?o.autoSelect:Math.floor(Math.random()*c.value.length);f(l)}i("update:ready",!0)});return(l,u)=>(A.openBlock(),A.createElementBlock("div",GA,[A.createElementVNode("div",$A,[A.createVNode(tA,{modelValue:y.value,"onUpdate:modelValue":u[0]||(u[0]=D=>y.value=D),"json-model":B.value,"onUpdate:jsonModel":u[1]||(u[1]=D=>B.value=D),pending:E.value,"onUpdate:pending":u[2]||(u[2]=D=>E.value=D),ref_key:"canvas",ref:d,"reset-state":e.resetState,options:{themeData:e.themeData},feature:e.feature,required:e.required,class:A.normalizeClass(`${e.ratio?`aspect-ratio aspect-ratio--${e.ratio}`:""}`),onOnReady:b,"emit-pending":e.emitPending,"animation-duration":e.animationDuration},null,8,["modelValue","json-model","pending","reset-state","options","feature","required","class","emit-pending","animation-duration"])]),e.messages.headline?(A.openBlock(),A.createElementBlock("p",{key:0,class:"headline",innerHTML:e.messages.headline},null,8,WA)):A.createCommentVNode("",!0),A.createElementVNode("div",JA,[m.value?(A.openBlock(),A.createBlock(A.unref(h.MediaThumbnails),{key:0,assets:c.value,onSelect:f},null,8,["assets"])):A.createCommentVNode("",!0)])]))}}),KA={class:"face-swap"},qA={class:"position-relative"},Ae=["innerHTML"],ee={class:"face-swap__thumbnails"},te=[{type:"target",thumbnail:"/faceswap/robotroll._avengers_black_widow_fbe3e886-525d-4c8b-b46c-b32856fae2bf.png",src:"/faceswap/robotroll._avengers_black_widow_fbe3e886-525d-4c8b-b46c-b32856fae2bf.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._batmans_joker_04afa7d0-430d-43f2-a7ce-815c6875a793.png",src:"/faceswap/robotroll._batmans_joker_04afa7d0-430d-43f2-a7ce-815c6875a793.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._catwoman_922f1bfa-9197-4e9a-aaeb-bce5d413a9b9.png",src:"/faceswap/robotroll._catwoman_922f1bfa-9197-4e9a-aaeb-bce5d413a9b9.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._christian_bale_as_american_psycho_abe2d5ab-58e8-4f21-94f9-b2b117af3d89.png",src:"/faceswap/robotroll._christian_bale_as_american_psycho_abe2d5ab-58e8-4f21-94f9-b2b117af3d89.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._dirty_harry_7ce45595-edba-4ef8-a513-39b179d94f57.png",src:"/faceswap/robotroll._dirty_harry_7ce45595-edba-4ef8-a513-39b179d94f57.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._evil_santa_claus_pointing_a_double_barrel_shotgun_at_bf603686-4980-449b-ad88-e8f362850aab.png",src:"/faceswap/robotroll._evil_santa_claus_pointing_a_double_barrel_shotgun_at_bf603686-4980-449b-ad88-e8f362850aab.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._homer_simpson_as_real_person_b14628bf-5a5a-45fe-b35a-e56960de4ad4.png",src:"/faceswap/robotroll._homer_simpson_as_real_person_b14628bf-5a5a-45fe-b35a-e56960de4ad4.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._james_bond_caa0af54-16b2-4d15-9e4d-45cc395c021b.png",src:"/faceswap/robotroll._james_bond_caa0af54-16b2-4d15-9e4d-45cc395c021b.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._neil_gaimans_sandman_d3ca51cd-2ef8-46d5-b1db-1474789783a4.png",src:"/faceswap/robotroll._neil_gaimans_sandman_d3ca51cd-2ef8-46d5-b1db-1474789783a4.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._pennywise_3f4c5997-9fd2-43e0-ab9b-17384fb58da9.png",src:"/faceswap/robotroll._pennywise_3f4c5997-9fd2-43e0-ab9b-17384fb58da9.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._queen_of_hearts_8de84ac6-3f61-4981-ac92-c63d90d63890.png",src:"/faceswap/robotroll._queen_of_hearts_8de84ac6-3f61-4981-ac92-c63d90d63890.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._red_dead_redemptions_arthur_morgan_portrait_36f8a066-6c2b-4a23-9c5e-a2a3964b0d3b.png",src:"/faceswap/robotroll._red_dead_redemptions_arthur_morgan_portrait_36f8a066-6c2b-4a23-9c5e-a2a3964b0d3b.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._thanos_38adb80e-08ac-49d4-95e0-d4d11cb5a11d.png",src:"/faceswap/robotroll._thanos_38adb80e-08ac-49d4-95e0-d4d11cb5a11d.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._the_godfather_062db832-61ce-4d18-a09d-045cadd4e281.png",src:"/faceswap/robotroll._the_godfather_062db832-61ce-4d18-a09d-045cadd4e281.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._wolverine_3f9cece6-e490-4be8-a5f9-d6e6abf0440f.png",src:"/faceswap/robotroll._wolverine_3f9cece6-e490-4be8-a5f9-d6e6abf0440f.png",mediaType:"image",filters:[]}],ae=A.defineComponent({__name:"face-swap",props:{modelValue:{default:null},config:{type:Object,default:null},variant:{type:String,default:"light"},messages:{type:Object,default:{}},assets:{type:Array,default:()=>te},resetState:{type:Boolean,default:!1},ratio:{type:String,default:"4x3"},endpoint:{type:String,default:"/faceswap-json"},autoSelect:Number},emits:["update:modelValue"],setup(e,{emit:s}){const o=e,i=s,d=A.ref(),n=A.ref(),m=A.ref(),c=A.ref(!1);A.computed({get(){return o.modelValue},set(f){i("update:modelValue",f)}});const y=A.computed(()=>m.value||d.value&&d.value.src||n.value);A.watch(m,async(f,b)=>{f&&f!==b&&i("update:modelValue",f)},{deep:!0});function B(f){if(typeof f<"u"){const b=o.assets[f];d.value=b,m.value=null}}async function E(){const f=await nA(d.value.src),l={dataUrl:o.modelValue,targetDataUrl:f};c.value=!0;const u=eA;m.value=await u.processImage(o.endpoint,l,""),c.value=!1}return A.onBeforeMount(()=>{n.value=o.modelValue}),(f,b)=>(A.openBlock(),A.createElementBlock("div",KA,[A.createElementVNode("div",qA,[A.createElementVNode("div",{class:A.normalizeClass(["media-container",`${e.ratio?`ratio ratio-${e.ratio}`:""}`])},[A.createVNode(A.Transition,{name:"fade",mode:"out-in"},{default:A.withCtx(()=>[(A.openBlock(),A.createElementBlock("div",{key:y.value},[A.createVNode(A.unref(h.BaseImage),{src:y.value},null,8,["src"])]))]),_:1})],2),d.value?(A.openBlock(),A.createElementBlock("button",{key:0,type:"button",class:"btn face-swap__swap-face",onClick:E},[n.value&&!m.value&&!c.value?(A.openBlock(),A.createBlock(A.unref(h.BaseImage),{key:0,src:n.value,class:"img-thumbnail"},null,8,["src"])):A.createCommentVNode("",!0)])):A.createCommentVNode("",!0),c.value?(A.openBlock(),A.createBlock(A.unref(h.LoadingSpinner),{key:1})):A.createCommentVNode("",!0)]),e.messages.headline?(A.openBlock(),A.createElementBlock("p",{key:0,class:"headline",innerHTML:e.messages.headline},null,8,Ae)):A.createCommentVNode("",!0),A.createElementVNode("div",ee,[A.createVNode(A.unref(h.MediaThumbnails),{assets:e.assets,onSelect:B},null,8,["assets"])])]))}}),oe=["innerHTML"],ne=A.defineComponent({__name:"svg-canvas",props:{modelValue:{default:'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/>',type:String},scale:{type:Number,default:1},fillColor:String,groupedFill:Boolean},emits:["update:modelValue"],setup(e,{emit:s}){const o=e,i=s,d=A.ref();function n(m){const c=m.target;if(!c.closest(".read-only")){if(o.groupedFill&&o.fillColor){const b=c.closest("[data-group-class]").dataset.groupClass,l=c.closest("svg")?.querySelectorAll(`.${b}`);l&&Array.from(l).forEach(u=>{u.setAttribute("fill",o.fillColor),u.setAttribute("fill-opacity","1")})}else o.fillColor&&(c.setAttribute("fill",o.fillColor),c.setAttribute("fill-opacity","1"));const E=c.closest(".svg-canvas").querySelector("svg").outerHTML;i("update:modelValue",E)}}return(m,c)=>(A.openBlock(),A.createElementBlock("div",{class:A.normalizeClass(["svg-canvas",`${e.scale>1?"overflow-scroll":""}`])},[A.createElementVNode("div",{ref_key:"svg",ref:d,class:"svg-wrapper",innerHTML:e.modelValue,style:A.normalizeStyle({transform:`scale(${e.scale})`}),onClick:c[0]||(c[0]=y=>n(y))},null,12,oe)],2))}}),le={class:"svg-editor"},re={class:"svg-editor__frame"},se=A.defineComponent({__name:"color-booth",props:{modelValue:String,name:String,src:String,required:Boolean,colors:Array,groupedFill:Boolean},emits:["update:modelValue"],setup(e,{emit:s}){const o=e,i=s,d=A.ref(""),n=A.ref(1),m=A.computed({get(){return o.modelValue},set(c){i("update:modelValue",c)}});return A.onBeforeMount(()=>{d.value=o.colors?.length?o.colors[0]:""}),(c,y)=>(A.openBlock(),A.createElementBlock("div",le,[A.createElementVNode("div",re,[A.createVNode(A.unref(h.TouchWrapper),{modelValue:n.value,"onUpdate:modelValue":y[1]||(y[1]=B=>n.value=B)},{default:A.withCtx(()=>[A.createVNode(ne,{modelValue:m.value,"onUpdate:modelValue":y[0]||(y[0]=B=>m.value=B),fillColor:d.value,scale:n.value,"grouped-fill":e.groupedFill},null,8,["modelValue","fillColor","scale","grouped-fill"])]),_:1},8,["modelValue"]),A.createVNode(A.unref(h.ColorPalette),{modelValue:d.value,"onUpdate:modelValue":y[2]||(y[2]=B=>d.value=B),colors:e.colors,class:"mt-2"},null,8,["modelValue","colors"])])]))}});M.ColorBooth=se,M.CreativeBooth=ZA,M.FabricCanvas=tA,M.FaceSwap=ae,M.PhotoApp=jA,Object.defineProperty(M,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(M,A){typeof exports=="object"&&typeof module<"u"?A(exports,require("vue"),require("ablok-components"),require("vue-i18n"),require("lodash")):typeof define=="function"&&define.amd?define(["exports","vue","ablok-components","vue-i18n","lodash"],A):(M=typeof globalThis<"u"?globalThis:M||self,A(M.AblokPhotobooth={},M.Vue,M.AblokComponents,M.VueI18n,M._))})(this,(function(M,A,h,aA,oA){"use strict";async function lA(e){let s=await fetch(e,{mode:"no-cors"}).then(o=>o.blob());return await new Promise(o=>{let i=new FileReader;i.onload=()=>o(i.result),i.readAsDataURL(s)})}async function W(e){return await new Promise(s=>{let o=new FileReader;o.onload=()=>s(o.result),o.readAsDataURL(e)})}function nA(e){return new Promise((s,o)=>{const i=new Image;i.onload=()=>s(i),i.onerror=o,i.src=e})}function rA(e,s=0,o=0){return new Promise((i,d)=>{const l=new Image;l.crossOrigin="anonymous",l.naturalWidth,l.naturalHeight,l.onload=()=>{const m=document.createElement("canvas"),c=m.getContext("2d");m.width=s,m.height=l.height*s/l.width,c.drawImage(l,0,0,m.width,m.height);const y=m.toDataURL();i(y)},l.src=e})}function AA(e,s=1){return new Promise((o,i)=>{const d=new Image;d.crossOrigin="anonymous",d.onload=()=>{const l=d.naturalWidth,m=d.naturalHeight,c=l/m;let y=l,B=m;c>s?y=m*s:c<s&&(B=l/s);const E=document.createElement("canvas");E.width=y,E.height=B,E.getContext("2d").drawImage(d,E.width/2-d.width/2,E.height/2-d.height/2),o(E.toDataURL())},d.src=e})}const sA=e=>{const s=new FileReader;return new Promise(o=>{s.onload=i=>{if(!i.target)return o(0);const d=i.target,l=new DataView(d.result);if(l.getUint16(0,!1)!=65496)return o(-2);const m=l.byteLength;let c=2;for(;c<m;){if(l.getUint16(c+2,!1)<=8)return o(-1);let y=l.getUint16(c,!1);if(c+=2,y==65505){if(l.getUint32(c+=2,!1)!=1165519206)return o(-1);let B=l.getUint16(c+=6,!1)==18761;c+=l.getUint32(c+4,B);let E=l.getUint16(c,B);c+=2;for(let f=0;f<E;f++)if(l.getUint16(c+f*12,B)==274)return o(l.getUint16(c+f*12+8,B))}else{if((y&65280)!=65280)break;c+=l.getUint16(c,!1)}}return o(-1)},s.readAsArrayBuffer(e)})};function iA(e){let s=0;switch(e){case 3:s=180;break;case 6:s=90;break;case 8:s=270;break;default:s=0}return s}async function cA(e){const s=await sA(e);return await iA(s)}async function dA(e,s){const o=await nA(e),i=document.createElement("canvas"),d=i.getContext("2d");return i.width=o.width,i.height=o.height,d.setTransform(1,0,0,1,i.width/2,i.height/2),d.rotate(s),d.drawImage(o,-o.width/2,-o.height/2),i.toDataURL()}const eA={processImage:async(e,s,o="/media")=>{const i=JSON.stringify({...s});return await(await fetch(e,{headers:{"Content-Type":"application/json"},method:"POST",body:i}).then(l=>l.json()).catch(l=>[l])).dataUrl}},gA="data:image/png;base64,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",fA={class:"photo-app__drop-target__canvas"},mA={class:"flex-grow-1 text-center"},uA=["innerHTML"],pA={class:"ml-2"},CA={key:0,class:"d-flex flex-column align-center justify-center"},bA={key:0},yA={class:"photo-app__errors mt-2"},wA={class:"error--text"},BA={key:1,class:"photo-app__file-list"},hA={class:"row"},IA={key:0},EA={key:1},DA={key:2},QA={key:3},kA={class:"photo-app__form-input text-center"},SA={class:"photo-app__controls"},VA={class:"row"},NA={class:"col col-12"},MA=["innerHTML"],vA={key:0,class:"d-flex justify-center col-8 mx-auto"},TA={class:"col"},PA={key:0,class:"col"},OA={key:1,class:"col"},UA=["required","value"],jA=A.defineComponent({__name:"photo-app",props:{modelValue:{type:String,default:""},enableDragDrop:{type:Boolean,default:!0},enableLocalFileUpload:{type:Boolean,default:!0},enableCamera:{type:Boolean,default:!0},enableSwitchCamera:{type:Boolean,default:!1},defaultRearCamera:{type:Boolean,default:!1},enableFileList:{type:Boolean,default:!1},enableTogglePlay:{type:Boolean,default:!1},enableButtonIcons:{type:Boolean,default:!1},enableButtonCaptions:{type:Boolean,default:!1},enableLegacyInput:{type:Boolean,default:!1},enableInstantUpload:{type:Boolean,default:!1},enableAutoSave:{type:Boolean,default:!1},enableMirrorCamera:{type:Boolean,default:!1},enableCropImage:{type:Boolean,default:!0},enableGuide:{type:Boolean,default:!1},enableTitle:{type:Boolean,default:!0},enableReview:{type:Boolean,default:!0},downScaleImages:{type:Boolean,default:!1},guideSrc:{type:String,default:gA},acceptButton:{type:Boolean,default:""},captureCountdown:{type:Number,default:3},backgroundColor:{type:String,default:""},color:{type:String,default:""},i18n:{},messages:{default:()=>({})},apiEndpoint:{type:String,default:""},apiEndpointSuffix:{type:String,default:""},required:{type:Boolean,default:!1},variant:{type:String,default:"light"},maxFileSize:{type:Number,default:1024*1024},fixedResolution:{type:Number,default:1024},ratio:{type:String,default:"3x4"},enableAudio:{type:Boolean,default:!1},enableSelectDevice:{type:Boolean,default:!1},enableProcessImage:{type:Boolean,default:!1},processImage:null,filter:String,tint:Object,resolutions:Object,zoom:Number,enableZoomSlider:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(e,{emit:s}){const{tm:o}=aA.useI18n(),i=A.getCurrentInstance(),d=i&&i.appContext.config.globalProperties.$config,l=e,m=s,c=A.computed(()=>d.baseMediaPath),y=A.computed(()=>n.value&&n.value.length&&n.value.filter(r=>r.response&&Object.keys(r.response).length).length===n.value.length),B=A.computed(()=>{const r=n.value.find(p=>p.response&&p.response.path);return r&&r.response.path}),E=A.computed(()=>B.value?`${c.value}${B.value}`:""),f=A.computed(()=>({...l.i18n?l.i18n.messages:{},...l.messages}));A.computed(()=>!!(n.value&&n.value.length));const b=A.computed(()=>n.value.length?f.value.reviewTitle:f.value.captureTitle),n=A.ref([]),u=A.ref(),D=A.ref(),g=A.ref(),U=A.ref(!1),Q=A.ref(!1),H=A.ref(),k=A.ref(),v=A.ref(!1),z=A.ref("");A.watch(H,async(r,p)=>{if(r){const w=r.blob&&r.blob.type.split("/")[1],I=new File([r.blob],`${r.id}.${w}`),N=await cA(I),O=await W(I),j=await dA(O,N),P=await(await fetch(j)).blob();n.value.push(new File([P],`${r.id}.${w}`,{type:P.type})),v.value=!1,X()}},{deep:!0}),A.watch(n,async(r,p)=>{if(l.enableInstantUpload)r.find(w=>!w.response.path)&&(u.value.active=!0);else{const w=await Promise.all(r.map(async I=>{let N=await W(I);l.downScaleImages&&Number(l.maxFileSize)&&I.size>Number(l.maxFileSize)&&(N=await rA(N,800,800));const O=l.ratio.split("x");return await AA(N,Number(O[0])/Number(O[1]))}));k.value=w[0]}},{deep:!0}),A.watch(y,async(r,p)=>{r&&!p&&(k.value=l.enableInstantUpload?B.value:await AA(E.value))},{deep:!0}),A.watch(k,async(r,p)=>{l.enableAutoSave&&k!==p&&_()});function G(){k.value="",n.value=[],v.value=!1}function X(){Q.value=!1}function F(){G(),Q.value=!Q.value}async function K(r){if(!l.filter){n.value=r;return}const{applyFilterToImageBlob:p}=h.useCameraFilter({...l,tintColor:l.tint?.color,tintIntensity:l.tint?.intensity}),w=await Promise.all((r||[]).map(async I=>{const N=I?.file instanceof File?I.file:I instanceof File?I:null;if(!N)return I;const O=await W(N),j=await p(O),T=new File([j],N.name,{type:j.type||N.type,lastModified:N.lastModified});if(I?.file instanceof File){const P=window.URL||window.webkitURL;return{...I,file:T,size:T.size,type:T.type,name:T.name,blob:P&&P.createObjectURL?P.createObjectURL(T):I.blob}}return T}));n.value=w}const _=(async()=>{v.value=!0,l.enableProcessImage&&l.processImage&&(k.value=await l.processImage.reduce(async(r,p)=>{const w=await r;return await q(w,p)},Promise.resolve(k.value))),m("update:modelValue",k.value)}),q=(async(r,p)=>`${await eA.processImage(`${p.endpoint}${p.search?`?${p.search}`:""}`,{...p.body,dataUrl:r,resolution:l.fixedResolution},p.basePath)}`);function $(){v.value=!0,D.value?.onCapture()}return A.onMounted(()=>{["dragenter","dragover"].forEach(r=>{document.body.addEventListener(r,p=>{p.preventDefault(),U.value=!0},!1)}),["dragleave","drop"].forEach(r=>{g.value.addEventListener(r,p=>{p.preventDefault(),U.value=!1},!1)}),["drop"].forEach(r=>{g.value.addEventListener(r,p=>{p.preventDefault(),U.value=!1;const w=p.dataTransfer;(w&&Array.from(w.files||[]))?.forEach(N=>{n.value.push(N)})},!1)})}),(r,p)=>(A.openBlock(),A.createElementBlock("div",{class:A.normalizeClass(["photo-app",e.variant==="dark"&&"theme--dark"])},[e.enableCamera?(A.openBlock(),A.createElementBlock("div",{key:0,class:"photo-app__canvas media-container",style:A.normalizeStyle({color:e.color,backgroundColor:e.backgroundColor})},[Q.value?(A.openBlock(),A.createElementBlock("div",{key:0,class:A.normalizeClass(["photo-app__camera",`${e.ratio?`aspect-ratio--${e.ratio}`:""}`]),style:A.normalizeStyle({borderColor:e.color})},[A.createVNode(A.unref(h.BaseCamera),{ref_key:"camera",ref:D,modelValue:H.value,"onUpdate:modelValue":p[0]||(p[0]=w=>H.value=w),"enable-toggle-play":e.enableTogglePlay,countdown:e.captureCountdown,"enable-mirror-camera":e.enableMirrorCamera,"enable-switch-camera":e.enableSwitchCamera,"default-rear-camera":e.defaultRearCamera,"enable-guide":e.enableGuide,"guide-src":e.guideSrc,"fixed-resolution":e.fixedResolution,"enable-audio":e.enableAudio,"enable-select-device":e.enableSelectDevice,"enable-crop-image":e.enableCropImage,onOnStopped:F,"text-color":e.color,ratio:e.ratio,resolutions:e.resolutions,filter:e.filter,"tint-color":e.tint?.color,"tint-intensity":e.tint?.intensity,zoom:e.zoom,"enable-zoom-slider":e.enableZoomSlider},null,8,["modelValue","enable-toggle-play","countdown","enable-mirror-camera","enable-switch-camera","default-rear-camera","enable-guide","guide-src","fixed-resolution","enable-audio","enable-select-device","enable-crop-image","text-color","ratio","resolutions","filter","tint-color","tint-intensity","zoom","enable-zoom-slider"])],6)):A.createCommentVNode("",!0),n.value&&n.value.length&&!Q.value?(A.openBlock(),A.createElementBlock("div",{key:1,class:"photo-app__preview",style:A.normalizeStyle({borderColor:e.color})},[k.value?(A.openBlock(),A.createBlock(A.unref(h.BaseImage),{key:0,src:E.value||k.value},null,8,["src"])):A.createCommentVNode("",!0),A.createVNode(A.Transition,{name:"fade",mode:"out-in"},{default:A.withCtx(()=>[v.value?(A.openBlock(),A.createBlock(A.unref(h.LoadingSpinner),{key:0})):A.createCommentVNode("",!0)]),_:1})],4)):Q.value?A.createCommentVNode("",!0):(A.openBlock(),A.createElementBlock("div",{key:2,class:A.normalizeClass(["photo-app__drop-target",`${e.ratio?`aspect-ratio--${e.ratio}`:""}`]),style:A.normalizeStyle({borderColor:e.color})},[A.createElementVNode("div",fA,[A.createElementVNode("div",mA,[A.createElementVNode("p",{class:"headline h2 font-weight-bold",innerHTML:f.value.title||r.$t("fileInput.coverTitle")},null,8,uA),e.enableCamera?(A.openBlock(),A.createBlock(A.unref(h.BaseButton),{key:0,type:"button",onClick:A.withModifiers(F,["prevent"]),style:A.normalizeStyle({color:e.color}),icon:"camera",class:"rounded-pill"},{default:A.withCtx(()=>[A.createVNode(A.unref(h.SvgIcon),{symbol:"camera"}),A.createElementVNode("span",pA,A.toDisplayString(f.value.launchCamera||r.$t("fileInput.coverLaunchCta")),1)]),_:1},8,["style"])):A.createCommentVNode("",!0)]),e.enableLocalFileUpload?(A.openBlock(),A.createElementBlock("div",CA,[A.createElementVNode("p",{class:"subtitle fw-bold ma-0",style:A.normalizeStyle({color:e.color})},A.toDisplayString(f.value.localFileTitle||r.$t("fileInput.coverLocalSelectTitle")),5),A.createElementVNode("p",{class:"text-body-1",style:A.normalizeStyle({color:e.color})},[e.enableDragDrop?(A.openBlock(),A.createElementBlock("span",bA,A.toDisplayString(f.value.dropTarget||r.$t("fileInput.coverDropTarget"))+" "+A.toDisplayString(e.enableLocalFileUpload&&e.enableDragDrop?f.value.or||r.$t("common.or"):"")+" "+A.toDisplayString(),1)):A.createCommentVNode("",!0),A.createElementVNode("label",{for:"fileUpload",role:"button",class:"d-inline link",style:A.normalizeStyle({color:e.color})},A.toDisplayString(f.value.coverSelectFileCta||r.$t("fileInput.coverLocalFileCta")),5)],4)])):A.createCommentVNode("",!0)])],6))],4)):A.createCommentVNode("",!0),A.withDirectives(A.createElementVNode("div",{class:"photo-app__drop-overlay",ref_key:"dropArea",ref:g},[A.createElementVNode("h3",null,A.toDisplayString(f.value.dropTarget||r.$t("fileInput.dropTargetLabel")),1)],512),[[A.vShow,e.enableLocalFileUpload&&e.enableDragDrop&&U.value]]),A.withDirectives(A.createElementVNode("div",yA,[A.createElementVNode("p",wA,A.toDisplayString(z.value),1)],512),[[A.vShow,z.value]]),e.enableFileList&&n.value.length?(A.openBlock(),A.createElementBlock("div",BA,[A.createElementVNode("div",hA,[(A.openBlock(!0),A.createElementBlock(A.Fragment,null,A.renderList(n.value,w=>(A.openBlock(),A.createElementBlock("div",{key:w.id,class:"col col-12"},[A.createElementVNode("span",null,A.toDisplayString(w.name),1),p[2]||(p[2]=A.createTextVNode(" - ",-1)),A.createElementVNode("span",null,A.toDisplayString(w.size),1),p[3]||(p[3]=A.createTextVNode(" - ",-1)),w.error?(A.openBlock(),A.createElementBlock("span",IA,A.toDisplayString(w.error),1)):w.success?(A.openBlock(),A.createElementBlock("span",EA,A.toDisplayString(r.$t("common.success")),1)):w.active?(A.openBlock(),A.createElementBlock("span",DA,A.toDisplayString(r.$t("common.active")),1)):(A.openBlock(),A.createElementBlock("span",QA))]))),128))])])):A.createCommentVNode("",!0),A.withDirectives(A.createElementVNode("div",kA,[A.createElementVNode("div",SA,[A.createElementVNode("div",VA,[A.createElementVNode("div",NA,[A.renderSlot(r.$slots,"headline",{},()=>[e.enableTitle&&(Q.value||n.value.length)?(A.openBlock(),A.createElementBlock("p",{key:0,class:"headline",innerHTML:b.value},null,8,MA)):A.createCommentVNode("",!0)]),!e.enableLegacyInput&&(Q.value||n.value.length)?(A.openBlock(),A.createElementBlock("div",vA,[A.createElementVNode("div",TA,[Q.value||n.value.length&&(!u.value||!u.value.active)?(A.openBlock(),A.createBlock(A.unref(h.BaseButton),{key:0,type:"button",class:A.normalizeClass(["btn btn-primary-outline rounded-circle",`theme--${e.variant}`]),onClick:p[1]||(p[1]=A.withModifiers(w=>Q.value?F():G(),["prevent"]))},{default:A.withCtx(()=>[A.createVNode(A.unref(h.SvgIcon),{symbol:"x","base-path":A.unref(d).iconSprite,class:"primary"},null,8,["base-path"]),A.createTextVNode(" "+A.toDisplayString(e.enableButtonCaptions?f.value.cancel||r.$t("fileInput.cancel"):""),1)]),_:1},8,["class"])):A.createCommentVNode("",!0)]),Q.value?(A.openBlock(),A.createElementBlock("div",PA,[A.createVNode(A.unref(h.BaseButton),{type:"button",class:A.normalizeClass(["btn btn-primary rounded-circle",`theme--${e.variant}`]),onClick:A.withModifiers($,["prevent"]),disabled:v.value},{default:A.withCtx(()=>[A.createVNode(A.unref(h.SvgIcon),{symbol:"camera","base-path":A.unref(d).iconSprite},null,8,["base-path"]),A.createTextVNode(" "+A.toDisplayString(e.enableButtonCaptions?f.value.shoot||r.$t("fileInput.shoot"):""),1)]),_:1},8,["class","disabled"])])):e.enableReview?(A.openBlock(),A.createElementBlock("div",OA,[A.createVNode(A.unref(h.BaseButton),{type:"button",class:A.normalizeClass(["btn btn-primary rounded-circle",{[`theme--${e.variant}`]:e.variant,"btn-success":v.value}]),onClick:A.withModifiers(_,["prevent"]),disabled:v.value},{default:A.withCtx(()=>[A.createVNode(A.unref(h.SvgIcon),{symbol:"check"}),A.createTextVNode(" "+A.toDisplayString(e.enableButtonCaptions?f.value.accept||r.$t("common.accept"):""),1)]),_:1},8,["class","disabled"])])):A.createCommentVNode("",!0)])):A.createCommentVNode("",!0),A.withDirectives(A.createElementVNode("div",{class:A.normalizeClass(["justify-center col-10 mx-auto",{"d-flex":e.enableLegacyInput&&(Q.value||n.value.length)}])},[A.createElementVNode("button",{type:"button",class:A.normalizeClass(["btn btn-primary",`theme--${e.variant}`]),onClick:A.withModifiers(F,["prevent"])},[e.enableButtonIcons?(A.openBlock(),A.createBlock(A.unref(h.SvgIcon),{key:0,symbol:"camera"})):A.createCommentVNode("",!0),A.createTextVNode(" "+A.toDisplayString(e.enableButtonCaptions?Q.value?f.value.cancel||r.$t("common.cancel"):f.value.camera||r.$t("fileInput.selectCameraCta"):""),1)],2),Q.value&&(!r.$refs.upload||u.value.active)?(A.openBlock(),A.createBlock(A.unref(h.BaseButton),{key:0,type:"button",class:A.normalizeClass(["btn btn-primary",`theme--${e.variant}`]),onClick:A.withModifiers($,["prevent"]),disabled:v.value},{default:A.withCtx(()=>[e.enableButtonIcons?(A.openBlock(),A.createBlock(A.unref(h.SvgIcon),{key:0,symbol:"camera"})):A.createCommentVNode("",!0),A.createTextVNode(" "+A.toDisplayString(e.enableButtonCaptions?f.value.shoot||r.$t("fileInput.shoot"):""),1)]),_:1},8,["class","disabled"])):A.createCommentVNode("",!0),A.createVNode(A.unref(h.InputFile),{ref_key:"upload",ref:u,"model-value":n.value,id:"fileUpload","onUpdate:modelValue":K,name:"fileUpload"},{default:A.withCtx(()=>[A.renderSlot(r.$slots,"label",{},()=>[A.createElementVNode("label",{for:"fileUpload",type:"button",class:A.normalizeClass(["btn btn-primary",`theme--${e.variant}`])},[e.enableButtonIcons?(A.openBlock(),A.createBlock(A.unref(h.SvgIcon),{key:0,symbol:"camera"})):A.createCommentVNode("",!0)],2)])]),_:3},8,["model-value"])],2),[[A.vShow,e.enableLegacyInput&&(Q.value||n.value.length)]]),e.required?(A.openBlock(),A.createElementBlock("input",{key:1,ref:"hiddenInput",required:e.required,value:k.value,style:{display:"none"}},null,8,UA)):A.createCommentVNode("",!0)])])])],512),[[A.vShow,Q.value||n.value.length]])],2))}});function R(e){return new Promise((s,o)=>{e.oncomplete=e.onsuccess=()=>s(e.result),e.onabort=e.onerror=()=>o(e.error)})}function LA(e,s){const o=indexedDB.open(e);o.onupgradeneeded=()=>o.result.createObjectStore(s);const i=R(o);return(d,l)=>i.then(m=>l(m.transaction(s,d).objectStore(s)))}let J;function Z(){return J||(J=LA("keyval-store","keyval")),J}function FA(e,s=Z()){return s("readonly",o=>R(o.get(e)))}function HA(e,s,o=Z()){return o("readwrite",i=>(i.put(s,e),R(i.transaction)))}function zA(e,s=Z()){return s("readwrite",o=>(o.delete(e),R(o.transaction)))}const xA="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23ffffffCC'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20class='feather%20feather-rotate-cw'%3e%3cpolyline%20points='23%204%2023%2010%2017%2010'%3e%3c/polyline%3e%3cpath%20d='M20.49%2015a9%209%200%201%201-2.12-9.36L23%2010'%3e%3c/path%3e%3c/svg%3e",YA="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23ffffffCC'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%20class='feather%20feather-x-circle'%3e%3ccircle%20cx='12'%20cy='12'%20r='10'%20fill='none'%3e%3c/circle%3e%3cline%20x1='15'%20y1='9'%20x2='9'%20y2='15'%20fill='none'%3e%3c/line%3e%3cline%20x1='9'%20y1='9'%20x2='15'%20y2='15'%20fill='none'%3e%3c/line%3e%3c/svg%3e",RA={class:"fabric-canvas__canvas"},GA={id:"fabricCanvas",ref:"canvasRef"},tA=A.defineComponent({__name:"fabric-canvas",props:{modelValue:{type:String,default:""},jsonModel:{type:null,default:void 0},exportToSvg:{type:Boolean,default:!1},resetState:{type:Boolean,default:!1},options:{type:Object,default:()=>({})},feature:{type:String,default:""},required:{type:Boolean,default:!1},pending:{type:Boolean,default:!1},emitPending:{type:Boolean,default:!1},animationDuration:{type:Number,default:0}},emits:["update:modelValue","update:jsonModel","update:pending","on-ready"],setup(e,{expose:s,emit:o}){let i,d,l,m,c,y,B,E;const f=o;s({setBackgroundImage:G,setOverlayImage:F,addCanvasObject:K});const b=e,n=A.ref(),u=A.ref(0),D=A.ref(0);let g,U=!1;const Q=A.ref();async function H(t,a){return new Promise(async C=>{const S=JSON.parse(a);if(S.backgroundImage){const V=await k(S.backgroundImage.src||S.backgroundImage.filename);V.set({opacity:1}),t.backgroundImage=V,t.centerObject(V)}if(S.overlayImage){const V=await k(S.overlayImage.src||S.overlayImage.filename);V.set({opacity:1,left:u.value/2,top:D.value/2,scaleX:u.value/V.width,scaleY:D.value/V.height}),t.overlayImage=V}(await m.enlivenObjects(S.objects,{reviver:void 0})).forEach(V=>{t.add(V)}),C(t)})}async function k(t){const a=await T(t);t.includes("data:image")||(a.filename=t);const C=m.findScaleToCover(a,g),S=a instanceof d;return a.set({left:0,top:0,opacity:S&&b.animationDuration>0?0:1,scaleX:C,scaleY:C,src:t}),a}async function v(t){!(t instanceof d)||b.animationDuration===0||(b.emitPending&&f("update:pending",!0),await new Promise(C=>{const S=b.animationDuration,x=Date.now(),V=()=>{const Y=Date.now()-x,L=Math.min(Y/S,1);t.set("opacity",L),g.renderAll(),L<1?requestAnimationFrame(V):(b.emitPending&&f("update:pending",!1),C())};requestAnimationFrame(V)}))}function z(t){const a=m.findScaleToCover(t,g);return t.set({scaleX:a,scaleY:a}),t}async function G(t){const a=await k(t.src);g.backgroundImage=a,g.centerObject(a),g.renderAll(),await v(a),I()}async function X(t){const a=await k(t.src);a.selectable=!1,a.assetType="foreground",g.add(a),g.centerObject(a),g.renderAll(),await v(a),I()}async function F(t){const a=await k(t.src);a.set({left:u.value/2,top:D.value/2,scaleX:u.value/a.width,scaleY:D.value/a.height}),g.overlayImage=a,g.renderAll(),await v(a),I()}async function K(t){g.discardActiveObject();const a=await T(t.src);a.filename=t.src;const C=u.value/3,S=D.value/3,x=C/a.width,V=S/a.height,Y=Math.min(x,V);a.set({scaleX:Y,scaleY:Y,left:u.value/2,top:D.value/2}),a.id=t.id,a.padding=8,g.add(a),g.setActiveObject(a),await v(a),g.renderAll()}function _(t,a){a.target.id;const C=a.target;return g.remove(C),g.requestRenderAll(),!0}function q(){if(u.value=n.value.offsetWidth,D.value=n.value.offsetHeight,g.setDimensions({width:u.value,height:D.value}),g.backgroundImage&&(g.backgroundImage=z(g.backgroundImage),g.centerObject(g.backgroundImage)),g.overlayImage){const t=g.overlayImage;t.set({scaleX:u.value/t.width,scaleY:D.value/t.height})}g.getObjects().forEach(t=>{t.assetType==="foreground"&&(t=z(t),g.centerObject(t))}),g.renderAll()}const $=oA.debounce(()=>{q()},200,{trailing:!0,leading:!1});function r(t){return(a,C,S,x,V)=>{a.save(),a.translate(C,S),a.rotate(m.degreesToRadians(V.angle)),a.fillStyle=b.options.themeData?.colors?.primary,a.fillRect(-24/2,-24/2,24,24);const L=20;a.drawImage(t,-L/2,-L/2,L,L),a.restore()}}function p(){const t=document.createElement("img");t.src=xA;const a=document.createElement("img");a.src=YA,g.on("object:added",C=>{C.target&&C.target.controls&&(C.target.set({transparentCorners:!1,cornerSize:16,cornerStyle:"circle",...b.options.themeData?.colors?.primary?{cornerColor:b.options.themeData?.colors?.primary,cornerStrokeColor:b.options.themeData?.colors?.primary,borderColor:b.options.themeData?.colors?.primary}:{}}),C.target.controls.ml.visible=!1,C.target.controls.mr.visible=!1,C.target.controls.mb.visible=!1,C.target.controls.mt.visible=!1,C.target.controls.mtr.visible=!1,C.target.controls.rotate=new l({x:.5,y:-.5,offsetX:32,offsetY:0,cursorStyle:"pointer",actionName:"rotate",actionHandler:E.rotationWithSnapping,cursorStyleHandler:E.rotationStyleHandler,render:r(t)}),C.target.controls.delete=new l({x:.5,y:-.5,offsetX:32,offsetY:32,cursorStyle:"pointer",mouseUpHandler:_,render:r(a)}))})}async function w(){return await new Promise(t=>{setTimeout(()=>{const a=b.exportToSvg?g.toSVG():g.toDataURL({multiplier:2});t(a)},200)})}function I(){setTimeout(async()=>{const t=g.toDatalessJSON(["selectable","assetType","filename"]);await HA("fabric-canvas",JSON.stringify(t));let a=!0;if(b.required)switch(a=!1,b.feature){case"overlay":t.overlayImage&&(a=!0);break;case"background":t.backgroundImage&&(a=!0);break;case"stickers":t.objects.length>1&&(a=!0);break;default:(t.objects.length>1||t.backgroundImage||t.overlayImage)&&(a=!0)}if(a){U=!0;const C=await w();f("update:modelValue",C),f("update:jsonModel",t)}},120)}async function N(t){try{return await d.fromURL(t)}catch(a){throw console.error("Error loading image:",a),a}}async function O(t){const{objects:a,options:C}=await c(t);return m.groupSVGElements(a,C)}async function j(t){const{objects:a,options:C}=await y(t);return m.groupSVGElements(a,C)}async function T(t){return t&&typeof t=="string"&&t.trim().startsWith("<")?await j(t):t&&new RegExp(/([\w_/-]*\.svg$)|(image\/svg\+xml)/gi).test(t)?await O(t):await N(t)}async function P(t,a){t&&!a&&!U&&X({src:t})}return A.watch(()=>b.modelValue,async(t,a)=>{P(t,a)}),A.onMounted(async()=>{({Canvas:i,FabricImage:d,Control:l,util:m,loadSVGFromURL:c,loadSVGFromString:y,config:B,controlsUtils:E}=await import("fabric")),u.value=n.value.offsetWidth,D.value=n.value.offsetHeight,window.addEventListener("resize",$),B.NUM_FRACTION_DIGITS=8;const t=i.prototype._onTouchStart;i.prototype._onTouchStart=function(a){const C=this.findTarget(a);this.allowTouchScrolling&&C.assetType&&!this.isDrawingMode||t.call(this,a)},g=new i("fabricCanvas",{width:u.value,height:D.value,skipOffscreen:!0,allowTouchScrolling:!0}),b.resetState&&await zA("fabric-canvas"),Q.value=await FA("fabric-canvas"),Q.value?(await H(g,Q.value),g.requestRenderAll(),requestAnimationFrame(()=>{g.renderAll()})):b.modelValue&&P(b.modelValue,""),g.on("object:added",I),g.on("object:removed",I),g.on("object:modified",I),p(),g.renderAll(),f("on-ready",g)}),(t,a)=>(A.openBlock(),A.createElementBlock("div",{class:"fabric-canvas",ref_key:"root",ref:n},[A.createElementVNode("div",RA,[A.createElementVNode("canvas",GA,null,512)]),A.renderSlot(t.$slots,"default")],512))}}),_A={class:"creative-booth"},$A={class:"media-container"},WA=["innerHTML"],JA={class:"creative-booth__thumbnails"},ZA=[{type:"background",thumbnail:"/themes/corp/backgrounds/corporate-your-background-1024x1024.jpg",src:"/themes/corp/backgrounds/corporate-your-background-1024x1024.jpg",mediaType:"image",filters:["asset-01","asset-02"]},{type:"background",thumbnail:"/themes/corp/backgrounds/corp-background-09-white.jpg",src:"/themes/corp/backgrounds/corp-background-09-white.jpg",mediaType:"image",filters:["asset-01","asset-02"]},{type:"overlay",src:"/themes/corp/overlays/corporate-your-overlay-1024x1024.png",mediaType:"image",filters:["asset-01"]},{type:"overlay",src:"/themes/corp/overlays/corp-overlay-02-white.png",mediaType:"image",filters:["asset-01"]},{type:"object",src:"/themes/corp/stickers/corporate-your-sticker-512x512.svg",mediaType:"svg",filters:["asset-02"]},{type:"object",src:"/themes/corp/stickers/corp-sticker-01.svg",mediaType:"svg"},{type:"object",src:"/themes/corp/stickers/corp-sticker-02.svg",mediaType:"svg",filters:["asset-01","asset-02"]}],XA=A.defineComponent({__name:"creative-booth",props:{modelValue:{default:null},jsonModel:{type:null,default:void 0},config:{type:Object,default:null},feature:{type:String,default:""},required:{type:Boolean,default:!1},variant:{type:String,default:"light"},messages:{type:Object,default:{}},assets:{type:Array,default:()=>ZA},assetFilters:{type:Array,default:()=>[]},exportToSvg:{type:Boolean,default:!1},resetState:{type:Boolean,default:!1},ratio:{type:String,default:"4x3"},themeData:{type:Object,default:()=>({})},autoSelect:Number,ready:{type:Boolean,default:!1},pending:{type:Boolean,default:!1},emitPending:{type:Boolean,default:!1},animationDuration:{type:Number,default:320}},emits:["update:modelValue","update:jsonModel","update:ready","update:pending"],setup(e,{emit:s}){const o=e,i=s,d=A.ref(),l=A.ref(),m=A.ref(!1),c=A.computed(()=>o.assetFilters&&o.assetFilters.length>0?o.assets.filter(n=>!n.filters||n.filters.length==0||o.assetFilters.some(u=>n.filters.includes(u))):o.assets),y=A.computed({get(){return o.modelValue},set(n){i("update:modelValue",n)}}),B=A.computed({get(){return o.jsonModel},set(n){i("update:jsonModel",n)}}),E=A.computed({get(){return o.pending},set(n){o.ready&&i("update:pending",n)}});A.watch(l,async(n,u)=>{n&&n!==u&&i("update:modelValue",n)},{deep:!0});function f(n){if(typeof n<"u"){const u=c.value[n];switch(u.type){case"background":d.value?.setBackgroundImage(u);break;case"overlay":d.value.setOverlayImage(u);break;default:d.value.addCanvasObject(u)}}}const b=(async()=>{if(m.value=!0,o.autoSelect!==void 0){const n=o.autoSelect>=0?o.autoSelect:Math.floor(Math.random()*c.value.length);f(n)}i("update:ready",!0)});return(n,u)=>(A.openBlock(),A.createElementBlock("div",_A,[A.createElementVNode("div",$A,[A.createVNode(tA,{modelValue:y.value,"onUpdate:modelValue":u[0]||(u[0]=D=>y.value=D),"json-model":B.value,"onUpdate:jsonModel":u[1]||(u[1]=D=>B.value=D),pending:E.value,"onUpdate:pending":u[2]||(u[2]=D=>E.value=D),ref_key:"canvas",ref:d,"reset-state":e.resetState,options:{themeData:e.themeData},feature:e.feature,required:e.required,class:A.normalizeClass(`${e.ratio?`aspect-ratio aspect-ratio--${e.ratio}`:""}`),onOnReady:b,"emit-pending":e.emitPending,"animation-duration":e.animationDuration},null,8,["modelValue","json-model","pending","reset-state","options","feature","required","class","emit-pending","animation-duration"])]),e.messages.headline?(A.openBlock(),A.createElementBlock("p",{key:0,class:"headline",innerHTML:e.messages.headline},null,8,WA)):A.createCommentVNode("",!0),A.createElementVNode("div",JA,[m.value?(A.openBlock(),A.createBlock(A.unref(h.MediaThumbnails),{key:0,assets:c.value,onSelect:f},null,8,["assets"])):A.createCommentVNode("",!0)])]))}}),KA={class:"face-swap"},qA={class:"position-relative"},Ae=["innerHTML"],ee={class:"face-swap__thumbnails"},te=[{type:"target",thumbnail:"/faceswap/robotroll._avengers_black_widow_fbe3e886-525d-4c8b-b46c-b32856fae2bf.png",src:"/faceswap/robotroll._avengers_black_widow_fbe3e886-525d-4c8b-b46c-b32856fae2bf.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._batmans_joker_04afa7d0-430d-43f2-a7ce-815c6875a793.png",src:"/faceswap/robotroll._batmans_joker_04afa7d0-430d-43f2-a7ce-815c6875a793.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._catwoman_922f1bfa-9197-4e9a-aaeb-bce5d413a9b9.png",src:"/faceswap/robotroll._catwoman_922f1bfa-9197-4e9a-aaeb-bce5d413a9b9.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._christian_bale_as_american_psycho_abe2d5ab-58e8-4f21-94f9-b2b117af3d89.png",src:"/faceswap/robotroll._christian_bale_as_american_psycho_abe2d5ab-58e8-4f21-94f9-b2b117af3d89.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._dirty_harry_7ce45595-edba-4ef8-a513-39b179d94f57.png",src:"/faceswap/robotroll._dirty_harry_7ce45595-edba-4ef8-a513-39b179d94f57.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._evil_santa_claus_pointing_a_double_barrel_shotgun_at_bf603686-4980-449b-ad88-e8f362850aab.png",src:"/faceswap/robotroll._evil_santa_claus_pointing_a_double_barrel_shotgun_at_bf603686-4980-449b-ad88-e8f362850aab.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._homer_simpson_as_real_person_b14628bf-5a5a-45fe-b35a-e56960de4ad4.png",src:"/faceswap/robotroll._homer_simpson_as_real_person_b14628bf-5a5a-45fe-b35a-e56960de4ad4.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._james_bond_caa0af54-16b2-4d15-9e4d-45cc395c021b.png",src:"/faceswap/robotroll._james_bond_caa0af54-16b2-4d15-9e4d-45cc395c021b.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._neil_gaimans_sandman_d3ca51cd-2ef8-46d5-b1db-1474789783a4.png",src:"/faceswap/robotroll._neil_gaimans_sandman_d3ca51cd-2ef8-46d5-b1db-1474789783a4.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._pennywise_3f4c5997-9fd2-43e0-ab9b-17384fb58da9.png",src:"/faceswap/robotroll._pennywise_3f4c5997-9fd2-43e0-ab9b-17384fb58da9.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._queen_of_hearts_8de84ac6-3f61-4981-ac92-c63d90d63890.png",src:"/faceswap/robotroll._queen_of_hearts_8de84ac6-3f61-4981-ac92-c63d90d63890.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._red_dead_redemptions_arthur_morgan_portrait_36f8a066-6c2b-4a23-9c5e-a2a3964b0d3b.png",src:"/faceswap/robotroll._red_dead_redemptions_arthur_morgan_portrait_36f8a066-6c2b-4a23-9c5e-a2a3964b0d3b.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._thanos_38adb80e-08ac-49d4-95e0-d4d11cb5a11d.png",src:"/faceswap/robotroll._thanos_38adb80e-08ac-49d4-95e0-d4d11cb5a11d.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._the_godfather_062db832-61ce-4d18-a09d-045cadd4e281.png",src:"/faceswap/robotroll._the_godfather_062db832-61ce-4d18-a09d-045cadd4e281.png",mediaType:"image",filters:[]},{type:"target",thumbnail:"/faceswap/robotroll._wolverine_3f9cece6-e490-4be8-a5f9-d6e6abf0440f.png",src:"/faceswap/robotroll._wolverine_3f9cece6-e490-4be8-a5f9-d6e6abf0440f.png",mediaType:"image",filters:[]}],ae=A.defineComponent({__name:"face-swap",props:{modelValue:{default:null},config:{type:Object,default:null},variant:{type:String,default:"light"},messages:{type:Object,default:{}},assets:{type:Array,default:()=>te},resetState:{type:Boolean,default:!1},ratio:{type:String,default:"4x3"},endpoint:{type:String,default:"/faceswap-json"},autoSelect:Number},emits:["update:modelValue"],setup(e,{emit:s}){const o=e,i=s,d=A.ref(),l=A.ref(),m=A.ref(),c=A.ref(!1);A.computed({get(){return o.modelValue},set(f){i("update:modelValue",f)}});const y=A.computed(()=>m.value||d.value&&d.value.src||l.value);A.watch(m,async(f,b)=>{f&&f!==b&&i("update:modelValue",f)},{deep:!0});function B(f){if(typeof f<"u"){const b=o.assets[f];d.value=b,m.value=null}}async function E(){const f=await lA(d.value.src),n={dataUrl:o.modelValue,targetDataUrl:f};c.value=!0;const u=eA;m.value=await u.processImage(o.endpoint,n,""),c.value=!1}return A.onBeforeMount(()=>{l.value=o.modelValue}),(f,b)=>(A.openBlock(),A.createElementBlock("div",KA,[A.createElementVNode("div",qA,[A.createElementVNode("div",{class:A.normalizeClass(["media-container",`${e.ratio?`ratio ratio-${e.ratio}`:""}`])},[A.createVNode(A.Transition,{name:"fade",mode:"out-in"},{default:A.withCtx(()=>[(A.openBlock(),A.createElementBlock("div",{key:y.value},[A.createVNode(A.unref(h.BaseImage),{src:y.value},null,8,["src"])]))]),_:1})],2),d.value?(A.openBlock(),A.createElementBlock("button",{key:0,type:"button",class:"btn face-swap__swap-face",onClick:E},[l.value&&!m.value&&!c.value?(A.openBlock(),A.createBlock(A.unref(h.BaseImage),{key:0,src:l.value,class:"img-thumbnail"},null,8,["src"])):A.createCommentVNode("",!0)])):A.createCommentVNode("",!0),c.value?(A.openBlock(),A.createBlock(A.unref(h.LoadingSpinner),{key:1})):A.createCommentVNode("",!0)]),e.messages.headline?(A.openBlock(),A.createElementBlock("p",{key:0,class:"headline",innerHTML:e.messages.headline},null,8,Ae)):A.createCommentVNode("",!0),A.createElementVNode("div",ee,[A.createVNode(A.unref(h.MediaThumbnails),{assets:e.assets,onSelect:B},null,8,["assets"])])]))}}),oe=["innerHTML"],le=A.defineComponent({__name:"svg-canvas",props:{modelValue:{default:'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/>',type:String},scale:{type:Number,default:1},fillColor:String,groupedFill:Boolean},emits:["update:modelValue"],setup(e,{emit:s}){const o=e,i=s,d=A.ref();function l(m){const c=m.target;if(!c.closest(".read-only")){if(o.groupedFill&&o.fillColor){const b=c.closest("[data-group-class]").dataset.groupClass,n=c.closest("svg")?.querySelectorAll(`.${b}`);n&&Array.from(n).forEach(u=>{u.setAttribute("fill",o.fillColor),u.setAttribute("fill-opacity","1")})}else o.fillColor&&(c.setAttribute("fill",o.fillColor),c.setAttribute("fill-opacity","1"));const E=c.closest(".svg-canvas").querySelector("svg").outerHTML;i("update:modelValue",E)}}return(m,c)=>(A.openBlock(),A.createElementBlock("div",{class:A.normalizeClass(["svg-canvas",`${e.scale>1?"overflow-scroll":""}`])},[A.createElementVNode("div",{ref_key:"svg",ref:d,class:"svg-wrapper",innerHTML:e.modelValue,style:A.normalizeStyle({transform:`scale(${e.scale})`}),onClick:c[0]||(c[0]=y=>l(y))},null,12,oe)],2))}}),ne={class:"svg-editor"},re={class:"svg-editor__frame"},se=A.defineComponent({__name:"color-booth",props:{modelValue:String,name:String,src:String,required:Boolean,colors:Array,groupedFill:Boolean},emits:["update:modelValue"],setup(e,{emit:s}){const o=e,i=s,d=A.ref(""),l=A.ref(1),m=A.computed({get(){return o.modelValue},set(c){i("update:modelValue",c)}});return A.onBeforeMount(()=>{d.value=o.colors?.length?o.colors[0]:""}),(c,y)=>(A.openBlock(),A.createElementBlock("div",ne,[A.createElementVNode("div",re,[A.createVNode(A.unref(h.TouchWrapper),{modelValue:l.value,"onUpdate:modelValue":y[1]||(y[1]=B=>l.value=B)},{default:A.withCtx(()=>[A.createVNode(le,{modelValue:m.value,"onUpdate:modelValue":y[0]||(y[0]=B=>m.value=B),fillColor:d.value,scale:l.value,"grouped-fill":e.groupedFill},null,8,["modelValue","fillColor","scale","grouped-fill"])]),_:1},8,["modelValue"]),A.createVNode(A.unref(h.ColorPalette),{modelValue:d.value,"onUpdate:modelValue":y[2]||(y[2]=B=>d.value=B),colors:e.colors,class:"mt-2"},null,8,["modelValue","colors"])])]))}});M.ColorBooth=se,M.CreativeBooth=XA,M.FabricCanvas=tA,M.FaceSwap=ae,M.PhotoApp=jA,Object.defineProperty(M,Symbol.toStringTag,{value:"Module"})}));
|