@spiffcommerce/core 21.10.1-1 → 21.10.1-2
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 +393 -393
- package/dist/index.umd.cjs +13 -13
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -181,20 +181,20 @@ class WA {
|
|
|
181
181
|
uri: `${q.getServerUrl()}/graphql`,
|
|
182
182
|
fetch: $e
|
|
183
183
|
}), t = bA(async (i, o) => {
|
|
184
|
-
const { headers: s } = o, r = s || {}, g = await VA(), B = o.bearer ?? g.bearer, l = o.partnerId ?? g.partnerId, d = o.activeIntegration ?? g.activeIntegration, w = o.transactionOwnerId, E = o.customerToken ?? g.customerToken, h = o.applicationKey ?? g.applicationKey,
|
|
184
|
+
const { headers: s } = o, r = s || {}, g = await VA(), B = o.bearer ?? g.bearer, l = o.partnerId ?? g.partnerId, d = o.activeIntegration ?? g.activeIntegration, w = o.transactionOwnerId, E = o.customerToken ?? g.customerToken, h = o.applicationKey ?? g.applicationKey, u = o.bundleOwnerId;
|
|
185
185
|
try {
|
|
186
186
|
if (window && window.__SENTRY__) {
|
|
187
|
-
const
|
|
188
|
-
if (
|
|
189
|
-
const
|
|
190
|
-
Object.entries(
|
|
191
|
-
r[
|
|
187
|
+
const C = window.__SENTRY__.hub;
|
|
188
|
+
if (C) {
|
|
189
|
+
const I = C.traceHeaders();
|
|
190
|
+
Object.entries(I).forEach(([m, Q]) => {
|
|
191
|
+
r[m] = Q;
|
|
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), u && (r.bundleOwnerId = u), {
|
|
198
198
|
headers: r
|
|
199
199
|
};
|
|
200
200
|
}), A = JA(({ operation: i, graphQLErrors: o, networkError: s }) => {
|
|
@@ -1629,14 +1629,14 @@ class Ft {
|
|
|
1629
1629
|
command: new T(d, n)
|
|
1630
1630
|
};
|
|
1631
1631
|
} else {
|
|
1632
|
-
const l = this.configuration.type === y.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await Nt(await (async () => new Promise((h,
|
|
1632
|
+
const l = this.configuration.type === y.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, w = await Nt(await (async () => new Promise((h, u) => {
|
|
1633
1633
|
if (!l) {
|
|
1634
|
-
|
|
1634
|
+
u("Undefined vector silent step source");
|
|
1635
1635
|
return;
|
|
1636
1636
|
}
|
|
1637
|
-
Z(l, !0).then((
|
|
1638
|
-
h(
|
|
1639
|
-
}).catch((
|
|
1637
|
+
Z(l, !0).then((C) => {
|
|
1638
|
+
h(C);
|
|
1639
|
+
}).catch((C) => console.error(C));
|
|
1640
1640
|
}))()), E = {
|
|
1641
1641
|
stepName: this.configuration.stepName,
|
|
1642
1642
|
id: J(),
|
|
@@ -1745,29 +1745,29 @@ class Ma {
|
|
|
1745
1745
|
async regenerateQRCode(e, t, A, a, n, i, o, s, r) {
|
|
1746
1746
|
if (!t && A !== "" && a === "") {
|
|
1747
1747
|
const g = async () => {
|
|
1748
|
-
var
|
|
1749
|
-
const
|
|
1750
|
-
return { asset:
|
|
1751
|
-
}, B = await new Promise((
|
|
1748
|
+
var m, Q;
|
|
1749
|
+
const C = (await Vt([A]))[0], I = (Q = (m = C == null ? void 0 : C.versions) == null ? void 0 : m.find((p) => p.name === "mpeg4")) == null ? void 0 : Q.link;
|
|
1750
|
+
return { asset: C, link: I };
|
|
1751
|
+
}, B = await new Promise((C, I) => {
|
|
1752
1752
|
new _t(
|
|
1753
1753
|
async () => !!(await g()).link,
|
|
1754
1754
|
async () => {
|
|
1755
|
-
const
|
|
1756
|
-
if (!
|
|
1757
|
-
throw new Be(
|
|
1758
|
-
|
|
1755
|
+
const m = await g();
|
|
1756
|
+
if (!m.link || !m.link)
|
|
1757
|
+
throw new Be(m.asset);
|
|
1758
|
+
C({
|
|
1759
1759
|
rel: "mpeg4",
|
|
1760
|
-
href:
|
|
1760
|
+
href: m.link
|
|
1761
1761
|
});
|
|
1762
1762
|
},
|
|
1763
1763
|
() => {
|
|
1764
|
-
|
|
1764
|
+
I("Poller timed out with 40 attempts @ 3 second interval");
|
|
1765
1765
|
},
|
|
1766
1766
|
3e3,
|
|
1767
1767
|
40
|
|
1768
1768
|
);
|
|
1769
1769
|
});
|
|
1770
|
-
e.forEach((
|
|
1770
|
+
e.forEach((C) => s(new $(C.id)));
|
|
1771
1771
|
const l = i.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", d = new URL(l + i.data.baseUrl);
|
|
1772
1772
|
d.searchParams.append("video", btoa(JSON.stringify([B]))), d.pathname = d.pathname + (d.pathname.slice(-1) === "/" ? "" : "/");
|
|
1773
1773
|
const w = d.toString();
|
|
@@ -1776,8 +1776,8 @@ class Ma {
|
|
|
1776
1776
|
const E = await ya(w);
|
|
1777
1777
|
if (o(E), !i.data || !i.data.regions)
|
|
1778
1778
|
throw new xe(i, "Missing regions.");
|
|
1779
|
-
const h = await this.regionElements(i),
|
|
1780
|
-
|
|
1779
|
+
const h = await this.regionElements(i), u = await this.command(E, h, n, i.stepName);
|
|
1780
|
+
u && (u.command && n.getCommandDispatcher()(u.command), u.followup && await u.followup()), await n.setSelectionsAndElements(i.stepName, [], h, async () => {
|
|
1781
1781
|
n.updateStorage(i.stepName, {
|
|
1782
1782
|
videoShortUrl: E,
|
|
1783
1783
|
videoUrl: a
|
|
@@ -1877,18 +1877,18 @@ class Ya {
|
|
|
1877
1877
|
frameOffsetsList: l,
|
|
1878
1878
|
framePatternSrc: B
|
|
1879
1879
|
}), B) {
|
|
1880
|
-
const
|
|
1881
|
-
if (!
|
|
1880
|
+
const u = (E = t.getStepSpecificServices(e.stepName)) == null ? void 0 : E.frameService;
|
|
1881
|
+
if (!u)
|
|
1882
1882
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1883
|
-
await this.loadPatternFromString(B,
|
|
1883
|
+
await this.loadPatternFromString(B, u), t.updateMetadata(e.stepName, { image: B }), t.updateStorage(e.stepName, {
|
|
1884
1884
|
framePatternSrc: B
|
|
1885
1885
|
});
|
|
1886
1886
|
}
|
|
1887
|
-
if (l != null && l.some((
|
|
1888
|
-
const
|
|
1889
|
-
if (!
|
|
1887
|
+
if (l != null && l.some((u) => u.zoom)) {
|
|
1888
|
+
const u = (h = t.getStepSpecificServices(e.stepName)) == null ? void 0 : h.frameService;
|
|
1889
|
+
if (!u)
|
|
1890
1890
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1891
|
-
|
|
1891
|
+
u.updateOffsets(l);
|
|
1892
1892
|
}
|
|
1893
1893
|
t.setMandatoryFulfilled(e.stepName, !0);
|
|
1894
1894
|
};
|
|
@@ -2002,23 +2002,23 @@ class Ya {
|
|
|
2002
2002
|
n && n(!0);
|
|
2003
2003
|
const r = await Promise.all(
|
|
2004
2004
|
e.data.regions.map(async (d, w) => {
|
|
2005
|
-
const E = await _e(s[w]), h = o.getImageData(),
|
|
2005
|
+
const E = await _e(s[w]), h = o.getImageData(), u = A.map((f) => new $(f.id)), C = h ? et(h, E) : void 0, I = h ? {
|
|
2006
2006
|
id: J(),
|
|
2007
2007
|
src: h.src,
|
|
2008
|
-
x: (
|
|
2009
|
-
y: (
|
|
2008
|
+
x: (C == null ? void 0 : C.x) || 0,
|
|
2009
|
+
y: (C == null ? void 0 : C.y) || 0,
|
|
2010
2010
|
width: h.width,
|
|
2011
2011
|
height: h.height,
|
|
2012
|
-
scaleX: (
|
|
2013
|
-
scaleY: (
|
|
2012
|
+
scaleX: (C == null ? void 0 : C.zoom) || 1,
|
|
2013
|
+
scaleY: (C == null ? void 0 : C.zoom) || 1,
|
|
2014
2014
|
rotation: 0
|
|
2015
|
-
} : void 0,
|
|
2015
|
+
} : void 0, m = J(), p = a.getLayouts().find((f) => f.panelId === d.panelId);
|
|
2016
2016
|
if (!p)
|
|
2017
2017
|
throw new z(d);
|
|
2018
2018
|
return {
|
|
2019
|
-
command: this.getCreateElementCommand(
|
|
2019
|
+
command: this.getCreateElementCommand(m, d, p, {
|
|
2020
2020
|
frameData: E,
|
|
2021
|
-
pattern:
|
|
2021
|
+
pattern: I,
|
|
2022
2022
|
disablePlaceholder: e.data.disablePlaceholder,
|
|
2023
2023
|
focalBlur: e.data.focalBlur,
|
|
2024
2024
|
focalBlurStrength: e.data.focalBlurStrength,
|
|
@@ -2026,10 +2026,10 @@ class Ya {
|
|
|
2026
2026
|
stepName: e.stepName
|
|
2027
2027
|
}),
|
|
2028
2028
|
regionEl: {
|
|
2029
|
-
id:
|
|
2029
|
+
id: m,
|
|
2030
2030
|
region: d
|
|
2031
2031
|
},
|
|
2032
|
-
removeExistingCommands:
|
|
2032
|
+
removeExistingCommands: u
|
|
2033
2033
|
};
|
|
2034
2034
|
})
|
|
2035
2035
|
), g = r.map((d) => d.command), B = r.map((d) => d.removeExistingCommands).flat();
|
|
@@ -2133,7 +2133,7 @@ class Pa {
|
|
|
2133
2133
|
const n = j.getDefaultVariant(a);
|
|
2134
2134
|
if (n)
|
|
2135
2135
|
return await this.selectVariantCommand(e, n, [], () => {
|
|
2136
|
-
}, t);
|
|
2136
|
+
}, t, !0);
|
|
2137
2137
|
}
|
|
2138
2138
|
return null;
|
|
2139
2139
|
}
|
|
@@ -2197,8 +2197,8 @@ class Pa {
|
|
|
2197
2197
|
a().map((E) => E.layoutState)
|
|
2198
2198
|
), o = { ...i.colors }, s = {};
|
|
2199
2199
|
Object.entries(o).forEach(([E, h]) => {
|
|
2200
|
-
const
|
|
2201
|
-
|
|
2200
|
+
const u = { browserValue: h.browserValue }, C = h.spotColor;
|
|
2201
|
+
C && (u.spotColor = { profileName: C.profileName, namedColor: C.namedColor }), s[E] = u;
|
|
2202
2202
|
});
|
|
2203
2203
|
for (const [E, h] of n.entries())
|
|
2204
2204
|
o[E] = { browserValue: h, spotColor: (d = o[E]) == null ? void 0 : d.spotColor }, s[E] = { browserValue: h };
|
|
@@ -2206,8 +2206,8 @@ class Pa {
|
|
|
2206
2206
|
const g = e.data.colorOption;
|
|
2207
2207
|
g && ((w = g.variants) == null || w.forEach((E) => {
|
|
2208
2208
|
r = r.map((h) => {
|
|
2209
|
-
var
|
|
2210
|
-
return h.toLowerCase() === ((
|
|
2209
|
+
var u;
|
|
2210
|
+
return h.toLowerCase() === ((u = E.color) == null ? void 0 : u.toLowerCase()) ? E.name : h;
|
|
2211
2211
|
});
|
|
2212
2212
|
})), A.updateMetadata(e.stepName, { colors: r });
|
|
2213
2213
|
const B = /* @__PURE__ */ new Map();
|
|
@@ -2230,61 +2230,61 @@ class Pa {
|
|
|
2230
2230
|
const i = await this.selectVariantCommand(e, t, A, a, n);
|
|
2231
2231
|
i && (i.command && n.getCommandDispatcher()(i.command), i.followup && await i.followup());
|
|
2232
2232
|
}
|
|
2233
|
-
async selectVariantCommand(e, t, A, a, n) {
|
|
2233
|
+
async selectVariantCommand(e, t, A, a, n, i) {
|
|
2234
2234
|
var C;
|
|
2235
2235
|
if (console.log("selecting illustration variant"), console.trace(), !e.data || !e.data.regions)
|
|
2236
2236
|
throw new xe(e, "Missing regions.");
|
|
2237
2237
|
a(!0);
|
|
2238
|
-
const
|
|
2238
|
+
const o = A.map((I) => new $(I.id));
|
|
2239
2239
|
n.setMandatoryFulfilled(e.stepName, !1);
|
|
2240
|
-
const
|
|
2241
|
-
if (!o)
|
|
2242
|
-
throw new _(t);
|
|
2243
|
-
const s = o.fileLink;
|
|
2240
|
+
const s = t.asset;
|
|
2244
2241
|
if (!s)
|
|
2245
|
-
throw new
|
|
2246
|
-
const r =
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2242
|
+
throw new _(t);
|
|
2243
|
+
const r = s.fileLink;
|
|
2244
|
+
if (!r)
|
|
2245
|
+
throw new Be(s);
|
|
2246
|
+
const g = await Nt(await this.getIllustrationBody(r)), B = await Me(g.svg), l = (I) => {
|
|
2247
|
+
const m = n.getLayouts().find((p) => p.panelId === I.panelId);
|
|
2248
|
+
if (!m)
|
|
2249
|
+
throw new z(I);
|
|
2250
2250
|
const Q = J();
|
|
2251
2251
|
return {
|
|
2252
|
-
regionElement: { id: Q, region:
|
|
2253
|
-
command: this.getCreateElementCommand(Q,
|
|
2252
|
+
regionElement: { id: Q, region: I },
|
|
2253
|
+
command: this.getCreateElementCommand(Q, I, m, {
|
|
2254
2254
|
stepName: e.stepName,
|
|
2255
|
-
src:
|
|
2256
|
-
objectURL:
|
|
2257
|
-
svg:
|
|
2255
|
+
src: r,
|
|
2256
|
+
objectURL: B,
|
|
2257
|
+
svg: g
|
|
2258
2258
|
})
|
|
2259
2259
|
};
|
|
2260
|
-
},
|
|
2261
|
-
let
|
|
2262
|
-
const
|
|
2263
|
-
return
|
|
2264
|
-
|
|
2260
|
+
}, d = e.data.regions.map(l), E = [...d.map((I) => I.command), ...o];
|
|
2261
|
+
let h = Array.from(Object.values(g.colors)).map((I) => I.browserValue);
|
|
2262
|
+
const u = e.data.colorOption;
|
|
2263
|
+
return u && ((C = u.variants) == null || C.forEach((I) => {
|
|
2264
|
+
h = h.map((m) => {
|
|
2265
2265
|
var Q;
|
|
2266
|
-
return
|
|
2266
|
+
return m.toLowerCase() === ((Q = I.color) == null ? void 0 : Q.toLowerCase()) ? I.name : m;
|
|
2267
2267
|
});
|
|
2268
|
-
})), n.updateMetadata(e.stepName, { colors:
|
|
2269
|
-
command: new v(
|
|
2268
|
+
})), n.updateMetadata(e.stepName, { colors: h }), {
|
|
2269
|
+
command: new v(E),
|
|
2270
2270
|
followup: async () => {
|
|
2271
2271
|
await n.setSelectionsAndElements(
|
|
2272
2272
|
e.stepName,
|
|
2273
2273
|
[t],
|
|
2274
|
-
|
|
2274
|
+
d.map((Q) => Q.regionElement),
|
|
2275
2275
|
async () => {
|
|
2276
|
-
n.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
2276
|
+
i || n.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
2277
2277
|
}
|
|
2278
2278
|
);
|
|
2279
|
-
const
|
|
2280
|
-
if (e.data.colorPickerEnabled &&
|
|
2281
|
-
const Q =
|
|
2279
|
+
const I = await this.availableColors(e, n) || [], m = Object.keys(g.colors);
|
|
2280
|
+
if (e.data.colorPickerEnabled && I.length === 1 && m.length === 1) {
|
|
2281
|
+
const Q = I[0], p = m[0];
|
|
2282
2282
|
await this.changeColors(
|
|
2283
2283
|
e,
|
|
2284
|
-
|
|
2284
|
+
d.map((f) => f.regionElement),
|
|
2285
2285
|
n,
|
|
2286
2286
|
() => n.getCommandContext().getAllLayouts(),
|
|
2287
|
-
/* @__PURE__ */ new Map([[
|
|
2287
|
+
/* @__PURE__ */ new Map([[p, Q.variant.color]])
|
|
2288
2288
|
);
|
|
2289
2289
|
}
|
|
2290
2290
|
}
|
|
@@ -2303,7 +2303,7 @@ class xa {
|
|
|
2303
2303
|
const n = j.getDefaultVariant(a);
|
|
2304
2304
|
if (n)
|
|
2305
2305
|
return await this.selectVariantLambda(e, n, t, () => {
|
|
2306
|
-
});
|
|
2306
|
+
}, !0);
|
|
2307
2307
|
}
|
|
2308
2308
|
return null;
|
|
2309
2309
|
}
|
|
@@ -2343,20 +2343,20 @@ class xa {
|
|
|
2343
2343
|
const n = await this.selectVariantLambda(e, t, A, a);
|
|
2344
2344
|
n && (n.command && A.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2345
2345
|
}
|
|
2346
|
-
async selectVariantLambda(e, t, A, a) {
|
|
2347
|
-
const
|
|
2346
|
+
async selectVariantLambda(e, t, A, a, n) {
|
|
2347
|
+
const i = A.getModelContainer();
|
|
2348
2348
|
a(!0);
|
|
2349
|
-
const
|
|
2350
|
-
if (!
|
|
2349
|
+
const o = t.material;
|
|
2350
|
+
if (!o)
|
|
2351
2351
|
throw a(!1), new _(t);
|
|
2352
2352
|
return {
|
|
2353
2353
|
command: void 0,
|
|
2354
2354
|
followup: async () => {
|
|
2355
2355
|
await A.setSelectionsAndElements(e.stepName, [t], [], async () => {
|
|
2356
2356
|
try {
|
|
2357
|
-
|
|
2358
|
-
e.option &&
|
|
2359
|
-
}), A.setMandatoryFulfilled(e.stepName, !0);
|
|
2357
|
+
i && e.data.targetMaterials.forEach((s) => {
|
|
2358
|
+
e.option && i.applyMaterialVariant(s, e.option.id || "", o);
|
|
2359
|
+
}), n || A.setMandatoryFulfilled(e.stepName, !0);
|
|
2360
2360
|
} finally {
|
|
2361
2361
|
a(!1);
|
|
2362
2362
|
}
|
|
@@ -2377,7 +2377,7 @@ class Na {
|
|
|
2377
2377
|
const n = j.getDefaultVariant(a);
|
|
2378
2378
|
if (n)
|
|
2379
2379
|
return await this.selectVariantLambda(e, n, t, () => {
|
|
2380
|
-
});
|
|
2380
|
+
}, !0);
|
|
2381
2381
|
}
|
|
2382
2382
|
return null;
|
|
2383
2383
|
}
|
|
@@ -2423,26 +2423,26 @@ class Na {
|
|
|
2423
2423
|
const n = await this.selectVariantLambda(e, t, A, a);
|
|
2424
2424
|
n && (n.command && A.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2425
2425
|
}
|
|
2426
|
-
async selectVariantLambda(e, t, A, a) {
|
|
2427
|
-
var
|
|
2426
|
+
async selectVariantLambda(e, t, A, a, n) {
|
|
2427
|
+
var o;
|
|
2428
2428
|
a(!0);
|
|
2429
|
-
const
|
|
2430
|
-
if (!
|
|
2429
|
+
const i = (o = t.asset) == null ? void 0 : o.fileLink;
|
|
2430
|
+
if (!i)
|
|
2431
2431
|
throw new _(t);
|
|
2432
2432
|
return {
|
|
2433
2433
|
command: void 0,
|
|
2434
2434
|
followup: async () => {
|
|
2435
2435
|
await A.setSelectionsAndElements(e.stepName, [t], [], async () => {
|
|
2436
2436
|
try {
|
|
2437
|
-
const
|
|
2438
|
-
|
|
2437
|
+
const s = A.getModelContainer();
|
|
2438
|
+
s && await s.applyModelVariant(
|
|
2439
2439
|
e.stepName,
|
|
2440
2440
|
{
|
|
2441
|
-
model:
|
|
2441
|
+
model: i,
|
|
2442
2442
|
contextService: A.getLayoutPreviewService()
|
|
2443
2443
|
},
|
|
2444
2444
|
e.data.replaceProductModel || !1
|
|
2445
|
-
), A.setMandatoryFulfilled(e.stepName, !0);
|
|
2445
|
+
), n || A.setMandatoryFulfilled(e.stepName, !0);
|
|
2446
2446
|
} finally {
|
|
2447
2447
|
a(!1);
|
|
2448
2448
|
}
|
|
@@ -2487,11 +2487,11 @@ class Ha {
|
|
|
2487
2487
|
return console.error("Missing configuration."), null;
|
|
2488
2488
|
A.updateStorage(e.stepName, { text: t });
|
|
2489
2489
|
const r = (B, l, d) => {
|
|
2490
|
-
const w = d || J(), h = A.getLayouts().find((
|
|
2490
|
+
const w = d || J(), h = A.getLayouts().find((C) => C.panelId === l.panelId);
|
|
2491
2491
|
if (!h)
|
|
2492
2492
|
return console.error(`Can not find layout for region: ${l.panelId}`), null;
|
|
2493
|
-
const
|
|
2494
|
-
return d &&
|
|
2493
|
+
const u = [];
|
|
2494
|
+
return d && u.push(new $(w)), u.push(
|
|
2495
2495
|
new T(
|
|
2496
2496
|
{
|
|
2497
2497
|
stepRegion: l,
|
|
@@ -2514,7 +2514,7 @@ class Ha {
|
|
|
2514
2514
|
), {
|
|
2515
2515
|
id: w,
|
|
2516
2516
|
region: l,
|
|
2517
|
-
command: new v(
|
|
2517
|
+
command: new v(u)
|
|
2518
2518
|
};
|
|
2519
2519
|
};
|
|
2520
2520
|
if (i.length > 0) {
|
|
@@ -2574,7 +2574,7 @@ class Ua {
|
|
|
2574
2574
|
await this.reload(e, t, A);
|
|
2575
2575
|
else if (a.defaultVariant)
|
|
2576
2576
|
return t.markStepsAsInitialised([e.stepName]), this.selectVariantCommand(e, a.defaultVariant, t, () => {
|
|
2577
|
-
});
|
|
2577
|
+
}, !0);
|
|
2578
2578
|
return t.markStepsAsInitialised([e.stepName]), null;
|
|
2579
2579
|
}
|
|
2580
2580
|
async reload(e, t, A) {
|
|
@@ -2605,51 +2605,51 @@ class Ua {
|
|
|
2605
2605
|
const n = await this.selectVariantCommand(e, t, A, a);
|
|
2606
2606
|
n && (n.command && A.getCommandDispatcher()(n.command), n.followup && await n.followup());
|
|
2607
2607
|
}
|
|
2608
|
-
async selectVariantCommand(e, t, A, a) {
|
|
2609
|
-
const
|
|
2610
|
-
if (!n)
|
|
2611
|
-
throw new _(t);
|
|
2612
|
-
const i = n == null ? void 0 : n.fileLink;
|
|
2608
|
+
async selectVariantCommand(e, t, A, a, n) {
|
|
2609
|
+
const i = t.asset;
|
|
2613
2610
|
if (!i)
|
|
2611
|
+
throw new _(t);
|
|
2612
|
+
const o = i == null ? void 0 : i.fileLink;
|
|
2613
|
+
if (!o)
|
|
2614
2614
|
return console.error("No URL for picture!"), null;
|
|
2615
2615
|
a(!0), A.setMandatoryFulfilled(e.stepName, !1);
|
|
2616
|
-
const
|
|
2617
|
-
const
|
|
2618
|
-
if (!
|
|
2619
|
-
throw new z(
|
|
2620
|
-
const
|
|
2616
|
+
const r = A.getRegionElements(e.stepName).map((l) => new $(l.id)), g = (l) => {
|
|
2617
|
+
const w = A.getLayouts().find((h) => h.panelId === l.panelId);
|
|
2618
|
+
if (!w)
|
|
2619
|
+
throw new z(l);
|
|
2620
|
+
const E = J();
|
|
2621
2621
|
return {
|
|
2622
|
-
regionElement: { id:
|
|
2622
|
+
regionElement: { id: E, region: l },
|
|
2623
2623
|
command: new T(
|
|
2624
2624
|
{
|
|
2625
2625
|
stepName: e.stepName,
|
|
2626
|
-
stepRegion:
|
|
2627
|
-
id:
|
|
2628
|
-
src:
|
|
2626
|
+
stepRegion: l,
|
|
2627
|
+
id: E,
|
|
2628
|
+
src: o,
|
|
2629
2629
|
type: k.Image,
|
|
2630
|
-
y:
|
|
2631
|
-
x:
|
|
2632
|
-
rotation:
|
|
2633
|
-
width:
|
|
2634
|
-
height:
|
|
2635
|
-
layer:
|
|
2636
|
-
layerIndex:
|
|
2637
|
-
immutable:
|
|
2630
|
+
y: l.top,
|
|
2631
|
+
x: l.left,
|
|
2632
|
+
rotation: l.rotation,
|
|
2633
|
+
width: l.width,
|
|
2634
|
+
height: l.height,
|
|
2635
|
+
layer: l.layer,
|
|
2636
|
+
layerIndex: l.layerIndex,
|
|
2637
|
+
immutable: l.immutable,
|
|
2638
2638
|
preserveAspectRatio: "none"
|
|
2639
2639
|
},
|
|
2640
|
-
|
|
2640
|
+
w
|
|
2641
2641
|
)
|
|
2642
2642
|
};
|
|
2643
|
-
},
|
|
2643
|
+
}, B = e.data.regions.map(g);
|
|
2644
2644
|
return {
|
|
2645
|
-
command: new v([...
|
|
2645
|
+
command: new v([...r, ...B.map((l) => l.command)]),
|
|
2646
2646
|
followup: async () => {
|
|
2647
2647
|
await A.setSelectionsAndElements(
|
|
2648
2648
|
e.stepName,
|
|
2649
2649
|
[t],
|
|
2650
|
-
|
|
2650
|
+
B.map((l) => l.regionElement),
|
|
2651
2651
|
async () => {
|
|
2652
|
-
A.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
2652
|
+
n || A.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
2653
2653
|
}
|
|
2654
2654
|
);
|
|
2655
2655
|
}
|
|
@@ -2671,7 +2671,7 @@ class va {
|
|
|
2671
2671
|
var r;
|
|
2672
2672
|
return s.id === ((r = a.defaultVariant) == null ? void 0 : r.id);
|
|
2673
2673
|
});
|
|
2674
|
-
return this.selectVariantLambda(e, (o == null ? void 0 : o.id) || "", t);
|
|
2674
|
+
return this.selectVariantLambda(e, (o == null ? void 0 : o.id) || "", t, !0);
|
|
2675
2675
|
}
|
|
2676
2676
|
}
|
|
2677
2677
|
return null;
|
|
@@ -2695,21 +2695,21 @@ class va {
|
|
|
2695
2695
|
const a = await this.selectVariantLambda(e, t, A);
|
|
2696
2696
|
a && (a.command && A.getCommandDispatcher()(a.command), a.followup && await a.followup());
|
|
2697
2697
|
}
|
|
2698
|
-
async selectVariantLambda(e, t, A) {
|
|
2699
|
-
const
|
|
2700
|
-
if (!a)
|
|
2701
|
-
return null;
|
|
2702
|
-
const n = a.variants;
|
|
2698
|
+
async selectVariantLambda(e, t, A, a) {
|
|
2699
|
+
const n = e.option;
|
|
2703
2700
|
if (!n)
|
|
2704
2701
|
return null;
|
|
2705
|
-
const i = n.
|
|
2702
|
+
const i = n.variants;
|
|
2706
2703
|
if (!i)
|
|
2704
|
+
return null;
|
|
2705
|
+
const o = i.length > 1 ? i.find((s) => s.id === t) : i[0];
|
|
2706
|
+
if (!o)
|
|
2707
2707
|
throw new Error("Failed to find selected variant in step variants, this should never happen!");
|
|
2708
2708
|
return {
|
|
2709
2709
|
command: void 0,
|
|
2710
2710
|
followup: async () => {
|
|
2711
|
-
await A.setSelectionsAndElements(e.stepName, [
|
|
2712
|
-
A.setMandatoryFulfilled(e.stepName, !0);
|
|
2711
|
+
await A.setSelectionsAndElements(e.stepName, [o], [], async () => {
|
|
2712
|
+
a || A.setMandatoryFulfilled(e.stepName, !0);
|
|
2713
2713
|
});
|
|
2714
2714
|
}
|
|
2715
2715
|
};
|
|
@@ -2821,7 +2821,7 @@ class Ga {
|
|
|
2821
2821
|
};
|
|
2822
2822
|
} else {
|
|
2823
2823
|
const r = (d) => {
|
|
2824
|
-
const w = n.find((
|
|
2824
|
+
const w = n.find((I) => I.panelId === d.panelId);
|
|
2825
2825
|
if (!w)
|
|
2826
2826
|
throw new z(d);
|
|
2827
2827
|
const E = o(), h = `
|
|
@@ -2844,18 +2844,18 @@ class Ga {
|
|
|
2844
2844
|
fill="${E}"
|
|
2845
2845
|
/>
|
|
2846
2846
|
</svg>
|
|
2847
|
-
`,
|
|
2848
|
-
|
|
2849
|
-
const
|
|
2847
|
+
`, u = {};
|
|
2848
|
+
u[this.shapeFillId] = { browserValue: E };
|
|
2849
|
+
const C = J();
|
|
2850
2850
|
return {
|
|
2851
|
-
id:
|
|
2851
|
+
id: C,
|
|
2852
2852
|
region: d,
|
|
2853
2853
|
command: new T(
|
|
2854
2854
|
{
|
|
2855
2855
|
stepRegion: d,
|
|
2856
2856
|
stepName: e.stepName,
|
|
2857
|
-
colors:
|
|
2858
|
-
id:
|
|
2857
|
+
colors: u,
|
|
2858
|
+
id: C,
|
|
2859
2859
|
svg: h,
|
|
2860
2860
|
type: k.Illustration,
|
|
2861
2861
|
y: d.top,
|
|
@@ -3159,24 +3159,24 @@ class Oa {
|
|
|
3159
3159
|
if (s && l) {
|
|
3160
3160
|
const d = (r = s.variants) == null ? void 0 : r.find((w) => w.id === l);
|
|
3161
3161
|
if (d) {
|
|
3162
|
-
const w = await this.fontDataFromVariant(d), E = o.map((
|
|
3162
|
+
const w = await this.fontDataFromVariant(d), E = o.map((I) => ({ id: I.id, region: I.stepRegion })), h = (g = a.storage) == null ? void 0 : g.color, u = (B = a.storage) == null ? void 0 : B.text;
|
|
3163
3163
|
await t.setSelectionsAndElements(
|
|
3164
3164
|
e.stepName,
|
|
3165
3165
|
[d],
|
|
3166
3166
|
E,
|
|
3167
3167
|
async () => {
|
|
3168
|
-
t.updateMetadata(e.stepName, { color: h, text:
|
|
3169
|
-
const
|
|
3170
|
-
t.getCommandDispatcher()(
|
|
3168
|
+
t.updateMetadata(e.stepName, { color: h, text: u }), t.updateStorage(e.stepName, { text: u, inputText: u });
|
|
3169
|
+
const I = o.map((Q) => new Ct(Q.id, w)), m = new v(I);
|
|
3170
|
+
t.getCommandDispatcher()(m), t.setMandatoryFulfilled(e.stepName, !0);
|
|
3171
3171
|
}
|
|
3172
3172
|
);
|
|
3173
|
-
const { command:
|
|
3174
|
-
|
|
3173
|
+
const { command: C } = K.updateInputText(
|
|
3174
|
+
u || "",
|
|
3175
3175
|
o,
|
|
3176
3176
|
e,
|
|
3177
3177
|
t
|
|
3178
3178
|
);
|
|
3179
|
-
|
|
3179
|
+
C && t.getCommandDispatcher()(C);
|
|
3180
3180
|
}
|
|
3181
3181
|
}
|
|
3182
3182
|
}
|
|
@@ -3258,7 +3258,7 @@ class Oa {
|
|
|
3258
3258
|
), w = l.flatMap((h) => h.commands);
|
|
3259
3259
|
if (s) {
|
|
3260
3260
|
const h = l.map(
|
|
3261
|
-
(
|
|
3261
|
+
(u) => new Je(u.regionElement.id, s)
|
|
3262
3262
|
);
|
|
3263
3263
|
w.push(...h);
|
|
3264
3264
|
}
|
|
@@ -3288,21 +3288,21 @@ class Oa {
|
|
|
3288
3288
|
if (!d)
|
|
3289
3289
|
throw new Re("Failed to find layout for region: " + B.panelId);
|
|
3290
3290
|
const h = A.colorOption;
|
|
3291
|
-
let
|
|
3291
|
+
let u;
|
|
3292
3292
|
if (h && h.variants) {
|
|
3293
3293
|
const N = h.variants.find((H) => {
|
|
3294
3294
|
var L;
|
|
3295
3295
|
return H.id === ((L = h.defaultVariant) == null ? void 0 : L.id);
|
|
3296
3296
|
}) || h.variants[0];
|
|
3297
|
-
|
|
3297
|
+
u = this.createTextFillSpotColor(h, N), i.updateStorage(e, {
|
|
3298
3298
|
colorProfileAssetKey: (E = h.colorProfile) == null ? void 0 : E.key
|
|
3299
3299
|
});
|
|
3300
3300
|
}
|
|
3301
|
-
const
|
|
3301
|
+
const C = await this.getDefaultColor(A), I = C || "#000000", m = {
|
|
3302
3302
|
stepRegion: B,
|
|
3303
3303
|
stepName: e,
|
|
3304
3304
|
align: this.textAlign(A),
|
|
3305
|
-
fill: n.color ? n.color :
|
|
3305
|
+
fill: n.color ? n.color : I,
|
|
3306
3306
|
fontSize: A.size || Te,
|
|
3307
3307
|
fontData: a,
|
|
3308
3308
|
id: w,
|
|
@@ -3321,35 +3321,35 @@ class Oa {
|
|
|
3321
3321
|
verticalAlign: A.verticalAlign || "middle",
|
|
3322
3322
|
curved: A.curved,
|
|
3323
3323
|
paths: A.paths,
|
|
3324
|
-
fillSpotColorDefinition:
|
|
3325
|
-
},
|
|
3326
|
-
if (!
|
|
3324
|
+
fillSpotColorDefinition: u
|
|
3325
|
+
}, Q = [], p = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map();
|
|
3326
|
+
if (!m.fontData)
|
|
3327
3327
|
throw new b("Failed to resolve font data for text.");
|
|
3328
3328
|
const [F, M] = De(
|
|
3329
|
-
|
|
3330
|
-
|
|
3329
|
+
m.fontSize,
|
|
3330
|
+
m.fontData,
|
|
3331
3331
|
{
|
|
3332
|
-
left:
|
|
3333
|
-
top:
|
|
3334
|
-
width:
|
|
3335
|
-
height:
|
|
3336
|
-
rotation:
|
|
3332
|
+
left: m.x,
|
|
3333
|
+
top: m.y,
|
|
3334
|
+
width: m.width,
|
|
3335
|
+
height: m.height,
|
|
3336
|
+
rotation: m.rotation,
|
|
3337
3337
|
panelId: ""
|
|
3338
3338
|
},
|
|
3339
3339
|
[s],
|
|
3340
3340
|
{ size: A.size, minSize: A.minSize, maxSize: A.maxSize }
|
|
3341
3341
|
);
|
|
3342
|
-
p.set(
|
|
3342
|
+
p.set(m.id, F), f.set(m.id, M);
|
|
3343
3343
|
const Y = A.curved || A.vertical ? s : (M || []).join(`
|
|
3344
3344
|
`);
|
|
3345
|
-
|
|
3346
|
-
this.generateTextChangeCommandsForRegion(F, A,
|
|
3345
|
+
Q.push(
|
|
3346
|
+
this.generateTextChangeCommandsForRegion(F, A, m.id, Y)
|
|
3347
3347
|
);
|
|
3348
|
-
const S = new T(
|
|
3348
|
+
const S = new T(m, d);
|
|
3349
3349
|
return {
|
|
3350
3350
|
regionElement: { id: w, region: B },
|
|
3351
|
-
commands: [S, ...
|
|
3352
|
-
newElement:
|
|
3351
|
+
commands: [S, ...Q],
|
|
3352
|
+
newElement: m,
|
|
3353
3353
|
fontData: a
|
|
3354
3354
|
};
|
|
3355
3355
|
} catch (h) {
|
|
@@ -3384,53 +3384,53 @@ class Oa {
|
|
|
3384
3384
|
*/
|
|
3385
3385
|
async changeInputTextWithRegion(e, t, A, a, n, i, o, s, r, g) {
|
|
3386
3386
|
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, o), d = i.getRegionElements(e.stepName), w = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map();
|
|
3387
|
-
for (const
|
|
3388
|
-
if (
|
|
3389
|
-
const [
|
|
3387
|
+
for (const m of d)
|
|
3388
|
+
if (m.region) {
|
|
3389
|
+
const [Q, p] = De(
|
|
3390
3390
|
t,
|
|
3391
3391
|
A,
|
|
3392
|
-
|
|
3392
|
+
m.region,
|
|
3393
3393
|
[l],
|
|
3394
3394
|
{ size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
|
|
3395
3395
|
);
|
|
3396
|
-
w.set(
|
|
3396
|
+
w.set(m.id, Q), E.set(m.id, p);
|
|
3397
3397
|
}
|
|
3398
|
-
const
|
|
3398
|
+
const u = (() => {
|
|
3399
3399
|
if (e.data && e.data.maxLength && l.length > e.data.maxLength)
|
|
3400
3400
|
return g && g(!0), { info: "0" };
|
|
3401
|
-
const
|
|
3402
|
-
for (const p of
|
|
3403
|
-
for (const
|
|
3404
|
-
const F =
|
|
3401
|
+
const m = i.getProfanities(), Q = Xe(l.toLowerCase());
|
|
3402
|
+
for (const p of Q)
|
|
3403
|
+
for (const f in m) {
|
|
3404
|
+
const F = m[f].toLowerCase().replace(/\s/g, "");
|
|
3405
3405
|
if (p === F)
|
|
3406
3406
|
return s(!0), { error: "Blocked profanity." };
|
|
3407
3407
|
}
|
|
3408
3408
|
return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
|
|
3409
|
-
`) || l.includes("\r")) ? (s(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((
|
|
3409
|
+
`) || l.includes("\r")) ? (s(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((f) => f) ? (s(!0), { error: "Does not fit." }) : (s(!1), { info: (e.data.maxLength - l.length).toString() });
|
|
3410
3410
|
})();
|
|
3411
|
-
if (
|
|
3412
|
-
r(
|
|
3411
|
+
if (u.error) {
|
|
3412
|
+
r(u.error);
|
|
3413
3413
|
return;
|
|
3414
3414
|
}
|
|
3415
|
-
if (r(`${
|
|
3415
|
+
if (r(`${u.info} characters remaining` || ""), g)
|
|
3416
3416
|
return;
|
|
3417
3417
|
i.updateStorage(e.stepName, { text: B }), i.updateMetadata(e.stepName, {
|
|
3418
3418
|
text: this.injectReplaceableText(B, e.data)
|
|
3419
3419
|
}), n.defaultCleared && i.setMandatoryFulfilled(e.stepName, !0);
|
|
3420
|
-
const
|
|
3421
|
-
for (const
|
|
3422
|
-
const
|
|
3420
|
+
const C = [];
|
|
3421
|
+
for (const m of d) {
|
|
3422
|
+
const Q = e.data.curved ? l : (E.get(m.id) || []).join(`
|
|
3423
3423
|
`);
|
|
3424
|
-
|
|
3424
|
+
C.push(
|
|
3425
3425
|
this.generateTextChangeCommandsForRegion(
|
|
3426
|
-
w.get(
|
|
3426
|
+
w.get(m.id) || 1,
|
|
3427
3427
|
e.data,
|
|
3428
|
-
|
|
3429
|
-
|
|
3428
|
+
m.id,
|
|
3429
|
+
Q
|
|
3430
3430
|
)
|
|
3431
3431
|
);
|
|
3432
3432
|
}
|
|
3433
|
-
return new v(
|
|
3433
|
+
return new v(C);
|
|
3434
3434
|
}
|
|
3435
3435
|
}
|
|
3436
3436
|
const K = new Oa();
|
|
@@ -4874,16 +4874,16 @@ class Wa extends st {
|
|
|
4874
4874
|
}
|
|
4875
4875
|
brandSvg(e, t) {
|
|
4876
4876
|
const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), o = () => {
|
|
4877
|
-
const
|
|
4878
|
-
|
|
4879
|
-
const
|
|
4880
|
-
|
|
4877
|
+
const Q = R("g"), p = R("defs");
|
|
4878
|
+
Q.appendChild(p), p.appendChild(oA(3, 7, 4, "shadow"));
|
|
4879
|
+
const f = R("g");
|
|
4880
|
+
Q.appendChild(f), f.setAttribute("filter", "url(#shadow)"), f.innerHTML = A;
|
|
4881
4881
|
const F = R("g");
|
|
4882
|
-
|
|
4882
|
+
Q.appendChild(F), F.setAttribute("fill", "red"), F.setAttribute("stroke", "red"), F.setAttribute("stroke-width", "9"), F.innerHTML = A;
|
|
4883
4883
|
const M = R("g");
|
|
4884
|
-
|
|
4884
|
+
Q.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
|
|
4885
4885
|
const Y = R("g");
|
|
4886
|
-
return
|
|
4886
|
+
return Q.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = A, new gt(Q).transform(([N, H]) => [N, H + (n / 2 - N) ** 2 / (n * 2.9)]), Q;
|
|
4887
4887
|
}, [s, r, g] = nA(t);
|
|
4888
4888
|
if (!s)
|
|
4889
4889
|
return "";
|
|
@@ -4891,14 +4891,14 @@ class Wa extends st {
|
|
|
4891
4891
|
s.appendChild(B), iA(s, B, t);
|
|
4892
4892
|
const l = r * 0.23, d = g * 0.94, w = g * 0.04, E = r * 0.53, h = R("g");
|
|
4893
4893
|
s.appendChild(h), h.setAttribute("transform", `translate(${w} ${E}) rotate(-21)`);
|
|
4894
|
-
const
|
|
4895
|
-
|
|
4896
|
-
const
|
|
4897
|
-
h.appendChild(
|
|
4898
|
-
const
|
|
4899
|
-
|
|
4900
|
-
const
|
|
4901
|
-
return ct(
|
|
4894
|
+
const u = rt(l, d);
|
|
4895
|
+
u.setAttribute("opacity", "0"), h.appendChild(u);
|
|
4896
|
+
const C = R("g");
|
|
4897
|
+
h.appendChild(C);
|
|
4898
|
+
const I = o();
|
|
4899
|
+
C.appendChild(I);
|
|
4900
|
+
const m = at(i);
|
|
4901
|
+
return ct(C, m, l, d), sA(s.outerHTML);
|
|
4902
4902
|
}
|
|
4903
4903
|
}
|
|
4904
4904
|
const Xa = "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==";
|
|
@@ -4918,34 +4918,34 @@ class qa extends st {
|
|
|
4918
4918
|
}
|
|
4919
4919
|
brandSvg(e, t, A) {
|
|
4920
4920
|
const a = e.toSVG(2), n = e.getBoundingBox(), i = n.y2 - n.y1, o = n.x2 - n.x1, s = e.toPathData(3), r = () => {
|
|
4921
|
-
const
|
|
4922
|
-
|
|
4921
|
+
const f = R("g"), F = R("g");
|
|
4922
|
+
f.appendChild(F), F.setAttribute("stroke", "#5C1A0D"), F.setAttribute("stroke-width", "4"), F.setAttribute("transform", "translate(1,1)"), F.innerHTML = a;
|
|
4923
4923
|
const M = R("g");
|
|
4924
|
-
|
|
4924
|
+
f.appendChild(M), M.setAttribute("fill", "#FFE386"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
|
|
4925
4925
|
const Y = R("g");
|
|
4926
|
-
|
|
4927
|
-
const S = new gt(
|
|
4926
|
+
f.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = a;
|
|
4927
|
+
const S = new gt(f);
|
|
4928
4928
|
return S.transform(([N, H]) => [N, H + ((o - N) * H) ** 2 / (o * 5e4)]), S.transform(([N, H]) => [
|
|
4929
4929
|
N,
|
|
4930
4930
|
H + (o / 3 - N) ** 2 / o * this.indicator(N < o / 3)
|
|
4931
|
-
]), S.transform(([N, H]) => [N - (i - H) * (o - N) / 800, H]),
|
|
4931
|
+
]), S.transform(([N, H]) => [N - (i - H) * (o - N) / 800, H]), f;
|
|
4932
4932
|
}, [g, B, l] = nA(t);
|
|
4933
4933
|
if (!g)
|
|
4934
4934
|
return "";
|
|
4935
4935
|
const d = R("defs");
|
|
4936
4936
|
g.appendChild(d), iA(g, d, t);
|
|
4937
|
-
let w, E, h,
|
|
4938
|
-
A ? (w = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), h = l * 0.22,
|
|
4939
|
-
const
|
|
4940
|
-
g.appendChild(
|
|
4941
|
-
const
|
|
4942
|
-
|
|
4943
|
-
const
|
|
4944
|
-
|
|
4945
|
-
const
|
|
4946
|
-
|
|
4937
|
+
let w, E, h, u;
|
|
4938
|
+
A ? (w = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), h = l * 0.22, u = B * 0.32) : (w = B * 0.22 * (1 + 0.1), E = l * 0.8, h = l * 0.067, u = B * 0.33);
|
|
4939
|
+
const C = R("g");
|
|
4940
|
+
g.appendChild(C), C.setAttribute("transform", `translate(${h} ${u}) rotate(-10)`);
|
|
4941
|
+
const I = rt(w, E);
|
|
4942
|
+
I.setAttribute("opacity", "0"), C.appendChild(I);
|
|
4943
|
+
const m = R("g");
|
|
4944
|
+
C.appendChild(m);
|
|
4945
|
+
const Q = r();
|
|
4946
|
+
m.appendChild(Q);
|
|
4947
4947
|
const p = at(s);
|
|
4948
|
-
return ct(
|
|
4948
|
+
return ct(m, p, w, E), g.outerHTML;
|
|
4949
4949
|
}
|
|
4950
4950
|
// 1 if true, 0 if false.
|
|
4951
4951
|
}
|
|
@@ -4961,21 +4961,21 @@ class $a extends st {
|
|
|
4961
4961
|
return this.svgElement(e, t);
|
|
4962
4962
|
}
|
|
4963
4963
|
svgElement(e, t) {
|
|
4964
|
-
const A = At(Za), n = e !== "" ? ((
|
|
4965
|
-
const f = R("g");
|
|
4966
|
-
f.classList.add("module-text-group");
|
|
4967
|
-
const Q = R("defs");
|
|
4968
|
-
f.appendChild(Q), Q.appendChild(oA(0, 2, 2, "shadow"));
|
|
4969
|
-
const m = R("path");
|
|
4970
|
-
m.setAttribute("d", g), m.setAttribute("stroke", "black"), m.setAttribute("stroke-width", "3"), Q.appendChild(m);
|
|
4971
|
-
const p = R("g");
|
|
4972
|
-
p.classList.add("module-layer0"), f.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML = m.outerHTML;
|
|
4964
|
+
const A = At(Za), n = e !== "" ? ((I) => I.charAt(0).toUpperCase() + I.substr(1).toLowerCase())(e) : "", i = A.getPath(n, 0, 72, 72), o = i.toSVG(2), s = i.getBoundingBox(), r = s.x2 - s.x1, g = i.toPathData(3), B = () => {
|
|
4973
4965
|
const I = R("g");
|
|
4974
|
-
I.classList.add("module-
|
|
4966
|
+
I.classList.add("module-text-group");
|
|
4967
|
+
const m = R("defs");
|
|
4968
|
+
I.appendChild(m), m.appendChild(oA(0, 2, 2, "shadow"));
|
|
4969
|
+
const Q = R("path");
|
|
4970
|
+
Q.setAttribute("d", g), Q.setAttribute("stroke", "black"), Q.setAttribute("stroke-width", "3"), m.appendChild(Q);
|
|
4971
|
+
const p = R("g");
|
|
4972
|
+
p.classList.add("module-layer0"), I.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML = Q.outerHTML;
|
|
4973
|
+
const f = R("g");
|
|
4974
|
+
f.classList.add("module-layer1"), I.appendChild(f), f.setAttribute("stroke-width", "3"), f.setAttribute("stroke", "rgb(45,41,38)"), f.setAttribute("fill", "rgb(45,41,38)"), f.setAttribute("transform", "translate(0.5,0)"), f.innerHTML = o;
|
|
4975
4975
|
const F = R("g");
|
|
4976
|
-
F.classList.add("module-layer2"),
|
|
4976
|
+
F.classList.add("module-layer2"), I.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML = o;
|
|
4977
4977
|
const M = R("g");
|
|
4978
|
-
return M.classList.add("module-layer3"),
|
|
4978
|
+
return M.classList.add("module-layer3"), I.appendChild(M), M.setAttribute("fill", "white"), M.innerHTML = o, new gt(I).transform(([S, N]) => [S, N + (r / 2 - S) ** 2 / (r * 6)]), I;
|
|
4979
4979
|
}, l = R("g");
|
|
4980
4980
|
l.classList.add("module-root");
|
|
4981
4981
|
const d = R("defs");
|
|
@@ -4986,10 +4986,10 @@ class $a extends st {
|
|
|
4986
4986
|
E.setAttribute("opacity", "0"), w.appendChild(E);
|
|
4987
4987
|
const h = R("g");
|
|
4988
4988
|
h.classList.add("module-text-enclosure"), l.appendChild(h);
|
|
4989
|
-
const
|
|
4990
|
-
h.appendChild(
|
|
4991
|
-
const
|
|
4992
|
-
return ct(h,
|
|
4989
|
+
const u = B();
|
|
4990
|
+
h.appendChild(u);
|
|
4991
|
+
const C = at(g);
|
|
4992
|
+
return ct(h, C, t.height, t.width, 0.35, 0.65), sA(l.outerHTML);
|
|
4993
4993
|
}
|
|
4994
4994
|
}
|
|
4995
4995
|
async function rA(c) {
|
|
@@ -5020,17 +5020,17 @@ class Mt extends Zt {
|
|
|
5020
5020
|
class en {
|
|
5021
5021
|
constructor(e, t, A, a, n, i, o, s, r, g, B, l = !1, d, w = !1, E = !1, h = !1) {
|
|
5022
5022
|
this.workflowStatePromiseQueue = new $t(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
|
|
5023
|
-
var
|
|
5023
|
+
var I;
|
|
5024
5024
|
if (!this.previewService)
|
|
5025
5025
|
return;
|
|
5026
|
-
const
|
|
5027
|
-
if (
|
|
5028
|
-
for (const [,
|
|
5029
|
-
|
|
5026
|
+
const u = this.getCommandContext().getAllLayouts(), C = (I = this.getLayoutPreviewService()) == null ? void 0 : I.getAll();
|
|
5027
|
+
if (C)
|
|
5028
|
+
for (const [, m] of C)
|
|
5029
|
+
m.render(this.getWorkflow(), u, this.getProduct().overlayImageUrl);
|
|
5030
5030
|
}, this.client = e, this.updateTransaction = i, this.commandContext = n, this.reloadedState = B, this.transaction = o, 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 = s, 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(() => {
|
|
5031
5031
|
this.initialized = !0;
|
|
5032
|
-
}), this.initializationPromise.catch((
|
|
5033
|
-
throw console.error(
|
|
5032
|
+
}), this.initializationPromise.catch((u) => {
|
|
5033
|
+
throw console.error(u), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
5034
5034
|
}), this.initializationPromise.finally(
|
|
5035
5035
|
() => this.getCommandContext().registerStateCallback(() => {
|
|
5036
5036
|
this.updateStateWithServer(), this.renderLayouts();
|
|
@@ -5423,16 +5423,16 @@ class en {
|
|
|
5423
5423
|
), this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, await this.ensureStepsAreLoaded();
|
|
5424
5424
|
}
|
|
5425
5425
|
async setSelectionsAndElements(e, t, A, a) {
|
|
5426
|
-
var
|
|
5426
|
+
var Q;
|
|
5427
5427
|
const n = this.stepSelections;
|
|
5428
5428
|
this.stepSelections = {
|
|
5429
5429
|
...this.stepSelections,
|
|
5430
5430
|
[e]: { selectedVariants: t }
|
|
5431
|
-
}, this.selectionCost = Object.values(this.stepSelections).reduce((p,
|
|
5431
|
+
}, this.selectionCost = Object.values(this.stepSelections).reduce((p, f) => p + f.selectedVariants.map((F) => F.priceModifier || 0).reduce((F, M) => F + M, 0), 0), this.workflow.steps.forEach((p) => {
|
|
5432
5432
|
ae(p, this.stepSelections) || (this.stepInitialised[p.stepName] = !1, delete this.stepMetadata[p.stepName], delete this.stepSelections[p.stepName], delete this.storage[p.stepName]);
|
|
5433
5433
|
});
|
|
5434
5434
|
const i = this.allScenes, o = Ae(i, n), s = Ae(i, this.stepSelections), r = o.map((p) => p.silentSteps).flat(), B = s.map((p) => p.silentSteps).flat().filter(
|
|
5435
|
-
(p) => !r.some((
|
|
5435
|
+
(p) => !r.some((f) => f.stepName === p.stepName)
|
|
5436
5436
|
);
|
|
5437
5437
|
r.forEach((p) => {
|
|
5438
5438
|
ae(p, this.stepSelections) || (this.stepInitialised[p.stepName] = !1);
|
|
@@ -5446,15 +5446,15 @@ class en {
|
|
|
5446
5446
|
const E = this.workflow.steps.find((p) => p.stepName === e);
|
|
5447
5447
|
if ((E == null ? void 0 : E.type) === y.Frame) {
|
|
5448
5448
|
const p = this.getStepSpecificServices(e);
|
|
5449
|
-
(
|
|
5450
|
-
}
|
|
5451
|
-
const h = l.map((p) => new $(p.id)),
|
|
5452
|
-
|
|
5453
|
-
const
|
|
5454
|
-
if (
|
|
5455
|
-
const p =
|
|
5456
|
-
(
|
|
5457
|
-
|
|
5449
|
+
(Q = p == null ? void 0 : p.frameService) == null || Q.setTargetElements(A.map((f) => f.id));
|
|
5450
|
+
}
|
|
5451
|
+
const h = l.map((p) => new $(p.id)), u = new Qt(this.constructSerializableWorkflow()), C = [...w, ...h, u];
|
|
5452
|
+
C.length > 0 && this.commandContext.apply(new v(C), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
5453
|
+
const I = this.getInvalidModelVariants(), m = this.modelContainer;
|
|
5454
|
+
if (m) {
|
|
5455
|
+
const p = I.map(
|
|
5456
|
+
(f) => m.applyModelVariant(
|
|
5457
|
+
f,
|
|
5458
5458
|
{
|
|
5459
5459
|
contextService: this.getLayoutPreviewService()
|
|
5460
5460
|
},
|
|
@@ -6412,7 +6412,7 @@ const Bn = async (c) => {
|
|
|
6412
6412
|
N.errors && console.log("Server Error:", O.message);
|
|
6413
6413
|
}), null) : H ?? null;
|
|
6414
6414
|
})() || (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"));
|
|
6415
|
-
const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = s && Ze(s, e, !0), h = s && Ze(s, e, !1),
|
|
6415
|
+
const l = c.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, w = l && e.showModelOnFinishStep && !!d, E = s && Ze(s, e, !0), h = s && Ze(s, e, !1), u = async (M) => {
|
|
6416
6416
|
const Y = {};
|
|
6417
6417
|
let S = 0;
|
|
6418
6418
|
if (Object.keys(n).length > 0)
|
|
@@ -6438,12 +6438,12 @@ const Bn = async (c) => {
|
|
|
6438
6438
|
}
|
|
6439
6439
|
}
|
|
6440
6440
|
return [Y, S];
|
|
6441
|
-
}, [
|
|
6442
|
-
Object.keys(
|
|
6443
|
-
), [
|
|
6444
|
-
Object.keys(
|
|
6441
|
+
}, [C] = await u(!0), I = Object.fromEntries(
|
|
6442
|
+
Object.keys(C).map((M) => [M, C[M].map((Y) => Y.id)])
|
|
6443
|
+
), [m] = await u(!1), Q = Object.fromEntries(
|
|
6444
|
+
Object.keys(m).map((M) => [
|
|
6445
6445
|
M,
|
|
6446
|
-
|
|
6446
|
+
m[M].map((Y) => Y.id)
|
|
6447
6447
|
])
|
|
6448
6448
|
), p = await o(w, a.id);
|
|
6449
6449
|
return {
|
|
@@ -6465,19 +6465,19 @@ const Bn = async (c) => {
|
|
|
6465
6465
|
Y.push({ key: S, value: N });
|
|
6466
6466
|
M.metadata = Y;
|
|
6467
6467
|
}
|
|
6468
|
-
if (
|
|
6468
|
+
if (I) {
|
|
6469
6469
|
const Y = [];
|
|
6470
|
-
for (const [S, N] of Object.entries(
|
|
6470
|
+
for (const [S, N] of Object.entries(Q))
|
|
6471
6471
|
Y.push({ key: S, ids: N });
|
|
6472
6472
|
M.selectedVariants = Y;
|
|
6473
6473
|
}
|
|
6474
6474
|
return M;
|
|
6475
6475
|
})(),
|
|
6476
|
-
cartSelectionsWithPrices:
|
|
6476
|
+
cartSelectionsWithPrices: C,
|
|
6477
6477
|
cartMetadata: E
|
|
6478
6478
|
};
|
|
6479
6479
|
}, hn = async (c, e, t, A, a, n, i, o, s, r, g) => {
|
|
6480
|
-
var
|
|
6480
|
+
var u, C;
|
|
6481
6481
|
s("workflow.steps.finish.finalize.buildingLayouts");
|
|
6482
6482
|
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await BA(
|
|
6483
6483
|
c,
|
|
@@ -6491,7 +6491,7 @@ const Bn = async (c) => {
|
|
|
6491
6491
|
g
|
|
6492
6492
|
);
|
|
6493
6493
|
s("workflow.steps.finish.finalize.creatingDesign");
|
|
6494
|
-
const w = await Bn(B), E = (
|
|
6494
|
+
const w = await Bn(B), E = (u = w == null ? void 0 : w.transaction) == null ? void 0 : u.previewImageLink;
|
|
6495
6495
|
if (!(w != null && w.transaction))
|
|
6496
6496
|
throw new Error("Failed to create design");
|
|
6497
6497
|
s("workflow.steps.finish.finalize.updatingTransaction");
|
|
@@ -6504,7 +6504,7 @@ const Bn = async (c) => {
|
|
|
6504
6504
|
w == null ? void 0 : w.sku,
|
|
6505
6505
|
d,
|
|
6506
6506
|
E,
|
|
6507
|
-
(
|
|
6507
|
+
(C = w == null ? void 0 : w.processExecution) == null ? void 0 : C.id
|
|
6508
6508
|
);
|
|
6509
6509
|
}, En = async (c, e, t) => {
|
|
6510
6510
|
e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
@@ -6718,18 +6718,18 @@ class me {
|
|
|
6718
6718
|
return this.workflowManager;
|
|
6719
6719
|
}
|
|
6720
6720
|
async createPreviewImage(e, t) {
|
|
6721
|
-
var
|
|
6722
|
-
const A = this.workflowManager.getWorkflow(), a = (
|
|
6721
|
+
var C, I;
|
|
6722
|
+
const A = this.workflowManager.getWorkflow(), a = (C = A == null ? void 0 : A.finalizeStepConfig) == null ? void 0 : C.lookAtAnimation;
|
|
6723
6723
|
if (e) {
|
|
6724
6724
|
if (!a)
|
|
6725
6725
|
throw new Error("Failed to generate cart preview image!");
|
|
6726
|
-
return await ((
|
|
6726
|
+
return await ((I = this.workflowManager.getPreviewService()) == null ? void 0 : I.renderSceneScreenshot(t ?? 512, a)) || "";
|
|
6727
6727
|
}
|
|
6728
6728
|
let n = 2048;
|
|
6729
6729
|
t && t <= 2048 && (n = t);
|
|
6730
|
-
const i = Ye(n, n), o = this.commandContext.getAllLayouts(), s = A.defaultPreviewPanelIndex || 0, r = A.panels[s], g = o.find((
|
|
6731
|
-
var
|
|
6732
|
-
return ((
|
|
6730
|
+
const i = Ye(n, n), o = this.commandContext.getAllLayouts(), s = A.defaultPreviewPanelIndex || 0, r = A.panels[s], g = o.find((m) => {
|
|
6731
|
+
var Q;
|
|
6732
|
+
return ((Q = m.layoutState) == null ? void 0 : Q.layout.panelId) === (r == null ? void 0 : r.name);
|
|
6733
6733
|
}) || o[0], B = g.layoutState.layout.previewRegion ? {
|
|
6734
6734
|
x: g.layoutState.layout.previewRegion.left,
|
|
6735
6735
|
y: g.layoutState.layout.previewRegion.top,
|
|
@@ -6757,8 +6757,8 @@ class me {
|
|
|
6757
6757
|
DOMParser: Gt(),
|
|
6758
6758
|
fetch: $e
|
|
6759
6759
|
})).render();
|
|
6760
|
-
const
|
|
6761
|
-
return i.toDataURL(
|
|
6760
|
+
const u = await this.getCanvasObjectURLAsync(i);
|
|
6761
|
+
return i.toDataURL(u);
|
|
6762
6762
|
}
|
|
6763
6763
|
getStepById(e) {
|
|
6764
6764
|
const t = this.getWorkflowManager().getWorkflow().steps.find((n) => n.stepName === e);
|
|
@@ -6849,13 +6849,13 @@ class me {
|
|
|
6849
6849
|
d !== void 0 && d.forEach((w) => {
|
|
6850
6850
|
const E = s(w), h = g.has(JSON.stringify(w));
|
|
6851
6851
|
if (h && (E == null ? void 0 : E.getType()) === "Option") {
|
|
6852
|
-
const
|
|
6853
|
-
if (!
|
|
6852
|
+
const u = l.getCurrentVariant();
|
|
6853
|
+
if (!u)
|
|
6854
6854
|
return;
|
|
6855
|
-
r.selectVariant(
|
|
6855
|
+
r.selectVariant(u), g.delete(JSON.stringify(w));
|
|
6856
6856
|
} else if (h && (E == null ? void 0 : E.getType()) === "Text") {
|
|
6857
|
-
const
|
|
6858
|
-
r.setText(
|
|
6857
|
+
const u = l.getText();
|
|
6858
|
+
r.setText(u), g.delete(JSON.stringify(w));
|
|
6859
6859
|
}
|
|
6860
6860
|
});
|
|
6861
6861
|
}));
|
|
@@ -7115,11 +7115,11 @@ const mn = [
|
|
|
7115
7115
|
return console.error(o), [];
|
|
7116
7116
|
}
|
|
7117
7117
|
}, fn = async (c, e, t, A) => {
|
|
7118
|
-
var
|
|
7118
|
+
var Q, p;
|
|
7119
7119
|
const a = t.data, n = A.option;
|
|
7120
7120
|
if (!n)
|
|
7121
7121
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
7122
|
-
const i = ((
|
|
7122
|
+
const i = ((Q = n.variants) == null ? void 0 : Q.find((f) => f.id === a.illustrationVariantId)) || ve(n);
|
|
7123
7123
|
if (!i)
|
|
7124
7124
|
return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
|
|
7125
7125
|
if (!i.asset)
|
|
@@ -7133,55 +7133,55 @@ const mn = [
|
|
|
7133
7133
|
return console.error("Failed to read SVG."), [];
|
|
7134
7134
|
bt(w);
|
|
7135
7135
|
const E = {};
|
|
7136
|
-
GA(w, (
|
|
7137
|
-
mn.includes(
|
|
7138
|
-
const F =
|
|
7136
|
+
GA(w, (f) => {
|
|
7137
|
+
mn.includes(f.tagName) && !f.attributes.getNamedItem("fill") && f.setAttribute("fill", "#000000");
|
|
7138
|
+
const F = f.attributes.getNamedItem("fill");
|
|
7139
7139
|
if (F && F.value !== "none") {
|
|
7140
7140
|
const Y = F.value, N = `spiff-fill-${Y.replace(/\W/g, "")}`;
|
|
7141
|
-
|
|
7141
|
+
f.classList.add(N), E[N] = { browserValue: Y };
|
|
7142
7142
|
}
|
|
7143
|
-
const M =
|
|
7143
|
+
const M = f.attributes.getNamedItem("stroke");
|
|
7144
7144
|
if (M && M.value !== "none") {
|
|
7145
7145
|
const Y = M.value, N = `spiff-stroke-${Y.replace(/\W/g, "")}`;
|
|
7146
|
-
|
|
7146
|
+
f.classList.add(N), E[N] = { browserValue: Y };
|
|
7147
7147
|
}
|
|
7148
7148
|
});
|
|
7149
|
-
const
|
|
7150
|
-
if (
|
|
7151
|
-
for (const [
|
|
7152
|
-
for (const M of Object.keys(
|
|
7149
|
+
const u = Jt().serializeToString(w), C = a.colors;
|
|
7150
|
+
if (C) {
|
|
7151
|
+
for (const [f, F] of Object.entries(E))
|
|
7152
|
+
for (const M of Object.keys(C))
|
|
7153
7153
|
if (F.browserValue === M) {
|
|
7154
|
-
E[
|
|
7154
|
+
E[f] = { browserValue: C[M] };
|
|
7155
7155
|
break;
|
|
7156
7156
|
}
|
|
7157
7157
|
}
|
|
7158
|
-
const
|
|
7159
|
-
const F = c.find((Y) => Y.panelId ===
|
|
7158
|
+
const I = (f) => {
|
|
7159
|
+
const F = c.find((Y) => Y.panelId === f.panelId);
|
|
7160
7160
|
if (!F)
|
|
7161
|
-
throw new z(
|
|
7161
|
+
throw new z(f);
|
|
7162
7162
|
const M = J();
|
|
7163
7163
|
return new T(
|
|
7164
7164
|
{
|
|
7165
7165
|
colors: E,
|
|
7166
7166
|
id: M,
|
|
7167
|
-
svg:
|
|
7167
|
+
svg: u,
|
|
7168
7168
|
type: k.Illustration,
|
|
7169
|
-
y:
|
|
7170
|
-
x:
|
|
7171
|
-
rotation:
|
|
7172
|
-
width:
|
|
7173
|
-
height:
|
|
7174
|
-
layer:
|
|
7175
|
-
layerIndex:
|
|
7176
|
-
immutable:
|
|
7169
|
+
y: f.top,
|
|
7170
|
+
x: f.left,
|
|
7171
|
+
rotation: f.rotation,
|
|
7172
|
+
width: f.width,
|
|
7173
|
+
height: f.height,
|
|
7174
|
+
layer: f.layer,
|
|
7175
|
+
layerIndex: f.layerIndex,
|
|
7176
|
+
immutable: f.immutable
|
|
7177
7177
|
},
|
|
7178
7178
|
F
|
|
7179
7179
|
);
|
|
7180
|
-
},
|
|
7180
|
+
}, m = A.data.regions;
|
|
7181
7181
|
try {
|
|
7182
|
-
return
|
|
7183
|
-
} catch (
|
|
7184
|
-
return console.error(
|
|
7182
|
+
return m.map(I);
|
|
7183
|
+
} catch (f) {
|
|
7184
|
+
return console.error(f), [];
|
|
7185
7185
|
}
|
|
7186
7186
|
}, Dn = async (c, e, t) => {
|
|
7187
7187
|
const A = await rA(t.data.module), a = e.data, n = (o, s) => {
|
|
@@ -7347,10 +7347,10 @@ const mn = [
|
|
|
7347
7347
|
}
|
|
7348
7348
|
else {
|
|
7349
7349
|
const r = await Z(n, !0), g = (B) => {
|
|
7350
|
-
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "",
|
|
7351
|
-
if (!
|
|
7350
|
+
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = kt().parseFromString(w, "image/svg+xml").firstElementChild;
|
|
7351
|
+
if (!u)
|
|
7352
7352
|
throw new se("Failed to read SVG.");
|
|
7353
|
-
return bt(
|
|
7353
|
+
return bt(u), Jt().serializeToString(u);
|
|
7354
7354
|
};
|
|
7355
7355
|
s.forEach((B) => {
|
|
7356
7356
|
const l = c.find((w) => w.panelId === B.panelId);
|
|
@@ -7381,41 +7381,41 @@ const mn = [
|
|
|
7381
7381
|
return A;
|
|
7382
7382
|
}, Sn = async (c, e, t, A) => {
|
|
7383
7383
|
const a = [], n = t.data, i = 30, o = (h) => h.vertical ? "center" : h.textAlign || "center", s = () => {
|
|
7384
|
-
var
|
|
7384
|
+
var I;
|
|
7385
7385
|
const h = A.option;
|
|
7386
7386
|
if (!h)
|
|
7387
7387
|
return;
|
|
7388
|
-
const
|
|
7389
|
-
if (!
|
|
7388
|
+
const u = ((I = h.variants) == null ? void 0 : I.find((m) => m.id === n.fontVariantId)) || ve(h);
|
|
7389
|
+
if (!u || !u.asset)
|
|
7390
7390
|
return;
|
|
7391
|
-
e[A.stepName] = { selectedVariants: [
|
|
7392
|
-
const
|
|
7393
|
-
if (
|
|
7394
|
-
return
|
|
7391
|
+
e[A.stepName] = { selectedVariants: [u] };
|
|
7392
|
+
const C = u.asset.fileLink;
|
|
7393
|
+
if (C)
|
|
7394
|
+
return C;
|
|
7395
7395
|
}, g = await (async () => {
|
|
7396
7396
|
const h = s();
|
|
7397
7397
|
if (!h)
|
|
7398
7398
|
return;
|
|
7399
|
-
const
|
|
7399
|
+
const u = await tt(h);
|
|
7400
7400
|
return {
|
|
7401
7401
|
assetUrl: h,
|
|
7402
|
-
name:
|
|
7402
|
+
name: u.names.fullName.en
|
|
7403
7403
|
};
|
|
7404
7404
|
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = We(B, {
|
|
7405
7405
|
vertical: A.data.vertical,
|
|
7406
7406
|
uppercase: A.data.uppercase
|
|
7407
7407
|
}), d = async (h) => {
|
|
7408
|
-
const
|
|
7409
|
-
if (!
|
|
7408
|
+
const u = h.colorOption;
|
|
7409
|
+
if (!u)
|
|
7410
7410
|
return;
|
|
7411
|
-
const
|
|
7412
|
-
return
|
|
7411
|
+
const C = j.getDefaultVariant(u);
|
|
7412
|
+
return C == null ? void 0 : C.color;
|
|
7413
7413
|
}, w = n.color || await d(A.data), E = A.data.regions;
|
|
7414
7414
|
for (const h of E) {
|
|
7415
|
-
const
|
|
7416
|
-
if (!
|
|
7415
|
+
const u = c.find((I) => I.panelId === h.panelId);
|
|
7416
|
+
if (!u)
|
|
7417
7417
|
continue;
|
|
7418
|
-
const
|
|
7418
|
+
const C = {
|
|
7419
7419
|
stepName: t.name,
|
|
7420
7420
|
id: J(),
|
|
7421
7421
|
align: o(A.data),
|
|
@@ -7437,7 +7437,7 @@ const mn = [
|
|
|
7437
7437
|
y: h.top
|
|
7438
7438
|
};
|
|
7439
7439
|
if (g) {
|
|
7440
|
-
const [
|
|
7440
|
+
const [I, m] = De(
|
|
7441
7441
|
A.data.size || i,
|
|
7442
7442
|
g,
|
|
7443
7443
|
h,
|
|
@@ -7456,16 +7456,16 @@ const mn = [
|
|
|
7456
7456
|
a.push(
|
|
7457
7457
|
new T(
|
|
7458
7458
|
{
|
|
7459
|
-
...
|
|
7460
|
-
fontSize:
|
|
7461
|
-
text:
|
|
7459
|
+
...C,
|
|
7460
|
+
fontSize: I,
|
|
7461
|
+
text: C.curved ? C.text : (m || []).join(`
|
|
7462
7462
|
`)
|
|
7463
7463
|
},
|
|
7464
|
-
|
|
7464
|
+
u
|
|
7465
7465
|
)
|
|
7466
7466
|
);
|
|
7467
7467
|
} else
|
|
7468
|
-
a.push(new T(
|
|
7468
|
+
a.push(new T(C, u));
|
|
7469
7469
|
}
|
|
7470
7470
|
return a;
|
|
7471
7471
|
}, Yn = (c, e) => c.conditions ? c.conditions.every((t) => {
|
|
@@ -10356,21 +10356,21 @@ class Si {
|
|
|
10356
10356
|
if (o != null && o.has(e)) {
|
|
10357
10357
|
const h = o.get(e);
|
|
10358
10358
|
if (h && await this.authenticateCustomerId(h)) {
|
|
10359
|
-
const
|
|
10360
|
-
(
|
|
10361
|
-
var
|
|
10362
|
-
return (
|
|
10359
|
+
const C = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
10360
|
+
(I) => {
|
|
10361
|
+
var m, Q;
|
|
10362
|
+
return (Q = (m = I.bundle) == null ? void 0 : m.transactions) == null ? void 0 : Q.some((p) => p.id === e);
|
|
10363
10363
|
}
|
|
10364
10364
|
)) || ((E = (w = this.customer) == null ? void 0 : w.stakeholders) == null ? void 0 : E.find(
|
|
10365
|
-
(
|
|
10366
|
-
var
|
|
10367
|
-
return ((
|
|
10365
|
+
(I) => {
|
|
10366
|
+
var m;
|
|
10367
|
+
return ((m = I.transaction) == null ? void 0 : m.id) === e;
|
|
10368
10368
|
}
|
|
10369
10369
|
));
|
|
10370
|
-
if (
|
|
10370
|
+
if (C)
|
|
10371
10371
|
return Promise.resolve({
|
|
10372
10372
|
success: !0,
|
|
10373
|
-
stakeholderType:
|
|
10373
|
+
stakeholderType: C.type
|
|
10374
10374
|
});
|
|
10375
10375
|
}
|
|
10376
10376
|
}
|
|
@@ -10530,15 +10530,15 @@ class Si {
|
|
|
10530
10530
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
10531
10531
|
*/
|
|
10532
10532
|
async getExistingBundle(e, t, A, a) {
|
|
10533
|
-
var h, C,
|
|
10533
|
+
var h, u, C, I, m, Q, p, f, F;
|
|
10534
10534
|
const n = P.getMap("bundleOwnerIds"), i = n == null ? void 0 : n.get(e), s = ((h = Object.entries(localStorage).find(([M, Y]) => M.startsWith("CognitoIdentityServiceProvider") && M.endsWith("idToken"))) == null ? void 0 : h[0]) || "", r = localStorage.getItem(s), g = {};
|
|
10535
10535
|
r && !lt(r) && (g.Authorization = `Bearer ${r}`);
|
|
10536
10536
|
const B = {
|
|
10537
10537
|
bundleOwnerId: i,
|
|
10538
10538
|
...g,
|
|
10539
|
-
...(
|
|
10539
|
+
...(u = a == null ? void 0 : a.graphql) == null ? void 0 : u.additionalHeaders
|
|
10540
10540
|
}, l = await x.getShadowGraphqlClient().query({
|
|
10541
|
-
query: vn(((
|
|
10541
|
+
query: vn(((I = (C = a == null ? void 0 : a.graphql) == null ? void 0 : C.productCollection) == null ? void 0 : I.eagerFetchProducts) || !1),
|
|
10542
10542
|
variables: {
|
|
10543
10543
|
id: e
|
|
10544
10544
|
},
|
|
@@ -10547,9 +10547,9 @@ class Si {
|
|
|
10547
10547
|
headers: B
|
|
10548
10548
|
}
|
|
10549
10549
|
});
|
|
10550
|
-
if (!((
|
|
10550
|
+
if (!((m = l.data) != null && m.bundles) || ((Q = l.data) == null ? void 0 : Q.bundles.length) === 0 || !((p = l.data) != null && p.bundles[0]))
|
|
10551
10551
|
throw new Error(`Unable to find bundle: ${e}`);
|
|
10552
|
-
const d = (
|
|
10552
|
+
const d = (f = l.data) == null ? void 0 : f.bundles[0], w = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10553
10553
|
w.set(d.id, d.partner.id), P.setMap("bundlePartnerIds", w);
|
|
10554
10554
|
const E = new St(this, d, t, A, i, {
|
|
10555
10555
|
additionalHeaders: (F = a == null ? void 0 : a.graphql) == null ? void 0 : F.additionalHeaders
|
|
@@ -10592,36 +10592,36 @@ class Si {
|
|
|
10592
10592
|
if (!a)
|
|
10593
10593
|
return await this.getWorkflowExperienceDeprecated(e, t, A);
|
|
10594
10594
|
const n = async () => {
|
|
10595
|
-
var
|
|
10595
|
+
var u, C;
|
|
10596
10596
|
const h = x.getShadowGraphqlClient();
|
|
10597
10597
|
if (a.type === "transaction") {
|
|
10598
|
-
const { transactionId:
|
|
10598
|
+
const { transactionId: I, readOnly: m } = a, Q = await h.query({
|
|
10599
10599
|
query: ue,
|
|
10600
10600
|
variables: {
|
|
10601
|
-
ids: [
|
|
10601
|
+
ids: [I]
|
|
10602
10602
|
},
|
|
10603
10603
|
errorPolicy: "all",
|
|
10604
10604
|
fetchPolicy: "no-cache"
|
|
10605
10605
|
});
|
|
10606
|
-
if (!((
|
|
10606
|
+
if (!((u = Q.data) != null && u.transactions) || Q.data.transactions.length === 0)
|
|
10607
10607
|
throw new U("Existing transaction not found.");
|
|
10608
|
-
const p = (
|
|
10608
|
+
const p = (C = Q.data) == null ? void 0 : C.transactions[0];
|
|
10609
10609
|
if (!p.workflowId)
|
|
10610
10610
|
throw new U("Existing transaction has no workflow ID.");
|
|
10611
|
-
const
|
|
10611
|
+
const f = await fe(p.workflowId);
|
|
10612
10612
|
if (!p.product)
|
|
10613
10613
|
throw new U("Failed to load transaction, product not available.");
|
|
10614
|
-
return { transaction: p, workflow:
|
|
10614
|
+
return { transaction: p, workflow: f, readOnly: m };
|
|
10615
10615
|
}
|
|
10616
10616
|
if (a.type === "integration" || a.type === "external") {
|
|
10617
|
-
const
|
|
10618
|
-
const
|
|
10617
|
+
const I = async () => {
|
|
10618
|
+
const f = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
|
|
10619
10619
|
externalIntegrationId: a.externalIntegrationId,
|
|
10620
10620
|
externalProductId: a.externalProductId
|
|
10621
10621
|
}, F = await h.mutate({
|
|
10622
10622
|
mutation: Dt,
|
|
10623
10623
|
variables: {
|
|
10624
|
-
...
|
|
10624
|
+
...f,
|
|
10625
10625
|
workflowId: a.workflowId,
|
|
10626
10626
|
claim: !0
|
|
10627
10627
|
},
|
|
@@ -10636,8 +10636,8 @@ class Si {
|
|
|
10636
10636
|
if (!M.product)
|
|
10637
10637
|
throw new U("Failed to create transaction, product not available.");
|
|
10638
10638
|
return M;
|
|
10639
|
-
},
|
|
10640
|
-
return { transaction:
|
|
10639
|
+
}, m = fe(a.workflowId, a == null ? void 0 : a.graphql), [Q, p] = await Promise.all([I(), m]);
|
|
10640
|
+
return { transaction: Q, workflow: p };
|
|
10641
10641
|
}
|
|
10642
10642
|
throw new U("No workflow ID provided.");
|
|
10643
10643
|
}, { transaction: i, workflow: o, readOnly: s } = await n();
|
|
@@ -10650,18 +10650,18 @@ class Si {
|
|
|
10650
10650
|
stateMutationFunc: s ? async () => {
|
|
10651
10651
|
throw new b("State mutation is forbidden in read only mode!");
|
|
10652
10652
|
} : async (h) => {
|
|
10653
|
-
const
|
|
10654
|
-
return this.updateTransactionState({ ...h, context: { transactionOwnerId:
|
|
10653
|
+
const C = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(i.id) || void 0;
|
|
10654
|
+
return this.updateTransactionState({ ...h, context: { transactionOwnerId: C } });
|
|
10655
10655
|
},
|
|
10656
10656
|
readOnly: s,
|
|
10657
10657
|
workflow: o
|
|
10658
10658
|
};
|
|
10659
10659
|
if (a.type === "transaction" && i.workflowState) {
|
|
10660
10660
|
const h = JSON.parse(i.workflowState);
|
|
10661
|
-
r.layouts = Object.values(h.layouts).map((
|
|
10661
|
+
r.layouts = Object.values(h.layouts).map((u) => u.layout), await ee(h), await te(h), r.reloadedState = h;
|
|
10662
10662
|
} else if (!s && a.workflowState) {
|
|
10663
10663
|
const h = JSON.parse(a.workflowState);
|
|
10664
|
-
r.layouts = Object.values(h.layouts).map((
|
|
10664
|
+
r.layouts = Object.values(h.layouts).map((u) => u.layout), await ee(h), await te(h), r.reloadedState = h;
|
|
10665
10665
|
} else
|
|
10666
10666
|
r.layouts = Ke(
|
|
10667
10667
|
r.transaction,
|
|
@@ -10694,20 +10694,20 @@ class Si {
|
|
|
10694
10694
|
async getWorkflowExperiences(e, t) {
|
|
10695
10695
|
if (e.length === 0)
|
|
10696
10696
|
throw new U("No options provided!");
|
|
10697
|
-
const A = x.getShadowGraphqlClient(), a = async (
|
|
10697
|
+
const A = x.getShadowGraphqlClient(), a = async (Q) => {
|
|
10698
10698
|
var M, Y;
|
|
10699
|
-
if (
|
|
10699
|
+
if (Q.length === 0)
|
|
10700
10700
|
return [];
|
|
10701
|
-
const p =
|
|
10701
|
+
const p = Q.map((S) => S.option.transactionId), f = await A.query({
|
|
10702
10702
|
query: ue,
|
|
10703
10703
|
variables: {
|
|
10704
10704
|
ids: p
|
|
10705
10705
|
},
|
|
10706
10706
|
errorPolicy: "all",
|
|
10707
10707
|
fetchPolicy: "no-cache"
|
|
10708
|
-
}), F =
|
|
10709
|
-
if (F.length !==
|
|
10710
|
-
const S = ((Y = (M =
|
|
10708
|
+
}), F = f.data.transactions;
|
|
10709
|
+
if (F.length !== Q.length) {
|
|
10710
|
+
const S = ((Y = (M = f.errors) == null ? void 0 : M[0]) == null ? void 0 : Y.message) || "Unknown error";
|
|
10711
10711
|
throw new U(`Not all transactions were found: ${S}`);
|
|
10712
10712
|
}
|
|
10713
10713
|
return F.map((S, N) => {
|
|
@@ -10715,18 +10715,18 @@ class Si {
|
|
|
10715
10715
|
return {
|
|
10716
10716
|
transaction: S,
|
|
10717
10717
|
workflowId: S.workflowId,
|
|
10718
|
-
readOnly: ((H =
|
|
10719
|
-
index:
|
|
10718
|
+
readOnly: ((H = Q.find((L) => L.option.transactionId === S.id)) == null ? void 0 : H.option.readOnly) ?? !1,
|
|
10719
|
+
index: Q[N].index
|
|
10720
10720
|
};
|
|
10721
10721
|
});
|
|
10722
|
-
}, n = async (
|
|
10722
|
+
}, n = async (Q) => {
|
|
10723
10723
|
var F, M, Y;
|
|
10724
|
-
if (
|
|
10724
|
+
if (Q.length === 0)
|
|
10725
10725
|
return [];
|
|
10726
10726
|
const p = await A.mutate({
|
|
10727
10727
|
mutation: da,
|
|
10728
10728
|
variables: {
|
|
10729
|
-
inputs:
|
|
10729
|
+
inputs: Q.map((S) => ({
|
|
10730
10730
|
integrationProductId: S.option.type === "integration" ? S.option.integrationProductId : void 0,
|
|
10731
10731
|
externalIntegrationId: S.option.type === "external" ? S.option.externalIntegrationId : void 0,
|
|
10732
10732
|
externalProductId: S.option.type === "external" ? S.option.externalProductId : void 0,
|
|
@@ -10736,25 +10736,25 @@ class Si {
|
|
|
10736
10736
|
},
|
|
10737
10737
|
errorPolicy: "all",
|
|
10738
10738
|
fetchPolicy: "no-cache"
|
|
10739
|
-
}),
|
|
10740
|
-
if (!
|
|
10739
|
+
}), f = (F = p.data) == null ? void 0 : F.transactionCreateMany;
|
|
10740
|
+
if (!f || f.length === 0) {
|
|
10741
10741
|
const S = ((Y = (M = p.errors) == null ? void 0 : M[0]) == null ? void 0 : Y.message) || "Unknown error";
|
|
10742
10742
|
throw new U(`Failed to create transactions: ${S}`);
|
|
10743
10743
|
}
|
|
10744
|
-
return
|
|
10744
|
+
return f.map((S, N) => ({
|
|
10745
10745
|
transaction: S,
|
|
10746
10746
|
workflowId: S.workflowId,
|
|
10747
10747
|
readOnly: !1,
|
|
10748
|
-
index:
|
|
10748
|
+
index: Q[N].index
|
|
10749
10749
|
}));
|
|
10750
|
-
}, i = e.map((
|
|
10751
|
-
(
|
|
10750
|
+
}, i = e.map((Q, p) => ({ option: Q, index: p })), o = i.filter((Q) => Q.option.type === "transaction"), s = i.filter(
|
|
10751
|
+
(Q) => Q.option.type === "integration" || Q.option.type === "external"
|
|
10752
10752
|
), r = pt(o, 10), g = pt(s, 10), B = (await Promise.all([
|
|
10753
10753
|
...r.map(a),
|
|
10754
10754
|
...g.map(n)
|
|
10755
|
-
])).flat(), l = [...new Set(B.map((
|
|
10755
|
+
])).flat(), l = [...new Set(B.map((Q) => Q.workflowId))], d = await uA(l, t), w = new Map(d.map((Q) => [Q.id, Q])), E = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (Q) => {
|
|
10756
10756
|
var L;
|
|
10757
|
-
const { transaction: p, workflowId:
|
|
10757
|
+
const { transaction: p, workflowId: f, readOnly: F, index: M } = Q, Y = w.get(f), S = e[M];
|
|
10758
10758
|
!E.get(p.id) && p.transactionOwnerId && E.set(p.id, p.transactionOwnerId);
|
|
10759
10759
|
const N = E.get(p.id) || void 0, H = {
|
|
10760
10760
|
product: p.product,
|
|
@@ -10784,11 +10784,11 @@ class Si {
|
|
|
10784
10784
|
), H.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = H, { experienceOptions: H, index: M, options: S };
|
|
10785
10785
|
});
|
|
10786
10786
|
P.setMap("transactionOwnerIds", E);
|
|
10787
|
-
const
|
|
10788
|
-
const { experienceOptions: p, options:
|
|
10789
|
-
return await F.getWorkflowManager().getInitializationPromise(),
|
|
10790
|
-
}),
|
|
10791
|
-
return
|
|
10787
|
+
const I = (await Promise.all(h)).sort((Q, p) => Q.index - p.index).map(async (Q) => {
|
|
10788
|
+
const { experienceOptions: p, options: f } = Q, F = new me(this, p);
|
|
10789
|
+
return await F.getWorkflowManager().getInitializationPromise(), f.type !== "transaction" && this.customer && await F.attachCustomerDetails({ email: this.customer.emailAddress }), F;
|
|
10790
|
+
}), m = await Promise.all(I);
|
|
10791
|
+
return m.forEach((Q) => Q.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), m;
|
|
10792
10792
|
}
|
|
10793
10793
|
/**
|
|
10794
10794
|
* Initialize the client from an integration product.
|