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.
@@ -1,4 +1,4 @@
1
- import { defineComponent as AA, getCurrentInstance as QA, computed as F, 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";
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 = F(() => c.baseMediaPath), y = F(() => l.value && l.value.length && l.value.filter((n) => n.response && Object.keys(n.response).length).length === l.value.length), h = F(() => {
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 = F(() => h.value ? `${i.value}${h.value}` : ""), d = F(() => ({
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
- F(() => !!(l.value && l.value.length));
342
- const v = F(() => 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(), H = D(!1), tA = D("");
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
- })), H.value = !1, dA();
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
- H.value = !0, o.enableProcessImage && o.processImage && (U.value = await o.processImage.reduce(async (n, p) => {
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
- H.value = !0, S.value?.onCapture();
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
- H.value ? (f(), R(B(BA), { key: 0 })) : E("", !0)
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: H.value
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": H.value
626
+ "btn-success": F.value
627
627
  }]),
628
628
  onClick: q(rA, ["prevent"]),
629
- disabled: H.value
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: H.value
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 H(e) {
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 H(t), Q();
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 H(t), Q();
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 H(t), Q();
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 H(t), u.renderAll();
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 = F(
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 = F({
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 = F({
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 = F({
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
- F({
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 = F(() => g.value || c.value && c.value.src || o.value);
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 = F({
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,iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAYAAAB/HSuDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAHkJJREFUeNrs3Q1u8zaXgNHS8JK4/xVwTyzytgnS1HZsixR/7jlAgZkMBl+hT6Z1H1FyqrX+BQAAAOzt4hAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAEA0V4cAANaTc64j//NLKcl/CwCwllRrdRQAwJDfjDgAAHPyCAAAGP79uwOAAAAAAAAIAAAAAIAAAAAAAAgAAAAAwEn8CgAATOq3l+mNetv+rP9eAIAAAAAAAOF5BAAAAAAEAAAAAEAAAAAAAJZwdQgA2N2tl9Z5UZ1zwjkBQDReAghAmAHPwIdzA4DI7AAAINxwB8+eR0IAADuxAwCA0IO/Ac954jwBQAAAgE2HOUOd88Z5A0BEHgEAINwABy3OPyEAgNXYAQBAyMHf8OZcci4BIAAAwKbDmkEN5xcAAgAAGMxwvjnfABAAAGC1QcwQhnMQAAQAAAxd4JwEQAAAAEMWOEcBEAAAYKrBylCF8xUABAAANh2kDFE4hwFAAADA0ATOaQC44eIQAGBQgvcdOTdb/fQgADzDDgAADP7gXAdAAACAMQORYQjnPQAIAAAYgMDnAAAEAAAMPLD+58JnAgABAADDP/h8AIAAAMA6w43BBp8VnxUABAAADDPgs+OzA0BDF4cAgDMZYMBnAYAxrg4BAIYdGPu5ePf9AADwCjsAADD8g88IAAHYAQCAoQYm+rzYDQBAL3YAAGD4B58dAALwKwAANPF519LwAj5XAAgAAAAAwCAeAQAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAiyznXj38cCcA6A8AjqVZrOcCqF+S3/l5KSY4OYJ0B4Cc7AAA2uigHsAYBIAAAuDAHsJYACAAAuCgHsBYBCAAALHPB7dlcoIVn1hIRAEAAAGDQ8A9gbQJAAAAIcIHt7j/Q0rNriggAIAAAMOGFOoC1BUAAAGBCnvsHVogAdgEACAAAGP4BEQAAAQAAAAAQAAACc/cfmI1dAAACAACGf0AEEAEABAAADP+ACACAAAAAAAAIAACRuPsPrMIuAAABAADDPyACiAAAAgAAAAAgAAAE5e4/sCq7AAAEAAAM/4AIIAIACAAAAACAAAAQhLv/wC7sAgAQAADofEENYM0CQAAAmJg7YYC1DwABAMAFsDtpwJI8CgAgAADQ+AIawBoGgAAAMDF3vgCshQACAADunAHWMgAEAIDVueMFYE0EEAAAXOi6YwZsxQsBAQQAAAz/gLUNAAEAYD/ucAFYIwEEAADcIQOscQAIAACrc2cLwFoJIAAA4M4YYK0DQAAAWJ07WgDWTAABAAB3xABrHgACAMDq3MkCsHYCCAAAuBMGWPsAEAAAVvfbHSwXwIAI8P4aCoAAAAAAAAgAAHNw9x/AWgggAAAAAAACAMDq3PECsCYCCAAAAABAN6lWL1kF6OXzTdbucgFYLwEEAAAAAKA7jwAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAACgEMAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAIAAAAAAAAgAAJHknOvHP44EgHUaYGWpVmslwL0Lyp9/K6UkRwbAWg2wIjsAAJ68oHz0dwCs1QACAAAAACAAAAAAAAIAwOlsHQWwlgMIAADBebEUAAACAAAAnEiUBRAAAAAAAAEA4D7PjAJY0wEEAAAAAEAAANidZ00BrM0AAgAAAAAgAAAAAAACAMAUvCwKwNoOIAAAAAAAAgDA7rxkCsAaDSAAAAAAAAIAAAAAIAAATMFLogCs8QACAAAAACAAAOzOy6UArNUAAgAAAAAgAAAAAAACAAAAACAAAJzD26EBrPUAAgAAAAAgAADszlulAazZAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAEAjfhYKwJoPIAAAAAAAAgDA7vycFIC1G0AAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAPiSc66OAoC1H0AAAAjM70gDWMMBBAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAAAQAAAAAAABACCMUkpyFACs5QACAICLQwCs/QDLSbVWRwEAAAA2ZwcAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgADgEAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAABAc1eHAIgs51x//q2UkhwZAGs8wG7sAABcGD75dwCs8QACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAFH5nWgAaziAAACwiVJKchQArP0AAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAIAAAMC/cs7VUQCwdgMIAAAbKKUkRwHAmg8gAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAA04fekAazZAAIAwCb8LjSAtR5AAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAABoxu9KA1irAQQAgE34fWgAAAQAAABYmMgLIAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAMBu/Lw1gjQYQAAA24WeiAKztAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAwEv8XBSANR1AAABwEQmANRpgWanW6igAAADA5uwAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAABACHAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAgLNdHQKA1+Wc6+f/XEpJjgiAtRdgdqnW6igAvHHx+Z0LUQDrL8DsPAIA0PHCFABrLIAAAAAAAAgAAAAAgAAAAAAACAAAAOzA8/8AAgCAi1QAABAAAPrwc1MA1mQAAQAAAAAQAAAAAAABAAAAABAAANbgRYAA1lQAAQBgE146BWAtBhAAAAAAAAEAAAAAEAAAtuCZVQBrKYAAAAAAAAgAAKvw8ikAazCAAAAAAAAIAAAAAIAAALAFL68CsIYCCAAAAACAAACwCi+hArD2AggAAAAAgAAAAAAACAAAW/ASKwBrJ4AAALAJz6ICWHMBBAAAAABAAAAAAAAEAIAteJYVwJoJIAAAAAAAAgDAKryUCsBaCyAAAAAAAAIAQASeaQWwVgIIAAAAAIAAALAKz6YCWGMBBAAAAABAAACIwLOtAAAIAAAAhCaSAggAAEvxjCqAtRVAAAAAAAAEAAAAAEAAANiCZ1wBrI0AAgDAJjyrCmBNBRAAAAAAAAEAIAJbXQGsiQACAAAAACAAAKzCM6sA1lIAAQAAAAAQAAAAAAABAGAZ97au2tIKYK0EEAAANr+wdUELYK0EGCnV6tdXAAAAYHd2AAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAKAQwAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAgAAAAAAACAAAAACAAADAQTnn+vGPIwFYvwBoJdVqfQaY6cL51t9LKcnRAaxfABxhBwAAAAAIAADMwHZawBoFgAAAAAAACAAAu3CHDbA2ASAAAAAAAAIAwCq8LRuwpgEgAABgqy1gTQJAAAAAAAAEAIBl2DILWMsAEAAAsOUWsBYBIAAAAAAAAgDAMn7bOuvOGzDSb2uQ7f8AAgAAAAAgAAAAAAACAEAwHgMAZmT7P4AAAAAAAAgAALzDnTTAmgWAAACAxwAAaw4AAgAAAAAgAAAsw8sAgRl4+R+AAAAAAAAIAAC04M4aYI0CQAAAwGMAgDUGAAEAAAAAEAAAluFlgMAIXv4HIAAAAAAAAgAAPdgFAJzJ3X8AAQAAAAAQAAAAAAABAIBDPAYAnMH2fwABAAAAABAAADiDXQBAT+7+AwgAAAAAgAAAwJnsAgB6cPcfQAAAAAAABAAAAABAAACgC48BAC3Z/g8gAAAAAAACAAAj2QUAtODuP4AAAAAAAAgAAMzALgDgCHf/AQQAAAAAQAAAYCZ2AQDvcPcfQAAAAAAABAAAZuROHWBNAUAAAAAAAAEAAAAAEAAAWIYtu4C1BIBbUq1eCg0AAAC7swMAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAAAQABwCAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAEAAD4JudcP/5xJMDnE4B1pVp9XwBwf7D4+bdSSnJkwGcUgPXYAQDA04PFo78DPqMACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAAAgAAQfkZMfAZBkAAAAAAAAQAAHZXSkmOAvgsAiAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAABAHDnn6igAIAAAYGgAABAAAOA2vzsOPpMACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAfMk5V0cBfKYBEAAACMzvjYPPJgACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAABf/F44+GwDIAAAAAAAAgAAuyulJEcBfEYBEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAA+CPnXB0F8BkHQAAAIDC/Lw4+qwAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAA8xc+Kgc8sAAIAAAAAsJBUa3UUAPgj5/z1peBOIvgsAyAAAAAAAIvxCAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAADAIVeHAGAeOef682+llOTIANYwAI5KtVZHAWCSC+V7XEAD1jQAjrIDAGCyC2OAiGuiKAAgAAAY9AECr5/CAIAAAGDQBwi83goDAAIAgCEfIPgaLQ4A3OYlgICLyMkHfReygPXUegogAABsdGHqAhWw7lp3AQQAABeeANZl6zKAAACwykWmi0qANdZs6zWwIy8BBHDhCDDdmulFrAACAIAhHyD4GisOAAgAAAZ9gMDrsjAAIAAAGPQBAq/jwgDAP7wEENjWvQs+gz4AvicAAQAAAADY0sUhAAAAAAEAAAAAEAAAAACAFfgVAOBXt16S5AVJAOC7GViLlwACT11U3OJCAwB8TwPrsAMA8PvIABDg+10QAAQAcEEAAAgCgAAAGPgBAEEAEAAAAz8AIAgAS/ASQDD0v8VFAQD43gcEAGDDL35f/gDgmsA1AQgAgC93AMA1AyAAAL68AQDXFIAAAPhyBgBccwACAPjy9eULALgmAQQA8CXryxUAcK0CCAAQ6wvVlygA4PoFuOfqEMC6fGECAGdfb4x4ZAAQAMDADwAgCAACABj4AQAEAeCTdwDAyR59KRr4AQDXPoAAAAAAALzt4hAAAACAAAAAAAAIAAAAAIAAACf4eLGMt80CAOB6Ex7zEkCWXIAf/d+9TRYAANed8H9Xh4AdFl8AABh5jSoGIACAoR8AADEABAAw9AMAIAaAAIChHwAAxAAQADD0AwCAGADP8isAbDH0W0ABAHAtCwIAFkoAAHCNiwAgALDSomhBBADAdS8IAFj8AADA9TAIAKy00FnkAABwjewaGQGATRc1CxoAAK6bXTcjAGDxAgAA19OupxEAWGmhskgBAIBrbAQALEoAAOCa2zU3AgCrLUIWIAAAcB2OAIAFBwAAcF2OAMBqi4zFBQAAXKczr6tDwFEWFAAA6H+93foXBBAAwOAPAABCAAIAGPwBAEAIYEXeAcB/3FtEDP0AAOA6HgGAjRcPCwYAALiWRwAAAAAAFnFxCAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAACAG64OwRg55/r5P5dSkiMCAACYgegp1VodhUEn/Xc+AAAAgDmInjwCMMFJDwAAYEaiN48AOKkBAACGz0t2A/RnB4DhHwAAwOwkAOAEBgAAMEMJADQ5cW11AQAAdvbKzCMC9ONXAAYO/oZ/AADAvGReOosdAE5mAACAU7w6A9kNIAAY/gEAAEQAXuQRgJOHf4M/AACAWWoEOwCcsAAAAEN4OaAAYPgHAAAQAUQAAcDwDwAAIALwKu8A6Dj4G/4BAADMWwLA5iejExEAAMDsNROPADgBAQAApuKRAAHA8A8AACACiAACgOEfAABABEAAMPwDAACIAAIAhn8AAAARQAAw/Bv+AQAARAABwPAPAACACCAAGP4BAAAQAQQAwz8AAAAigABg+AcAAEAEEAAM/wAAACKACCAAGP4BAABEABEgcgAw/AMAAIgAAgCGfwAAALObALC6Z4uPEwgAAGC/CBB1F0C4AGD4BwAAEAEiRoBQAcDwDwAAIAJEjQBhAoDhHwAAQASIHAG8BNDwDwAAYMYTAJwYAAAAmPUEACcEAAAAZj4BwIkAAACA2U8AGP5fthMAAAAgdgSINBemWquzAAAAADbnHQAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAIAA4BAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAANHId/S+Qc64//1ZKSf6rAQAAYFUzzrqX2Q7Io78DAADAisP/DLOuRwAAAAAggGEBwF1+AAAAohk5C9sBAAAAAAEMCQC/FQ8vAQQAAGBXo3YB2AEAAAAADc16U/v0AODuPwAAANEjwIhdAHYAAAAAQACnBgB3/wEAAIhitl0AdgAAAABAAKcFAHf/AQAAiGamXQB2AAAAAEAApwQAd/8BAACIapZdAHYAAAAAQADdA8CI3zYEAACAlZwxOw/fAWD7PwAAALubYfb1CAAAAAAE0DUAePkfAAAAPDcD934MwA4AAAAACKBbAHD3HwAAAF6bhXvuArADAAAAAAIYEgDc/QcAACCqUTNxlwBwxu8XAgAAwI56zdQeAQAAAIAAmgcAL/8DAACAx0a8DNAOAAAAAAjg1ADg7j8AAACMmZGbBgAv/wMAAIA5Z2yPAAAAAEAApwUA2/8BAABg3KzcLADY/g8AAABttZy1PQIAAAAAAZwSAGz/BwAAgLEzc5MAYPs/AAAA9NFq5vYIAAAAAATQPQDY/g8AAADjZ+fDAcD2fwAAAOirxeztEQAAAAAIoGsAsP0fAAAA5pihDwUA2/8BAADgHEdncI8AAAAAQADdAoDt/wAAADDPLG0HAAAAAATwdgDw/D8AAACc68gsbgcAAAAABNAlAHj+HwAAAOaaqe0AAAAAgADeDgD3ioS7/wAAAHBMj5n70vJfyPAPAAAAfSLA0Zk71epl/gAAALA77wAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAEAIcAAAAABAAAAABAAAAAAAAEAAAAAEAAAAAAAAQAAAAAQAAAAAAABAAAAABAAAAAAAABAAAAABAAAAAAAAEAAAAAEAAAAACAs13f+X/KOdfv/3spJTmUAAAA0EeLOfxy9D/03t8AAACA9sP/u3O4RwAAAAAggJcCgDv9AAAAMIdXZ3Q7AAAAACAAAQAAAAAEAAAAAEAAAADgb3bsWAAAAABgkL/1IPYWRgAgAAAAAAABAAAAAAgAAAAAQAAAAAAAAgAAAAAQAAAAACAAAAAAAAEAAAAACAAAAABAAAAAAAACAAAAABAAAAAAgAAAAAAABAAAAAAIAAAAAEAAAAAAAAIAAAAAEAAAAACAAAAAAAAEAAAAALAkwACd6iSVhnRezwAAAABJRU5ErkJggg==",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.33",
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.44",
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
+ }