@spiffcommerce/core 21.15.3 → 21.15.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +398 -394
- package/dist/index.umd.cjs +17 -17
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -181,20 +181,20 @@ class $A {
|
|
|
181
181
|
uri: `${$.getServerUrl()}/graphql`,
|
|
182
182
|
fetch: tt
|
|
183
183
|
}), t = OA(async (i, s) => {
|
|
184
|
-
const { headers: o } = s, r = o || {}, g = await ZA(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, w = s.transactionOwnerId, E = s.customerToken ?? g.customerToken, h = s.applicationKey ?? g.applicationKey,
|
|
184
|
+
const { headers: o } = s, r = o || {}, g = await ZA(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, w = s.transactionOwnerId, E = s.customerToken ?? g.customerToken, h = s.applicationKey ?? g.applicationKey, C = s.bundleOwnerId;
|
|
185
185
|
try {
|
|
186
186
|
if (window && window.__SENTRY__) {
|
|
187
|
-
const
|
|
188
|
-
if (
|
|
189
|
-
const
|
|
190
|
-
Object.entries(
|
|
191
|
-
r[
|
|
187
|
+
const u = window.__SENTRY__.hub;
|
|
188
|
+
if (u) {
|
|
189
|
+
const f = u.traceHeaders();
|
|
190
|
+
Object.entries(f).forEach(([Q, p]) => {
|
|
191
|
+
r[Q] = p;
|
|
192
192
|
});
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
} catch {
|
|
196
196
|
}
|
|
197
|
-
return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), w && (r.transactionOwnerId = w), E && (r.customerToken = E), h && (r["X-Application-Key"] = h),
|
|
197
|
+
return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), w && (r.transactionOwnerId = w), E && (r.customerToken = E), h && (r["X-Application-Key"] = h), C && (r.bundleOwnerId = C), {
|
|
198
198
|
headers: r
|
|
199
199
|
};
|
|
200
200
|
}), A = zA(({ operation: i, graphQLErrors: s, networkError: o }) => {
|
|
@@ -1738,14 +1738,14 @@ class St {
|
|
|
1738
1738
|
command: new T(d, n)
|
|
1739
1739
|
};
|
|
1740
1740
|
} else {
|
|
1741
|
-
const l = this.configuration.type === M.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await Ut(await (async () => new Promise((h,
|
|
1741
|
+
const l = this.configuration.type === M.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await Ut(await (async () => new Promise((h, C) => {
|
|
1742
1742
|
if (!l) {
|
|
1743
|
-
|
|
1743
|
+
C("Undefined vector silent step source");
|
|
1744
1744
|
return;
|
|
1745
1745
|
}
|
|
1746
|
-
_(l, !0).then((
|
|
1747
|
-
h(
|
|
1748
|
-
}).catch((
|
|
1746
|
+
_(l, !0).then((u) => {
|
|
1747
|
+
h(u);
|
|
1748
|
+
}).catch((u) => console.error(u));
|
|
1749
1749
|
}))()), E = {
|
|
1750
1750
|
stepName: this.configuration.stepName,
|
|
1751
1751
|
id: J(),
|
|
@@ -1854,29 +1854,29 @@ class xa {
|
|
|
1854
1854
|
async regenerateQRCode(e, t, A, a, n, i, s, o, r) {
|
|
1855
1855
|
if (!t && A !== "" && a === "") {
|
|
1856
1856
|
const g = async () => {
|
|
1857
|
-
var
|
|
1858
|
-
const
|
|
1859
|
-
return { asset:
|
|
1860
|
-
}, B = await new Promise((
|
|
1857
|
+
var Q, p;
|
|
1858
|
+
const u = (await qt([A]))[0], f = (p = (Q = u == null ? void 0 : u.versions) == null ? void 0 : Q.find((m) => m.name === "mpeg4")) == null ? void 0 : p.link;
|
|
1859
|
+
return { asset: u, link: f };
|
|
1860
|
+
}, B = await new Promise((u, f) => {
|
|
1861
1861
|
new aA(
|
|
1862
1862
|
async () => !!(await g()).link,
|
|
1863
1863
|
async () => {
|
|
1864
|
-
const
|
|
1865
|
-
if (!
|
|
1866
|
-
throw new he(
|
|
1867
|
-
|
|
1864
|
+
const Q = await g();
|
|
1865
|
+
if (!Q.link || !Q.link)
|
|
1866
|
+
throw new he(Q.asset);
|
|
1867
|
+
u({
|
|
1868
1868
|
rel: "mpeg4",
|
|
1869
|
-
href:
|
|
1869
|
+
href: Q.link
|
|
1870
1870
|
});
|
|
1871
1871
|
},
|
|
1872
1872
|
() => {
|
|
1873
|
-
|
|
1873
|
+
f("Poller timed out with 40 attempts @ 3 second interval");
|
|
1874
1874
|
},
|
|
1875
1875
|
3e3,
|
|
1876
1876
|
40
|
|
1877
1877
|
);
|
|
1878
1878
|
});
|
|
1879
|
-
e.forEach((
|
|
1879
|
+
e.forEach((u) => o(new ee(u.id)));
|
|
1880
1880
|
const l = i.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + i.data.baseUrl);
|
|
1881
1881
|
d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
|
|
1882
1882
|
const w = d.toString();
|
|
@@ -1885,8 +1885,8 @@ class xa {
|
|
|
1885
1885
|
const E = await Pa(w);
|
|
1886
1886
|
if (s(E), !i.data || !i.data.regions)
|
|
1887
1887
|
throw new Re(i, "Missing regions.");
|
|
1888
|
-
const h = await this.regionElements(i),
|
|
1889
|
-
|
|
1888
|
+
const h = await this.regionElements(i), C = await this.command(E, h, n, i.stepName);
|
|
1889
|
+
C && (C.command && n.getCommandDispatcher()(C.command), C.followup && await C.followup()), await n.setSelectionsAndElements(i.stepName, [], h, async () => {
|
|
1890
1890
|
n.updateStorage(i.stepName, {
|
|
1891
1891
|
videoShortUrl: E,
|
|
1892
1892
|
videoUrl: a
|
|
@@ -1986,18 +1986,18 @@ class Ha {
|
|
|
1986
1986
|
frameOffsetsList: l,
|
|
1987
1987
|
framePatternSrc: B
|
|
1988
1988
|
}), B) {
|
|
1989
|
-
const
|
|
1990
|
-
if (!
|
|
1989
|
+
const C = (E = t.getStepSpecificServices(e.stepName)) == null ? void 0 : E.frameService;
|
|
1990
|
+
if (!C)
|
|
1991
1991
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1992
|
-
await this.loadPatternFromString(B,
|
|
1992
|
+
await this.loadPatternFromString(B, C, !0), t.updateMetadata(e.stepName, { image: B }), t.updateStorage(e.stepName, {
|
|
1993
1993
|
framePatternSrc: B
|
|
1994
1994
|
});
|
|
1995
1995
|
}
|
|
1996
|
-
if (l != null && l.some((
|
|
1997
|
-
const
|
|
1998
|
-
if (!
|
|
1996
|
+
if (l != null && l.some((C) => C.zoom)) {
|
|
1997
|
+
const C = (h = t.getStepSpecificServices(e.stepName)) == null ? void 0 : h.frameService;
|
|
1998
|
+
if (!C)
|
|
1999
1999
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
2000
|
-
|
|
2000
|
+
C.updateOffsets(l);
|
|
2001
2001
|
}
|
|
2002
2002
|
t.setMandatoryFulfilled(e.stepName, !0);
|
|
2003
2003
|
};
|
|
@@ -2115,23 +2115,23 @@ class Ha {
|
|
|
2115
2115
|
n && n(!0);
|
|
2116
2116
|
const r = await Promise.all(
|
|
2117
2117
|
e.data.regions.map(async (d, w) => {
|
|
2118
|
-
const E = await At(o[w]), h = s.getImageData(),
|
|
2118
|
+
const E = await At(o[w]), h = s.getImageData(), C = A.map((I) => new ee(I.id)), u = h ? at(h, E) : void 0, f = h ? {
|
|
2119
2119
|
id: J(),
|
|
2120
2120
|
src: h.src,
|
|
2121
|
-
x: (
|
|
2122
|
-
y: (
|
|
2121
|
+
x: (u == null ? void 0 : u.x) || 0,
|
|
2122
|
+
y: (u == null ? void 0 : u.y) || 0,
|
|
2123
2123
|
width: h.width,
|
|
2124
2124
|
height: h.height,
|
|
2125
|
-
scaleX: (
|
|
2126
|
-
scaleY: (
|
|
2125
|
+
scaleX: (u == null ? void 0 : u.zoom) || 1,
|
|
2126
|
+
scaleY: (u == null ? void 0 : u.zoom) || 1,
|
|
2127
2127
|
rotation: 0
|
|
2128
|
-
} : void 0,
|
|
2128
|
+
} : void 0, Q = J(), m = a.getLayouts().find((I) => I.panelId === d.panelId);
|
|
2129
2129
|
if (!m)
|
|
2130
2130
|
throw new z(d);
|
|
2131
2131
|
return {
|
|
2132
|
-
command: this.getCreateElementCommand(
|
|
2132
|
+
command: this.getCreateElementCommand(Q, d, m, {
|
|
2133
2133
|
frameData: E,
|
|
2134
|
-
pattern:
|
|
2134
|
+
pattern: f,
|
|
2135
2135
|
disablePlaceholder: e.data.disablePlaceholder,
|
|
2136
2136
|
focalBlur: e.data.focalBlur,
|
|
2137
2137
|
focalBlurStrength: e.data.focalBlurStrength,
|
|
@@ -2139,10 +2139,10 @@ class Ha {
|
|
|
2139
2139
|
stepName: e.stepName
|
|
2140
2140
|
}),
|
|
2141
2141
|
regionEl: {
|
|
2142
|
-
id:
|
|
2142
|
+
id: Q,
|
|
2143
2143
|
region: d
|
|
2144
2144
|
},
|
|
2145
|
-
removeExistingCommands:
|
|
2145
|
+
removeExistingCommands: C
|
|
2146
2146
|
};
|
|
2147
2147
|
})
|
|
2148
2148
|
), g = r.map((d) => d.command), B = r.map((d) => d.removeExistingCommands).flat();
|
|
@@ -2246,7 +2246,7 @@ class Ra {
|
|
|
2246
2246
|
const n = V.getDefaultVariant(a);
|
|
2247
2247
|
if (n)
|
|
2248
2248
|
return await this.selectVariantCommand(e, n, [], () => {
|
|
2249
|
-
}, t
|
|
2249
|
+
}, t);
|
|
2250
2250
|
}
|
|
2251
2251
|
return null;
|
|
2252
2252
|
}
|
|
@@ -2310,8 +2310,8 @@ class Ra {
|
|
|
2310
2310
|
a().map((E) => E.layoutState)
|
|
2311
2311
|
), s = { ...i.colors }, o = {};
|
|
2312
2312
|
Object.entries(s).forEach(([E, h]) => {
|
|
2313
|
-
const
|
|
2314
|
-
|
|
2313
|
+
const C = { browserValue: h.browserValue }, u = h.spotColor;
|
|
2314
|
+
u && (C.spotColor = { profileName: u.profileName, namedColor: u.namedColor }), o[E] = C;
|
|
2315
2315
|
});
|
|
2316
2316
|
for (const [E, h] of n.entries())
|
|
2317
2317
|
s[E] = { browserValue: h, spotColor: (d = s[E]) == null ? void 0 : d.spotColor }, o[E] = { browserValue: h };
|
|
@@ -2319,8 +2319,8 @@ class Ra {
|
|
|
2319
2319
|
const g = e.data.colorOption;
|
|
2320
2320
|
g && ((w = g.variants) == null || w.forEach((E) => {
|
|
2321
2321
|
r = r.map((h) => {
|
|
2322
|
-
var
|
|
2323
|
-
return h.toLowerCase() === ((
|
|
2322
|
+
var C;
|
|
2323
|
+
return h.toLowerCase() === ((C = E.color) == null ? void 0 : C.toLowerCase()) ? E.name : h;
|
|
2324
2324
|
});
|
|
2325
2325
|
})), A.updateMetadata(e.stepName, { colors: r });
|
|
2326
2326
|
const B = /* @__PURE__ */ new Map();
|
|
@@ -2343,61 +2343,61 @@ class Ra {
|
|
|
2343
2343
|
const i = await this.selectVariantCommand(e, t, A, a, n);
|
|
2344
2344
|
i && (i.command && n.getCommandDispatcher()(i.command), i.followup && await i.followup());
|
|
2345
2345
|
}
|
|
2346
|
-
async selectVariantCommand(e, t, A, a, n
|
|
2346
|
+
async selectVariantCommand(e, t, A, a, n) {
|
|
2347
2347
|
var C;
|
|
2348
2348
|
if (!e.data || !e.data.regions)
|
|
2349
2349
|
throw new Re(e, "Missing regions.");
|
|
2350
2350
|
a(!0);
|
|
2351
|
-
const
|
|
2351
|
+
const i = A.map((u) => new ee(u.id));
|
|
2352
2352
|
e.mandatory && n.setMandatoryFulfilled(e.stepName, !1);
|
|
2353
|
-
const
|
|
2354
|
-
if (!
|
|
2353
|
+
const s = t.asset;
|
|
2354
|
+
if (!s)
|
|
2355
2355
|
throw new te(t);
|
|
2356
|
-
const
|
|
2357
|
-
if (!
|
|
2358
|
-
throw new he(
|
|
2359
|
-
const
|
|
2360
|
-
const
|
|
2361
|
-
if (!
|
|
2362
|
-
throw new z(
|
|
2356
|
+
const o = s.fileLink;
|
|
2357
|
+
if (!o)
|
|
2358
|
+
throw new he(s);
|
|
2359
|
+
const r = await Ut(await this.getIllustrationBody(o)), g = await Pe(r.svg), B = (u) => {
|
|
2360
|
+
const f = n.getLayouts().find((p) => p.panelId === u.panelId);
|
|
2361
|
+
if (!f)
|
|
2362
|
+
throw new z(u);
|
|
2363
2363
|
const Q = J();
|
|
2364
2364
|
return {
|
|
2365
|
-
regionElement: { id: Q, region:
|
|
2366
|
-
command: this.getCreateElementCommand(Q,
|
|
2365
|
+
regionElement: { id: Q, region: u },
|
|
2366
|
+
command: this.getCreateElementCommand(Q, u, f, {
|
|
2367
2367
|
stepName: e.stepName,
|
|
2368
|
-
src:
|
|
2369
|
-
objectURL:
|
|
2370
|
-
svg:
|
|
2368
|
+
src: o,
|
|
2369
|
+
objectURL: g,
|
|
2370
|
+
svg: r
|
|
2371
2371
|
})
|
|
2372
2372
|
};
|
|
2373
|
-
},
|
|
2374
|
-
let
|
|
2375
|
-
const
|
|
2376
|
-
return
|
|
2377
|
-
|
|
2373
|
+
}, l = e.data.regions.map(B), w = [...l.map((u) => u.command), ...i];
|
|
2374
|
+
let E = Array.from(Object.values(r.colors)).map((u) => u.browserValue);
|
|
2375
|
+
const h = e.data.colorOption;
|
|
2376
|
+
return h && ((C = h.variants) == null || C.forEach((u) => {
|
|
2377
|
+
E = E.map((f) => {
|
|
2378
2378
|
var Q;
|
|
2379
|
-
return
|
|
2379
|
+
return f.toLowerCase() === ((Q = u.color) == null ? void 0 : Q.toLowerCase()) ? u.name : f;
|
|
2380
2380
|
});
|
|
2381
|
-
})), n.updateMetadata(e.stepName, { colors:
|
|
2382
|
-
command: new G(
|
|
2381
|
+
})), n.updateMetadata(e.stepName, { colors: E }), {
|
|
2382
|
+
command: new G(w),
|
|
2383
2383
|
followup: async () => {
|
|
2384
2384
|
await n.setSelectionsAndElements(
|
|
2385
2385
|
e.stepName,
|
|
2386
2386
|
[t],
|
|
2387
|
-
|
|
2387
|
+
l.map((Q) => Q.regionElement),
|
|
2388
2388
|
async () => {
|
|
2389
|
-
|
|
2389
|
+
n.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
2390
2390
|
}
|
|
2391
2391
|
);
|
|
2392
|
-
const
|
|
2393
|
-
if (e.data.colorPickerEnabled &&
|
|
2394
|
-
const Q =
|
|
2392
|
+
const u = await this.availableColors(e, n) || [], f = Object.keys(r.colors);
|
|
2393
|
+
if (e.data.colorPickerEnabled && u.length === 1 && f.length === 1) {
|
|
2394
|
+
const Q = u[0], p = f[0];
|
|
2395
2395
|
await this.changeColors(
|
|
2396
2396
|
e,
|
|
2397
|
-
|
|
2397
|
+
l.map((m) => m.regionElement),
|
|
2398
2398
|
n,
|
|
2399
2399
|
() => n.getCommandContext().getAllLayouts(),
|
|
2400
|
-
/* @__PURE__ */ new Map([[
|
|
2400
|
+
/* @__PURE__ */ new Map([[p, Q.variant.color]])
|
|
2401
2401
|
);
|
|
2402
2402
|
}
|
|
2403
2403
|
}
|
|
@@ -2416,7 +2416,7 @@ class Ua {
|
|
|
2416
2416
|
const n = V.getDefaultVariant(a);
|
|
2417
2417
|
if (n)
|
|
2418
2418
|
return await this.selectVariantLambda(e, n, t, () => {
|
|
2419
|
-
}
|
|
2419
|
+
});
|
|
2420
2420
|
}
|
|
2421
2421
|
return null;
|
|
2422
2422
|
}
|
|
@@ -2441,7 +2441,11 @@ class Ua {
|
|
|
2441
2441
|
async () => {
|
|
2442
2442
|
const w = t.getModelContainer();
|
|
2443
2443
|
if (w) {
|
|
2444
|
-
const E = e.data.targetMaterials.map((h) => w.applyMaterialVariant(
|
|
2444
|
+
const E = e.data.targetMaterials.map((h) => w.applyMaterialVariant(
|
|
2445
|
+
h,
|
|
2446
|
+
o.id || "",
|
|
2447
|
+
l || {}
|
|
2448
|
+
));
|
|
2445
2449
|
Promise.all(E).then(
|
|
2446
2450
|
() => t.setMandatoryFulfilled(e.stepName, !0)
|
|
2447
2451
|
);
|
|
@@ -2456,20 +2460,20 @@ class Ua {
|
|
|
2456
2460
|
const n = await this.selectVariantLambda(e, t, A, a);
|
|
2457
2461
|
n && (n.command && A.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2458
2462
|
}
|
|
2459
|
-
async selectVariantLambda(e, t, A, a
|
|
2460
|
-
const
|
|
2463
|
+
async selectVariantLambda(e, t, A, a) {
|
|
2464
|
+
const n = A.getModelContainer();
|
|
2461
2465
|
a(!0);
|
|
2462
|
-
const
|
|
2463
|
-
if (!
|
|
2466
|
+
const i = t.material;
|
|
2467
|
+
if (!i)
|
|
2464
2468
|
throw a(!1), new te(t);
|
|
2465
2469
|
return {
|
|
2466
2470
|
command: void 0,
|
|
2467
2471
|
followup: async () => {
|
|
2468
2472
|
await A.setSelectionsAndElements(e.stepName, [t], [], async () => {
|
|
2469
2473
|
try {
|
|
2470
|
-
|
|
2471
|
-
e.option &&
|
|
2472
|
-
}),
|
|
2474
|
+
n && e.data.targetMaterials.forEach((s) => {
|
|
2475
|
+
e.option && n.applyMaterialVariant(s, e.option.id || "", i);
|
|
2476
|
+
}), A.setMandatoryFulfilled(e.stepName, !0);
|
|
2473
2477
|
} finally {
|
|
2474
2478
|
a(!1);
|
|
2475
2479
|
}
|
|
@@ -2490,7 +2494,7 @@ class va {
|
|
|
2490
2494
|
const n = V.getDefaultVariant(a);
|
|
2491
2495
|
if (n)
|
|
2492
2496
|
return await this.selectVariantLambda(e, n, t, () => {
|
|
2493
|
-
}
|
|
2497
|
+
});
|
|
2494
2498
|
}
|
|
2495
2499
|
return null;
|
|
2496
2500
|
}
|
|
@@ -2536,26 +2540,26 @@ class va {
|
|
|
2536
2540
|
const n = await this.selectVariantLambda(e, t, A, a);
|
|
2537
2541
|
n && (n.command && A.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2538
2542
|
}
|
|
2539
|
-
async selectVariantLambda(e, t, A, a
|
|
2540
|
-
var
|
|
2543
|
+
async selectVariantLambda(e, t, A, a) {
|
|
2544
|
+
var i;
|
|
2541
2545
|
a(!0);
|
|
2542
|
-
const
|
|
2543
|
-
if (!
|
|
2546
|
+
const n = (i = t.asset) == null ? void 0 : i.fileLink;
|
|
2547
|
+
if (!n)
|
|
2544
2548
|
throw new te(t);
|
|
2545
2549
|
return {
|
|
2546
2550
|
command: void 0,
|
|
2547
2551
|
followup: async () => {
|
|
2548
2552
|
await A.setSelectionsAndElements(e.stepName, [t], [], async () => {
|
|
2549
2553
|
try {
|
|
2550
|
-
const
|
|
2551
|
-
|
|
2554
|
+
const s = A.getModelContainer();
|
|
2555
|
+
s && await s.applyModelVariant(
|
|
2552
2556
|
e.stepName,
|
|
2553
2557
|
{
|
|
2554
|
-
model:
|
|
2558
|
+
model: n,
|
|
2555
2559
|
contextService: A.getLayoutPreviewService()
|
|
2556
2560
|
},
|
|
2557
2561
|
e.data.replaceProductModel || !1
|
|
2558
|
-
),
|
|
2562
|
+
), A.setMandatoryFulfilled(e.stepName, !0);
|
|
2559
2563
|
} finally {
|
|
2560
2564
|
a(!1);
|
|
2561
2565
|
}
|
|
@@ -2600,11 +2604,11 @@ class Ga {
|
|
|
2600
2604
|
return console.error("Missing configuration."), null;
|
|
2601
2605
|
A.updateStorage(e.stepName, { text: t });
|
|
2602
2606
|
const r = (B, l, d) => {
|
|
2603
|
-
const w = d || J(), h = A.getLayouts().find((
|
|
2607
|
+
const w = d || J(), h = A.getLayouts().find((u) => u.panelId === l.panelId);
|
|
2604
2608
|
if (!h)
|
|
2605
2609
|
return console.error(`Can not find layout for region: ${l.panelId}`), null;
|
|
2606
|
-
const
|
|
2607
|
-
return d &&
|
|
2610
|
+
const C = [];
|
|
2611
|
+
return d && C.push(new ee(w)), C.push(
|
|
2608
2612
|
new T(
|
|
2609
2613
|
{
|
|
2610
2614
|
stepRegion: l,
|
|
@@ -2627,7 +2631,7 @@ class Ga {
|
|
|
2627
2631
|
), {
|
|
2628
2632
|
id: w,
|
|
2629
2633
|
region: l,
|
|
2630
|
-
command: new G(
|
|
2634
|
+
command: new G(C)
|
|
2631
2635
|
};
|
|
2632
2636
|
};
|
|
2633
2637
|
if (i.length > 0) {
|
|
@@ -2687,7 +2691,7 @@ class ba {
|
|
|
2687
2691
|
await this.reload(e, t, A);
|
|
2688
2692
|
else if (a.defaultVariant)
|
|
2689
2693
|
return t.markStepsAsInitialised([e.stepName]), this.selectVariantCommand(e, a.defaultVariant, t, () => {
|
|
2690
|
-
}
|
|
2694
|
+
});
|
|
2691
2695
|
return t.markStepsAsInitialised([e.stepName]), null;
|
|
2692
2696
|
}
|
|
2693
2697
|
async reload(e, t, A) {
|
|
@@ -2718,51 +2722,51 @@ class ba {
|
|
|
2718
2722
|
const n = await this.selectVariantCommand(e, t, A, a);
|
|
2719
2723
|
n && (n.command && A.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2720
2724
|
}
|
|
2721
|
-
async selectVariantCommand(e, t, A, a
|
|
2722
|
-
const
|
|
2723
|
-
if (!
|
|
2725
|
+
async selectVariantCommand(e, t, A, a) {
|
|
2726
|
+
const n = t.asset;
|
|
2727
|
+
if (!n)
|
|
2724
2728
|
throw new te(t);
|
|
2725
|
-
const
|
|
2726
|
-
if (!
|
|
2729
|
+
const i = n == null ? void 0 : n.fileLink;
|
|
2730
|
+
if (!i)
|
|
2727
2731
|
return console.error("No URL for picture!"), null;
|
|
2728
2732
|
a(!0), e.mandatory && A.setMandatoryFulfilled(e.stepName, !1);
|
|
2729
|
-
const
|
|
2730
|
-
const
|
|
2731
|
-
if (!
|
|
2732
|
-
throw new z(
|
|
2733
|
-
const
|
|
2733
|
+
const o = A.getRegionElements(e.stepName).map((B) => new ee(B.id)), r = (B) => {
|
|
2734
|
+
const d = A.getLayouts().find((E) => E.panelId === B.panelId);
|
|
2735
|
+
if (!d)
|
|
2736
|
+
throw new z(B);
|
|
2737
|
+
const w = J();
|
|
2734
2738
|
return {
|
|
2735
|
-
regionElement: { id:
|
|
2739
|
+
regionElement: { id: w, region: B },
|
|
2736
2740
|
command: new T(
|
|
2737
2741
|
{
|
|
2738
2742
|
stepName: e.stepName,
|
|
2739
|
-
stepRegion:
|
|
2740
|
-
id:
|
|
2741
|
-
src:
|
|
2743
|
+
stepRegion: B,
|
|
2744
|
+
id: w,
|
|
2745
|
+
src: i,
|
|
2742
2746
|
type: k.Image,
|
|
2743
|
-
y:
|
|
2744
|
-
x:
|
|
2745
|
-
rotation:
|
|
2746
|
-
width:
|
|
2747
|
-
height:
|
|
2748
|
-
layer:
|
|
2749
|
-
layerIndex:
|
|
2750
|
-
immutable:
|
|
2747
|
+
y: B.top,
|
|
2748
|
+
x: B.left,
|
|
2749
|
+
rotation: B.rotation,
|
|
2750
|
+
width: B.width,
|
|
2751
|
+
height: B.height,
|
|
2752
|
+
layer: B.layer,
|
|
2753
|
+
layerIndex: B.layerIndex,
|
|
2754
|
+
immutable: B.immutable,
|
|
2751
2755
|
preserveAspectRatio: "none"
|
|
2752
2756
|
},
|
|
2753
|
-
|
|
2757
|
+
d
|
|
2754
2758
|
)
|
|
2755
2759
|
};
|
|
2756
|
-
},
|
|
2760
|
+
}, g = e.data.regions.map(r);
|
|
2757
2761
|
return {
|
|
2758
|
-
command: new G([...
|
|
2762
|
+
command: new G([...o, ...g.map((B) => B.command)]),
|
|
2759
2763
|
followup: async () => {
|
|
2760
2764
|
await A.setSelectionsAndElements(
|
|
2761
2765
|
e.stepName,
|
|
2762
2766
|
[t],
|
|
2763
|
-
|
|
2767
|
+
g.map((B) => B.regionElement),
|
|
2764
2768
|
async () => {
|
|
2765
|
-
|
|
2769
|
+
A.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
2766
2770
|
}
|
|
2767
2771
|
);
|
|
2768
2772
|
}
|
|
@@ -2784,7 +2788,7 @@ class Ja {
|
|
|
2784
2788
|
var r;
|
|
2785
2789
|
return o.id === ((r = a.defaultVariant) == null ? void 0 : r.id);
|
|
2786
2790
|
});
|
|
2787
|
-
return this.selectVariantLambda(e, (s == null ? void 0 : s.id) || "", t
|
|
2791
|
+
return this.selectVariantLambda(e, (s == null ? void 0 : s.id) || "", t);
|
|
2788
2792
|
}
|
|
2789
2793
|
}
|
|
2790
2794
|
return null;
|
|
@@ -2808,21 +2812,21 @@ class Ja {
|
|
|
2808
2812
|
const a = await this.selectVariantLambda(e, t, A);
|
|
2809
2813
|
a && (a.command && A.getCommandDispatcher()(a.command), a.followup && await a.followup());
|
|
2810
2814
|
}
|
|
2811
|
-
async selectVariantLambda(e, t, A
|
|
2812
|
-
const
|
|
2815
|
+
async selectVariantLambda(e, t, A) {
|
|
2816
|
+
const a = e.option;
|
|
2817
|
+
if (!a)
|
|
2818
|
+
return null;
|
|
2819
|
+
const n = a.variants;
|
|
2813
2820
|
if (!n)
|
|
2814
2821
|
return null;
|
|
2815
|
-
const i = n.
|
|
2822
|
+
const i = n.length > 1 ? n.find((s) => s.id === t) : n[0];
|
|
2816
2823
|
if (!i)
|
|
2817
|
-
return null;
|
|
2818
|
-
const s = i.length > 1 ? i.find((o) => o.id === t) : i[0];
|
|
2819
|
-
if (!s)
|
|
2820
2824
|
throw new Error("Failed to find selected variant in step variants, this should never happen!");
|
|
2821
2825
|
return {
|
|
2822
2826
|
command: void 0,
|
|
2823
2827
|
followup: async () => {
|
|
2824
|
-
await A.setSelectionsAndElements(e.stepName, [
|
|
2825
|
-
|
|
2828
|
+
await A.setSelectionsAndElements(e.stepName, [i], [], async () => {
|
|
2829
|
+
A.setMandatoryFulfilled(e.stepName, !0);
|
|
2826
2830
|
});
|
|
2827
2831
|
}
|
|
2828
2832
|
};
|
|
@@ -2934,7 +2938,7 @@ class La {
|
|
|
2934
2938
|
};
|
|
2935
2939
|
} else {
|
|
2936
2940
|
const r = (d) => {
|
|
2937
|
-
const w = n.find((
|
|
2941
|
+
const w = n.find((f) => f.panelId === d.panelId);
|
|
2938
2942
|
if (!w)
|
|
2939
2943
|
throw new z(d);
|
|
2940
2944
|
const E = s(), h = `
|
|
@@ -2957,18 +2961,18 @@ class La {
|
|
|
2957
2961
|
fill="${E}"
|
|
2958
2962
|
/>
|
|
2959
2963
|
</svg>
|
|
2960
|
-
`,
|
|
2961
|
-
|
|
2962
|
-
const
|
|
2964
|
+
`, C = {};
|
|
2965
|
+
C[this.shapeFillId] = { browserValue: E };
|
|
2966
|
+
const u = J();
|
|
2963
2967
|
return {
|
|
2964
|
-
id:
|
|
2968
|
+
id: u,
|
|
2965
2969
|
region: d,
|
|
2966
2970
|
command: new T(
|
|
2967
2971
|
{
|
|
2968
2972
|
stepRegion: d,
|
|
2969
2973
|
stepName: e.stepName,
|
|
2970
|
-
colors:
|
|
2971
|
-
id:
|
|
2974
|
+
colors: C,
|
|
2975
|
+
id: u,
|
|
2972
2976
|
svg: h,
|
|
2973
2977
|
type: k.Illustration,
|
|
2974
2978
|
y: d.top,
|
|
@@ -3275,24 +3279,24 @@ class Ka {
|
|
|
3275
3279
|
if (o && l) {
|
|
3276
3280
|
const d = (r = o.variants) == null ? void 0 : r.find((w) => w.id === l);
|
|
3277
3281
|
if (d) {
|
|
3278
|
-
const w = await this.fontDataFromVariant(d), E = s.map((
|
|
3282
|
+
const w = await this.fontDataFromVariant(d), E = s.map((f) => ({ id: f.id, region: f.stepRegion })), h = (g = a.storage) == null ? void 0 : g.color, C = (B = a.storage) == null ? void 0 : B.text;
|
|
3279
3283
|
await t.setSelectionsAndElements(
|
|
3280
3284
|
e.stepName,
|
|
3281
3285
|
[d],
|
|
3282
3286
|
E,
|
|
3283
3287
|
async () => {
|
|
3284
|
-
t.updateMetadata(e.stepName, { color: h, text:
|
|
3285
|
-
const
|
|
3286
|
-
t.getCommandDispatcher()(
|
|
3288
|
+
t.updateMetadata(e.stepName, { color: h, text: C }), t.updateStorage(e.stepName, { text: C, inputText: C });
|
|
3289
|
+
const f = s.map((p) => new mt(p.id, w)), Q = new G(f);
|
|
3290
|
+
t.getCommandDispatcher()(Q);
|
|
3287
3291
|
}
|
|
3288
3292
|
);
|
|
3289
|
-
const { command:
|
|
3290
|
-
|
|
3293
|
+
const { command: u } = j.updateInputText(
|
|
3294
|
+
C || "",
|
|
3291
3295
|
s,
|
|
3292
3296
|
e,
|
|
3293
3297
|
t
|
|
3294
3298
|
);
|
|
3295
|
-
|
|
3299
|
+
u && t.getCommandDispatcher()(u);
|
|
3296
3300
|
}
|
|
3297
3301
|
}
|
|
3298
3302
|
}
|
|
@@ -3374,7 +3378,7 @@ class Ka {
|
|
|
3374
3378
|
), w = l.flatMap((h) => h.commands);
|
|
3375
3379
|
if (o) {
|
|
3376
3380
|
const h = l.map(
|
|
3377
|
-
(
|
|
3381
|
+
(C) => new Oe(C.regionElement.id, o)
|
|
3378
3382
|
);
|
|
3379
3383
|
w.push(...h);
|
|
3380
3384
|
}
|
|
@@ -3404,21 +3408,21 @@ class Ka {
|
|
|
3404
3408
|
if (!d)
|
|
3405
3409
|
throw new Ge("Failed to find layout for region: " + B.panelId);
|
|
3406
3410
|
const h = A.colorOption;
|
|
3407
|
-
let
|
|
3411
|
+
let C;
|
|
3408
3412
|
if (h && h.variants) {
|
|
3409
3413
|
const N = h.variants.find((H) => {
|
|
3410
3414
|
var O;
|
|
3411
3415
|
return H.id === ((O = h.defaultVariant) == null ? void 0 : O.id);
|
|
3412
3416
|
}) || h.variants[0];
|
|
3413
|
-
|
|
3417
|
+
C = this.createTextFillSpotColor(h, N), i.updateStorage(e, {
|
|
3414
3418
|
colorProfileAssetKey: (E = h.colorProfile) == null ? void 0 : E.key
|
|
3415
3419
|
});
|
|
3416
3420
|
}
|
|
3417
|
-
const
|
|
3421
|
+
const u = await this.getDefaultColor(A), f = u || "#000000", Q = {
|
|
3418
3422
|
stepRegion: B,
|
|
3419
3423
|
stepName: e,
|
|
3420
3424
|
align: this.textAlign(A),
|
|
3421
|
-
fill: n.color ? n.color :
|
|
3425
|
+
fill: n.color ? n.color : f,
|
|
3422
3426
|
fontSize: A.size || ze,
|
|
3423
3427
|
fontData: a,
|
|
3424
3428
|
id: w,
|
|
@@ -3437,35 +3441,35 @@ class Ka {
|
|
|
3437
3441
|
verticalAlign: A.verticalAlign || "middle",
|
|
3438
3442
|
curved: A.curved,
|
|
3439
3443
|
paths: A.paths,
|
|
3440
|
-
fillSpotColorDefinition:
|
|
3441
|
-
},
|
|
3442
|
-
if (!
|
|
3444
|
+
fillSpotColorDefinition: C
|
|
3445
|
+
}, p = [], m = /* @__PURE__ */ new Map(), I = /* @__PURE__ */ new Map();
|
|
3446
|
+
if (!Q.fontData)
|
|
3443
3447
|
throw new b("Failed to resolve font data for text.");
|
|
3444
3448
|
const [F, y] = Me(
|
|
3445
|
-
|
|
3446
|
-
|
|
3449
|
+
Q.fontSize,
|
|
3450
|
+
Q.fontData,
|
|
3447
3451
|
{
|
|
3448
|
-
left:
|
|
3449
|
-
top:
|
|
3450
|
-
width:
|
|
3451
|
-
height:
|
|
3452
|
-
rotation:
|
|
3452
|
+
left: Q.x,
|
|
3453
|
+
top: Q.y,
|
|
3454
|
+
width: Q.width,
|
|
3455
|
+
height: Q.height,
|
|
3456
|
+
rotation: Q.rotation,
|
|
3453
3457
|
panelId: ""
|
|
3454
3458
|
},
|
|
3455
3459
|
[o],
|
|
3456
3460
|
{ size: A.size, minSize: A.minSize, maxSize: A.maxSize }
|
|
3457
3461
|
);
|
|
3458
|
-
m.set(
|
|
3462
|
+
m.set(Q.id, F), I.set(Q.id, y);
|
|
3459
3463
|
const Y = A.curved || A.vertical ? o : (y || []).join(`
|
|
3460
3464
|
`);
|
|
3461
|
-
|
|
3462
|
-
this.generateTextChangeCommandsForRegion(F, A,
|
|
3465
|
+
p.push(
|
|
3466
|
+
this.generateTextChangeCommandsForRegion(F, A, Q.id, Y)
|
|
3463
3467
|
);
|
|
3464
|
-
const S = new T(
|
|
3468
|
+
const S = new T(Q, d);
|
|
3465
3469
|
return {
|
|
3466
3470
|
regionElement: { id: w, region: B },
|
|
3467
|
-
commands: [S, ...
|
|
3468
|
-
newElement:
|
|
3471
|
+
commands: [S, ...p],
|
|
3472
|
+
newElement: Q,
|
|
3469
3473
|
fontData: a
|
|
3470
3474
|
};
|
|
3471
3475
|
} catch (h) {
|
|
@@ -3500,53 +3504,53 @@ class Ka {
|
|
|
3500
3504
|
*/
|
|
3501
3505
|
async changeInputTextWithRegion(e, t, A, a, n, i, s, o, r, g) {
|
|
3502
3506
|
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), w = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map();
|
|
3503
|
-
for (const
|
|
3504
|
-
if (
|
|
3505
|
-
const [
|
|
3507
|
+
for (const Q of d)
|
|
3508
|
+
if (Q.region) {
|
|
3509
|
+
const [p, m] = Me(
|
|
3506
3510
|
t,
|
|
3507
3511
|
A,
|
|
3508
|
-
|
|
3512
|
+
Q.region,
|
|
3509
3513
|
[l],
|
|
3510
3514
|
{ size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
|
|
3511
3515
|
);
|
|
3512
|
-
w.set(
|
|
3516
|
+
w.set(Q.id, p), E.set(Q.id, m);
|
|
3513
3517
|
}
|
|
3514
|
-
const
|
|
3518
|
+
const C = (() => {
|
|
3515
3519
|
if (e.data && e.data.maxLength && l.length > e.data.maxLength)
|
|
3516
3520
|
return g && g(!0), { info: "0" };
|
|
3517
|
-
const
|
|
3518
|
-
for (const m of
|
|
3519
|
-
for (const
|
|
3520
|
-
const F =
|
|
3521
|
+
const Q = i.getProfanities(), p = $e(l.toLowerCase());
|
|
3522
|
+
for (const m of p)
|
|
3523
|
+
for (const I in Q) {
|
|
3524
|
+
const F = Q[I].toLowerCase().replace(/\s/g, "");
|
|
3521
3525
|
if (m === F)
|
|
3522
3526
|
return o(!0), { error: "Blocked profanity." };
|
|
3523
3527
|
}
|
|
3524
3528
|
return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
|
|
3525
|
-
`) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((
|
|
3529
|
+
`) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((I) => I) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - l.length).toString() });
|
|
3526
3530
|
})();
|
|
3527
|
-
if (
|
|
3528
|
-
r(
|
|
3531
|
+
if (C.error) {
|
|
3532
|
+
r(C.error);
|
|
3529
3533
|
return;
|
|
3530
3534
|
}
|
|
3531
|
-
if (r(`${
|
|
3535
|
+
if (r(`${C.info} characters remaining` || ""), g)
|
|
3532
3536
|
return;
|
|
3533
3537
|
i.updateStorage(e.stepName, { text: B }), i.updateMetadata(e.stepName, {
|
|
3534
3538
|
text: this.injectReplaceableText(B, e.data)
|
|
3535
3539
|
}), n.defaultCleared && i.setMandatoryFulfilled(e.stepName, !0);
|
|
3536
|
-
const
|
|
3537
|
-
for (const
|
|
3538
|
-
const
|
|
3540
|
+
const u = [];
|
|
3541
|
+
for (const Q of d) {
|
|
3542
|
+
const p = e.data.curved ? l : (E.get(Q.id) || []).join(`
|
|
3539
3543
|
`);
|
|
3540
|
-
|
|
3544
|
+
u.push(
|
|
3541
3545
|
this.generateTextChangeCommandsForRegion(
|
|
3542
|
-
w.get(
|
|
3546
|
+
w.get(Q.id) || 1,
|
|
3543
3547
|
e.data,
|
|
3544
|
-
|
|
3545
|
-
|
|
3548
|
+
Q.id,
|
|
3549
|
+
p
|
|
3546
3550
|
)
|
|
3547
3551
|
);
|
|
3548
3552
|
}
|
|
3549
|
-
return new G(
|
|
3553
|
+
return new G(u);
|
|
3550
3554
|
}
|
|
3551
3555
|
}
|
|
3552
3556
|
const j = new Ka();
|
|
@@ -4990,16 +4994,16 @@ class $a extends gt {
|
|
|
4990
4994
|
}
|
|
4991
4995
|
brandSvg(e, t) {
|
|
4992
4996
|
const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
|
|
4993
|
-
const
|
|
4994
|
-
|
|
4995
|
-
const
|
|
4996
|
-
|
|
4997
|
+
const p = R("g"), m = R("defs");
|
|
4998
|
+
p.appendChild(m), m.appendChild(gA(3, 7, 4, "shadow"));
|
|
4999
|
+
const I = R("g");
|
|
5000
|
+
p.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = A;
|
|
4997
5001
|
const F = R("g");
|
|
4998
|
-
|
|
5002
|
+
p.appendChild(F), F.setAttribute("fill", "red"), F.setAttribute("stroke", "red"), F.setAttribute("stroke-width", "9"), F.innerHTML = A;
|
|
4999
5003
|
const y = R("g");
|
|
5000
|
-
|
|
5004
|
+
p.appendChild(y), y.setAttribute("fill", "#9d2621"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = A;
|
|
5001
5005
|
const Y = R("g");
|
|
5002
|
-
return
|
|
5006
|
+
return p.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = A, new dt(p).transform(([N, H]) => [N, H + (n / 2 - N) ** 2 / (n * 2.9)]), p;
|
|
5003
5007
|
}, [o, r, g] = rA(t);
|
|
5004
5008
|
if (!o)
|
|
5005
5009
|
return "";
|
|
@@ -5007,14 +5011,14 @@ class $a extends gt {
|
|
|
5007
5011
|
o.appendChild(B), cA(o, B, t);
|
|
5008
5012
|
const l = r * 0.23, d = g * 0.94, w = g * 0.04, E = r * 0.53, h = R("g");
|
|
5009
5013
|
o.appendChild(h), h.setAttribute("transform", `translate(${w} ${E}) rotate(-21)`);
|
|
5010
|
-
const
|
|
5011
|
-
|
|
5012
|
-
const
|
|
5013
|
-
h.appendChild(
|
|
5014
|
-
const
|
|
5015
|
-
|
|
5016
|
-
const
|
|
5017
|
-
return Bt(
|
|
5014
|
+
const C = lt(l, d);
|
|
5015
|
+
C.setAttribute("opacity", "0"), h.appendChild(C);
|
|
5016
|
+
const u = R("g");
|
|
5017
|
+
h.appendChild(u);
|
|
5018
|
+
const f = s();
|
|
5019
|
+
u.appendChild(f);
|
|
5020
|
+
const Q = st(i);
|
|
5021
|
+
return Bt(u, Q, l, d), lA(o.outerHTML);
|
|
5018
5022
|
}
|
|
5019
5023
|
}
|
|
5020
5024
|
const _a = "data:application/octet-stream;base64,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ZWxmIE1ha2VyIDIuMy41AABNAGEAbAB0AGUAcwBlAHIAcwBSAGUAZwB1AGwAYQByAABNYWx0ZXNlcnNSZWd1bGFyAABNAGEAbAB0AGUAcwBlAHIAcwAATWFsdGVzZXJzAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAAAAAAACAAAAAAAA/4MAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAABAAIBAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCsAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAljb250cm9sTEYJY29udHJvbENSB0FwLmxpZ2EHQWoubGlnYQdFdC5saWdhB0VmLmxpZ2EHRWoubGlnYQdFay5saWdhB0VsLmxpZ2EHRWIubGlnYQdGdC5saWdhB0ZoLmxpZ2EHRmsubGlnYQdGbC5saWdhB0ZiLmxpZ2EHSHQubGlnYQdIZi5saWdhB0l0LmxpZ2EHSXAubGlnYQdJZi5saWdhB0lqLmxpZ2EHSWwubGlnYQdJYi5saWdhB0p0LmxpZ2EHSmYubGlnYQdKaC5saWdhB0prLmxpZ2EHSmwubGlnYQdKYi5saWdhB0t0LmxpZ2EHS3AubGlnYQdLeS5saWdhB0xqLmxpZ2EHTWoubGlnYQdNaC5saWdhB01mLmxpZ2EHTnQubGlnYQdOZi5saWdhB09mLmxpZ2EHT3oubGlnYQdQcS5saWdhB1B3LmxpZ2EHUHIubGlnYQdQdC5saWdhB1B5LmxpZ2EHUHUubGlnYQdQaS5saWdhB1BmLmxpZ2EHUGgubGlnYQdQai5saWdhB1BrLmxpZ2EHUGwubGlnYQdQei5saWdhB1B4LmxpZ2EHUHYubGlnYQdQYi5saWdhB1BuLmxpZ2EHUG0ubGlnYQdScC5saWdhB1JmLmxpZ2EHUmoubGlnYQdUdC5saWdhB1RmLmxpZ2EHVGgubGlnYQdUay5saWdhB1RsLmxpZ2EHVGIubGlnYQdVdC5saWdhB1VzLmxpZ2EHVWYubGlnYQdWdC5saWdhB1ZzLmxpZ2EHVmYubGlnYQdWbC5saWdhB1d0LmxpZ2EHV2YubGlnYQdYcC5saWdhB1l0LmxpZ2EHWWkubGlnYQdZZi5saWdhB1loLmxpZ2EHWWwubGlnYQdZay5saWdhB1liLmxpZ2EHQWYubGlnYQdDeS5saWdhB0VoLmxpZ2EHR3IubGlnYQdPcC5saWdhB2J0LmxpZ2EHYnIubGlnYQdiZi5saWdhB2JqLmxpZ2EHYnoubGlnYQdkdC5saWdhB2VmLmxpZ2EHZnQubGlnYQdmaC5saWdhB2ZiLmxpZ2EHZmsubGlnYQdnai5saWdhB2pqLmxpZ2EHeWoubGlnYQd0dC5saWdhB3RmLmxpZ2EHdGgubGlnYQd0aS5saWdhB3RrLmxpZ2EHdGwubGlnYQh0dGgubGlnYQhlZmYubGlnYQhlZmIubGlnYQdmZi5saWdhB2ZpLmxpZ2EHZmwubGlnYQAAAAAAAAH//wACAAEAAAAMAAAAHAAAAAIAAgADADoAAQA7AKsAAgAEAAAAAgAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQQIAB0AQABaAGQAngDIANIA5AEWAUgBYgFsAYYBmAGyAkQCXgKQAqoCzALeAugDIgNMA1YDdAOuA7gDwgP+AAMACAAOABQAjQACACUAPAACACkAOwACAC8AAQAEAI4AAgA4AAcAEAAWABwAIgAoAC4ANACPAAIAJwBCAAIAIQBBAAIAKwBAAAIAKgA/AAIAKQA+AAIAJQA9AAIAMwAFAAwAEgAYAB4AJABHAAIAIQBGAAIAKwBFAAIAKgBEAAIAJwBDAAIAMwABAAQAkAACADEAAgAGAAwASQACACUASAACADMABgAOABQAGgAgACYALABPAAIAIQBOAAIAKwBNAAIAKQBMAAIAJQBLAAIALwBKAAIAMwAGAA4AFAAaACAAJgAsAFUAAgAhAFQAAgArAFMAAgAqAFIAAgAnAFEAAgAlAFAAAgAzAAMACAAOABQAWAACADgAVwACAC8AVgACADMAAQAEAFkAAgApAAMACAAOABQAXAACACUAWwACACcAWgACACkAAgAGAAwAXgACACUAXQACADMAAwAIAA4AFACRAAIALwBgAAIAOQBfAAIAJQASACYALAAyADgAPgBEAEoAUABWAFwAYgBoAG4AdAB6AIAAhgCMAHIAAgAsAHEAAgAtAHAAAgAhAG8AAgA1AG4AAgA3AG0AAgA5AGwAAgArAGsAAgAqAGoAAgApAGkAAgAnAGgAAgAlAGcAAgAoAGYAAgA0AGUAAgA4AGQAAgAzAGMAAgAxAGIAAgA2AGEAAgAwAAMACAAOABQAdQACACkAdAACACUAcwACAC8ABgAOABQAGgAgACYALAB7AAIAIQB6AAIAKwB5AAIAKgB4AAIAJwB3AAIAJQB2AAIAMwADAAgADgAUAH4AAgAlAH0AAgAyAHwAAgAzAAQACgAQABYAHACCAAIAKwCBAAIAJQCAAAIAMgB/AAIAMwACAAYADACEAAIAJQCDAAIAMwABAAQAhQACAC8ABwAQABYAHAAiACgALgA0AIwAAgAhAIsAAgAqAIoAAgArAIkAAgAnAIgAAgAlAIcAAgAoAIYAAgAzAAUADAASABgAHgAkAJYAAgA5AJUAAgApAJQAAgAlAJMAAgAxAJIAAgAzAAEABACXAAIAMwADAAgAEAAYAKgAAwAlACEApwADACUAJQCYAAIAJQAHABAAFgAcACIAKAAuADQAqwACACsAqgACACgAqQACACUAnAACACoAmwACACEAmgACACcAmQACADMAAQAEAJ0AAgApAAEABACeAAIAKQAHABAAGAAeACQAKgAwADYApgADADMAJwClAAIAKwCkAAIAKgCjAAIAKACiAAIAJwChAAIAJQCgAAIAMwABAAQAnwACACkAAQAdAAYACAAKAAsADAANAA4ADwAQABEAEgATABQAFQAXABkAGgAbABwAHQAeACEAIwAkACUAJgApADMAOAAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFrZXJuAAgAAAABAAAAAQAEAAIAAAABAAgAAQPGAAQAAABEAJIAnADSAOABIgEoATYBPAFKAVABXgFkAW4BfAGKAawBsgHAAcYB1AHiAewB/gIIAhYCSAJiAnAChgKcAqoCvALKAtAC6gL0AvoDAAMKAxADGgMgAyYDLAMyAzgDOAMyAz4DRANOAz4DVANaA2ADIANmA2wDcgN4A34DiAOOA5gDngOkA7IDvAACAC7//AA3//IADQAl/+oAKP/8ACn/9AAq//AAK//6ACz//gAt//4AMf/qADP//AA0//wANf/+ADb/+AA5//QAAwAt//wALv/8ADb//AAQACT//AAl/+wAJv/6ACf//AAp/+wAKv/0ACv/+gAs//gALf/8AC//7gAx//gAMv/0ADT/9gA3/+oAOP/6ADn/5AABADf/+gADADX//AA3/+gAOf/6AAEALv/2AAMAKP/8ACn/6AAy/+QAAQAu//IAAwAo/+4AL//2ADX/5gABACT/8AACABgAAgAoAAQAAwAo//4ALv/wADL/+AADACf/9gAv/+4Ao//sAAgAKf/qACv/9AAu//wAL//uADH/7gAy//IAN//mAJX/9AABADYADgADACAABAAjAAQAM//4AAEAMv/8AAMAJv/+ACr/+AA3//4AAwAo//gALv/0AJn/7AACACMAAgAl/+wABAAk//wAL//8ADT/9AA4//4AAgAt//IAq//iAAMAJf/sACb/+AA3//wADAAk//wAJv/+ACj/+gAp/+AAK//+ACz/9gAt//wAL//qADH/7AAy//IAN//cAKP/4gAGACQAAgAl/9oAK//yAC//4gAx/+gAMv/8AAMAKQB+ADL/7ACeAIgABQAg//wAIv/4ACb//AAu//YANQAEAAUAKf/0ACr/+AAv//QAM//mAKP/3gADACEAHAAkAAIALv/4AAQAJf/0AC3//gAv//wAmf/8AAMAJP/wACf/+AAp/+4AAQAk//oABgAg//QAIf/wACj/9gAu/+wAL//0ADP/9AACACH//gA3//IAAQApAEIAAQAnACgAAgAzADQAqgAoAAEAMwA0AAIAMwAyAKEARgABADL/6gABADMALAABACkANAABAJoAGAABADMAMgABACkAOAABADMAMAACACUAEgAzAC4AAQApAHgAAQApADYAAQAzAC4AAQAzADgAAQAzAEIAAQAzAEwAAQAz//IAAQAnAEgAAgAl/+4Amv/oAAEAKQBiAAIAKQBaAJ4AUAABACkAVgABAKEARAADADMANgCaABIAogBKAAIAJwAsAKEARgACAC3/8gA3/+oAAQBEAAYABwAIAAkACgAMABEAFAAVABgAHQAgACEAIgAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOQA8AD0APgBIAEkASwBMAE0AUABRAFkAWgBcAF4AXwBhAGgAagB+AIEAhACIAI0AkQCYAJoAnQCeAJ8AoAChAKkAqgAAAAAAAQAAAADUGBYRAAAAANfpcqUAAAAA1+lypQ==";
|
|
@@ -5034,34 +5038,34 @@ class en extends gt {
|
|
|
5034
5038
|
}
|
|
5035
5039
|
brandSvg(e, t, A) {
|
|
5036
5040
|
const a = e.toSVG(2), n = e.getBoundingBox(), i = n.y2 - n.y1, s = n.x2 - n.x1, o = e.toPathData(3), r = () => {
|
|
5037
|
-
const
|
|
5038
|
-
|
|
5041
|
+
const I = R("g"), F = R("g");
|
|
5042
|
+
I.appendChild(F), F.setAttribute("stroke", "#5C1A0D"), F.setAttribute("stroke-width", "4"), F.setAttribute("transform", "translate(1,1)"), F.innerHTML = a;
|
|
5039
5043
|
const y = R("g");
|
|
5040
|
-
|
|
5044
|
+
I.appendChild(y), y.setAttribute("fill", "#FFE386"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = a;
|
|
5041
5045
|
const Y = R("g");
|
|
5042
|
-
|
|
5043
|
-
const S = new dt(
|
|
5046
|
+
I.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = a;
|
|
5047
|
+
const S = new dt(I);
|
|
5044
5048
|
return S.transform(([N, H]) => [N, H + ((s - N) * H) ** 2 / (s * 5e4)]), S.transform(([N, H]) => [
|
|
5045
5049
|
N,
|
|
5046
5050
|
H + (s / 3 - N) ** 2 / s * this.indicator(N < s / 3)
|
|
5047
|
-
]), S.transform(([N, H]) => [N - (i - H) * (s - N) / 800, H]),
|
|
5051
|
+
]), S.transform(([N, H]) => [N - (i - H) * (s - N) / 800, H]), I;
|
|
5048
5052
|
}, [g, B, l] = rA(t);
|
|
5049
5053
|
if (!g)
|
|
5050
5054
|
return "";
|
|
5051
5055
|
const d = R("defs");
|
|
5052
5056
|
g.appendChild(d), cA(g, d, t);
|
|
5053
|
-
let w, E, h,
|
|
5054
|
-
A ? (w = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), h = l * 0.22,
|
|
5055
|
-
const
|
|
5056
|
-
g.appendChild(
|
|
5057
|
-
const
|
|
5058
|
-
|
|
5059
|
-
const
|
|
5060
|
-
|
|
5061
|
-
const
|
|
5062
|
-
|
|
5057
|
+
let w, E, h, C;
|
|
5058
|
+
A ? (w = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), h = l * 0.22, C = B * 0.32) : (w = B * 0.22 * (1 + 0.1), E = l * 0.8, h = l * 0.067, C = B * 0.33);
|
|
5059
|
+
const u = R("g");
|
|
5060
|
+
g.appendChild(u), u.setAttribute("transform", `translate(${h} ${C}) rotate(-10)`);
|
|
5061
|
+
const f = lt(w, E);
|
|
5062
|
+
f.setAttribute("opacity", "0"), u.appendChild(f);
|
|
5063
|
+
const Q = R("g");
|
|
5064
|
+
u.appendChild(Q);
|
|
5065
|
+
const p = r();
|
|
5066
|
+
Q.appendChild(p);
|
|
5063
5067
|
const m = st(o);
|
|
5064
|
-
return Bt(
|
|
5068
|
+
return Bt(Q, m, w, E), g.outerHTML;
|
|
5065
5069
|
}
|
|
5066
5070
|
// 1 if true, 0 if false.
|
|
5067
5071
|
}
|
|
@@ -5077,21 +5081,21 @@ class An extends gt {
|
|
|
5077
5081
|
return this.svgElement(e, t);
|
|
5078
5082
|
}
|
|
5079
5083
|
svgElement(e, t) {
|
|
5080
|
-
const A = it(tn), n = e !== "" ? ((
|
|
5081
|
-
const I = R("g");
|
|
5082
|
-
I.classList.add("module-text-group");
|
|
5083
|
-
const p = R("defs");
|
|
5084
|
-
I.appendChild(p), p.appendChild(gA(0, 2, 2, "shadow"));
|
|
5085
|
-
const Q = R("path");
|
|
5086
|
-
Q.setAttribute("d", g), Q.setAttribute("stroke", "black"), Q.setAttribute("stroke-width", "3"), p.appendChild(Q);
|
|
5087
|
-
const m = R("g");
|
|
5088
|
-
m.classList.add("module-layer0"), I.appendChild(m), m.setAttribute("filter", "url(#shadow)"), m.innerHTML = Q.outerHTML;
|
|
5084
|
+
const A = it(tn), n = e !== "" ? ((f) => f.charAt(0).toUpperCase() + f.substr(1).toLowerCase())(e) : "", i = A.getPath(n, 0, 72, 72), s = i.toSVG(2), o = i.getBoundingBox(), r = o.x2 - o.x1, g = i.toPathData(3), B = () => {
|
|
5089
5085
|
const f = R("g");
|
|
5090
|
-
f.classList.add("module-
|
|
5086
|
+
f.classList.add("module-text-group");
|
|
5087
|
+
const Q = R("defs");
|
|
5088
|
+
f.appendChild(Q), Q.appendChild(gA(0, 2, 2, "shadow"));
|
|
5089
|
+
const p = R("path");
|
|
5090
|
+
p.setAttribute("d", g), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), Q.appendChild(p);
|
|
5091
|
+
const m = R("g");
|
|
5092
|
+
m.classList.add("module-layer0"), f.appendChild(m), m.setAttribute("filter", "url(#shadow)"), m.innerHTML = p.outerHTML;
|
|
5093
|
+
const I = R("g");
|
|
5094
|
+
I.classList.add("module-layer1"), f.appendChild(I), I.setAttribute("stroke-width", "3"), I.setAttribute("stroke", "rgb(45,41,38)"), I.setAttribute("fill", "rgb(45,41,38)"), I.setAttribute("transform", "translate(0.5,0)"), I.innerHTML = s;
|
|
5091
5095
|
const F = R("g");
|
|
5092
|
-
F.classList.add("module-layer2"),
|
|
5096
|
+
F.classList.add("module-layer2"), f.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML = s;
|
|
5093
5097
|
const y = R("g");
|
|
5094
|
-
return y.classList.add("module-layer3"),
|
|
5098
|
+
return y.classList.add("module-layer3"), f.appendChild(y), y.setAttribute("fill", "white"), y.innerHTML = s, new dt(f).transform(([S, N]) => [S, N + (r / 2 - S) ** 2 / (r * 6)]), f;
|
|
5095
5099
|
}, l = R("g");
|
|
5096
5100
|
l.classList.add("module-root");
|
|
5097
5101
|
const d = R("defs");
|
|
@@ -5102,10 +5106,10 @@ class An extends gt {
|
|
|
5102
5106
|
E.setAttribute("opacity", "0"), w.appendChild(E);
|
|
5103
5107
|
const h = R("g");
|
|
5104
5108
|
h.classList.add("module-text-enclosure"), l.appendChild(h);
|
|
5105
|
-
const
|
|
5106
|
-
h.appendChild(
|
|
5107
|
-
const
|
|
5108
|
-
return Bt(h,
|
|
5109
|
+
const C = B();
|
|
5110
|
+
h.appendChild(C);
|
|
5111
|
+
const u = st(g);
|
|
5112
|
+
return Bt(h, u, t.height, t.width, 0.35, 0.65), lA(l.outerHTML);
|
|
5109
5113
|
}
|
|
5110
5114
|
}
|
|
5111
5115
|
async function BA(c) {
|
|
@@ -5136,17 +5140,17 @@ class Pt extends tA {
|
|
|
5136
5140
|
class nn {
|
|
5137
5141
|
constructor(e, t, A, a, n, i, s, o, r, g, B, l = !1, d, w = !1, E = !1, h = !1) {
|
|
5138
5142
|
this.workflowStatePromiseQueue = new AA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
|
|
5139
|
-
var
|
|
5143
|
+
var f;
|
|
5140
5144
|
if (!this.previewService)
|
|
5141
5145
|
return;
|
|
5142
|
-
const
|
|
5143
|
-
if (
|
|
5144
|
-
for (const [,
|
|
5145
|
-
|
|
5146
|
+
const C = this.getCommandContext().getAllLayouts(), u = (f = this.getLayoutPreviewService()) == null ? void 0 : f.getAll();
|
|
5147
|
+
if (u)
|
|
5148
|
+
for (const [, Q] of u)
|
|
5149
|
+
Q.render(this.getWorkflow(), C, this.getProduct().overlayImageUrl);
|
|
5146
5150
|
}, this.client = e, this.updateTransaction = i, this.commandContext = n, this.reloadedState = B, this.transaction = s, this.readOnly = l, this.singleVariantsRenderable = E, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = t, this.stepSpecificServices = {}, this.profanityFilter = A, this.pollers = [], this.allScenes = [], this.layouts = a, this.product = o, this.previewService = r, this.modelContainer = d, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = g, this.isReloadedTransaction = w, h && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(t), this.initializationPromise.then(() => {
|
|
5147
5151
|
this.initialized = !0;
|
|
5148
|
-
}), this.initializationPromise.catch((
|
|
5149
|
-
throw console.error(
|
|
5152
|
+
}), this.initializationPromise.catch((C) => {
|
|
5153
|
+
throw console.error(C), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
5150
5154
|
}), this.initializationPromise.finally(
|
|
5151
5155
|
() => this.getCommandContext().registerStateCallback(() => {
|
|
5152
5156
|
this.updateStateWithServer(), this.renderLayouts();
|
|
@@ -5539,16 +5543,16 @@ class nn {
|
|
|
5539
5543
|
), this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, await this.ensureStepsAreLoaded();
|
|
5540
5544
|
}
|
|
5541
5545
|
async setSelectionsAndElements(e, t, A, a) {
|
|
5542
|
-
var
|
|
5546
|
+
var p;
|
|
5543
5547
|
const n = this.stepSelections;
|
|
5544
5548
|
this.stepSelections = {
|
|
5545
5549
|
...this.stepSelections,
|
|
5546
5550
|
[e]: { selectedVariants: t }
|
|
5547
|
-
}, this.selectionCost = Object.values(this.stepSelections).reduce((m,
|
|
5551
|
+
}, this.selectionCost = Object.values(this.stepSelections).reduce((m, I) => m + I.selectedVariants.map((F) => F.priceModifier || 0).reduce((F, y) => F + y, 0), 0), this.workflow.steps.forEach((m) => {
|
|
5548
5552
|
se(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1, delete this.stepMetadata[m.stepName], delete this.stepSelections[m.stepName], delete this.storage[m.stepName]);
|
|
5549
5553
|
});
|
|
5550
5554
|
const i = this.allScenes, s = ie(i, n), o = ie(i, this.stepSelections), r = s.map((m) => m.silentSteps).flat(), B = o.map((m) => m.silentSteps).flat().filter(
|
|
5551
|
-
(m) => !r.some((
|
|
5555
|
+
(m) => !r.some((I) => I.stepName === m.stepName)
|
|
5552
5556
|
);
|
|
5553
5557
|
r.forEach((m) => {
|
|
5554
5558
|
se(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1);
|
|
@@ -5562,15 +5566,15 @@ class nn {
|
|
|
5562
5566
|
const E = this.workflow.steps.find((m) => m.stepName === e);
|
|
5563
5567
|
if ((E == null ? void 0 : E.type) === M.Frame) {
|
|
5564
5568
|
const m = this.getStepSpecificServices(e);
|
|
5565
|
-
(
|
|
5566
|
-
}
|
|
5567
|
-
const h = l.map((m) => new ee(m.id)),
|
|
5568
|
-
|
|
5569
|
-
const
|
|
5570
|
-
if (
|
|
5571
|
-
const m =
|
|
5572
|
-
(
|
|
5573
|
-
|
|
5569
|
+
(p = m == null ? void 0 : m.frameService) == null || p.setTargetElements(A.map((I) => I.id));
|
|
5570
|
+
}
|
|
5571
|
+
const h = l.map((m) => new ee(m.id)), C = new pt(this.constructSerializableWorkflow()), u = [...w, ...h, C];
|
|
5572
|
+
u.length > 0 && this.commandContext.apply(new G(u), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
5573
|
+
const f = this.getInvalidModelVariants(), Q = this.modelContainer;
|
|
5574
|
+
if (Q) {
|
|
5575
|
+
const m = f.map(
|
|
5576
|
+
(I) => Q.applyModelVariant(
|
|
5577
|
+
I,
|
|
5574
5578
|
{
|
|
5575
5579
|
contextService: this.getLayoutPreviewService()
|
|
5576
5580
|
},
|
|
@@ -6528,7 +6532,7 @@ const En = async (c) => {
|
|
|
6528
6532
|
N.errors && console.log("Server Error:", L.message);
|
|
6529
6533
|
}), null) : H ?? null;
|
|
6530
6534
|
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await c.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
|
|
6531
|
-
const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = o && et(o, e, !0), h = o && et(o, e, !1),
|
|
6535
|
+
const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = o && et(o, e, !0), h = o && et(o, e, !1), C = async (y) => {
|
|
6532
6536
|
const Y = {};
|
|
6533
6537
|
let S = 0;
|
|
6534
6538
|
if (Object.keys(n).length > 0)
|
|
@@ -6554,12 +6558,12 @@ const En = async (c) => {
|
|
|
6554
6558
|
}
|
|
6555
6559
|
}
|
|
6556
6560
|
return [Y, S];
|
|
6557
|
-
}, [
|
|
6558
|
-
Object.keys(
|
|
6559
|
-
), [
|
|
6560
|
-
Object.keys(
|
|
6561
|
+
}, [u] = await C(!0), f = Object.fromEntries(
|
|
6562
|
+
Object.keys(u).map((y) => [y, u[y].map((Y) => Y.id)])
|
|
6563
|
+
), [Q] = await C(!1), p = Object.fromEntries(
|
|
6564
|
+
Object.keys(Q).map((y) => [
|
|
6561
6565
|
y,
|
|
6562
|
-
|
|
6566
|
+
Q[y].map((Y) => Y.id)
|
|
6563
6567
|
])
|
|
6564
6568
|
);
|
|
6565
6569
|
let m = await s(w, a.id);
|
|
@@ -6591,19 +6595,19 @@ const En = async (c) => {
|
|
|
6591
6595
|
Y.push({ key: S, value: N });
|
|
6592
6596
|
y.metadata = Y;
|
|
6593
6597
|
}
|
|
6594
|
-
if (
|
|
6598
|
+
if (f) {
|
|
6595
6599
|
const Y = [];
|
|
6596
|
-
for (const [S, N] of Object.entries(
|
|
6600
|
+
for (const [S, N] of Object.entries(p))
|
|
6597
6601
|
Y.push({ key: S, ids: N });
|
|
6598
6602
|
y.selectedVariants = Y;
|
|
6599
6603
|
}
|
|
6600
6604
|
return y;
|
|
6601
6605
|
})(),
|
|
6602
|
-
cartSelectionsWithPrices:
|
|
6606
|
+
cartSelectionsWithPrices: u,
|
|
6603
6607
|
cartMetadata: E
|
|
6604
6608
|
};
|
|
6605
6609
|
}, Qn = async (c, e, t, A, a, n, i, s, o, r, g) => {
|
|
6606
|
-
var
|
|
6610
|
+
var C, u;
|
|
6607
6611
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
6608
6612
|
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await EA(
|
|
6609
6613
|
c,
|
|
@@ -6617,7 +6621,7 @@ const En = async (c) => {
|
|
|
6617
6621
|
g
|
|
6618
6622
|
);
|
|
6619
6623
|
o("workflow.steps.finish.finalize.creatingDesign");
|
|
6620
|
-
const w = await En(B), E = (
|
|
6624
|
+
const w = await En(B), E = (C = w == null ? void 0 : w.transaction) == null ? void 0 : C.previewImageLink;
|
|
6621
6625
|
if (!(w != null && w.transaction))
|
|
6622
6626
|
throw new Error("Failed to create design");
|
|
6623
6627
|
o("workflow.steps.finish.finalize.updatingTransaction");
|
|
@@ -6630,7 +6634,7 @@ const En = async (c) => {
|
|
|
6630
6634
|
w == null ? void 0 : w.sku,
|
|
6631
6635
|
d,
|
|
6632
6636
|
E,
|
|
6633
|
-
(
|
|
6637
|
+
(u = w == null ? void 0 : w.processExecution) == null ? void 0 : u.id
|
|
6634
6638
|
);
|
|
6635
6639
|
}, mn = async (c, e, t) => {
|
|
6636
6640
|
e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
@@ -6844,18 +6848,18 @@ class fe {
|
|
|
6844
6848
|
return this.workflowManager;
|
|
6845
6849
|
}
|
|
6846
6850
|
async createPreviewImage(e, t) {
|
|
6847
|
-
var
|
|
6848
|
-
const A = this.workflowManager.getWorkflow(), a = (
|
|
6851
|
+
var u, f;
|
|
6852
|
+
const A = this.workflowManager.getWorkflow(), a = (u = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : u.lookAtAnimation;
|
|
6849
6853
|
if (e) {
|
|
6850
6854
|
if (!a)
|
|
6851
6855
|
throw new Error("Failed to generate cart preview image!");
|
|
6852
|
-
return await ((
|
|
6856
|
+
return await ((f = this.workflowManager.getPreviewService()) == null ? void 0 : f.renderSceneScreenshot(t ?? 512, a)) || "";
|
|
6853
6857
|
}
|
|
6854
6858
|
let n = 2048;
|
|
6855
6859
|
t && t <= 2048 && (n = t);
|
|
6856
|
-
const i = Ne(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((
|
|
6857
|
-
var
|
|
6858
|
-
return ((
|
|
6860
|
+
const i = Ne(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((Q) => {
|
|
6861
|
+
var p;
|
|
6862
|
+
return ((p = Q.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
|
|
6859
6863
|
}) || s[0], B = g.layoutState.layout.previewRegion ? {
|
|
6860
6864
|
x: g.layoutState.layout.previewRegion.left,
|
|
6861
6865
|
y: g.layoutState.layout.previewRegion.top,
|
|
@@ -6883,8 +6887,8 @@ class fe {
|
|
|
6883
6887
|
DOMParser: Jt(),
|
|
6884
6888
|
fetch: tt
|
|
6885
6889
|
})).render();
|
|
6886
|
-
const
|
|
6887
|
-
return i.toDataURL(
|
|
6890
|
+
const C = await this.getCanvasObjectURLAsync(i);
|
|
6891
|
+
return i.toDataURL(C);
|
|
6888
6892
|
}
|
|
6889
6893
|
getStepById(e) {
|
|
6890
6894
|
const t = this.getWorkflowManager().getWorkflow().steps.find((n) => n.stepName === e);
|
|
@@ -6975,13 +6979,13 @@ class fe {
|
|
|
6975
6979
|
d !== void 0 && d.forEach((w) => {
|
|
6976
6980
|
const E = o(w), h = g.has(JSON.stringify(w));
|
|
6977
6981
|
if (h && (E == null ? void 0 : E.getType()) === "Option") {
|
|
6978
|
-
const
|
|
6979
|
-
if (!
|
|
6982
|
+
const C = l.getCurrentVariant();
|
|
6983
|
+
if (!C)
|
|
6980
6984
|
return;
|
|
6981
|
-
r.selectVariant(
|
|
6985
|
+
r.selectVariant(C), g.delete(JSON.stringify(w));
|
|
6982
6986
|
} else if (h && (E == null ? void 0 : E.getType()) === "Text") {
|
|
6983
|
-
const
|
|
6984
|
-
r.setText(
|
|
6987
|
+
const C = l.getText();
|
|
6988
|
+
r.setText(C), g.delete(JSON.stringify(w));
|
|
6985
6989
|
}
|
|
6986
6990
|
});
|
|
6987
6991
|
}));
|
|
@@ -7241,11 +7245,11 @@ const Dn = [
|
|
|
7241
7245
|
return console.error(s), [];
|
|
7242
7246
|
}
|
|
7243
7247
|
}, Mn = async (c, e, t, A) => {
|
|
7244
|
-
var
|
|
7248
|
+
var p, m;
|
|
7245
7249
|
const a = t.data, n = A.option;
|
|
7246
7250
|
if (!n)
|
|
7247
7251
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
7248
|
-
const i = ((
|
|
7252
|
+
const i = ((p = n.variants) == null ? void 0 : p.find((I) => I.id === a.illustrationVariantId)) || be(n);
|
|
7249
7253
|
if (!i)
|
|
7250
7254
|
return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
|
|
7251
7255
|
if (!i.asset)
|
|
@@ -7259,55 +7263,55 @@ const Dn = [
|
|
|
7259
7263
|
return console.error("Failed to read SVG."), [];
|
|
7260
7264
|
Tt(w);
|
|
7261
7265
|
const E = {};
|
|
7262
|
-
LA(w, (
|
|
7263
|
-
Dn.includes(
|
|
7264
|
-
const F =
|
|
7266
|
+
LA(w, (I) => {
|
|
7267
|
+
Dn.includes(I.tagName) && !I.attributes.getNamedItem("fill") && I.setAttribute("fill", "#000000");
|
|
7268
|
+
const F = I.attributes.getNamedItem("fill");
|
|
7265
7269
|
if (F && F.value !== "none") {
|
|
7266
7270
|
const Y = F.value, N = `spiff-fill-${Y.replace(/\W/g, "")}`;
|
|
7267
|
-
|
|
7271
|
+
I.classList.add(N), E[N] = { browserValue: Y };
|
|
7268
7272
|
}
|
|
7269
|
-
const y =
|
|
7273
|
+
const y = I.attributes.getNamedItem("stroke");
|
|
7270
7274
|
if (y && y.value !== "none") {
|
|
7271
7275
|
const Y = y.value, N = `spiff-stroke-${Y.replace(/\W/g, "")}`;
|
|
7272
|
-
|
|
7276
|
+
I.classList.add(N), E[N] = { browserValue: Y };
|
|
7273
7277
|
}
|
|
7274
7278
|
});
|
|
7275
|
-
const
|
|
7276
|
-
if (
|
|
7277
|
-
for (const [
|
|
7278
|
-
for (const y of Object.keys(
|
|
7279
|
+
const C = Ot().serializeToString(w), u = a.colors;
|
|
7280
|
+
if (u) {
|
|
7281
|
+
for (const [I, F] of Object.entries(E))
|
|
7282
|
+
for (const y of Object.keys(u))
|
|
7279
7283
|
if (F.browserValue === y) {
|
|
7280
|
-
E[
|
|
7284
|
+
E[I] = { browserValue: u[y] };
|
|
7281
7285
|
break;
|
|
7282
7286
|
}
|
|
7283
7287
|
}
|
|
7284
|
-
const
|
|
7285
|
-
const F = c.find((Y) => Y.panelId ===
|
|
7288
|
+
const f = (I) => {
|
|
7289
|
+
const F = c.find((Y) => Y.panelId === I.panelId);
|
|
7286
7290
|
if (!F)
|
|
7287
|
-
throw new z(
|
|
7291
|
+
throw new z(I);
|
|
7288
7292
|
const y = J();
|
|
7289
7293
|
return new T(
|
|
7290
7294
|
{
|
|
7291
7295
|
colors: E,
|
|
7292
7296
|
id: y,
|
|
7293
|
-
svg:
|
|
7297
|
+
svg: C,
|
|
7294
7298
|
type: k.Illustration,
|
|
7295
|
-
y:
|
|
7296
|
-
x:
|
|
7297
|
-
rotation:
|
|
7298
|
-
width:
|
|
7299
|
-
height:
|
|
7300
|
-
layer:
|
|
7301
|
-
layerIndex:
|
|
7302
|
-
immutable:
|
|
7299
|
+
y: I.top,
|
|
7300
|
+
x: I.left,
|
|
7301
|
+
rotation: I.rotation,
|
|
7302
|
+
width: I.width,
|
|
7303
|
+
height: I.height,
|
|
7304
|
+
layer: I.layer,
|
|
7305
|
+
layerIndex: I.layerIndex,
|
|
7306
|
+
immutable: I.immutable
|
|
7303
7307
|
},
|
|
7304
7308
|
F
|
|
7305
7309
|
);
|
|
7306
|
-
},
|
|
7310
|
+
}, Q = A.data.regions;
|
|
7307
7311
|
try {
|
|
7308
|
-
return
|
|
7309
|
-
} catch (
|
|
7310
|
-
return console.error(
|
|
7312
|
+
return Q.map(f);
|
|
7313
|
+
} catch (I) {
|
|
7314
|
+
return console.error(I), [];
|
|
7311
7315
|
}
|
|
7312
7316
|
}, Sn = async (c, e, t) => {
|
|
7313
7317
|
const A = await BA(t.data.module), a = e.data, n = (s, o) => {
|
|
@@ -7473,10 +7477,10 @@ const Dn = [
|
|
|
7473
7477
|
}
|
|
7474
7478
|
else {
|
|
7475
7479
|
const r = await _(n, !0), g = (B) => {
|
|
7476
|
-
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "",
|
|
7477
|
-
if (!
|
|
7480
|
+
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", C = Lt().parseFromString(w, "image/svg+xml").firstElementChild;
|
|
7481
|
+
if (!C)
|
|
7478
7482
|
throw new ge("Failed to read SVG.");
|
|
7479
|
-
return Tt(
|
|
7483
|
+
return Tt(C), Ot().serializeToString(C);
|
|
7480
7484
|
};
|
|
7481
7485
|
o.forEach((B) => {
|
|
7482
7486
|
const l = c.find((w) => w.panelId === B.panelId);
|
|
@@ -7507,41 +7511,41 @@ const Dn = [
|
|
|
7507
7511
|
return A;
|
|
7508
7512
|
}, Nn = async (c, e, t, A) => {
|
|
7509
7513
|
const a = [], n = t.data, i = 30, s = (h) => h.vertical ? "center" : h.textAlign || "center", o = () => {
|
|
7510
|
-
var
|
|
7514
|
+
var f;
|
|
7511
7515
|
const h = A.option;
|
|
7512
7516
|
if (!h)
|
|
7513
7517
|
return;
|
|
7514
|
-
const
|
|
7515
|
-
if (!
|
|
7518
|
+
const C = ((f = h.variants) == null ? void 0 : f.find((Q) => Q.id === n.fontVariantId)) || be(h);
|
|
7519
|
+
if (!C || !C.asset)
|
|
7516
7520
|
return;
|
|
7517
|
-
e[A.stepName] = { selectedVariants: [
|
|
7518
|
-
const
|
|
7519
|
-
if (
|
|
7520
|
-
return
|
|
7521
|
+
e[A.stepName] = { selectedVariants: [C] };
|
|
7522
|
+
const u = C.asset.fileLink;
|
|
7523
|
+
if (u)
|
|
7524
|
+
return u;
|
|
7521
7525
|
}, g = await (async () => {
|
|
7522
7526
|
const h = o();
|
|
7523
7527
|
if (!h)
|
|
7524
7528
|
return;
|
|
7525
|
-
const
|
|
7529
|
+
const C = await nt(h);
|
|
7526
7530
|
return {
|
|
7527
7531
|
assetUrl: h,
|
|
7528
|
-
name:
|
|
7532
|
+
name: C.names.fullName.en
|
|
7529
7533
|
};
|
|
7530
7534
|
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = Ze(B, {
|
|
7531
7535
|
vertical: A.data.vertical,
|
|
7532
7536
|
uppercase: A.data.uppercase
|
|
7533
7537
|
}), d = async (h) => {
|
|
7534
|
-
const
|
|
7535
|
-
if (!
|
|
7538
|
+
const C = h.colorOption;
|
|
7539
|
+
if (!C)
|
|
7536
7540
|
return;
|
|
7537
|
-
const
|
|
7538
|
-
return
|
|
7541
|
+
const u = V.getDefaultVariant(C);
|
|
7542
|
+
return u == null ? void 0 : u.color;
|
|
7539
7543
|
}, w = n.color || await d(A.data), E = A.data.regions;
|
|
7540
7544
|
for (const h of E) {
|
|
7541
|
-
const
|
|
7542
|
-
if (!
|
|
7545
|
+
const C = c.find((f) => f.panelId === h.panelId);
|
|
7546
|
+
if (!C)
|
|
7543
7547
|
continue;
|
|
7544
|
-
const
|
|
7548
|
+
const u = {
|
|
7545
7549
|
stepName: t.name,
|
|
7546
7550
|
id: J(),
|
|
7547
7551
|
align: s(A.data),
|
|
@@ -7563,7 +7567,7 @@ const Dn = [
|
|
|
7563
7567
|
y: h.top
|
|
7564
7568
|
};
|
|
7565
7569
|
if (g) {
|
|
7566
|
-
const [
|
|
7570
|
+
const [f, Q] = Me(
|
|
7567
7571
|
A.data.size || i,
|
|
7568
7572
|
g,
|
|
7569
7573
|
h,
|
|
@@ -7582,16 +7586,16 @@ const Dn = [
|
|
|
7582
7586
|
a.push(
|
|
7583
7587
|
new T(
|
|
7584
7588
|
{
|
|
7585
|
-
...
|
|
7586
|
-
fontSize:
|
|
7587
|
-
text:
|
|
7589
|
+
...u,
|
|
7590
|
+
fontSize: f,
|
|
7591
|
+
text: u.curved ? u.text : (Q || []).join(`
|
|
7588
7592
|
`)
|
|
7589
7593
|
},
|
|
7590
|
-
|
|
7594
|
+
C
|
|
7591
7595
|
)
|
|
7592
7596
|
);
|
|
7593
7597
|
} else
|
|
7594
|
-
a.push(new T(
|
|
7598
|
+
a.push(new T(u, C));
|
|
7595
7599
|
}
|
|
7596
7600
|
return a;
|
|
7597
7601
|
}, Hn = (c, e) => c.conditions ? c.conditions.every((t) => {
|
|
@@ -10491,21 +10495,21 @@ class Ni {
|
|
|
10491
10495
|
if (s != null && s.has(e)) {
|
|
10492
10496
|
const h = s.get(e);
|
|
10493
10497
|
if (h && await this.authenticateCustomerId(h)) {
|
|
10494
|
-
const
|
|
10495
|
-
(
|
|
10496
|
-
var
|
|
10497
|
-
return (
|
|
10498
|
+
const u = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
10499
|
+
(f) => {
|
|
10500
|
+
var Q, p;
|
|
10501
|
+
return (p = (Q = f.bundle) == null ? void 0 : Q.transactions) == null ? void 0 : p.some((m) => m.id === e);
|
|
10498
10502
|
}
|
|
10499
10503
|
)) || ((E = (w = this.customer) == null ? void 0 : w.stakeholders) == null ? void 0 : E.find(
|
|
10500
|
-
(
|
|
10501
|
-
var
|
|
10502
|
-
return ((
|
|
10504
|
+
(f) => {
|
|
10505
|
+
var Q;
|
|
10506
|
+
return ((Q = f.transaction) == null ? void 0 : Q.id) === e;
|
|
10503
10507
|
}
|
|
10504
10508
|
));
|
|
10505
|
-
if (
|
|
10509
|
+
if (u)
|
|
10506
10510
|
return Promise.resolve({
|
|
10507
10511
|
success: !0,
|
|
10508
|
-
stakeholderType:
|
|
10512
|
+
stakeholderType: u.type
|
|
10509
10513
|
});
|
|
10510
10514
|
}
|
|
10511
10515
|
}
|
|
@@ -10665,15 +10669,15 @@ class Ni {
|
|
|
10665
10669
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
10666
10670
|
*/
|
|
10667
10671
|
async getExistingBundle(e, t, A, a) {
|
|
10668
|
-
var h, u,
|
|
10672
|
+
var h, C, u, f, Q, p, m, I, F;
|
|
10669
10673
|
const n = P.getMap("bundleOwnerIds"), i = n == null ? void 0 : n.get(e), o = ((h = Object.entries(localStorage).find(([y, Y]) => y.startsWith("CognitoIdentityServiceProvider") && y.endsWith("idToken"))) == null ? void 0 : h[0]) || "", r = localStorage.getItem(o), g = {};
|
|
10670
10674
|
r && !wt(r) && (g.Authorization = `Bearer ${r}`);
|
|
10671
10675
|
const B = {
|
|
10672
10676
|
bundleOwnerId: i,
|
|
10673
10677
|
...g,
|
|
10674
|
-
...(
|
|
10678
|
+
...(C = a == null ? void 0 : a.graphql) == null ? void 0 : C.additionalHeaders
|
|
10675
10679
|
}, l = await x.getShadowGraphqlClient().query({
|
|
10676
|
-
query: Jn(((
|
|
10680
|
+
query: Jn(((f = (u = a == null ? void 0 : a.graphql) == null ? void 0 : u.productCollection) == null ? void 0 : f.eagerFetchProducts) || !1),
|
|
10677
10681
|
variables: {
|
|
10678
10682
|
id: e
|
|
10679
10683
|
},
|
|
@@ -10682,9 +10686,9 @@ class Ni {
|
|
|
10682
10686
|
headers: B
|
|
10683
10687
|
}
|
|
10684
10688
|
});
|
|
10685
|
-
if (!((
|
|
10689
|
+
if (!((Q = l.data) != null && Q.bundles) || ((p = l.data) == null ? void 0 : p.bundles.length) === 0 || !((m = l.data) != null && m.bundles[0]))
|
|
10686
10690
|
throw new Error(`Unable to find bundle: ${e}`);
|
|
10687
|
-
const d = (
|
|
10691
|
+
const d = (I = l.data) == null ? void 0 : I.bundles[0], w = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10688
10692
|
w.set(d.id, d.partner.id), P.setMap("bundlePartnerIds", w);
|
|
10689
10693
|
const E = new xt(this, d, t, A, i, {
|
|
10690
10694
|
additionalHeaders: (F = a == null ? void 0 : a.graphql) == null ? void 0 : F.additionalHeaders
|
|
@@ -10727,36 +10731,36 @@ class Ni {
|
|
|
10727
10731
|
if (!a)
|
|
10728
10732
|
return await this.getWorkflowExperienceDeprecated(e, t, A);
|
|
10729
10733
|
const n = async () => {
|
|
10730
|
-
var
|
|
10734
|
+
var C, u;
|
|
10731
10735
|
const h = x.getShadowGraphqlClient();
|
|
10732
10736
|
if (a.type === "transaction") {
|
|
10733
|
-
const { transactionId:
|
|
10737
|
+
const { transactionId: f, readOnly: Q } = a, p = await h.query({
|
|
10734
10738
|
query: me,
|
|
10735
10739
|
variables: {
|
|
10736
|
-
ids: [
|
|
10740
|
+
ids: [f]
|
|
10737
10741
|
},
|
|
10738
10742
|
errorPolicy: "all",
|
|
10739
10743
|
fetchPolicy: "no-cache"
|
|
10740
10744
|
});
|
|
10741
|
-
if (!((
|
|
10745
|
+
if (!((C = p.data) != null && C.transactions) || p.data.transactions.length === 0)
|
|
10742
10746
|
throw new U("Existing transaction not found.");
|
|
10743
|
-
const m = (
|
|
10747
|
+
const m = (u = p.data) == null ? void 0 : u.transactions[0];
|
|
10744
10748
|
if (!m.workflowId)
|
|
10745
10749
|
throw new U("Existing transaction has no workflow ID.");
|
|
10746
|
-
const
|
|
10750
|
+
const I = await ye(m.workflowId);
|
|
10747
10751
|
if (!m.product)
|
|
10748
10752
|
throw new U("Failed to load transaction, product not available.");
|
|
10749
|
-
return { transaction: m, workflow:
|
|
10753
|
+
return { transaction: m, workflow: I, readOnly: Q };
|
|
10750
10754
|
}
|
|
10751
10755
|
if (a.type === "integration" || a.type === "external") {
|
|
10752
|
-
const
|
|
10753
|
-
const
|
|
10756
|
+
const f = async () => {
|
|
10757
|
+
const I = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
|
|
10754
10758
|
externalIntegrationId: a.externalIntegrationId,
|
|
10755
10759
|
externalProductId: a.externalProductId
|
|
10756
10760
|
}, F = await h.mutate({
|
|
10757
10761
|
mutation: Mt,
|
|
10758
10762
|
variables: {
|
|
10759
|
-
...
|
|
10763
|
+
...I,
|
|
10760
10764
|
workflowId: a.workflowId,
|
|
10761
10765
|
claim: !0
|
|
10762
10766
|
},
|
|
@@ -10771,8 +10775,8 @@ class Ni {
|
|
|
10771
10775
|
if (!y.product)
|
|
10772
10776
|
throw new U("Failed to create transaction, product not available.");
|
|
10773
10777
|
return y;
|
|
10774
|
-
},
|
|
10775
|
-
return { transaction:
|
|
10778
|
+
}, Q = ye(a.workflowId, a == null ? void 0 : a.graphql), [p, m] = await Promise.all([f(), Q]);
|
|
10779
|
+
return { transaction: p, workflow: m };
|
|
10776
10780
|
}
|
|
10777
10781
|
throw new U("No workflow ID provided.");
|
|
10778
10782
|
}, { transaction: i, workflow: s, readOnly: o } = await n();
|
|
@@ -10785,18 +10789,18 @@ class Ni {
|
|
|
10785
10789
|
stateMutationFunc: o ? async () => {
|
|
10786
10790
|
throw new b("State mutation is forbidden in read only mode!");
|
|
10787
10791
|
} : async (h) => {
|
|
10788
|
-
const
|
|
10789
|
-
return this.updateTransactionState({ ...h, context: { transactionOwnerId:
|
|
10792
|
+
const u = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(i.id) || void 0;
|
|
10793
|
+
return this.updateTransactionState({ ...h, context: { transactionOwnerId: u } });
|
|
10790
10794
|
},
|
|
10791
10795
|
readOnly: o,
|
|
10792
10796
|
workflow: s
|
|
10793
10797
|
};
|
|
10794
10798
|
if (a.type === "transaction" && i.workflowState) {
|
|
10795
10799
|
const h = JSON.parse(i.workflowState);
|
|
10796
|
-
r.layouts = Object.values(h.layouts).map((
|
|
10800
|
+
r.layouts = Object.values(h.layouts).map((C) => C.layout), await Ae(h), await ne(h), r.reloadedState = h;
|
|
10797
10801
|
} else if (!o && a.workflowState) {
|
|
10798
10802
|
const h = JSON.parse(a.workflowState);
|
|
10799
|
-
r.layouts = Object.values(h.layouts).map((
|
|
10803
|
+
r.layouts = Object.values(h.layouts).map((C) => C.layout), await Ae(h), await ne(h), r.reloadedState = h;
|
|
10800
10804
|
} else
|
|
10801
10805
|
r.layouts = Ve(
|
|
10802
10806
|
r.transaction,
|
|
@@ -10829,20 +10833,20 @@ class Ni {
|
|
|
10829
10833
|
async getWorkflowExperiences(e, t) {
|
|
10830
10834
|
if (e.length === 0)
|
|
10831
10835
|
throw new U("No options provided!");
|
|
10832
|
-
const A = x.getShadowGraphqlClient(), a = async (
|
|
10836
|
+
const A = x.getShadowGraphqlClient(), a = async (p) => {
|
|
10833
10837
|
var y, Y;
|
|
10834
|
-
if (
|
|
10838
|
+
if (p.length === 0)
|
|
10835
10839
|
return [];
|
|
10836
|
-
const m =
|
|
10840
|
+
const m = p.map((S) => S.option.transactionId), I = await A.query({
|
|
10837
10841
|
query: me,
|
|
10838
10842
|
variables: {
|
|
10839
10843
|
ids: m
|
|
10840
10844
|
},
|
|
10841
10845
|
errorPolicy: "all",
|
|
10842
10846
|
fetchPolicy: "no-cache"
|
|
10843
|
-
}), F =
|
|
10844
|
-
if (F.length !==
|
|
10845
|
-
const S = ((Y = (y =
|
|
10847
|
+
}), F = I.data.transactions;
|
|
10848
|
+
if (F.length !== p.length) {
|
|
10849
|
+
const S = ((Y = (y = I.errors) == null ? void 0 : y[0]) == null ? void 0 : Y.message) || "Unknown error";
|
|
10846
10850
|
throw new U(`Not all transactions were found: ${S}`);
|
|
10847
10851
|
}
|
|
10848
10852
|
return F.map((S, N) => {
|
|
@@ -10850,18 +10854,18 @@ class Ni {
|
|
|
10850
10854
|
return {
|
|
10851
10855
|
transaction: S,
|
|
10852
10856
|
workflowId: S.workflowId,
|
|
10853
|
-
readOnly: ((H =
|
|
10854
|
-
index:
|
|
10857
|
+
readOnly: ((H = p.find((O) => O.option.transactionId === S.id)) == null ? void 0 : H.option.readOnly) ?? !1,
|
|
10858
|
+
index: p[N].index
|
|
10855
10859
|
};
|
|
10856
10860
|
});
|
|
10857
|
-
}, n = async (
|
|
10861
|
+
}, n = async (p) => {
|
|
10858
10862
|
var F, y, Y;
|
|
10859
|
-
if (
|
|
10863
|
+
if (p.length === 0)
|
|
10860
10864
|
return [];
|
|
10861
10865
|
const m = await A.mutate({
|
|
10862
10866
|
mutation: ua,
|
|
10863
10867
|
variables: {
|
|
10864
|
-
inputs:
|
|
10868
|
+
inputs: p.map((S) => ({
|
|
10865
10869
|
integrationProductId: S.option.type === "integration" ? S.option.integrationProductId : void 0,
|
|
10866
10870
|
externalIntegrationId: S.option.type === "external" ? S.option.externalIntegrationId : void 0,
|
|
10867
10871
|
externalProductId: S.option.type === "external" ? S.option.externalProductId : void 0,
|
|
@@ -10871,25 +10875,25 @@ class Ni {
|
|
|
10871
10875
|
},
|
|
10872
10876
|
errorPolicy: "all",
|
|
10873
10877
|
fetchPolicy: "no-cache"
|
|
10874
|
-
}),
|
|
10875
|
-
if (!
|
|
10878
|
+
}), I = (F = m.data) == null ? void 0 : F.transactionCreateMany;
|
|
10879
|
+
if (!I || I.length === 0) {
|
|
10876
10880
|
const S = ((Y = (y = m.errors) == null ? void 0 : y[0]) == null ? void 0 : Y.message) || "Unknown error";
|
|
10877
10881
|
throw new U(`Failed to create transactions: ${S}`);
|
|
10878
10882
|
}
|
|
10879
|
-
return
|
|
10883
|
+
return I.map((S, N) => ({
|
|
10880
10884
|
transaction: S,
|
|
10881
10885
|
workflowId: S.workflowId,
|
|
10882
10886
|
readOnly: !1,
|
|
10883
|
-
index:
|
|
10887
|
+
index: p[N].index
|
|
10884
10888
|
}));
|
|
10885
|
-
}, i = e.map((
|
|
10886
|
-
(
|
|
10889
|
+
}, i = e.map((p, m) => ({ option: p, index: m })), s = i.filter((p) => p.option.type === "transaction"), o = i.filter(
|
|
10890
|
+
(p) => p.option.type === "integration" || p.option.type === "external"
|
|
10887
10891
|
), r = ft(s, 10), g = ft(o, 10), B = (await Promise.all([
|
|
10888
10892
|
...r.map(a),
|
|
10889
10893
|
...g.map(n)
|
|
10890
|
-
])).flat(), l = [...new Set(B.map((
|
|
10894
|
+
])).flat(), l = [...new Set(B.map((p) => p.workflowId))], d = await pA(l, t), w = new Map(d.map((p) => [p.id, p])), E = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (p) => {
|
|
10891
10895
|
var O;
|
|
10892
|
-
const { transaction: m, workflowId:
|
|
10896
|
+
const { transaction: m, workflowId: I, readOnly: F, index: y } = p, Y = w.get(I), S = e[y];
|
|
10893
10897
|
!E.get(m.id) && m.transactionOwnerId && E.set(m.id, m.transactionOwnerId);
|
|
10894
10898
|
const N = E.get(m.id) || void 0, H = {
|
|
10895
10899
|
product: m.product,
|
|
@@ -10919,11 +10923,11 @@ class Ni {
|
|
|
10919
10923
|
), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: y, options: S };
|
|
10920
10924
|
});
|
|
10921
10925
|
P.setMap("transactionOwnerIds", E);
|
|
10922
|
-
const
|
|
10923
|
-
const { experienceOptions: m, options:
|
|
10924
|
-
return await F.getWorkflowManager().getInitializationPromise(),
|
|
10925
|
-
}),
|
|
10926
|
-
return
|
|
10926
|
+
const f = (await Promise.all(h)).sort((p, m) => p.index - m.index).map(async (p) => {
|
|
10927
|
+
const { experienceOptions: m, options: I } = p, F = new fe(this, m);
|
|
10928
|
+
return await F.getWorkflowManager().getInitializationPromise(), I.type !== "transaction" && this.customer && await F.attachCustomerDetails({ email: this.customer.emailAddress }), F;
|
|
10929
|
+
}), Q = await Promise.all(f);
|
|
10930
|
+
return Q.forEach((p) => p.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
|
|
10927
10931
|
}
|
|
10928
10932
|
/**
|
|
10929
10933
|
* Initialize the client from an integration product.
|