ablok-photobooth 0.2.33 → 0.2.35
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 +26 -26
- package/dist/ablok-photobooth.umd.js +1 -1
- package/package.json +17 -17
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as AA, getCurrentInstance as QA, computed 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
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";
|
|
@@ -331,21 +331,21 @@ const DA = {
|
|
|
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 =
|
|
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
343
|
X(eA, async (n, p) => {
|
|
344
344
|
if (n) {
|
|
345
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
350
|
}, { deep: !0 }), X(l, async (n, p) => {
|
|
351
351
|
if (o.enableInstantUpload)
|
|
@@ -365,7 +365,7 @@ const DA = {
|
|
|
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) => {
|
|
@@ -493,7 +493,7 @@ const DA = {
|
|
|
493
493
|
mode: "out-in"
|
|
494
494
|
}, {
|
|
495
495
|
default: _(() => [
|
|
496
|
-
|
|
496
|
+
F.value ? (f(), R(B(BA), { key: 0 })) : E("", !0)
|
|
497
497
|
]),
|
|
498
498
|
_: 1
|
|
499
499
|
})
|
|
@@ -607,7 +607,7 @@ const DA = {
|
|
|
607
607
|
type: "button",
|
|
608
608
|
class: Y(["btn btn-primary rounded-circle", `theme--${A.variant}`]),
|
|
609
609
|
onClick: q(sA, ["prevent"]),
|
|
610
|
-
disabled:
|
|
610
|
+
disabled: F.value
|
|
611
611
|
}, {
|
|
612
612
|
default: _(() => [
|
|
613
613
|
L(B(Z), {
|
|
@@ -623,10 +623,10 @@ const DA = {
|
|
|
623
623
|
type: "button",
|
|
624
624
|
class: Y(["btn btn-primary rounded-circle", {
|
|
625
625
|
[`theme--${A.variant}`]: A.variant,
|
|
626
|
-
"btn-success":
|
|
626
|
+
"btn-success": F.value
|
|
627
627
|
}]),
|
|
628
628
|
onClick: q(rA, ["prevent"]),
|
|
629
|
-
disabled:
|
|
629
|
+
disabled: F.value
|
|
630
630
|
}, {
|
|
631
631
|
default: _(() => [
|
|
632
632
|
L(B(Z), { symbol: "check" }),
|
|
@@ -657,7 +657,7 @@ const DA = {
|
|
|
657
657
|
type: "button",
|
|
658
658
|
class: Y(["btn btn-primary", `theme--${A.variant}`]),
|
|
659
659
|
onClick: q(sA, ["prevent"]),
|
|
660
|
-
disabled:
|
|
660
|
+
disabled: F.value
|
|
661
661
|
}, {
|
|
662
662
|
default: _(() => [
|
|
663
663
|
A.enableButtonIcons ? (f(), R(B(Z), {
|
|
@@ -831,7 +831,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
831
831
|
src: e
|
|
832
832
|
}), t;
|
|
833
833
|
}
|
|
834
|
-
async function
|
|
834
|
+
async function F(e) {
|
|
835
835
|
!(e instanceof c) || v.animationDuration === 0 || (v.emitPending && d("update:pending", !0), await new Promise((b) => {
|
|
836
836
|
const O = v.animationDuration, aA = Date.now(), j = () => {
|
|
837
837
|
const oA = Date.now() - aA, W = Math.min(oA / O, 1);
|
|
@@ -849,11 +849,11 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
849
849
|
}
|
|
850
850
|
async function nA(e) {
|
|
851
851
|
const t = await U(e.src);
|
|
852
|
-
u.backgroundImage = t, u.centerObject(t), u.renderAll(), await
|
|
852
|
+
u.backgroundImage = t, u.centerObject(t), u.renderAll(), await F(t), Q();
|
|
853
853
|
}
|
|
854
854
|
async function dA(e) {
|
|
855
855
|
const t = await U(e.src);
|
|
856
|
-
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();
|
|
857
857
|
}
|
|
858
858
|
async function K(e) {
|
|
859
859
|
const t = await U(e.src);
|
|
@@ -862,7 +862,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
862
862
|
top: S.value / 2,
|
|
863
863
|
scaleX: m.value / t.width,
|
|
864
864
|
scaleY: S.value / t.height
|
|
865
|
-
}), u.overlayImage = t, u.renderAll(), await
|
|
865
|
+
}), u.overlayImage = t, u.renderAll(), await F(t), Q();
|
|
866
866
|
}
|
|
867
867
|
async function gA(e) {
|
|
868
868
|
u.discardActiveObject();
|
|
@@ -874,7 +874,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
874
874
|
scaleY: oA,
|
|
875
875
|
left: m.value / 2,
|
|
876
876
|
top: S.value / 2
|
|
877
|
-
}), 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();
|
|
878
878
|
}
|
|
879
879
|
function rA(e, t) {
|
|
880
880
|
t.target.id;
|
|
@@ -1141,23 +1141,23 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1141
1141
|
},
|
|
1142
1142
|
emits: ["update:modelValue", "update:jsonModel", "update:ready", "update:pending"],
|
|
1143
1143
|
setup(A, { emit: r }) {
|
|
1144
|
-
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(
|
|
1145
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
|
|
1146
|
-
), y =
|
|
1146
|
+
), y = H({
|
|
1147
1147
|
get() {
|
|
1148
1148
|
return a.modelValue;
|
|
1149
1149
|
},
|
|
1150
1150
|
set(l) {
|
|
1151
1151
|
s("update:modelValue", l);
|
|
1152
1152
|
}
|
|
1153
|
-
}), h =
|
|
1153
|
+
}), h = H({
|
|
1154
1154
|
get() {
|
|
1155
1155
|
return a.jsonModel;
|
|
1156
1156
|
},
|
|
1157
1157
|
set(l) {
|
|
1158
1158
|
s("update:jsonModel", l);
|
|
1159
1159
|
}
|
|
1160
|
-
}), k =
|
|
1160
|
+
}), k = H({
|
|
1161
1161
|
get() {
|
|
1162
1162
|
return a.pending;
|
|
1163
1163
|
},
|
|
@@ -1370,7 +1370,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1370
1370
|
emits: ["update:modelValue"],
|
|
1371
1371
|
setup(A, { emit: r }) {
|
|
1372
1372
|
const a = A, s = r, c = D(), o = D(), g = D(), i = D(!1);
|
|
1373
|
-
|
|
1373
|
+
H({
|
|
1374
1374
|
get() {
|
|
1375
1375
|
return a.modelValue;
|
|
1376
1376
|
},
|
|
@@ -1378,7 +1378,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1378
1378
|
s("update:modelValue", d);
|
|
1379
1379
|
}
|
|
1380
1380
|
});
|
|
1381
|
-
const y =
|
|
1381
|
+
const y = H(() => g.value || c.value && c.value.src || o.value);
|
|
1382
1382
|
X(g, async (d, v) => {
|
|
1383
1383
|
d && d !== v && s("update:modelValue", d);
|
|
1384
1384
|
}, { deep: !0 });
|
|
@@ -1499,7 +1499,7 @@ const ve = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20wid
|
|
|
1499
1499
|
},
|
|
1500
1500
|
emits: ["update:modelValue"],
|
|
1501
1501
|
setup(A, { emit: r }) {
|
|
1502
|
-
const a = A, s = r, c = D(""), o = D(1), g =
|
|
1502
|
+
const a = A, s = r, c = D(""), o = D(1), g = H({
|
|
1503
1503
|
get() {
|
|
1504
1504
|
return a.modelValue;
|
|
1505
1505
|
},
|
|
@@ -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:!0}},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),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();l.value.push(new File([P],`${r.id}.${w}`,{type:P.type})),v.value=!1,X()}},{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&&_()});function G(){k.value="",l.value=[]}function X(){Q.value=!1}function F(){G(),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 _=(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,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),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(z.value),1)],512),[[A.vShow,z.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():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||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 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,n,m,c,y,B,E;const f=o;s({setBackgroundImage:G,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,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=l.value.offsetWidth,D.value=l.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 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:_,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: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 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:l},[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(),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",_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(),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=XA,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"})}));
|
package/package.json
CHANGED
|
@@ -1,23 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ablok-photobooth",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.2.
|
|
5
|
-
"scripts": {
|
|
6
|
-
"dev": "vite --host",
|
|
7
|
-
"build": "vue-tsc --noEmit && vite build",
|
|
8
|
-
"build:watch": "vue-tsc --noEmit --watch & vite build --watch",
|
|
9
|
-
"preview": "vite preview",
|
|
10
|
-
"build-lib-bak": "vite build && vue-tsc --emitDeclarationOnly && mv dist/src dist/types",
|
|
11
|
-
"build-lib": "vite build && vue-tsc --emitDeclarationOnly",
|
|
12
|
-
"release": "bash ./scripts/release.sh",
|
|
13
|
-
"postrelease": "bash ./scripts/publish.sh",
|
|
14
|
-
"story:dev": "histoire dev",
|
|
15
|
-
"story:build": "histoire build",
|
|
16
|
-
"story:preview": "histoire preview"
|
|
17
|
-
},
|
|
4
|
+
"version": "0.2.35",
|
|
18
5
|
"dependencies": {
|
|
19
6
|
"@popperjs/core": "^2.11.6",
|
|
20
|
-
"ablok-components": "^0.3.
|
|
7
|
+
"ablok-components": "^0.3.55",
|
|
21
8
|
"bootstrap": "^5.3.8",
|
|
22
9
|
"fabric": "^7.1.0",
|
|
23
10
|
"lodash": "^4.17.23",
|
|
@@ -49,5 +36,18 @@
|
|
|
49
36
|
"require": "./dist/ablok-photobooth.umd.js"
|
|
50
37
|
}
|
|
51
38
|
},
|
|
52
|
-
"types": "./dist/types/index.d.ts"
|
|
53
|
-
|
|
39
|
+
"types": "./dist/types/index.d.ts",
|
|
40
|
+
"scripts": {
|
|
41
|
+
"dev": "vite --host",
|
|
42
|
+
"build": "vue-tsc --noEmit && vite build",
|
|
43
|
+
"build:watch": "vue-tsc --noEmit --watch & vite build --watch",
|
|
44
|
+
"preview": "vite preview",
|
|
45
|
+
"build-lib-bak": "vite build && vue-tsc --emitDeclarationOnly && mv dist/src dist/types",
|
|
46
|
+
"build-lib": "vite build && vue-tsc --emitDeclarationOnly",
|
|
47
|
+
"release": "bash ./scripts/release.sh",
|
|
48
|
+
"postrelease": "bash ./scripts/publish.sh",
|
|
49
|
+
"story:dev": "histoire dev",
|
|
50
|
+
"story:build": "histoire build",
|
|
51
|
+
"story:preview": "histoire preview"
|
|
52
|
+
}
|
|
53
|
+
}
|