@spiffcommerce/core 22.13.3 → 22.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +0 -3
- package/dist/index.js +463 -475
- package/dist/index.umd.cjs +15 -18
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { createHttpLink as RA, InMemoryCache as HA, ApolloClient as kA, from as UA, gql as f } from "@apollo/client/core";
|
|
2
|
-
import { fetch as
|
|
3
|
-
import { AspectType as Ns, AssetType as vs, BringForwardCommand as Rs, BringToBackCommand as Hs, BringToFrontCommand as ks, CanvasCommand as Us, CommandContext as Gs, CreateElementCommand as bs, CreateLayoutCommand as Js, DeleteElementCommand as Ts, FontAlignmentCommand as Os, FontColorCommand as Ls, FontSizeCommand as zs, FontSourceCommand as Ks, GroupCommand as js, LayoutElementFactory as Vs, LayoutElementType as Ws, MoveCommand as Xs, ResizeCommand as qs, RotateCommand as Zs, SendBackwardsCommand as $s, StepAspectType as _s, StepType as eo, TextChangeCommand as to, UnitOfMeasurement as Ao, UpdateImageSourceCommand as ao, dataUrlFromExternalUrl as no, determineCorrectFontSizeAndLines as io, findElement as so, frameDataCache as oo, generate as ro, generateSVGWithUnknownColors as co, getAttributesFromArrayBuffer as
|
|
2
|
+
import { fetch as gt, getAttributesFromArrayBuffer as Ot, AssetType as At, StepType as M, getFrameData as lt, frameDataCache as GA, modifySVGColors as bA, svgToDataUrl as JA, GroupCommand as k, UpdateFramePattern as Lt, UpdateFrameThresholdSettingsCommand as TA, calculateOffsets as Bt, LayoutElementType as G, generate as J, CreateElementCommand as L, generateSVGWithUnknownColors as Le, svgObjectURL as ve, fetchAsString as _, DeleteElementCommand as ne, generateDefaultRectangleFrameSvg as yt, GetSVGDimensions as OA, patternImageDataCache as Mt, fetchAsArrayBuffer as LA, findElement as Re, modifySVGWithElementProperties as zA, IllustrationColorCommand as at, IllustrationCacheCommand as KA, getFontMetrics as jA, getPatternImageData as nt, FontAlignmentCommand as VA, FontColorCommand as WA, FontImageFillCommand as Xe, applyTextTransformations as it, determineCorrectFontSizeAndLines as xe, FontSourceCommand as St, loadFont as dt, TextChangeCommand as XA, FontSizeCommand as qA, createElementNS as ZA, createElement as Ie, _loadFontExternalDataURL as Ct, UpdateWorkflowStateCommand as Yt, CommandContext as $A, createCanvas as He, getSvgElement as zt, LayoutRenderingPurpose as Kt, renderPapyrusComponentAsString as jt, loadImage as Vt, getDomParser as Wt, toBase64 as Pt, getVariant as _A, generateFrameSVG as ea, getDefaultVariant as ze, domParser as Xt, sanitizeSvgTree as qt, traverse as ta, xmlSerializer as Zt, CreateLayoutCommand as Aa, AspectType as $, rehydrateSerializedLayout as se } from "@spiffcommerce/papyrus";
|
|
3
|
+
import { AspectType as Ns, AssetType as vs, BringForwardCommand as Rs, BringToBackCommand as Hs, BringToFrontCommand as ks, CanvasCommand as Us, CommandContext as Gs, CreateElementCommand as bs, CreateLayoutCommand as Js, DeleteElementCommand as Ts, FontAlignmentCommand as Os, FontColorCommand as Ls, FontSizeCommand as zs, FontSourceCommand as Ks, GroupCommand as js, LayoutElementFactory as Vs, LayoutElementType as Ws, MoveCommand as Xs, ResizeCommand as qs, RotateCommand as Zs, SendBackwardsCommand as $s, StepAspectType as _s, StepType as eo, TextChangeCommand as to, UnitOfMeasurement as Ao, UpdateImageSourceCommand as ao, dataUrlFromExternalUrl as no, determineCorrectFontSizeAndLines as io, findElement as so, frameDataCache as oo, generate as ro, generateSVGWithUnknownColors as co, getAttributesFromArrayBuffer as go, getAxisAlignedBoundingBox as lo, getFrameData as Bo, getSvgElement as Co, loadFont as wo, patternImageDataCache as ho, registerFetchImplementation as Eo, registerWindowImplementation as uo, rehydrateSerializedLayout as mo, setCanvasModule as Qo, svgToDataUrl as po } from "@spiffcommerce/papyrus";
|
|
4
4
|
import { setContext as aa } from "@apollo/client/link/context";
|
|
5
5
|
import { onError as na } from "@apollo/client/link/error";
|
|
6
6
|
import { Pith as $t } from "pith";
|
|
7
7
|
import _t from "lodash.debounce";
|
|
8
8
|
import eA from "lodash.isequal";
|
|
9
|
-
import
|
|
9
|
+
import ge from "lodash.clonedeep";
|
|
10
10
|
import { toString as tA } from "qrcode";
|
|
11
11
|
import ia from "fuse.js";
|
|
12
12
|
import { split as st } from "unicode-default-word-boundary";
|
|
@@ -150,28 +150,28 @@ class ra {
|
|
|
150
150
|
}
|
|
151
151
|
const q = new ra();
|
|
152
152
|
let aA;
|
|
153
|
-
const vt = (
|
|
154
|
-
aA =
|
|
153
|
+
const vt = (g) => {
|
|
154
|
+
aA = g;
|
|
155
155
|
};
|
|
156
156
|
let ht;
|
|
157
|
-
const ca = (
|
|
158
|
-
ht =
|
|
159
|
-
},
|
|
157
|
+
const ca = (g) => {
|
|
158
|
+
ht = g;
|
|
159
|
+
}, ga = () => ht;
|
|
160
160
|
let nA;
|
|
161
|
-
const
|
|
162
|
-
nA =
|
|
163
|
-
}, Ba = () => new Promise((
|
|
161
|
+
const la = (g) => {
|
|
162
|
+
nA = g;
|
|
163
|
+
}, Ba = () => new Promise((g) => {
|
|
164
164
|
const e = q.getHubUrl(), t = (A) => {
|
|
165
|
-
A.origin === e && (window.removeEventListener("message", t),
|
|
165
|
+
A.origin === e && (window.removeEventListener("message", t), g(A.data));
|
|
166
166
|
};
|
|
167
167
|
window.parent !== window && (window.addEventListener("message", t, !1), window.parent.postMessage("ready", e));
|
|
168
168
|
}), da = async () => {
|
|
169
|
-
const
|
|
169
|
+
const g = {
|
|
170
170
|
applicationKey: ht,
|
|
171
171
|
customerToken: aA,
|
|
172
172
|
bearer: nA
|
|
173
173
|
};
|
|
174
|
-
return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...
|
|
174
|
+
return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...g } : g;
|
|
175
175
|
};
|
|
176
176
|
class Ca {
|
|
177
177
|
constructor() {
|
|
@@ -185,9 +185,9 @@ class Ca {
|
|
|
185
185
|
constructShadowGraphqlClient() {
|
|
186
186
|
const e = RA({
|
|
187
187
|
uri: `${q.getServerUrl()}/graphql`,
|
|
188
|
-
fetch:
|
|
188
|
+
fetch: gt
|
|
189
189
|
}), t = aa(async (i, s) => {
|
|
190
|
-
const { headers: o } = s, r = o || {}, c = await da(), B = s.bearer ?? c.bearer,
|
|
190
|
+
const { headers: o } = s, r = o || {}, c = await da(), B = s.bearer ?? c.bearer, l = s.partnerId ?? c.partnerId, d = s.activeIntegration ?? c.activeIntegration, C = s.transactionOwnerId, w = s.customerToken ?? c.customerToken, h = s.applicationKey ?? c.applicationKey, u = s.bundleOwnerId;
|
|
191
191
|
try {
|
|
192
192
|
if (window && window.__SENTRY__) {
|
|
193
193
|
const E = window.__SENTRY__.hub;
|
|
@@ -200,7 +200,7 @@ class Ca {
|
|
|
200
200
|
}
|
|
201
201
|
} catch {
|
|
202
202
|
}
|
|
203
|
-
return B && (r.Authorization = `Bearer ${B}`),
|
|
203
|
+
return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), C && (r.transactionOwnerId = C), w && (r.customerToken = w), h && (r["X-Application-Key"] = h), u && (r.bundleOwnerId = u), {
|
|
204
204
|
headers: r
|
|
205
205
|
};
|
|
206
206
|
}), A = na(({ operation: i, graphQLErrors: s, networkError: o }) => {
|
|
@@ -265,8 +265,8 @@ const x = new Ca(), wa = f`
|
|
|
265
265
|
value
|
|
266
266
|
}
|
|
267
267
|
}
|
|
268
|
-
`, De = (
|
|
269
|
-
${
|
|
268
|
+
`, De = (g) => f`
|
|
269
|
+
${g && wa || ""}
|
|
270
270
|
fragment AssetFields on Asset {
|
|
271
271
|
name
|
|
272
272
|
key
|
|
@@ -278,7 +278,7 @@ const x = new Ca(), wa = f`
|
|
|
278
278
|
name
|
|
279
279
|
link
|
|
280
280
|
}
|
|
281
|
-
${
|
|
281
|
+
${g && "...AssetMetadataFields" || ""}
|
|
282
282
|
}
|
|
283
283
|
`, ha = f`
|
|
284
284
|
${De(!1)}
|
|
@@ -362,28 +362,28 @@ const x = new Ca(), wa = f`
|
|
|
362
362
|
...AssetFields
|
|
363
363
|
}
|
|
364
364
|
}
|
|
365
|
-
`, ot = async (
|
|
365
|
+
`, ot = async (g) => (await x.getShadowGraphqlClient().query({
|
|
366
366
|
query: ha,
|
|
367
367
|
errorPolicy: "all",
|
|
368
368
|
fetchPolicy: "no-cache",
|
|
369
369
|
variables: {
|
|
370
|
-
keys:
|
|
370
|
+
keys: g
|
|
371
371
|
}
|
|
372
|
-
})).data.assets, Qa = async (
|
|
372
|
+
})).data.assets, Qa = async (g) => (await x.getShadowGraphqlClient().query({
|
|
373
373
|
query: Ea,
|
|
374
374
|
errorPolicy: "all",
|
|
375
375
|
fetchPolicy: "no-cache",
|
|
376
376
|
variables: {
|
|
377
|
-
ids:
|
|
377
|
+
ids: g
|
|
378
378
|
}
|
|
379
|
-
})).data.materials, pa = async (
|
|
379
|
+
})).data.materials, pa = async (g, e, t, A, a) => {
|
|
380
380
|
var i;
|
|
381
381
|
return (i = (await x.getShadowGraphqlClient().mutate({
|
|
382
382
|
mutation: ua,
|
|
383
383
|
errorPolicy: "all",
|
|
384
384
|
fetchPolicy: "no-cache",
|
|
385
385
|
variables: {
|
|
386
|
-
name:
|
|
386
|
+
name: g,
|
|
387
387
|
type: e,
|
|
388
388
|
mimeType: t,
|
|
389
389
|
anonymous: A,
|
|
@@ -726,13 +726,13 @@ const me = new Ia(), sA = f`
|
|
|
726
726
|
...OptionFields
|
|
727
727
|
}
|
|
728
728
|
}
|
|
729
|
-
`, Fa = async (
|
|
729
|
+
`, Fa = async (g) => {
|
|
730
730
|
const e = await x.getShadowGraphqlClient().query({
|
|
731
731
|
query: fa,
|
|
732
732
|
errorPolicy: "all",
|
|
733
733
|
fetchPolicy: "no-cache",
|
|
734
734
|
variables: {
|
|
735
|
-
ids:
|
|
735
|
+
ids: g
|
|
736
736
|
}
|
|
737
737
|
});
|
|
738
738
|
return e.data.options.forEach((t) => {
|
|
@@ -741,8 +741,8 @@ const me = new Ia(), sA = f`
|
|
|
741
741
|
n.asset && U.cacheAsset(n.asset), n.thumbnail && U.cacheAsset(n.thumbnail), n.material && U.cacheMaterial(n.material);
|
|
742
742
|
});
|
|
743
743
|
}), e.data.options;
|
|
744
|
-
}, ya = async (
|
|
745
|
-
const e =
|
|
744
|
+
}, ya = async (g, e) => (await e).find((A) => A.id === g), Ma = async (g) => {
|
|
745
|
+
const e = g.map((i) => me.get({ id: i })), t = g.filter((i, s) => e[s] === void 0);
|
|
746
746
|
if (t.length === 0)
|
|
747
747
|
return Promise.all(e);
|
|
748
748
|
const A = Fa(t), a = t.map(
|
|
@@ -797,7 +797,7 @@ class Sa {
|
|
|
797
797
|
}
|
|
798
798
|
}
|
|
799
799
|
const V = new Sa();
|
|
800
|
-
var Ya = /* @__PURE__ */ ((
|
|
800
|
+
var Ya = /* @__PURE__ */ ((g) => (g.Hyperlink = "Hyperlink", g.Edit = "Edit", g.Approve = "Approve", g))(Ya || {}), Pa = /* @__PURE__ */ ((g) => (g.Hub = "Hub", g.Shopify = "Shopify", g))(Pa || {}), ut = /* @__PURE__ */ ((g) => (g.BackgroundRemover = "BackgroundRemover", g.ConversionAccelerator = "Conversion Accelerator", g.ProcessBuilder = "ProcessBuilder", g))(ut || {}), xa = /* @__PURE__ */ ((g) => (g[g.Orbit = 0] = "Orbit", g[g.Pan = 1] = "Pan", g))(xa || {}), Na = /* @__PURE__ */ ((g) => (g.Manual = "Manual", g.OnStart = "OnStart", g.OnQuit = "OnQuit", g.OnEnd = "OnEnd", g))(Na || {}), va = /* @__PURE__ */ ((g) => (g.Email = "Email", g.FirstName = "FirstName", g.LastName = "LastName", g.Phone = "Phone", g))(va || {}), Ge = /* @__PURE__ */ ((g) => (g.Owner = "Owner", g.Approver = "Approver", g.Editor = "Editor", g.Viewer = "Viewer", g))(Ge || {});
|
|
801
801
|
const oA = f`
|
|
802
802
|
fragment ActiveIntegrationFields on Integration {
|
|
803
803
|
id
|
|
@@ -1333,14 +1333,14 @@ const Ja = f`
|
|
|
1333
1333
|
}
|
|
1334
1334
|
}
|
|
1335
1335
|
}
|
|
1336
|
-
`,
|
|
1336
|
+
`, gA = f`
|
|
1337
1337
|
query ReadWorkflowStates($ids: [String]!) {
|
|
1338
1338
|
transactions(ids: $ids) {
|
|
1339
1339
|
id
|
|
1340
1340
|
workflowState
|
|
1341
1341
|
}
|
|
1342
1342
|
}
|
|
1343
|
-
`,
|
|
1343
|
+
`, lA = f`
|
|
1344
1344
|
${Be}
|
|
1345
1345
|
fragment IntegrationProductFields on IntegrationProduct {
|
|
1346
1346
|
id
|
|
@@ -1403,14 +1403,14 @@ const Ja = f`
|
|
|
1403
1403
|
}
|
|
1404
1404
|
}
|
|
1405
1405
|
`, Ta = f`
|
|
1406
|
-
${
|
|
1406
|
+
${lA}
|
|
1407
1407
|
query GetIntegrationProducts($ids: [String!]!) {
|
|
1408
1408
|
integrationProducts(ids: $ids) {
|
|
1409
1409
|
...IntegrationProductFields
|
|
1410
1410
|
}
|
|
1411
1411
|
}
|
|
1412
1412
|
`, Oa = f`
|
|
1413
|
-
${
|
|
1413
|
+
${lA}
|
|
1414
1414
|
query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
|
|
1415
1415
|
integrationProductFromExternalIds(
|
|
1416
1416
|
externalIntegrationId: $externalIntegrationId
|
|
@@ -1431,25 +1431,25 @@ const Ja = f`
|
|
|
1431
1431
|
}
|
|
1432
1432
|
}
|
|
1433
1433
|
}
|
|
1434
|
-
`, Ce = [M.SilentIllustration, M.ProductOverlay], za = async (
|
|
1434
|
+
`, Ce = [M.SilentIllustration, M.ProductOverlay], za = async (g) => {
|
|
1435
1435
|
const e = [];
|
|
1436
|
-
|
|
1436
|
+
g.introduction && e.push({
|
|
1437
1437
|
name: "Introduction",
|
|
1438
|
-
title:
|
|
1438
|
+
title: g.name,
|
|
1439
1439
|
renderableSteps: [
|
|
1440
1440
|
{
|
|
1441
1441
|
type: M.Introduction,
|
|
1442
1442
|
stepName: "Introduction",
|
|
1443
|
-
stepTitle:
|
|
1444
|
-
helpText:
|
|
1443
|
+
stepTitle: g.name,
|
|
1444
|
+
helpText: g.introduction,
|
|
1445
1445
|
data: {},
|
|
1446
1446
|
conditions: []
|
|
1447
1447
|
}
|
|
1448
1448
|
],
|
|
1449
1449
|
silentSteps: []
|
|
1450
1450
|
});
|
|
1451
|
-
for (const A of
|
|
1452
|
-
const a = Ka(A.stepName,
|
|
1451
|
+
for (const A of g.steps) {
|
|
1452
|
+
const a = Ka(A.stepName, g.stepGroups);
|
|
1453
1453
|
if (!a)
|
|
1454
1454
|
e.push({
|
|
1455
1455
|
name: A.stepName,
|
|
@@ -1478,15 +1478,15 @@ const Ja = f`
|
|
|
1478
1478
|
stepTitle: t,
|
|
1479
1479
|
helpText: "",
|
|
1480
1480
|
data: {
|
|
1481
|
-
modelAnimation:
|
|
1482
|
-
lookAtAnimation:
|
|
1481
|
+
modelAnimation: g.finalizeStepConfig ? g.finalizeStepConfig.modelAnimation : void 0,
|
|
1482
|
+
lookAtAnimation: g.finalizeStepConfig ? g.finalizeStepConfig.lookAtAnimation : void 0
|
|
1483
1483
|
},
|
|
1484
1484
|
conditions: []
|
|
1485
1485
|
}
|
|
1486
1486
|
],
|
|
1487
1487
|
silentSteps: []
|
|
1488
1488
|
}), e;
|
|
1489
|
-
}, Ka = (
|
|
1489
|
+
}, Ka = (g, e) => e.find((t) => t.stepNames.includes(g)), ae = (g, e) => (g.conditions || []).every((t) => {
|
|
1490
1490
|
const A = e[t.targetStepName];
|
|
1491
1491
|
if (A && A.selectedVariants) {
|
|
1492
1492
|
const a = A.selectedVariants;
|
|
@@ -1495,17 +1495,17 @@ const Ja = f`
|
|
|
1495
1495
|
);
|
|
1496
1496
|
}
|
|
1497
1497
|
return !1;
|
|
1498
|
-
}), ja = (
|
|
1498
|
+
}), ja = (g, e) => {
|
|
1499
1499
|
const t = {
|
|
1500
|
-
name:
|
|
1501
|
-
title:
|
|
1502
|
-
renderableSteps:
|
|
1503
|
-
silentSteps:
|
|
1500
|
+
name: g.name,
|
|
1501
|
+
title: g.title,
|
|
1502
|
+
renderableSteps: g.renderableSteps.filter((A) => ae(A, e)),
|
|
1503
|
+
silentSteps: g.silentSteps.filter((A) => ae(A, e))
|
|
1504
1504
|
};
|
|
1505
1505
|
return t.silentSteps.length === 0 && t.renderableSteps.length === 0 ? null : t;
|
|
1506
|
-
}, ce = (
|
|
1506
|
+
}, ce = (g, e) => g.map((t) => ja(t, e)).filter((t) => t !== null), Va = async (g, e, t = !1) => {
|
|
1507
1507
|
var i;
|
|
1508
|
-
const A = ce(
|
|
1508
|
+
const A = ce(g, e), a = [];
|
|
1509
1509
|
for (const s of A)
|
|
1510
1510
|
for (const o of s.renderableSteps) {
|
|
1511
1511
|
const r = (((i = o.option) == null ? void 0 : i.variants) || []).length;
|
|
@@ -1595,19 +1595,19 @@ class dA {
|
|
|
1595
1595
|
}
|
|
1596
1596
|
}
|
|
1597
1597
|
}
|
|
1598
|
-
function Wa(
|
|
1599
|
-
const a = t.width *
|
|
1598
|
+
function Wa(g, e, t, A) {
|
|
1599
|
+
const a = t.width * g.zoom, n = t.height * g.zoom;
|
|
1600
1600
|
if (A) {
|
|
1601
|
-
const s =
|
|
1602
|
-
s.zoom = Math.max(o,
|
|
1601
|
+
const s = g, o = Math.max(e.width / t.width, e.height / t.height);
|
|
1602
|
+
s.zoom = Math.max(o, g.zoom);
|
|
1603
1603
|
const r = t.width * s.zoom, c = t.height * s.zoom;
|
|
1604
|
-
return s.x = Fe(
|
|
1604
|
+
return s.x = Fe(g.x, e.width - r, 0), s.y = Fe(g.y, e.height - c, 0), s;
|
|
1605
1605
|
}
|
|
1606
|
-
const i =
|
|
1606
|
+
const i = g;
|
|
1607
1607
|
return i.x = Fe(i.x, -a, e.width), i.y = Fe(i.y, -n, e.height), i;
|
|
1608
1608
|
}
|
|
1609
|
-
function Fe(
|
|
1610
|
-
return Math.min(Math.max(
|
|
1609
|
+
function Fe(g, e, t) {
|
|
1610
|
+
return Math.min(Math.max(g, e), t);
|
|
1611
1611
|
}
|
|
1612
1612
|
class Xa {
|
|
1613
1613
|
constructor(e) {
|
|
@@ -1631,7 +1631,7 @@ class Xa {
|
|
|
1631
1631
|
if (a.currentFrameSources) {
|
|
1632
1632
|
let n = !1;
|
|
1633
1633
|
for (let i = 0; i < a.currentFrameSources.length; i++) {
|
|
1634
|
-
const s = a.currentFrameSources[i], o = await
|
|
1634
|
+
const s = a.currentFrameSources[i], o = await lt(s), r = this.frameData ? this.frameData[i] : void 0;
|
|
1635
1635
|
eA(o, r) || (this.frameData || (this.frameData = new Array(a.currentFrameSources.length)), this.frameData[i] = o, n = !0);
|
|
1636
1636
|
}
|
|
1637
1637
|
n && (this.onFrameDataChangeListeners.forEach(
|
|
@@ -1830,24 +1830,24 @@ class kt {
|
|
|
1830
1830
|
constructor(e, t, A) {
|
|
1831
1831
|
this.processRegion = async (a) => {
|
|
1832
1832
|
var o, r, c, B;
|
|
1833
|
-
const n = this.layouts.find((
|
|
1833
|
+
const n = this.layouts.find((l) => l.panelId === a.panelId);
|
|
1834
1834
|
if (!n)
|
|
1835
1835
|
throw new z(a);
|
|
1836
1836
|
let i = "";
|
|
1837
1837
|
if (this.configuration.type === M.ProductOverlay) {
|
|
1838
|
-
let
|
|
1839
|
-
if ((o = this.product) != null && o.overlayImageUrl && (
|
|
1838
|
+
let l = "";
|
|
1839
|
+
if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
|
|
1840
1840
|
throw new Ue(this.configuration, "Couldn't find an asset for product overlay step");
|
|
1841
1841
|
}
|
|
1842
1842
|
const s = this.evaluateAssetType();
|
|
1843
1843
|
if (s === G.Image) {
|
|
1844
|
-
const
|
|
1845
|
-
if (!
|
|
1844
|
+
const l = this.configuration.type === M.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (c = this.product) == null ? void 0 : c.overlayImageUrl;
|
|
1845
|
+
if (!l)
|
|
1846
1846
|
throw new Error("Undefined raster silent step source");
|
|
1847
1847
|
const d = {
|
|
1848
1848
|
stepName: this.configuration.stepName,
|
|
1849
1849
|
id: J(),
|
|
1850
|
-
src:
|
|
1850
|
+
src: l,
|
|
1851
1851
|
type: s,
|
|
1852
1852
|
y: a.top,
|
|
1853
1853
|
x: a.left,
|
|
@@ -1869,19 +1869,19 @@ class kt {
|
|
|
1869
1869
|
command: new L(d, n)
|
|
1870
1870
|
};
|
|
1871
1871
|
} else {
|
|
1872
|
-
const
|
|
1873
|
-
if (!
|
|
1872
|
+
const l = this.configuration.type === M.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, C = await Le(await (async () => new Promise((h, u) => {
|
|
1873
|
+
if (!l) {
|
|
1874
1874
|
u("Undefined vector silent step source");
|
|
1875
1875
|
return;
|
|
1876
1876
|
}
|
|
1877
|
-
_(
|
|
1877
|
+
_(l, !0).then((E) => {
|
|
1878
1878
|
h(E);
|
|
1879
1879
|
}).catch((E) => console.error(E));
|
|
1880
1880
|
}))()), w = {
|
|
1881
1881
|
stepName: this.configuration.stepName,
|
|
1882
1882
|
id: J(),
|
|
1883
1883
|
cachedObjectURL: await ve(C.svg),
|
|
1884
|
-
src:
|
|
1884
|
+
src: l,
|
|
1885
1885
|
svg: C.svg,
|
|
1886
1886
|
colors: C.colors,
|
|
1887
1887
|
type: s,
|
|
@@ -1927,12 +1927,12 @@ class kt {
|
|
|
1927
1927
|
return e != null && e.startsWith("data:image/png") || e != null && e.endsWith(".jpeg") || e != null && e.endsWith(".jpg") || e != null && e.endsWith(".png") ? G.Image : e != null && e.endsWith(".svg") || e != null && e.startsWith("image/svg+xml") ? G.Illustration : G.Illustration;
|
|
1928
1928
|
}
|
|
1929
1929
|
}
|
|
1930
|
-
const qa = async (
|
|
1930
|
+
const qa = async (g) => {
|
|
1931
1931
|
const e = `${q.getServicesApiUrl()}/shortener`;
|
|
1932
1932
|
try {
|
|
1933
1933
|
return (await (await fetch(e, {
|
|
1934
1934
|
method: "POST",
|
|
1935
|
-
body: JSON.stringify({ longUrl:
|
|
1935
|
+
body: JSON.stringify({ longUrl: g }),
|
|
1936
1936
|
headers: {
|
|
1937
1937
|
"Content-Type": "application/json"
|
|
1938
1938
|
}
|
|
@@ -1974,8 +1974,8 @@ class Za {
|
|
|
1974
1974
|
A.serializableWorkflow.steps
|
|
1975
1975
|
), o = Object.values(A.layouts).map((r) => r.elements).flat().filter((r) => r.stepName === e.stepName).map((r) => ({ id: r.id, region: r.stepRegion }));
|
|
1976
1976
|
await t.setSelectionsAndElements(e.stepName, [], o, async () => {
|
|
1977
|
-
var B,
|
|
1978
|
-
const r = (B = a == null ? void 0 : a.storage) == null ? void 0 : B.videoShortUrl, c = (
|
|
1977
|
+
var B, l;
|
|
1978
|
+
const r = (B = a == null ? void 0 : a.storage) == null ? void 0 : B.videoShortUrl, c = (l = a == null ? void 0 : a.storage) == null ? void 0 : l.videoUrl;
|
|
1979
1979
|
t.updateStorage(e.stepName, {
|
|
1980
1980
|
videoShortUrl: r,
|
|
1981
1981
|
videoUrl: c
|
|
@@ -2015,8 +2015,8 @@ class Za {
|
|
|
2015
2015
|
const c = await qa(r);
|
|
2016
2016
|
if (!a.data || !a.data.regions)
|
|
2017
2017
|
throw new Ue(a, "Missing regions.");
|
|
2018
|
-
const B = await this.regionElements(a),
|
|
2019
|
-
return
|
|
2018
|
+
const B = await this.regionElements(a), l = await this.command(c, B, A, a.stepName);
|
|
2019
|
+
return l && (l.command && A.getCommandDispatcher()(l.command), l.followup && await l.followup()), await A.setSelectionsAndElements(a.stepName, [], B, async () => {
|
|
2020
2020
|
A.updateStorage(a.stepName, {
|
|
2021
2021
|
videoShortUrl: c,
|
|
2022
2022
|
videoUrl: i.href
|
|
@@ -2029,7 +2029,7 @@ class Za {
|
|
|
2029
2029
|
}
|
|
2030
2030
|
async command(e, t, A, a) {
|
|
2031
2031
|
const n = A.getLayouts(), s = `data:image/svg+xml;base64,${btoa(await tA(e, { type: "svg" }))}`, o = t.map((r) => {
|
|
2032
|
-
const c = r.region, B = n.find((
|
|
2032
|
+
const c = r.region, B = n.find((l) => l.panelId === (c == null ? void 0 : c.panelId));
|
|
2033
2033
|
if (!B && c)
|
|
2034
2034
|
throw new z(c);
|
|
2035
2035
|
if (B && !c)
|
|
@@ -3398,7 +3398,7 @@ const wA = new Za(), Qe = [
|
|
|
3398
3398
|
"Black 5 C",
|
|
3399
3399
|
"Black 6 C",
|
|
3400
3400
|
"Black 7 C"
|
|
3401
|
-
],
|
|
3401
|
+
], le = [
|
|
3402
3402
|
"FEDD00",
|
|
3403
3403
|
"FFD700",
|
|
3404
3404
|
"FE5000",
|
|
@@ -4740,55 +4740,55 @@ const wA = new Za(), Qe = [
|
|
|
4740
4740
|
"3E2B2E",
|
|
4741
4741
|
"101820",
|
|
4742
4742
|
"3D3935"
|
|
4743
|
-
], qe =
|
|
4744
|
-
parseInt(
|
|
4745
|
-
parseInt(
|
|
4746
|
-
parseInt(
|
|
4743
|
+
], qe = le.map((g) => [
|
|
4744
|
+
parseInt(g.substring(0, 2), 16),
|
|
4745
|
+
parseInt(g.substring(2, 4), 16),
|
|
4746
|
+
parseInt(g.substring(4, 6), 16)
|
|
4747
4747
|
]);
|
|
4748
|
-
function Ds(
|
|
4749
|
-
const e = Qe.indexOf(
|
|
4750
|
-
return e >= 0 ?
|
|
4748
|
+
function Ds(g) {
|
|
4749
|
+
const e = Qe.indexOf(g);
|
|
4750
|
+
return e >= 0 ? le[e] : "";
|
|
4751
4751
|
}
|
|
4752
|
-
function $a(
|
|
4753
|
-
const e =
|
|
4752
|
+
function $a(g) {
|
|
4753
|
+
const e = le.indexOf(g);
|
|
4754
4754
|
return e >= 0 ? Qe[e] : "";
|
|
4755
4755
|
}
|
|
4756
|
-
function Is(
|
|
4757
|
-
const t = [], A = [], a = $a(
|
|
4756
|
+
function Is(g, e = 64) {
|
|
4757
|
+
const t = [], A = [], a = $a(g);
|
|
4758
4758
|
a && t.push({
|
|
4759
4759
|
pms: a,
|
|
4760
|
-
hex:
|
|
4760
|
+
hex: g,
|
|
4761
4761
|
distance: 0
|
|
4762
4762
|
});
|
|
4763
|
-
const n = parseInt(
|
|
4763
|
+
const n = parseInt(g.substring(0, 2), 16), i = parseInt(g.substring(2, 4), 16), s = parseInt(g.substring(4, 6), 16);
|
|
4764
4764
|
let o, r, c;
|
|
4765
|
-
for (let B = 0; B <
|
|
4765
|
+
for (let B = 0; B < le.length; B++) {
|
|
4766
4766
|
o = qe[B][0], r = qe[B][1], c = qe[B][2];
|
|
4767
|
-
const
|
|
4768
|
-
A.push(
|
|
4767
|
+
const l = Math.sqrt(Math.pow(n - o, 2) + Math.pow(i - r, 2) + Math.pow(s - c, 2));
|
|
4768
|
+
A.push(l);
|
|
4769
4769
|
}
|
|
4770
4770
|
for (let B = 0; B < A.length; B++)
|
|
4771
|
-
A[B] <= e && !t.some((
|
|
4772
|
-
return t.sort((B,
|
|
4771
|
+
A[B] <= e && !t.some((l) => l.pms === Qe[B]) && t.push({ pms: Qe[B], hex: le[B], distance: A[B] });
|
|
4772
|
+
return t.sort((B, l) => B.distance - l.distance);
|
|
4773
4773
|
}
|
|
4774
|
-
const _a = Qe.map((
|
|
4775
|
-
function fs(
|
|
4776
|
-
return en.search(
|
|
4774
|
+
const _a = Qe.map((g, e) => ({ pms: g, hex: le[e] })), en = new ia(_a, { keys: ["pms"] });
|
|
4775
|
+
function fs(g, e) {
|
|
4776
|
+
return en.search(g, e ? { limit: e } : void 0);
|
|
4777
4777
|
}
|
|
4778
4778
|
let we = null;
|
|
4779
|
-
function tn(
|
|
4780
|
-
if (
|
|
4781
|
-
return Ut(
|
|
4779
|
+
function tn(g) {
|
|
4780
|
+
if (g.startsWith("#"))
|
|
4781
|
+
return Ut(g);
|
|
4782
4782
|
if (!document)
|
|
4783
4783
|
throw new Error("browserColorToHex is only supported on browsers");
|
|
4784
4784
|
if (we || (we = document.createElement("canvas").getContext("2d")), !we)
|
|
4785
4785
|
throw new Error("Failed to create canvas context required to convert colors");
|
|
4786
|
-
we.fillStyle =
|
|
4786
|
+
we.fillStyle = g;
|
|
4787
4787
|
const e = Ut(we.fillStyle);
|
|
4788
|
-
return e || console.error(`Unknown browser color ${
|
|
4788
|
+
return e || console.error(`Unknown browser color ${g}`), e;
|
|
4789
4789
|
}
|
|
4790
|
-
function Ut(
|
|
4791
|
-
const e =
|
|
4790
|
+
function Ut(g) {
|
|
4791
|
+
const e = g.substring(1).toUpperCase();
|
|
4792
4792
|
return e.length === 6 ? e : e.length === 3 ? `${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}` : "";
|
|
4793
4793
|
}
|
|
4794
4794
|
class An {
|
|
@@ -4850,16 +4850,16 @@ class An {
|
|
|
4850
4850
|
if (a) {
|
|
4851
4851
|
const c = async () => {
|
|
4852
4852
|
var C, w, h, u, E;
|
|
4853
|
-
const B = (C = a.storage) == null ? void 0 : C.colors,
|
|
4853
|
+
const B = (C = a.storage) == null ? void 0 : C.colors, l = (w = a.storage) == null ? void 0 : w.framePatternSrc, d = (h = a.storage) == null ? void 0 : h.frameOffsetsList;
|
|
4854
4854
|
if (t.updateMetadata(e.stepName, {
|
|
4855
4855
|
frameOffsetsList: d,
|
|
4856
|
-
framePatternSrc:
|
|
4857
|
-
}),
|
|
4856
|
+
framePatternSrc: l
|
|
4857
|
+
}), l) {
|
|
4858
4858
|
const D = (u = t.getStepSpecificServices(e.stepName)) == null ? void 0 : u.frameService;
|
|
4859
4859
|
if (!D)
|
|
4860
4860
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
4861
|
-
await this.loadPatternFromString(
|
|
4862
|
-
framePatternSrc:
|
|
4861
|
+
await this.loadPatternFromString(l, D, !0, B), t.updateMetadata(e.stepName, { image: l }), t.updateStorage(e.stepName, {
|
|
4862
|
+
framePatternSrc: l
|
|
4863
4863
|
}), this.validateColorCount(e, t);
|
|
4864
4864
|
}
|
|
4865
4865
|
if (d != null && d.some((D) => D.zoom)) {
|
|
@@ -4873,14 +4873,14 @@ class An {
|
|
|
4873
4873
|
if (a.selectedVariants && a.selectedVariants.length > 0) {
|
|
4874
4874
|
const B = a.selectedVariants[0].id;
|
|
4875
4875
|
if (e.option && B) {
|
|
4876
|
-
const
|
|
4877
|
-
|
|
4876
|
+
const l = (r = e.option.variants) == null ? void 0 : r.find((d) => d.id === B);
|
|
4877
|
+
l && await t.setSelectionsAndElements(
|
|
4878
4878
|
e.stepName,
|
|
4879
|
-
[
|
|
4879
|
+
[l],
|
|
4880
4880
|
o,
|
|
4881
4881
|
async () => {
|
|
4882
4882
|
const d = await Promise.all(
|
|
4883
|
-
e.data.regions.map((C) => this.frameSourceSvg(
|
|
4883
|
+
e.data.regions.map((C) => this.frameSourceSvg(l, C))
|
|
4884
4884
|
);
|
|
4885
4885
|
t.updateStorage(e.stepName, { currentFrameSources: d }), await c();
|
|
4886
4886
|
}
|
|
@@ -4959,9 +4959,6 @@ class An {
|
|
|
4959
4959
|
stepRegion: t,
|
|
4960
4960
|
stepName: a.stepName,
|
|
4961
4961
|
disablePlaceholder: a.disablePlaceholder,
|
|
4962
|
-
focalBlur: a.focalBlur,
|
|
4963
|
-
focalBlurStrength: a.focalBlurStrength,
|
|
4964
|
-
focalBlurRadius: a.focalBlurRadius,
|
|
4965
4962
|
pattern: a.pattern,
|
|
4966
4963
|
immutable: t.immutable
|
|
4967
4964
|
},
|
|
@@ -4972,8 +4969,8 @@ class An {
|
|
|
4972
4969
|
if (e.endsWith("svg")) {
|
|
4973
4970
|
const i = await OA(e), s = i.width, o = i.height, r = await _(e);
|
|
4974
4971
|
if (n) {
|
|
4975
|
-
const
|
|
4976
|
-
if (
|
|
4972
|
+
const l = r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);
|
|
4973
|
+
if (l && l.length > 0)
|
|
4977
4974
|
throw new Error(
|
|
4978
4975
|
"Vector files may not include images or gradients when a color limit is specified."
|
|
4979
4976
|
);
|
|
@@ -5045,8 +5042,8 @@ class An {
|
|
|
5045
5042
|
};
|
|
5046
5043
|
const a = { ...e.getImageData().colors ?? {} }, n = {};
|
|
5047
5044
|
Object.entries(a).forEach(([c, B]) => {
|
|
5048
|
-
const
|
|
5049
|
-
n[c] =
|
|
5045
|
+
const l = { browserValue: B.browserValue };
|
|
5046
|
+
n[c] = l;
|
|
5050
5047
|
});
|
|
5051
5048
|
for (const [c, B] of A.entries())
|
|
5052
5049
|
a[c] = { browserValue: B.browserValue, pmsValue: B.pmsValue }, n[c] = B;
|
|
@@ -5054,8 +5051,8 @@ class An {
|
|
|
5054
5051
|
const s = t.data.colorOption;
|
|
5055
5052
|
return s && ((r = s.variants) == null || r.forEach((c) => {
|
|
5056
5053
|
i = i.map((B) => {
|
|
5057
|
-
var
|
|
5058
|
-
return B.toLowerCase() === ((
|
|
5054
|
+
var l;
|
|
5055
|
+
return B.toLowerCase() === ((l = c.color) == null ? void 0 : l.toLowerCase()) ? c.name : B;
|
|
5059
5056
|
});
|
|
5060
5057
|
})), {
|
|
5061
5058
|
newColors: a,
|
|
@@ -5072,8 +5069,8 @@ class An {
|
|
|
5072
5069
|
);
|
|
5073
5070
|
}
|
|
5074
5071
|
async selectVariantCommand(e, t, A, a, n, i) {
|
|
5075
|
-
var
|
|
5076
|
-
const s = (
|
|
5072
|
+
var l;
|
|
5073
|
+
const s = (l = a.getStepSpecificServices(e.stepName)) == null ? void 0 : l.frameService;
|
|
5077
5074
|
if (!s)
|
|
5078
5075
|
throw new Error("Frame service unavailable, cannot load pattern!");
|
|
5079
5076
|
const o = await Promise.all(
|
|
@@ -5082,7 +5079,7 @@ class An {
|
|
|
5082
5079
|
n && n(!0);
|
|
5083
5080
|
const r = await Promise.all(
|
|
5084
5081
|
e.data.regions.map(async (d, C) => {
|
|
5085
|
-
const w = await
|
|
5082
|
+
const w = await lt(o[C]), h = s.getImageData(), u = A.map((I) => new ne(I.id)), E = h ? Bt(h, w) : void 0, D = h ? {
|
|
5086
5083
|
id: J(),
|
|
5087
5084
|
src: h.src,
|
|
5088
5085
|
x: (E == null ? void 0 : E.x) || 0,
|
|
@@ -5100,9 +5097,6 @@ class An {
|
|
|
5100
5097
|
frameData: w,
|
|
5101
5098
|
pattern: D,
|
|
5102
5099
|
disablePlaceholder: e.data.disablePlaceholder,
|
|
5103
|
-
focalBlur: e.data.focalBlur,
|
|
5104
|
-
focalBlurStrength: e.data.focalBlurStrength,
|
|
5105
|
-
focalBlurRadius: e.data.focalBlurRadius,
|
|
5106
5100
|
stepName: e.stepName
|
|
5107
5101
|
}),
|
|
5108
5102
|
regionEl: {
|
|
@@ -5245,13 +5239,13 @@ class an {
|
|
|
5245
5239
|
if (a != null && a.selectedVariants) {
|
|
5246
5240
|
const c = a.selectedVariants[0].id;
|
|
5247
5241
|
if (o && c) {
|
|
5248
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5242
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
5249
5243
|
if (B) {
|
|
5250
|
-
const
|
|
5244
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5251
5245
|
await t.setSelectionsAndElements(
|
|
5252
5246
|
e.stepName,
|
|
5253
5247
|
[B],
|
|
5254
|
-
|
|
5248
|
+
l,
|
|
5255
5249
|
async () => {
|
|
5256
5250
|
var d;
|
|
5257
5251
|
t.updateMetadata(e.stepName, {
|
|
@@ -5277,12 +5271,12 @@ class an {
|
|
|
5277
5271
|
async changeColorsCommand(e, t, A, a, n) {
|
|
5278
5272
|
var c;
|
|
5279
5273
|
const i = {};
|
|
5280
|
-
for (const [B,
|
|
5281
|
-
i[B] = { browserValue:
|
|
5274
|
+
for (const [B, l] of n.entries())
|
|
5275
|
+
i[B] = { browserValue: l, spotColor: (c = i[B]) == null ? void 0 : c.spotColor };
|
|
5282
5276
|
const s = zA(e, t, A, i), o = await ve(s), r = [];
|
|
5283
5277
|
for (const B of a) {
|
|
5284
|
-
for (const [
|
|
5285
|
-
r.push(new at(B,
|
|
5278
|
+
for (const [l, d] of n.entries())
|
|
5279
|
+
r.push(new at(B, l, d));
|
|
5286
5280
|
r.push(new KA(B, s, o));
|
|
5287
5281
|
}
|
|
5288
5282
|
return new k(r);
|
|
@@ -5314,7 +5308,7 @@ class an {
|
|
|
5314
5308
|
B.set(w, h.browserValue);
|
|
5315
5309
|
}), !i.svg)
|
|
5316
5310
|
throw new Error("Colors changed before SVG loaded. This should never happen!");
|
|
5317
|
-
const
|
|
5311
|
+
const l = await this.changeColorsCommand(
|
|
5318
5312
|
i.svg,
|
|
5319
5313
|
i.width,
|
|
5320
5314
|
i.height,
|
|
@@ -5323,7 +5317,7 @@ class an {
|
|
|
5323
5317
|
);
|
|
5324
5318
|
A.updateStorage(e.stepName, {
|
|
5325
5319
|
colors: o
|
|
5326
|
-
}), A.getCommandDispatcher()(
|
|
5320
|
+
}), A.getCommandDispatcher()(l);
|
|
5327
5321
|
}
|
|
5328
5322
|
async selectVariant(e, t, A, a, n) {
|
|
5329
5323
|
const i = await this.selectVariantCommand(e, t, A, a, n);
|
|
@@ -5356,7 +5350,7 @@ class an {
|
|
|
5356
5350
|
svg: r
|
|
5357
5351
|
})
|
|
5358
5352
|
};
|
|
5359
|
-
},
|
|
5353
|
+
}, l = e.data.regions.map(B), C = [...l.map((E) => E.command), ...i];
|
|
5360
5354
|
let w = Array.from(Object.values(r.colors)).map((E) => E.browserValue);
|
|
5361
5355
|
const h = e.data.colorOption;
|
|
5362
5356
|
return h && ((u = h.variants) == null || u.forEach((E) => {
|
|
@@ -5370,7 +5364,7 @@ class an {
|
|
|
5370
5364
|
await n.setSelectionsAndElements(
|
|
5371
5365
|
e.stepName,
|
|
5372
5366
|
[t],
|
|
5373
|
-
|
|
5367
|
+
l.map((Q) => Q.regionElement),
|
|
5374
5368
|
async () => {
|
|
5375
5369
|
n.setMandatoryFulfilled(e.stepName, !0), a(!1);
|
|
5376
5370
|
}
|
|
@@ -5380,7 +5374,7 @@ class an {
|
|
|
5380
5374
|
const Q = E[0], p = D[0];
|
|
5381
5375
|
await this.changeColors(
|
|
5382
5376
|
e,
|
|
5383
|
-
|
|
5377
|
+
l.map((m) => m.regionElement),
|
|
5384
5378
|
n,
|
|
5385
5379
|
() => n.getCommandContext().getAllLayouts(),
|
|
5386
5380
|
/* @__PURE__ */ new Map([[p, Q.variant.color]])
|
|
@@ -5388,7 +5382,7 @@ class an {
|
|
|
5388
5382
|
} else
|
|
5389
5383
|
e.data.colorPickerEnabled && await this.changeColors(
|
|
5390
5384
|
e,
|
|
5391
|
-
|
|
5385
|
+
l.map((Q) => Q.regionElement),
|
|
5392
5386
|
n,
|
|
5393
5387
|
() => n.getCommandContext().getAllLayouts(),
|
|
5394
5388
|
/* @__PURE__ */ new Map()
|
|
@@ -5424,9 +5418,9 @@ class nn {
|
|
|
5424
5418
|
if (a != null && a.selectedVariants) {
|
|
5425
5419
|
const c = a.selectedVariants[0].id;
|
|
5426
5420
|
if (c) {
|
|
5427
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5421
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
5428
5422
|
if (B) {
|
|
5429
|
-
const
|
|
5423
|
+
const l = B.material, d = s.map((C) => ({ id: C.id, region: C.stepRegion }));
|
|
5430
5424
|
await t.setSelectionsAndElements(
|
|
5431
5425
|
e.stepName,
|
|
5432
5426
|
[B],
|
|
@@ -5437,7 +5431,7 @@ class nn {
|
|
|
5437
5431
|
const w = e.data.targetMaterials.map((h) => C.applyMaterialVariant(
|
|
5438
5432
|
h,
|
|
5439
5433
|
o.id || "",
|
|
5440
|
-
|
|
5434
|
+
l || {}
|
|
5441
5435
|
));
|
|
5442
5436
|
Promise.all(w).then(
|
|
5443
5437
|
() => t.setMandatoryFulfilled(e.stepName, !0)
|
|
@@ -5500,13 +5494,13 @@ class sn {
|
|
|
5500
5494
|
if (a != null && a.selectedVariants) {
|
|
5501
5495
|
const c = a.selectedVariants[0].id;
|
|
5502
5496
|
if (o && c) {
|
|
5503
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5497
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
5504
5498
|
if (B) {
|
|
5505
|
-
const
|
|
5499
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5506
5500
|
await t.setSelectionsAndElements(
|
|
5507
5501
|
e.stepName,
|
|
5508
5502
|
[B],
|
|
5509
|
-
|
|
5503
|
+
l,
|
|
5510
5504
|
async () => {
|
|
5511
5505
|
var C;
|
|
5512
5506
|
const d = t.getModelContainer();
|
|
@@ -5596,55 +5590,55 @@ class on {
|
|
|
5596
5590
|
if (A.setMandatoryFulfilled(e.stepName, t !== ""), !e.data || !e.data.regions || e.data.regions.length <= 0)
|
|
5597
5591
|
return console.error("Missing configuration."), null;
|
|
5598
5592
|
A.updateStorage(e.stepName, { text: t }), A.updateMetadata(e.stepName, { text: t });
|
|
5599
|
-
const r = (B,
|
|
5600
|
-
const C = d || J(), h = A.getLayouts().find((E) => E.panelId ===
|
|
5593
|
+
const r = (B, l, d) => {
|
|
5594
|
+
const C = d || J(), h = A.getLayouts().find((E) => E.panelId === l.panelId);
|
|
5601
5595
|
if (!h)
|
|
5602
|
-
return console.error(`Can not find layout for region: ${
|
|
5596
|
+
return console.error(`Can not find layout for region: ${l.panelId}`), null;
|
|
5603
5597
|
const u = [];
|
|
5604
5598
|
return d && u.push(new ne(C)), u.push(
|
|
5605
5599
|
new L(
|
|
5606
5600
|
{
|
|
5607
|
-
stepRegion:
|
|
5601
|
+
stepRegion: l,
|
|
5608
5602
|
stepName: e.stepName,
|
|
5609
5603
|
colors: {},
|
|
5610
5604
|
id: C,
|
|
5611
5605
|
svg: B,
|
|
5612
5606
|
type: G.Illustration,
|
|
5613
|
-
y:
|
|
5614
|
-
x:
|
|
5615
|
-
rotation:
|
|
5616
|
-
width:
|
|
5617
|
-
height:
|
|
5618
|
-
layer:
|
|
5619
|
-
layerIndex:
|
|
5620
|
-
immutable:
|
|
5607
|
+
y: l.top,
|
|
5608
|
+
x: l.left,
|
|
5609
|
+
rotation: l.rotation,
|
|
5610
|
+
width: l.width,
|
|
5611
|
+
height: l.height,
|
|
5612
|
+
layer: l.layer,
|
|
5613
|
+
layerIndex: l.layerIndex,
|
|
5614
|
+
immutable: l.immutable
|
|
5621
5615
|
},
|
|
5622
5616
|
h
|
|
5623
5617
|
)
|
|
5624
5618
|
), {
|
|
5625
5619
|
id: C,
|
|
5626
|
-
region:
|
|
5620
|
+
region: l,
|
|
5627
5621
|
command: new k(u)
|
|
5628
5622
|
};
|
|
5629
5623
|
};
|
|
5630
5624
|
if (i.length > 0) {
|
|
5631
|
-
const
|
|
5625
|
+
const l = i.map((d) => {
|
|
5632
5626
|
if (!d.region)
|
|
5633
5627
|
return null;
|
|
5634
5628
|
const C = s.svgPrint(t, d.region);
|
|
5635
5629
|
return r(C, d.region, d.id);
|
|
5636
5630
|
}).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
|
|
5637
5631
|
return {
|
|
5638
|
-
command: new k(
|
|
5632
|
+
command: new k(l),
|
|
5639
5633
|
followup: async () => {
|
|
5640
5634
|
}
|
|
5641
5635
|
};
|
|
5642
5636
|
} else {
|
|
5643
5637
|
const B = e.data.regions.map(
|
|
5644
5638
|
(d) => r(s.svgPrint(t, d), d)
|
|
5645
|
-
),
|
|
5639
|
+
), l = B.filter((d) => !!d).map((d) => d && d.command);
|
|
5646
5640
|
return {
|
|
5647
|
-
command: new k(
|
|
5641
|
+
command: new k(l),
|
|
5648
5642
|
followup: async () => {
|
|
5649
5643
|
const d = B.filter((C) => C).map((C) => C && { id: C.id, region: C.region });
|
|
5650
5644
|
await A.setSelectionsAndElements(
|
|
@@ -5696,13 +5690,13 @@ class rn {
|
|
|
5696
5690
|
if (a != null && a.selectedVariants) {
|
|
5697
5691
|
const c = a.selectedVariants[0].id;
|
|
5698
5692
|
if (o && c) {
|
|
5699
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5693
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
5700
5694
|
if (B) {
|
|
5701
|
-
const
|
|
5695
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5702
5696
|
await t.setSelectionsAndElements(
|
|
5703
5697
|
e.stepName,
|
|
5704
5698
|
[B],
|
|
5705
|
-
|
|
5699
|
+
l,
|
|
5706
5700
|
async () => {
|
|
5707
5701
|
t.setMandatoryFulfilled(e.stepName, !0);
|
|
5708
5702
|
}
|
|
@@ -5826,7 +5820,7 @@ class cn {
|
|
|
5826
5820
|
}
|
|
5827
5821
|
}
|
|
5828
5822
|
const QA = new cn();
|
|
5829
|
-
class
|
|
5823
|
+
class gn {
|
|
5830
5824
|
constructor() {
|
|
5831
5825
|
this.shapeFillId = "spiff-fill-shape";
|
|
5832
5826
|
}
|
|
@@ -5883,13 +5877,13 @@ class ln {
|
|
|
5883
5877
|
if (a != null && a.selectedVariants) {
|
|
5884
5878
|
const c = a.selectedVariants[0].id;
|
|
5885
5879
|
if (o && c) {
|
|
5886
|
-
const B = (r = o.variants) == null ? void 0 : r.find((
|
|
5880
|
+
const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === c);
|
|
5887
5881
|
if (B) {
|
|
5888
|
-
const
|
|
5882
|
+
const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
|
|
5889
5883
|
await t.setSelectionsAndElements(
|
|
5890
5884
|
e.stepName,
|
|
5891
5885
|
[B],
|
|
5892
|
-
|
|
5886
|
+
l,
|
|
5893
5887
|
async () => {
|
|
5894
5888
|
var d;
|
|
5895
5889
|
t.updateStorage(e.stepName, {
|
|
@@ -5913,9 +5907,9 @@ class ln {
|
|
|
5913
5907
|
};
|
|
5914
5908
|
if (A.length > 0) {
|
|
5915
5909
|
const r = (B) => {
|
|
5916
|
-
const
|
|
5917
|
-
if (!n.find((w) => w.panelId === (
|
|
5918
|
-
throw new z(
|
|
5910
|
+
const l = B.region;
|
|
5911
|
+
if (!n.find((w) => w.panelId === (l == null ? void 0 : l.panelId)))
|
|
5912
|
+
throw new z(l);
|
|
5919
5913
|
const C = s();
|
|
5920
5914
|
return new at(B.id, this.shapeFillId, C);
|
|
5921
5915
|
}, c = A.map(r).filter((B) => !!B);
|
|
@@ -5981,14 +5975,14 @@ class ln {
|
|
|
5981
5975
|
C
|
|
5982
5976
|
)
|
|
5983
5977
|
};
|
|
5984
|
-
}, c = e.data.regions.map(r), B = c.filter((d) => !!d).map((d) => d == null ? void 0 : d.command),
|
|
5978
|
+
}, c = e.data.regions.map(r), B = c.filter((d) => !!d).map((d) => d == null ? void 0 : d.command), l = c.filter((d) => !!d).map((d) => ({ id: d.id, region: d.region }));
|
|
5985
5979
|
return {
|
|
5986
5980
|
command: new k(B),
|
|
5987
5981
|
followup: async () => {
|
|
5988
5982
|
await a.setSelectionsAndElements(
|
|
5989
5983
|
e.stepName,
|
|
5990
5984
|
t.variant ? [t.variant] : [],
|
|
5991
|
-
|
|
5985
|
+
l,
|
|
5992
5986
|
async () => {
|
|
5993
5987
|
a.updateStorage(e.stepName, { colour: s() });
|
|
5994
5988
|
}
|
|
@@ -5998,8 +5992,8 @@ class ln {
|
|
|
5998
5992
|
}
|
|
5999
5993
|
}
|
|
6000
5994
|
}
|
|
6001
|
-
const Ee = new
|
|
6002
|
-
class
|
|
5995
|
+
const Ee = new gn();
|
|
5996
|
+
class ln {
|
|
6003
5997
|
constructor() {
|
|
6004
5998
|
this.latestToast = null, this.toastType = null, this.toastCallbacks = [];
|
|
6005
5999
|
}
|
|
@@ -6024,7 +6018,7 @@ class gn {
|
|
|
6024
6018
|
);
|
|
6025
6019
|
}
|
|
6026
6020
|
}
|
|
6027
|
-
const Bn = new
|
|
6021
|
+
const Bn = new ln(), Ze = 30;
|
|
6028
6022
|
class be extends Error {
|
|
6029
6023
|
constructor(e) {
|
|
6030
6024
|
super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = be.name;
|
|
@@ -6093,11 +6087,11 @@ class Cn {
|
|
|
6093
6087
|
color: ((s = await this.getDefaultColorVariant(e.data)) == null ? void 0 : s.name) || await this.getDefaultColor(e.data),
|
|
6094
6088
|
fillImage: o == null ? void 0 : o.name
|
|
6095
6089
|
});
|
|
6096
|
-
const
|
|
6097
|
-
if (
|
|
6090
|
+
const l = V.getDefaultVariant(a);
|
|
6091
|
+
if (l)
|
|
6098
6092
|
return this.selectVariantCommand(
|
|
6099
6093
|
e,
|
|
6100
|
-
|
|
6094
|
+
l,
|
|
6101
6095
|
{},
|
|
6102
6096
|
[],
|
|
6103
6097
|
t,
|
|
@@ -6221,19 +6215,19 @@ class Cn {
|
|
|
6221
6215
|
for (const B of t) {
|
|
6222
6216
|
if (!B.fontData)
|
|
6223
6217
|
throw new b("Failed to resolve font data for text.");
|
|
6224
|
-
const [
|
|
6218
|
+
const [l, d] = xe(
|
|
6225
6219
|
B.fontSize,
|
|
6226
6220
|
B.fontData,
|
|
6227
6221
|
{ left: B.x, top: B.y, width: B.width, height: B.height, rotation: B.rotation, panelId: "" },
|
|
6228
6222
|
[i],
|
|
6229
6223
|
{ size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
|
|
6230
6224
|
);
|
|
6231
|
-
r.set(B.id,
|
|
6225
|
+
r.set(B.id, l), c.set(B.id, d);
|
|
6232
6226
|
const C = A.data.curved ? i : (d || []).join(`
|
|
6233
6227
|
`);
|
|
6234
|
-
o.push(this.generateTextChangeCommandsForRegion(
|
|
6228
|
+
o.push(this.generateTextChangeCommandsForRegion(l, A.data, B.id, C));
|
|
6235
6229
|
}
|
|
6236
|
-
return !A.data.curved && t.length > 0 && !Array.from(c.values()).every((
|
|
6230
|
+
return !A.data.curved && t.length > 0 && !Array.from(c.values()).every((l) => l) ? (s.errorData || (s.errorData = {}), s.errorData.doesNotFit = !0, s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
|
|
6237
6231
|
text: i
|
|
6238
6232
|
}), (n.defaultCleared || !A.data.deleteDefaultOnFocus) && a.setMandatoryFulfilled(A.stepName, !0), s.command = new k(o), s);
|
|
6239
6233
|
}
|
|
@@ -6266,11 +6260,11 @@ class Cn {
|
|
|
6266
6260
|
const a = t.getSerializedStep(
|
|
6267
6261
|
e.stepName,
|
|
6268
6262
|
A.serializableWorkflow.steps
|
|
6269
|
-
), s = Object.values(A.layouts).map((
|
|
6263
|
+
), s = Object.values(A.layouts).map((l) => l.elements).flat().filter((l) => l.stepName === e.stepName), o = e.option;
|
|
6270
6264
|
if (a != null && a.selectedVariants) {
|
|
6271
|
-
const
|
|
6272
|
-
if (o &&
|
|
6273
|
-
const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id ===
|
|
6265
|
+
const l = a.selectedVariants[0].id;
|
|
6266
|
+
if (o && l) {
|
|
6267
|
+
const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id === l);
|
|
6274
6268
|
if (d) {
|
|
6275
6269
|
const C = await this.fontDataFromVariant(d), w = s.map((D) => ({ id: D.id, region: D.stepRegion })), h = (c = a.storage) == null ? void 0 : c.color, u = (B = a.storage) == null ? void 0 : B.text;
|
|
6276
6270
|
await t.setSelectionsAndElements(
|
|
@@ -6328,10 +6322,10 @@ class Cn {
|
|
|
6328
6322
|
var B;
|
|
6329
6323
|
const r = n.markUpdatePending(), c = await this.fontDataFromVariant(t);
|
|
6330
6324
|
if (a.length > 0) {
|
|
6331
|
-
const
|
|
6325
|
+
const l = a.map((w) => new St(w.id, c));
|
|
6332
6326
|
if (o) {
|
|
6333
6327
|
const w = a.map((h) => new Xe(h.id, o));
|
|
6334
|
-
|
|
6328
|
+
l.push(...w);
|
|
6335
6329
|
}
|
|
6336
6330
|
const d = await this.changeInputTextWithRegion(
|
|
6337
6331
|
e,
|
|
@@ -6344,14 +6338,14 @@ class Cn {
|
|
|
6344
6338
|
i,
|
|
6345
6339
|
s
|
|
6346
6340
|
);
|
|
6347
|
-
return d &&
|
|
6348
|
-
command: new k(
|
|
6341
|
+
return d && l.push(d), {
|
|
6342
|
+
command: new k(l),
|
|
6349
6343
|
followup: async () => {
|
|
6350
6344
|
n.markUpdateCompleted(r), await n.setSelectionsAndElements(e.stepName, [t], a);
|
|
6351
6345
|
}
|
|
6352
6346
|
};
|
|
6353
6347
|
} else {
|
|
6354
|
-
const
|
|
6348
|
+
const l = await this.createTextboxRegions(
|
|
6355
6349
|
e.stepName,
|
|
6356
6350
|
t,
|
|
6357
6351
|
e.data,
|
|
@@ -6362,15 +6356,15 @@ class Cn {
|
|
|
6362
6356
|
e,
|
|
6363
6357
|
e.data.size || Ze,
|
|
6364
6358
|
c,
|
|
6365
|
-
((B =
|
|
6359
|
+
((B = l[0]) == null ? void 0 : B.newElement.input) || A.text || e.data.defaultText || "",
|
|
6366
6360
|
A,
|
|
6367
6361
|
n,
|
|
6368
6362
|
!!A.customiseAllText,
|
|
6369
6363
|
i,
|
|
6370
6364
|
s
|
|
6371
|
-
), C =
|
|
6365
|
+
), C = l.flatMap((h) => h.commands);
|
|
6372
6366
|
if (o) {
|
|
6373
|
-
const h =
|
|
6367
|
+
const h = l.map(
|
|
6374
6368
|
(u) => new Xe(u.regionElement.id, o)
|
|
6375
6369
|
);
|
|
6376
6370
|
C.push(...h);
|
|
@@ -6496,30 +6490,30 @@ class Cn {
|
|
|
6496
6490
|
* @deprecated
|
|
6497
6491
|
*/
|
|
6498
6492
|
async changeInputTextWithRegion(e, t, A, a, n, i, s, o, r, c) {
|
|
6499
|
-
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""),
|
|
6493
|
+
const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), C = /* @__PURE__ */ new Map(), w = /* @__PURE__ */ new Map();
|
|
6500
6494
|
for (const Q of d)
|
|
6501
6495
|
if (Q.region) {
|
|
6502
6496
|
const [p, m] = xe(
|
|
6503
6497
|
t,
|
|
6504
6498
|
A,
|
|
6505
6499
|
Q.region,
|
|
6506
|
-
[
|
|
6500
|
+
[l],
|
|
6507
6501
|
{ size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
|
|
6508
6502
|
);
|
|
6509
6503
|
C.set(Q.id, p), w.set(Q.id, m);
|
|
6510
6504
|
}
|
|
6511
6505
|
const u = (() => {
|
|
6512
|
-
if (e.data && e.data.maxLength &&
|
|
6506
|
+
if (e.data && e.data.maxLength && l.length > e.data.maxLength)
|
|
6513
6507
|
return c && c(!0), { info: "0" };
|
|
6514
|
-
const Q = i.getProfanities(), p = st(
|
|
6508
|
+
const Q = i.getProfanities(), p = st(l.toLowerCase());
|
|
6515
6509
|
for (const m of p)
|
|
6516
6510
|
for (const I in Q) {
|
|
6517
6511
|
const F = Q[I].toLowerCase().replace(/\s/g, "");
|
|
6518
6512
|
if (m === F)
|
|
6519
6513
|
return o(!0), { error: "Blocked profanity." };
|
|
6520
6514
|
}
|
|
6521
|
-
return !e.data.vertical && !e.data.allowNewlines && (
|
|
6522
|
-
`) ||
|
|
6515
|
+
return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
|
|
6516
|
+
`) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(w.values()).every((I) => I) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - l.length).toString() });
|
|
6523
6517
|
})();
|
|
6524
6518
|
if (u.error) {
|
|
6525
6519
|
r(u.error);
|
|
@@ -6532,7 +6526,7 @@ class Cn {
|
|
|
6532
6526
|
}), (n.defaultCleared || !e.data.deleteDefaultOnFocus) && i.setMandatoryFulfilled(e.stepName, !0);
|
|
6533
6527
|
const E = [];
|
|
6534
6528
|
for (const Q of d) {
|
|
6535
|
-
const p = e.data.curved ?
|
|
6529
|
+
const p = e.data.curved ? l : (w.get(Q.id) || []).join(`
|
|
6536
6530
|
`);
|
|
6537
6531
|
E.push(
|
|
6538
6532
|
this.generateTextChangeCommandsForRegion(
|
|
@@ -7810,42 +7804,42 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
|
|
|
7810
7804
|
</g>
|
|
7811
7805
|
</svg>
|
|
7812
7806
|
|
|
7813
|
-
`, v = (
|
|
7807
|
+
`, v = (g) => ZA("http://www.w3.org/2000/svg", g), Qt = (g, e) => {
|
|
7814
7808
|
const t = v("rect");
|
|
7815
|
-
return t.setAttribute("height", `${
|
|
7809
|
+
return t.setAttribute("height", `${g}`), t.setAttribute("width", `${e}`), t;
|
|
7816
7810
|
}, En = () => {
|
|
7817
|
-
const
|
|
7818
|
-
return
|
|
7819
|
-
}, un = (
|
|
7811
|
+
const g = v("svg");
|
|
7812
|
+
return g.setAttribute("xmlns", "http://www.w3.org/2000/svg"), g.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"), g.setAttribute("version", "1.1"), g;
|
|
7813
|
+
}, un = (g) => {
|
|
7820
7814
|
const e = v("use");
|
|
7821
|
-
return e.setAttribute("xlink:href",
|
|
7815
|
+
return e.setAttribute("xlink:href", g), e.setAttribute("href", g), e;
|
|
7822
7816
|
};
|
|
7823
|
-
function pA(
|
|
7824
|
-
const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(
|
|
7817
|
+
function pA(g) {
|
|
7818
|
+
const e = En(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(g) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
|
|
7825
7819
|
return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
|
|
7826
7820
|
}
|
|
7827
|
-
const mn = (
|
|
7821
|
+
const mn = (g, e, t) => {
|
|
7828
7822
|
const A = v("g");
|
|
7829
|
-
|
|
7823
|
+
g.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
|
|
7830
7824
|
};
|
|
7831
|
-
function DA(
|
|
7825
|
+
function DA(g, e, t) {
|
|
7832
7826
|
const A = J();
|
|
7833
|
-
mn(e, t, `bgdef-${A}`),
|
|
7827
|
+
mn(e, t, `bgdef-${A}`), g.appendChild(un(`#bgdef-${A}`));
|
|
7834
7828
|
}
|
|
7835
|
-
const IA = (
|
|
7829
|
+
const IA = (g, e, t, A) => {
|
|
7836
7830
|
const a = Ie("filter");
|
|
7837
7831
|
a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
|
|
7838
7832
|
const n = Ie("feOffset");
|
|
7839
|
-
a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${
|
|
7833
|
+
a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${g}`), n.setAttribute("dy", `${e}`);
|
|
7840
7834
|
const i = Ie("feGaussianBlur");
|
|
7841
7835
|
a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
|
|
7842
7836
|
const s = Ie("feBlend");
|
|
7843
7837
|
return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
|
|
7844
|
-
}, fA = (
|
|
7845
|
-
let e =
|
|
7838
|
+
}, fA = (g) => {
|
|
7839
|
+
let e = g;
|
|
7846
7840
|
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;
|
|
7847
7841
|
};
|
|
7848
|
-
function pt(
|
|
7842
|
+
function pt(g, e, t, A, a, n) {
|
|
7849
7843
|
const i = a || 1, s = n || 1, o = {
|
|
7850
7844
|
x: e[0],
|
|
7851
7845
|
y: e[1],
|
|
@@ -7855,10 +7849,10 @@ function pt(l, e, t, A, a, n) {
|
|
|
7855
7849
|
if (o.width <= 0)
|
|
7856
7850
|
return;
|
|
7857
7851
|
const r = Qn(o.height, o.width, t * i, A * s), c = (A - r * o.width) / 2 - r * o.x, B = (t - r * o.height) / 2 - r * o.y;
|
|
7858
|
-
|
|
7852
|
+
g.setAttribute("transform", `translate(${c} ${B}) scale(${r} ${r})`);
|
|
7859
7853
|
}
|
|
7860
|
-
function Qn(
|
|
7861
|
-
const a = t /
|
|
7854
|
+
function Qn(g, e, t, A) {
|
|
7855
|
+
const a = t / g, n = A / e;
|
|
7862
7856
|
return a > 1 && n > 1 ? Math.min(a, n) : a > 1 && n < 1 ? n : a < 1 && n > 1 ? a : Math.min(a, n);
|
|
7863
7857
|
}
|
|
7864
7858
|
const Gt = {
|
|
@@ -7895,18 +7889,18 @@ class Dt {
|
|
|
7895
7889
|
o && (i.push(s), t = s);
|
|
7896
7890
|
for (const c of r) {
|
|
7897
7891
|
const B = n[c];
|
|
7898
|
-
let
|
|
7892
|
+
let l;
|
|
7899
7893
|
switch (typeof B) {
|
|
7900
7894
|
case "boolean":
|
|
7901
|
-
|
|
7895
|
+
l = B | 0;
|
|
7902
7896
|
break;
|
|
7903
7897
|
case "number":
|
|
7904
|
-
|
|
7898
|
+
l = (B * 100 | 0) / 100;
|
|
7905
7899
|
break;
|
|
7906
7900
|
default:
|
|
7907
7901
|
throw new he("Failed to encode path.");
|
|
7908
7902
|
}
|
|
7909
|
-
o || i.push(" "), i.push(
|
|
7903
|
+
o || i.push(" "), i.push(l), o = !1;
|
|
7910
7904
|
}
|
|
7911
7905
|
return i.join("");
|
|
7912
7906
|
};
|
|
@@ -7928,8 +7922,8 @@ class Dt {
|
|
|
7928
7922
|
);
|
|
7929
7923
|
for (let c = 0; c < s.length / r.length; c++) {
|
|
7930
7924
|
const B = { type: i, relative: o };
|
|
7931
|
-
for (let
|
|
7932
|
-
B[r[
|
|
7925
|
+
for (let l = 0; l < r.length; l++)
|
|
7926
|
+
B[r[l]] = s[c * r.length + l];
|
|
7933
7927
|
a.push(B);
|
|
7934
7928
|
}
|
|
7935
7929
|
} else
|
|
@@ -8002,16 +7996,16 @@ class pn extends mt {
|
|
|
8002
7996
|
return "";
|
|
8003
7997
|
const B = v("defs");
|
|
8004
7998
|
o.appendChild(B), DA(o, B, t);
|
|
8005
|
-
const
|
|
7999
|
+
const l = r * 0.23, d = c * 0.94, C = c * 0.04, w = r * 0.53, h = v("g");
|
|
8006
8000
|
o.appendChild(h), h.setAttribute("transform", `translate(${C} ${w}) rotate(-21)`);
|
|
8007
|
-
const u = Qt(
|
|
8001
|
+
const u = Qt(l, d);
|
|
8008
8002
|
u.setAttribute("opacity", "0"), h.appendChild(u);
|
|
8009
8003
|
const E = v("g");
|
|
8010
8004
|
h.appendChild(E);
|
|
8011
8005
|
const D = s();
|
|
8012
8006
|
E.appendChild(D);
|
|
8013
8007
|
const Q = wt(i);
|
|
8014
|
-
return pt(E, Q,
|
|
8008
|
+
return pt(E, Q, l, d), fA(o.outerHTML);
|
|
8015
8009
|
}
|
|
8016
8010
|
}
|
|
8017
8011
|
const Dn = "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==";
|
|
@@ -8042,13 +8036,13 @@ class In extends mt {
|
|
|
8042
8036
|
S,
|
|
8043
8037
|
T + (s / 3 - S) ** 2 / s * this.indicator(S < s / 3)
|
|
8044
8038
|
]), N.transform(([S, T]) => [S - (i - T) * (s - S) / 800, T]), I;
|
|
8045
|
-
}, [c, B,
|
|
8039
|
+
}, [c, B, l] = pA(t);
|
|
8046
8040
|
if (!c)
|
|
8047
8041
|
return "";
|
|
8048
8042
|
const d = v("defs");
|
|
8049
8043
|
c.appendChild(d), DA(c, d, t);
|
|
8050
8044
|
let C, w, h, u;
|
|
8051
|
-
A ? (C = B * 0.25 * (1 + 0.1), w =
|
|
8045
|
+
A ? (C = B * 0.25 * (1 + 0.1), w = l / 2 * (1 + 0.1), h = l * 0.22, u = B * 0.32) : (C = B * 0.22 * (1 + 0.1), w = l * 0.8, h = l * 0.067, u = B * 0.33);
|
|
8052
8046
|
const E = v("g");
|
|
8053
8047
|
c.appendChild(E), E.setAttribute("transform", `translate(${h} ${u}) rotate(-10)`);
|
|
8054
8048
|
const D = Qt(C, w);
|
|
@@ -8089,34 +8083,34 @@ class Fn extends mt {
|
|
|
8089
8083
|
F.classList.add("module-layer2"), D.appendChild(F), F.setAttribute("fill", "rgb(255,209,0)"), F.setAttribute("transform", "translate(1,-0.1)"), F.innerHTML = s;
|
|
8090
8084
|
const y = v("g");
|
|
8091
8085
|
return y.classList.add("module-layer3"), D.appendChild(y), y.setAttribute("fill", "white"), y.innerHTML = s, new Dt(D).transform(([N, S]) => [N, S + (r / 2 - N) ** 2 / (r * 6)]), D;
|
|
8092
|
-
},
|
|
8093
|
-
|
|
8086
|
+
}, l = v("g");
|
|
8087
|
+
l.classList.add("module-root");
|
|
8094
8088
|
const d = v("defs");
|
|
8095
|
-
|
|
8089
|
+
l.appendChild(d);
|
|
8096
8090
|
const C = v("g");
|
|
8097
|
-
C.classList.add("module-bounds"),
|
|
8091
|
+
C.classList.add("module-bounds"), l.appendChild(C);
|
|
8098
8092
|
const w = Qt(t.height, t.width);
|
|
8099
8093
|
w.setAttribute("opacity", "0"), C.appendChild(w);
|
|
8100
8094
|
const h = v("g");
|
|
8101
|
-
h.classList.add("module-text-enclosure"),
|
|
8095
|
+
h.classList.add("module-text-enclosure"), l.appendChild(h);
|
|
8102
8096
|
const u = B();
|
|
8103
8097
|
h.appendChild(u);
|
|
8104
8098
|
const E = wt(c);
|
|
8105
|
-
return pt(h, E, t.height, t.width, 0.35, 0.65), fA(
|
|
8099
|
+
return pt(h, E, t.height, t.width, 0.35, 0.65), fA(l.outerHTML);
|
|
8106
8100
|
}
|
|
8107
8101
|
}
|
|
8108
|
-
async function FA(
|
|
8109
|
-
if (
|
|
8102
|
+
async function FA(g) {
|
|
8103
|
+
if (g === "Favourites")
|
|
8110
8104
|
return new pn();
|
|
8111
|
-
if (
|
|
8105
|
+
if (g === "Maltesers") {
|
|
8112
8106
|
const e = _("https://assets.spiff.com.au/public/modules/img/MaltesersBackground.svg"), t = _("https://assets.spiff.com.au/public/modules/img/MaltesersBackgroundShort.svg"), A = await Promise.all([e, t]);
|
|
8113
8107
|
return new In(A[0], A[1]);
|
|
8114
8108
|
}
|
|
8115
|
-
if (
|
|
8109
|
+
if (g === "Vegemite")
|
|
8116
8110
|
return new Fn();
|
|
8117
|
-
throw new b(`Failed to resolve Module, Module ${
|
|
8111
|
+
throw new b(`Failed to resolve Module, Module ${g} not found`);
|
|
8118
8112
|
}
|
|
8119
|
-
var Ve = /* @__PURE__ */ ((
|
|
8113
|
+
var Ve = /* @__PURE__ */ ((g) => (g.Error = "Error", g.Warning = "Warning", g.Info = "Info", g))(Ve || {});
|
|
8120
8114
|
const yn = 1e3;
|
|
8121
8115
|
class bt extends BA {
|
|
8122
8116
|
constructor(e) {
|
|
@@ -8131,7 +8125,7 @@ class bt extends BA {
|
|
|
8131
8125
|
}
|
|
8132
8126
|
}
|
|
8133
8127
|
class Mn {
|
|
8134
|
-
constructor(e, t, A, a, n, i, s, o, r, c, B,
|
|
8128
|
+
constructor(e, t, A, a, n, i, s, o, r, c, B, l, d, C = !1, w, h = !1, u = !1, E = !1) {
|
|
8135
8129
|
this.workflowStatePromiseQueue = new dA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.stepTags = {}, this.renderLayouts = () => {
|
|
8136
8130
|
var p;
|
|
8137
8131
|
if (!this.previewService)
|
|
@@ -8140,7 +8134,7 @@ class Mn {
|
|
|
8140
8134
|
if (Q)
|
|
8141
8135
|
for (const [, m] of Q)
|
|
8142
8136
|
m.render(D);
|
|
8143
|
-
}, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = d, this.transaction = o, this.readOnly = C, this.singleVariantsRenderable = u, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = a, this.pollers = [], this.allScenes = [], this.layouts = n, this.product = r, this.previewService = B, this.modelContainer = w, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.validationErrors = { steps: /* @__PURE__ */ new Map() }, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.validationCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService =
|
|
8137
|
+
}, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = d, this.transaction = o, this.readOnly = C, this.singleVariantsRenderable = u, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = a, this.pollers = [], this.allScenes = [], this.layouts = n, this.product = r, this.previewService = B, this.modelContainer = w, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.validationErrors = { steps: /* @__PURE__ */ new Map() }, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.validationCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = l, this.isReloadedTransaction = h, this.stepTags = c, E && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
|
|
8144
8138
|
this.initialized = !0;
|
|
8145
8139
|
}), this.initializationPromise.catch((D) => {
|
|
8146
8140
|
throw console.error(D), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
|
|
@@ -8377,8 +8371,8 @@ class Mn {
|
|
|
8377
8371
|
throw new b(
|
|
8378
8372
|
"We should always have a model container when injecting a preview!"
|
|
8379
8373
|
);
|
|
8380
|
-
const
|
|
8381
|
-
if (!
|
|
8374
|
+
const l = (B = o.asset) == null ? void 0 : B.fileLink;
|
|
8375
|
+
if (!l) {
|
|
8382
8376
|
console.error(`Failed to read model url from variant: ${o.id} for step: ${i.stepName}`);
|
|
8383
8377
|
return;
|
|
8384
8378
|
}
|
|
@@ -8386,14 +8380,14 @@ class Mn {
|
|
|
8386
8380
|
this.modelContainer.applyModelVariant(
|
|
8387
8381
|
i.stepName,
|
|
8388
8382
|
{
|
|
8389
|
-
model:
|
|
8383
|
+
model: l,
|
|
8390
8384
|
contextService: this.getLayoutPreviewService()
|
|
8391
8385
|
},
|
|
8392
8386
|
d.replaceProductModel || !1
|
|
8393
8387
|
);
|
|
8394
8388
|
} else {
|
|
8395
|
-
const
|
|
8396
|
-
if (!
|
|
8389
|
+
const l = o.material;
|
|
8390
|
+
if (!l) {
|
|
8397
8391
|
console.error(`Failed to read material from variant: ${o.id} for step: ${i.stepName}`);
|
|
8398
8392
|
return;
|
|
8399
8393
|
}
|
|
@@ -8402,7 +8396,7 @@ class Mn {
|
|
|
8402
8396
|
throw new b(
|
|
8403
8397
|
"We should always have a model container when injecting a preview!"
|
|
8404
8398
|
);
|
|
8405
|
-
this.modelContainer.applyMaterialVariant(C, i.option.id,
|
|
8399
|
+
this.modelContainer.applyMaterialVariant(C, i.option.id, l);
|
|
8406
8400
|
});
|
|
8407
8401
|
}
|
|
8408
8402
|
}), await A.getInitializationPromise(), this.renderLayouts();
|
|
@@ -8474,7 +8468,7 @@ class Mn {
|
|
|
8474
8468
|
const e = this.getCommandContext().getState();
|
|
8475
8469
|
if (!e)
|
|
8476
8470
|
throw new b("Attempted to serialize state before it was initialized.");
|
|
8477
|
-
return { transaction: JSON.stringify(this.dehydrateState(
|
|
8471
|
+
return { transaction: JSON.stringify(this.dehydrateState(ge(e.transaction))) };
|
|
8478
8472
|
}
|
|
8479
8473
|
dehydrateState(e) {
|
|
8480
8474
|
var t;
|
|
@@ -8515,15 +8509,15 @@ class Mn {
|
|
|
8515
8509
|
return Promise.resolve({ stepElements: {}, commands: [] });
|
|
8516
8510
|
const a = async (r, c, B) => {
|
|
8517
8511
|
if (r.type === M.SilentIllustration) {
|
|
8518
|
-
const
|
|
8519
|
-
return { step: r, results:
|
|
8512
|
+
const l = await new kt(r, c).trigger();
|
|
8513
|
+
return { step: r, results: l };
|
|
8520
8514
|
} else if (r.type === M.ProductOverlay) {
|
|
8521
|
-
const
|
|
8515
|
+
const l = await new kt(
|
|
8522
8516
|
r,
|
|
8523
8517
|
c,
|
|
8524
8518
|
B
|
|
8525
8519
|
).trigger();
|
|
8526
|
-
return { step: r, results:
|
|
8520
|
+
return { step: r, results: l };
|
|
8527
8521
|
}
|
|
8528
8522
|
return Promise.reject("Unknown silent step. This is a bug");
|
|
8529
8523
|
}, n = e.filter(
|
|
@@ -8595,18 +8589,18 @@ class Mn {
|
|
|
8595
8589
|
r.forEach((m) => {
|
|
8596
8590
|
ae(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1);
|
|
8597
8591
|
});
|
|
8598
|
-
const
|
|
8592
|
+
const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: C } = await this.stepElementsForIntroducedSilentSteps(B, !1);
|
|
8599
8593
|
this.stepElements = {
|
|
8600
8594
|
...this.stepElements,
|
|
8601
8595
|
...d,
|
|
8602
8596
|
[e]: A
|
|
8603
|
-
}, this.removeElements(
|
|
8597
|
+
}, this.removeElements(l);
|
|
8604
8598
|
const w = this.workflow.steps.find((m) => m.stepName === e);
|
|
8605
8599
|
if ((w == null ? void 0 : w.type) === M.Frame) {
|
|
8606
8600
|
const m = this.getStepSpecificServices(e);
|
|
8607
8601
|
(p = m == null ? void 0 : m.frameService) == null || p.setTargetElements(A.map((I) => I.id));
|
|
8608
8602
|
}
|
|
8609
|
-
const h =
|
|
8603
|
+
const h = l.map((m) => new ne(m.id)), u = new Yt(this.constructSerializableWorkflow()), E = [...C, ...h, u];
|
|
8610
8604
|
E.length > 0 && this.commandContext.apply(new k(E), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
|
|
8611
8605
|
const D = this.getInvalidModelVariants(), Q = this.modelContainer;
|
|
8612
8606
|
if (Q) {
|
|
@@ -9492,11 +9486,11 @@ const MA = f`
|
|
|
9492
9486
|
}
|
|
9493
9487
|
}
|
|
9494
9488
|
`;
|
|
9495
|
-
function Te(
|
|
9496
|
-
const e = JSON.parse(atob(
|
|
9489
|
+
function Te(g) {
|
|
9490
|
+
const e = JSON.parse(atob(g.split(".")[1])).exp;
|
|
9497
9491
|
return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) >= e;
|
|
9498
9492
|
}
|
|
9499
|
-
const Jn = async (
|
|
9493
|
+
const Jn = async (g) => {
|
|
9500
9494
|
var i, s;
|
|
9501
9495
|
const t = ((i = Object.entries(localStorage).find(([o, r]) => o.startsWith("CognitoIdentityServiceProvider") && o.endsWith("idToken"))) == null ? void 0 : i[0]) || "", A = localStorage.getItem(t), a = {};
|
|
9502
9496
|
return A && !Te(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
@@ -9504,20 +9498,20 @@ const Jn = async (l) => {
|
|
|
9504
9498
|
errorPolicy: "all",
|
|
9505
9499
|
fetchPolicy: "no-cache",
|
|
9506
9500
|
variables: {
|
|
9507
|
-
name:
|
|
9508
|
-
layouts:
|
|
9509
|
-
workflowId:
|
|
9510
|
-
transactionId:
|
|
9511
|
-
previewImage:
|
|
9512
|
-
useThreeDimPreview:
|
|
9513
|
-
metadata:
|
|
9514
|
-
selectedVariants:
|
|
9501
|
+
name: g.name,
|
|
9502
|
+
layouts: g.layouts,
|
|
9503
|
+
workflowId: g.workflowId,
|
|
9504
|
+
transactionId: g.transactionId,
|
|
9505
|
+
previewImage: g.previewImage,
|
|
9506
|
+
useThreeDimPreview: g.useThreeDimPreview,
|
|
9507
|
+
metadata: g.metadata,
|
|
9508
|
+
selectedVariants: g.selectedVariants
|
|
9515
9509
|
},
|
|
9516
9510
|
context: {
|
|
9517
9511
|
headers: a
|
|
9518
9512
|
}
|
|
9519
9513
|
})).data) == null ? void 0 : s.designCreate;
|
|
9520
|
-
}, Tn = async (
|
|
9514
|
+
}, Tn = async (g) => {
|
|
9521
9515
|
var i, s;
|
|
9522
9516
|
const t = ((i = Object.entries(localStorage).find(([o, r]) => o.startsWith("CognitoIdentityServiceProvider") && o.endsWith("idToken"))) == null ? void 0 : i[0]) || "", A = localStorage.getItem(t), a = {};
|
|
9523
9517
|
return A && !Te(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
@@ -9525,7 +9519,7 @@ const Jn = async (l) => {
|
|
|
9525
9519
|
errorPolicy: "all",
|
|
9526
9520
|
fetchPolicy: "no-cache",
|
|
9527
9521
|
variables: {
|
|
9528
|
-
inputs:
|
|
9522
|
+
inputs: g.map((o) => ({
|
|
9529
9523
|
name: o.name,
|
|
9530
9524
|
layouts: o.layouts,
|
|
9531
9525
|
workflowId: o.workflowId,
|
|
@@ -9540,17 +9534,17 @@ const Jn = async (l) => {
|
|
|
9540
9534
|
headers: a
|
|
9541
9535
|
}
|
|
9542
9536
|
})).data) == null ? void 0 : s.designCreateMany;
|
|
9543
|
-
}, ct = (
|
|
9537
|
+
}, ct = (g, e, t) => {
|
|
9544
9538
|
const A = (n) => {
|
|
9545
9539
|
const i = {};
|
|
9546
9540
|
if (n.type === "Frame") {
|
|
9547
|
-
const s =
|
|
9541
|
+
const s = g[n.stepName], o = n.data;
|
|
9548
9542
|
if (!s || !s.image || o.hideImageInCart && t)
|
|
9549
9543
|
return i;
|
|
9550
9544
|
i[`${n.stepTitle} image`] = s.image;
|
|
9551
9545
|
}
|
|
9552
9546
|
if (n.type === "Illustration") {
|
|
9553
|
-
const s =
|
|
9547
|
+
const s = g[n.stepName], o = n.data;
|
|
9554
9548
|
if (!s || o.hideColorsInCart && t || !s.colors)
|
|
9555
9549
|
return i;
|
|
9556
9550
|
if (s.colors.length > 0) {
|
|
@@ -9559,13 +9553,13 @@ const Jn = async (l) => {
|
|
|
9559
9553
|
}
|
|
9560
9554
|
}
|
|
9561
9555
|
if (n.type === "Module") {
|
|
9562
|
-
const s =
|
|
9556
|
+
const s = g[n.stepName], o = n.data;
|
|
9563
9557
|
if (!s || s.text === void 0 || s.text === null || o.hideTextInCart && t)
|
|
9564
9558
|
return i;
|
|
9565
9559
|
i[`${n.stepTitle} text`] = s.text;
|
|
9566
9560
|
}
|
|
9567
9561
|
if (n.type === "Text") {
|
|
9568
|
-
const s =
|
|
9562
|
+
const s = g[n.stepName];
|
|
9569
9563
|
if (!s)
|
|
9570
9564
|
return i;
|
|
9571
9565
|
const o = n.data;
|
|
@@ -9576,14 +9570,14 @@ const Jn = async (l) => {
|
|
|
9576
9570
|
return e.steps.forEach((n) => {
|
|
9577
9571
|
Object.assign(a, A(n));
|
|
9578
9572
|
}), a;
|
|
9579
|
-
}, On = (
|
|
9573
|
+
}, On = (g, e, t, A) => {
|
|
9580
9574
|
const a = {};
|
|
9581
9575
|
let n = {};
|
|
9582
9576
|
t ? n = ct(t, e, !1) : A && (n = A);
|
|
9583
9577
|
const s = e.steps.map((o) => o.stepTitle).filter((o, r, c) => c.indexOf(o) == r);
|
|
9584
9578
|
for (const o of s) {
|
|
9585
|
-
if (Object.keys(
|
|
9586
|
-
const r =
|
|
9579
|
+
if (Object.keys(g).includes(o)) {
|
|
9580
|
+
const r = g[o], c = e.steps.find((B) => B.stepTitle === o);
|
|
9587
9581
|
a[`${c == null ? void 0 : c.stepTitle} selection`] = {
|
|
9588
9582
|
value: r[0].name,
|
|
9589
9583
|
priceModifier: r[0].priceModifier
|
|
@@ -9596,39 +9590,39 @@ const Jn = async (l) => {
|
|
|
9596
9590
|
});
|
|
9597
9591
|
}
|
|
9598
9592
|
return a;
|
|
9599
|
-
}, SA = (
|
|
9593
|
+
}, SA = (g, e, t, A, a, n, i, s) => {
|
|
9600
9594
|
var C, w;
|
|
9601
|
-
const o = e.basePrice || 0, r =
|
|
9602
|
-
additionalExternalProductId: (C =
|
|
9603
|
-
additionalExternalVariantId: (w =
|
|
9595
|
+
const o = e.basePrice || 0, r = g.priceModifierTotal || 0, c = On(A, t, void 0, n), l = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(g.id), d = {
|
|
9596
|
+
additionalExternalProductId: (C = g.integrationProduct) == null ? void 0 : C.additionalExternalProductId,
|
|
9597
|
+
additionalExternalVariantId: (w = g.integrationProduct) == null ? void 0 : w.additionalExternalVariantId,
|
|
9604
9598
|
baseCost: o,
|
|
9605
|
-
designExternalVariants:
|
|
9606
|
-
designProductId:
|
|
9607
|
-
designProductVariantId:
|
|
9599
|
+
designExternalVariants: g.designExternalVariants,
|
|
9600
|
+
designProductId: g.externalDesignProductId,
|
|
9601
|
+
designProductVariantId: g.externalDesignProductVariantId,
|
|
9608
9602
|
event: "onComplete",
|
|
9609
9603
|
exportedData: c,
|
|
9610
|
-
externalCartProductId:
|
|
9611
|
-
externalCartProductVariantId:
|
|
9604
|
+
externalCartProductId: g.externalCartProductId,
|
|
9605
|
+
externalCartProductVariantId: g.externalCartProductVariantId,
|
|
9612
9606
|
lineItemImageUrl: i || "",
|
|
9613
9607
|
optionsCost: r,
|
|
9614
9608
|
processExecutionId: s,
|
|
9615
|
-
quantity:
|
|
9616
|
-
transactionId:
|
|
9617
|
-
transactionOwnerId:
|
|
9609
|
+
quantity: g.quantity,
|
|
9610
|
+
transactionId: g.id,
|
|
9611
|
+
transactionOwnerId: l,
|
|
9618
9612
|
weight: e.weight,
|
|
9619
|
-
workflowViewerLink:
|
|
9620
|
-
workflowViewerReadOnlyLink:
|
|
9613
|
+
workflowViewerLink: g.workflowViewerLink || "",
|
|
9614
|
+
workflowViewerReadOnlyLink: g.workflowViewerReadOnlyLink || ""
|
|
9621
9615
|
};
|
|
9622
9616
|
return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
|
|
9623
|
-
}, YA = async (
|
|
9617
|
+
}, YA = async (g, e, t, A, a, n, i, s, o, r) => {
|
|
9624
9618
|
var F;
|
|
9625
9619
|
await (async () => {
|
|
9626
9620
|
var R;
|
|
9627
9621
|
if (r !== void 0)
|
|
9628
9622
|
return r;
|
|
9629
|
-
await
|
|
9623
|
+
await g.outstandingRequestsPromise();
|
|
9630
9624
|
const Y = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), S = await x.getShadowGraphqlClient().query({
|
|
9631
|
-
query:
|
|
9625
|
+
query: gA,
|
|
9632
9626
|
variables: { ids: [a.id] },
|
|
9633
9627
|
fetchPolicy: "no-cache",
|
|
9634
9628
|
errorPolicy: "all",
|
|
@@ -9639,8 +9633,8 @@ const Jn = async (l) => {
|
|
|
9639
9633
|
return S.errors ? (S.errors.forEach((W) => {
|
|
9640
9634
|
S.errors && console.log("Server Error:", W.message);
|
|
9641
9635
|
}), null) : T ?? null;
|
|
9642
|
-
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await
|
|
9643
|
-
const
|
|
9636
|
+
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await g.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
|
|
9637
|
+
const l = g.getPreviewService(), d = (F = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : F.lookAtAnimation, C = l && e.showModelOnFinishStep && !!d, w = o && ct(o, e, !0), h = o && ct(o, e, !1), u = async (y) => {
|
|
9644
9638
|
const Y = {};
|
|
9645
9639
|
let N = 0;
|
|
9646
9640
|
if (Object.keys(n).length > 0)
|
|
@@ -9714,11 +9708,11 @@ const Jn = async (l) => {
|
|
|
9714
9708
|
cartSelectionsWithPrices: E,
|
|
9715
9709
|
cartMetadata: w
|
|
9716
9710
|
};
|
|
9717
|
-
}, Ln = async (
|
|
9711
|
+
}, Ln = async (g, e, t, A, a, n, i, s, o, r, c) => {
|
|
9718
9712
|
var u, E;
|
|
9719
9713
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
9720
|
-
const { designDetails: B, cartSelectionsWithPrices:
|
|
9721
|
-
|
|
9714
|
+
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await YA(
|
|
9715
|
+
g,
|
|
9722
9716
|
e,
|
|
9723
9717
|
t,
|
|
9724
9718
|
A,
|
|
@@ -9738,23 +9732,23 @@ const Jn = async (l) => {
|
|
|
9738
9732
|
h,
|
|
9739
9733
|
a,
|
|
9740
9734
|
e,
|
|
9741
|
-
|
|
9735
|
+
l,
|
|
9742
9736
|
C == null ? void 0 : C.sku,
|
|
9743
9737
|
d,
|
|
9744
9738
|
w,
|
|
9745
9739
|
(E = C == null ? void 0 : C.processExecution) == null ? void 0 : E.id
|
|
9746
9740
|
);
|
|
9747
|
-
}, zn = async (
|
|
9741
|
+
}, zn = async (g, e, t) => {
|
|
9748
9742
|
e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
9749
|
-
|
|
9743
|
+
g.map(async (s) => {
|
|
9750
9744
|
await s.workflowManager.outstandingRequestsPromise();
|
|
9751
9745
|
})
|
|
9752
9746
|
);
|
|
9753
9747
|
const a = await (async () => {
|
|
9754
9748
|
var r;
|
|
9755
9749
|
const o = await x.getShadowGraphqlClient().query({
|
|
9756
|
-
query:
|
|
9757
|
-
variables: { ids:
|
|
9750
|
+
query: gA,
|
|
9751
|
+
variables: { ids: g.map((c) => c.transaction.id) },
|
|
9758
9752
|
fetchPolicy: "no-cache",
|
|
9759
9753
|
errorPolicy: "all"
|
|
9760
9754
|
});
|
|
@@ -9762,7 +9756,7 @@ const Jn = async (l) => {
|
|
|
9762
9756
|
o.errors && console.log("Server Error:", c.message);
|
|
9763
9757
|
}), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((c) => c.workflowState ?? null) : null;
|
|
9764
9758
|
})(), n = await Promise.all(
|
|
9765
|
-
|
|
9759
|
+
g.map(async (s, o) => await YA(
|
|
9766
9760
|
s.workflowManager,
|
|
9767
9761
|
s.workflow,
|
|
9768
9762
|
s.layouts,
|
|
@@ -9780,8 +9774,8 @@ const Jn = async (l) => {
|
|
|
9780
9774
|
if (!i)
|
|
9781
9775
|
throw new Error("Failed to create designs");
|
|
9782
9776
|
return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
|
|
9783
|
-
var
|
|
9784
|
-
const r =
|
|
9777
|
+
var l;
|
|
9778
|
+
const r = g[o], c = n[o], B = s.transaction;
|
|
9785
9779
|
return SA(
|
|
9786
9780
|
B,
|
|
9787
9781
|
r.product,
|
|
@@ -9791,7 +9785,7 @@ const Jn = async (l) => {
|
|
|
9791
9785
|
c.cartMetadata,
|
|
9792
9786
|
//lineItemImageLink,
|
|
9793
9787
|
void 0,
|
|
9794
|
-
(
|
|
9788
|
+
(l = s.processExecution) == null ? void 0 : l.id
|
|
9795
9789
|
);
|
|
9796
9790
|
});
|
|
9797
9791
|
};
|
|
@@ -9877,7 +9871,7 @@ const $e = new Kn(), jn = f`
|
|
|
9877
9871
|
}
|
|
9878
9872
|
}
|
|
9879
9873
|
`;
|
|
9880
|
-
var Vn = /* @__PURE__ */ ((
|
|
9874
|
+
var Vn = /* @__PURE__ */ ((g) => (g.QuantityChanged = "QuantityChanged", g.PriceBreakChanged = "PriceBreakChanged", g))(Vn || {});
|
|
9881
9875
|
class Me {
|
|
9882
9876
|
constructor(e, t) {
|
|
9883
9877
|
var a;
|
|
@@ -9980,10 +9974,10 @@ class Me {
|
|
|
9980
9974
|
y: 0,
|
|
9981
9975
|
width: c.layoutState.layout.width,
|
|
9982
9976
|
height: c.layoutState.layout.height
|
|
9983
|
-
},
|
|
9977
|
+
}, l = this.commandContext.getLayoutById(c.layoutState.layout.id), d = i.getContext("2d");
|
|
9984
9978
|
if (!d)
|
|
9985
9979
|
throw new je("Failed to obtain 2D context for preview image creation");
|
|
9986
|
-
const C = zt(
|
|
9980
|
+
const C = zt(l.layoutState.layout, l.layoutState.elements, {
|
|
9987
9981
|
renderingConfiguration: {
|
|
9988
9982
|
purpose: Kt.Print,
|
|
9989
9983
|
region: { left: B.x, top: B.y, width: B.width, height: B.height }
|
|
@@ -9995,7 +9989,7 @@ class Me {
|
|
|
9995
9989
|
createCanvas: He,
|
|
9996
9990
|
createImage: Vt,
|
|
9997
9991
|
DOMParser: Wt(),
|
|
9998
|
-
fetch:
|
|
9992
|
+
fetch: gt
|
|
9999
9993
|
})).render();
|
|
10000
9994
|
const u = await this.getCanvasObjectURLAsync(i);
|
|
10001
9995
|
return i.toDataURL(u);
|
|
@@ -10091,17 +10085,17 @@ class Me {
|
|
|
10091
10085
|
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())), s = t.getSteps(), o = (r) => a.find((c) => c.getRawProperty().name === r.aspectName);
|
|
10092
10086
|
i.forEach((r) => {
|
|
10093
10087
|
const c = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
|
|
10094
|
-
B !== void 0 && (B.forEach((
|
|
10095
|
-
const d =
|
|
10088
|
+
B !== void 0 && (B.forEach((l) => c.add(JSON.stringify(l))), s.forEach((l) => {
|
|
10089
|
+
const d = l.getRaw().globalPropertyAspectConfigurations;
|
|
10096
10090
|
d !== void 0 && d.forEach((C) => {
|
|
10097
10091
|
const w = o(C), h = c.has(JSON.stringify(C));
|
|
10098
10092
|
if (h && (w == null ? void 0 : w.getType()) === "Option") {
|
|
10099
|
-
const u =
|
|
10093
|
+
const u = l.getCurrentVariant();
|
|
10100
10094
|
if (!u)
|
|
10101
10095
|
return;
|
|
10102
10096
|
r.selectVariant(u), c.delete(JSON.stringify(C));
|
|
10103
10097
|
} else if (h && (w == null ? void 0 : w.getType()) === "Text") {
|
|
10104
|
-
const u =
|
|
10098
|
+
const u = l.getText();
|
|
10105
10099
|
r.setText(u), c.delete(JSON.stringify(C));
|
|
10106
10100
|
}
|
|
10107
10101
|
});
|
|
@@ -10181,7 +10175,7 @@ class Me {
|
|
|
10181
10175
|
}
|
|
10182
10176
|
async copy() {
|
|
10183
10177
|
var s;
|
|
10184
|
-
const e =
|
|
10178
|
+
const e = ge(this.getCommandContext().getState());
|
|
10185
10179
|
if (!e)
|
|
10186
10180
|
throw new b("Internal state is undefined! Cannot copy experience!");
|
|
10187
10181
|
const t = JSON.stringify(e.transaction), A = this.getWorkflowManager().getWorkflow(), a = new ss({}), n = (s = this.getWorkflowManager().getTransaction().integrationProduct) == null ? void 0 : s.id;
|
|
@@ -10281,11 +10275,11 @@ const Wn = [
|
|
|
10281
10275
|
"textPath",
|
|
10282
10276
|
"tref",
|
|
10283
10277
|
"tspan"
|
|
10284
|
-
], Xn = async (
|
|
10278
|
+
], Xn = async (g, e, t) => {
|
|
10285
10279
|
const A = e.data, a = t.data.baseUrl, n = A.assetUrl.replace("localhost", "localstack"), i = a.slice(0, 4) === "http" ? "" : "https://", s = new URL(i + a);
|
|
10286
10280
|
s.searchParams.append("video", Pt(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
|
|
10287
10281
|
const o = s.toString(), c = `data:image/svg+xml;base64,${Pt(await tA(o, { type: "svg" }))}`, B = (d) => {
|
|
10288
|
-
const C =
|
|
10282
|
+
const C = g.find((h) => h.panelId === d.panelId);
|
|
10289
10283
|
if (!C)
|
|
10290
10284
|
throw new z(d);
|
|
10291
10285
|
const w = J();
|
|
@@ -10302,13 +10296,13 @@ const Wn = [
|
|
|
10302
10296
|
},
|
|
10303
10297
|
C
|
|
10304
10298
|
);
|
|
10305
|
-
},
|
|
10299
|
+
}, l = t.data.regions;
|
|
10306
10300
|
try {
|
|
10307
|
-
return
|
|
10301
|
+
return l.map(B);
|
|
10308
10302
|
} catch (d) {
|
|
10309
10303
|
return console.error(d), [];
|
|
10310
10304
|
}
|
|
10311
|
-
}, qn = async (
|
|
10305
|
+
}, qn = async (g, e, t, A) => {
|
|
10312
10306
|
const a = t.data, n = a.assetUrl, i = await nt(n);
|
|
10313
10307
|
try {
|
|
10314
10308
|
const s = _A(a, A.option);
|
|
@@ -10321,7 +10315,7 @@ const Wn = [
|
|
|
10321
10315
|
height: 1
|
|
10322
10316
|
},
|
|
10323
10317
|
(w = s == null ? void 0 : s.asset) == null ? void 0 : w.fileLink
|
|
10324
|
-
), B = await
|
|
10318
|
+
), B = await lt(c), l = J(), d = g.find((h) => h.panelId === r.panelId);
|
|
10325
10319
|
if (!d)
|
|
10326
10320
|
throw new z(r);
|
|
10327
10321
|
const C = Bt(i, B, {
|
|
@@ -10332,14 +10326,11 @@ const Wn = [
|
|
|
10332
10326
|
return [
|
|
10333
10327
|
new L(
|
|
10334
10328
|
{
|
|
10335
|
-
id:
|
|
10329
|
+
id: l,
|
|
10336
10330
|
path: B.path,
|
|
10337
10331
|
dataWidth: B.width,
|
|
10338
10332
|
dataHeight: B.height,
|
|
10339
10333
|
type: G.Frame,
|
|
10340
|
-
focalBlur: A.data.focalBlur,
|
|
10341
|
-
focalBlurStrength: A.data.focalBlurStrength,
|
|
10342
|
-
focalBlurRadius: A.data.focalBlurRadius,
|
|
10343
10334
|
forceImageCover: A.data.forceImageCover,
|
|
10344
10335
|
x: r.left,
|
|
10345
10336
|
y: r.top,
|
|
@@ -10354,14 +10345,14 @@ const Wn = [
|
|
|
10354
10345
|
},
|
|
10355
10346
|
d
|
|
10356
10347
|
),
|
|
10357
|
-
new Lt(
|
|
10348
|
+
new Lt(l, i, C)
|
|
10358
10349
|
];
|
|
10359
10350
|
};
|
|
10360
10351
|
return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
|
|
10361
10352
|
} catch (s) {
|
|
10362
10353
|
return console.error(s), [];
|
|
10363
10354
|
}
|
|
10364
|
-
}, Zn = async (
|
|
10355
|
+
}, Zn = async (g, e, t, A) => {
|
|
10365
10356
|
var p, m;
|
|
10366
10357
|
const a = t.data, n = A.option;
|
|
10367
10358
|
if (!n)
|
|
@@ -10403,7 +10394,7 @@ const Wn = [
|
|
|
10403
10394
|
}
|
|
10404
10395
|
}
|
|
10405
10396
|
const D = (I) => {
|
|
10406
|
-
const F =
|
|
10397
|
+
const F = g.find((Y) => Y.panelId === I.panelId);
|
|
10407
10398
|
if (!F)
|
|
10408
10399
|
throw new z(I);
|
|
10409
10400
|
const y = J();
|
|
@@ -10430,9 +10421,9 @@ const Wn = [
|
|
|
10430
10421
|
} catch (I) {
|
|
10431
10422
|
return console.error(I), [];
|
|
10432
10423
|
}
|
|
10433
|
-
}, $n = async (
|
|
10424
|
+
}, $n = async (g, e, t) => {
|
|
10434
10425
|
const A = await FA(t.data.module), a = e.data, n = (s, o) => {
|
|
10435
|
-
const r =
|
|
10426
|
+
const r = g.find((B) => B.panelId === o.panelId);
|
|
10436
10427
|
if (!r)
|
|
10437
10428
|
throw new z(o);
|
|
10438
10429
|
const c = J();
|
|
@@ -10460,12 +10451,12 @@ const Wn = [
|
|
|
10460
10451
|
} catch (s) {
|
|
10461
10452
|
return console.error(s), [];
|
|
10462
10453
|
}
|
|
10463
|
-
}, _n = async (
|
|
10454
|
+
}, _n = async (g, e, t, A) => {
|
|
10464
10455
|
var c, B;
|
|
10465
10456
|
const a = t.data, n = A.option;
|
|
10466
10457
|
if (!n)
|
|
10467
10458
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
10468
|
-
const i = ((c = n.variants) == null ? void 0 : c.find((
|
|
10459
|
+
const i = ((c = n.variants) == null ? void 0 : c.find((l) => l.id === a.pictureVariantId)) || ze(n);
|
|
10469
10460
|
if (!i)
|
|
10470
10461
|
return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
|
|
10471
10462
|
if (!i.asset)
|
|
@@ -10474,24 +10465,24 @@ const Wn = [
|
|
|
10474
10465
|
const s = (B = i.asset) == null ? void 0 : B.fileLink;
|
|
10475
10466
|
if (!s)
|
|
10476
10467
|
return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
|
|
10477
|
-
const o = (
|
|
10478
|
-
const d =
|
|
10468
|
+
const o = (l) => {
|
|
10469
|
+
const d = g.find((w) => w.panelId === l.panelId);
|
|
10479
10470
|
if (!d)
|
|
10480
|
-
throw new z(
|
|
10471
|
+
throw new z(l);
|
|
10481
10472
|
const C = J();
|
|
10482
10473
|
return new L(
|
|
10483
10474
|
{
|
|
10484
10475
|
id: C,
|
|
10485
10476
|
src: s,
|
|
10486
10477
|
type: G.Image,
|
|
10487
|
-
y:
|
|
10488
|
-
x:
|
|
10489
|
-
rotation:
|
|
10490
|
-
width:
|
|
10491
|
-
height:
|
|
10492
|
-
layer:
|
|
10493
|
-
layerIndex:
|
|
10494
|
-
immutable:
|
|
10478
|
+
y: l.top,
|
|
10479
|
+
x: l.left,
|
|
10480
|
+
rotation: l.rotation,
|
|
10481
|
+
width: l.width,
|
|
10482
|
+
height: l.height,
|
|
10483
|
+
layer: l.layer,
|
|
10484
|
+
layerIndex: l.layerIndex,
|
|
10485
|
+
immutable: l.immutable,
|
|
10495
10486
|
preserveAspectRatio: "none"
|
|
10496
10487
|
},
|
|
10497
10488
|
d
|
|
@@ -10499,10 +10490,10 @@ const Wn = [
|
|
|
10499
10490
|
}, r = A.data.regions;
|
|
10500
10491
|
try {
|
|
10501
10492
|
return r.map(o);
|
|
10502
|
-
} catch (
|
|
10503
|
-
return console.error(
|
|
10493
|
+
} catch (l) {
|
|
10494
|
+
return console.error(l), [];
|
|
10504
10495
|
}
|
|
10505
|
-
}, ei = async (
|
|
10496
|
+
}, ei = async (g, e, t, A) => {
|
|
10506
10497
|
var r;
|
|
10507
10498
|
const a = t.data, n = A.option;
|
|
10508
10499
|
if (!n)
|
|
@@ -10512,10 +10503,10 @@ const Wn = [
|
|
|
10512
10503
|
return console.error(`No variant with ID: ${a.colorVariantId}`), [];
|
|
10513
10504
|
e[A.stepName] = { selectedVariants: [i] };
|
|
10514
10505
|
const s = (c) => {
|
|
10515
|
-
const B =
|
|
10506
|
+
const B = g.find((h) => h.panelId === c.panelId);
|
|
10516
10507
|
if (!B)
|
|
10517
10508
|
throw new z(c);
|
|
10518
|
-
const
|
|
10509
|
+
const l = `
|
|
10519
10510
|
<svg
|
|
10520
10511
|
xmlns="http://www.w3.org/2000/svg"
|
|
10521
10512
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
@@ -10540,7 +10531,7 @@ const Wn = [
|
|
|
10540
10531
|
{
|
|
10541
10532
|
colors: C,
|
|
10542
10533
|
id: w,
|
|
10543
|
-
svg:
|
|
10534
|
+
svg: l,
|
|
10544
10535
|
type: G.Illustration,
|
|
10545
10536
|
y: c.top,
|
|
10546
10537
|
x: c.left,
|
|
@@ -10559,7 +10550,7 @@ const Wn = [
|
|
|
10559
10550
|
} catch (c) {
|
|
10560
10551
|
return console.error(c), [];
|
|
10561
10552
|
}
|
|
10562
|
-
}, ti = async (
|
|
10553
|
+
}, ti = async (g, e, t) => {
|
|
10563
10554
|
const A = [], n = (() => {
|
|
10564
10555
|
var r, c;
|
|
10565
10556
|
return e.type === M.ProductOverlay ? t || ((r = e.data.asset) == null ? void 0 : r.fileLink) || "" : ((c = e.data.asset) == null ? void 0 : c.fileLink) || "";
|
|
@@ -10567,7 +10558,7 @@ const Wn = [
|
|
|
10567
10558
|
if (s === "image")
|
|
10568
10559
|
try {
|
|
10569
10560
|
o.forEach((r) => {
|
|
10570
|
-
const c =
|
|
10561
|
+
const c = g.find((l) => l.panelId === r.panelId);
|
|
10571
10562
|
if (!c)
|
|
10572
10563
|
throw new z(r);
|
|
10573
10564
|
const B = {
|
|
@@ -10594,14 +10585,14 @@ const Wn = [
|
|
|
10594
10585
|
}
|
|
10595
10586
|
else {
|
|
10596
10587
|
const r = await _(n, !0), c = (B) => {
|
|
10597
|
-
const
|
|
10588
|
+
const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], C = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Xt().parseFromString(C, "image/svg+xml").firstElementChild;
|
|
10598
10589
|
if (!u)
|
|
10599
10590
|
throw new he("Failed to read SVG.");
|
|
10600
10591
|
return qt(u), Zt().serializeToString(u);
|
|
10601
10592
|
};
|
|
10602
10593
|
o.forEach((B) => {
|
|
10603
|
-
const
|
|
10604
|
-
if (!
|
|
10594
|
+
const l = g.find((C) => C.panelId === B.panelId);
|
|
10595
|
+
if (!l)
|
|
10605
10596
|
throw new z(B);
|
|
10606
10597
|
const d = {
|
|
10607
10598
|
id: J(),
|
|
@@ -10622,11 +10613,11 @@ const Wn = [
|
|
|
10622
10613
|
productOverlay: e.type === M.ProductOverlay ? !0 : void 0,
|
|
10623
10614
|
excludeFromExport: e.data.excludeFromPrint
|
|
10624
10615
|
};
|
|
10625
|
-
A.push(new L(d,
|
|
10616
|
+
A.push(new L(d, l));
|
|
10626
10617
|
});
|
|
10627
10618
|
}
|
|
10628
10619
|
return A;
|
|
10629
|
-
}, Ai = async (
|
|
10620
|
+
}, Ai = async (g, e, t, A) => {
|
|
10630
10621
|
const a = [], n = t.data, i = 30, s = (h) => h.vertical ? "center" : h.textAlign || "center", o = () => {
|
|
10631
10622
|
var D;
|
|
10632
10623
|
const h = A.option;
|
|
@@ -10648,7 +10639,7 @@ const Wn = [
|
|
|
10648
10639
|
assetUrl: h,
|
|
10649
10640
|
name: u.names.fullName.en
|
|
10650
10641
|
};
|
|
10651
|
-
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "",
|
|
10642
|
+
})(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = it(B, {
|
|
10652
10643
|
vertical: A.data.vertical,
|
|
10653
10644
|
uppercase: A.data.uppercase
|
|
10654
10645
|
}), d = async (h) => {
|
|
@@ -10659,7 +10650,7 @@ const Wn = [
|
|
|
10659
10650
|
return E == null ? void 0 : E.color;
|
|
10660
10651
|
}, C = n.color || await d(A.data), w = A.data.regions;
|
|
10661
10652
|
for (const h of w) {
|
|
10662
|
-
const u =
|
|
10653
|
+
const u = g.find((D) => D.panelId === h.panelId);
|
|
10663
10654
|
if (!u)
|
|
10664
10655
|
continue;
|
|
10665
10656
|
const E = {
|
|
@@ -10675,7 +10666,7 @@ const Wn = [
|
|
|
10675
10666
|
layerIndex: h.layerIndex,
|
|
10676
10667
|
paths: A.data.paths,
|
|
10677
10668
|
rotation: h.rotation,
|
|
10678
|
-
text:
|
|
10669
|
+
text: l,
|
|
10679
10670
|
type: G.Textbox,
|
|
10680
10671
|
vertical: A.data.vertical,
|
|
10681
10672
|
verticalAlign: A.data.verticalAlign || "middle",
|
|
@@ -10689,7 +10680,7 @@ const Wn = [
|
|
|
10689
10680
|
c,
|
|
10690
10681
|
h,
|
|
10691
10682
|
[
|
|
10692
|
-
it(
|
|
10683
|
+
it(l, {
|
|
10693
10684
|
vertical: A.data.vertical,
|
|
10694
10685
|
uppercase: A.data.uppercase
|
|
10695
10686
|
})
|
|
@@ -10715,7 +10706,7 @@ const Wn = [
|
|
|
10715
10706
|
a.push(new L(E, u));
|
|
10716
10707
|
}
|
|
10717
10708
|
return a;
|
|
10718
|
-
}, ai = (
|
|
10709
|
+
}, ai = (g, e) => g.conditions ? g.conditions.every((t) => {
|
|
10719
10710
|
const A = e[t.targetStepName];
|
|
10720
10711
|
if (A && A.selectedVariants) {
|
|
10721
10712
|
const a = A.selectedVariants;
|
|
@@ -10724,9 +10715,9 @@ const Wn = [
|
|
|
10724
10715
|
);
|
|
10725
10716
|
}
|
|
10726
10717
|
return !1;
|
|
10727
|
-
}) : !0, ni = async (
|
|
10718
|
+
}) : !0, ni = async (g, e, t, A) => {
|
|
10728
10719
|
const a = [], n = {};
|
|
10729
|
-
for (const i of
|
|
10720
|
+
for (const i of g) {
|
|
10730
10721
|
const s = e.steps.find((o) => o.stepName === i.name);
|
|
10731
10722
|
if (s)
|
|
10732
10723
|
switch (s.type) {
|
|
@@ -10798,12 +10789,12 @@ class Se {
|
|
|
10798
10789
|
return this.layouts;
|
|
10799
10790
|
}
|
|
10800
10791
|
}
|
|
10801
|
-
const ii = () => new Promise((
|
|
10792
|
+
const ii = () => new Promise((g, e) => {
|
|
10802
10793
|
try {
|
|
10803
10794
|
const A = He().getContext("webgl2");
|
|
10804
|
-
|
|
10795
|
+
g(!!A);
|
|
10805
10796
|
} catch {
|
|
10806
|
-
|
|
10797
|
+
g(!1);
|
|
10807
10798
|
}
|
|
10808
10799
|
}), si = ii();
|
|
10809
10800
|
class oi {
|
|
@@ -10854,7 +10845,7 @@ class oi {
|
|
|
10854
10845
|
* Actions to perform when a static render event is fired for this canvas.
|
|
10855
10846
|
*/
|
|
10856
10847
|
async render(e) {
|
|
10857
|
-
const t =
|
|
10848
|
+
const t = ge(e);
|
|
10858
10849
|
this.lastRequestedRenderArguments = t;
|
|
10859
10850
|
const A = this.getStaticContext();
|
|
10860
10851
|
if (!A) {
|
|
@@ -10927,7 +10918,7 @@ class ri extends BA {
|
|
|
10927
10918
|
o = n.width, r = n.height;
|
|
10928
10919
|
const c = zt(e.layoutState.layout, t, {
|
|
10929
10920
|
renderingConfiguration: { purpose: Kt.ThreeD }
|
|
10930
|
-
}), B = jt(c),
|
|
10921
|
+
}), B = jt(c), l = await $t.from(this.ctx, B, {
|
|
10931
10922
|
anonymousCrossOrigin: !0,
|
|
10932
10923
|
ignoreDimensions: !this.nonPOTSupport,
|
|
10933
10924
|
ignoreAnimation: !0,
|
|
@@ -10937,14 +10928,14 @@ class ri extends BA {
|
|
|
10937
10928
|
createCanvas: He,
|
|
10938
10929
|
createImage: Vt,
|
|
10939
10930
|
DOMParser: Wt(),
|
|
10940
|
-
fetch:
|
|
10931
|
+
fetch: gt
|
|
10941
10932
|
});
|
|
10942
|
-
|
|
10933
|
+
l.resize(o, r), await l.render(), this.onRender();
|
|
10943
10934
|
}
|
|
10944
10935
|
}
|
|
10945
|
-
const Fs = (
|
|
10936
|
+
const Fs = (g, e) => {
|
|
10946
10937
|
const t = [];
|
|
10947
|
-
return
|
|
10938
|
+
return g.forEach((A) => {
|
|
10948
10939
|
const a = e.steps.find((n) => n.stepName === A.stepName);
|
|
10949
10940
|
(a == null ? void 0 : a.type) === M.Text && A.stepAspectType === "Text" && t.push({
|
|
10950
10941
|
name: a.stepName,
|
|
@@ -10953,13 +10944,13 @@ const Fs = (l, e) => {
|
|
|
10953
10944
|
}
|
|
10954
10945
|
});
|
|
10955
10946
|
}), t;
|
|
10956
|
-
}, ys = async (
|
|
10947
|
+
}, ys = async (g, e, t, A) => {
|
|
10957
10948
|
let a = {
|
|
10958
10949
|
serializableWorkflow: { steps: [] },
|
|
10959
10950
|
layouts: {}
|
|
10960
10951
|
};
|
|
10961
10952
|
a = new k(t.map((o) => new Aa(o))).apply(a);
|
|
10962
|
-
const i = await ni(
|
|
10953
|
+
const i = await ni(g, e, t, A);
|
|
10963
10954
|
return new k(i).apply(a);
|
|
10964
10955
|
}, ci = f`
|
|
10965
10956
|
${Be}
|
|
@@ -11015,8 +11006,8 @@ const Fs = (l, e) => {
|
|
|
11015
11006
|
...ProductFields
|
|
11016
11007
|
}
|
|
11017
11008
|
}
|
|
11018
|
-
`, We = (
|
|
11019
|
-
${
|
|
11009
|
+
`, We = (g) => f`
|
|
11010
|
+
${g ? PA : ""}
|
|
11020
11011
|
fragment ProductCollectionFields on ProductCollection {
|
|
11021
11012
|
id
|
|
11022
11013
|
name
|
|
@@ -11041,7 +11032,7 @@ const Fs = (l, e) => {
|
|
|
11041
11032
|
}
|
|
11042
11033
|
}
|
|
11043
11034
|
}
|
|
11044
|
-
${
|
|
11035
|
+
${g ? "productCollectionProducts { ...ProductCollectionProductFields }" : ""}
|
|
11045
11036
|
transformCollection {
|
|
11046
11037
|
id
|
|
11047
11038
|
name
|
|
@@ -11066,8 +11057,8 @@ const Fs = (l, e) => {
|
|
|
11066
11057
|
}
|
|
11067
11058
|
}
|
|
11068
11059
|
}
|
|
11069
|
-
`,
|
|
11070
|
-
${We(
|
|
11060
|
+
`, gi = (g) => f`
|
|
11061
|
+
${We(g)}
|
|
11071
11062
|
query GetBundle($id: String!) {
|
|
11072
11063
|
bundles(ids: [$id]) {
|
|
11073
11064
|
id
|
|
@@ -11088,7 +11079,7 @@ const Fs = (l, e) => {
|
|
|
11088
11079
|
}
|
|
11089
11080
|
}
|
|
11090
11081
|
}
|
|
11091
|
-
`,
|
|
11082
|
+
`, li = f`
|
|
11092
11083
|
query GetBundleStakeholders($id: String!) {
|
|
11093
11084
|
bundles(ids: [$id]) {
|
|
11094
11085
|
id
|
|
@@ -11139,8 +11130,8 @@ const Fs = (l, e) => {
|
|
|
11139
11130
|
}
|
|
11140
11131
|
}
|
|
11141
11132
|
}
|
|
11142
|
-
`, Ci = (
|
|
11143
|
-
${We(
|
|
11133
|
+
`, Ci = (g) => f`
|
|
11134
|
+
${We(g)}
|
|
11144
11135
|
mutation CreateBundle(
|
|
11145
11136
|
$collectionId: String
|
|
11146
11137
|
$initialMetadata: [MetadataInput!]
|
|
@@ -11168,8 +11159,8 @@ const Fs = (l, e) => {
|
|
|
11168
11159
|
}
|
|
11169
11160
|
}
|
|
11170
11161
|
}
|
|
11171
|
-
`, wi = (
|
|
11172
|
-
${We(
|
|
11162
|
+
`, wi = (g) => f`
|
|
11163
|
+
${We(g)}
|
|
11173
11164
|
mutation DuplicateBundle(
|
|
11174
11165
|
$id: String!
|
|
11175
11166
|
$template: Boolean
|
|
@@ -11299,8 +11290,8 @@ const Fs = (l, e) => {
|
|
|
11299
11290
|
id
|
|
11300
11291
|
}
|
|
11301
11292
|
}
|
|
11302
|
-
`, Fi = (
|
|
11303
|
-
${We(
|
|
11293
|
+
`, Fi = (g) => f`
|
|
11294
|
+
${We(g)}
|
|
11304
11295
|
mutation BundleAssignProductCollection($id: String!, $productCollectionId: String!) {
|
|
11305
11296
|
bundleAssignProductCollection(id: $id, collectionId: $productCollectionId) {
|
|
11306
11297
|
id
|
|
@@ -11309,7 +11300,7 @@ const Fs = (l, e) => {
|
|
|
11309
11300
|
}
|
|
11310
11301
|
}
|
|
11311
11302
|
}
|
|
11312
|
-
`, yi = (
|
|
11303
|
+
`, yi = (g) => f`
|
|
11313
11304
|
query CustomerBundlesFeed($id: String!, $limit: Int!, $offset: Int!, $template: Boolean, $templateStatus: BundleTemplateStatus) {
|
|
11314
11305
|
customerBundlesFeed(id: $id, limit: $limit, offset: $offset, template: $template, templateStatus: $templateStatus) {
|
|
11315
11306
|
items {
|
|
@@ -11327,7 +11318,7 @@ const Fs = (l, e) => {
|
|
|
11327
11318
|
fileLink
|
|
11328
11319
|
}
|
|
11329
11320
|
}
|
|
11330
|
-
${
|
|
11321
|
+
${g ? "metadata { key, value }" : ""}
|
|
11331
11322
|
}
|
|
11332
11323
|
total
|
|
11333
11324
|
}
|
|
@@ -11811,7 +11802,7 @@ class vi {
|
|
|
11811
11802
|
}
|
|
11812
11803
|
async setGlobalPropertyState(e) {
|
|
11813
11804
|
this.globalPropertyState || await this.initPromise;
|
|
11814
|
-
const t =
|
|
11805
|
+
const t = ge(this.globalPropertyState);
|
|
11815
11806
|
this.globalPropertyState = { ...e, id: t.id }, await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(t, this.globalPropertyState);
|
|
11816
11807
|
}
|
|
11817
11808
|
getAspect(e) {
|
|
@@ -11835,7 +11826,7 @@ class vi {
|
|
|
11835
11826
|
const a = this.configuration.aspects.find((s) => s.name === e);
|
|
11836
11827
|
if (!a)
|
|
11837
11828
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
11838
|
-
const n =
|
|
11829
|
+
const n = ge(this.globalPropertyState), i = this.globalPropertyState.aspects.find((s) => s.name === e);
|
|
11839
11830
|
i ? (i.value = t, i.type = a.type, A !== void 0 && (i.storage = A !== null ? A : void 0)) : this.globalPropertyState.aspects.push({
|
|
11840
11831
|
name: e,
|
|
11841
11832
|
value: t,
|
|
@@ -11851,7 +11842,7 @@ class vi {
|
|
|
11851
11842
|
const A = this.configuration.aspects.find((i) => i.name === e);
|
|
11852
11843
|
if (!A)
|
|
11853
11844
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
11854
|
-
const a =
|
|
11845
|
+
const a = ge(this.globalPropertyState), n = this.globalPropertyState.aspects.find((i) => i.name === e);
|
|
11855
11846
|
n ? (n.storage = t !== null ? t : void 0, n.type = A.type) : this.globalPropertyState.aspects.push({
|
|
11856
11847
|
name: e,
|
|
11857
11848
|
value: "",
|
|
@@ -12579,7 +12570,7 @@ class et {
|
|
|
12579
12570
|
}
|
|
12580
12571
|
async getAllStakeholders() {
|
|
12581
12572
|
const e = await x.getShadowGraphqlClient().query({
|
|
12582
|
-
query:
|
|
12573
|
+
query: li,
|
|
12583
12574
|
errorPolicy: "all",
|
|
12584
12575
|
fetchPolicy: "no-cache",
|
|
12585
12576
|
variables: {
|
|
@@ -12771,14 +12762,14 @@ class bi {
|
|
|
12771
12762
|
* @returns
|
|
12772
12763
|
*/
|
|
12773
12764
|
async execute(e, t, A) {
|
|
12774
|
-
var B,
|
|
12775
|
-
const n = (
|
|
12765
|
+
var B, l, d;
|
|
12766
|
+
const n = (l = (B = (await x.getShadowGraphqlClient().mutate({
|
|
12776
12767
|
mutation: Gi,
|
|
12777
12768
|
variables: {
|
|
12778
12769
|
processFlowId: e,
|
|
12779
12770
|
inputs: [...t.map((C) => C.getValueForTransmission())]
|
|
12780
12771
|
}
|
|
12781
|
-
})).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 :
|
|
12772
|
+
})).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : l.id;
|
|
12782
12773
|
if (!n)
|
|
12783
12774
|
throw new Error("Failed to create process execution.");
|
|
12784
12775
|
function i(C) {
|
|
@@ -12914,7 +12905,7 @@ class Ft {
|
|
|
12914
12905
|
return e.startsWith("[") ? JSON.stringify(JSON.parse(e)) : e;
|
|
12915
12906
|
}
|
|
12916
12907
|
}
|
|
12917
|
-
var Ti = /* @__PURE__ */ ((
|
|
12908
|
+
var Ti = /* @__PURE__ */ ((g) => (g.Transaction = "Transaction", g.Bundle = "Bundle", g.Product = "Product", g.Variant = "Variant", g.Option = "Option", g.LineItem = "LineItem", g.Asset = "Asset", g))(Ti || {});
|
|
12918
12909
|
class Ms extends Ft {
|
|
12919
12910
|
constructor(e) {
|
|
12920
12911
|
super(`"${e}"`);
|
|
@@ -13194,8 +13185,8 @@ const Oi = f`
|
|
|
13194
13185
|
loop
|
|
13195
13186
|
name
|
|
13196
13187
|
}
|
|
13197
|
-
`, $i = (
|
|
13198
|
-
${De(
|
|
13188
|
+
`, $i = (g) => f`
|
|
13189
|
+
${De(g)}
|
|
13199
13190
|
${Et}
|
|
13200
13191
|
${sA}
|
|
13201
13192
|
${Wi}
|
|
@@ -13352,9 +13343,6 @@ const Oi = f`
|
|
|
13352
13343
|
disablePlaceholder
|
|
13353
13344
|
displayImageOnFinishStep
|
|
13354
13345
|
displaySelectionOnFinishStep
|
|
13355
|
-
focalBlur
|
|
13356
|
-
focalBlurRadius
|
|
13357
|
-
focalBlurStrength
|
|
13358
13346
|
forceImageCover
|
|
13359
13347
|
hideImageInCart
|
|
13360
13348
|
hideSelectionInCart
|
|
@@ -13641,33 +13629,33 @@ const Oi = f`
|
|
|
13641
13629
|
...TagFields
|
|
13642
13630
|
}
|
|
13643
13631
|
}
|
|
13644
|
-
`, re = async (
|
|
13632
|
+
`, re = async (g) => {
|
|
13645
13633
|
var e;
|
|
13646
|
-
for (const t in
|
|
13647
|
-
const A =
|
|
13634
|
+
for (const t in g.layouts) {
|
|
13635
|
+
const A = g.layouts[t].elements.filter(
|
|
13648
13636
|
(n) => n.type === G.Illustration
|
|
13649
13637
|
);
|
|
13650
13638
|
for (let n = 0; n < A.length; ++n) {
|
|
13651
13639
|
const i = A[n];
|
|
13652
13640
|
i.src && i.svg && (i.cachedObjectURL = await ve(i.svg));
|
|
13653
13641
|
}
|
|
13654
|
-
const a =
|
|
13642
|
+
const a = g.layouts[t].elements.filter((n) => n.type === G.Textbox);
|
|
13655
13643
|
for (let n = 0; n < a.length; ++n) {
|
|
13656
13644
|
const i = a[n];
|
|
13657
13645
|
(e = i.fontData) != null && e.assetUrl && await dt(i.fontData.assetUrl);
|
|
13658
13646
|
}
|
|
13659
13647
|
}
|
|
13660
|
-
}, as = async (
|
|
13648
|
+
}, as = async (g, e) => {
|
|
13661
13649
|
var a;
|
|
13662
13650
|
const t = await x.getShadowGraphqlClient().query({
|
|
13663
13651
|
query: $i(((a = e == null ? void 0 : e.assets) == null ? void 0 : a.metadata) || !1),
|
|
13664
13652
|
errorPolicy: "all",
|
|
13665
13653
|
fetchPolicy: "no-cache",
|
|
13666
13654
|
variables: {
|
|
13667
|
-
ids:
|
|
13655
|
+
ids: g
|
|
13668
13656
|
}
|
|
13669
13657
|
}), A = t.data.workflows;
|
|
13670
|
-
if (A === void 0 || A.length !==
|
|
13658
|
+
if (A === void 0 || A.length !== g.length)
|
|
13671
13659
|
throw new Error(`Unable to read workflows: ${t.errors ?? "Length mismatch in response"}`);
|
|
13672
13660
|
return A.forEach((n) => {
|
|
13673
13661
|
n.steps.forEach((i) => {
|
|
@@ -13677,20 +13665,20 @@ const Oi = f`
|
|
|
13677
13665
|
}), me.set({ id: i.option.id }, Promise.resolve(i.option)));
|
|
13678
13666
|
}), n.finalizeStepConfig || (n.finalizeStepConfig = {}), n.finalizeStepConfig.termsMarkdown = n.partner.termsMarkdown;
|
|
13679
13667
|
}), A;
|
|
13680
|
-
}, ns = async (
|
|
13681
|
-
const A = (await e).find((a) => a.id ===
|
|
13668
|
+
}, ns = async (g, e) => {
|
|
13669
|
+
const A = (await e).find((a) => a.id === g);
|
|
13682
13670
|
if (!A)
|
|
13683
|
-
throw new Error(`Workflow not found: ${
|
|
13671
|
+
throw new Error(`Workflow not found: ${g}`);
|
|
13684
13672
|
return A;
|
|
13685
|
-
}, vA = async (
|
|
13686
|
-
const t =
|
|
13673
|
+
}, vA = async (g, e) => {
|
|
13674
|
+
const t = g.map((s) => me.get({ id: s, options: e })), A = g.filter((s, o) => t[o] === void 0);
|
|
13687
13675
|
if (A.length === 0)
|
|
13688
13676
|
return Promise.all(t);
|
|
13689
13677
|
const a = as(A, e), n = A.map(
|
|
13690
13678
|
(s) => me.set({ id: s, options: e }, ns(s, a))
|
|
13691
13679
|
), i = t.filter((s) => s !== void 0);
|
|
13692
13680
|
return await Promise.all(i.concat(n));
|
|
13693
|
-
}, Pe = async (
|
|
13681
|
+
}, Pe = async (g, e) => (await vA([g], e))[0], is = (g) => g.sort((e, t) => e.index - t.index).map((e) => ({
|
|
13694
13682
|
id: J(),
|
|
13695
13683
|
panelId: e.name,
|
|
13696
13684
|
name: e.name,
|
|
@@ -13703,8 +13691,8 @@ const Oi = f`
|
|
|
13703
13691
|
previewRegion: e.previewRegion,
|
|
13704
13692
|
useEditableArea: e.useEditableArea,
|
|
13705
13693
|
editableArea: e.editableArea
|
|
13706
|
-
})), tt = (
|
|
13707
|
-
const t =
|
|
13694
|
+
})), tt = (g, e) => {
|
|
13695
|
+
const t = g.workflowState, A = t ? JSON.parse(t) : void 0;
|
|
13708
13696
|
return A ? Object.values(A.layouts).map((a) => a.layout) : is(e.panels);
|
|
13709
13697
|
};
|
|
13710
13698
|
class ss {
|
|
@@ -13718,14 +13706,14 @@ class ss {
|
|
|
13718
13706
|
} catch (A) {
|
|
13719
13707
|
throw console.error(A), new H("Critical - Unable to synchronize workflow state with server.");
|
|
13720
13708
|
}
|
|
13721
|
-
}, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.13.
|
|
13709
|
+
}, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.13.4"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
|
|
13722
13710
|
}
|
|
13723
13711
|
/** @deprecated Use `configure` instead */
|
|
13724
13712
|
configureUrls(e, t, A) {
|
|
13725
13713
|
q.setHubUrl(e), q.setServerUrl(t), q.setServicesApiUrl(A), this.options.applicationKey && this.getIntegration();
|
|
13726
13714
|
}
|
|
13727
13715
|
configure(e) {
|
|
13728
|
-
q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken &&
|
|
13716
|
+
q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken && la(e.bearerAuthenticationToken), this.options.applicationKey && this.getIntegration();
|
|
13729
13717
|
}
|
|
13730
13718
|
/**
|
|
13731
13719
|
* @returns The asset manager allows for common operations related to assets
|
|
@@ -13740,7 +13728,7 @@ class ss {
|
|
|
13740
13728
|
return this.currencyCode;
|
|
13741
13729
|
}
|
|
13742
13730
|
getFlowService() {
|
|
13743
|
-
if (!
|
|
13731
|
+
if (!ga())
|
|
13744
13732
|
throw new Error("Application key required to use Flow Service.");
|
|
13745
13733
|
return new bi();
|
|
13746
13734
|
}
|
|
@@ -13781,8 +13769,8 @@ class ss {
|
|
|
13781
13769
|
if (o && await this.authenticateCustomerId(o)) {
|
|
13782
13770
|
const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
|
|
13783
13771
|
(B) => {
|
|
13784
|
-
var
|
|
13785
|
-
return ((
|
|
13772
|
+
var l;
|
|
13773
|
+
return ((l = B.bundle) == null ? void 0 : l.id) === e;
|
|
13786
13774
|
}
|
|
13787
13775
|
);
|
|
13788
13776
|
if (c)
|
|
@@ -13805,7 +13793,7 @@ class ss {
|
|
|
13805
13793
|
* @throws An error if the transaction is not found.
|
|
13806
13794
|
*/
|
|
13807
13795
|
async authenticateTransactionFromLocalStorage(e) {
|
|
13808
|
-
var c, B,
|
|
13796
|
+
var c, B, l, d, C, w;
|
|
13809
13797
|
const t = x.getShadowGraphqlClient(), A = await t.query({
|
|
13810
13798
|
query: _i,
|
|
13811
13799
|
errorPolicy: "all",
|
|
@@ -13828,7 +13816,7 @@ class ss {
|
|
|
13828
13816
|
if (s != null && s.has(e)) {
|
|
13829
13817
|
const h = s.get(e);
|
|
13830
13818
|
if (h && await this.authenticateCustomerId(h)) {
|
|
13831
|
-
const E = ((d = (
|
|
13819
|
+
const E = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
13832
13820
|
(D) => {
|
|
13833
13821
|
var Q, p;
|
|
13834
13822
|
return (p = (Q = D.bundle) == null ? void 0 : Q.transactions) == null ? void 0 : p.some((m) => m.id === e);
|
|
@@ -13993,7 +13981,7 @@ class ss {
|
|
|
13993
13981
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
13994
13982
|
*/
|
|
13995
13983
|
async getNewBundle(e, t, A) {
|
|
13996
|
-
var r, c, B,
|
|
13984
|
+
var r, c, B, l, d;
|
|
13997
13985
|
const n = (B = (await x.getShadowGraphqlClient().mutate({
|
|
13998
13986
|
mutation: Ci(((c = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : c.eagerFetchProducts) || !1),
|
|
13999
13987
|
variables: {
|
|
@@ -14011,7 +13999,7 @@ class ss {
|
|
|
14011
13999
|
const s = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
14012
14000
|
s.set(n.id, n.bundleOwnerId), P.setMap("bundleOwnerIds", s);
|
|
14013
14001
|
const o = new et(this, n, void 0, void 0, n.bundleOwnerId, {
|
|
14014
|
-
eagerFetchProducts: (d = (
|
|
14002
|
+
eagerFetchProducts: (d = (l = A == null ? void 0 : A.graphql) == null ? void 0 : l.productCollection) == null ? void 0 : d.eagerFetchProducts
|
|
14015
14003
|
});
|
|
14016
14004
|
return await o.getInitializationPromise(), o;
|
|
14017
14005
|
}
|
|
@@ -14030,8 +14018,8 @@ class ss {
|
|
|
14030
14018
|
bundleOwnerId: i,
|
|
14031
14019
|
...c,
|
|
14032
14020
|
...(u = a == null ? void 0 : a.graphql) == null ? void 0 : u.additionalHeaders
|
|
14033
|
-
},
|
|
14034
|
-
query:
|
|
14021
|
+
}, l = await x.getShadowGraphqlClient().query({
|
|
14022
|
+
query: gi(((D = (E = a == null ? void 0 : a.graphql) == null ? void 0 : E.productCollection) == null ? void 0 : D.eagerFetchProducts) || !1),
|
|
14035
14023
|
variables: {
|
|
14036
14024
|
id: e
|
|
14037
14025
|
},
|
|
@@ -14040,9 +14028,9 @@ class ss {
|
|
|
14040
14028
|
headers: B
|
|
14041
14029
|
}
|
|
14042
14030
|
});
|
|
14043
|
-
if (!((Q =
|
|
14031
|
+
if (!((Q = l.data) != null && Q.bundles) || ((p = l.data) == null ? void 0 : p.bundles.length) === 0 || !((m = l.data) != null && m.bundles[0]))
|
|
14044
14032
|
throw new Error(`Unable to find bundle: ${e}`);
|
|
14045
|
-
const d = (I =
|
|
14033
|
+
const d = (I = l.data) == null ? void 0 : I.bundles[0], C = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
14046
14034
|
C.set(d.id, d.partner.id), P.setMap("bundlePartnerIds", C);
|
|
14047
14035
|
const w = new et(this, d, t, A, i, {
|
|
14048
14036
|
additionalHeaders: (F = a == null ? void 0 : a.graphql) == null ? void 0 : F.additionalHeaders,
|
|
@@ -14064,7 +14052,7 @@ class ss {
|
|
|
14064
14052
|
bundleOwnerId: n,
|
|
14065
14053
|
...r,
|
|
14066
14054
|
...(E = a == null ? void 0 : a.graphql) == null ? void 0 : E.additionalHeaders
|
|
14067
|
-
},
|
|
14055
|
+
}, l = (p = (await x.getShadowGraphqlClient().mutate({
|
|
14068
14056
|
mutation: wi(((Q = (D = a == null ? void 0 : a.graphql) == null ? void 0 : D.productCollection) == null ? void 0 : Q.eagerFetchProducts) || !1),
|
|
14069
14057
|
variables: {
|
|
14070
14058
|
id: e,
|
|
@@ -14078,13 +14066,13 @@ class ss {
|
|
|
14078
14066
|
},
|
|
14079
14067
|
fetchPolicy: "no-cache"
|
|
14080
14068
|
})).data) == null ? void 0 : p.bundleDuplicate;
|
|
14081
|
-
if (!(
|
|
14069
|
+
if (!(l != null && l.id))
|
|
14082
14070
|
throw new Error("Unable to duplicate bundle");
|
|
14083
14071
|
const d = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
14084
|
-
d.set(
|
|
14072
|
+
d.set(l.id, l.partner.id), P.setMap("bundlePartnerIds", d);
|
|
14085
14073
|
const C = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
14086
|
-
C.set(
|
|
14087
|
-
const w = new et(this,
|
|
14074
|
+
C.set(l.id, l.bundleOwnerId), P.setMap("bundleOwnerIds", C);
|
|
14075
|
+
const w = new et(this, l, void 0, void 0, l.bundleOwnerId, {
|
|
14088
14076
|
eagerFetchProducts: (I = (m = a == null ? void 0 : a.graphql) == null ? void 0 : m.productCollection) == null ? void 0 : I.eagerFetchProducts
|
|
14089
14077
|
});
|
|
14090
14078
|
return await w.getInitializationPromise(), w;
|
|
@@ -14161,7 +14149,7 @@ class ss {
|
|
|
14161
14149
|
* @returns A workflow experience configured as requested.
|
|
14162
14150
|
*/
|
|
14163
14151
|
async getWorkflowExperience(e, t, A, a) {
|
|
14164
|
-
var
|
|
14152
|
+
var l, d, C, w, h;
|
|
14165
14153
|
if (!a)
|
|
14166
14154
|
return await this.getWorkflowExperienceDeprecated(e, t, A);
|
|
14167
14155
|
const n = async () => {
|
|
@@ -14219,7 +14207,7 @@ class ss {
|
|
|
14219
14207
|
}
|
|
14220
14208
|
throw new H("No workflow ID provided.");
|
|
14221
14209
|
}, { transaction: i, workflow: s, stepTags: o, readOnly: r } = await n();
|
|
14222
|
-
this.currencyCode = (
|
|
14210
|
+
this.currencyCode = (l = i.product.partner) == null ? void 0 : l.currencyCode;
|
|
14223
14211
|
const c = {
|
|
14224
14212
|
product: i.product,
|
|
14225
14213
|
transaction: i,
|
|
@@ -14334,7 +14322,7 @@ class ss {
|
|
|
14334
14322
|
), r = xt(s, 10), c = xt(o, 10), B = (await Promise.all([
|
|
14335
14323
|
...r.map(a),
|
|
14336
14324
|
...c.map(n)
|
|
14337
|
-
])).flat(),
|
|
14325
|
+
])).flat(), l = [...new Set(B.map((p) => p.workflowId))], d = await vA(l, t), C = new Map(d.map((p) => [p.id, p])), w = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), h = B.map(async (p) => {
|
|
14338
14326
|
var W;
|
|
14339
14327
|
const { transaction: m, workflowId: I, readOnly: F, index: y } = p, Y = C.get(I), N = await this.getStepTags(Y), S = e[y];
|
|
14340
14328
|
!w.get(m.id) && m.transactionOwnerId && w.set(m.id, m.transactionOwnerId);
|
|
@@ -14424,19 +14412,19 @@ class ss {
|
|
|
14424
14412
|
throw new H("No transaction ID provided.");
|
|
14425
14413
|
const A = x.getShadowGraphqlClient(), a = async () => {
|
|
14426
14414
|
var d, C;
|
|
14427
|
-
const
|
|
14415
|
+
const l = (d = (await A.query({
|
|
14428
14416
|
query: fe,
|
|
14429
14417
|
variables: { ids: [e] },
|
|
14430
14418
|
fetchPolicy: "no-cache",
|
|
14431
14419
|
errorPolicy: "all"
|
|
14432
14420
|
})).data) == null ? void 0 : d.transactions[0];
|
|
14433
|
-
if (!
|
|
14421
|
+
if (!l)
|
|
14434
14422
|
throw new H("Failed to read transaction.");
|
|
14435
|
-
if (!
|
|
14423
|
+
if (!l.product)
|
|
14436
14424
|
throw new H("Failed to load transaction, product not available.");
|
|
14437
|
-
this.currencyCode = (C =
|
|
14438
|
-
product:
|
|
14439
|
-
transaction:
|
|
14425
|
+
this.currencyCode = (C = l.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
|
|
14426
|
+
product: l.product,
|
|
14427
|
+
transaction: l,
|
|
14440
14428
|
layouts: [],
|
|
14441
14429
|
stateMutationFunc: async () => {
|
|
14442
14430
|
throw new b("State mutation is forbidden in read only mode!");
|
|
@@ -14448,20 +14436,20 @@ class ss {
|
|
|
14448
14436
|
return await a();
|
|
14449
14437
|
const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
|
|
14450
14438
|
if (i) {
|
|
14451
|
-
const
|
|
14439
|
+
const l = (s = (await A.query({
|
|
14452
14440
|
query: fe,
|
|
14453
14441
|
variables: {
|
|
14454
14442
|
ids: [e]
|
|
14455
14443
|
},
|
|
14456
14444
|
errorPolicy: "all"
|
|
14457
14445
|
})).data) == null ? void 0 : s.transactions[0];
|
|
14458
|
-
if (!
|
|
14446
|
+
if (!l)
|
|
14459
14447
|
throw new H("Failed to read transaction.");
|
|
14460
|
-
if (!
|
|
14448
|
+
if (!l.product)
|
|
14461
14449
|
throw new H("Failed to load transaction, product not available.");
|
|
14462
|
-
this.currencyCode = (o =
|
|
14463
|
-
product:
|
|
14464
|
-
transaction:
|
|
14450
|
+
this.currencyCode = (o = l.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
|
|
14451
|
+
product: l.product,
|
|
14452
|
+
transaction: l,
|
|
14465
14453
|
layouts: [],
|
|
14466
14454
|
stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: i } }),
|
|
14467
14455
|
readOnly: t
|
|
@@ -14469,22 +14457,22 @@ class ss {
|
|
|
14469
14457
|
return;
|
|
14470
14458
|
}
|
|
14471
14459
|
try {
|
|
14472
|
-
const
|
|
14460
|
+
const l = (r = (await A.mutate({
|
|
14473
14461
|
mutation: ka,
|
|
14474
14462
|
variables: { id: e },
|
|
14475
14463
|
errorPolicy: "all"
|
|
14476
14464
|
})).data) == null ? void 0 : r.transactionClaim;
|
|
14477
|
-
if (!
|
|
14465
|
+
if (!l)
|
|
14478
14466
|
throw new H("Failed to read transaction.");
|
|
14479
|
-
if (!
|
|
14467
|
+
if (!l.product)
|
|
14480
14468
|
throw new H("Failed to load transaction, product not available.");
|
|
14481
|
-
this.currencyCode = (c =
|
|
14482
|
-
product:
|
|
14483
|
-
transaction:
|
|
14469
|
+
this.currencyCode = (c = l.product.partner) == null ? void 0 : c.currencyCode, l.transactionOwnerId && (n.set(l.id, l.transactionOwnerId), P.setMap("transactionOwnerIds", n)), this.experienceOptions = {
|
|
14470
|
+
product: l.product,
|
|
14471
|
+
transaction: l,
|
|
14484
14472
|
layouts: [],
|
|
14485
14473
|
stateMutationFunc: async (d) => this.updateTransactionState({
|
|
14486
14474
|
...d,
|
|
14487
|
-
context: { transactionOwnerId:
|
|
14475
|
+
context: { transactionOwnerId: l.transactionOwnerId }
|
|
14488
14476
|
}),
|
|
14489
14477
|
readOnly: t
|
|
14490
14478
|
}, this.initialized = !0;
|
|
@@ -14535,8 +14523,8 @@ class ss {
|
|
|
14535
14523
|
model: this.experienceOptions.product.modelUrl,
|
|
14536
14524
|
contextService: this.experienceOptions.renderableContextService
|
|
14537
14525
|
}));
|
|
14538
|
-
const
|
|
14539
|
-
return await
|
|
14526
|
+
const l = new Me(this, this.experienceOptions);
|
|
14527
|
+
return await l.getWorkflowManager().getInitializationPromise(), l;
|
|
14540
14528
|
}
|
|
14541
14529
|
throw new H("No workflow ID provided.");
|
|
14542
14530
|
}
|
|
@@ -14772,7 +14760,7 @@ class Ys {
|
|
|
14772
14760
|
return [];
|
|
14773
14761
|
}
|
|
14774
14762
|
}
|
|
14775
|
-
var os = /* @__PURE__ */ ((
|
|
14763
|
+
var os = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(os || {});
|
|
14776
14764
|
class rs extends X {
|
|
14777
14765
|
constructor(e, t, A) {
|
|
14778
14766
|
var a;
|
|
@@ -15042,8 +15030,8 @@ export {
|
|
|
15042
15030
|
ni as generateCommands,
|
|
15043
15031
|
co as generateSVGWithUnknownColors,
|
|
15044
15032
|
ys as generateStateFromDesignInputSteps,
|
|
15045
|
-
|
|
15046
|
-
|
|
15033
|
+
go as getAttributesFromArrayBuffer,
|
|
15034
|
+
lo as getAxisAlignedBoundingBox,
|
|
15047
15035
|
Wa as getBoundedOffsets,
|
|
15048
15036
|
Bo as getFrameData,
|
|
15049
15037
|
Co as getSvgElement,
|
|
@@ -15066,7 +15054,7 @@ export {
|
|
|
15066
15054
|
uo as registerWindowImplementation,
|
|
15067
15055
|
mo as rehydrateSerializedLayout,
|
|
15068
15056
|
$a as rgbToPms,
|
|
15069
|
-
|
|
15057
|
+
la as setBearerAuthenticationToken,
|
|
15070
15058
|
Qo as setCanvasModule,
|
|
15071
15059
|
Ee as shapeStepService,
|
|
15072
15060
|
qa as shortenUrl,
|