@spiffcommerce/core 21.10.0-alpha.4 → 21.10.0
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 +642 -641
- package/dist/index.umd.cjs +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createHttpLink as CA, InMemoryCache as QA, ApolloClient as mA, from as pA, gql as D } from "@apollo/client/core";
|
|
2
2
|
import { fetch as $e, getAttributesFromArrayBuffer as Pt, AssetType as ht, StepType as y, getFrameData as _e, frameDataCache as IA, GroupCommand as v, UpdateFramePattern as xt, UpdateFrameThresholdSettingsCommand as fA, calculateOffsets as et, LayoutElementType as k, generate as J, CreateElementCommand as T, generateSVGWithUnknownColors as Nt, svgObjectURL as Me, fetchAsString as Z, DeleteElementCommand as $, generateDefaultRectangleFrameSvg as Et, GetSVGDimensions as DA, patternImageDataCache as ut, fetchAsArrayBuffer as FA, findElement as Se, modifySVGWithElementProperties as yA, IllustrationColorCommand as je, IllustrationCacheCommand as MA, getFontMetrics as SA, getPatternImageData as Ve, FontAlignmentCommand as YA, FontColorCommand as PA, FontImageFillCommand as Je, applyTextTransformations as We, determineCorrectFontSizeAndLines as De, FontSourceCommand as Ct, loadFont as tt, TextChangeCommand as xA, FontSizeCommand as NA, createElementNS as HA, createElement as Ee, _loadFontExternalDataURL as At, UpdateWorkflowStateCommand as Qt, CommandContext as RA, createCanvas as Ye, getSvgElement as Ht, LayoutRenderingPurpose as Rt, renderPapyrusComponentAsString as Ut, loadImage as vt, getDomParser as Gt, toBase64 as mt, getVariant as UA, generateFrameSVG as vA, getDefaultVariant as ve, domParser as kt, sanitizeSvgTree as bt, traverse as GA, xmlSerializer as Jt, CreateLayoutCommand as kA, AspectType as ce, rehydrateSerializedLayout as ee } from "@spiffcommerce/papyrus";
|
|
3
|
-
import { AspectType as qi, AssetType as Zi, BringForwardCommand as $i, BringToBackCommand as _i, BringToFrontCommand as
|
|
3
|
+
import { AspectType as qi, AssetType as Zi, BringForwardCommand as $i, BringToBackCommand as _i, BringToFrontCommand as eo, CanvasCommand as to, CommandContext as Ao, CreateElementCommand as ao, CreateLayoutCommand as no, DeleteElementCommand as io, FontAlignmentCommand as oo, FontColorCommand as so, FontSizeCommand as ro, FontSourceCommand as co, GroupCommand as go, LayoutElementFactory as lo, LayoutElementType as Bo, MoveCommand as wo, ResizeCommand as ho, RotateCommand as Eo, SendBackwardsCommand as uo, StepAspectType as Co, StepType as Qo, TextChangeCommand as mo, UnitOfMeasurement as po, dataUrlFromExternalUrl as Io, determineCorrectFontSizeAndLines as fo, findElement as Do, frameDataCache as Fo, generate as yo, generateSVGWithUnknownColors as Mo, getAttributesFromArrayBuffer as So, getAxisAlignedBoundingBox as Yo, getFrameData as Po, getSvgElement as xo, loadFont as No, patternImageDataCache as Ho, registerFetchImplementation as Ro, registerWindowImplementation as Uo, rehydrateSerializedLayout as vo, setCanvasModule as Go } from "@spiffcommerce/papyrus";
|
|
4
4
|
import { setContext as bA } from "@apollo/client/link/context";
|
|
5
5
|
import { onError as JA } from "@apollo/client/link/error";
|
|
6
6
|
import { Pith as Ot } from "pith";
|
|
@@ -56,7 +56,7 @@ class b extends Ge {
|
|
|
56
56
|
super(`Unhandled Behavior Encountered: ${e}`);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
class
|
|
59
|
+
class se extends Ge {
|
|
60
60
|
constructor(e) {
|
|
61
61
|
super(`Parsing Error: ${e}`);
|
|
62
62
|
}
|
|
@@ -180,8 +180,8 @@ class WA {
|
|
|
180
180
|
const e = CA({
|
|
181
181
|
uri: `${q.getServerUrl()}/graphql`,
|
|
182
182
|
fetch: $e
|
|
183
|
-
}), t = bA(async (i,
|
|
184
|
-
const { headers:
|
|
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, C = o.bundleOwnerId;
|
|
185
185
|
try {
|
|
186
186
|
if (window && window.__SENTRY__) {
|
|
187
187
|
const u = window.__SENTRY__.hub;
|
|
@@ -197,17 +197,17 @@ class WA {
|
|
|
197
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
|
-
}), A = JA(({ operation: i, graphQLErrors:
|
|
201
|
-
const r =
|
|
202
|
-
|
|
200
|
+
}), A = JA(({ operation: i, graphQLErrors: o, networkError: s }) => {
|
|
201
|
+
const r = o || [];
|
|
202
|
+
s && console.log("GraphQL Network error"), r.forEach(() => console.log("GraphQL Error: " + i.operationName));
|
|
203
203
|
});
|
|
204
204
|
function a() {
|
|
205
205
|
return {
|
|
206
206
|
read(i = null) {
|
|
207
207
|
return i;
|
|
208
208
|
},
|
|
209
|
-
merge(i,
|
|
210
|
-
return
|
|
209
|
+
merge(i, o) {
|
|
210
|
+
return o || i || null;
|
|
211
211
|
}
|
|
212
212
|
};
|
|
213
213
|
}
|
|
@@ -389,10 +389,10 @@ class Aa {
|
|
|
389
389
|
constructor() {
|
|
390
390
|
this.cache = /* @__PURE__ */ new Map(), this.bgrmCache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (e) => {
|
|
391
391
|
const t = await e.arrayBuffer(), A = await Pt(t), a = (n, i) => {
|
|
392
|
-
const
|
|
393
|
-
for (let r = 0; r <
|
|
394
|
-
|
|
395
|
-
return new Blob([new Uint8Array(
|
|
392
|
+
const o = atob(n.split(",")[1]), s = [];
|
|
393
|
+
for (let r = 0; r < o.length; r++)
|
|
394
|
+
s.push(o.charCodeAt(r));
|
|
395
|
+
return new Blob([new Uint8Array(s)], { type: i });
|
|
396
396
|
};
|
|
397
397
|
return {
|
|
398
398
|
name: e.name.substring(e.name.lastIndexOf("/") + 1),
|
|
@@ -447,14 +447,14 @@ class Aa {
|
|
|
447
447
|
const i = await this.dispatchCreateAssetRequest(e, t, a, n);
|
|
448
448
|
if (!i)
|
|
449
449
|
throw new Error("Failed to create asset.");
|
|
450
|
-
return await new Promise((
|
|
450
|
+
return await new Promise((o, s) => {
|
|
451
451
|
const r = new XMLHttpRequest();
|
|
452
452
|
r.open("PUT", i.assetResponse.uploadUrl, !0), r.setRequestHeader("Content-Type", i.mimeType), r.setRequestHeader("Cache-Control", "public,max-age=31536000,immutable"), r.upload.onprogress = (g) => {
|
|
453
453
|
g.lengthComputable && A(g.loaded * 100 / g.total);
|
|
454
454
|
}, r.onload = () => {
|
|
455
455
|
const g = i.assetResponse.asset;
|
|
456
|
-
Oe.add(i.assetResponse.asset),
|
|
457
|
-
}, r.onerror =
|
|
456
|
+
Oe.add(i.assetResponse.asset), o(g);
|
|
457
|
+
}, r.onerror = s, r.send(e.blob);
|
|
458
458
|
}), this.cacheAsset(i.assetResponse.asset), i.assetResponse.asset;
|
|
459
459
|
}
|
|
460
460
|
async uploadAsset(e, t, A, a) {
|
|
@@ -659,12 +659,12 @@ const de = new aa(), Wt = D`
|
|
|
659
659
|
n.asset && G.cacheAsset(n.asset), n.displayImage && G.cacheAsset(n.displayImage), n.thumbnail && G.cacheAsset(n.thumbnail), n.material && G.cacheMaterial(n.material);
|
|
660
660
|
});
|
|
661
661
|
}), e.data.options;
|
|
662
|
-
},
|
|
663
|
-
const e = c.map((i) => de.get({ id: i })), t = c.filter((i,
|
|
662
|
+
}, oa = async (c, e) => (await e).find((A) => A.id === c), sa = async (c) => {
|
|
663
|
+
const e = c.map((i) => de.get({ id: i })), t = c.filter((i, o) => e[o] === void 0);
|
|
664
664
|
if (t.length === 0)
|
|
665
665
|
return Promise.all(e);
|
|
666
666
|
const A = ia(t), a = t.map(
|
|
667
|
-
(i) => de.set({ id: i },
|
|
667
|
+
(i) => de.set({ id: i }, oa(i, A))
|
|
668
668
|
), n = e.filter((i) => i !== void 0);
|
|
669
669
|
return await Promise.all(n.concat(a));
|
|
670
670
|
};
|
|
@@ -689,7 +689,7 @@ class ra {
|
|
|
689
689
|
*/
|
|
690
690
|
async getOption(e) {
|
|
691
691
|
return (async () => {
|
|
692
|
-
const a = (await
|
|
692
|
+
const a = (await sa([e]))[0];
|
|
693
693
|
if (a)
|
|
694
694
|
return a;
|
|
695
695
|
})();
|
|
@@ -698,13 +698,13 @@ class ra {
|
|
|
698
698
|
var a, n;
|
|
699
699
|
const t = e.thumbnail;
|
|
700
700
|
if (t) {
|
|
701
|
-
const i = (a = t.versions) == null ? void 0 : a.find((
|
|
702
|
-
return (i == null ? void 0 : i.link) ||
|
|
701
|
+
const i = (a = t.versions) == null ? void 0 : a.find((s) => s.name === "thumbnail"), o = t.fileLink;
|
|
702
|
+
return (i == null ? void 0 : i.link) || o;
|
|
703
703
|
}
|
|
704
704
|
const A = e.asset;
|
|
705
705
|
if (A) {
|
|
706
|
-
const i = (n = A.versions) == null ? void 0 : n.find((
|
|
707
|
-
return (i == null ? void 0 : i.link) ||
|
|
706
|
+
const i = (n = A.versions) == null ? void 0 : n.find((s) => s.name === "thumbnail"), o = A.fileLink;
|
|
707
|
+
return (i == null ? void 0 : i.link) || o;
|
|
708
708
|
}
|
|
709
709
|
return e.material ? e.material.id : "";
|
|
710
710
|
}
|
|
@@ -722,7 +722,7 @@ class ra {
|
|
|
722
722
|
}
|
|
723
723
|
}
|
|
724
724
|
const j = new ra();
|
|
725
|
-
var ca = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(ca || {}),
|
|
725
|
+
var ca = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(ca || {}), ot = /* @__PURE__ */ ((c) => (c.BackgroundRemover = "BackgroundRemover", c.ConversionAccelerator = "Conversion Accelerator", c.ProcessBuilder = "ProcessBuilder", c))(ot || {}), ga = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(ga || {}), la = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(la || {}), Ba = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(Ba || {}), Ne = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(Ne || {});
|
|
726
726
|
const ne = D`
|
|
727
727
|
fragment AdditionalIntegrationProductFields on IntegrationProduct {
|
|
728
728
|
id
|
|
@@ -1223,7 +1223,7 @@ const Xt = D`
|
|
|
1223
1223
|
...IntegrationProductFields
|
|
1224
1224
|
}
|
|
1225
1225
|
}
|
|
1226
|
-
`,
|
|
1226
|
+
`, oe = [y.SilentIllustration, y.ProductOverlay], ma = async (c) => {
|
|
1227
1227
|
const e = [];
|
|
1228
1228
|
c.introduction && e.push({
|
|
1229
1229
|
name: "Introduction",
|
|
@@ -1246,16 +1246,16 @@ const Xt = D`
|
|
|
1246
1246
|
e.push({
|
|
1247
1247
|
name: A.stepName,
|
|
1248
1248
|
title: A.stepTitle,
|
|
1249
|
-
renderableSteps:
|
|
1250
|
-
silentSteps:
|
|
1249
|
+
renderableSteps: oe.includes(A.type) ? [] : [A],
|
|
1250
|
+
silentSteps: oe.includes(A.type) ? [A] : []
|
|
1251
1251
|
});
|
|
1252
1252
|
else {
|
|
1253
1253
|
const n = e.find((i) => i.name === a.name);
|
|
1254
|
-
n ?
|
|
1254
|
+
n ? oe.includes(A.type) ? n.silentSteps.push(A) : n.renderableSteps.push(A) : e.push({
|
|
1255
1255
|
name: a.name,
|
|
1256
1256
|
title: a.name,
|
|
1257
|
-
renderableSteps:
|
|
1258
|
-
silentSteps:
|
|
1257
|
+
renderableSteps: oe.includes(A.type) ? [] : [A],
|
|
1258
|
+
silentSteps: oe.includes(A.type) ? [A] : []
|
|
1259
1259
|
});
|
|
1260
1260
|
}
|
|
1261
1261
|
}
|
|
@@ -1298,17 +1298,17 @@ const Xt = D`
|
|
|
1298
1298
|
}, Ae = (c, e) => c.map((t) => Ia(t, e)).filter((t) => t !== null), fa = async (c, e, t = !1) => {
|
|
1299
1299
|
var i;
|
|
1300
1300
|
const A = Ae(c, e), a = [];
|
|
1301
|
-
for (const
|
|
1302
|
-
for (const
|
|
1303
|
-
const r = (((i =
|
|
1304
|
-
|
|
1301
|
+
for (const o of A)
|
|
1302
|
+
for (const s of o.renderableSteps) {
|
|
1303
|
+
const r = (((i = s.option) == null ? void 0 : i.variants) || []).length;
|
|
1304
|
+
s.silent || (s.type === y.Model || s.type === y.Material || s.type === y.Picture || s.type === y.Shape ? (r > 1 || t) && a.push(s.stepName) : a.push(s.stepName));
|
|
1305
1305
|
}
|
|
1306
|
-
const n = A.filter((
|
|
1306
|
+
const n = A.filter((o) => o.renderableSteps.filter(
|
|
1307
1307
|
(r) => a.includes(r.stepName)
|
|
1308
1308
|
).length > 0);
|
|
1309
|
-
for (const
|
|
1310
|
-
|
|
1311
|
-
(
|
|
1309
|
+
for (const o of n)
|
|
1310
|
+
o.renderableSteps = o.renderableSteps.filter(
|
|
1311
|
+
(s) => a.includes(s.stepName)
|
|
1312
1312
|
);
|
|
1313
1313
|
return n;
|
|
1314
1314
|
};
|
|
@@ -1390,10 +1390,10 @@ class $t {
|
|
|
1390
1390
|
function Da(c, e, t, A) {
|
|
1391
1391
|
const a = t.width * c.zoom, n = t.height * c.zoom;
|
|
1392
1392
|
if (A) {
|
|
1393
|
-
const
|
|
1394
|
-
|
|
1395
|
-
const r = t.width *
|
|
1396
|
-
return
|
|
1393
|
+
const o = c, s = Math.max(e.width / t.width, e.height / t.height);
|
|
1394
|
+
o.zoom = Math.max(s, c.zoom);
|
|
1395
|
+
const r = t.width * o.zoom, g = t.height * o.zoom;
|
|
1396
|
+
return o.x = Ce(c.x, e.width - r, 0), o.y = Ce(c.y, e.height - g, 0), o;
|
|
1397
1397
|
}
|
|
1398
1398
|
const i = c;
|
|
1399
1399
|
return i.x = Ce(i.x, -a, e.width), i.y = Ce(i.y, -n, e.height), i;
|
|
@@ -1418,8 +1418,8 @@ class Fa {
|
|
|
1418
1418
|
if (a.currentFrameSources) {
|
|
1419
1419
|
let n = !1;
|
|
1420
1420
|
for (let i = 0; i < a.currentFrameSources.length; i++) {
|
|
1421
|
-
const
|
|
1422
|
-
Lt(
|
|
1421
|
+
const o = a.currentFrameSources[i], s = await _e(o);
|
|
1422
|
+
Lt(s, this.frameData) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[i] = s, n = !0);
|
|
1423
1423
|
}
|
|
1424
1424
|
n && (this.onFrameDataChangeListeners.forEach(
|
|
1425
1425
|
(i) => i(this.frameData)
|
|
@@ -1487,12 +1487,12 @@ class Fa {
|
|
|
1487
1487
|
setZoom(e, t, A, a) {
|
|
1488
1488
|
if (this.imageData && this.offsets && this.frameData) {
|
|
1489
1489
|
(!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length));
|
|
1490
|
-
const n = this.frameData.map((i,
|
|
1491
|
-
const
|
|
1490
|
+
const n = this.frameData.map((i, o) => {
|
|
1491
|
+
const s = (t[o] - this.offsets[o].x) / this.offsets[o].zoom, r = (A[o] - this.offsets[o].y) / this.offsets[o].zoom, g = t[o] - s * e[o], B = A[o] - r * e[o];
|
|
1492
1492
|
return {
|
|
1493
1493
|
x: g,
|
|
1494
1494
|
y: B,
|
|
1495
|
-
zoom: this.imageData.width * e[
|
|
1495
|
+
zoom: this.imageData.width * e[o] / this.imageData.width
|
|
1496
1496
|
};
|
|
1497
1497
|
});
|
|
1498
1498
|
this.updateOffsets(n, a), this.onZoomChangeListeners.forEach((i) => i(e));
|
|
@@ -1519,12 +1519,12 @@ class Fa {
|
|
|
1519
1519
|
throw new b(
|
|
1520
1520
|
"Frame data and offsets are not the same length. This is a bug. Please report it."
|
|
1521
1521
|
);
|
|
1522
|
-
if (!this.offsets.some((i,
|
|
1522
|
+
if (!this.offsets.some((i, o) => !(e[o].x === i.x && e[o].y === i.y && e[o].zoom === i.zoom)) && !A) {
|
|
1523
1523
|
t && t();
|
|
1524
1524
|
return;
|
|
1525
1525
|
}
|
|
1526
|
-
(!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((i,
|
|
1527
|
-
this.offsets[
|
|
1526
|
+
(!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((i, o) => {
|
|
1527
|
+
this.offsets[o] = Da(e[o], i, this.imageData, this.forceImageCover);
|
|
1528
1528
|
}), this._debouncedUpdateFrameOffsets(this.offsets, a, this.frameData, this.thresholdSettings, this.targetElements, t);
|
|
1529
1529
|
}
|
|
1530
1530
|
getThresholdSettings() {
|
|
@@ -1553,16 +1553,16 @@ class Fa {
|
|
|
1553
1553
|
* @param onComplete A callback when the operation is completed.
|
|
1554
1554
|
*/
|
|
1555
1555
|
updateFrameOffsets(e, t, A, a, n, i) {
|
|
1556
|
-
if (!A || A.length === 0 || A.some((
|
|
1556
|
+
if (!A || A.length === 0 || A.some((s) => !s))
|
|
1557
1557
|
throw new b("Frame data not set. This is a bug");
|
|
1558
1558
|
if (!this.workflowManager)
|
|
1559
1559
|
throw new b("No workflow manager set, cannot update offsets.");
|
|
1560
|
-
const
|
|
1561
|
-
n.forEach((
|
|
1562
|
-
|
|
1560
|
+
const o = this.workflowManager.getCommandDispatcher();
|
|
1561
|
+
n.forEach((s, r) => {
|
|
1562
|
+
o(
|
|
1563
1563
|
new v([
|
|
1564
|
-
new xt(
|
|
1565
|
-
new fA(
|
|
1564
|
+
new xt(s, t, e[r]),
|
|
1565
|
+
new fA(s, a.useThreshold, a.invertThreshold, a.threshold, a.thresholdSaturation)
|
|
1566
1566
|
])
|
|
1567
1567
|
);
|
|
1568
1568
|
}), this.stepName && this.workflowManager.updateStorage(this.stepName, {
|
|
@@ -1589,18 +1589,18 @@ class Fa {
|
|
|
1589
1589
|
class Ft {
|
|
1590
1590
|
constructor(e, t, A) {
|
|
1591
1591
|
this.processRegion = async (a) => {
|
|
1592
|
-
var
|
|
1592
|
+
var s, r, g, B;
|
|
1593
1593
|
const n = this.layouts.find((l) => l.panelId === a.panelId);
|
|
1594
1594
|
if (!n)
|
|
1595
1595
|
throw new z(a);
|
|
1596
1596
|
let i = "";
|
|
1597
1597
|
if (this.configuration.type === y.ProductOverlay) {
|
|
1598
1598
|
let l = "";
|
|
1599
|
-
if ((
|
|
1599
|
+
if ((s = this.product) != null && s.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
|
|
1600
1600
|
throw new xe(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1601
1601
|
}
|
|
1602
|
-
const
|
|
1603
|
-
if (
|
|
1602
|
+
const o = this.evaluateAssetType();
|
|
1603
|
+
if (o === k.Image) {
|
|
1604
1604
|
const l = this.configuration.type === y.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (g = this.product) == null ? void 0 : g.overlayImageUrl;
|
|
1605
1605
|
if (!l)
|
|
1606
1606
|
throw new Error("Undefined raster silent step source");
|
|
@@ -1608,7 +1608,7 @@ class Ft {
|
|
|
1608
1608
|
stepName: this.configuration.stepName,
|
|
1609
1609
|
id: J(),
|
|
1610
1610
|
src: l,
|
|
1611
|
-
type:
|
|
1611
|
+
type: o,
|
|
1612
1612
|
y: a.top,
|
|
1613
1613
|
x: a.left,
|
|
1614
1614
|
width: a.width,
|
|
@@ -1644,7 +1644,7 @@ class Ft {
|
|
|
1644
1644
|
src: l,
|
|
1645
1645
|
svg: w.svg,
|
|
1646
1646
|
colors: w.colors,
|
|
1647
|
-
type:
|
|
1647
|
+
type: o,
|
|
1648
1648
|
y: a.top,
|
|
1649
1649
|
x: a.left,
|
|
1650
1650
|
width: a.width,
|
|
@@ -1732,8 +1732,8 @@ class Ma {
|
|
|
1732
1732
|
const a = t.getSerializedStep(
|
|
1733
1733
|
e.stepName,
|
|
1734
1734
|
A.serializableWorkflow.steps
|
|
1735
|
-
),
|
|
1736
|
-
await t.setSelectionsAndElements(e.stepName, [],
|
|
1735
|
+
), s = Object.values(A.layouts).map((r) => r.elements).flat().filter((r) => r.stepName === e.stepName).map((r) => ({ id: r.id, region: r.stepRegion }));
|
|
1736
|
+
await t.setSelectionsAndElements(e.stepName, [], s, async () => {
|
|
1737
1737
|
var B, l;
|
|
1738
1738
|
const r = (B = a == null ? void 0 : a.storage) == null ? void 0 : B.videoShortUrl, g = (l = a == null ? void 0 : a.storage) == null ? void 0 : l.videoUrl;
|
|
1739
1739
|
t.updateStorage(e.stepName, {
|
|
@@ -1742,7 +1742,7 @@ class Ma {
|
|
|
1742
1742
|
});
|
|
1743
1743
|
});
|
|
1744
1744
|
}
|
|
1745
|
-
async regenerateQRCode(e, t, A, a, n, i,
|
|
1745
|
+
async regenerateQRCode(e, t, A, a, n, i, o, s, r) {
|
|
1746
1746
|
if (!t && A !== "" && a === "") {
|
|
1747
1747
|
const g = async () => {
|
|
1748
1748
|
var Q, m;
|
|
@@ -1767,14 +1767,14 @@ class Ma {
|
|
|
1767
1767
|
40
|
|
1768
1768
|
);
|
|
1769
1769
|
});
|
|
1770
|
-
e.forEach((u) =>
|
|
1770
|
+
e.forEach((u) => s(new $(u.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();
|
|
1774
1774
|
if (w.length >= 2e3)
|
|
1775
1775
|
throw new ke("Cannot create QR code, URL too long.");
|
|
1776
1776
|
const E = await ya(w);
|
|
1777
|
-
if (
|
|
1777
|
+
if (o(E), !i.data || !i.data.regions)
|
|
1778
1778
|
throw new xe(i, "Missing regions.");
|
|
1779
1779
|
const h = await this.regionElements(i), C = await this.command(E, h, n, i.stepName);
|
|
1780
1780
|
C && (C.command && n.getCommandDispatcher()(C.command), C.followup && await C.followup()), await n.setSelectionsAndElements(i.stepName, [], h, async () => {
|
|
@@ -1791,7 +1791,7 @@ class Ma {
|
|
|
1791
1791
|
return e.data.regions.map(t);
|
|
1792
1792
|
}
|
|
1793
1793
|
async command(e, t, A, a) {
|
|
1794
|
-
const n = A.getLayouts(),
|
|
1794
|
+
const n = A.getLayouts(), o = `data:image/svg+xml;base64,${btoa(await zt(e, { type: "svg" }))}`, s = t.map((r) => {
|
|
1795
1795
|
const g = r.region, B = n.find((l) => l.panelId === (g == null ? void 0 : g.panelId));
|
|
1796
1796
|
if (!B && g)
|
|
1797
1797
|
throw new z(g);
|
|
@@ -1804,7 +1804,7 @@ class Ma {
|
|
|
1804
1804
|
stepRegion: g,
|
|
1805
1805
|
stepName: a,
|
|
1806
1806
|
id: r.id,
|
|
1807
|
-
src:
|
|
1807
|
+
src: o,
|
|
1808
1808
|
type: k.Image,
|
|
1809
1809
|
y: g.top,
|
|
1810
1810
|
x: g.left,
|
|
@@ -1815,7 +1815,7 @@ class Ma {
|
|
|
1815
1815
|
B
|
|
1816
1816
|
);
|
|
1817
1817
|
});
|
|
1818
|
-
return { command: new v(
|
|
1818
|
+
return { command: new v(s), followup: async () => {
|
|
1819
1819
|
} };
|
|
1820
1820
|
}
|
|
1821
1821
|
}
|
|
@@ -1862,7 +1862,7 @@ class Ya {
|
|
|
1862
1862
|
const a = t.getSerializedStep(
|
|
1863
1863
|
e.stepName,
|
|
1864
1864
|
A.serializableWorkflow.steps
|
|
1865
|
-
),
|
|
1865
|
+
), s = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName).map((g) => ({ id: g.id, region: g.stepRegion }));
|
|
1866
1866
|
if (!e.option || (e.option.variants || []).length === 0) {
|
|
1867
1867
|
const g = e.data.regions.map((B) => Et(B));
|
|
1868
1868
|
t.updateStorage(e.stepName, {
|
|
@@ -1899,7 +1899,7 @@ class Ya {
|
|
|
1899
1899
|
l && await t.setSelectionsAndElements(
|
|
1900
1900
|
e.stepName,
|
|
1901
1901
|
[l],
|
|
1902
|
-
|
|
1902
|
+
s,
|
|
1903
1903
|
async () => {
|
|
1904
1904
|
const d = await Promise.all(
|
|
1905
1905
|
e.data.regions.map((w) => this.frameSourceSvg(l, w))
|
|
@@ -1909,7 +1909,7 @@ class Ya {
|
|
|
1909
1909
|
);
|
|
1910
1910
|
}
|
|
1911
1911
|
} else
|
|
1912
|
-
await t.setSelectionsAndElements(e.stepName, [],
|
|
1912
|
+
await t.setSelectionsAndElements(e.stepName, [], s, g);
|
|
1913
1913
|
}
|
|
1914
1914
|
}
|
|
1915
1915
|
selectImage(e, t, A) {
|
|
@@ -1918,8 +1918,8 @@ class Ya {
|
|
|
1918
1918
|
new _t(
|
|
1919
1919
|
async () => {
|
|
1920
1920
|
var r;
|
|
1921
|
-
const
|
|
1922
|
-
return
|
|
1921
|
+
const o = (r = (await G.getLocalOrFromServer(t.key || "")).versions) == null ? void 0 : r.find((g) => g.name === "svg");
|
|
1922
|
+
return o ? (await fetch(o.link)).status === 200 : !1;
|
|
1923
1923
|
},
|
|
1924
1924
|
() => {
|
|
1925
1925
|
G.getLocalOrFromServer(t.key || "").then((i) => {
|
|
@@ -1993,16 +1993,16 @@ class Ya {
|
|
|
1993
1993
|
}
|
|
1994
1994
|
async selectVariantCommand(e, t, A, a, n, i) {
|
|
1995
1995
|
var l;
|
|
1996
|
-
const
|
|
1997
|
-
if (!
|
|
1996
|
+
const o = (l = a.getStepSpecificServices(e.stepName)) == null ? void 0 : l.frameService;
|
|
1997
|
+
if (!o)
|
|
1998
1998
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
1999
|
-
const
|
|
1999
|
+
const s = await Promise.all(
|
|
2000
2000
|
e.data.regions.map((d) => this.frameSourceSvg(t, d))
|
|
2001
2001
|
);
|
|
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(
|
|
2005
|
+
const E = await _e(s[w]), h = o.getImageData(), C = A.map((I) => new $(I.id)), u = h ? et(h, E) : void 0, f = h ? {
|
|
2006
2006
|
id: J(),
|
|
2007
2007
|
src: h.src,
|
|
2008
2008
|
x: (u == null ? void 0 : u.x) || 0,
|
|
@@ -2042,7 +2042,7 @@ class Ya {
|
|
|
2042
2042
|
[...r.map((d) => d.regionEl)],
|
|
2043
2043
|
async () => {
|
|
2044
2044
|
var d;
|
|
2045
|
-
if (a.updateStorage(e.stepName, { currentFrameSources:
|
|
2045
|
+
if (a.updateStorage(e.stepName, { currentFrameSources: s }), i) {
|
|
2046
2046
|
const w = (d = a.getStepSpecificServices(
|
|
2047
2047
|
e.stepName
|
|
2048
2048
|
)) == null ? void 0 : d.frameService;
|
|
@@ -2069,8 +2069,8 @@ class Ya {
|
|
|
2069
2069
|
throw new Be(e);
|
|
2070
2070
|
}
|
|
2071
2071
|
async loadPatternFromAsset(e, t, A) {
|
|
2072
|
-
var
|
|
2073
|
-
const a = this.patternSource(e), n = A.markUpdatePending(), i = (
|
|
2072
|
+
var o;
|
|
2073
|
+
const a = this.patternSource(e), n = A.markUpdatePending(), i = (o = A.getStepSpecificServices(t.stepName)) == null ? void 0 : o.frameService;
|
|
2074
2074
|
if (!i)
|
|
2075
2075
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
2076
2076
|
await this.loadPatternFromString(a, i), A.updateMetadata(t.stepName, { image: a }), A.updateStorage(t.stepName, {
|
|
@@ -2142,13 +2142,13 @@ class Pa {
|
|
|
2142
2142
|
const a = t.getSerializedStep(
|
|
2143
2143
|
e.stepName,
|
|
2144
2144
|
A.serializableWorkflow.steps
|
|
2145
|
-
),
|
|
2145
|
+
), o = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), s = e.option;
|
|
2146
2146
|
if (a != null && a.selectedVariants) {
|
|
2147
2147
|
const g = a.selectedVariants[0].id;
|
|
2148
|
-
if (
|
|
2149
|
-
const B = (r =
|
|
2148
|
+
if (s && g) {
|
|
2149
|
+
const B = (r = s.variants) == null ? void 0 : r.find((l) => l.id === g);
|
|
2150
2150
|
if (B) {
|
|
2151
|
-
const l =
|
|
2151
|
+
const l = o.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2152
2152
|
await t.setSelectionsAndElements(
|
|
2153
2153
|
e.stepName,
|
|
2154
2154
|
[B],
|
|
@@ -2180,11 +2180,11 @@ class Pa {
|
|
|
2180
2180
|
const i = {};
|
|
2181
2181
|
for (const [B, l] of n.entries())
|
|
2182
2182
|
i[B] = { browserValue: l, spotColor: (g = i[B]) == null ? void 0 : g.spotColor };
|
|
2183
|
-
const
|
|
2183
|
+
const o = yA(e, t, A, i), s = await Me(o), r = [];
|
|
2184
2184
|
for (const B of a) {
|
|
2185
2185
|
for (const [l, d] of n.entries())
|
|
2186
2186
|
r.push(new je(B, l, d));
|
|
2187
|
-
r.push(new MA(B,
|
|
2187
|
+
r.push(new MA(B, o, s));
|
|
2188
2188
|
}
|
|
2189
2189
|
return new v(r);
|
|
2190
2190
|
}
|
|
@@ -2195,14 +2195,14 @@ class Pa {
|
|
|
2195
2195
|
const i = Se(
|
|
2196
2196
|
t[0].id,
|
|
2197
2197
|
a().map((E) => E.layoutState)
|
|
2198
|
-
),
|
|
2199
|
-
Object.entries(
|
|
2198
|
+
), o = { ...i.colors }, s = {};
|
|
2199
|
+
Object.entries(o).forEach(([E, h]) => {
|
|
2200
2200
|
const C = { browserValue: h.browserValue }, u = h.spotColor;
|
|
2201
|
-
u && (C.spotColor = { profileName: u.profileName, namedColor: u.namedColor }),
|
|
2201
|
+
u && (C.spotColor = { profileName: u.profileName, namedColor: u.namedColor }), s[E] = C;
|
|
2202
2202
|
});
|
|
2203
2203
|
for (const [E, h] of n.entries())
|
|
2204
|
-
|
|
2205
|
-
let r = Array.from(Object.values(
|
|
2204
|
+
o[E] = { browserValue: h, spotColor: (d = o[E]) == null ? void 0 : d.spotColor }, s[E] = { browserValue: h };
|
|
2205
|
+
let r = Array.from(Object.values(o)).map((E) => E.browserValue);
|
|
2206
2206
|
const g = e.data.colorOption;
|
|
2207
2207
|
g && ((w = g.variants) == null || w.forEach((E) => {
|
|
2208
2208
|
r = r.map((h) => {
|
|
@@ -2211,7 +2211,7 @@ class Pa {
|
|
|
2211
2211
|
});
|
|
2212
2212
|
})), A.updateMetadata(e.stepName, { colors: r });
|
|
2213
2213
|
const B = /* @__PURE__ */ new Map();
|
|
2214
|
-
if (Object.entries(
|
|
2214
|
+
if (Object.entries(o).forEach(([E, h]) => {
|
|
2215
2215
|
B.set(E, h.browserValue);
|
|
2216
2216
|
}), !i.svg)
|
|
2217
2217
|
throw new Error("Colors changed before SVG loaded. This should never happen!");
|
|
@@ -2223,7 +2223,7 @@ class Pa {
|
|
|
2223
2223
|
B
|
|
2224
2224
|
);
|
|
2225
2225
|
A.updateStorage(e.stepName, {
|
|
2226
|
-
colors:
|
|
2226
|
+
colors: s
|
|
2227
2227
|
}), A.getCommandDispatcher()(l);
|
|
2228
2228
|
}
|
|
2229
2229
|
async selectVariant(e, t, A, a, n) {
|
|
@@ -2237,13 +2237,13 @@ class Pa {
|
|
|
2237
2237
|
a(!0);
|
|
2238
2238
|
const i = A.map((u) => new $(u.id));
|
|
2239
2239
|
n.setMandatoryFulfilled(e.stepName, !1);
|
|
2240
|
-
const
|
|
2241
|
-
if (!s)
|
|
2242
|
-
throw new _(t);
|
|
2243
|
-
const o = s.fileLink;
|
|
2240
|
+
const o = t.asset;
|
|
2244
2241
|
if (!o)
|
|
2245
|
-
throw new
|
|
2246
|
-
const
|
|
2242
|
+
throw new _(t);
|
|
2243
|
+
const s = o.fileLink;
|
|
2244
|
+
if (!s)
|
|
2245
|
+
throw new Be(o);
|
|
2246
|
+
const r = await Nt(await this.getIllustrationBody(s)), g = await Me(r.svg), B = (u) => {
|
|
2247
2247
|
const f = n.getLayouts().find((m) => m.panelId === u.panelId);
|
|
2248
2248
|
if (!f)
|
|
2249
2249
|
throw new z(u);
|
|
@@ -2252,7 +2252,7 @@ class Pa {
|
|
|
2252
2252
|
regionElement: { id: Q, region: u },
|
|
2253
2253
|
command: this.getCreateElementCommand(Q, u, f, {
|
|
2254
2254
|
stepName: e.stepName,
|
|
2255
|
-
src:
|
|
2255
|
+
src: s,
|
|
2256
2256
|
objectURL: g,
|
|
2257
2257
|
svg: r
|
|
2258
2258
|
})
|
|
@@ -2312,15 +2312,15 @@ class xa {
|
|
|
2312
2312
|
const a = t.getSerializedStep(
|
|
2313
2313
|
e.stepName,
|
|
2314
2314
|
A.serializableWorkflow.steps
|
|
2315
|
-
),
|
|
2316
|
-
if (!
|
|
2315
|
+
), o = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), s = e.option;
|
|
2316
|
+
if (!s)
|
|
2317
2317
|
throw new Pe(e);
|
|
2318
2318
|
if (a != null && a.selectedVariants) {
|
|
2319
2319
|
const g = a.selectedVariants[0].id;
|
|
2320
2320
|
if (g) {
|
|
2321
|
-
const B = (r =
|
|
2321
|
+
const B = (r = s.variants) == null ? void 0 : r.find((l) => l.id === g);
|
|
2322
2322
|
if (B) {
|
|
2323
|
-
const l = B.material, d =
|
|
2323
|
+
const l = B.material, d = o.map((w) => ({ id: w.id, region: w.stepRegion }));
|
|
2324
2324
|
await t.setSelectionsAndElements(
|
|
2325
2325
|
e.stepName,
|
|
2326
2326
|
[B],
|
|
@@ -2328,7 +2328,7 @@ class xa {
|
|
|
2328
2328
|
async () => {
|
|
2329
2329
|
const w = t.getModelContainer();
|
|
2330
2330
|
if (w) {
|
|
2331
|
-
const E = e.data.targetMaterials.map((h) => w.applyMaterialVariant(h,
|
|
2331
|
+
const E = e.data.targetMaterials.map((h) => w.applyMaterialVariant(h, s.id || "", l || {}));
|
|
2332
2332
|
Promise.all(E).then(
|
|
2333
2333
|
() => t.setMandatoryFulfilled(e.stepName, !0)
|
|
2334
2334
|
);
|
|
@@ -2354,8 +2354,8 @@ class xa {
|
|
|
2354
2354
|
followup: async () => {
|
|
2355
2355
|
await A.setSelectionsAndElements(e.stepName, [t], [], async () => {
|
|
2356
2356
|
try {
|
|
2357
|
-
n && e.data.targetMaterials.forEach((
|
|
2358
|
-
e.option && n.applyMaterialVariant(
|
|
2357
|
+
n && e.data.targetMaterials.forEach((o) => {
|
|
2358
|
+
e.option && n.applyMaterialVariant(o, e.option.id || "", i);
|
|
2359
2359
|
}), A.setMandatoryFulfilled(e.stepName, !0);
|
|
2360
2360
|
} finally {
|
|
2361
2361
|
a(!1);
|
|
@@ -2386,13 +2386,13 @@ class Na {
|
|
|
2386
2386
|
const a = t.getSerializedStep(
|
|
2387
2387
|
e.stepName,
|
|
2388
2388
|
A.serializableWorkflow.steps
|
|
2389
|
-
),
|
|
2389
|
+
), o = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), s = e.option;
|
|
2390
2390
|
if (a != null && a.selectedVariants) {
|
|
2391
2391
|
const g = a.selectedVariants[0].id;
|
|
2392
|
-
if (
|
|
2393
|
-
const B = (r =
|
|
2392
|
+
if (s && g) {
|
|
2393
|
+
const B = (r = s.variants) == null ? void 0 : r.find((l) => l.id === g);
|
|
2394
2394
|
if (B) {
|
|
2395
|
-
const l =
|
|
2395
|
+
const l = o.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2396
2396
|
await t.setSelectionsAndElements(
|
|
2397
2397
|
e.stepName,
|
|
2398
2398
|
[B],
|
|
@@ -2434,8 +2434,8 @@ class Na {
|
|
|
2434
2434
|
followup: async () => {
|
|
2435
2435
|
await A.setSelectionsAndElements(e.stepName, [t], [], async () => {
|
|
2436
2436
|
try {
|
|
2437
|
-
const
|
|
2438
|
-
|
|
2437
|
+
const o = A.getModelContainer();
|
|
2438
|
+
o && await o.applyModelVariant(
|
|
2439
2439
|
e.stepName,
|
|
2440
2440
|
{
|
|
2441
2441
|
model: n,
|
|
@@ -2465,8 +2465,8 @@ class Ha {
|
|
|
2465
2465
|
const a = t.getSerializedStep(
|
|
2466
2466
|
e.stepName,
|
|
2467
2467
|
A.serializableWorkflow.steps
|
|
2468
|
-
),
|
|
2469
|
-
await t.setSelectionsAndElements(e.stepName, [],
|
|
2468
|
+
), s = Object.values(A.layouts).map((r) => r.elements).flat().filter((r) => r.stepName === e.stepName).map((r) => ({ id: r.id, region: r.stepRegion }));
|
|
2469
|
+
await t.setSelectionsAndElements(e.stepName, [], s, async () => {
|
|
2470
2470
|
var r, g;
|
|
2471
2471
|
t.updateStorage(e.stepName, { text: (r = a == null ? void 0 : a.storage) == null ? void 0 : r.text }), t.setMandatoryFulfilled(e.stepName, ((g = a == null ? void 0 : a.storage) == null ? void 0 : g.text) !== "");
|
|
2472
2472
|
});
|
|
@@ -2477,11 +2477,11 @@ class Ha {
|
|
|
2477
2477
|
}
|
|
2478
2478
|
async changeTextCommand(e, t, A, a, n) {
|
|
2479
2479
|
var g;
|
|
2480
|
-
const i = A.getRegionElements(e.stepName),
|
|
2481
|
-
if (!
|
|
2480
|
+
const i = A.getRegionElements(e.stepName), o = (g = A.getStepSpecificServices(e.stepName)) == null ? void 0 : g.module;
|
|
2481
|
+
if (!o)
|
|
2482
2482
|
return console.error("Missing module."), null;
|
|
2483
|
-
const
|
|
2484
|
-
if (!this.validateInput(e, t,
|
|
2483
|
+
const s = A.getProfanities();
|
|
2484
|
+
if (!this.validateInput(e, t, s, n))
|
|
2485
2485
|
return A.setMandatoryFulfilled(e.stepName, !1), console.error(a), null;
|
|
2486
2486
|
if (A.setMandatoryFulfilled(e.stepName, t !== ""), !e.data || !e.data.regions || e.data.regions.length <= 0)
|
|
2487
2487
|
return console.error("Missing configuration."), null;
|
|
@@ -2521,7 +2521,7 @@ class Ha {
|
|
|
2521
2521
|
const l = i.map((d) => {
|
|
2522
2522
|
if (!d.region)
|
|
2523
2523
|
return null;
|
|
2524
|
-
const w =
|
|
2524
|
+
const w = o.svgPrint(t, d.region);
|
|
2525
2525
|
return r(w, d.region, d.id);
|
|
2526
2526
|
}).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
|
|
2527
2527
|
return {
|
|
@@ -2531,7 +2531,7 @@ class Ha {
|
|
|
2531
2531
|
};
|
|
2532
2532
|
} else {
|
|
2533
2533
|
const B = e.data.regions.map(
|
|
2534
|
-
(d) => r(
|
|
2534
|
+
(d) => r(o.svgPrint(t, d), d)
|
|
2535
2535
|
), l = B.filter((d) => !!d).map((d) => d && d.command);
|
|
2536
2536
|
return {
|
|
2537
2537
|
command: new v(l),
|
|
@@ -2556,9 +2556,9 @@ class Ha {
|
|
|
2556
2556
|
return a("Unsupported characters."), !1;
|
|
2557
2557
|
const n = Xe(t.toLowerCase());
|
|
2558
2558
|
for (const i of n)
|
|
2559
|
-
for (const
|
|
2560
|
-
const
|
|
2561
|
-
if (i ===
|
|
2559
|
+
for (const o in A) {
|
|
2560
|
+
const s = A[o].toLowerCase().replace(/\s/g, "");
|
|
2561
|
+
if (i === s)
|
|
2562
2562
|
return a("Blocked profanity."), !1;
|
|
2563
2563
|
}
|
|
2564
2564
|
return a(""), !0;
|
|
@@ -2582,13 +2582,13 @@ class Ua {
|
|
|
2582
2582
|
const a = t.getSerializedStep(
|
|
2583
2583
|
e.stepName,
|
|
2584
2584
|
A.serializableWorkflow.steps
|
|
2585
|
-
),
|
|
2585
|
+
), o = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), s = e.option;
|
|
2586
2586
|
if (a != null && a.selectedVariants) {
|
|
2587
2587
|
const g = a.selectedVariants[0].id;
|
|
2588
|
-
if (
|
|
2589
|
-
const B = (r =
|
|
2588
|
+
if (s && g) {
|
|
2589
|
+
const B = (r = s.variants) == null ? void 0 : r.find((l) => l.id === g);
|
|
2590
2590
|
if (B) {
|
|
2591
|
-
const l =
|
|
2591
|
+
const l = o.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2592
2592
|
await t.setSelectionsAndElements(
|
|
2593
2593
|
e.stepName,
|
|
2594
2594
|
[B],
|
|
@@ -2613,7 +2613,7 @@ class Ua {
|
|
|
2613
2613
|
if (!i)
|
|
2614
2614
|
return console.error("No URL for picture!"), null;
|
|
2615
2615
|
a(!0), A.setMandatoryFulfilled(e.stepName, !1);
|
|
2616
|
-
const
|
|
2616
|
+
const s = A.getRegionElements(e.stepName).map((B) => new $(B.id)), r = (B) => {
|
|
2617
2617
|
const d = A.getLayouts().find((E) => E.panelId === B.panelId);
|
|
2618
2618
|
if (!d)
|
|
2619
2619
|
throw new z(B);
|
|
@@ -2642,7 +2642,7 @@ class Ua {
|
|
|
2642
2642
|
};
|
|
2643
2643
|
}, g = e.data.regions.map(r);
|
|
2644
2644
|
return {
|
|
2645
|
-
command: new v([...
|
|
2645
|
+
command: new v([...s, ...g.map((B) => B.command)]),
|
|
2646
2646
|
followup: async () => {
|
|
2647
2647
|
await A.setSelectionsAndElements(
|
|
2648
2648
|
e.stepName,
|
|
@@ -2667,11 +2667,11 @@ class va {
|
|
|
2667
2667
|
else {
|
|
2668
2668
|
const n = a.variants;
|
|
2669
2669
|
if (j.getDefaultVariant(a)) {
|
|
2670
|
-
const
|
|
2670
|
+
const o = n == null ? void 0 : n.find((s) => {
|
|
2671
2671
|
var r;
|
|
2672
|
-
return
|
|
2672
|
+
return s.id === ((r = a.defaultVariant) == null ? void 0 : r.id);
|
|
2673
2673
|
});
|
|
2674
|
-
return this.selectVariantLambda(e, (
|
|
2674
|
+
return this.selectVariantLambda(e, (o == null ? void 0 : o.id) || "", t);
|
|
2675
2675
|
}
|
|
2676
2676
|
}
|
|
2677
2677
|
return null;
|
|
@@ -2683,10 +2683,10 @@ class va {
|
|
|
2683
2683
|
A.serializableWorkflow.steps
|
|
2684
2684
|
), n = e.option;
|
|
2685
2685
|
if (a != null && a.selectedVariants) {
|
|
2686
|
-
const
|
|
2687
|
-
if (n &&
|
|
2688
|
-
const
|
|
2689
|
-
|
|
2686
|
+
const o = a.selectedVariants[0].id;
|
|
2687
|
+
if (n && o) {
|
|
2688
|
+
const s = (i = n.variants) == null ? void 0 : i.find((r) => r.id === o);
|
|
2689
|
+
s && await t.setSelectionsAndElements(e.stepName, [s], []);
|
|
2690
2690
|
}
|
|
2691
2691
|
}
|
|
2692
2692
|
}
|
|
@@ -2702,7 +2702,7 @@ class va {
|
|
|
2702
2702
|
const n = a.variants;
|
|
2703
2703
|
if (!n)
|
|
2704
2704
|
return null;
|
|
2705
|
-
const i = n.length > 1 ? n.find((
|
|
2705
|
+
const i = n.length > 1 ? n.find((o) => o.id === t) : n[0];
|
|
2706
2706
|
if (!i)
|
|
2707
2707
|
throw new Error("Failed to find selected variant in step variants, this should never happen!");
|
|
2708
2708
|
return {
|
|
@@ -2731,12 +2731,12 @@ class Ga {
|
|
|
2731
2731
|
}))) || [] : [];
|
|
2732
2732
|
}
|
|
2733
2733
|
setCustomColor(e, t, A) {
|
|
2734
|
-
const a = A.getLayouts(), i = (A.getRegionElements(t.stepName) || []).map((
|
|
2735
|
-
const
|
|
2736
|
-
if (!a.find((g) => g.panelId === (
|
|
2737
|
-
throw new z(
|
|
2738
|
-
return new je(
|
|
2739
|
-
}).filter((
|
|
2734
|
+
const a = A.getLayouts(), i = (A.getRegionElements(t.stepName) || []).map((o) => {
|
|
2735
|
+
const s = o.region;
|
|
2736
|
+
if (!a.find((g) => g.panelId === (s == null ? void 0 : s.panelId)))
|
|
2737
|
+
throw new z(s);
|
|
2738
|
+
return new je(o.id, this.shapeFillId, e);
|
|
2739
|
+
}).filter((o) => !!o);
|
|
2740
2740
|
A.getCommandDispatcher()(new v(i)), A.updateStorage(t.stepName, { colour: e });
|
|
2741
2741
|
}
|
|
2742
2742
|
async init(e, t, A) {
|
|
@@ -2769,13 +2769,13 @@ class Ga {
|
|
|
2769
2769
|
const a = t.getSerializedStep(
|
|
2770
2770
|
e.stepName,
|
|
2771
2771
|
A.serializableWorkflow.steps
|
|
2772
|
-
),
|
|
2772
|
+
), o = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), s = e.option;
|
|
2773
2773
|
if (a != null && a.selectedVariants) {
|
|
2774
2774
|
const g = a.selectedVariants[0].id;
|
|
2775
|
-
if (
|
|
2776
|
-
const B = (r =
|
|
2775
|
+
if (s && g) {
|
|
2776
|
+
const B = (r = s.variants) == null ? void 0 : r.find((l) => l.id === g);
|
|
2777
2777
|
if (B) {
|
|
2778
|
-
const l =
|
|
2778
|
+
const l = o.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
2779
2779
|
await t.setSelectionsAndElements(
|
|
2780
2780
|
e.stepName,
|
|
2781
2781
|
[B],
|
|
@@ -2792,8 +2792,8 @@ class Ga {
|
|
|
2792
2792
|
}
|
|
2793
2793
|
}
|
|
2794
2794
|
async selectVariantCommand(e, t, A, a) {
|
|
2795
|
-
var
|
|
2796
|
-
const n = a.getLayouts(), i = (
|
|
2795
|
+
var s;
|
|
2796
|
+
const n = a.getLayouts(), i = (s = a.getStepStorage(e.stepName)) == null ? void 0 : s.colour, o = () => {
|
|
2797
2797
|
var r, g;
|
|
2798
2798
|
if (((r = t.variant) == null ? void 0 : r.color) === "#custom")
|
|
2799
2799
|
return i || "#FFFFFF";
|
|
@@ -2806,7 +2806,7 @@ class Ga {
|
|
|
2806
2806
|
const l = B.region;
|
|
2807
2807
|
if (!n.find((E) => E.panelId === (l == null ? void 0 : l.panelId)))
|
|
2808
2808
|
throw new z(l);
|
|
2809
|
-
const w =
|
|
2809
|
+
const w = o();
|
|
2810
2810
|
return new je(B.id, this.shapeFillId, w);
|
|
2811
2811
|
}, g = A.map(r).filter((B) => !!B);
|
|
2812
2812
|
return {
|
|
@@ -2816,7 +2816,7 @@ class Ga {
|
|
|
2816
2816
|
e.stepName,
|
|
2817
2817
|
t.variant ? [t.variant] : [],
|
|
2818
2818
|
A
|
|
2819
|
-
), a.updateStorage(e.stepName, { colour:
|
|
2819
|
+
), a.updateStorage(e.stepName, { colour: o() });
|
|
2820
2820
|
}
|
|
2821
2821
|
};
|
|
2822
2822
|
} else {
|
|
@@ -2824,7 +2824,7 @@ class Ga {
|
|
|
2824
2824
|
const w = n.find((f) => f.panelId === d.panelId);
|
|
2825
2825
|
if (!w)
|
|
2826
2826
|
throw new z(d);
|
|
2827
|
-
const E =
|
|
2827
|
+
const E = o(), h = `
|
|
2828
2828
|
<svg
|
|
2829
2829
|
xmlns="http://www.w3.org/2000/svg"
|
|
2830
2830
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
@@ -2880,7 +2880,7 @@ class Ga {
|
|
|
2880
2880
|
t.variant ? [t.variant] : [],
|
|
2881
2881
|
l,
|
|
2882
2882
|
async () => {
|
|
2883
|
-
a.updateStorage(e.stepName, { colour:
|
|
2883
|
+
a.updateStorage(e.stepName, { colour: o() });
|
|
2884
2884
|
}
|
|
2885
2885
|
);
|
|
2886
2886
|
}
|
|
@@ -2933,9 +2933,9 @@ class Oa {
|
|
|
2933
2933
|
);
|
|
2934
2934
|
const a = [], n = t ? SA(t.assetUrl) : void 0;
|
|
2935
2935
|
if (n) {
|
|
2936
|
-
const i = A.split("").filter((
|
|
2937
|
-
for (let
|
|
2938
|
-
s
|
|
2936
|
+
const i = A.split("").filter((s) => !Ja.includes(s)).join(""), o = i.split("").map((s) => n.getFont().charToGlyph(s));
|
|
2937
|
+
for (let s = 0; s < o.length; s++)
|
|
2938
|
+
o[s].name === ".notdef" && a.push(String.fromCharCode(i.charCodeAt(s)));
|
|
2939
2939
|
}
|
|
2940
2940
|
for (let i = 0; i < a.length; i++)
|
|
2941
2941
|
A = A.replaceAll(a[i], "");
|
|
@@ -2944,10 +2944,10 @@ class Oa {
|
|
|
2944
2944
|
const a = [];
|
|
2945
2945
|
t.data && t.data.maxLength && e.length > t.data.maxLength && a.push({ localizationKey: "workflow.steps.text.characterLimit" });
|
|
2946
2946
|
const n = A.getProfanities(), i = Xe(e.toLowerCase());
|
|
2947
|
-
for (const
|
|
2947
|
+
for (const s of i)
|
|
2948
2948
|
for (const r in n) {
|
|
2949
2949
|
const g = n[r].toLowerCase().replace(/\s/g, "");
|
|
2950
|
-
if (
|
|
2950
|
+
if (s === g) {
|
|
2951
2951
|
a.push({ localizationKey: "workflow.steps.text.blockedProfanity" });
|
|
2952
2952
|
break;
|
|
2953
2953
|
}
|
|
@@ -2957,14 +2957,14 @@ class Oa {
|
|
|
2957
2957
|
};
|
|
2958
2958
|
}
|
|
2959
2959
|
async init(e, t, A) {
|
|
2960
|
-
var n, i,
|
|
2960
|
+
var n, i, o;
|
|
2961
2961
|
const a = e.option;
|
|
2962
2962
|
if (!a)
|
|
2963
2963
|
return null;
|
|
2964
2964
|
if (A)
|
|
2965
2965
|
await this.reload(e, t, A);
|
|
2966
2966
|
else {
|
|
2967
|
-
const
|
|
2967
|
+
const s = this.getDefaultImageFillVariant(e.data), r = (n = s == null ? void 0 : s.asset) == null ? void 0 : n.fileLink, g = r ? await Ve(r) : void 0, B = g ? {
|
|
2968
2968
|
src: g.src,
|
|
2969
2969
|
height: g.height,
|
|
2970
2970
|
width: g.width,
|
|
@@ -2976,8 +2976,8 @@ class Oa {
|
|
|
2976
2976
|
fillImage: B
|
|
2977
2977
|
}), t.updateMetadata(e.stepName, {
|
|
2978
2978
|
text: e.data.defaultText || "",
|
|
2979
|
-
color: ((
|
|
2980
|
-
fillImage:
|
|
2979
|
+
color: ((o = await this.getDefaultColorVariant(e.data)) == null ? void 0 : o.name) || await this.getDefaultColor(e.data),
|
|
2980
|
+
fillImage: s == null ? void 0 : s.name
|
|
2981
2981
|
});
|
|
2982
2982
|
const l = j.getDefaultVariant(a);
|
|
2983
2983
|
if (l)
|
|
@@ -3025,27 +3025,27 @@ class Oa {
|
|
|
3025
3025
|
return;
|
|
3026
3026
|
const n = a.getCommandDispatcher();
|
|
3027
3027
|
for (const i of A) {
|
|
3028
|
-
const
|
|
3029
|
-
n(
|
|
3028
|
+
const o = new YA(i.id, t);
|
|
3029
|
+
n(o);
|
|
3030
3030
|
}
|
|
3031
3031
|
}
|
|
3032
3032
|
async changeFillColor(e, t, A, a) {
|
|
3033
|
-
var
|
|
3033
|
+
var s;
|
|
3034
3034
|
if (!e.data || !e.data.regions)
|
|
3035
3035
|
return;
|
|
3036
3036
|
const n = a.getCommandDispatcher();
|
|
3037
3037
|
t.variant ? a.updateMetadata(e.stepName, { color: t.variant.name }) : a.updateMetadata(e.stepName, { color: t.fill });
|
|
3038
|
-
const i = e.data.colorOption,
|
|
3038
|
+
const i = e.data.colorOption, o = i ? this.createTextFillSpotColor(i, t.variant) : void 0;
|
|
3039
3039
|
i ? a.updateStorage(e.stepName, {
|
|
3040
3040
|
color: t.fill,
|
|
3041
|
-
colorProfileAssetKey: (
|
|
3041
|
+
colorProfileAssetKey: (s = i.colorProfile) == null ? void 0 : s.key
|
|
3042
3042
|
}) : a.updateStorage(e.stepName, {
|
|
3043
3043
|
color: t.fill
|
|
3044
3044
|
});
|
|
3045
3045
|
for (const r of A) {
|
|
3046
3046
|
if (!t.fill)
|
|
3047
3047
|
throw new Error("Fill not set on new color selection!");
|
|
3048
|
-
const g = new PA(r.id, t.fill,
|
|
3048
|
+
const g = new PA(r.id, t.fill, o);
|
|
3049
3049
|
n(g);
|
|
3050
3050
|
}
|
|
3051
3051
|
}
|
|
@@ -3054,16 +3054,16 @@ class Oa {
|
|
|
3054
3054
|
const t = e.data.imageFillOption;
|
|
3055
3055
|
if (t) {
|
|
3056
3056
|
const n = ((a = (A = t.variants) == null ? void 0 : A.map((i) => {
|
|
3057
|
-
var
|
|
3058
|
-
return (
|
|
3057
|
+
var o;
|
|
3058
|
+
return (o = i.asset) == null ? void 0 : o.fileLink;
|
|
3059
3059
|
})) == null ? void 0 : a.filter((i) => !!i)) || [];
|
|
3060
3060
|
return Promise.all(
|
|
3061
3061
|
n.map(async (i) => {
|
|
3062
|
-
const
|
|
3062
|
+
const o = await Ve(i);
|
|
3063
3063
|
return {
|
|
3064
3064
|
src: i,
|
|
3065
|
-
width:
|
|
3066
|
-
height:
|
|
3065
|
+
width: o.width,
|
|
3066
|
+
height: o.height,
|
|
3067
3067
|
scale: e.data.imageFillScale || 1
|
|
3068
3068
|
};
|
|
3069
3069
|
})
|
|
@@ -3072,10 +3072,10 @@ class Oa {
|
|
|
3072
3072
|
return Promise.resolve([]);
|
|
3073
3073
|
}
|
|
3074
3074
|
async changeFillImage(e, t, A, a) {
|
|
3075
|
-
var
|
|
3075
|
+
var o, s;
|
|
3076
3076
|
if (!e.data || !e.data.regions)
|
|
3077
3077
|
return;
|
|
3078
|
-
const n = a.getCommandDispatcher(), i = (
|
|
3078
|
+
const n = a.getCommandDispatcher(), i = (s = (o = e.option) == null ? void 0 : o.variants) == null ? void 0 : s.find((r) => {
|
|
3079
3079
|
var g;
|
|
3080
3080
|
return ((g = r.asset) == null ? void 0 : g.fileLink) === t.src;
|
|
3081
3081
|
});
|
|
@@ -3095,15 +3095,15 @@ class Oa {
|
|
|
3095
3095
|
});
|
|
3096
3096
|
}
|
|
3097
3097
|
updateInputText(e, t, A, a) {
|
|
3098
|
-
const n = a.getStepStorage(A.stepName), i = this.getProcessedInput(e, A.data, !!n.customiseAllText),
|
|
3098
|
+
const n = a.getStepStorage(A.stepName), i = this.getProcessedInput(e, A.data, !!n.customiseAllText), o = {
|
|
3099
3099
|
command: void 0,
|
|
3100
3100
|
helperText: "",
|
|
3101
3101
|
errors: this.getErrorsForText(e, A, a)
|
|
3102
3102
|
};
|
|
3103
|
-
if (
|
|
3104
|
-
return
|
|
3105
|
-
const
|
|
3106
|
-
|
|
3103
|
+
if (o.errors.length > 0)
|
|
3104
|
+
return o.helperText = o.errors[0].localizationKey, o;
|
|
3105
|
+
const s = (A.data.maxLength - i.length).toString();
|
|
3106
|
+
o.helperText = `${s} characters remaining`;
|
|
3107
3107
|
const r = [], g = /* @__PURE__ */ new Map(), B = /* @__PURE__ */ new Map();
|
|
3108
3108
|
for (const l of t) {
|
|
3109
3109
|
if (!l.fontData)
|
|
@@ -3120,9 +3120,9 @@ class Oa {
|
|
|
3120
3120
|
`);
|
|
3121
3121
|
r.push(this.generateTextChangeCommandsForRegion(d, A.data, l.id, E));
|
|
3122
3122
|
}
|
|
3123
|
-
return !A.data.curved && t.length > 0 && !Array.from(B.values()).every((d) => d) ? (
|
|
3123
|
+
return !A.data.curved && t.length > 0 && !Array.from(B.values()).every((d) => d) ? (o.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), o) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
|
|
3124
3124
|
text: i
|
|
3125
|
-
}), n.defaultCleared && a.setMandatoryFulfilled(A.stepName, !0),
|
|
3125
|
+
}), n.defaultCleared && a.setMandatoryFulfilled(A.stepName, !0), o.command = new v(r), o);
|
|
3126
3126
|
}
|
|
3127
3127
|
async selectVariant(e, t, A, a, n) {
|
|
3128
3128
|
const i = await this.selectVariantCommand(
|
|
@@ -3139,11 +3139,11 @@ class Oa {
|
|
|
3139
3139
|
createTextFillSpotColor(e, t) {
|
|
3140
3140
|
const A = e.colorProfile;
|
|
3141
3141
|
if (A) {
|
|
3142
|
-
const a = (A.name || "").replace(/\s/g, "-"), n = a.lastIndexOf("/"),
|
|
3142
|
+
const a = (A.name || "").replace(/\s/g, "-"), n = a.lastIndexOf("/"), o = a.slice(n + 1).slice(0, -4);
|
|
3143
3143
|
if (!t.namedColor)
|
|
3144
3144
|
throw new Error("variant named color not set!");
|
|
3145
3145
|
return {
|
|
3146
|
-
profileName:
|
|
3146
|
+
profileName: o,
|
|
3147
3147
|
namedColor: t.namedColor
|
|
3148
3148
|
};
|
|
3149
3149
|
}
|
|
@@ -3153,26 +3153,26 @@ class Oa {
|
|
|
3153
3153
|
const a = t.getSerializedStep(
|
|
3154
3154
|
e.stepName,
|
|
3155
3155
|
A.serializableWorkflow.steps
|
|
3156
|
-
),
|
|
3156
|
+
), o = Object.values(A.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === e.stepName), s = e.option;
|
|
3157
3157
|
if (a != null && a.selectedVariants) {
|
|
3158
3158
|
const l = a.selectedVariants[0].id;
|
|
3159
|
-
if (
|
|
3160
|
-
const d = (r =
|
|
3159
|
+
if (s && l) {
|
|
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 =
|
|
3162
|
+
const w = await this.fontDataFromVariant(d), E = o.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;
|
|
3163
3163
|
await t.setSelectionsAndElements(
|
|
3164
3164
|
e.stepName,
|
|
3165
3165
|
[d],
|
|
3166
3166
|
E,
|
|
3167
3167
|
async () => {
|
|
3168
3168
|
t.updateMetadata(e.stepName, { color: h, text: C }), t.updateStorage(e.stepName, { text: C, inputText: C });
|
|
3169
|
-
const f =
|
|
3169
|
+
const f = o.map((m) => new Ct(m.id, w)), Q = new v(f);
|
|
3170
3170
|
t.getCommandDispatcher()(Q), t.setMandatoryFulfilled(e.stepName, !0);
|
|
3171
3171
|
}
|
|
3172
3172
|
);
|
|
3173
3173
|
const { command: u } = K.updateInputText(
|
|
3174
3174
|
C || "",
|
|
3175
|
-
|
|
3175
|
+
o,
|
|
3176
3176
|
e,
|
|
3177
3177
|
t
|
|
3178
3178
|
);
|
|
@@ -3211,13 +3211,13 @@ class Oa {
|
|
|
3211
3211
|
name: a.names.fullName.en
|
|
3212
3212
|
};
|
|
3213
3213
|
}
|
|
3214
|
-
async selectVariantCommand(e, t, A, a, n, i,
|
|
3214
|
+
async selectVariantCommand(e, t, A, a, n, i, o, s) {
|
|
3215
3215
|
var B;
|
|
3216
3216
|
const r = n.markUpdatePending(), g = await this.fontDataFromVariant(t);
|
|
3217
3217
|
if (a.length > 0) {
|
|
3218
3218
|
const l = a.map((E) => new Ct(E.id, g));
|
|
3219
|
-
if (
|
|
3220
|
-
const E = a.map((h) => new Je(h.id,
|
|
3219
|
+
if (s) {
|
|
3220
|
+
const E = a.map((h) => new Je(h.id, s));
|
|
3221
3221
|
l.push(...E);
|
|
3222
3222
|
}
|
|
3223
3223
|
const d = await this.changeInputTextWithRegion(
|
|
@@ -3229,7 +3229,7 @@ class Oa {
|
|
|
3229
3229
|
n,
|
|
3230
3230
|
!!A.customiseAllText,
|
|
3231
3231
|
i,
|
|
3232
|
-
|
|
3232
|
+
o
|
|
3233
3233
|
);
|
|
3234
3234
|
return d && l.push(d), {
|
|
3235
3235
|
command: new v(l),
|
|
@@ -3254,11 +3254,11 @@ class Oa {
|
|
|
3254
3254
|
n,
|
|
3255
3255
|
!!A.customiseAllText,
|
|
3256
3256
|
i,
|
|
3257
|
-
|
|
3257
|
+
o
|
|
3258
3258
|
), w = l.flatMap((h) => h.commands);
|
|
3259
|
-
if (
|
|
3259
|
+
if (s) {
|
|
3260
3260
|
const h = l.map(
|
|
3261
|
-
(C) => new Je(C.regionElement.id,
|
|
3261
|
+
(C) => new Je(C.regionElement.id, s)
|
|
3262
3262
|
);
|
|
3263
3263
|
w.push(...h);
|
|
3264
3264
|
}
|
|
@@ -3281,7 +3281,7 @@ class Oa {
|
|
|
3281
3281
|
async createTextboxRegions(e, t, A, a, n, i) {
|
|
3282
3282
|
if (!A || !A.regions)
|
|
3283
3283
|
throw new Error("Step data not supplied");
|
|
3284
|
-
const
|
|
3284
|
+
const o = n.text || A.defaultText || "", s = this.getProcessedInput(o, A, !1), r = async (B) => {
|
|
3285
3285
|
var E;
|
|
3286
3286
|
const d = i.getLayouts().find((h) => h.panelId === B.panelId), w = J();
|
|
3287
3287
|
try {
|
|
@@ -3309,8 +3309,8 @@ class Oa {
|
|
|
3309
3309
|
layer: B.layer,
|
|
3310
3310
|
layerIndex: B.layerIndex,
|
|
3311
3311
|
rotation: B.rotation,
|
|
3312
|
-
text:
|
|
3313
|
-
input:
|
|
3312
|
+
text: s,
|
|
3313
|
+
input: o,
|
|
3314
3314
|
type: k.Textbox,
|
|
3315
3315
|
vertical: A.vertical,
|
|
3316
3316
|
x: B.left,
|
|
@@ -3336,11 +3336,11 @@ class Oa {
|
|
|
3336
3336
|
rotation: Q.rotation,
|
|
3337
3337
|
panelId: ""
|
|
3338
3338
|
},
|
|
3339
|
-
[
|
|
3339
|
+
[s],
|
|
3340
3340
|
{ size: A.size, minSize: A.minSize, maxSize: A.maxSize }
|
|
3341
3341
|
);
|
|
3342
3342
|
p.set(Q.id, F), I.set(Q.id, M);
|
|
3343
|
-
const Y = A.curved || A.vertical ?
|
|
3343
|
+
const Y = A.curved || A.vertical ? s : (M || []).join(`
|
|
3344
3344
|
`);
|
|
3345
3345
|
m.push(
|
|
3346
3346
|
this.generateTextChangeCommandsForRegion(F, A, Q.id, Y)
|
|
@@ -3364,9 +3364,9 @@ class Oa {
|
|
|
3364
3364
|
g.map((B) => B.regionElement),
|
|
3365
3365
|
async () => {
|
|
3366
3366
|
i.updateMetadata(e, {
|
|
3367
|
-
text:
|
|
3367
|
+
text: o
|
|
3368
3368
|
}), i.updateStorage(e, {
|
|
3369
|
-
text:
|
|
3369
|
+
text: o
|
|
3370
3370
|
});
|
|
3371
3371
|
}
|
|
3372
3372
|
), g;
|
|
@@ -3374,16 +3374,16 @@ class Oa {
|
|
|
3374
3374
|
generateTextChangeCommandsForRegion(e, t, A, a) {
|
|
3375
3375
|
const n = [], i = new xA(A, a);
|
|
3376
3376
|
if (n.push(i), !t.size) {
|
|
3377
|
-
const
|
|
3378
|
-
n.push(
|
|
3377
|
+
const s = new NA(A, e);
|
|
3378
|
+
n.push(s);
|
|
3379
3379
|
}
|
|
3380
3380
|
return new v(n);
|
|
3381
3381
|
}
|
|
3382
3382
|
/**
|
|
3383
3383
|
* @deprecated
|
|
3384
3384
|
*/
|
|
3385
|
-
async changeInputTextWithRegion(e, t, A, a, n, i,
|
|
3386
|
-
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data,
|
|
3385
|
+
async changeInputTextWithRegion(e, t, A, a, n, i, o, s, r, g) {
|
|
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
3387
|
for (const Q of d)
|
|
3388
3388
|
if (Q.region) {
|
|
3389
3389
|
const [m, p] = De(
|
|
@@ -3403,10 +3403,10 @@ class Oa {
|
|
|
3403
3403
|
for (const I in Q) {
|
|
3404
3404
|
const F = Q[I].toLowerCase().replace(/\s/g, "");
|
|
3405
3405
|
if (p === F)
|
|
3406
|
-
return
|
|
3406
|
+
return s(!0), { error: "Blocked profanity." };
|
|
3407
3407
|
}
|
|
3408
3408
|
return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
|
|
3409
|
-
`) || l.includes("\r")) ? (
|
|
3409
|
+
`) || l.includes("\r")) ? (s(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((I) => I) ? (s(!0), { error: "Does not fit." }) : (s(!1), { info: (e.data.maxLength - l.length).toString() });
|
|
3410
3410
|
})();
|
|
3411
3411
|
if (C.error) {
|
|
3412
3412
|
r(C.error);
|
|
@@ -3434,7 +3434,7 @@ class Oa {
|
|
|
3434
3434
|
}
|
|
3435
3435
|
}
|
|
3436
3436
|
const K = new Oa();
|
|
3437
|
-
class
|
|
3437
|
+
class st {
|
|
3438
3438
|
}
|
|
3439
3439
|
const Ta = "data:application/font-woff;base64,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", La = `<?xml version="1.0" encoding="iso-8859-1"?>
|
|
3440
3440
|
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
@@ -4719,29 +4719,29 @@ function iA(c, e, t) {
|
|
|
4719
4719
|
const A = J();
|
|
4720
4720
|
ja(e, t, `bgdef-${A}`), c.appendChild(Ka(`#bgdef-${A}`));
|
|
4721
4721
|
}
|
|
4722
|
-
const
|
|
4722
|
+
const oA = (c, e, t, A) => {
|
|
4723
4723
|
const a = Ee("filter");
|
|
4724
4724
|
a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
|
|
4725
4725
|
const n = Ee("feOffset");
|
|
4726
4726
|
a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${c}`), n.setAttribute("dy", `${e}`);
|
|
4727
4727
|
const i = Ee("feGaussianBlur");
|
|
4728
4728
|
a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
|
|
4729
|
-
const
|
|
4730
|
-
return a.appendChild(
|
|
4731
|
-
},
|
|
4729
|
+
const o = Ee("feBlend");
|
|
4730
|
+
return a.appendChild(o), o.setAttribute("in", "SourceGraphic"), o.setAttribute("in2", "blurOut"), o.setAttribute("mode", "normal"), a;
|
|
4731
|
+
}, sA = (c) => {
|
|
4732
4732
|
let e = c;
|
|
4733
4733
|
return e = e.replace(/feoffset/gi, "feOffset"), e = e.replace(/fegaussianblur/gi, "feGaussianBlur"), e = e.replace(/feblend/gi, "feBlend"), e = e.replace(/lineargradient/gi, "linearGradient"), e = e.replace(/stddeviation/gi, "stdDeviation"), e;
|
|
4734
4734
|
};
|
|
4735
4735
|
function ct(c, e, t, A, a, n) {
|
|
4736
|
-
const i = a || 1,
|
|
4736
|
+
const i = a || 1, o = n || 1, s = {
|
|
4737
4737
|
x: e[0],
|
|
4738
4738
|
y: e[1],
|
|
4739
4739
|
width: e[2] - e[0],
|
|
4740
4740
|
height: e[3] - e[1]
|
|
4741
4741
|
};
|
|
4742
|
-
if (
|
|
4742
|
+
if (s.width <= 0)
|
|
4743
4743
|
return;
|
|
4744
|
-
const r = Va(
|
|
4744
|
+
const r = Va(s.height, s.width, t * i, A * o), g = (A - r * s.width) / 2 - r * s.x, B = (t - r * s.height) / 2 - r * s.y;
|
|
4745
4745
|
c.setAttribute("transform", `translate(${g} ${B}) scale(${r} ${r})`);
|
|
4746
4746
|
}
|
|
4747
4747
|
function Va(c, e, t, A) {
|
|
@@ -4776,10 +4776,10 @@ class gt {
|
|
|
4776
4776
|
encodePath(e) {
|
|
4777
4777
|
let t = "";
|
|
4778
4778
|
const a = (n) => {
|
|
4779
|
-
const i = [],
|
|
4780
|
-
let
|
|
4779
|
+
const i = [], o = n.relative ? n.type : n.type.toUpperCase();
|
|
4780
|
+
let s = t !== o;
|
|
4781
4781
|
const r = yt[n.type];
|
|
4782
|
-
|
|
4782
|
+
s && (i.push(o), t = o);
|
|
4783
4783
|
for (const g of r) {
|
|
4784
4784
|
const B = n[g];
|
|
4785
4785
|
let l;
|
|
@@ -4791,9 +4791,9 @@ class gt {
|
|
|
4791
4791
|
l = (B * 100 | 0) / 100;
|
|
4792
4792
|
break;
|
|
4793
4793
|
default:
|
|
4794
|
-
throw new
|
|
4794
|
+
throw new se("Failed to encode path.");
|
|
4795
4795
|
}
|
|
4796
|
-
|
|
4796
|
+
s || i.push(" "), i.push(l), s = !1;
|
|
4797
4797
|
}
|
|
4798
4798
|
return i.join("");
|
|
4799
4799
|
};
|
|
@@ -4803,24 +4803,24 @@ class gt {
|
|
|
4803
4803
|
const t = /([mzlhvcsqta])([^mzlhvcsqta]*)/gi, A = /-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi, a = [];
|
|
4804
4804
|
let n;
|
|
4805
4805
|
for (t.lastIndex = 0; n = t.exec(e); ) {
|
|
4806
|
-
const i = n[1].toLowerCase(),
|
|
4807
|
-
if (
|
|
4808
|
-
throw new
|
|
4809
|
-
`Path type "${i}" given ${
|
|
4806
|
+
const i = n[1].toLowerCase(), o = (n[2].match(A) || []).map(parseFloat), s = i === n[1], r = yt[i];
|
|
4807
|
+
if (o.length < r.length)
|
|
4808
|
+
throw new se(
|
|
4809
|
+
`Path type "${i}" given ${o.length} arguments, expected ${r.length}.`
|
|
4810
4810
|
);
|
|
4811
4811
|
if (r.length > 0) {
|
|
4812
|
-
if (
|
|
4813
|
-
throw new
|
|
4814
|
-
`Path type "${i}" given ${
|
|
4812
|
+
if (o.length % r.length !== 0)
|
|
4813
|
+
throw new se(
|
|
4814
|
+
`Path type "${i}" given ${o.length} arguments, not divisible by ${r.length}`
|
|
4815
4815
|
);
|
|
4816
|
-
for (let g = 0; g <
|
|
4817
|
-
const B = { type: i, relative:
|
|
4816
|
+
for (let g = 0; g < o.length / r.length; g++) {
|
|
4817
|
+
const B = { type: i, relative: s };
|
|
4818
4818
|
for (let l = 0; l < r.length; l++)
|
|
4819
|
-
B[r[l]] =
|
|
4819
|
+
B[r[l]] = o[g * r.length + l];
|
|
4820
4820
|
a.push(B);
|
|
4821
4821
|
}
|
|
4822
4822
|
} else
|
|
4823
|
-
a.push({ type: i, relative:
|
|
4823
|
+
a.push({ type: i, relative: s });
|
|
4824
4824
|
}
|
|
4825
4825
|
return a;
|
|
4826
4826
|
}
|
|
@@ -4831,12 +4831,12 @@ class gt {
|
|
|
4831
4831
|
["x", "y"]
|
|
4832
4832
|
], a = (n) => {
|
|
4833
4833
|
for (let i = 0; i < A.length; i++) {
|
|
4834
|
-
const [
|
|
4835
|
-
if (
|
|
4836
|
-
const r = [n[
|
|
4834
|
+
const [o, s] = A[i];
|
|
4835
|
+
if (o in n && s in n) {
|
|
4836
|
+
const r = [n[o], n[s]], g = t(r);
|
|
4837
4837
|
if (g.length < 2)
|
|
4838
|
-
throw new
|
|
4839
|
-
n[
|
|
4838
|
+
throw new se("Transformer must return at least 2 points.");
|
|
4839
|
+
n[o] = g[0], n[s] = g[1];
|
|
4840
4840
|
}
|
|
4841
4841
|
}
|
|
4842
4842
|
return n;
|
|
@@ -4858,7 +4858,7 @@ class gt {
|
|
|
4858
4858
|
}
|
|
4859
4859
|
}
|
|
4860
4860
|
}
|
|
4861
|
-
class Wa extends
|
|
4861
|
+
class Wa extends st {
|
|
4862
4862
|
constructor() {
|
|
4863
4863
|
super(...arguments), this.moduleName = "Favourites";
|
|
4864
4864
|
}
|
|
@@ -4873,9 +4873,9 @@ class Wa extends ot {
|
|
|
4873
4873
|
return this.brandSvg(n, La);
|
|
4874
4874
|
}
|
|
4875
4875
|
brandSvg(e, t) {
|
|
4876
|
-
const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3),
|
|
4876
|
+
const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), o = () => {
|
|
4877
4877
|
const m = R("g"), p = R("defs");
|
|
4878
|
-
m.appendChild(p), p.appendChild(
|
|
4878
|
+
m.appendChild(p), p.appendChild(oA(3, 7, 4, "shadow"));
|
|
4879
4879
|
const I = R("g");
|
|
4880
4880
|
m.appendChild(I), I.setAttribute("filter", "url(#shadow)"), I.innerHTML = A;
|
|
4881
4881
|
const F = R("g");
|
|
@@ -4884,25 +4884,25 @@ class Wa extends ot {
|
|
|
4884
4884
|
m.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
|
|
4885
4885
|
const Y = R("g");
|
|
4886
4886
|
return m.appendChild(Y), Y.setAttribute("fill", "yellow"), Y.innerHTML = A, new gt(m).transform(([N, H]) => [N, H + (n / 2 - N) ** 2 / (n * 2.9)]), m;
|
|
4887
|
-
}, [
|
|
4888
|
-
if (!
|
|
4887
|
+
}, [s, r, g] = nA(t);
|
|
4888
|
+
if (!s)
|
|
4889
4889
|
return "";
|
|
4890
4890
|
const B = R("defs");
|
|
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
4894
|
const C = rt(l, d);
|
|
4895
4895
|
C.setAttribute("opacity", "0"), h.appendChild(C);
|
|
4896
4896
|
const u = R("g");
|
|
4897
4897
|
h.appendChild(u);
|
|
4898
|
-
const f =
|
|
4898
|
+
const f = o();
|
|
4899
4899
|
u.appendChild(f);
|
|
4900
4900
|
const Q = at(i);
|
|
4901
|
-
return ct(u, Q, l, d),
|
|
4901
|
+
return ct(u, Q, 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==";
|
|
4905
|
-
class qa extends
|
|
4905
|
+
class qa extends st {
|
|
4906
4906
|
constructor(e, t) {
|
|
4907
4907
|
super(), this.moduleName = "Maltesers", this.shortLength = 5, this.indicator = (A) => A ? 1 : 0, this.backgroundSvg = e, this.backgroundShortSvg = t;
|
|
4908
4908
|
}
|
|
@@ -4913,11 +4913,11 @@ class qa extends ot {
|
|
|
4913
4913
|
return this.svg(e);
|
|
4914
4914
|
}
|
|
4915
4915
|
svg(e) {
|
|
4916
|
-
const t = At(Xa), a = e !== "" ? ((
|
|
4917
|
-
return this.brandSvg(n,
|
|
4916
|
+
const t = At(Xa), a = e !== "" ? ((s) => s.charAt(0).toUpperCase() + s.substr(1).toLowerCase())(e) : "", n = t.getPath(a, 0, 72, 72), i = e.length < this.shortLength, o = i ? this.backgroundShortSvg : this.backgroundSvg;
|
|
4917
|
+
return this.brandSvg(n, o, i);
|
|
4918
4918
|
}
|
|
4919
4919
|
brandSvg(e, t, A) {
|
|
4920
|
-
const a = e.toSVG(2), n = e.getBoundingBox(), i = n.y2 - n.y1,
|
|
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
4921
|
const I = R("g"), F = R("g");
|
|
4922
4922
|
I.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");
|
|
@@ -4925,10 +4925,10 @@ class qa extends ot {
|
|
|
4925
4925
|
const Y = R("g");
|
|
4926
4926
|
I.appendChild(Y), Y.setAttribute("fill", "white"), Y.innerHTML = a;
|
|
4927
4927
|
const S = new gt(I);
|
|
4928
|
-
return S.transform(([N, H]) => [N, H + ((
|
|
4928
|
+
return S.transform(([N, H]) => [N, H + ((o - N) * H) ** 2 / (o * 5e4)]), S.transform(([N, H]) => [
|
|
4929
4929
|
N,
|
|
4930
|
-
H + (
|
|
4931
|
-
]), S.transform(([N, H]) => [N - (i - H) * (
|
|
4930
|
+
H + (o / 3 - N) ** 2 / o * this.indicator(N < o / 3)
|
|
4931
|
+
]), S.transform(([N, H]) => [N - (i - H) * (o - N) / 800, H]), I;
|
|
4932
4932
|
}, [g, B, l] = nA(t);
|
|
4933
4933
|
if (!g)
|
|
4934
4934
|
return "";
|
|
@@ -4944,13 +4944,13 @@ class qa extends ot {
|
|
|
4944
4944
|
u.appendChild(Q);
|
|
4945
4945
|
const m = r();
|
|
4946
4946
|
Q.appendChild(m);
|
|
4947
|
-
const p = at(
|
|
4947
|
+
const p = at(s);
|
|
4948
4948
|
return ct(Q, p, w, E), g.outerHTML;
|
|
4949
4949
|
}
|
|
4950
4950
|
// 1 if true, 0 if false.
|
|
4951
4951
|
}
|
|
4952
4952
|
const Za = "data:application/octet-stream;base64,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DOYNZA3mDlQOyg88D54QEBCGEQARchHsEmIS1BOWFAwUghTwFWIV1BaiFxQXkhgEGMYZdBomGtQbfhwYHL4dYB3+HpgfPh/oIJYhPCHmIpQjRiPsJJolSCXuJpQnQifoKJIpRAAmAAn/8QAK//sADP/7AA3/+wAO//sAD//7ABD/+wAR//sAEv/7ABP/+wAU//sAFf/xABb/8QAZ//sAHf/2AB7/+wAf//sAIP/xACH/+wAi//sAI//7ACT/+wAl//EAJv/2ACf/8QAo//sAKf/2ACr/+wAr//sALP/sAC3/7AAu/+IAL//dADD/9gAx/+wAMv/7ADP/+wA0//YAKwAG//EACP/nAAn/4gAK/9MAC//iAAz/9gAN/+IADv/sAA//4gAQ/9gAEf/iABL/1QAT//EAFP/nABX/8QAW/9gAMf/TADL/pgAz//MANP/nADX/8QA2//EAN//7ADj/7gA5//YAOv/7ADv/2AA8//EAPf/2AD7/9gA///EAQP/sAEH/+wBC/+wAQ//xAET/7ABF/+wARv/2AEf/3QBI/90ASf/EAEr/zgBL//YAKwAG//YAB//2AAn/3QAL/+wADP/sAA3/8QAO//YAD//sABD/8QAR/+wAEv/iABP/5wAU/+wAFf/dABb/7AAX/78AMf/YADL/sAAz/+IANP/iADX/8QA2/+cAN//xADj/3QA5/+wAOv/2ADv/4gA8//EAPf/xAD7/8QA///YAQP/YAEH/9gBC/+cAQ//sAET/7ABF/+wARv/xAEf/zgBI/9MASf/OAEr/zgBL/+wAKgAG//YAB//iAAj/4gAK/+IADP/dAA3/ugAO/+IAD//iABD/5wAR/+IAEv/dABP/yQAU/90AFf+mABb/0wAx/5gAMv/YADP/4gA0/9MANf/xADb/7AA3/+wAOP/iADn/7AA6//EAO//dADz/5wA9/+wAPv/sAD//5wBA/9gAQf/sAEL/zgBD/+wARP/YAEX/tQBG/90AR/+hAEj/oQBJ/8QASv+DAEv/7AAqAAb/8QAH/90ACP/YAAn/oQAL/8kADP/iAA3/sAAO/+cAD//YABD/4gAR/90AEv/bABP/4gAU/+IAFf/TABb/5wAg/+QAMf/nADL/3AAz//QANP/rADX/9AA2//IAN//4ADj/8AA5//QAOv/1ADv/7AA8/+oAPf/7AD7/9wA///IAQP/tAEH/+wBC/+IAQ//2AET/4wBF/7YARv/vAEf/pgBK/6MAS//yACYAB//TAAj/8QAK/84ADP/dAA3/9gAO//EAD//dABD/pgAR/8kAEv+6ABP/7AAU/90AFf/OADH/xAAy/5IAM//sADT/3QA1/+cANv/xADf/9gA4/90AO/9WADz/5wA9//EAPv/sAD//5wBA/84AQf/dAEL/0wBD/+cARP/nAEX/5wBG/+cAR//dAEj/2ABJ/7oASv/JAEv/4gAsAAb/+wAH//sACP/xAAn/zgAK/+cAC//dAAz/9gAN/9gADv/tAA//7AAQ/+kAEf/rABL/3QAT/90AFP/hABX/3QAW/90AMf/nADL/vwAz/+cANP/nADX/8QA2//EAN//sADj/5wA5//YAOv/2ADv/4gA8//EAPf/2AD7/+wA///sAQP/2AEH/+wBC/+wAQ//7AET/7ABF/9MARv/7AEf/yQBI/84ASf+wAEr/xABL/+cADgAG//sACf/xAAv/7AAN//sADv/7AA8AAAAR//EAEv/0ABP/9gAU//EAFf/xABb/7AAx//YAQP/2ACkABv/7AAf/9gAI//sACf/iAAr/5wAL/+wADP/vAA3/3QAO//sAD//qABD/8QAR/+wAEv/nABP/8QAU/+cAFf/iABb/7AAx/+cAMv/vADP//AA0/+cANf/7ADb//gA4//EAOf/8ADr//AA7/+kAPP/6AD3//QA+//4AP//7AEL/6gBD//0ARP/2AEX/7ABG//EAR//YAEj/4gBJ/+wASv/LAEv//AAsAAb/+wAH//EACP/2AAn/0wAK/+IAC//JAAz/5wAN/90ADv/iAA//7AAQ/+cAEf/sABL/3QAT/9MAFP/iABX/zgAW/+cAMf/YADL/xAAz/+wANP/dADX/6AA2//EAN//xADj/4wA5//EAOv/2ADv/7AA8/+wAPf/sAD7/9gA//+wAQP/iAEH/8QBC/90AQ//nAET/5wBF/8QARv/mAEf/xABI/8kASf+1AEr/rQBL/+IALAAG//sAB//7AAj/9gAJ/9MACv/2AAv/ugAM/+kADf/dAA7/9gAP/+wAEP/2ABH/8AAS//EAE//2ABT/5wAV/9gAFv/sADH/vwAy/9UAM//eADT/3wA1//EANv/xADf/9gA4/+IAOf/xADr/9gA7/+wAPP/xAD3/9gA+//EAP//2AED/2ABB//EAQv/nAEP/9gBE/+cARf/TAEb/8QBH/9gASP/YAEn/xgBK/78AS//xACsABv/7AAf/9gAI/+wACf/TAAr/5wAL/90ADP/lAA3/zgAO/90AD//dABD/7AAR/+IAEv/iABP/2AAU/+IAFf/JABb/5wAx/90AMv/EADP/6wA0/+EANf/wADb/8AA4/9wAOf/dADr/7AA7/9gAPP/sAD3/5wA+/+wAP//iAED/0wBB/+IAQv/YAEP/4gBE/84ARf/JAEb/4gBH/8kASP/OAEn/vwBK/8kAS//TACwABv/7AAf/3wAI/+cACf+wAAr/4wAL/8kADP/dAA3/xwAO/+cAD//dABD/7AAR/+cAEv/iABP/yQAU/9cAFf+/ABb/4gAa/+kAMf/YADL/uwAz/+EANP/dADb/6wA3//MAOP/lADn/8QA6//IAO//eADz/5wA9/+4APv/zAD//8ABA/+IAQf/2AEL/6gBD//YARP/kAEX/zABG/+8AR/+0AEj/uwBJ/64ASv+vAEv/5QAsAAb/+wAH/90ACP/nAAn/4gAK/9MAC//nAAz/3QAN//YADv/eAA//3QAQ/7AAEf/OABL/sAAT//sAFP/dABX/0wAW/9MAMf/iADL/iAAz//YANP/OADX/9gA2//EAN//xADj/0wA5//YAOv/zADv/gAA8//EAPf/7AD7/+wA///YAQP/OAEH/7gBC/84AQ//2AET/2ABF//sARv/2AEf/5wBI/+cASf/TAEr/4gBL/+wALAAG//sAB//2AAj/8QAJ/9gACv/nAAv/3QAM/+IADf/dAA7/4gAP/+IAEP/nABH/5wAS/9gAE//YABT/3QAV/84AFv/sADH/5wAy/78AM//nADT/2AA1/+cANv/nADf/7AA4/90AOf/sADr/7AA7/+cAPP/sAD3/8QA+/+wAP//xAED/4gBB//EAQv/dAEP/5wBE/+IARf/YAEb/5wBH/78ASP/HAEn/sABK/7UAS//dACsABv/xAAf/8QAI/+IACf/dAAr/0wAL/+IADP/iAA3/3QAO/+cAD//dABD/zgAR/9MAEv/EABP/0wAU/84AFv/dADH/4gAy/6EAM//jADT/3QA1/+wANv/sADf/5wA4/90AOf/nADr/8QA7/78APP/xAD3/9gA+/+wAP//nAED/3QBB/+cAQv/nAEP/5wBE/+IARf/OAEb/3QBH/8QASP/JAEn/lwBK/7oAS//YACkABv/sAAf/0wAI/90ACf/OAAr/3QAM/90ADf/EAA7/5wAP/9gAEP/YABH/3QAS/9MAE//YABT/4gAV/90AMf/sADL/wAAz/+8ANP/kADX/6wA2//AAN//2ADj/5AA5//EAOv/uADv/1gA8//QAPf/2AD7/8QA///AAQP/dAEH/7ABD/+gARP/YAEX/1QBG/+wAR/+3AEj/wwBJ/7UASv+wAEv/5gAeAAf/zgAi/+4AI//5ACT/7wAy/9AAM//pADT/sQA1/+sANv/nADf/5gA4/7oAOf/vADr/9wA7/9AAPP/sAD3/6wA+/+YAP//sAED/uwBB/+kAQv+7AEP/5ABE/9QARf+6AEb/0ABH/34ASP+SAEn/zQBK/5sAS//nABwAF//RACT//wAy/9EAM//uADT/5wA1/+8ANv/3ADf/7gA4/+gAOf/3ADr/+wA7/9oAPP/vAD3/9wA+/+4AP//vAED/4QBB//cAQv/nAEP/7wBE/+4ARf/QAEb/9wBH/8EASP/MAEn/wwBK/7sAS//nABwAF//QABv/+QAy/8EAM//zADT/6wA1//sANv/zADf/+wA4/+8AOf/zADr//gA7/+EAPP/vAD3/9wA+//kAP//3AED/4gBB//kAQv/jAEP/8wBE/+YARf/VAEb/+QBH/84ASP/JAEn/twBK/8EAS//rAB8ABv/7ABL/3wAX/8kAJf/5ACv/7wAy/7oAM//zADT/6wA1/+8ANv/uADf/8wA4/+oAOf/vADr/7wA7/9QAPP/5AD3//gA+//EAP//vAED/4wBB//MAQv/mAEP/7gBE/+cARf/XAEb/6wBH/8kASP/JAEn/twBK/7cAS//nACAABv/7ACQAAgAl/+8AJ//5AC3//gAv//4AMv/oADP//QA0/+sANf/7ADb/+gA3//sAOP/jADn/9wA6//oAO//kADz//wA9//0APv/+AD8AAABA/+gAQf/7AEL/6ABD//sARP/sAEX/8QBG//sAR//qAEj/6wBJ/+cASv/qAEv/+QAbAAb/+wAl/+8AMv+5ADP/+wA0/+8ANf/7ADb/+wA3//0AOP/vADn/+wA6AAAAO/+7ADz//gA9//4APv/7AED/7ABB//4AQv/nAEP/+QBE//kARf/7AEb/+QBH//MASP/rAEn/4gBK/+8AS//7AB0ABv/2ABf/zgAl/+8AMv+3ADP/9wA0/+sANf/3ADb/8QA3//kAOP/uADn/8wA6//sAO//YADz/8wA9/+4APv/3AD//8wBA/+MAQf/3AEL/6QBD/+8ARP/nAEX/1ABG/+8AR//JAEj/zABJ/6YASv/JAEv/3AAcAAb/+wAX//MAJf/7ADL/6wAz//4ANP/uADX/+wA2//4AN//+ADj/8wA5//0AOv/+ADv/7gA8//4APf/+AD7/+wA///4AQP/uAEL/9wBD//4ARP/+AEX/+QBG//4AR//uAEj/9wBJ/+4ASv/zAEv//gAYAAb/+wAx//YAMv/rADP//wA0//MANf//ADYAAQA3//8AOP/zADv/6AA8//4APf/+AD4AAQBA/+4AQf//AEL/8wBD//4ARP/4AEX//QBH/+wASP/3AEn/7ABK//EASwABABwABv/2ABf/4QAy/8oAM//9ADT/+QA1//4ANv/7ADf//gA4//MAOf/+ADr//wA7/+EAPP/7AD3//gA+//4AP//+AED/7wBB//4AQv/zAEP//gBE//sARf/7AEb//gBH/+8ASP/5AEn/2gBK//oAS//+AB0ABv/nABf/5wAx/7AAMv/hADP/7gA0/7QANf/rADb/5wA3/+4AOP+sADn/6wA6//kAO/+3ADz/6gA9/+8APv/nAD//5wBA/6wAQf/uAEL/rgBD/+cARP+8AEX/3ABG/9oAR//cAEj/0QBJ/9oASv/RAEv/7wAeAAb/9gAX//cAI//9ADH/vwAy/+4AM//5ADT/2gA1//4ANv/3ADf/+wA4/9oAOf/3ADr/+wA7/+cAPP/7AD3/+QA+//cAP//5AED/1ABB//sAQv/cAEP/9wBE/+8ARf/JAEb/6wBH/8QASP++AEn/5wBK/8EAS//+ABwAF//7ADH/7AAy/+QAM//+ADT/7gA1//4ANgAAADf//QA4//cAOf/7ADr//gA7/+4APP/+AD3//gA+//0AP//7AED/7wBB//4AQv/uAEP//gBE//cARf/7AEb/+QBH/+gASP/vAEn/6wBK/+gAS//+AB4ABv/7ABf/8wAa//4AHf/3ACX/9wAq//4AMf/2ADL/5AAz//0ANP/zADX/+wA2//4AN//+ADj/+QA7/+4APf/+AD7/+wA///4AQP/2AEH/+gBC/+4AQ//7AET/+QBF//sARv/+AEf/8wBI/+8ASf/zAEr/6wBL//4AHQAG//EAJP/3ADH/7AAy/7sAM//sADT/4wA1/+8ANv/vADf/9wA4/+QAOf/qADr/9wA7/98APP/vAD3/9wA+/+sAP//uAED/4wBB/+4AQv/mAEP/7wBE/+IARf/VAEb/7gBH/8MASP/GAEn/uwBK/7oAS//fABwABv/sACT//gAy/54AM//rADT/6gA1//EANv/rADf/9wA4/+MAOf/oADr/9wA7/64APP/sAD3/8QA+/+wAP//sAED/4QBB//MAQv/oAEP/5ABE/9gARf/kAEb/7gBH/9EASP/QAEn/uwBK/8QAS//zADAAF//3ABj//wAZ/+kAGv//ABv//QAc//4AHf/pAB7/+wAf//8AIP/iACH//gAi//8AI//+ACT//wAl/+IAJ//uACj//gAp/+cAKv/hACv/+QAs/8MALf/QAC7/5AAv/8wAMP//ADL/4QAz//4ANP/jADX/9wA3//kAOP/fADn/9wA7/+IAPP/5AD3/+gA+//EAP//6AED/2gBB/+8AQv/aAET/7wBF/9cARv/qAEf/xgBI/7sASf/qAEr/tABL//sAHQAG/+cAF//oACT/+gAy/+IAM//xADT/zAA1/+8ANv/sADf/+gA4/8wAOf/3ADr/8wA7/8kAPP/uAD3/7wA+/+wAP//rAED/yQBB//cAQv/MAEP/+ABE/9QARf/KAEb/2gBH/8EASP/EAEn/4gBK/7cAS//vAB0ABv/xABv/+QAl/+4AMv+8ADP/7wA0/9wANf/zADb/6AA3//cAOP/hADn/5gA6//MAO//aADz/6QA9//MAPv/pAD//6wBA/+MAQf/3AEL/2gBD/+kARP/rAEX/1ABG/+kAR//JAEj/zABJ/7QASv+7AEv/5wAbAAb/9gAy/6YAM//9ADT/0wA1//oANv/+ADf//QA4/9UAOf/3ADr//wA7/7kAPP/6AD3//gA+//sAP//7AED/0ABB//oAQv/XAEP/+QBE/+IARf/zAEb/9wBH/+8ASP/vAEn/6gBK/+cAS//6ABwABv/7ACQAAgAy/9UAM//7ADT/7wA1//cANv/9ADf//wA4/+4AOf/7ADr//wA7/+sAPP/+AD3//gA+//0AP//6AED/7gBB//sAQv/sAEP/+wBE/+8ARf/7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ABX/3QAx//YAMv+5ADP/+AA0/+MANf/3ADb/+AA3//kAOP/iADn/+gA6//0AO//OADz//QA9//4APv/5AD///ABA/+YAQv/jAEP/9wBE/+YARf/vAEb//gBH/+cASP/vAEn/0QBK/+YAS//9ACgAB//2AAj/4gAJ/90ACv/sAAv/4gAM/+gADf/iAA7/9QAP/+gAEP/dABH/4AAS/+YAE//OABT/4gAV/90AJP/7ADH/9gAy/8EAM//vADT/3wA2//QAN//4ADj/4wA5/+kAOv/6ADv/0QA8/+YAPf/zAD7/6QA///EAQP/qAEL/3ABD/+gARP/fAEb/+ABH/7sASP+7AEn/rwBK/68AS//jACcACP/xAAn/7AAK//gADP/2AA7/9wAP//YAEP/xABH/5wAS/+cAE//xABT/7AAV/+UAMf/2ADL/6AAz//kANP/qADX/+wA2//oAN//7ADj/6wA5//cAOv//ADv/4wA8//sAPf/+AD7/+wA///oAQP/sAEH/+gBC/+MAQ//5AET/7wBF/+oARv/7AEf/4wBI/+wASf/jAEr/6gBL//4AJgAH//sACP/7AAn/5wAK//oADP/2AA7/9gAP//YAEP/xABH/8QAS//IAE//xABT/5wAV//EAMv/nADP/+wA0//EANf/9ADb//gA3//4AOP/uADn/+wA6//4AO//oAD0AAAA+//sAP//+AED/7wBB//4AQv/qAEP//wBE//EARf/3AEb/+wBH/+YASP/3AEn/2gBK/+QAS//7ACkAB//2AAj/9gAJ/90ACv/yAAz/8QAO//EAD//wABD/6gAR/+wAEv/mABP/9AAU/+wAFf/rABf/zgAx//YAMv/OADP/7wA0/+oANf/5ADb//gA3//0AOP/oADn/+QA6//0AO//YADz//gA9//8APv/6AD//+QBA/+4AQf/5AEL/4wBD//gARP/qAEX/+QBG//oAR//pAEj/6QBJ/9UASv/rAEv/+gAqAAf/sgAI/8kACf+wAAr/ugAL/7UADP+1AA3/3QAO/+QAD/+6ABD/sgAR/7UAEv+xABP/4gAU/6sAFf+mADH/lwAy/9oAM//jADT/qwA1/+IANv/iADf/4wA4/5oAOf/XADr/7gA7/7QAPP/kAD3/6wA+/+4AP//mAED/rQBB/+8AQv+qAEP/6gBE/74ARf/XAEb/2gBH/9AASP/SAEn/1QBK/80AS//qACsAB//nAAj/8QAJ/6YACv/sAAv/nAAM/90ADf+6AA7/9gAP/+IAEP/sABH/3QAS/9oAE//sABT/3QAV/8QAJP/+ADH/pgAy/+sAM//vADT/ygA1//0ANv/zADf/+wA4/9MAOf/vADr/+wA7/9gAPP/3AD3/9wA+//EAP//7AED/1QBB//cAQv/PAEP/8wBE/+YARf+7AEb/5wBH/7UASP/JAEn/2gBK/6UAS//zACkAB//2AAn/7AAK//kAC//sAAz/9gAO//oAD//2ABD/7AAR/+cAEv/vABP/9gAU//EAFf/sABcAAQAx/+YAMv/pADP/+QA0/+oANf/zADb/+wA3//oAOP/nADn/9wA6//4AO//uADz/+QA9//oAPv/7AD//+QBA/+8AQf/3AEL/6QBD//oARP/sAEX/8wBG//gAR//pAEj/6QBJ/+MASv/nAEv//QAqAAf/9gAI//sACf/sAAr/9wAL/+wADP/7AA7/+gAP//EAEP/2ABH/7AAS//EAE//2ABT/9gAV/+QAFwABADH/8QAy/+kAM//3ADT/6QA1//kANv/5ADf/+QA4/+8AOf/6ADr//gA7/+8APP/7AD3/+gA+//oAP//4AED/7wBB//sAQv/rAEP//QBE/+8ARf/3AEb/+gBH/+4ASP/rAEn/4QBK/+wAS//5ACsAB//xAAj/4gAJ/9gACv/sAAv/2AAM//YADf/iAA7/8QAP/90AEP/iABH/0wAS/+IAE//JABT/4gAV/94AJP/7ADH/3QAy/7QAM//pADT/4QA1/+wANv/vADf/6gA4/+IAOf/qADr/+gA7/9oAPP/pAD3/6wA+/+wAP//pAED/4QBB/+sAQv/cAEP/6wBE/+IARf/JAEb/7gBH/7wASP/BAEn/pgBK/7UAS//kACwAB//iAAj/5wAJ/+IACv/OAAv/2AAM/+cADf/nAA7/8AAP/90AEP+6ABH/xAAS/9cAE//XABT/2AAV/9gAG//3ACT/+wAx/+IAMv+gADP/6QA0/+MANf/mADb/7wA3/+sAOP/aADn/6AA6//YAO/+xADz/6wA9/+4APv/oAD//7wBA/9oAQf/oAEL/1wBD/+MARP/aAEX/2ABG/+cAR//PAEj/yQBJ/7kASv/BAEv/6AApAAf/8QAI/+wACf/OAAr/6gAL/84ADP/nAA3/2AAO//YAD//fABD/4gAR/9gAEv/lABP/5wAU/+IAFf/YADH/4gAy/+cAM//3ADT/2gA1//gANv/5ADf/+wA4/9wAOf/3ADr//gA7/+MAPP/3AD3//QA+//cAP//3AED/1QBC/9UAQ//9AET/6QBF/+EARv/pAEf/ugBI/8QASf/aAEr/wgBL//sAKwAH/8kACP/YAAn/xAAK/9MAC/+/AAz/yQAN/9gADv/nAA//xAAQ/7oAEf+1ABL/wQAT/9gAFP+6ABX/vwAk//sAMf+/ADL/2gAz/+gANP/KADX/6QA2/+kAN//oADj/xgA5/+QAOv/nADv/uQA8/+wAPf/uAD7/6QA//+cAQP/GAEH/7ABC/8kAQ//mAET/2ABF/84ARv/VAEf/wQBI/7wASf/GAEr/tABL/+8AKwAH//EACP/2AAn/yQAK/+oAC//TAAz/3QAN/+cADv/sAA//4gAQ/+IAEf/YABL/3wAT/90AFP/dABX/2AAk//sAMf/nADL/xgAz//MANP/iADX/7wA2/+4AN//3ADj/4wA5/+kAOv/vADv/1wA8/+4APf/zAD7/6gA//+0AQP/kAEH/9wBC/98AQ//qAET/5wBF/9AARv/vAEf/yQBI/9AASf/PAEr/xABL/+8AKQAH/+cACP/sAAn/5wAK/+kAC//dAAz/2AAO/+wAD//XABD/qwAR/8kAEv/AABP/9gAU/9MAFf/OADH/2AAy/7AAM//5ADT/2gA1//0ANv/6ADf//gA4/98AOf/3ADr//QA7/8YAPP/7AD3//gA+//gAP//4AED/1QBB//0AQv/VAEP/+ABE/+MARf/zAEb/+QBH/+4ASP/zAEn/4gBK/+cAS//zACkACP/2AAn/5wAK//QAC//sAAz/+wAN//4ADv/2AA//5QAQ/+wAEf/nABL/8wAT//EAFP/nABX/3QAx/+QAMv/KADP/+QA0/+wANf/6ADb/+gA3//sAOP/vADn/+gA6AAAAO//hADz//wA9//0APv/5AD///gBA/+wAQf/7AEL/7ABD//sARP/vAEX/9wBG//sAR//zAEj/6gBJ/+EASv/jAEv/+wArAAf/zgAI/84ACf/YAAr/ygAL/9gADP/JAA3/+wAO/9kAD//JABD/ogAR/7oAEv+5ABP/5wAU/8QAFf+9ACT/+wAx/7oAMv+FADP/+wA0/7sANf/qADb/6wA3/+wAOP++ADn/5gA6/+8AO/+iADz/6AA9/+oAPv/sAD//7wBA/8MAQf/mAEL/uwBD/+YARP/KAEX/6QBG/+8AR//jAEj/3wBJ/9MASv/hAEv/6wApAAf/zgAI/84ACf/TAAv/2AAM/84ADv/eAA//xAAQ/7AAEf/TABL/sQAT/+wAFP/FABX/yQAk//sAMf/JADL/lQAz//MANP/BADX/+QA2//MAN//3ADj/xgA5//sAOv/3ADv/pQA8/+8APf/+AD7/7gA//+oAQP/DAEH/7gBC/8QAQ//vAET/0ABF/+4ARv/uAEf/6QBI/+QASf/aAEr/5gBL//cAKgAH/8QACP/OAAn/pgAL/7oADP+rAA3/3QAO/+cAD/+5ABD/twAR/8QAEv+zABP/0wAU/7AAFf+cACT/+wAx/6EAMv/aADP/4wA0/7cANf/4ADb/4wA3//0AOP+3ADn/7gA6/+8AO/+7ADz/7gA9//EAPv/jAD//6ABA/7oAQf/zAEL/uQBD/+sARP/OAEX/3wBG/+EAR//aAEj/2ABJ/9gASv/MAEv/7gAsAAf/yQAI/84ACf/JAAr/wgAL/8kADP/JAA3//gAO/8kAD/+6ABD/jQAR/7oAEv+gABP/4gAU/7UAFf+6AB7/8QAk//sAMf+1ADL/lwAz/+8ANP+7ADX/5gA2/+4AN//uADj/uQA5/+gAOv/3ADv/hAA8/+8APf/sAD7/7AA//+oAQP+6AEH/7ABC/7kAQ//pAET/ygBF/+8ARv/vAEf/6ABI/+kASf/fAEr/5ABL//EAJgAH//YACf/iAAr/7AAL/+cADP/iAA3//wAO//UAD//nABD/7AAR/+IAEv/gABP/7AAU/90AFf/TADH/4gAy/+sAM//+ADT/6AA1//4ANgAEADf//wA4/9wAOf/6ADv/5gA8//8APf//AD///QBA/+MAQf//AEMAAABE/+8ARf/4AEb/+wBH//cASP/rAEn/6QBK/+kAS//9AAIAAQAGAEsAAAAAAAAAAQAAAADUGBYRAAAAANmXsTQAAAAA2ZexNA==";
|
|
4953
|
-
class $a extends
|
|
4953
|
+
class $a extends st {
|
|
4954
4954
|
constructor() {
|
|
4955
4955
|
super(...arguments), this.moduleName = "Vegemite";
|
|
4956
4956
|
}
|
|
@@ -4961,21 +4961,21 @@ class $a extends ot {
|
|
|
4961
4961
|
return this.svgElement(e, t);
|
|
4962
4962
|
}
|
|
4963
4963
|
svgElement(e, t) {
|
|
4964
|
-
const A = At(Za), n = e !== "" ? ((f) => f.charAt(0).toUpperCase() + f.substr(1).toLowerCase())(e) : "", i = A.getPath(n, 0, 72, 72),
|
|
4964
|
+
const A = At(Za), n = e !== "" ? ((f) => f.charAt(0).toUpperCase() + f.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 = () => {
|
|
4965
4965
|
const f = R("g");
|
|
4966
4966
|
f.classList.add("module-text-group");
|
|
4967
4967
|
const Q = R("defs");
|
|
4968
|
-
f.appendChild(Q), Q.appendChild(
|
|
4968
|
+
f.appendChild(Q), Q.appendChild(oA(0, 2, 2, "shadow"));
|
|
4969
4969
|
const m = R("path");
|
|
4970
4970
|
m.setAttribute("d", g), m.setAttribute("stroke", "black"), m.setAttribute("stroke-width", "3"), Q.appendChild(m);
|
|
4971
4971
|
const p = R("g");
|
|
4972
4972
|
p.classList.add("module-layer0"), f.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML = m.outerHTML;
|
|
4973
4973
|
const I = R("g");
|
|
4974
|
-
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 =
|
|
4974
|
+
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 = o;
|
|
4975
4975
|
const F = R("g");
|
|
4976
|
-
F.classList.add("module-layer2"), f.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML =
|
|
4976
|
+
F.classList.add("module-layer2"), f.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"), f.appendChild(M), M.setAttribute("fill", "white"), M.innerHTML =
|
|
4978
|
+
return M.classList.add("module-layer3"), f.appendChild(M), M.setAttribute("fill", "white"), M.innerHTML = o, new gt(f).transform(([S, N]) => [S, N + (r / 2 - S) ** 2 / (r * 6)]), f;
|
|
4979
4979
|
}, l = R("g");
|
|
4980
4980
|
l.classList.add("module-root");
|
|
4981
4981
|
const d = R("defs");
|
|
@@ -4989,7 +4989,7 @@ class $a extends ot {
|
|
|
4989
4989
|
const C = B();
|
|
4990
4990
|
h.appendChild(C);
|
|
4991
4991
|
const u = at(g);
|
|
4992
|
-
return ct(h, u, t.height, t.width, 0.35, 0.65),
|
|
4992
|
+
return ct(h, u, t.height, t.width, 0.35, 0.65), sA(l.outerHTML);
|
|
4993
4993
|
}
|
|
4994
4994
|
}
|
|
4995
4995
|
async function rA(c) {
|
|
@@ -5018,7 +5018,7 @@ class Mt extends Zt {
|
|
|
5018
5018
|
}
|
|
5019
5019
|
}
|
|
5020
5020
|
class en {
|
|
5021
|
-
constructor(e, t, A, a, n, i,
|
|
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
5023
|
var f;
|
|
5024
5024
|
if (!this.previewService)
|
|
@@ -5027,7 +5027,7 @@ class en {
|
|
|
5027
5027
|
if (u)
|
|
5028
5028
|
for (const [, Q] of u)
|
|
5029
5029
|
Q.render(this.getWorkflow(), C, this.getProduct().overlayImageUrl);
|
|
5030
|
-
}, this.client = e, this.updateTransaction = i, this.commandContext = n, this.reloadedState = B, this.transaction =
|
|
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
5032
|
}), this.initializationPromise.catch((C) => {
|
|
5033
5033
|
throw console.error(C), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
@@ -5040,16 +5040,16 @@ class en {
|
|
|
5040
5040
|
async initializeDefaultWorkflowState(e) {
|
|
5041
5041
|
const t = () => {
|
|
5042
5042
|
var g, B;
|
|
5043
|
-
const
|
|
5044
|
-
if (!
|
|
5043
|
+
const o = this.workflow.finalizeStepConfig;
|
|
5044
|
+
if (!o)
|
|
5045
5045
|
return;
|
|
5046
|
-
const
|
|
5047
|
-
|
|
5046
|
+
const s = o.lookAtAnimation, r = o.modelAnimation;
|
|
5047
|
+
s && ((g = this.previewService) == null || g.executeCameraAnimation(s)), r && ((B = this.modelContainer) == null || B.executeAnimation(r));
|
|
5048
5048
|
};
|
|
5049
|
-
this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((
|
|
5050
|
-
this.storage[
|
|
5049
|
+
this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((o) => {
|
|
5050
|
+
this.storage[o.stepName] = o.storage || {};
|
|
5051
5051
|
}), this.allScenes = await ma(e);
|
|
5052
|
-
const a = Ae(this.allScenes, this.stepSelections).map((
|
|
5052
|
+
const a = Ae(this.allScenes, this.stepSelections).map((o) => o.silentSteps).flat(), { stepElements: n, commands: i } = await this.stepElementsForIntroducedSilentSteps(a, !!this.reloadedState);
|
|
5053
5053
|
this.commandContext.apply(new v(i), !0), this.stepElements = { ...this.stepElements, ...n }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && t();
|
|
5054
5054
|
}
|
|
5055
5055
|
getClient() {
|
|
@@ -5230,18 +5230,18 @@ class en {
|
|
|
5230
5230
|
console.error(`Failed to read option id from step: ${i.stepName}`);
|
|
5231
5231
|
return;
|
|
5232
5232
|
}
|
|
5233
|
-
const
|
|
5234
|
-
if (
|
|
5233
|
+
const o = ((g = this.stepSelections[i.stepName]) == null ? void 0 : g.selectedVariants) || [];
|
|
5234
|
+
if (o.length === 0)
|
|
5235
5235
|
return;
|
|
5236
|
-
const
|
|
5236
|
+
const s = o[0];
|
|
5237
5237
|
if (i.type === y.Model) {
|
|
5238
5238
|
if (!this.modelContainer)
|
|
5239
5239
|
throw new b(
|
|
5240
5240
|
"We should always have a model container when injecting a preview!"
|
|
5241
5241
|
);
|
|
5242
|
-
const l = (B =
|
|
5242
|
+
const l = (B = s.asset) == null ? void 0 : B.fileLink;
|
|
5243
5243
|
if (!l) {
|
|
5244
|
-
console.error(`Failed to read model url from variant: ${
|
|
5244
|
+
console.error(`Failed to read model url from variant: ${s.id} for step: ${i.stepName}`);
|
|
5245
5245
|
return;
|
|
5246
5246
|
}
|
|
5247
5247
|
const d = i.data;
|
|
@@ -5254,9 +5254,9 @@ class en {
|
|
|
5254
5254
|
d.replaceProductModel || !1
|
|
5255
5255
|
);
|
|
5256
5256
|
} else {
|
|
5257
|
-
const l =
|
|
5257
|
+
const l = s.material;
|
|
5258
5258
|
if (!l) {
|
|
5259
|
-
console.error(`Failed to read material from variant: ${
|
|
5259
|
+
console.error(`Failed to read material from variant: ${s.id} for step: ${i.stepName}`);
|
|
5260
5260
|
return;
|
|
5261
5261
|
}
|
|
5262
5262
|
i.data.targetMaterials.forEach((w) => {
|
|
@@ -5295,7 +5295,7 @@ class en {
|
|
|
5295
5295
|
var n, i;
|
|
5296
5296
|
const a = { stepName: A.stepName };
|
|
5297
5297
|
a.storage = this.storage[A.stepName], a.selectedVariants = (i = (n = this.stepSelections[A.stepName]) == null ? void 0 : n.selectedVariants) == null ? void 0 : i.map(
|
|
5298
|
-
(
|
|
5298
|
+
(o) => ({ id: o.id, priceModifier: o.priceModifier })
|
|
5299
5299
|
), e.push(a);
|
|
5300
5300
|
});
|
|
5301
5301
|
}), { steps: e };
|
|
@@ -5354,11 +5354,11 @@ class en {
|
|
|
5354
5354
|
}
|
|
5355
5355
|
removeElements(e) {
|
|
5356
5356
|
const t = (A, a) => Object.keys(A).reduce((n, i) => {
|
|
5357
|
-
const
|
|
5358
|
-
return a.forEach((
|
|
5359
|
-
const r =
|
|
5360
|
-
r > -1 &&
|
|
5361
|
-
}), n[i] =
|
|
5357
|
+
const o = [...A[i] || []];
|
|
5358
|
+
return a.forEach((s) => {
|
|
5359
|
+
const r = o.findIndex((g) => g.id === s.id);
|
|
5360
|
+
r > -1 && o.splice(r, 1);
|
|
5361
|
+
}), n[i] = o, n;
|
|
5362
5362
|
}, {});
|
|
5363
5363
|
this.stepElements = t(this.stepElements, e);
|
|
5364
5364
|
}
|
|
@@ -5392,11 +5392,11 @@ class en {
|
|
|
5392
5392
|
), i = {
|
|
5393
5393
|
stepElements: {},
|
|
5394
5394
|
commands: []
|
|
5395
|
-
},
|
|
5395
|
+
}, o = [];
|
|
5396
5396
|
for (const r of n)
|
|
5397
|
-
this.markStepsAsInitialised([r.stepName]), t ||
|
|
5398
|
-
const
|
|
5399
|
-
for (const r of
|
|
5397
|
+
this.markStepsAsInitialised([r.stepName]), t || o.push(a(r, this.layouts, A));
|
|
5398
|
+
const s = await Promise.all(o);
|
|
5399
|
+
for (const r of s)
|
|
5400
5400
|
i.stepElements[r.step.stepName] = r.results.map((g) => g.regionElement), i.commands = [...i.commands, ...r.results.map((g) => g.command)];
|
|
5401
5401
|
return i;
|
|
5402
5402
|
}
|
|
@@ -5431,7 +5431,7 @@ class en {
|
|
|
5431
5431
|
}, this.selectionCost = Object.values(this.stepSelections).reduce((p, I) => p + I.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
|
-
const i = this.allScenes,
|
|
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
5435
|
(p) => !r.some((I) => I.stepName === p.stepName)
|
|
5436
5436
|
);
|
|
5437
5437
|
r.forEach((p) => {
|
|
@@ -5466,14 +5466,14 @@ class en {
|
|
|
5466
5466
|
await this.onSelectionChange(), a && await a();
|
|
5467
5467
|
}
|
|
5468
5468
|
async ensureStepsAreLoaded() {
|
|
5469
|
-
const t = Ae(this.allScenes, this.stepSelections).map((
|
|
5470
|
-
for (const
|
|
5471
|
-
if (!this.stepInitialised[
|
|
5472
|
-
switch (this.stepInitialised[
|
|
5469
|
+
const t = Ae(this.allScenes, this.stepSelections).map((s) => s.renderableSteps), A = [], a = t.flat();
|
|
5470
|
+
for (const s of a)
|
|
5471
|
+
if (!this.stepInitialised[s.stepName])
|
|
5472
|
+
switch (this.stepInitialised[s.stepName] = !0, s.type) {
|
|
5473
5473
|
case y.DigitalContent:
|
|
5474
5474
|
A.push(
|
|
5475
5475
|
Sa.init(
|
|
5476
|
-
|
|
5476
|
+
s,
|
|
5477
5477
|
this,
|
|
5478
5478
|
this.reloadedState
|
|
5479
5479
|
)
|
|
@@ -5482,60 +5482,60 @@ class en {
|
|
|
5482
5482
|
case y.Frame:
|
|
5483
5483
|
case y.Photo:
|
|
5484
5484
|
{
|
|
5485
|
-
const r = new Fa(
|
|
5486
|
-
r.connectWorkflowManager(this,
|
|
5485
|
+
const r = new Fa(s.data.forceImageCover);
|
|
5486
|
+
r.connectWorkflowManager(this, s.stepName), this.stepSpecificServices[s.stepName] = {
|
|
5487
5487
|
frameService: r
|
|
5488
5488
|
}, A.push(
|
|
5489
|
-
Fe.init(
|
|
5489
|
+
Fe.init(s, this, this.reloadedState)
|
|
5490
5490
|
);
|
|
5491
5491
|
}
|
|
5492
5492
|
break;
|
|
5493
5493
|
case y.Illustration:
|
|
5494
5494
|
A.push(
|
|
5495
|
-
ye.init(
|
|
5495
|
+
ye.init(s, this, this.reloadedState)
|
|
5496
5496
|
);
|
|
5497
5497
|
break;
|
|
5498
5498
|
case y.Material:
|
|
5499
5499
|
A.push(
|
|
5500
|
-
eA.init(
|
|
5500
|
+
eA.init(s, this, this.reloadedState)
|
|
5501
5501
|
);
|
|
5502
5502
|
break;
|
|
5503
5503
|
case y.Model:
|
|
5504
|
-
A.push(tA.init(
|
|
5504
|
+
A.push(tA.init(s, this, this.reloadedState));
|
|
5505
5505
|
break;
|
|
5506
5506
|
case y.Module:
|
|
5507
|
-
this.stepSpecificServices[
|
|
5508
|
-
module: await rA(
|
|
5507
|
+
this.stepSpecificServices[s.stepName] = {
|
|
5508
|
+
module: await rA(s.data.module)
|
|
5509
5509
|
}, A.push(
|
|
5510
|
-
Ra.init(
|
|
5510
|
+
Ra.init(s, this, this.reloadedState)
|
|
5511
5511
|
);
|
|
5512
5512
|
break;
|
|
5513
5513
|
case y.Picture:
|
|
5514
5514
|
A.push(
|
|
5515
|
-
AA.init(
|
|
5515
|
+
AA.init(s, this, this.reloadedState)
|
|
5516
5516
|
);
|
|
5517
5517
|
break;
|
|
5518
5518
|
case y.Question:
|
|
5519
5519
|
A.push(
|
|
5520
|
-
aA.init(
|
|
5520
|
+
aA.init(s, this, this.reloadedState)
|
|
5521
5521
|
);
|
|
5522
5522
|
break;
|
|
5523
5523
|
case y.Shape:
|
|
5524
|
-
A.push(re.init(
|
|
5524
|
+
A.push(re.init(s, this, this.reloadedState));
|
|
5525
5525
|
break;
|
|
5526
5526
|
case y.Text:
|
|
5527
|
-
A.push(K.init(
|
|
5527
|
+
A.push(K.init(s, this, this.reloadedState));
|
|
5528
5528
|
break;
|
|
5529
5529
|
}
|
|
5530
|
-
const n = (await Promise.allSettled(A)).map((
|
|
5531
|
-
if (
|
|
5532
|
-
throw new Error(`Step initialization failed: ${
|
|
5533
|
-
return
|
|
5534
|
-
}), i = n.filter((
|
|
5530
|
+
const n = (await Promise.allSettled(A)).map((s) => {
|
|
5531
|
+
if (s.status === "rejected")
|
|
5532
|
+
throw new Error(`Step initialization failed: ${s.reason}`);
|
|
5533
|
+
return s.value;
|
|
5534
|
+
}), i = n.filter((s) => !!s && !!s.command).map((s) => s.command), o = n.filter((s) => !!s && !!s.followup).map((s) => s.followup);
|
|
5535
5535
|
i && i.length > 0 && this.commandContext.apply(new v(i), !0);
|
|
5536
|
-
for (const
|
|
5537
|
-
await
|
|
5538
|
-
|
|
5536
|
+
for (const s of o)
|
|
5537
|
+
await s();
|
|
5538
|
+
o.length > 0 && await this.ensureStepsAreLoaded(), this.onInitChange();
|
|
5539
5539
|
}
|
|
5540
5540
|
onConfirmChange() {
|
|
5541
5541
|
this.confirmCallbacks.forEach((e) => e(this.confirmedDesign));
|
|
@@ -5639,7 +5639,7 @@ class X {
|
|
|
5639
5639
|
*/
|
|
5640
5640
|
getThumbnail() {
|
|
5641
5641
|
var A, a, n, i;
|
|
5642
|
-
const e = (n = (a = (A = this.variantData.thumbnail) == null ? void 0 : A.versions) == null ? void 0 : a.find((
|
|
5642
|
+
const e = (n = (a = (A = this.variantData.thumbnail) == null ? void 0 : A.versions) == null ? void 0 : a.find((o) => o.name === "thumbnail")) == null ? void 0 : n.link, t = (i = this.variantData.thumbnail) == null ? void 0 : i.fileLink;
|
|
5643
5643
|
return e || t;
|
|
5644
5644
|
}
|
|
5645
5645
|
/**
|
|
@@ -5895,7 +5895,7 @@ class nn extends W {
|
|
|
5895
5895
|
);
|
|
5896
5896
|
}
|
|
5897
5897
|
}
|
|
5898
|
-
class
|
|
5898
|
+
class on extends W {
|
|
5899
5899
|
constructor(e, t) {
|
|
5900
5900
|
super(e, t);
|
|
5901
5901
|
}
|
|
@@ -5912,7 +5912,7 @@ class sn extends W {
|
|
|
5912
5912
|
return (e = this.step.option) == null ? void 0 : e.displayType;
|
|
5913
5913
|
}
|
|
5914
5914
|
}
|
|
5915
|
-
class
|
|
5915
|
+
class sn extends W {
|
|
5916
5916
|
constructor(e, t) {
|
|
5917
5917
|
super(e, t);
|
|
5918
5918
|
}
|
|
@@ -6070,18 +6070,18 @@ class rn extends W {
|
|
|
6070
6070
|
input: e
|
|
6071
6071
|
}, A = K.findLayoutElements(this.manager, this.step), a = K.filterUnsupportedCharacters(e, (d = A[0]) == null ? void 0 : d.fontData);
|
|
6072
6072
|
!!this.step.data && !!this.step.data.maxLength && a.length > this.step.data.maxLength || (t.input = a);
|
|
6073
|
-
const i = A.length <= 0,
|
|
6074
|
-
if (this.manager.updateStorage(this.step.stepName,
|
|
6073
|
+
const i = A.length <= 0, o = i ? { inputText: a, text: a } : { inputText: a };
|
|
6074
|
+
if (this.manager.updateStorage(this.step.stepName, o), this.manager.updateMetadata(this.step.stepName, {
|
|
6075
6075
|
text: a
|
|
6076
6076
|
}), i)
|
|
6077
6077
|
return t;
|
|
6078
|
-
const { command:
|
|
6078
|
+
const { command: s, errors: r, helperText: g } = K.updateInputText(
|
|
6079
6079
|
a,
|
|
6080
6080
|
A,
|
|
6081
6081
|
this.step,
|
|
6082
6082
|
this.manager
|
|
6083
6083
|
);
|
|
6084
|
-
|
|
6084
|
+
s && this.manager.getCommandDispatcher()(s);
|
|
6085
6085
|
const B = this.manager.getInformationResults(), l = (w = r[0]) == null ? void 0 : w.localizationKey;
|
|
6086
6086
|
if (l)
|
|
6087
6087
|
this.manager.setInformationResults([
|
|
@@ -6165,7 +6165,7 @@ class Qe {
|
|
|
6165
6165
|
case y.Information:
|
|
6166
6166
|
return new cn(e, t);
|
|
6167
6167
|
case y.Question:
|
|
6168
|
-
return new
|
|
6168
|
+
return new on(e, t);
|
|
6169
6169
|
case y.Text:
|
|
6170
6170
|
return new rn(e, t);
|
|
6171
6171
|
case y.Illustration:
|
|
@@ -6173,7 +6173,7 @@ class Qe {
|
|
|
6173
6173
|
case y.Picture:
|
|
6174
6174
|
return new nn(e, t);
|
|
6175
6175
|
case y.Shape:
|
|
6176
|
-
return new
|
|
6176
|
+
return new sn(e, t);
|
|
6177
6177
|
case y.Material:
|
|
6178
6178
|
return new An(e, t);
|
|
6179
6179
|
case y.Model:
|
|
@@ -6257,9 +6257,9 @@ function lt(c) {
|
|
|
6257
6257
|
return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) >= e;
|
|
6258
6258
|
}
|
|
6259
6259
|
const Bn = async (c) => {
|
|
6260
|
-
var i,
|
|
6261
|
-
const t = ((i = Object.entries(localStorage).find(([
|
|
6262
|
-
return A && !lt(A) && (a.Authorization = `Bearer ${A}`), (
|
|
6260
|
+
var i, o;
|
|
6261
|
+
const t = ((i = Object.entries(localStorage).find(([s, r]) => s.startsWith("CognitoIdentityServiceProvider") && s.endsWith("idToken"))) == null ? void 0 : i[0]) || "", A = localStorage.getItem(t), a = {};
|
|
6262
|
+
return A && !lt(A) && (a.Authorization = `Bearer ${A}`), (o = (await x.getShadowGraphqlClient().mutate({
|
|
6263
6263
|
mutation: gn,
|
|
6264
6264
|
errorPolicy: "all",
|
|
6265
6265
|
fetchPolicy: "no-cache",
|
|
@@ -6276,60 +6276,60 @@ const Bn = async (c) => {
|
|
|
6276
6276
|
context: {
|
|
6277
6277
|
headers: a
|
|
6278
6278
|
}
|
|
6279
|
-
})).data) == null ? void 0 :
|
|
6279
|
+
})).data) == null ? void 0 : o.designCreate;
|
|
6280
6280
|
}, dn = async (c) => {
|
|
6281
|
-
var i,
|
|
6282
|
-
const t = ((i = Object.entries(localStorage).find(([
|
|
6283
|
-
return A && !lt(A) && (a.Authorization = `Bearer ${A}`), (
|
|
6281
|
+
var i, o;
|
|
6282
|
+
const t = ((i = Object.entries(localStorage).find(([s, r]) => s.startsWith("CognitoIdentityServiceProvider") && s.endsWith("idToken"))) == null ? void 0 : i[0]) || "", A = localStorage.getItem(t), a = {};
|
|
6283
|
+
return A && !lt(A) && (a.Authorization = `Bearer ${A}`), (o = (await x.getShadowGraphqlClient().mutate({
|
|
6284
6284
|
mutation: ln,
|
|
6285
6285
|
errorPolicy: "all",
|
|
6286
6286
|
fetchPolicy: "no-cache",
|
|
6287
6287
|
variables: {
|
|
6288
|
-
inputs: c.map((
|
|
6289
|
-
name:
|
|
6290
|
-
layouts:
|
|
6291
|
-
workflowId:
|
|
6292
|
-
transactionId:
|
|
6293
|
-
previewImage:
|
|
6294
|
-
useThreeDimPreview:
|
|
6295
|
-
metadata:
|
|
6296
|
-
selectedVariants:
|
|
6288
|
+
inputs: c.map((s) => ({
|
|
6289
|
+
name: s.name,
|
|
6290
|
+
layouts: s.layouts,
|
|
6291
|
+
workflowId: s.workflowId,
|
|
6292
|
+
transactionId: s.transactionId,
|
|
6293
|
+
previewImage: s.previewImage,
|
|
6294
|
+
useThreeDimPreview: s.useThreeDimPreview,
|
|
6295
|
+
metadata: s.metadata,
|
|
6296
|
+
selectedVariants: s.selectedVariants
|
|
6297
6297
|
}))
|
|
6298
6298
|
},
|
|
6299
6299
|
context: {
|
|
6300
6300
|
headers: a
|
|
6301
6301
|
}
|
|
6302
|
-
})).data) == null ? void 0 :
|
|
6302
|
+
})).data) == null ? void 0 : o.designCreateMany;
|
|
6303
6303
|
}, Ze = (c, e, t) => {
|
|
6304
6304
|
const A = (n) => {
|
|
6305
6305
|
const i = {};
|
|
6306
6306
|
if (n.type === "Frame") {
|
|
6307
|
-
const
|
|
6308
|
-
if (!
|
|
6307
|
+
const o = c[n.stepName], s = n.data;
|
|
6308
|
+
if (!o || !o.image || s.hideImageInCart && t)
|
|
6309
6309
|
return i;
|
|
6310
|
-
i[`${n.stepTitle} image`] =
|
|
6310
|
+
i[`${n.stepTitle} image`] = o.image;
|
|
6311
6311
|
}
|
|
6312
6312
|
if (n.type === "Illustration") {
|
|
6313
|
-
const
|
|
6314
|
-
if (!
|
|
6313
|
+
const o = c[n.stepName], s = n.data;
|
|
6314
|
+
if (!o || s.hideColorsInCart && t || !o.colors)
|
|
6315
6315
|
return i;
|
|
6316
|
-
if (
|
|
6317
|
-
const r =
|
|
6316
|
+
if (o.colors.length > 0) {
|
|
6317
|
+
const r = o.colors.join(", ").toUpperCase();
|
|
6318
6318
|
i[`${n.stepTitle} colors`] = r;
|
|
6319
6319
|
}
|
|
6320
6320
|
}
|
|
6321
6321
|
if (n.type === "Module") {
|
|
6322
|
-
const
|
|
6323
|
-
if (!
|
|
6322
|
+
const o = c[n.stepName], s = n.data;
|
|
6323
|
+
if (!o || o.text === void 0 || o.text === null || s.hideTextInCart && t)
|
|
6324
6324
|
return i;
|
|
6325
|
-
i[`${n.stepTitle} text`] =
|
|
6325
|
+
i[`${n.stepTitle} text`] = o.text;
|
|
6326
6326
|
}
|
|
6327
6327
|
if (n.type === "Text") {
|
|
6328
|
-
const
|
|
6329
|
-
if (!
|
|
6328
|
+
const o = c[n.stepName];
|
|
6329
|
+
if (!o)
|
|
6330
6330
|
return i;
|
|
6331
|
-
const
|
|
6332
|
-
(!
|
|
6331
|
+
const s = n.data;
|
|
6332
|
+
(!s.hideTextInCart || !t && o.text !== void 0 && o.text !== null) && (i[`${n.stepTitle} text`] = o.text), o.color && (!s.hideColorInCart || !t) && (i[`${n.stepTitle} color`] = o.color);
|
|
6333
6333
|
}
|
|
6334
6334
|
return i;
|
|
6335
6335
|
}, a = {};
|
|
@@ -6355,26 +6355,26 @@ const Bn = async (c) => {
|
|
|
6355
6355
|
};
|
|
6356
6356
|
}
|
|
6357
6357
|
for (const i of Object.keys(c)) {
|
|
6358
|
-
const
|
|
6359
|
-
if (
|
|
6360
|
-
a[`${
|
|
6361
|
-
value:
|
|
6362
|
-
priceModifier:
|
|
6358
|
+
const o = c[i], s = e.steps.find((r) => r.stepTitle === i);
|
|
6359
|
+
if (o.length === 1)
|
|
6360
|
+
a[`${s == null ? void 0 : s.stepTitle} selection`] = {
|
|
6361
|
+
value: o[0].name,
|
|
6362
|
+
priceModifier: o[0].priceModifier
|
|
6363
6363
|
};
|
|
6364
|
-
else if (
|
|
6365
|
-
for (let r = 0; r <
|
|
6366
|
-
a[`${
|
|
6367
|
-
value:
|
|
6368
|
-
priceModifier:
|
|
6364
|
+
else if (o.length > 1)
|
|
6365
|
+
for (let r = 0; r < o.length; r++)
|
|
6366
|
+
a[`${s == null ? void 0 : s.stepTitle} selection ${r + 1}`] = {
|
|
6367
|
+
value: o[r].name,
|
|
6368
|
+
priceModifier: o[r].priceModifier
|
|
6369
6369
|
};
|
|
6370
6370
|
}
|
|
6371
6371
|
return a;
|
|
6372
|
-
}, lA = (c, e, t, A, a, n, i,
|
|
6372
|
+
}, lA = (c, e, t, A, a, n, i, o) => {
|
|
6373
6373
|
var w, E;
|
|
6374
|
-
const
|
|
6374
|
+
const s = e.basePrice || 0, r = c.priceModifierTotal || 0, g = wn(A, t, void 0, n), l = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id), d = {
|
|
6375
6375
|
additionalExternalProductId: (w = c.integrationProduct) == null ? void 0 : w.additionalExternalProductId,
|
|
6376
6376
|
additionalExternalVariantId: (E = c.integrationProduct) == null ? void 0 : E.additionalExternalVariantId,
|
|
6377
|
-
baseCost:
|
|
6377
|
+
baseCost: s,
|
|
6378
6378
|
designProductId: c.externalDesignProductId,
|
|
6379
6379
|
designProductVariantId: c.externalDesignProductVariantId,
|
|
6380
6380
|
event: "onComplete",
|
|
@@ -6383,7 +6383,7 @@ const Bn = async (c) => {
|
|
|
6383
6383
|
externalCartProductVariantId: c.externalCartProductVariantId,
|
|
6384
6384
|
lineItemImageUrl: i || "",
|
|
6385
6385
|
optionsCost: r,
|
|
6386
|
-
processExecutionId:
|
|
6386
|
+
processExecutionId: o,
|
|
6387
6387
|
quantity: c.quantity,
|
|
6388
6388
|
transactionId: c.id,
|
|
6389
6389
|
transactionOwnerId: l,
|
|
@@ -6392,7 +6392,7 @@ const Bn = async (c) => {
|
|
|
6392
6392
|
workflowViewerReadOnlyLink: c.workflowViewerReadOnlyLink || ""
|
|
6393
6393
|
};
|
|
6394
6394
|
return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
|
|
6395
|
-
}, BA = async (c, e, t, A, a, n, i,
|
|
6395
|
+
}, BA = async (c, e, t, A, a, n, i, o, s, r) => {
|
|
6396
6396
|
var F;
|
|
6397
6397
|
await (async () => {
|
|
6398
6398
|
var L;
|
|
@@ -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 =
|
|
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), C = async (M) => {
|
|
6416
6416
|
const Y = {};
|
|
6417
6417
|
let S = 0;
|
|
6418
6418
|
if (Object.keys(n).length > 0)
|
|
@@ -6445,7 +6445,7 @@ const Bn = async (c) => {
|
|
|
6445
6445
|
M,
|
|
6446
6446
|
Q[M].map((Y) => Y.id)
|
|
6447
6447
|
])
|
|
6448
|
-
), p = await
|
|
6448
|
+
), p = await o(w, a.id);
|
|
6449
6449
|
return {
|
|
6450
6450
|
designDetails: (() => {
|
|
6451
6451
|
const M = {
|
|
@@ -6476,9 +6476,9 @@ const Bn = async (c) => {
|
|
|
6476
6476
|
cartSelectionsWithPrices: u,
|
|
6477
6477
|
cartMetadata: E
|
|
6478
6478
|
};
|
|
6479
|
-
}, hn = async (c, e, t, A, a, n, i,
|
|
6479
|
+
}, hn = async (c, e, t, A, a, n, i, o, s, r, g) => {
|
|
6480
6480
|
var C, u;
|
|
6481
|
-
|
|
6481
|
+
s("workflow.steps.finish.finalize.buildingLayouts");
|
|
6482
6482
|
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await BA(
|
|
6483
6483
|
c,
|
|
6484
6484
|
e,
|
|
@@ -6486,15 +6486,15 @@ const Bn = async (c) => {
|
|
|
6486
6486
|
A,
|
|
6487
6487
|
n,
|
|
6488
6488
|
i,
|
|
6489
|
-
|
|
6489
|
+
o,
|
|
6490
6490
|
r,
|
|
6491
6491
|
g
|
|
6492
6492
|
);
|
|
6493
|
-
|
|
6493
|
+
s("workflow.steps.finish.finalize.creatingDesign");
|
|
6494
6494
|
const w = await Bn(B), E = (C = w == null ? void 0 : w.transaction) == null ? void 0 : C.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");
|
|
6498
6498
|
const h = w.transaction;
|
|
6499
6499
|
return lA(
|
|
6500
6500
|
h,
|
|
@@ -6508,52 +6508,52 @@ const Bn = async (c) => {
|
|
|
6508
6508
|
);
|
|
6509
6509
|
}, En = async (c, e, t) => {
|
|
6510
6510
|
e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
6511
|
-
c.map(async (
|
|
6512
|
-
await
|
|
6511
|
+
c.map(async (o) => {
|
|
6512
|
+
await o.workflowManager.outstandingRequestsPromise();
|
|
6513
6513
|
})
|
|
6514
6514
|
);
|
|
6515
6515
|
const a = await (async () => {
|
|
6516
6516
|
var r;
|
|
6517
|
-
const
|
|
6517
|
+
const s = await x.getShadowGraphqlClient().query({
|
|
6518
6518
|
query: Xt,
|
|
6519
6519
|
variables: { ids: c.map((g) => g.transaction.id) },
|
|
6520
6520
|
fetchPolicy: "no-cache",
|
|
6521
6521
|
errorPolicy: "all"
|
|
6522
6522
|
});
|
|
6523
|
-
return
|
|
6524
|
-
|
|
6525
|
-
}), null) : (r =
|
|
6523
|
+
return s.errors ? (s.errors.forEach((g) => {
|
|
6524
|
+
s.errors && console.log("Server Error:", g.message);
|
|
6525
|
+
}), null) : (r = s.data) != null && r.transactions ? s.data.transactions.map((g) => g.workflowState ?? null) : null;
|
|
6526
6526
|
})(), n = await Promise.all(
|
|
6527
|
-
c.map(async (
|
|
6528
|
-
|
|
6529
|
-
|
|
6530
|
-
|
|
6531
|
-
|
|
6532
|
-
|
|
6533
|
-
|
|
6534
|
-
|
|
6527
|
+
c.map(async (o, s) => await BA(
|
|
6528
|
+
o.workflowManager,
|
|
6529
|
+
o.workflow,
|
|
6530
|
+
o.layouts,
|
|
6531
|
+
o.getReducerState,
|
|
6532
|
+
o.transaction,
|
|
6533
|
+
o.workflowSelections,
|
|
6534
|
+
o.designName,
|
|
6535
6535
|
t ?? (() => Promise.resolve(void 0)),
|
|
6536
|
-
|
|
6537
|
-
a ? a[
|
|
6536
|
+
o.workflowMetadata,
|
|
6537
|
+
a ? a[s] : void 0
|
|
6538
6538
|
))
|
|
6539
6539
|
);
|
|
6540
6540
|
e("workflow.steps.finish.finalize.creatingDesign");
|
|
6541
|
-
const i = await dn(n.map((
|
|
6541
|
+
const i = await dn(n.map((o) => o.designDetails));
|
|
6542
6542
|
if (!i)
|
|
6543
6543
|
throw new Error("Failed to create designs");
|
|
6544
|
-
return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((
|
|
6544
|
+
return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((o, s) => {
|
|
6545
6545
|
var l;
|
|
6546
|
-
const r = c[
|
|
6546
|
+
const r = c[s], g = n[s], B = o.transaction;
|
|
6547
6547
|
return lA(
|
|
6548
6548
|
B,
|
|
6549
6549
|
r.product,
|
|
6550
6550
|
r.workflow,
|
|
6551
6551
|
g.cartSelectionsWithPrices,
|
|
6552
|
-
|
|
6552
|
+
o.sku,
|
|
6553
6553
|
g.cartMetadata,
|
|
6554
6554
|
//lineItemImageLink,
|
|
6555
6555
|
void 0,
|
|
6556
|
-
(l =
|
|
6556
|
+
(l = o.processExecution) == null ? void 0 : l.id
|
|
6557
6557
|
);
|
|
6558
6558
|
});
|
|
6559
6559
|
};
|
|
@@ -6647,16 +6647,16 @@ class me {
|
|
|
6647
6647
|
await Le.getSavedDesignByTransaction(
|
|
6648
6648
|
this.getWorkflowManager().getTransaction().id
|
|
6649
6649
|
) && this.save();
|
|
6650
|
-
}, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((i,
|
|
6650
|
+
}, 2500), this.getCanvasObjectURLAsync = async (n) => new Promise((i, o) => {
|
|
6651
6651
|
try {
|
|
6652
|
-
n.toBlob((
|
|
6653
|
-
if (
|
|
6654
|
-
const r = URL.createObjectURL(
|
|
6652
|
+
n.toBlob((s) => {
|
|
6653
|
+
if (s) {
|
|
6654
|
+
const r = URL.createObjectURL(s);
|
|
6655
6655
|
i(r);
|
|
6656
6656
|
}
|
|
6657
6657
|
});
|
|
6658
|
-
} catch (
|
|
6659
|
-
s
|
|
6658
|
+
} catch (s) {
|
|
6659
|
+
o(s);
|
|
6660
6660
|
}
|
|
6661
6661
|
}), !t.workflow)
|
|
6662
6662
|
throw new Error("No Workflow ID provided.");
|
|
@@ -6687,16 +6687,16 @@ class me {
|
|
|
6687
6687
|
t.singleVariantsRenderable,
|
|
6688
6688
|
t.delayWorkflowStateSync
|
|
6689
6689
|
), this.workflowManager.addSelectionCallback((n) => {
|
|
6690
|
-
const i = n.traversableScenes.map((
|
|
6691
|
-
const
|
|
6690
|
+
const i = n.traversableScenes.map((o) => {
|
|
6691
|
+
const s = o.renderableSteps.map((r) => r.stepName);
|
|
6692
6692
|
return {
|
|
6693
|
-
id:
|
|
6694
|
-
title:
|
|
6695
|
-
renderableSteps:
|
|
6696
|
-
workflowScene:
|
|
6693
|
+
id: o.name,
|
|
6694
|
+
title: o.title,
|
|
6695
|
+
renderableSteps: s,
|
|
6696
|
+
workflowScene: o
|
|
6697
6697
|
};
|
|
6698
6698
|
});
|
|
6699
|
-
this.renderableScenes = i, this.renderableSceneCallbacks.forEach((
|
|
6699
|
+
this.renderableScenes = i, this.renderableSceneCallbacks.forEach((o) => o(i));
|
|
6700
6700
|
}), this.currentPriceBreak = this.priceBreakToBeApplied();
|
|
6701
6701
|
}
|
|
6702
6702
|
getBundle() {
|
|
@@ -6727,10 +6727,10 @@ class me {
|
|
|
6727
6727
|
}
|
|
6728
6728
|
let n = 2048;
|
|
6729
6729
|
t && t <= 2048 && (n = t);
|
|
6730
|
-
const i = Ye(n, n),
|
|
6730
|
+
const i = Ye(n, n), o = this.commandContext.getAllLayouts(), s = A.defaultPreviewPanelIndex || 0, r = A.panels[s], g = o.find((Q) => {
|
|
6731
6731
|
var m;
|
|
6732
6732
|
return ((m = Q.layoutState) == null ? void 0 : m.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,
|
|
6736
6736
|
width: g.layoutState.layout.previewRegion.width,
|
|
@@ -6841,13 +6841,13 @@ class me {
|
|
|
6841
6841
|
);
|
|
6842
6842
|
}
|
|
6843
6843
|
async copySelectionsViaGlobalConfiguration(e, t, A) {
|
|
6844
|
-
const a = await e.getGlobalProperties(), n = A == null ? void 0 : A.map((r) => r.getId()), i = this.getSteps().filter((r) => n === void 0 || n.includes(r.getId())),
|
|
6844
|
+
const a = await e.getGlobalProperties(), n = A == null ? void 0 : A.map((r) => r.getId()), i = this.getSteps().filter((r) => n === void 0 || n.includes(r.getId())), o = t.getSteps(), s = (r) => a.find((g) => g.getRawProperty().name === r.aspectName);
|
|
6845
6845
|
i.forEach((r) => {
|
|
6846
6846
|
const g = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
|
|
6847
|
-
B !== void 0 && (B.forEach((l) => g.add(JSON.stringify(l))),
|
|
6847
|
+
B !== void 0 && (B.forEach((l) => g.add(JSON.stringify(l))), o.forEach((l) => {
|
|
6848
6848
|
const d = l.getRaw().globalPropertyAspectConfigurations;
|
|
6849
6849
|
d !== void 0 && d.forEach((w) => {
|
|
6850
|
-
const E =
|
|
6850
|
+
const E = s(w), h = g.has(JSON.stringify(w));
|
|
6851
6851
|
if (h && (E == null ? void 0 : E.getType()) === "Option") {
|
|
6852
6852
|
const C = l.getCurrentVariant();
|
|
6853
6853
|
if (!C)
|
|
@@ -6882,8 +6882,8 @@ class me {
|
|
|
6882
6882
|
return this.assignCustomerDetails({ emailAddress: e.email });
|
|
6883
6883
|
}
|
|
6884
6884
|
async assignCustomerDetails(e) {
|
|
6885
|
-
var i,
|
|
6886
|
-
const A = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.getWorkflowManager().getTransaction().id), n = (
|
|
6885
|
+
var i, o, s;
|
|
6886
|
+
const A = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.getWorkflowManager().getTransaction().id), n = (s = (o = (i = (await x.getShadowGraphqlClient().mutate({
|
|
6887
6887
|
mutation: Cn,
|
|
6888
6888
|
variables: {
|
|
6889
6889
|
id: this.getWorkflowManager().getTransaction().id,
|
|
@@ -6893,7 +6893,7 @@ class me {
|
|
|
6893
6893
|
context: {
|
|
6894
6894
|
transactionOwnerId: A
|
|
6895
6895
|
}
|
|
6896
|
-
})).data) == null ? void 0 : i.transactionAddStakeholder) == null ? void 0 :
|
|
6896
|
+
})).data) == null ? void 0 : i.transactionAddStakeholder) == null ? void 0 : o.stakeholders) == null ? void 0 : s.find(
|
|
6897
6897
|
(r) => {
|
|
6898
6898
|
var g;
|
|
6899
6899
|
return ((g = r.customer) == null ? void 0 : g.emailAddress) === e.emailAddress;
|
|
@@ -6916,11 +6916,11 @@ class me {
|
|
|
6916
6916
|
throw new b("State undefined!");
|
|
6917
6917
|
const a = {
|
|
6918
6918
|
title: await (async () => {
|
|
6919
|
-
var
|
|
6919
|
+
var s;
|
|
6920
6920
|
if (e)
|
|
6921
6921
|
return e;
|
|
6922
|
-
const n = this.getWorkflowManager().getTransaction().id,
|
|
6923
|
-
return
|
|
6922
|
+
const n = this.getWorkflowManager().getTransaction().id, o = (s = (await Le.getSavedDesigns()).find((r) => r.transactionId === n)) == null ? void 0 : s.title;
|
|
6923
|
+
return o || "My design";
|
|
6924
6924
|
})(),
|
|
6925
6925
|
thumbnail: await this.createPreviewImage(!1, 256),
|
|
6926
6926
|
transactionId: this.getWorkflowManager().getTransaction().id,
|
|
@@ -6933,11 +6933,11 @@ class me {
|
|
|
6933
6933
|
return await Le.addDesign(a), a;
|
|
6934
6934
|
}
|
|
6935
6935
|
async copy() {
|
|
6936
|
-
var
|
|
6936
|
+
var o;
|
|
6937
6937
|
const e = le(this.getCommandContext().getState());
|
|
6938
6938
|
if (!e)
|
|
6939
6939
|
throw new b("Internal state is undefined! Cannot copy experience!");
|
|
6940
|
-
const t = JSON.stringify(e.transaction), A = this.getWorkflowManager().getWorkflow(), a = new Si({}), n = (
|
|
6940
|
+
const t = JSON.stringify(e.transaction), A = this.getWorkflowManager().getWorkflow(), a = new Si({}), n = (o = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : o.id;
|
|
6941
6941
|
if (!n)
|
|
6942
6942
|
throw new b("Integration product id is undefined!");
|
|
6943
6943
|
return await a.initFromIntegrationProduct(n), await a.getWorkflowExperience(A.id, t, void 0);
|
|
@@ -6970,16 +6970,16 @@ class me {
|
|
|
6970
6970
|
var a;
|
|
6971
6971
|
const e = /* @__PURE__ */ new Map(), t = this.getWorkflowManager().getWorkflowMetadata(), A = this.getWorkflowManager().getWorkflowSelections();
|
|
6972
6972
|
return Object.keys(t).forEach((n) => {
|
|
6973
|
-
const i = this.workflowManager.getWorkflow().steps.find((
|
|
6973
|
+
const i = this.workflowManager.getWorkflow().steps.find((s) => s.stepName === n);
|
|
6974
6974
|
if (!i)
|
|
6975
6975
|
return;
|
|
6976
6976
|
e.has(i.stepTitle) || e.set(i.stepTitle, {});
|
|
6977
|
-
const
|
|
6978
|
-
Object.keys(
|
|
6979
|
-
e.get(i.stepTitle)[
|
|
6977
|
+
const o = t[n];
|
|
6978
|
+
Object.keys(o).forEach((s) => {
|
|
6979
|
+
e.get(i.stepTitle)[s] = o[s];
|
|
6980
6980
|
});
|
|
6981
6981
|
}), (a = Object.keys(A)) == null || a.forEach((n) => {
|
|
6982
|
-
const i = this.workflowManager.getWorkflow().steps.find((
|
|
6982
|
+
const i = this.workflowManager.getWorkflow().steps.find((o) => o.stepName === n);
|
|
6983
6983
|
i && (e.has(i.stepTitle) || e.set(i.stepTitle, {}), e.get(i.stepTitle).selection = A[n].selections[0].name);
|
|
6984
6984
|
}), e;
|
|
6985
6985
|
}
|
|
@@ -7035,9 +7035,9 @@ const mn = [
|
|
|
7035
7035
|
"tref",
|
|
7036
7036
|
"tspan"
|
|
7037
7037
|
], pn = async (c, e, t) => {
|
|
7038
|
-
const A = e.data, a = t.data.baseUrl, n = A.assetUrl.replace("localhost", "localstack"), i = a.slice(0, 4) === "http" ? "" : "https://",
|
|
7039
|
-
|
|
7040
|
-
const
|
|
7038
|
+
const A = e.data, a = t.data.baseUrl, n = A.assetUrl.replace("localhost", "localstack"), i = a.slice(0, 4) === "http" ? "" : "https://", o = new URL(i + a);
|
|
7039
|
+
o.searchParams.append("video", mt(JSON.stringify([{ href: n }]))), o.pathname = o.pathname + (o.pathname.slice(-1) === "/" ? "" : "/");
|
|
7040
|
+
const s = o.toString(), g = `data:image/svg+xml;base64,${mt(await zt(s, { type: "svg" }))}`, B = (d) => {
|
|
7041
7041
|
const w = c.find((h) => h.panelId === d.panelId);
|
|
7042
7042
|
if (!w)
|
|
7043
7043
|
throw new z(d);
|
|
@@ -7064,16 +7064,16 @@ const mn = [
|
|
|
7064
7064
|
}, In = async (c, e, t, A) => {
|
|
7065
7065
|
const a = t.data, n = a.assetUrl, i = await Ve(n);
|
|
7066
7066
|
try {
|
|
7067
|
-
const
|
|
7068
|
-
|
|
7069
|
-
const
|
|
7067
|
+
const o = UA(a, A.option);
|
|
7068
|
+
o && (e[A.stepName] = { selectedVariants: [o] });
|
|
7069
|
+
const s = async (r) => {
|
|
7070
7070
|
var E;
|
|
7071
7071
|
const g = await vA(
|
|
7072
7072
|
r || {
|
|
7073
7073
|
width: 1,
|
|
7074
7074
|
height: 1
|
|
7075
7075
|
},
|
|
7076
|
-
(E =
|
|
7076
|
+
(E = o == null ? void 0 : o.asset) == null ? void 0 : E.fileLink
|
|
7077
7077
|
), B = await _e(g), l = J(), d = c.find((h) => h.panelId === r.panelId);
|
|
7078
7078
|
if (!d)
|
|
7079
7079
|
throw new z(r);
|
|
@@ -7110,9 +7110,9 @@ const mn = [
|
|
|
7110
7110
|
new xt(l, i, w)
|
|
7111
7111
|
];
|
|
7112
7112
|
};
|
|
7113
|
-
return (await Promise.all(A.data.regions.map((r) =>
|
|
7114
|
-
} catch (
|
|
7115
|
-
return console.error(
|
|
7113
|
+
return (await Promise.all(A.data.regions.map((r) => s(r)))).flat();
|
|
7114
|
+
} catch (o) {
|
|
7115
|
+
return console.error(o), [];
|
|
7116
7116
|
}
|
|
7117
7117
|
}, fn = async (c, e, t, A) => {
|
|
7118
7118
|
var m, p;
|
|
@@ -7125,10 +7125,10 @@ const mn = [
|
|
|
7125
7125
|
if (!i.asset)
|
|
7126
7126
|
return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7127
7127
|
e[A.stepName] = { selectedVariants: [i] };
|
|
7128
|
-
const
|
|
7129
|
-
if (!
|
|
7128
|
+
const o = (p = i.asset) == null ? void 0 : p.fileLink;
|
|
7129
|
+
if (!o)
|
|
7130
7130
|
return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
|
|
7131
|
-
const
|
|
7131
|
+
const s = await Z(o, !0), r = /<svg.*?<\/svg>/s, g = s.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", w = kt().parseFromString(B, "image/svg+xml").firstElementChild;
|
|
7132
7132
|
if (!w)
|
|
7133
7133
|
return console.error("Failed to read SVG."), [];
|
|
7134
7134
|
bt(w);
|
|
@@ -7184,34 +7184,34 @@ const mn = [
|
|
|
7184
7184
|
return console.error(I), [];
|
|
7185
7185
|
}
|
|
7186
7186
|
}, Dn = async (c, e, t) => {
|
|
7187
|
-
const A = await rA(t.data.module), a = e.data, n = (
|
|
7188
|
-
const r = c.find((B) => B.panelId ===
|
|
7187
|
+
const A = await rA(t.data.module), a = e.data, n = (o, s) => {
|
|
7188
|
+
const r = c.find((B) => B.panelId === s.panelId);
|
|
7189
7189
|
if (!r)
|
|
7190
|
-
throw new z(
|
|
7190
|
+
throw new z(s);
|
|
7191
7191
|
const g = J();
|
|
7192
7192
|
return new T(
|
|
7193
7193
|
{
|
|
7194
7194
|
colors: {},
|
|
7195
7195
|
id: g,
|
|
7196
|
-
svg:
|
|
7196
|
+
svg: o,
|
|
7197
7197
|
type: k.Illustration,
|
|
7198
|
-
y:
|
|
7199
|
-
x:
|
|
7200
|
-
rotation:
|
|
7201
|
-
width:
|
|
7202
|
-
height:
|
|
7203
|
-
layer:
|
|
7204
|
-
layerIndex:
|
|
7198
|
+
y: s.top,
|
|
7199
|
+
x: s.left,
|
|
7200
|
+
rotation: s.rotation,
|
|
7201
|
+
width: s.width,
|
|
7202
|
+
height: s.height,
|
|
7203
|
+
layer: s.layer,
|
|
7204
|
+
layerIndex: s.layerIndex
|
|
7205
7205
|
},
|
|
7206
7206
|
r
|
|
7207
7207
|
);
|
|
7208
7208
|
}, i = t.data.regions;
|
|
7209
7209
|
try {
|
|
7210
7210
|
return i.map(
|
|
7211
|
-
(
|
|
7211
|
+
(o) => n(A.svgPrint(a.text, o), o)
|
|
7212
7212
|
);
|
|
7213
|
-
} catch (
|
|
7214
|
-
return console.error(
|
|
7213
|
+
} catch (o) {
|
|
7214
|
+
return console.error(o), [];
|
|
7215
7215
|
}
|
|
7216
7216
|
}, Fn = async (c, e, t, A) => {
|
|
7217
7217
|
var g, B;
|
|
@@ -7224,10 +7224,10 @@ const mn = [
|
|
|
7224
7224
|
if (!i.asset)
|
|
7225
7225
|
return console.error(`No asset for variant with ID: ${a.pictureVariantId}`), [];
|
|
7226
7226
|
e[A.stepName] = { selectedVariants: [i] };
|
|
7227
|
-
const
|
|
7228
|
-
if (!
|
|
7227
|
+
const o = (B = i.asset) == null ? void 0 : B.fileLink;
|
|
7228
|
+
if (!o)
|
|
7229
7229
|
return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
|
|
7230
|
-
const
|
|
7230
|
+
const s = (l) => {
|
|
7231
7231
|
const d = c.find((E) => E.panelId === l.panelId);
|
|
7232
7232
|
if (!d)
|
|
7233
7233
|
throw new z(l);
|
|
@@ -7235,7 +7235,7 @@ const mn = [
|
|
|
7235
7235
|
return new T(
|
|
7236
7236
|
{
|
|
7237
7237
|
id: w,
|
|
7238
|
-
src:
|
|
7238
|
+
src: o,
|
|
7239
7239
|
type: k.Image,
|
|
7240
7240
|
y: l.top,
|
|
7241
7241
|
x: l.left,
|
|
@@ -7251,7 +7251,7 @@ const mn = [
|
|
|
7251
7251
|
);
|
|
7252
7252
|
}, r = A.data.regions;
|
|
7253
7253
|
try {
|
|
7254
|
-
return r.map(
|
|
7254
|
+
return r.map(s);
|
|
7255
7255
|
} catch (l) {
|
|
7256
7256
|
return console.error(l), [];
|
|
7257
7257
|
}
|
|
@@ -7264,7 +7264,7 @@ const mn = [
|
|
|
7264
7264
|
if (!i)
|
|
7265
7265
|
return console.error(`No variant with ID: ${a.colorVariantId}`), [];
|
|
7266
7266
|
e[A.stepName] = { selectedVariants: [i] };
|
|
7267
|
-
const
|
|
7267
|
+
const o = (g) => {
|
|
7268
7268
|
const B = c.find((h) => h.panelId === g.panelId);
|
|
7269
7269
|
if (!B)
|
|
7270
7270
|
throw new z(g);
|
|
@@ -7306,9 +7306,9 @@ const mn = [
|
|
|
7306
7306
|
},
|
|
7307
7307
|
B
|
|
7308
7308
|
);
|
|
7309
|
-
},
|
|
7309
|
+
}, s = A.data.regions;
|
|
7310
7310
|
try {
|
|
7311
|
-
return
|
|
7311
|
+
return s.map(o);
|
|
7312
7312
|
} catch (g) {
|
|
7313
7313
|
return console.error(g), [];
|
|
7314
7314
|
}
|
|
@@ -7316,17 +7316,17 @@ const mn = [
|
|
|
7316
7316
|
const A = [], n = (() => {
|
|
7317
7317
|
var r, g;
|
|
7318
7318
|
return e.type === y.ProductOverlay ? t || ((r = e.data.asset) == null ? void 0 : r.fileLink) || "" : ((g = e.data.asset) == null ? void 0 : g.fileLink) || "";
|
|
7319
|
-
})(),
|
|
7320
|
-
if (
|
|
7319
|
+
})(), o = (() => n.endsWith(".jpeg") || n.endsWith(".jpg") || n.endsWith(".png") ? k.Image : n.endsWith(".svg") ? k.Illustration : k.Illustration)(), s = e.data.regions;
|
|
7320
|
+
if (o === "image")
|
|
7321
7321
|
try {
|
|
7322
|
-
|
|
7322
|
+
s.forEach((r) => {
|
|
7323
7323
|
const g = c.find((l) => l.panelId === r.panelId);
|
|
7324
7324
|
if (!g)
|
|
7325
7325
|
throw new z(r);
|
|
7326
7326
|
const B = {
|
|
7327
7327
|
id: J(),
|
|
7328
7328
|
src: n,
|
|
7329
|
-
type:
|
|
7329
|
+
type: o,
|
|
7330
7330
|
y: r.top,
|
|
7331
7331
|
x: r.left,
|
|
7332
7332
|
width: r.width,
|
|
@@ -7349,10 +7349,10 @@ const mn = [
|
|
|
7349
7349
|
const r = await Z(n, !0), g = (B) => {
|
|
7350
7350
|
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], w = (d == null ? void 0 : d.length) > 0 ? d[0] : "", C = kt().parseFromString(w, "image/svg+xml").firstElementChild;
|
|
7351
7351
|
if (!C)
|
|
7352
|
-
throw new
|
|
7352
|
+
throw new se("Failed to read SVG.");
|
|
7353
7353
|
return bt(C), Jt().serializeToString(C);
|
|
7354
7354
|
};
|
|
7355
|
-
|
|
7355
|
+
s.forEach((B) => {
|
|
7356
7356
|
const l = c.find((w) => w.panelId === B.panelId);
|
|
7357
7357
|
if (!l)
|
|
7358
7358
|
throw new z(B);
|
|
@@ -7362,7 +7362,7 @@ const mn = [
|
|
|
7362
7362
|
asset_key: n,
|
|
7363
7363
|
svg: g(r),
|
|
7364
7364
|
colors: {},
|
|
7365
|
-
type:
|
|
7365
|
+
type: o,
|
|
7366
7366
|
y: B.top,
|
|
7367
7367
|
x: B.left,
|
|
7368
7368
|
width: B.width,
|
|
@@ -7380,7 +7380,7 @@ const mn = [
|
|
|
7380
7380
|
}
|
|
7381
7381
|
return A;
|
|
7382
7382
|
}, Sn = async (c, e, t, A) => {
|
|
7383
|
-
const a = [], n = t.data, i = 30,
|
|
7383
|
+
const a = [], n = t.data, i = 30, o = (h) => h.vertical ? "center" : h.textAlign || "center", s = () => {
|
|
7384
7384
|
var f;
|
|
7385
7385
|
const h = A.option;
|
|
7386
7386
|
if (!h)
|
|
@@ -7393,7 +7393,7 @@ const mn = [
|
|
|
7393
7393
|
if (u)
|
|
7394
7394
|
return u;
|
|
7395
7395
|
}, g = await (async () => {
|
|
7396
|
-
const h =
|
|
7396
|
+
const h = s();
|
|
7397
7397
|
if (!h)
|
|
7398
7398
|
return;
|
|
7399
7399
|
const C = await tt(h);
|
|
@@ -7418,7 +7418,7 @@ const mn = [
|
|
|
7418
7418
|
const u = {
|
|
7419
7419
|
stepName: t.name,
|
|
7420
7420
|
id: J(),
|
|
7421
|
-
align:
|
|
7421
|
+
align: o(A.data),
|
|
7422
7422
|
curved: A.data.curved,
|
|
7423
7423
|
fill: n.color || w || "#000000",
|
|
7424
7424
|
fontData: g,
|
|
@@ -7480,18 +7480,18 @@ const mn = [
|
|
|
7480
7480
|
}) : !0, Pn = async (c, e, t, A) => {
|
|
7481
7481
|
const a = [], n = {};
|
|
7482
7482
|
for (const i of c) {
|
|
7483
|
-
const
|
|
7484
|
-
if (
|
|
7485
|
-
switch (
|
|
7483
|
+
const o = e.steps.find((s) => s.stepName === i.name);
|
|
7484
|
+
if (o)
|
|
7485
|
+
switch (o.type) {
|
|
7486
7486
|
case y.DigitalContent:
|
|
7487
7487
|
a.push(
|
|
7488
|
-
...await pn(t, i,
|
|
7488
|
+
...await pn(t, i, o)
|
|
7489
7489
|
);
|
|
7490
7490
|
break;
|
|
7491
7491
|
case y.Frame:
|
|
7492
7492
|
case y.Photo:
|
|
7493
7493
|
a.push(
|
|
7494
|
-
...await In(t, n, i,
|
|
7494
|
+
...await In(t, n, i, o)
|
|
7495
7495
|
);
|
|
7496
7496
|
break;
|
|
7497
7497
|
case y.Illustration:
|
|
@@ -7500,26 +7500,26 @@ const mn = [
|
|
|
7500
7500
|
t,
|
|
7501
7501
|
n,
|
|
7502
7502
|
i,
|
|
7503
|
-
|
|
7503
|
+
o
|
|
7504
7504
|
)
|
|
7505
7505
|
);
|
|
7506
7506
|
break;
|
|
7507
7507
|
case y.Module:
|
|
7508
|
-
a.push(...await Dn(t, i,
|
|
7508
|
+
a.push(...await Dn(t, i, o));
|
|
7509
7509
|
break;
|
|
7510
7510
|
case y.Picture:
|
|
7511
7511
|
a.push(
|
|
7512
|
-
...await Fn(t, n, i,
|
|
7512
|
+
...await Fn(t, n, i, o)
|
|
7513
7513
|
);
|
|
7514
7514
|
break;
|
|
7515
7515
|
case y.Shape:
|
|
7516
7516
|
a.push(
|
|
7517
|
-
...await yn(t, n, i,
|
|
7517
|
+
...await yn(t, n, i, o)
|
|
7518
7518
|
);
|
|
7519
7519
|
break;
|
|
7520
7520
|
case y.Text:
|
|
7521
7521
|
a.push(
|
|
7522
|
-
...await Sn(t, n, i,
|
|
7522
|
+
...await Sn(t, n, i, o)
|
|
7523
7523
|
);
|
|
7524
7524
|
break;
|
|
7525
7525
|
}
|
|
@@ -7628,8 +7628,8 @@ class Hn {
|
|
|
7628
7628
|
}
|
|
7629
7629
|
}
|
|
7630
7630
|
class Rn extends Zt {
|
|
7631
|
-
constructor(e, t, A, a, n, i,
|
|
7632
|
-
super(), this.layoutId = e, this.ctx = t, this.nonPOTSupport = A, this.onRender = a, this.workflow = n, this.layouts = i, this.productOverlayImageUrl =
|
|
7631
|
+
constructor(e, t, A, a, n, i, o) {
|
|
7632
|
+
super(), this.layoutId = e, this.ctx = t, this.nonPOTSupport = A, this.onRender = a, this.workflow = n, this.layouts = i, this.productOverlayImageUrl = o;
|
|
7633
7633
|
}
|
|
7634
7634
|
/**
|
|
7635
7635
|
* Returns the resolution expected for generated textures.
|
|
@@ -7668,14 +7668,14 @@ class Rn extends Zt {
|
|
|
7668
7668
|
if (!e)
|
|
7669
7669
|
return;
|
|
7670
7670
|
const t = e.layoutState.elements || [], A = e.layoutState.layout.width, a = e.layoutState.layout.height, n = this.getDynamicTextureResolution().width, i = this.getDynamicTextureResolution().height;
|
|
7671
|
-
let
|
|
7671
|
+
let o, s;
|
|
7672
7672
|
if (this.nonPOTSupport) {
|
|
7673
7673
|
const l = n / i;
|
|
7674
|
-
A / a < l ? (
|
|
7675
|
-
const w = this.resizeFit({ width:
|
|
7676
|
-
|
|
7674
|
+
A / a < l ? (o = n, s = a * (n / A)) : (o = A * (i / a), s = i);
|
|
7675
|
+
const w = this.resizeFit({ width: o, height: s });
|
|
7676
|
+
o = w.width, s = w.height;
|
|
7677
7677
|
} else
|
|
7678
|
-
|
|
7678
|
+
o = this.getDynamicTextureResolution().width, s = this.getDynamicTextureResolution().height;
|
|
7679
7679
|
const r = Ht(e.layoutState.layout, t, {
|
|
7680
7680
|
renderingConfiguration: { purpose: Rt.ThreeD }
|
|
7681
7681
|
}), g = Ut(r), B = await Ot.from(this.ctx, g, {
|
|
@@ -7690,7 +7690,7 @@ class Rn extends Zt {
|
|
|
7690
7690
|
DOMParser: Gt(),
|
|
7691
7691
|
fetch: $e
|
|
7692
7692
|
});
|
|
7693
|
-
B.resize(
|
|
7693
|
+
B.resize(o, s), await B.render(), this.onRender();
|
|
7694
7694
|
}
|
|
7695
7695
|
}
|
|
7696
7696
|
const Li = (c, e) => {
|
|
@@ -7709,7 +7709,7 @@ const Li = (c, e) => {
|
|
|
7709
7709
|
serializableWorkflow: { steps: [] },
|
|
7710
7710
|
layouts: {}
|
|
7711
7711
|
};
|
|
7712
|
-
a = new v(t.map((
|
|
7712
|
+
a = new v(t.map((s) => new kA(s))).apply(a);
|
|
7713
7713
|
const i = await Pn(c, e, t, A);
|
|
7714
7714
|
return new v(i).apply(a);
|
|
7715
7715
|
}, Un = D`
|
|
@@ -8100,9 +8100,9 @@ class Bt {
|
|
|
8100
8100
|
(a) => a.getSteps().filter((n) => {
|
|
8101
8101
|
var i;
|
|
8102
8102
|
return n.getOverrideGlobalPropertyConfiguration(this.property.type) ? !1 : (i = n.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : i.some(
|
|
8103
|
-
(
|
|
8104
|
-
var
|
|
8105
|
-
return
|
|
8103
|
+
(o) => {
|
|
8104
|
+
var s, r;
|
|
8105
|
+
return o.globalPropertyConfigurationId === ((r = (s = this.bundle.getProductCollection()) == null ? void 0 : s.getResource().globalPropertyConfiguration) == null ? void 0 : r.id) && o.aspectName === this.property.name;
|
|
8106
8106
|
}
|
|
8107
8107
|
);
|
|
8108
8108
|
})
|
|
@@ -8134,7 +8134,7 @@ class Zn extends Bt {
|
|
|
8134
8134
|
]);
|
|
8135
8135
|
}
|
|
8136
8136
|
async canUseBackgroundRemover() {
|
|
8137
|
-
return this.bundle.getClient().canUseAddon(
|
|
8137
|
+
return this.bundle.getClient().canUseAddon(ot.BackgroundRemover);
|
|
8138
8138
|
}
|
|
8139
8139
|
/**
|
|
8140
8140
|
* Removes the background from an image, stores it in the state, and returns the new asset.
|
|
@@ -8153,8 +8153,8 @@ class Zn extends Bt {
|
|
|
8153
8153
|
...A.getAspectStorage(this.property.name),
|
|
8154
8154
|
backgroundRemovedAssetKey: a.key,
|
|
8155
8155
|
useOriginalAsset: !e
|
|
8156
|
-
},
|
|
8157
|
-
return e &&
|
|
8156
|
+
}, s = [e ? A.setAspect(this.property.name, a.key, i) : A.setAspectStorage(this.property.name, i)];
|
|
8157
|
+
return e && s.push(this.applyImageSelection(a, void 0, !1)), await Promise.all(s), this.updateSharedStepStorage(i), a;
|
|
8158
8158
|
}
|
|
8159
8159
|
/**
|
|
8160
8160
|
* Returns `true` if the state has an image assigned, otherwise `false`.
|
|
@@ -8203,11 +8203,11 @@ class Zn extends Bt {
|
|
|
8203
8203
|
const n = {
|
|
8204
8204
|
...a,
|
|
8205
8205
|
useOriginalAsset: e
|
|
8206
|
-
}, i = e ? a == null ? void 0 : a.originalAssetKey : a == null ? void 0 : a.backgroundRemovedAssetKey,
|
|
8206
|
+
}, i = e ? a == null ? void 0 : a.originalAssetKey : a == null ? void 0 : a.backgroundRemovedAssetKey, o = [A.setAspect(this.property.name, i || "", n)];
|
|
8207
8207
|
if (e)
|
|
8208
|
-
|
|
8208
|
+
o.push(this.applyImageSelection(t, void 0, !1));
|
|
8209
8209
|
else {
|
|
8210
|
-
const
|
|
8210
|
+
const s = async () => {
|
|
8211
8211
|
const r = await this.getBackgroundRemovedImage();
|
|
8212
8212
|
if (!r)
|
|
8213
8213
|
throw new Error(
|
|
@@ -8215,7 +8215,7 @@ class Zn extends Bt {
|
|
|
8215
8215
|
);
|
|
8216
8216
|
this.applyImageSelection(r, void 0, !1);
|
|
8217
8217
|
};
|
|
8218
|
-
|
|
8218
|
+
o.push(s());
|
|
8219
8219
|
}
|
|
8220
8220
|
this.updateSharedStepStorage(n);
|
|
8221
8221
|
}
|
|
@@ -8241,9 +8241,9 @@ class Zn extends Bt {
|
|
|
8241
8241
|
if (a.getOverrideGlobalPropertyConfiguration(this.property.type))
|
|
8242
8242
|
return;
|
|
8243
8243
|
((i = a.getRaw().globalPropertyAspectConfigurations) == null ? void 0 : i.some(
|
|
8244
|
-
(
|
|
8245
|
-
var
|
|
8246
|
-
return
|
|
8244
|
+
(o) => {
|
|
8245
|
+
var s, r;
|
|
8246
|
+
return o.globalPropertyConfigurationId === ((r = (s = this.bundle.getProductCollection()) == null ? void 0 : s.getResource().globalPropertyConfiguration) == null ? void 0 : r.id) && o.aspectName === this.property.name;
|
|
8247
8247
|
}
|
|
8248
8248
|
)) && A.getWorkflowManager().updateStorage(a.getId(), { framePatternData: e });
|
|
8249
8249
|
})
|
|
@@ -8301,8 +8301,8 @@ class hA extends Bt {
|
|
|
8301
8301
|
} else {
|
|
8302
8302
|
const a = (t = this.optionResource.variants) == null ? void 0 : t.find(
|
|
8303
8303
|
(n) => {
|
|
8304
|
-
var i,
|
|
8305
|
-
return n.id === ((
|
|
8304
|
+
var i, o;
|
|
8305
|
+
return n.id === ((o = (i = this.optionResource) == null ? void 0 : i.defaultVariant) == null ? void 0 : o.id);
|
|
8306
8306
|
}
|
|
8307
8307
|
);
|
|
8308
8308
|
return a ? new X(a) : void 0;
|
|
@@ -8439,10 +8439,10 @@ class ai {
|
|
|
8439
8439
|
throw new Error("Global property state not initialized");
|
|
8440
8440
|
if (!this.configuration)
|
|
8441
8441
|
throw new Error("Global property configuration not linked to the state manager.");
|
|
8442
|
-
const a = this.configuration.aspects.find((
|
|
8442
|
+
const a = this.configuration.aspects.find((o) => o.name === e);
|
|
8443
8443
|
if (!a)
|
|
8444
8444
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
8445
|
-
const n = le(this.globalPropertyState), i = this.globalPropertyState.aspects.find((
|
|
8445
|
+
const n = le(this.globalPropertyState), i = this.globalPropertyState.aspects.find((o) => o.name === e);
|
|
8446
8446
|
i ? (i.value = t, A !== void 0 && (i.type = a.type, i.storage = A !== null ? A : void 0)) : this.globalPropertyState.aspects.push({
|
|
8447
8447
|
name: e,
|
|
8448
8448
|
value: t,
|
|
@@ -8549,7 +8549,7 @@ class ni {
|
|
|
8549
8549
|
if (!this.state || !((i = e == null ? void 0 : e.getWorkflowManager()) != null && i.getModelContainer()))
|
|
8550
8550
|
return;
|
|
8551
8551
|
const t = this.state.transactions.find(
|
|
8552
|
-
(
|
|
8552
|
+
(o) => o.transactionId === e.getWorkflowManager().getTransaction().id
|
|
8553
8553
|
);
|
|
8554
8554
|
if (!t)
|
|
8555
8555
|
return;
|
|
@@ -8578,8 +8578,8 @@ class ni {
|
|
|
8578
8578
|
});
|
|
8579
8579
|
}
|
|
8580
8580
|
activateWorkflowExperienceTransform(e, t) {
|
|
8581
|
-
var
|
|
8582
|
-
if (!((
|
|
8581
|
+
var s, r;
|
|
8582
|
+
if (!((s = e == null ? void 0 : e.getWorkflowManager()) != null && s.getModelContainer()) || !this.state)
|
|
8583
8583
|
return;
|
|
8584
8584
|
const A = e.getWorkflowManager().getTransaction().id, a = this.state.transactions.find((g) => g.transactionId === A), n = (r = a == null ? void 0 : a.transforms) == null ? void 0 : r[t];
|
|
8585
8585
|
if (!n)
|
|
@@ -8587,8 +8587,8 @@ class ni {
|
|
|
8587
8587
|
const i = this.flipTransform(
|
|
8588
8588
|
n,
|
|
8589
8589
|
e.getWorkflowManager().getPreviewService()
|
|
8590
|
-
),
|
|
8591
|
-
|
|
8590
|
+
), o = e.getWorkflowManager().getModelContainer();
|
|
8591
|
+
o.position = i.position, o.rotation = i.rotation, o.scale = i.scale, a.activeTransform = t;
|
|
8592
8592
|
}
|
|
8593
8593
|
removeStateForTransaction(e) {
|
|
8594
8594
|
if (!this.state || !this.state.transactions)
|
|
@@ -8662,7 +8662,7 @@ class ii {
|
|
|
8662
8662
|
}
|
|
8663
8663
|
getTransformCollection() {
|
|
8664
8664
|
if (this.collection.transformCollection)
|
|
8665
|
-
return new
|
|
8665
|
+
return new oi(this.collection.transformCollection);
|
|
8666
8666
|
}
|
|
8667
8667
|
/**
|
|
8668
8668
|
* The raw collection resource. This is generally not needed and should be avoided.
|
|
@@ -8697,8 +8697,8 @@ class ze {
|
|
|
8697
8697
|
getIntegrationByType(e, t) {
|
|
8698
8698
|
const a = (this.product.integrationProducts || []).find((n) => {
|
|
8699
8699
|
var r, g, B;
|
|
8700
|
-
const i = (r = n.integration) == null ? void 0 : r.type,
|
|
8701
|
-
return i &&
|
|
8700
|
+
const i = (r = n.integration) == null ? void 0 : r.type, o = ((g = n.integration) == null ? void 0 : g.type) === e, s = t ? ((B = n.integration) == null ? void 0 : B.externalIntegrationId) === t : !0;
|
|
8701
|
+
return i && o && s;
|
|
8702
8702
|
});
|
|
8703
8703
|
if (!a)
|
|
8704
8704
|
throw new Error(
|
|
@@ -8763,7 +8763,7 @@ class ze {
|
|
|
8763
8763
|
* @returns
|
|
8764
8764
|
*/
|
|
8765
8765
|
getBasePrice(e) {
|
|
8766
|
-
var a, n, i,
|
|
8766
|
+
var a, n, i, o;
|
|
8767
8767
|
const t = this.product.basePrice || 0;
|
|
8768
8768
|
if (!e)
|
|
8769
8769
|
return t;
|
|
@@ -8773,21 +8773,21 @@ class ze {
|
|
|
8773
8773
|
);
|
|
8774
8774
|
let A;
|
|
8775
8775
|
return e.integrationId ? A = (a = this.product.integrationProducts) == null ? void 0 : a.find(
|
|
8776
|
-
(
|
|
8776
|
+
(s) => {
|
|
8777
8777
|
var r;
|
|
8778
|
-
return ((r =
|
|
8778
|
+
return ((r = s.integration) == null ? void 0 : r.id) === e.integrationId;
|
|
8779
8779
|
}
|
|
8780
8780
|
) : e.externalId ? A = (n = this.product.integrationProducts) == null ? void 0 : n.find(
|
|
8781
|
-
(
|
|
8781
|
+
(s) => {
|
|
8782
8782
|
var r;
|
|
8783
|
-
return ((r =
|
|
8783
|
+
return ((r = s.integration) == null ? void 0 : r.externalIntegrationId) === e.externalId;
|
|
8784
8784
|
}
|
|
8785
8785
|
) : A = (i = this.product.integrationProducts) == null ? void 0 : i.find(
|
|
8786
|
-
(
|
|
8786
|
+
(s) => {
|
|
8787
8787
|
var r;
|
|
8788
|
-
return ((r =
|
|
8788
|
+
return ((r = s.integration) == null ? void 0 : r.type) === e.integrationType;
|
|
8789
8789
|
}
|
|
8790
|
-
), (
|
|
8790
|
+
), (o = A == null ? void 0 : A.additionalIntegrationProduct) != null && o.product ? t + (A.additionalIntegrationProduct.product.basePrice || 0) : t;
|
|
8791
8791
|
}
|
|
8792
8792
|
}
|
|
8793
8793
|
class ge {
|
|
@@ -8814,7 +8814,7 @@ class ge {
|
|
|
8814
8814
|
return this.workflow.imageUrl;
|
|
8815
8815
|
}
|
|
8816
8816
|
}
|
|
8817
|
-
class
|
|
8817
|
+
class oi {
|
|
8818
8818
|
constructor(e) {
|
|
8819
8819
|
this.collection = e;
|
|
8820
8820
|
}
|
|
@@ -8834,10 +8834,10 @@ class si {
|
|
|
8834
8834
|
* @returns The transforms in this collection.
|
|
8835
8835
|
*/
|
|
8836
8836
|
getTransforms() {
|
|
8837
|
-
return this.collection.transforms.map((e) => new
|
|
8837
|
+
return this.collection.transforms.map((e) => new si(e));
|
|
8838
8838
|
}
|
|
8839
8839
|
}
|
|
8840
|
-
class
|
|
8840
|
+
class si {
|
|
8841
8841
|
constructor(e) {
|
|
8842
8842
|
this.transform = e;
|
|
8843
8843
|
}
|
|
@@ -8866,11 +8866,11 @@ class oi {
|
|
|
8866
8866
|
}
|
|
8867
8867
|
class St {
|
|
8868
8868
|
constructor(e, t, A, a, n, i) {
|
|
8869
|
-
var
|
|
8870
|
-
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = e, this.id = t.id, this.name = t.name || "", this.ownerId = n, this.metadata = new Map(((
|
|
8869
|
+
var o, s, r;
|
|
8870
|
+
this.eventListeners = /* @__PURE__ */ new Map(), this.workflowExperiences = [], this.client = e, this.id = t.id, this.name = t.name || "", this.ownerId = n, this.metadata = new Map(((o = t.metadata) == null ? void 0 : o.map((g) => [g.key, g.value])) || []), this.productCollection = t.productCollection, this.bundleStateManager = new ni(t.bundleStateData), this.globalPropertyStateManager = new ai(
|
|
8871
8871
|
this.id,
|
|
8872
8872
|
this.ownerId,
|
|
8873
|
-
(
|
|
8873
|
+
(s = this.productCollection) == null ? void 0 : s.globalPropertyConfiguration,
|
|
8874
8874
|
this.checkConditionalHandlesChanged.bind(this),
|
|
8875
8875
|
i
|
|
8876
8876
|
), this.globalPropertyHandleService = new qn(this), this.setPreviewService(A), this.initializationPromise = this.loadExistingWorkflowExperiences(
|
|
@@ -8948,7 +8948,7 @@ class St {
|
|
|
8948
8948
|
}
|
|
8949
8949
|
async addWorkflowExperiences(e) {
|
|
8950
8950
|
const t = e.map((i) => i.getWorkflowManager().getTransaction().id), A = t.map(
|
|
8951
|
-
(i) => this.workflowExperiences.find((
|
|
8951
|
+
(i) => this.workflowExperiences.find((o) => o.getWorkflowManager().getTransaction().id === i)
|
|
8952
8952
|
);
|
|
8953
8953
|
if (A.some((i) => !!i))
|
|
8954
8954
|
throw new Error(
|
|
@@ -8970,17 +8970,17 @@ class St {
|
|
|
8970
8970
|
}), this.workflowExperiences.push(...e), await Promise.all([
|
|
8971
8971
|
this.updateTransactionOrder(),
|
|
8972
8972
|
(async () => {
|
|
8973
|
-
for (const
|
|
8974
|
-
await this.injectExperienceIntoPreviewService(
|
|
8973
|
+
for (const o of e)
|
|
8974
|
+
await this.injectExperienceIntoPreviewService(o);
|
|
8975
8975
|
const i = await this.getGlobalProperties();
|
|
8976
|
-
await Promise.all(i.map((
|
|
8976
|
+
await Promise.all(i.map((o) => o.applyGlobalState(e)));
|
|
8977
8977
|
})()
|
|
8978
8978
|
]), this.workflowExperiences.forEach((i) => i.setBundle(this)), this.workflowExperiences.forEach((i) => i.checkForPriceBreakChanges());
|
|
8979
8979
|
}
|
|
8980
8980
|
async appendWorkflowExperience(e, t = !0) {
|
|
8981
8981
|
const A = e.getWorkflowManager().getTransaction().id;
|
|
8982
8982
|
if (this.workflowExperiences.find(
|
|
8983
|
-
(
|
|
8983
|
+
(o) => o.getWorkflowManager().getTransaction().id === A
|
|
8984
8984
|
))
|
|
8985
8985
|
throw new Error("Unable to add transaction to bundle - Already Exists!");
|
|
8986
8986
|
const i = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(A);
|
|
@@ -8994,7 +8994,7 @@ class St {
|
|
|
8994
8994
|
bundleOwnerId: this.ownerId,
|
|
8995
8995
|
transactionOwnerId: i
|
|
8996
8996
|
}
|
|
8997
|
-
}), t && (this.workflowExperiences.push(e), this.workflowExperiences.forEach((
|
|
8997
|
+
}), t && (this.workflowExperiences.push(e), this.workflowExperiences.forEach((o) => o.checkForPriceBreakChanges()));
|
|
8998
8998
|
}
|
|
8999
8999
|
async removeWorkflowExperience(e) {
|
|
9000
9000
|
const t = this.workflowExperiences.indexOf(e);
|
|
@@ -9196,7 +9196,7 @@ class St {
|
|
|
9196
9196
|
}),
|
|
9197
9197
|
t ? (a, n) => {
|
|
9198
9198
|
const i = this.workflowExperiences.find(
|
|
9199
|
-
(
|
|
9199
|
+
(o) => o.getWorkflowManager().getTransaction().id === n
|
|
9200
9200
|
);
|
|
9201
9201
|
return i ? t(i) : (console.warn(
|
|
9202
9202
|
"SpiffCommerce - Bundle create design - Unable to find experience for transaction: " + n
|
|
@@ -9294,8 +9294,8 @@ class St {
|
|
|
9294
9294
|
(() => {
|
|
9295
9295
|
if (a.length !== n.length)
|
|
9296
9296
|
return !0;
|
|
9297
|
-
for (let
|
|
9298
|
-
if (a[
|
|
9297
|
+
for (let o = 0; o < a.length; o++)
|
|
9298
|
+
if (a[o].getName() !== n[o].getName())
|
|
9299
9299
|
return !0;
|
|
9300
9300
|
return !1;
|
|
9301
9301
|
})() && this.fireEvent("conditional-global-properties-changed", {
|
|
@@ -9343,8 +9343,8 @@ class ci {
|
|
|
9343
9343
|
setTimeout(E, w);
|
|
9344
9344
|
});
|
|
9345
9345
|
}
|
|
9346
|
-
let
|
|
9347
|
-
for (; !
|
|
9346
|
+
let o = !1, s = 0, r, g;
|
|
9347
|
+
for (; !o; ) {
|
|
9348
9348
|
r = await x.getShadowGraphqlClient().query({
|
|
9349
9349
|
query: D`
|
|
9350
9350
|
query getProcessFlowExecution($ids: [String]!) {
|
|
@@ -9372,12 +9372,12 @@ class ci {
|
|
|
9372
9372
|
"Execution has failed to complete. See Automation > FLows in Flight on partner account on SpiffCommerce Hub."
|
|
9373
9373
|
);
|
|
9374
9374
|
if (w.completedAt) {
|
|
9375
|
-
|
|
9375
|
+
o = !0, g = new gi(w);
|
|
9376
9376
|
break;
|
|
9377
9377
|
}
|
|
9378
|
-
|
|
9378
|
+
s += 1;
|
|
9379
9379
|
const E = A != null && A.repeats ? A == null ? void 0 : A.repeats : 5;
|
|
9380
|
-
if (
|
|
9380
|
+
if (s >= E)
|
|
9381
9381
|
throw new Error("Maximum wait time exceeded for execution result.");
|
|
9382
9382
|
await i(A != null && A.sleepTime ? Math.max(A.sleepTime, 500) : 2e3);
|
|
9383
9383
|
}
|
|
@@ -10206,8 +10206,8 @@ const Bi = D`
|
|
|
10206
10206
|
throw new Error(`Unable to read workflows: ${t.errors ?? "Length mismatch in response"}`);
|
|
10207
10207
|
return A.forEach((n) => {
|
|
10208
10208
|
n.steps.forEach((i) => {
|
|
10209
|
-
var
|
|
10210
|
-
delete i.data.__typename, (
|
|
10209
|
+
var o, s, r;
|
|
10210
|
+
delete i.data.__typename, (o = i.option) != null && o.id && ((s = i.option.defaultVariant) != null && s.asset && G.cacheAsset(i.option.defaultVariant.asset), i.option.colorProfile && G.cacheAsset(i.option.colorProfile), (r = i.option.variants) == null || r.forEach((g) => {
|
|
10211
10211
|
g.asset && G.cacheAsset(g.asset), g.displayImage && G.cacheAsset(g.displayImage), g.thumbnail && G.cacheAsset(g.thumbnail), g.material && G.cacheMaterial(g.material);
|
|
10212
10212
|
}), de.set({ id: i.option.id }, Promise.resolve(i.option)));
|
|
10213
10213
|
});
|
|
@@ -10218,12 +10218,12 @@ const Bi = D`
|
|
|
10218
10218
|
throw new Error(`Workflow not found: ${c}`);
|
|
10219
10219
|
return A;
|
|
10220
10220
|
}, uA = async (c, e) => {
|
|
10221
|
-
const t = c.map((
|
|
10221
|
+
const t = c.map((o) => de.get({ id: o, options: e })), A = c.filter((o, s) => t[s] === void 0);
|
|
10222
10222
|
if (A.length === 0)
|
|
10223
10223
|
return Promise.all(t);
|
|
10224
10224
|
const a = Fi(A, e), n = A.map(
|
|
10225
|
-
(
|
|
10226
|
-
), i = t.filter((
|
|
10225
|
+
(o) => de.set({ id: o, options: e }, yi(o, a))
|
|
10226
|
+
), i = t.filter((o) => o !== void 0);
|
|
10227
10227
|
return await Promise.all(i.concat(n));
|
|
10228
10228
|
}, fe = async (c, e) => (await uA([c], e))[0], Mi = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
|
|
10229
10229
|
id: J(),
|
|
@@ -10279,7 +10279,8 @@ class Si {
|
|
|
10279
10279
|
return this.activeIntegration;
|
|
10280
10280
|
const e = async () => (await x.getShadowGraphqlClient().query({
|
|
10281
10281
|
query: Ci,
|
|
10282
|
-
errorPolicy: "all"
|
|
10282
|
+
errorPolicy: "all",
|
|
10283
|
+
fetchPolicy: "no-cache"
|
|
10283
10284
|
})).data.currentIntegration;
|
|
10284
10285
|
return this.activeIntegration = e(), this.activeIntegration;
|
|
10285
10286
|
}
|
|
@@ -10304,8 +10305,8 @@ class Si {
|
|
|
10304
10305
|
return Promise.resolve({ success: !0, stakeholderType: Ne.Owner });
|
|
10305
10306
|
const A = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10306
10307
|
if (A.has(e)) {
|
|
10307
|
-
const i = A.get(e),
|
|
10308
|
-
if (
|
|
10308
|
+
const i = A.get(e), s = (P.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
|
|
10309
|
+
if (s && await this.authenticateCustomerId(s)) {
|
|
10309
10310
|
const g = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
|
|
10310
10311
|
(B) => {
|
|
10311
10312
|
var l;
|
|
@@ -10351,9 +10352,9 @@ class Si {
|
|
|
10351
10352
|
const i = P.getMap("transactionOwnerIds");
|
|
10352
10353
|
if (i != null && i.has(e))
|
|
10353
10354
|
return Promise.resolve({ success: !0, stakeholderType: Ne.Owner });
|
|
10354
|
-
const
|
|
10355
|
-
if (
|
|
10356
|
-
const h =
|
|
10355
|
+
const o = P.getMap("transactionCustomerIds");
|
|
10356
|
+
if (o != null && o.has(e)) {
|
|
10357
|
+
const h = o.get(e);
|
|
10357
10358
|
if (h && await this.authenticateCustomerId(h)) {
|
|
10358
10359
|
const u = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
10359
10360
|
(f) => {
|
|
@@ -10418,7 +10419,7 @@ class Si {
|
|
|
10418
10419
|
}
|
|
10419
10420
|
})).data.customer;
|
|
10420
10421
|
if (!a.id) {
|
|
10421
|
-
const
|
|
10422
|
+
const s = (i = (await t.mutate({
|
|
10422
10423
|
mutation: pi,
|
|
10423
10424
|
errorPolicy: "all",
|
|
10424
10425
|
fetchPolicy: "no-cache",
|
|
@@ -10428,10 +10429,10 @@ class Si {
|
|
|
10428
10429
|
}
|
|
10429
10430
|
}
|
|
10430
10431
|
})).data) == null ? void 0 : i.customerCreate;
|
|
10431
|
-
if (!
|
|
10432
|
+
if (!s)
|
|
10432
10433
|
throw new Error("Unable to create customer.");
|
|
10433
|
-
return this.storeCustomer(
|
|
10434
|
-
customer:
|
|
10434
|
+
return this.storeCustomer(s), this.customer = s, {
|
|
10435
|
+
customer: s,
|
|
10435
10436
|
isAuthenticated: !1
|
|
10436
10437
|
};
|
|
10437
10438
|
}
|
|
@@ -10443,21 +10444,21 @@ class Si {
|
|
|
10443
10444
|
};
|
|
10444
10445
|
}
|
|
10445
10446
|
async authenticateCustomerId(e) {
|
|
10446
|
-
var
|
|
10447
|
+
var o;
|
|
10447
10448
|
const t = x.getShadowGraphqlClient(), A = P.getMap("customerTokens");
|
|
10448
10449
|
if (!(A != null && A.has(e)))
|
|
10449
10450
|
return !1;
|
|
10450
10451
|
const a = A.get(e);
|
|
10451
10452
|
if (!a)
|
|
10452
10453
|
return !1;
|
|
10453
|
-
const i = (
|
|
10454
|
+
const i = (o = (await t.mutate({
|
|
10454
10455
|
mutation: Ii,
|
|
10455
10456
|
errorPolicy: "all",
|
|
10456
10457
|
fetchPolicy: "no-cache",
|
|
10457
10458
|
variables: {
|
|
10458
10459
|
loginToken: a
|
|
10459
10460
|
}
|
|
10460
|
-
})).data) == null ? void 0 :
|
|
10461
|
+
})).data) == null ? void 0 : o.customerAuthenticate;
|
|
10461
10462
|
return i ? (this.storeCustomer(i), ft(a), this.customer = i, !0) : !1;
|
|
10462
10463
|
}
|
|
10463
10464
|
/**
|
|
@@ -10492,8 +10493,8 @@ class Si {
|
|
|
10492
10493
|
if (a != null && a.loginToken) {
|
|
10493
10494
|
if (!((i = a.partner) != null && i.id))
|
|
10494
10495
|
throw new Error(`Unable to find customer: ${e}`);
|
|
10495
|
-
const
|
|
10496
|
-
return
|
|
10496
|
+
const o = P.getMap("customerTokens") || /* @__PURE__ */ new Map();
|
|
10497
|
+
return o.set(a.id, a.loginToken), P.setMap("customerTokens", o), this.storeCustomer(a), ft(a.loginToken), this.customer = {
|
|
10497
10498
|
...a,
|
|
10498
10499
|
loginToken: void 0
|
|
10499
10500
|
}, !0;
|
|
@@ -10505,9 +10506,9 @@ class Si {
|
|
|
10505
10506
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
10506
10507
|
*/
|
|
10507
10508
|
async getNewBundle(e, t, A) {
|
|
10508
|
-
var
|
|
10509
|
+
var s, r, g;
|
|
10509
10510
|
const n = (g = (await x.getShadowGraphqlClient().mutate({
|
|
10510
|
-
mutation: Jn(((r = (
|
|
10511
|
+
mutation: Jn(((r = (s = A == null ? void 0 : A.graphql) == null ? void 0 : s.productCollection) == null ? void 0 : r.eagerFetchProducts) || !1),
|
|
10511
10512
|
variables: {
|
|
10512
10513
|
collectionId: e,
|
|
10513
10514
|
initialMetadata: t ? Object.entries(t).map((B, l) => ({ key: B[0], value: B[1] })) : void 0
|
|
@@ -10518,8 +10519,8 @@ class Si {
|
|
|
10518
10519
|
throw new Error("Unable to create bundle");
|
|
10519
10520
|
const i = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10520
10521
|
i.set(n.id, n.partner.id), P.setMap("bundlePartnerIds", i);
|
|
10521
|
-
const
|
|
10522
|
-
return
|
|
10522
|
+
const o = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
10523
|
+
return o.set(n.id, n.bundleOwnerId), P.setMap("bundleOwnerIds", o), new St(this, n, void 0, void 0, n.bundleOwnerId);
|
|
10523
10524
|
}
|
|
10524
10525
|
/**
|
|
10525
10526
|
* Retrieves an existing bundle from the API, by id.
|
|
@@ -10530,7 +10531,7 @@ class Si {
|
|
|
10530
10531
|
*/
|
|
10531
10532
|
async getExistingBundle(e, t, A, a) {
|
|
10532
10533
|
var h, C, u, f, Q, m, p, I, F;
|
|
10533
|
-
const n = P.getMap("bundleOwnerIds"), i = n == null ? void 0 : n.get(e),
|
|
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 = {};
|
|
10534
10535
|
r && !lt(r) && (g.Authorization = `Bearer ${r}`);
|
|
10535
10536
|
const B = {
|
|
10536
10537
|
bundleOwnerId: i,
|
|
@@ -10574,8 +10575,8 @@ class Si {
|
|
|
10574
10575
|
throw new Error("Unable to find customer.");
|
|
10575
10576
|
const A = e.data.customers[0].bundleStakeholders || [], a = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
10576
10577
|
return A.forEach((i) => {
|
|
10577
|
-
var
|
|
10578
|
-
(
|
|
10578
|
+
var o, s;
|
|
10579
|
+
(o = i.bundle) != null && o.id && ((s = i.bundle.partner) != null && s.id) && a.set(i.bundle.id, i.bundle.partner.id);
|
|
10579
10580
|
}), P.setMap("bundlePartnerIds", a), A;
|
|
10580
10581
|
}
|
|
10581
10582
|
/**
|
|
@@ -10639,26 +10640,26 @@ class Si {
|
|
|
10639
10640
|
return { transaction: m, workflow: p };
|
|
10640
10641
|
}
|
|
10641
10642
|
throw new U("No workflow ID provided.");
|
|
10642
|
-
}, { transaction: i, workflow:
|
|
10643
|
+
}, { transaction: i, workflow: o, readOnly: s } = await n();
|
|
10643
10644
|
this.currencyCode = (B = i.product.partner) == null ? void 0 : B.currencyCode;
|
|
10644
10645
|
const r = {
|
|
10645
10646
|
product: i.product,
|
|
10646
10647
|
transaction: i,
|
|
10647
10648
|
layouts: [],
|
|
10648
10649
|
singleVariantsRenderable: (l = a == null ? void 0 : a.workflowConfiguration) == null ? void 0 : l.singleVariantsRenderable,
|
|
10649
|
-
stateMutationFunc:
|
|
10650
|
+
stateMutationFunc: s ? async () => {
|
|
10650
10651
|
throw new b("State mutation is forbidden in read only mode!");
|
|
10651
10652
|
} : async (h) => {
|
|
10652
10653
|
const u = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(i.id) || void 0;
|
|
10653
10654
|
return this.updateTransactionState({ ...h, context: { transactionOwnerId: u } });
|
|
10654
10655
|
},
|
|
10655
|
-
readOnly:
|
|
10656
|
-
workflow:
|
|
10656
|
+
readOnly: s,
|
|
10657
|
+
workflow: o
|
|
10657
10658
|
};
|
|
10658
10659
|
if (a.type === "transaction" && i.workflowState) {
|
|
10659
10660
|
const h = JSON.parse(i.workflowState);
|
|
10660
10661
|
r.layouts = Object.values(h.layouts).map((C) => C.layout), await ee(h), await te(h), r.reloadedState = h;
|
|
10661
|
-
} else if (!
|
|
10662
|
+
} else if (!s && a.workflowState) {
|
|
10662
10663
|
const h = JSON.parse(a.workflowState);
|
|
10663
10664
|
r.layouts = Object.values(h.layouts).map((C) => C.layout), await ee(h), await te(h), r.reloadedState = h;
|
|
10664
10665
|
} else
|
|
@@ -10671,7 +10672,7 @@ class Si {
|
|
|
10671
10672
|
), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
|
|
10672
10673
|
model: r.product.modelUrl,
|
|
10673
10674
|
contextService: r.renderableContextService
|
|
10674
|
-
}))) : (r.previewService = A && A(
|
|
10675
|
+
}))) : (r.previewService = A && A(o), (w = r.product) != null && w.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
|
|
10675
10676
|
model: r.product.modelUrl,
|
|
10676
10677
|
contextService: r.renderableContextService
|
|
10677
10678
|
}))), a.type !== "transaction") {
|
|
@@ -10746,9 +10747,9 @@ class Si {
|
|
|
10746
10747
|
readOnly: !1,
|
|
10747
10748
|
index: m[N].index
|
|
10748
10749
|
}));
|
|
10749
|
-
}, i = e.map((m, p) => ({ option: m, index: p })),
|
|
10750
|
+
}, i = e.map((m, p) => ({ option: m, index: p })), o = i.filter((m) => m.option.type === "transaction"), s = i.filter(
|
|
10750
10751
|
(m) => m.option.type === "integration" || m.option.type === "external"
|
|
10751
|
-
), r = pt(
|
|
10752
|
+
), r = pt(o, 10), g = pt(s, 10), B = (await Promise.all([
|
|
10752
10753
|
...r.map(a),
|
|
10753
10754
|
...g.map(n)
|
|
10754
10755
|
])).flat(), l = [...new Set(B.map((m) => m.workflowId))], d = await uA(l, t), w = new Map(d.map((m) => [m.id, m])), E = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (m) => {
|
|
@@ -10820,8 +10821,8 @@ class Si {
|
|
|
10820
10821
|
product: a.product,
|
|
10821
10822
|
transaction: a,
|
|
10822
10823
|
layouts: [],
|
|
10823
|
-
stateMutationFunc: async (
|
|
10824
|
-
...
|
|
10824
|
+
stateMutationFunc: async (o) => this.updateTransactionState({
|
|
10825
|
+
...o,
|
|
10825
10826
|
context: { transactionOwnerId: a.transactionOwnerId }
|
|
10826
10827
|
})
|
|
10827
10828
|
}, this.initialized = !0;
|
|
@@ -10833,7 +10834,7 @@ class Si {
|
|
|
10833
10834
|
* @deprecated Use getWorkflowExperience to initialize the experience.
|
|
10834
10835
|
*/
|
|
10835
10836
|
async initFromTransaction(e, t = !1) {
|
|
10836
|
-
var
|
|
10837
|
+
var o, s, r, g;
|
|
10837
10838
|
if (e === "")
|
|
10838
10839
|
throw new U("No transaction ID provided.");
|
|
10839
10840
|
const A = x.getShadowGraphqlClient(), a = async () => {
|
|
@@ -10862,18 +10863,18 @@ class Si {
|
|
|
10862
10863
|
return await a();
|
|
10863
10864
|
const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
|
|
10864
10865
|
if (i) {
|
|
10865
|
-
const l = (
|
|
10866
|
+
const l = (o = (await A.query({
|
|
10866
10867
|
query: ue,
|
|
10867
10868
|
variables: {
|
|
10868
10869
|
ids: [e]
|
|
10869
10870
|
},
|
|
10870
10871
|
errorPolicy: "all"
|
|
10871
|
-
})).data) == null ? void 0 :
|
|
10872
|
+
})).data) == null ? void 0 : o.transactions[0];
|
|
10872
10873
|
if (!l)
|
|
10873
10874
|
throw new U("Failed to read transaction.");
|
|
10874
10875
|
if (!l.product)
|
|
10875
10876
|
throw new U("Failed to load transaction, product not available.");
|
|
10876
|
-
this.currencyCode = (
|
|
10877
|
+
this.currencyCode = (s = l.product.partner) == null ? void 0 : s.currencyCode, this.experienceOptions = {
|
|
10877
10878
|
product: l.product,
|
|
10878
10879
|
transaction: l,
|
|
10879
10880
|
layouts: [],
|
|
@@ -10910,16 +10911,16 @@ class Si {
|
|
|
10910
10911
|
* @deprecated Remove when the initFrom functions are removed.
|
|
10911
10912
|
*/
|
|
10912
10913
|
async getWorkflowExperienceDeprecated(e, t, A) {
|
|
10913
|
-
var a, n, i,
|
|
10914
|
+
var a, n, i, o;
|
|
10914
10915
|
if (!this.initialized || !this.experienceOptions)
|
|
10915
10916
|
throw new U("Cannot launch experience: Not initialized.");
|
|
10916
10917
|
if (this.experienceOptions.transaction.workflowId) {
|
|
10917
|
-
const
|
|
10918
|
-
if (this.experienceOptions.workflow =
|
|
10918
|
+
const s = await fe(this.experienceOptions.transaction.workflowId);
|
|
10919
|
+
if (this.experienceOptions.workflow = s, this.experienceOptions.transaction.workflowState) {
|
|
10919
10920
|
const g = JSON.parse(this.experienceOptions.transaction.workflowState);
|
|
10920
10921
|
this.experienceOptions.layouts = Object.values(g.layouts).map((B) => B.layout), await ee(g), await te(g), this.experienceOptions.reloadedState = g;
|
|
10921
10922
|
}
|
|
10922
|
-
this.experienceOptions.previewService = A && A(
|
|
10923
|
+
this.experienceOptions.previewService = A && A(s), this.experienceOptions.renderableContextService = new pe(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
|
|
10923
10924
|
model: this.experienceOptions.product.modelUrl,
|
|
10924
10925
|
contextService: this.experienceOptions.renderableContextService
|
|
10925
10926
|
}));
|
|
@@ -10945,7 +10946,7 @@ class Si {
|
|
|
10945
10946
|
this.experienceOptions.transaction,
|
|
10946
10947
|
this.experienceOptions.workflow
|
|
10947
10948
|
);
|
|
10948
|
-
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new pe(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (
|
|
10949
|
+
this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new pe(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (o = this.experienceOptions.previewService) == null ? void 0 : o.loadModel({
|
|
10949
10950
|
model: this.experienceOptions.product.modelUrl,
|
|
10950
10951
|
contextService: this.experienceOptions.renderableContextService
|
|
10951
10952
|
}));
|
|
@@ -11192,7 +11193,7 @@ class Pi extends W {
|
|
|
11192
11193
|
}
|
|
11193
11194
|
}
|
|
11194
11195
|
async canUseBackgroundRemover() {
|
|
11195
|
-
return this.manager.getClient().canUseAddon(
|
|
11196
|
+
return this.manager.getClient().canUseAddon(ot.BackgroundRemover);
|
|
11196
11197
|
}
|
|
11197
11198
|
/**
|
|
11198
11199
|
* Removes the background from an image, stores it in the state, and returns the new asset.
|
|
@@ -11282,118 +11283,118 @@ class Pi extends W {
|
|
|
11282
11283
|
}
|
|
11283
11284
|
}
|
|
11284
11285
|
export {
|
|
11285
|
-
|
|
11286
|
+
ot as AddonHandle,
|
|
11286
11287
|
ji as ArrayInput,
|
|
11287
11288
|
qi as AspectType,
|
|
11288
11289
|
_ as AssetNotFoundError,
|
|
11289
11290
|
Zi as AssetType,
|
|
11290
11291
|
$i as BringForwardCommand,
|
|
11291
11292
|
_i as BringToBackCommand,
|
|
11292
|
-
|
|
11293
|
-
|
|
11293
|
+
eo as BringToFrontCommand,
|
|
11294
|
+
to as CanvasCommand,
|
|
11294
11295
|
ze as CollectionProduct,
|
|
11295
11296
|
_n as ColorOptionGlobalPropertyHandle,
|
|
11296
|
-
|
|
11297
|
+
Ao as CommandContext,
|
|
11297
11298
|
Ba as ConversionDataType,
|
|
11298
11299
|
la as ConversionLocation,
|
|
11299
|
-
|
|
11300
|
-
|
|
11301
|
-
|
|
11300
|
+
ao as CreateElementCommand,
|
|
11301
|
+
no as CreateLayoutCommand,
|
|
11302
|
+
io as DeleteElementCommand,
|
|
11302
11303
|
Zn as FileUploadGlobalPropertyHandle,
|
|
11303
11304
|
Ie as FlowExecutionNodeResult,
|
|
11304
11305
|
gi as FlowExecutionResult,
|
|
11305
11306
|
ci as FlowService,
|
|
11306
|
-
|
|
11307
|
-
|
|
11308
|
-
|
|
11309
|
-
|
|
11307
|
+
oo as FontAlignmentCommand,
|
|
11308
|
+
so as FontColorCommand,
|
|
11309
|
+
ro as FontSizeCommand,
|
|
11310
|
+
co as FontSourceCommand,
|
|
11310
11311
|
Fa as FrameService,
|
|
11311
11312
|
Yi as FrameStep,
|
|
11312
11313
|
Pi as FrameStepHandle,
|
|
11313
11314
|
Bt as GlobalPropertyHandle,
|
|
11314
|
-
|
|
11315
|
+
go as GroupCommand,
|
|
11315
11316
|
tn as IllustrationStepHandle,
|
|
11316
11317
|
Ue as InformationMessageType,
|
|
11317
11318
|
cn as InformationStepHandle,
|
|
11318
11319
|
Yt as IntegrationProduct,
|
|
11319
11320
|
ca as IntegrationType,
|
|
11320
|
-
|
|
11321
|
-
|
|
11321
|
+
lo as LayoutElementFactory,
|
|
11322
|
+
Bo as LayoutElementType,
|
|
11322
11323
|
z as LayoutNotFoundError,
|
|
11323
11324
|
An as MaterialStepHandle,
|
|
11324
11325
|
xe as MisconfigurationError,
|
|
11325
11326
|
Vi as MockWorkflowManager,
|
|
11326
11327
|
an as ModelStepHandle,
|
|
11327
|
-
|
|
11328
|
+
wo as MoveCommand,
|
|
11328
11329
|
EA as ObjectInput,
|
|
11329
11330
|
li as ObjectInputType,
|
|
11330
11331
|
hA as OptionGlobalPropertyHandle,
|
|
11331
11332
|
Pe as OptionNotFoundError,
|
|
11332
|
-
|
|
11333
|
+
se as ParseError,
|
|
11333
11334
|
nn as PictureStepHandle,
|
|
11334
11335
|
ga as ProductCameraRig,
|
|
11335
11336
|
ii as ProductCollection,
|
|
11336
11337
|
ge as ProductWorkflow,
|
|
11337
11338
|
de as PromiseCache,
|
|
11338
11339
|
$t as PromiseQueue,
|
|
11339
|
-
|
|
11340
|
+
on as QuestionStepHandle,
|
|
11340
11341
|
Zt as QueueablePromise,
|
|
11341
|
-
|
|
11342
|
+
ho as ResizeCommand,
|
|
11342
11343
|
Be as ResourceNotFoundError,
|
|
11343
|
-
|
|
11344
|
-
|
|
11345
|
-
|
|
11344
|
+
Eo as RotateCommand,
|
|
11345
|
+
uo as SendBackwardsCommand,
|
|
11346
|
+
sn as ShapeStepHandle,
|
|
11346
11347
|
Si as SpiffCommerceClient,
|
|
11347
11348
|
Ne as StakeholderType,
|
|
11348
|
-
|
|
11349
|
+
Co as StepAspectType,
|
|
11349
11350
|
W as StepHandle,
|
|
11350
|
-
|
|
11351
|
-
|
|
11351
|
+
Qo as StepType,
|
|
11352
|
+
mo as TextChangeCommand,
|
|
11352
11353
|
$n as TextGlobalPropertyHandle,
|
|
11353
11354
|
Ki as TextInput,
|
|
11354
11355
|
rn as TextStepHandle,
|
|
11355
|
-
|
|
11356
|
-
|
|
11356
|
+
si as Transform,
|
|
11357
|
+
oi as TransformCollection,
|
|
11357
11358
|
b as UnhandledBehaviorError,
|
|
11358
|
-
|
|
11359
|
+
po as UnitOfMeasurement,
|
|
11359
11360
|
X as Variant,
|
|
11360
11361
|
Qn as WorkflowExperienceEventType,
|
|
11361
11362
|
me as WorkflowExperienceImpl,
|
|
11362
11363
|
G as assetService,
|
|
11363
11364
|
hn as createDesign,
|
|
11364
|
-
|
|
11365
|
+
Io as dataUrlFromExternalUrl,
|
|
11365
11366
|
Le as designService,
|
|
11366
|
-
|
|
11367
|
+
fo as determineCorrectFontSizeAndLines,
|
|
11367
11368
|
Sa as digitalContentStepService,
|
|
11368
|
-
|
|
11369
|
-
|
|
11369
|
+
Do as findElement,
|
|
11370
|
+
Fo as frameDataCache,
|
|
11370
11371
|
Fe as frameStepService,
|
|
11371
|
-
|
|
11372
|
+
yo as generate,
|
|
11372
11373
|
Pn as generateCommands,
|
|
11373
|
-
|
|
11374
|
+
Mo as generateSVGWithUnknownColors,
|
|
11374
11375
|
zi as generateStateFromDesignInputSteps,
|
|
11375
|
-
|
|
11376
|
-
|
|
11376
|
+
So as getAttributesFromArrayBuffer,
|
|
11377
|
+
Yo as getAxisAlignedBoundingBox,
|
|
11377
11378
|
Da as getBoundedOffsets,
|
|
11378
|
-
|
|
11379
|
-
|
|
11379
|
+
Po as getFrameData,
|
|
11380
|
+
xo as getSvgElement,
|
|
11380
11381
|
fe as getWorkflow,
|
|
11381
11382
|
uA as getWorkflows,
|
|
11382
11383
|
x as graphQlManager,
|
|
11383
11384
|
ye as illustrationStepService,
|
|
11384
|
-
|
|
11385
|
+
No as loadFont,
|
|
11385
11386
|
eA as materialStepService,
|
|
11386
11387
|
tA as modelStepService,
|
|
11387
11388
|
Ra as moduleStepService,
|
|
11388
11389
|
j as optionService,
|
|
11389
|
-
|
|
11390
|
+
Ho as patternImageDataCache,
|
|
11390
11391
|
P as persistenceService,
|
|
11391
11392
|
AA as pictureStepService,
|
|
11392
11393
|
aA as questionStepService,
|
|
11393
|
-
|
|
11394
|
-
|
|
11395
|
-
|
|
11396
|
-
|
|
11394
|
+
Ro as registerFetchImplementation,
|
|
11395
|
+
Uo as registerWindowImplementation,
|
|
11396
|
+
vo as rehydrateSerializedLayout,
|
|
11397
|
+
Go as setCanvasModule,
|
|
11397
11398
|
re as shapeStepService,
|
|
11398
11399
|
ya as shortenUrl,
|
|
11399
11400
|
q as spiffCoreConfiguration,
|