@spiffcommerce/core 22.13.2 → 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 +475 -491
- package/dist/index.umd.cjs +24 -27
- 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) {
|
|
@@ -9119,22 +9113,15 @@ class vn extends X {
|
|
|
9119
9113
|
* throw when a non-custom variant is selected.
|
|
9120
9114
|
*/
|
|
9121
9115
|
setCustomColor(e) {
|
|
9122
|
-
var t;
|
|
9123
|
-
|
|
9124
|
-
throw new Error(
|
|
9125
|
-
"Custom colors can only be set on a non-custom variant. Please add a custom variant to the step."
|
|
9126
|
-
);
|
|
9127
|
-
return Ee.setCustomColor(e, this.step, this.manager);
|
|
9116
|
+
var t, A;
|
|
9117
|
+
return ((t = this.getCurrentVariant()) == null ? void 0 : t.getColor()) !== "#custom" && console.warn(`setting custom color for step ${this.step.stepName} but color is ${(A = this.getCurrentVariant()) == null ? void 0 : A.getColor()}`), Ee.setCustomColor(e, this.step, this.manager);
|
|
9128
9118
|
}
|
|
9129
9119
|
getCustomColor() {
|
|
9130
|
-
var t, A;
|
|
9131
|
-
|
|
9132
|
-
|
|
9133
|
-
throw new Error(
|
|
9134
|
-
"Custom colors can only be set on a non-custom variant. Please add a custom variant to the step."
|
|
9135
|
-
);
|
|
9120
|
+
var t, A, a;
|
|
9121
|
+
((t = this.getCurrentVariant()) == null ? void 0 : t.getColor()) !== "#custom" && console.warn(`setting custom color for step ${this.step.stepName} but color is ${(A = this.getCurrentVariant()) == null ? void 0 : A.getColor()}`);
|
|
9122
|
+
const e = (a = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : a.colour;
|
|
9136
9123
|
if (!e)
|
|
9137
|
-
throw new Error(
|
|
9124
|
+
throw new Error(`Color not available on step ${this.step.stepName}. Set a default on the workflow to fix this.`);
|
|
9138
9125
|
return e;
|
|
9139
9126
|
}
|
|
9140
9127
|
}
|
|
@@ -9499,11 +9486,11 @@ const MA = f`
|
|
|
9499
9486
|
}
|
|
9500
9487
|
}
|
|
9501
9488
|
`;
|
|
9502
|
-
function Te(
|
|
9503
|
-
const e = JSON.parse(atob(
|
|
9489
|
+
function Te(g) {
|
|
9490
|
+
const e = JSON.parse(atob(g.split(".")[1])).exp;
|
|
9504
9491
|
return Math.floor((/* @__PURE__ */ new Date()).getTime() / 1e3) >= e;
|
|
9505
9492
|
}
|
|
9506
|
-
const Jn = async (
|
|
9493
|
+
const Jn = async (g) => {
|
|
9507
9494
|
var i, s;
|
|
9508
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 = {};
|
|
9509
9496
|
return A && !Te(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
@@ -9511,20 +9498,20 @@ const Jn = async (l) => {
|
|
|
9511
9498
|
errorPolicy: "all",
|
|
9512
9499
|
fetchPolicy: "no-cache",
|
|
9513
9500
|
variables: {
|
|
9514
|
-
name:
|
|
9515
|
-
layouts:
|
|
9516
|
-
workflowId:
|
|
9517
|
-
transactionId:
|
|
9518
|
-
previewImage:
|
|
9519
|
-
useThreeDimPreview:
|
|
9520
|
-
metadata:
|
|
9521
|
-
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
|
|
9522
9509
|
},
|
|
9523
9510
|
context: {
|
|
9524
9511
|
headers: a
|
|
9525
9512
|
}
|
|
9526
9513
|
})).data) == null ? void 0 : s.designCreate;
|
|
9527
|
-
}, Tn = async (
|
|
9514
|
+
}, Tn = async (g) => {
|
|
9528
9515
|
var i, s;
|
|
9529
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 = {};
|
|
9530
9517
|
return A && !Te(A) && (a.Authorization = `Bearer ${A}`), (s = (await x.getShadowGraphqlClient().mutate({
|
|
@@ -9532,7 +9519,7 @@ const Jn = async (l) => {
|
|
|
9532
9519
|
errorPolicy: "all",
|
|
9533
9520
|
fetchPolicy: "no-cache",
|
|
9534
9521
|
variables: {
|
|
9535
|
-
inputs:
|
|
9522
|
+
inputs: g.map((o) => ({
|
|
9536
9523
|
name: o.name,
|
|
9537
9524
|
layouts: o.layouts,
|
|
9538
9525
|
workflowId: o.workflowId,
|
|
@@ -9547,17 +9534,17 @@ const Jn = async (l) => {
|
|
|
9547
9534
|
headers: a
|
|
9548
9535
|
}
|
|
9549
9536
|
})).data) == null ? void 0 : s.designCreateMany;
|
|
9550
|
-
}, ct = (
|
|
9537
|
+
}, ct = (g, e, t) => {
|
|
9551
9538
|
const A = (n) => {
|
|
9552
9539
|
const i = {};
|
|
9553
9540
|
if (n.type === "Frame") {
|
|
9554
|
-
const s =
|
|
9541
|
+
const s = g[n.stepName], o = n.data;
|
|
9555
9542
|
if (!s || !s.image || o.hideImageInCart && t)
|
|
9556
9543
|
return i;
|
|
9557
9544
|
i[`${n.stepTitle} image`] = s.image;
|
|
9558
9545
|
}
|
|
9559
9546
|
if (n.type === "Illustration") {
|
|
9560
|
-
const s =
|
|
9547
|
+
const s = g[n.stepName], o = n.data;
|
|
9561
9548
|
if (!s || o.hideColorsInCart && t || !s.colors)
|
|
9562
9549
|
return i;
|
|
9563
9550
|
if (s.colors.length > 0) {
|
|
@@ -9566,13 +9553,13 @@ const Jn = async (l) => {
|
|
|
9566
9553
|
}
|
|
9567
9554
|
}
|
|
9568
9555
|
if (n.type === "Module") {
|
|
9569
|
-
const s =
|
|
9556
|
+
const s = g[n.stepName], o = n.data;
|
|
9570
9557
|
if (!s || s.text === void 0 || s.text === null || o.hideTextInCart && t)
|
|
9571
9558
|
return i;
|
|
9572
9559
|
i[`${n.stepTitle} text`] = s.text;
|
|
9573
9560
|
}
|
|
9574
9561
|
if (n.type === "Text") {
|
|
9575
|
-
const s =
|
|
9562
|
+
const s = g[n.stepName];
|
|
9576
9563
|
if (!s)
|
|
9577
9564
|
return i;
|
|
9578
9565
|
const o = n.data;
|
|
@@ -9583,14 +9570,14 @@ const Jn = async (l) => {
|
|
|
9583
9570
|
return e.steps.forEach((n) => {
|
|
9584
9571
|
Object.assign(a, A(n));
|
|
9585
9572
|
}), a;
|
|
9586
|
-
}, On = (
|
|
9573
|
+
}, On = (g, e, t, A) => {
|
|
9587
9574
|
const a = {};
|
|
9588
9575
|
let n = {};
|
|
9589
9576
|
t ? n = ct(t, e, !1) : A && (n = A);
|
|
9590
9577
|
const s = e.steps.map((o) => o.stepTitle).filter((o, r, c) => c.indexOf(o) == r);
|
|
9591
9578
|
for (const o of s) {
|
|
9592
|
-
if (Object.keys(
|
|
9593
|
-
const r =
|
|
9579
|
+
if (Object.keys(g).includes(o)) {
|
|
9580
|
+
const r = g[o], c = e.steps.find((B) => B.stepTitle === o);
|
|
9594
9581
|
a[`${c == null ? void 0 : c.stepTitle} selection`] = {
|
|
9595
9582
|
value: r[0].name,
|
|
9596
9583
|
priceModifier: r[0].priceModifier
|
|
@@ -9603,39 +9590,39 @@ const Jn = async (l) => {
|
|
|
9603
9590
|
});
|
|
9604
9591
|
}
|
|
9605
9592
|
return a;
|
|
9606
|
-
}, SA = (
|
|
9593
|
+
}, SA = (g, e, t, A, a, n, i, s) => {
|
|
9607
9594
|
var C, w;
|
|
9608
|
-
const o = e.basePrice || 0, r =
|
|
9609
|
-
additionalExternalProductId: (C =
|
|
9610
|
-
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,
|
|
9611
9598
|
baseCost: o,
|
|
9612
|
-
designExternalVariants:
|
|
9613
|
-
designProductId:
|
|
9614
|
-
designProductVariantId:
|
|
9599
|
+
designExternalVariants: g.designExternalVariants,
|
|
9600
|
+
designProductId: g.externalDesignProductId,
|
|
9601
|
+
designProductVariantId: g.externalDesignProductVariantId,
|
|
9615
9602
|
event: "onComplete",
|
|
9616
9603
|
exportedData: c,
|
|
9617
|
-
externalCartProductId:
|
|
9618
|
-
externalCartProductVariantId:
|
|
9604
|
+
externalCartProductId: g.externalCartProductId,
|
|
9605
|
+
externalCartProductVariantId: g.externalCartProductVariantId,
|
|
9619
9606
|
lineItemImageUrl: i || "",
|
|
9620
9607
|
optionsCost: r,
|
|
9621
9608
|
processExecutionId: s,
|
|
9622
|
-
quantity:
|
|
9623
|
-
transactionId:
|
|
9624
|
-
transactionOwnerId:
|
|
9609
|
+
quantity: g.quantity,
|
|
9610
|
+
transactionId: g.id,
|
|
9611
|
+
transactionOwnerId: l,
|
|
9625
9612
|
weight: e.weight,
|
|
9626
|
-
workflowViewerLink:
|
|
9627
|
-
workflowViewerReadOnlyLink:
|
|
9613
|
+
workflowViewerLink: g.workflowViewerLink || "",
|
|
9614
|
+
workflowViewerReadOnlyLink: g.workflowViewerReadOnlyLink || ""
|
|
9628
9615
|
};
|
|
9629
9616
|
return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
|
|
9630
|
-
}, YA = async (
|
|
9617
|
+
}, YA = async (g, e, t, A, a, n, i, s, o, r) => {
|
|
9631
9618
|
var F;
|
|
9632
9619
|
await (async () => {
|
|
9633
9620
|
var R;
|
|
9634
9621
|
if (r !== void 0)
|
|
9635
9622
|
return r;
|
|
9636
|
-
await
|
|
9623
|
+
await g.outstandingRequestsPromise();
|
|
9637
9624
|
const Y = (P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(a.id), S = await x.getShadowGraphqlClient().query({
|
|
9638
|
-
query:
|
|
9625
|
+
query: gA,
|
|
9639
9626
|
variables: { ids: [a.id] },
|
|
9640
9627
|
fetchPolicy: "no-cache",
|
|
9641
9628
|
errorPolicy: "all",
|
|
@@ -9646,8 +9633,8 @@ const Jn = async (l) => {
|
|
|
9646
9633
|
return S.errors ? (S.errors.forEach((W) => {
|
|
9647
9634
|
S.errors && console.log("Server Error:", W.message);
|
|
9648
9635
|
}), null) : T ?? null;
|
|
9649
|
-
})() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await
|
|
9650
|
-
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) => {
|
|
9651
9638
|
const Y = {};
|
|
9652
9639
|
let N = 0;
|
|
9653
9640
|
if (Object.keys(n).length > 0)
|
|
@@ -9721,11 +9708,11 @@ const Jn = async (l) => {
|
|
|
9721
9708
|
cartSelectionsWithPrices: E,
|
|
9722
9709
|
cartMetadata: w
|
|
9723
9710
|
};
|
|
9724
|
-
}, Ln = async (
|
|
9711
|
+
}, Ln = async (g, e, t, A, a, n, i, s, o, r, c) => {
|
|
9725
9712
|
var u, E;
|
|
9726
9713
|
o("workflow.steps.finish.finalize.buildingLayouts");
|
|
9727
|
-
const { designDetails: B, cartSelectionsWithPrices:
|
|
9728
|
-
|
|
9714
|
+
const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await YA(
|
|
9715
|
+
g,
|
|
9729
9716
|
e,
|
|
9730
9717
|
t,
|
|
9731
9718
|
A,
|
|
@@ -9745,23 +9732,23 @@ const Jn = async (l) => {
|
|
|
9745
9732
|
h,
|
|
9746
9733
|
a,
|
|
9747
9734
|
e,
|
|
9748
|
-
|
|
9735
|
+
l,
|
|
9749
9736
|
C == null ? void 0 : C.sku,
|
|
9750
9737
|
d,
|
|
9751
9738
|
w,
|
|
9752
9739
|
(E = C == null ? void 0 : C.processExecution) == null ? void 0 : E.id
|
|
9753
9740
|
);
|
|
9754
|
-
}, zn = async (
|
|
9741
|
+
}, zn = async (g, e, t) => {
|
|
9755
9742
|
e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
|
|
9756
|
-
|
|
9743
|
+
g.map(async (s) => {
|
|
9757
9744
|
await s.workflowManager.outstandingRequestsPromise();
|
|
9758
9745
|
})
|
|
9759
9746
|
);
|
|
9760
9747
|
const a = await (async () => {
|
|
9761
9748
|
var r;
|
|
9762
9749
|
const o = await x.getShadowGraphqlClient().query({
|
|
9763
|
-
query:
|
|
9764
|
-
variables: { ids:
|
|
9750
|
+
query: gA,
|
|
9751
|
+
variables: { ids: g.map((c) => c.transaction.id) },
|
|
9765
9752
|
fetchPolicy: "no-cache",
|
|
9766
9753
|
errorPolicy: "all"
|
|
9767
9754
|
});
|
|
@@ -9769,7 +9756,7 @@ const Jn = async (l) => {
|
|
|
9769
9756
|
o.errors && console.log("Server Error:", c.message);
|
|
9770
9757
|
}), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((c) => c.workflowState ?? null) : null;
|
|
9771
9758
|
})(), n = await Promise.all(
|
|
9772
|
-
|
|
9759
|
+
g.map(async (s, o) => await YA(
|
|
9773
9760
|
s.workflowManager,
|
|
9774
9761
|
s.workflow,
|
|
9775
9762
|
s.layouts,
|
|
@@ -9787,8 +9774,8 @@ const Jn = async (l) => {
|
|
|
9787
9774
|
if (!i)
|
|
9788
9775
|
throw new Error("Failed to create designs");
|
|
9789
9776
|
return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
|
|
9790
|
-
var
|
|
9791
|
-
const r =
|
|
9777
|
+
var l;
|
|
9778
|
+
const r = g[o], c = n[o], B = s.transaction;
|
|
9792
9779
|
return SA(
|
|
9793
9780
|
B,
|
|
9794
9781
|
r.product,
|
|
@@ -9798,7 +9785,7 @@ const Jn = async (l) => {
|
|
|
9798
9785
|
c.cartMetadata,
|
|
9799
9786
|
//lineItemImageLink,
|
|
9800
9787
|
void 0,
|
|
9801
|
-
(
|
|
9788
|
+
(l = s.processExecution) == null ? void 0 : l.id
|
|
9802
9789
|
);
|
|
9803
9790
|
});
|
|
9804
9791
|
};
|
|
@@ -9884,7 +9871,7 @@ const $e = new Kn(), jn = f`
|
|
|
9884
9871
|
}
|
|
9885
9872
|
}
|
|
9886
9873
|
`;
|
|
9887
|
-
var Vn = /* @__PURE__ */ ((
|
|
9874
|
+
var Vn = /* @__PURE__ */ ((g) => (g.QuantityChanged = "QuantityChanged", g.PriceBreakChanged = "PriceBreakChanged", g))(Vn || {});
|
|
9888
9875
|
class Me {
|
|
9889
9876
|
constructor(e, t) {
|
|
9890
9877
|
var a;
|
|
@@ -9987,10 +9974,10 @@ class Me {
|
|
|
9987
9974
|
y: 0,
|
|
9988
9975
|
width: c.layoutState.layout.width,
|
|
9989
9976
|
height: c.layoutState.layout.height
|
|
9990
|
-
},
|
|
9977
|
+
}, l = this.commandContext.getLayoutById(c.layoutState.layout.id), d = i.getContext("2d");
|
|
9991
9978
|
if (!d)
|
|
9992
9979
|
throw new je("Failed to obtain 2D context for preview image creation");
|
|
9993
|
-
const C = zt(
|
|
9980
|
+
const C = zt(l.layoutState.layout, l.layoutState.elements, {
|
|
9994
9981
|
renderingConfiguration: {
|
|
9995
9982
|
purpose: Kt.Print,
|
|
9996
9983
|
region: { left: B.x, top: B.y, width: B.width, height: B.height }
|
|
@@ -10002,7 +9989,7 @@ class Me {
|
|
|
10002
9989
|
createCanvas: He,
|
|
10003
9990
|
createImage: Vt,
|
|
10004
9991
|
DOMParser: Wt(),
|
|
10005
|
-
fetch:
|
|
9992
|
+
fetch: gt
|
|
10006
9993
|
})).render();
|
|
10007
9994
|
const u = await this.getCanvasObjectURLAsync(i);
|
|
10008
9995
|
return i.toDataURL(u);
|
|
@@ -10098,17 +10085,17 @@ class Me {
|
|
|
10098
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);
|
|
10099
10086
|
i.forEach((r) => {
|
|
10100
10087
|
const c = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
|
|
10101
|
-
B !== void 0 && (B.forEach((
|
|
10102
|
-
const d =
|
|
10088
|
+
B !== void 0 && (B.forEach((l) => c.add(JSON.stringify(l))), s.forEach((l) => {
|
|
10089
|
+
const d = l.getRaw().globalPropertyAspectConfigurations;
|
|
10103
10090
|
d !== void 0 && d.forEach((C) => {
|
|
10104
10091
|
const w = o(C), h = c.has(JSON.stringify(C));
|
|
10105
10092
|
if (h && (w == null ? void 0 : w.getType()) === "Option") {
|
|
10106
|
-
const u =
|
|
10093
|
+
const u = l.getCurrentVariant();
|
|
10107
10094
|
if (!u)
|
|
10108
10095
|
return;
|
|
10109
10096
|
r.selectVariant(u), c.delete(JSON.stringify(C));
|
|
10110
10097
|
} else if (h && (w == null ? void 0 : w.getType()) === "Text") {
|
|
10111
|
-
const u =
|
|
10098
|
+
const u = l.getText();
|
|
10112
10099
|
r.setText(u), c.delete(JSON.stringify(C));
|
|
10113
10100
|
}
|
|
10114
10101
|
});
|
|
@@ -10188,7 +10175,7 @@ class Me {
|
|
|
10188
10175
|
}
|
|
10189
10176
|
async copy() {
|
|
10190
10177
|
var s;
|
|
10191
|
-
const e =
|
|
10178
|
+
const e = ge(this.getCommandContext().getState());
|
|
10192
10179
|
if (!e)
|
|
10193
10180
|
throw new b("Internal state is undefined! Cannot copy experience!");
|
|
10194
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;
|
|
@@ -10288,11 +10275,11 @@ const Wn = [
|
|
|
10288
10275
|
"textPath",
|
|
10289
10276
|
"tref",
|
|
10290
10277
|
"tspan"
|
|
10291
|
-
], Xn = async (
|
|
10278
|
+
], Xn = async (g, e, t) => {
|
|
10292
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);
|
|
10293
10280
|
s.searchParams.append("video", Pt(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
|
|
10294
10281
|
const o = s.toString(), c = `data:image/svg+xml;base64,${Pt(await tA(o, { type: "svg" }))}`, B = (d) => {
|
|
10295
|
-
const C =
|
|
10282
|
+
const C = g.find((h) => h.panelId === d.panelId);
|
|
10296
10283
|
if (!C)
|
|
10297
10284
|
throw new z(d);
|
|
10298
10285
|
const w = J();
|
|
@@ -10309,13 +10296,13 @@ const Wn = [
|
|
|
10309
10296
|
},
|
|
10310
10297
|
C
|
|
10311
10298
|
);
|
|
10312
|
-
},
|
|
10299
|
+
}, l = t.data.regions;
|
|
10313
10300
|
try {
|
|
10314
|
-
return
|
|
10301
|
+
return l.map(B);
|
|
10315
10302
|
} catch (d) {
|
|
10316
10303
|
return console.error(d), [];
|
|
10317
10304
|
}
|
|
10318
|
-
}, qn = async (
|
|
10305
|
+
}, qn = async (g, e, t, A) => {
|
|
10319
10306
|
const a = t.data, n = a.assetUrl, i = await nt(n);
|
|
10320
10307
|
try {
|
|
10321
10308
|
const s = _A(a, A.option);
|
|
@@ -10328,7 +10315,7 @@ const Wn = [
|
|
|
10328
10315
|
height: 1
|
|
10329
10316
|
},
|
|
10330
10317
|
(w = s == null ? void 0 : s.asset) == null ? void 0 : w.fileLink
|
|
10331
|
-
), B = await
|
|
10318
|
+
), B = await lt(c), l = J(), d = g.find((h) => h.panelId === r.panelId);
|
|
10332
10319
|
if (!d)
|
|
10333
10320
|
throw new z(r);
|
|
10334
10321
|
const C = Bt(i, B, {
|
|
@@ -10339,14 +10326,11 @@ const Wn = [
|
|
|
10339
10326
|
return [
|
|
10340
10327
|
new L(
|
|
10341
10328
|
{
|
|
10342
|
-
id:
|
|
10329
|
+
id: l,
|
|
10343
10330
|
path: B.path,
|
|
10344
10331
|
dataWidth: B.width,
|
|
10345
10332
|
dataHeight: B.height,
|
|
10346
10333
|
type: G.Frame,
|
|
10347
|
-
focalBlur: A.data.focalBlur,
|
|
10348
|
-
focalBlurStrength: A.data.focalBlurStrength,
|
|
10349
|
-
focalBlurRadius: A.data.focalBlurRadius,
|
|
10350
10334
|
forceImageCover: A.data.forceImageCover,
|
|
10351
10335
|
x: r.left,
|
|
10352
10336
|
y: r.top,
|
|
@@ -10361,14 +10345,14 @@ const Wn = [
|
|
|
10361
10345
|
},
|
|
10362
10346
|
d
|
|
10363
10347
|
),
|
|
10364
|
-
new Lt(
|
|
10348
|
+
new Lt(l, i, C)
|
|
10365
10349
|
];
|
|
10366
10350
|
};
|
|
10367
10351
|
return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
|
|
10368
10352
|
} catch (s) {
|
|
10369
10353
|
return console.error(s), [];
|
|
10370
10354
|
}
|
|
10371
|
-
}, Zn = async (
|
|
10355
|
+
}, Zn = async (g, e, t, A) => {
|
|
10372
10356
|
var p, m;
|
|
10373
10357
|
const a = t.data, n = A.option;
|
|
10374
10358
|
if (!n)
|
|
@@ -10410,7 +10394,7 @@ const Wn = [
|
|
|
10410
10394
|
}
|
|
10411
10395
|
}
|
|
10412
10396
|
const D = (I) => {
|
|
10413
|
-
const F =
|
|
10397
|
+
const F = g.find((Y) => Y.panelId === I.panelId);
|
|
10414
10398
|
if (!F)
|
|
10415
10399
|
throw new z(I);
|
|
10416
10400
|
const y = J();
|
|
@@ -10437,9 +10421,9 @@ const Wn = [
|
|
|
10437
10421
|
} catch (I) {
|
|
10438
10422
|
return console.error(I), [];
|
|
10439
10423
|
}
|
|
10440
|
-
}, $n = async (
|
|
10424
|
+
}, $n = async (g, e, t) => {
|
|
10441
10425
|
const A = await FA(t.data.module), a = e.data, n = (s, o) => {
|
|
10442
|
-
const r =
|
|
10426
|
+
const r = g.find((B) => B.panelId === o.panelId);
|
|
10443
10427
|
if (!r)
|
|
10444
10428
|
throw new z(o);
|
|
10445
10429
|
const c = J();
|
|
@@ -10467,12 +10451,12 @@ const Wn = [
|
|
|
10467
10451
|
} catch (s) {
|
|
10468
10452
|
return console.error(s), [];
|
|
10469
10453
|
}
|
|
10470
|
-
}, _n = async (
|
|
10454
|
+
}, _n = async (g, e, t, A) => {
|
|
10471
10455
|
var c, B;
|
|
10472
10456
|
const a = t.data, n = A.option;
|
|
10473
10457
|
if (!n)
|
|
10474
10458
|
return console.error(`No option for step ${A.stepName}.`), [];
|
|
10475
|
-
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);
|
|
10476
10460
|
if (!i)
|
|
10477
10461
|
return console.error(`No variant with ID: ${a.pictureVariantId}`), [];
|
|
10478
10462
|
if (!i.asset)
|
|
@@ -10481,24 +10465,24 @@ const Wn = [
|
|
|
10481
10465
|
const s = (B = i.asset) == null ? void 0 : B.fileLink;
|
|
10482
10466
|
if (!s)
|
|
10483
10467
|
return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
|
|
10484
|
-
const o = (
|
|
10485
|
-
const d =
|
|
10468
|
+
const o = (l) => {
|
|
10469
|
+
const d = g.find((w) => w.panelId === l.panelId);
|
|
10486
10470
|
if (!d)
|
|
10487
|
-
throw new z(
|
|
10471
|
+
throw new z(l);
|
|
10488
10472
|
const C = J();
|
|
10489
10473
|
return new L(
|
|
10490
10474
|
{
|
|
10491
10475
|
id: C,
|
|
10492
10476
|
src: s,
|
|
10493
10477
|
type: G.Image,
|
|
10494
|
-
y:
|
|
10495
|
-
x:
|
|
10496
|
-
rotation:
|
|
10497
|
-
width:
|
|
10498
|
-
height:
|
|
10499
|
-
layer:
|
|
10500
|
-
layerIndex:
|
|
10501
|
-
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,
|
|
10502
10486
|
preserveAspectRatio: "none"
|
|
10503
10487
|
},
|
|
10504
10488
|
d
|
|
@@ -10506,10 +10490,10 @@ const Wn = [
|
|
|
10506
10490
|
}, r = A.data.regions;
|
|
10507
10491
|
try {
|
|
10508
10492
|
return r.map(o);
|
|
10509
|
-
} catch (
|
|
10510
|
-
return console.error(
|
|
10493
|
+
} catch (l) {
|
|
10494
|
+
return console.error(l), [];
|
|
10511
10495
|
}
|
|
10512
|
-
}, ei = async (
|
|
10496
|
+
}, ei = async (g, e, t, A) => {
|
|
10513
10497
|
var r;
|
|
10514
10498
|
const a = t.data, n = A.option;
|
|
10515
10499
|
if (!n)
|
|
@@ -10519,10 +10503,10 @@ const Wn = [
|
|
|
10519
10503
|
return console.error(`No variant with ID: ${a.colorVariantId}`), [];
|
|
10520
10504
|
e[A.stepName] = { selectedVariants: [i] };
|
|
10521
10505
|
const s = (c) => {
|
|
10522
|
-
const B =
|
|
10506
|
+
const B = g.find((h) => h.panelId === c.panelId);
|
|
10523
10507
|
if (!B)
|
|
10524
10508
|
throw new z(c);
|
|
10525
|
-
const
|
|
10509
|
+
const l = `
|
|
10526
10510
|
<svg
|
|
10527
10511
|
xmlns="http://www.w3.org/2000/svg"
|
|
10528
10512
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
@@ -10547,7 +10531,7 @@ const Wn = [
|
|
|
10547
10531
|
{
|
|
10548
10532
|
colors: C,
|
|
10549
10533
|
id: w,
|
|
10550
|
-
svg:
|
|
10534
|
+
svg: l,
|
|
10551
10535
|
type: G.Illustration,
|
|
10552
10536
|
y: c.top,
|
|
10553
10537
|
x: c.left,
|
|
@@ -10566,7 +10550,7 @@ const Wn = [
|
|
|
10566
10550
|
} catch (c) {
|
|
10567
10551
|
return console.error(c), [];
|
|
10568
10552
|
}
|
|
10569
|
-
}, ti = async (
|
|
10553
|
+
}, ti = async (g, e, t) => {
|
|
10570
10554
|
const A = [], n = (() => {
|
|
10571
10555
|
var r, c;
|
|
10572
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) || "";
|
|
@@ -10574,7 +10558,7 @@ const Wn = [
|
|
|
10574
10558
|
if (s === "image")
|
|
10575
10559
|
try {
|
|
10576
10560
|
o.forEach((r) => {
|
|
10577
|
-
const c =
|
|
10561
|
+
const c = g.find((l) => l.panelId === r.panelId);
|
|
10578
10562
|
if (!c)
|
|
10579
10563
|
throw new z(r);
|
|
10580
10564
|
const B = {
|
|
@@ -10601,14 +10585,14 @@ const Wn = [
|
|
|
10601
10585
|
}
|
|
10602
10586
|
else {
|
|
10603
10587
|
const r = await _(n, !0), c = (B) => {
|
|
10604
|
-
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;
|
|
10605
10589
|
if (!u)
|
|
10606
10590
|
throw new he("Failed to read SVG.");
|
|
10607
10591
|
return qt(u), Zt().serializeToString(u);
|
|
10608
10592
|
};
|
|
10609
10593
|
o.forEach((B) => {
|
|
10610
|
-
const
|
|
10611
|
-
if (!
|
|
10594
|
+
const l = g.find((C) => C.panelId === B.panelId);
|
|
10595
|
+
if (!l)
|
|
10612
10596
|
throw new z(B);
|
|
10613
10597
|
const d = {
|
|
10614
10598
|
id: J(),
|
|
@@ -10629,11 +10613,11 @@ const Wn = [
|
|
|
10629
10613
|
productOverlay: e.type === M.ProductOverlay ? !0 : void 0,
|
|
10630
10614
|
excludeFromExport: e.data.excludeFromPrint
|
|
10631
10615
|
};
|
|
10632
|
-
A.push(new L(d,
|
|
10616
|
+
A.push(new L(d, l));
|
|
10633
10617
|
});
|
|
10634
10618
|
}
|
|
10635
10619
|
return A;
|
|
10636
|
-
}, Ai = async (
|
|
10620
|
+
}, Ai = async (g, e, t, A) => {
|
|
10637
10621
|
const a = [], n = t.data, i = 30, s = (h) => h.vertical ? "center" : h.textAlign || "center", o = () => {
|
|
10638
10622
|
var D;
|
|
10639
10623
|
const h = A.option;
|
|
@@ -10655,7 +10639,7 @@ const Wn = [
|
|
|
10655
10639
|
assetUrl: h,
|
|
10656
10640
|
name: u.names.fullName.en
|
|
10657
10641
|
};
|
|
10658
|
-
})(), 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, {
|
|
10659
10643
|
vertical: A.data.vertical,
|
|
10660
10644
|
uppercase: A.data.uppercase
|
|
10661
10645
|
}), d = async (h) => {
|
|
@@ -10666,7 +10650,7 @@ const Wn = [
|
|
|
10666
10650
|
return E == null ? void 0 : E.color;
|
|
10667
10651
|
}, C = n.color || await d(A.data), w = A.data.regions;
|
|
10668
10652
|
for (const h of w) {
|
|
10669
|
-
const u =
|
|
10653
|
+
const u = g.find((D) => D.panelId === h.panelId);
|
|
10670
10654
|
if (!u)
|
|
10671
10655
|
continue;
|
|
10672
10656
|
const E = {
|
|
@@ -10682,7 +10666,7 @@ const Wn = [
|
|
|
10682
10666
|
layerIndex: h.layerIndex,
|
|
10683
10667
|
paths: A.data.paths,
|
|
10684
10668
|
rotation: h.rotation,
|
|
10685
|
-
text:
|
|
10669
|
+
text: l,
|
|
10686
10670
|
type: G.Textbox,
|
|
10687
10671
|
vertical: A.data.vertical,
|
|
10688
10672
|
verticalAlign: A.data.verticalAlign || "middle",
|
|
@@ -10696,7 +10680,7 @@ const Wn = [
|
|
|
10696
10680
|
c,
|
|
10697
10681
|
h,
|
|
10698
10682
|
[
|
|
10699
|
-
it(
|
|
10683
|
+
it(l, {
|
|
10700
10684
|
vertical: A.data.vertical,
|
|
10701
10685
|
uppercase: A.data.uppercase
|
|
10702
10686
|
})
|
|
@@ -10722,7 +10706,7 @@ const Wn = [
|
|
|
10722
10706
|
a.push(new L(E, u));
|
|
10723
10707
|
}
|
|
10724
10708
|
return a;
|
|
10725
|
-
}, ai = (
|
|
10709
|
+
}, ai = (g, e) => g.conditions ? g.conditions.every((t) => {
|
|
10726
10710
|
const A = e[t.targetStepName];
|
|
10727
10711
|
if (A && A.selectedVariants) {
|
|
10728
10712
|
const a = A.selectedVariants;
|
|
@@ -10731,9 +10715,9 @@ const Wn = [
|
|
|
10731
10715
|
);
|
|
10732
10716
|
}
|
|
10733
10717
|
return !1;
|
|
10734
|
-
}) : !0, ni = async (
|
|
10718
|
+
}) : !0, ni = async (g, e, t, A) => {
|
|
10735
10719
|
const a = [], n = {};
|
|
10736
|
-
for (const i of
|
|
10720
|
+
for (const i of g) {
|
|
10737
10721
|
const s = e.steps.find((o) => o.stepName === i.name);
|
|
10738
10722
|
if (s)
|
|
10739
10723
|
switch (s.type) {
|
|
@@ -10805,12 +10789,12 @@ class Se {
|
|
|
10805
10789
|
return this.layouts;
|
|
10806
10790
|
}
|
|
10807
10791
|
}
|
|
10808
|
-
const ii = () => new Promise((
|
|
10792
|
+
const ii = () => new Promise((g, e) => {
|
|
10809
10793
|
try {
|
|
10810
10794
|
const A = He().getContext("webgl2");
|
|
10811
|
-
|
|
10795
|
+
g(!!A);
|
|
10812
10796
|
} catch {
|
|
10813
|
-
|
|
10797
|
+
g(!1);
|
|
10814
10798
|
}
|
|
10815
10799
|
}), si = ii();
|
|
10816
10800
|
class oi {
|
|
@@ -10861,7 +10845,7 @@ class oi {
|
|
|
10861
10845
|
* Actions to perform when a static render event is fired for this canvas.
|
|
10862
10846
|
*/
|
|
10863
10847
|
async render(e) {
|
|
10864
|
-
const t =
|
|
10848
|
+
const t = ge(e);
|
|
10865
10849
|
this.lastRequestedRenderArguments = t;
|
|
10866
10850
|
const A = this.getStaticContext();
|
|
10867
10851
|
if (!A) {
|
|
@@ -10934,7 +10918,7 @@ class ri extends BA {
|
|
|
10934
10918
|
o = n.width, r = n.height;
|
|
10935
10919
|
const c = zt(e.layoutState.layout, t, {
|
|
10936
10920
|
renderingConfiguration: { purpose: Kt.ThreeD }
|
|
10937
|
-
}), B = jt(c),
|
|
10921
|
+
}), B = jt(c), l = await $t.from(this.ctx, B, {
|
|
10938
10922
|
anonymousCrossOrigin: !0,
|
|
10939
10923
|
ignoreDimensions: !this.nonPOTSupport,
|
|
10940
10924
|
ignoreAnimation: !0,
|
|
@@ -10944,14 +10928,14 @@ class ri extends BA {
|
|
|
10944
10928
|
createCanvas: He,
|
|
10945
10929
|
createImage: Vt,
|
|
10946
10930
|
DOMParser: Wt(),
|
|
10947
|
-
fetch:
|
|
10931
|
+
fetch: gt
|
|
10948
10932
|
});
|
|
10949
|
-
|
|
10933
|
+
l.resize(o, r), await l.render(), this.onRender();
|
|
10950
10934
|
}
|
|
10951
10935
|
}
|
|
10952
|
-
const Fs = (
|
|
10936
|
+
const Fs = (g, e) => {
|
|
10953
10937
|
const t = [];
|
|
10954
|
-
return
|
|
10938
|
+
return g.forEach((A) => {
|
|
10955
10939
|
const a = e.steps.find((n) => n.stepName === A.stepName);
|
|
10956
10940
|
(a == null ? void 0 : a.type) === M.Text && A.stepAspectType === "Text" && t.push({
|
|
10957
10941
|
name: a.stepName,
|
|
@@ -10960,13 +10944,13 @@ const Fs = (l, e) => {
|
|
|
10960
10944
|
}
|
|
10961
10945
|
});
|
|
10962
10946
|
}), t;
|
|
10963
|
-
}, ys = async (
|
|
10947
|
+
}, ys = async (g, e, t, A) => {
|
|
10964
10948
|
let a = {
|
|
10965
10949
|
serializableWorkflow: { steps: [] },
|
|
10966
10950
|
layouts: {}
|
|
10967
10951
|
};
|
|
10968
10952
|
a = new k(t.map((o) => new Aa(o))).apply(a);
|
|
10969
|
-
const i = await ni(
|
|
10953
|
+
const i = await ni(g, e, t, A);
|
|
10970
10954
|
return new k(i).apply(a);
|
|
10971
10955
|
}, ci = f`
|
|
10972
10956
|
${Be}
|
|
@@ -11022,8 +11006,8 @@ const Fs = (l, e) => {
|
|
|
11022
11006
|
...ProductFields
|
|
11023
11007
|
}
|
|
11024
11008
|
}
|
|
11025
|
-
`, We = (
|
|
11026
|
-
${
|
|
11009
|
+
`, We = (g) => f`
|
|
11010
|
+
${g ? PA : ""}
|
|
11027
11011
|
fragment ProductCollectionFields on ProductCollection {
|
|
11028
11012
|
id
|
|
11029
11013
|
name
|
|
@@ -11048,7 +11032,7 @@ const Fs = (l, e) => {
|
|
|
11048
11032
|
}
|
|
11049
11033
|
}
|
|
11050
11034
|
}
|
|
11051
|
-
${
|
|
11035
|
+
${g ? "productCollectionProducts { ...ProductCollectionProductFields }" : ""}
|
|
11052
11036
|
transformCollection {
|
|
11053
11037
|
id
|
|
11054
11038
|
name
|
|
@@ -11073,8 +11057,8 @@ const Fs = (l, e) => {
|
|
|
11073
11057
|
}
|
|
11074
11058
|
}
|
|
11075
11059
|
}
|
|
11076
|
-
`,
|
|
11077
|
-
${We(
|
|
11060
|
+
`, gi = (g) => f`
|
|
11061
|
+
${We(g)}
|
|
11078
11062
|
query GetBundle($id: String!) {
|
|
11079
11063
|
bundles(ids: [$id]) {
|
|
11080
11064
|
id
|
|
@@ -11095,7 +11079,7 @@ const Fs = (l, e) => {
|
|
|
11095
11079
|
}
|
|
11096
11080
|
}
|
|
11097
11081
|
}
|
|
11098
|
-
`,
|
|
11082
|
+
`, li = f`
|
|
11099
11083
|
query GetBundleStakeholders($id: String!) {
|
|
11100
11084
|
bundles(ids: [$id]) {
|
|
11101
11085
|
id
|
|
@@ -11146,8 +11130,8 @@ const Fs = (l, e) => {
|
|
|
11146
11130
|
}
|
|
11147
11131
|
}
|
|
11148
11132
|
}
|
|
11149
|
-
`, Ci = (
|
|
11150
|
-
${We(
|
|
11133
|
+
`, Ci = (g) => f`
|
|
11134
|
+
${We(g)}
|
|
11151
11135
|
mutation CreateBundle(
|
|
11152
11136
|
$collectionId: String
|
|
11153
11137
|
$initialMetadata: [MetadataInput!]
|
|
@@ -11175,8 +11159,8 @@ const Fs = (l, e) => {
|
|
|
11175
11159
|
}
|
|
11176
11160
|
}
|
|
11177
11161
|
}
|
|
11178
|
-
`, wi = (
|
|
11179
|
-
${We(
|
|
11162
|
+
`, wi = (g) => f`
|
|
11163
|
+
${We(g)}
|
|
11180
11164
|
mutation DuplicateBundle(
|
|
11181
11165
|
$id: String!
|
|
11182
11166
|
$template: Boolean
|
|
@@ -11306,8 +11290,8 @@ const Fs = (l, e) => {
|
|
|
11306
11290
|
id
|
|
11307
11291
|
}
|
|
11308
11292
|
}
|
|
11309
|
-
`, Fi = (
|
|
11310
|
-
${We(
|
|
11293
|
+
`, Fi = (g) => f`
|
|
11294
|
+
${We(g)}
|
|
11311
11295
|
mutation BundleAssignProductCollection($id: String!, $productCollectionId: String!) {
|
|
11312
11296
|
bundleAssignProductCollection(id: $id, collectionId: $productCollectionId) {
|
|
11313
11297
|
id
|
|
@@ -11316,7 +11300,7 @@ const Fs = (l, e) => {
|
|
|
11316
11300
|
}
|
|
11317
11301
|
}
|
|
11318
11302
|
}
|
|
11319
|
-
`, yi = (
|
|
11303
|
+
`, yi = (g) => f`
|
|
11320
11304
|
query CustomerBundlesFeed($id: String!, $limit: Int!, $offset: Int!, $template: Boolean, $templateStatus: BundleTemplateStatus) {
|
|
11321
11305
|
customerBundlesFeed(id: $id, limit: $limit, offset: $offset, template: $template, templateStatus: $templateStatus) {
|
|
11322
11306
|
items {
|
|
@@ -11334,7 +11318,7 @@ const Fs = (l, e) => {
|
|
|
11334
11318
|
fileLink
|
|
11335
11319
|
}
|
|
11336
11320
|
}
|
|
11337
|
-
${
|
|
11321
|
+
${g ? "metadata { key, value }" : ""}
|
|
11338
11322
|
}
|
|
11339
11323
|
total
|
|
11340
11324
|
}
|
|
@@ -11818,7 +11802,7 @@ class vi {
|
|
|
11818
11802
|
}
|
|
11819
11803
|
async setGlobalPropertyState(e) {
|
|
11820
11804
|
this.globalPropertyState || await this.initPromise;
|
|
11821
|
-
const t =
|
|
11805
|
+
const t = ge(this.globalPropertyState);
|
|
11822
11806
|
this.globalPropertyState = { ...e, id: t.id }, await this.updateGlobalPropertyState(), await this.onGlobalPropertyStateChange(t, this.globalPropertyState);
|
|
11823
11807
|
}
|
|
11824
11808
|
getAspect(e) {
|
|
@@ -11842,7 +11826,7 @@ class vi {
|
|
|
11842
11826
|
const a = this.configuration.aspects.find((s) => s.name === e);
|
|
11843
11827
|
if (!a)
|
|
11844
11828
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
11845
|
-
const n =
|
|
11829
|
+
const n = ge(this.globalPropertyState), i = this.globalPropertyState.aspects.find((s) => s.name === e);
|
|
11846
11830
|
i ? (i.value = t, i.type = a.type, A !== void 0 && (i.storage = A !== null ? A : void 0)) : this.globalPropertyState.aspects.push({
|
|
11847
11831
|
name: e,
|
|
11848
11832
|
value: t,
|
|
@@ -11858,7 +11842,7 @@ class vi {
|
|
|
11858
11842
|
const A = this.configuration.aspects.find((i) => i.name === e);
|
|
11859
11843
|
if (!A)
|
|
11860
11844
|
throw new Error(`Failed to find configuration aspect with name: ${e}`);
|
|
11861
|
-
const a =
|
|
11845
|
+
const a = ge(this.globalPropertyState), n = this.globalPropertyState.aspects.find((i) => i.name === e);
|
|
11862
11846
|
n ? (n.storage = t !== null ? t : void 0, n.type = A.type) : this.globalPropertyState.aspects.push({
|
|
11863
11847
|
name: e,
|
|
11864
11848
|
value: "",
|
|
@@ -11875,18 +11859,21 @@ class vi {
|
|
|
11875
11859
|
variables: {
|
|
11876
11860
|
id: this.globalPropertyState.id,
|
|
11877
11861
|
aspects: this.globalPropertyState.aspects.map((a) => {
|
|
11878
|
-
|
|
11862
|
+
let n = a.type && a.storage ? {} : void 0;
|
|
11879
11863
|
if (n)
|
|
11880
11864
|
switch (a.type) {
|
|
11881
11865
|
case $.FileUpload: {
|
|
11882
11866
|
n.fileUpload = a.storage;
|
|
11883
11867
|
break;
|
|
11884
11868
|
}
|
|
11885
|
-
case $.Option:
|
|
11886
|
-
case $.ColorOption: {
|
|
11869
|
+
case $.Option: {
|
|
11887
11870
|
n.option = a.storage;
|
|
11888
11871
|
break;
|
|
11889
11872
|
}
|
|
11873
|
+
case $.ColorOption: {
|
|
11874
|
+
n = a.storage;
|
|
11875
|
+
break;
|
|
11876
|
+
}
|
|
11890
11877
|
}
|
|
11891
11878
|
return {
|
|
11892
11879
|
name: a.name,
|
|
@@ -12583,7 +12570,7 @@ class et {
|
|
|
12583
12570
|
}
|
|
12584
12571
|
async getAllStakeholders() {
|
|
12585
12572
|
const e = await x.getShadowGraphqlClient().query({
|
|
12586
|
-
query:
|
|
12573
|
+
query: li,
|
|
12587
12574
|
errorPolicy: "all",
|
|
12588
12575
|
fetchPolicy: "no-cache",
|
|
12589
12576
|
variables: {
|
|
@@ -12775,14 +12762,14 @@ class bi {
|
|
|
12775
12762
|
* @returns
|
|
12776
12763
|
*/
|
|
12777
12764
|
async execute(e, t, A) {
|
|
12778
|
-
var B,
|
|
12779
|
-
const n = (
|
|
12765
|
+
var B, l, d;
|
|
12766
|
+
const n = (l = (B = (await x.getShadowGraphqlClient().mutate({
|
|
12780
12767
|
mutation: Gi,
|
|
12781
12768
|
variables: {
|
|
12782
12769
|
processFlowId: e,
|
|
12783
12770
|
inputs: [...t.map((C) => C.getValueForTransmission())]
|
|
12784
12771
|
}
|
|
12785
|
-
})).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 :
|
|
12772
|
+
})).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : l.id;
|
|
12786
12773
|
if (!n)
|
|
12787
12774
|
throw new Error("Failed to create process execution.");
|
|
12788
12775
|
function i(C) {
|
|
@@ -12918,7 +12905,7 @@ class Ft {
|
|
|
12918
12905
|
return e.startsWith("[") ? JSON.stringify(JSON.parse(e)) : e;
|
|
12919
12906
|
}
|
|
12920
12907
|
}
|
|
12921
|
-
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 || {});
|
|
12922
12909
|
class Ms extends Ft {
|
|
12923
12910
|
constructor(e) {
|
|
12924
12911
|
super(`"${e}"`);
|
|
@@ -13198,8 +13185,8 @@ const Oi = f`
|
|
|
13198
13185
|
loop
|
|
13199
13186
|
name
|
|
13200
13187
|
}
|
|
13201
|
-
`, $i = (
|
|
13202
|
-
${De(
|
|
13188
|
+
`, $i = (g) => f`
|
|
13189
|
+
${De(g)}
|
|
13203
13190
|
${Et}
|
|
13204
13191
|
${sA}
|
|
13205
13192
|
${Wi}
|
|
@@ -13356,9 +13343,6 @@ const Oi = f`
|
|
|
13356
13343
|
disablePlaceholder
|
|
13357
13344
|
displayImageOnFinishStep
|
|
13358
13345
|
displaySelectionOnFinishStep
|
|
13359
|
-
focalBlur
|
|
13360
|
-
focalBlurRadius
|
|
13361
|
-
focalBlurStrength
|
|
13362
13346
|
forceImageCover
|
|
13363
13347
|
hideImageInCart
|
|
13364
13348
|
hideSelectionInCart
|
|
@@ -13645,33 +13629,33 @@ const Oi = f`
|
|
|
13645
13629
|
...TagFields
|
|
13646
13630
|
}
|
|
13647
13631
|
}
|
|
13648
|
-
`, re = async (
|
|
13632
|
+
`, re = async (g) => {
|
|
13649
13633
|
var e;
|
|
13650
|
-
for (const t in
|
|
13651
|
-
const A =
|
|
13634
|
+
for (const t in g.layouts) {
|
|
13635
|
+
const A = g.layouts[t].elements.filter(
|
|
13652
13636
|
(n) => n.type === G.Illustration
|
|
13653
13637
|
);
|
|
13654
13638
|
for (let n = 0; n < A.length; ++n) {
|
|
13655
13639
|
const i = A[n];
|
|
13656
13640
|
i.src && i.svg && (i.cachedObjectURL = await ve(i.svg));
|
|
13657
13641
|
}
|
|
13658
|
-
const a =
|
|
13642
|
+
const a = g.layouts[t].elements.filter((n) => n.type === G.Textbox);
|
|
13659
13643
|
for (let n = 0; n < a.length; ++n) {
|
|
13660
13644
|
const i = a[n];
|
|
13661
13645
|
(e = i.fontData) != null && e.assetUrl && await dt(i.fontData.assetUrl);
|
|
13662
13646
|
}
|
|
13663
13647
|
}
|
|
13664
|
-
}, as = async (
|
|
13648
|
+
}, as = async (g, e) => {
|
|
13665
13649
|
var a;
|
|
13666
13650
|
const t = await x.getShadowGraphqlClient().query({
|
|
13667
13651
|
query: $i(((a = e == null ? void 0 : e.assets) == null ? void 0 : a.metadata) || !1),
|
|
13668
13652
|
errorPolicy: "all",
|
|
13669
13653
|
fetchPolicy: "no-cache",
|
|
13670
13654
|
variables: {
|
|
13671
|
-
ids:
|
|
13655
|
+
ids: g
|
|
13672
13656
|
}
|
|
13673
13657
|
}), A = t.data.workflows;
|
|
13674
|
-
if (A === void 0 || A.length !==
|
|
13658
|
+
if (A === void 0 || A.length !== g.length)
|
|
13675
13659
|
throw new Error(`Unable to read workflows: ${t.errors ?? "Length mismatch in response"}`);
|
|
13676
13660
|
return A.forEach((n) => {
|
|
13677
13661
|
n.steps.forEach((i) => {
|
|
@@ -13681,20 +13665,20 @@ const Oi = f`
|
|
|
13681
13665
|
}), me.set({ id: i.option.id }, Promise.resolve(i.option)));
|
|
13682
13666
|
}), n.finalizeStepConfig || (n.finalizeStepConfig = {}), n.finalizeStepConfig.termsMarkdown = n.partner.termsMarkdown;
|
|
13683
13667
|
}), A;
|
|
13684
|
-
}, ns = async (
|
|
13685
|
-
const A = (await e).find((a) => a.id ===
|
|
13668
|
+
}, ns = async (g, e) => {
|
|
13669
|
+
const A = (await e).find((a) => a.id === g);
|
|
13686
13670
|
if (!A)
|
|
13687
|
-
throw new Error(`Workflow not found: ${
|
|
13671
|
+
throw new Error(`Workflow not found: ${g}`);
|
|
13688
13672
|
return A;
|
|
13689
|
-
}, vA = async (
|
|
13690
|
-
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);
|
|
13691
13675
|
if (A.length === 0)
|
|
13692
13676
|
return Promise.all(t);
|
|
13693
13677
|
const a = as(A, e), n = A.map(
|
|
13694
13678
|
(s) => me.set({ id: s, options: e }, ns(s, a))
|
|
13695
13679
|
), i = t.filter((s) => s !== void 0);
|
|
13696
13680
|
return await Promise.all(i.concat(n));
|
|
13697
|
-
}, Pe = async (
|
|
13681
|
+
}, Pe = async (g, e) => (await vA([g], e))[0], is = (g) => g.sort((e, t) => e.index - t.index).map((e) => ({
|
|
13698
13682
|
id: J(),
|
|
13699
13683
|
panelId: e.name,
|
|
13700
13684
|
name: e.name,
|
|
@@ -13707,8 +13691,8 @@ const Oi = f`
|
|
|
13707
13691
|
previewRegion: e.previewRegion,
|
|
13708
13692
|
useEditableArea: e.useEditableArea,
|
|
13709
13693
|
editableArea: e.editableArea
|
|
13710
|
-
})), tt = (
|
|
13711
|
-
const t =
|
|
13694
|
+
})), tt = (g, e) => {
|
|
13695
|
+
const t = g.workflowState, A = t ? JSON.parse(t) : void 0;
|
|
13712
13696
|
return A ? Object.values(A.layouts).map((a) => a.layout) : is(e.panels);
|
|
13713
13697
|
};
|
|
13714
13698
|
class ss {
|
|
@@ -13722,14 +13706,14 @@ class ss {
|
|
|
13722
13706
|
} catch (A) {
|
|
13723
13707
|
throw console.error(A), new H("Critical - Unable to synchronize workflow state with server.");
|
|
13724
13708
|
}
|
|
13725
|
-
}, 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("------------------------");
|
|
13726
13710
|
}
|
|
13727
13711
|
/** @deprecated Use `configure` instead */
|
|
13728
13712
|
configureUrls(e, t, A) {
|
|
13729
13713
|
q.setHubUrl(e), q.setServerUrl(t), q.setServicesApiUrl(A), this.options.applicationKey && this.getIntegration();
|
|
13730
13714
|
}
|
|
13731
13715
|
configure(e) {
|
|
13732
|
-
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();
|
|
13733
13717
|
}
|
|
13734
13718
|
/**
|
|
13735
13719
|
* @returns The asset manager allows for common operations related to assets
|
|
@@ -13744,7 +13728,7 @@ class ss {
|
|
|
13744
13728
|
return this.currencyCode;
|
|
13745
13729
|
}
|
|
13746
13730
|
getFlowService() {
|
|
13747
|
-
if (!
|
|
13731
|
+
if (!ga())
|
|
13748
13732
|
throw new Error("Application key required to use Flow Service.");
|
|
13749
13733
|
return new bi();
|
|
13750
13734
|
}
|
|
@@ -13785,8 +13769,8 @@ class ss {
|
|
|
13785
13769
|
if (o && await this.authenticateCustomerId(o)) {
|
|
13786
13770
|
const c = (n = (a = this.customer) == null ? void 0 : a.bundleStakeholders) == null ? void 0 : n.find(
|
|
13787
13771
|
(B) => {
|
|
13788
|
-
var
|
|
13789
|
-
return ((
|
|
13772
|
+
var l;
|
|
13773
|
+
return ((l = B.bundle) == null ? void 0 : l.id) === e;
|
|
13790
13774
|
}
|
|
13791
13775
|
);
|
|
13792
13776
|
if (c)
|
|
@@ -13809,7 +13793,7 @@ class ss {
|
|
|
13809
13793
|
* @throws An error if the transaction is not found.
|
|
13810
13794
|
*/
|
|
13811
13795
|
async authenticateTransactionFromLocalStorage(e) {
|
|
13812
|
-
var c, B,
|
|
13796
|
+
var c, B, l, d, C, w;
|
|
13813
13797
|
const t = x.getShadowGraphqlClient(), A = await t.query({
|
|
13814
13798
|
query: _i,
|
|
13815
13799
|
errorPolicy: "all",
|
|
@@ -13832,7 +13816,7 @@ class ss {
|
|
|
13832
13816
|
if (s != null && s.has(e)) {
|
|
13833
13817
|
const h = s.get(e);
|
|
13834
13818
|
if (h && await this.authenticateCustomerId(h)) {
|
|
13835
|
-
const E = ((d = (
|
|
13819
|
+
const E = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
|
|
13836
13820
|
(D) => {
|
|
13837
13821
|
var Q, p;
|
|
13838
13822
|
return (p = (Q = D.bundle) == null ? void 0 : Q.transactions) == null ? void 0 : p.some((m) => m.id === e);
|
|
@@ -13997,7 +13981,7 @@ class ss {
|
|
|
13997
13981
|
* @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
|
|
13998
13982
|
*/
|
|
13999
13983
|
async getNewBundle(e, t, A) {
|
|
14000
|
-
var r, c, B,
|
|
13984
|
+
var r, c, B, l, d;
|
|
14001
13985
|
const n = (B = (await x.getShadowGraphqlClient().mutate({
|
|
14002
13986
|
mutation: Ci(((c = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : c.eagerFetchProducts) || !1),
|
|
14003
13987
|
variables: {
|
|
@@ -14015,7 +13999,7 @@ class ss {
|
|
|
14015
13999
|
const s = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
14016
14000
|
s.set(n.id, n.bundleOwnerId), P.setMap("bundleOwnerIds", s);
|
|
14017
14001
|
const o = new et(this, n, void 0, void 0, n.bundleOwnerId, {
|
|
14018
|
-
eagerFetchProducts: (d = (
|
|
14002
|
+
eagerFetchProducts: (d = (l = A == null ? void 0 : A.graphql) == null ? void 0 : l.productCollection) == null ? void 0 : d.eagerFetchProducts
|
|
14019
14003
|
});
|
|
14020
14004
|
return await o.getInitializationPromise(), o;
|
|
14021
14005
|
}
|
|
@@ -14034,8 +14018,8 @@ class ss {
|
|
|
14034
14018
|
bundleOwnerId: i,
|
|
14035
14019
|
...c,
|
|
14036
14020
|
...(u = a == null ? void 0 : a.graphql) == null ? void 0 : u.additionalHeaders
|
|
14037
|
-
},
|
|
14038
|
-
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),
|
|
14039
14023
|
variables: {
|
|
14040
14024
|
id: e
|
|
14041
14025
|
},
|
|
@@ -14044,9 +14028,9 @@ class ss {
|
|
|
14044
14028
|
headers: B
|
|
14045
14029
|
}
|
|
14046
14030
|
});
|
|
14047
|
-
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]))
|
|
14048
14032
|
throw new Error(`Unable to find bundle: ${e}`);
|
|
14049
|
-
const d = (I =
|
|
14033
|
+
const d = (I = l.data) == null ? void 0 : I.bundles[0], C = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
14050
14034
|
C.set(d.id, d.partner.id), P.setMap("bundlePartnerIds", C);
|
|
14051
14035
|
const w = new et(this, d, t, A, i, {
|
|
14052
14036
|
additionalHeaders: (F = a == null ? void 0 : a.graphql) == null ? void 0 : F.additionalHeaders,
|
|
@@ -14068,7 +14052,7 @@ class ss {
|
|
|
14068
14052
|
bundleOwnerId: n,
|
|
14069
14053
|
...r,
|
|
14070
14054
|
...(E = a == null ? void 0 : a.graphql) == null ? void 0 : E.additionalHeaders
|
|
14071
|
-
},
|
|
14055
|
+
}, l = (p = (await x.getShadowGraphqlClient().mutate({
|
|
14072
14056
|
mutation: wi(((Q = (D = a == null ? void 0 : a.graphql) == null ? void 0 : D.productCollection) == null ? void 0 : Q.eagerFetchProducts) || !1),
|
|
14073
14057
|
variables: {
|
|
14074
14058
|
id: e,
|
|
@@ -14082,13 +14066,13 @@ class ss {
|
|
|
14082
14066
|
},
|
|
14083
14067
|
fetchPolicy: "no-cache"
|
|
14084
14068
|
})).data) == null ? void 0 : p.bundleDuplicate;
|
|
14085
|
-
if (!(
|
|
14069
|
+
if (!(l != null && l.id))
|
|
14086
14070
|
throw new Error("Unable to duplicate bundle");
|
|
14087
14071
|
const d = P.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
|
|
14088
|
-
d.set(
|
|
14072
|
+
d.set(l.id, l.partner.id), P.setMap("bundlePartnerIds", d);
|
|
14089
14073
|
const C = P.getMap("bundleOwnerIds") || /* @__PURE__ */ new Map();
|
|
14090
|
-
C.set(
|
|
14091
|
-
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, {
|
|
14092
14076
|
eagerFetchProducts: (I = (m = a == null ? void 0 : a.graphql) == null ? void 0 : m.productCollection) == null ? void 0 : I.eagerFetchProducts
|
|
14093
14077
|
});
|
|
14094
14078
|
return await w.getInitializationPromise(), w;
|
|
@@ -14165,7 +14149,7 @@ class ss {
|
|
|
14165
14149
|
* @returns A workflow experience configured as requested.
|
|
14166
14150
|
*/
|
|
14167
14151
|
async getWorkflowExperience(e, t, A, a) {
|
|
14168
|
-
var
|
|
14152
|
+
var l, d, C, w, h;
|
|
14169
14153
|
if (!a)
|
|
14170
14154
|
return await this.getWorkflowExperienceDeprecated(e, t, A);
|
|
14171
14155
|
const n = async () => {
|
|
@@ -14223,7 +14207,7 @@ class ss {
|
|
|
14223
14207
|
}
|
|
14224
14208
|
throw new H("No workflow ID provided.");
|
|
14225
14209
|
}, { transaction: i, workflow: s, stepTags: o, readOnly: r } = await n();
|
|
14226
|
-
this.currencyCode = (
|
|
14210
|
+
this.currencyCode = (l = i.product.partner) == null ? void 0 : l.currencyCode;
|
|
14227
14211
|
const c = {
|
|
14228
14212
|
product: i.product,
|
|
14229
14213
|
transaction: i,
|
|
@@ -14338,7 +14322,7 @@ class ss {
|
|
|
14338
14322
|
), r = xt(s, 10), c = xt(o, 10), B = (await Promise.all([
|
|
14339
14323
|
...r.map(a),
|
|
14340
14324
|
...c.map(n)
|
|
14341
|
-
])).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) => {
|
|
14342
14326
|
var W;
|
|
14343
14327
|
const { transaction: m, workflowId: I, readOnly: F, index: y } = p, Y = C.get(I), N = await this.getStepTags(Y), S = e[y];
|
|
14344
14328
|
!w.get(m.id) && m.transactionOwnerId && w.set(m.id, m.transactionOwnerId);
|
|
@@ -14428,19 +14412,19 @@ class ss {
|
|
|
14428
14412
|
throw new H("No transaction ID provided.");
|
|
14429
14413
|
const A = x.getShadowGraphqlClient(), a = async () => {
|
|
14430
14414
|
var d, C;
|
|
14431
|
-
const
|
|
14415
|
+
const l = (d = (await A.query({
|
|
14432
14416
|
query: fe,
|
|
14433
14417
|
variables: { ids: [e] },
|
|
14434
14418
|
fetchPolicy: "no-cache",
|
|
14435
14419
|
errorPolicy: "all"
|
|
14436
14420
|
})).data) == null ? void 0 : d.transactions[0];
|
|
14437
|
-
if (!
|
|
14421
|
+
if (!l)
|
|
14438
14422
|
throw new H("Failed to read transaction.");
|
|
14439
|
-
if (!
|
|
14423
|
+
if (!l.product)
|
|
14440
14424
|
throw new H("Failed to load transaction, product not available.");
|
|
14441
|
-
this.currencyCode = (C =
|
|
14442
|
-
product:
|
|
14443
|
-
transaction:
|
|
14425
|
+
this.currencyCode = (C = l.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
|
|
14426
|
+
product: l.product,
|
|
14427
|
+
transaction: l,
|
|
14444
14428
|
layouts: [],
|
|
14445
14429
|
stateMutationFunc: async () => {
|
|
14446
14430
|
throw new b("State mutation is forbidden in read only mode!");
|
|
@@ -14452,20 +14436,20 @@ class ss {
|
|
|
14452
14436
|
return await a();
|
|
14453
14437
|
const n = P.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
|
|
14454
14438
|
if (i) {
|
|
14455
|
-
const
|
|
14439
|
+
const l = (s = (await A.query({
|
|
14456
14440
|
query: fe,
|
|
14457
14441
|
variables: {
|
|
14458
14442
|
ids: [e]
|
|
14459
14443
|
},
|
|
14460
14444
|
errorPolicy: "all"
|
|
14461
14445
|
})).data) == null ? void 0 : s.transactions[0];
|
|
14462
|
-
if (!
|
|
14446
|
+
if (!l)
|
|
14463
14447
|
throw new H("Failed to read transaction.");
|
|
14464
|
-
if (!
|
|
14448
|
+
if (!l.product)
|
|
14465
14449
|
throw new H("Failed to load transaction, product not available.");
|
|
14466
|
-
this.currencyCode = (o =
|
|
14467
|
-
product:
|
|
14468
|
-
transaction:
|
|
14450
|
+
this.currencyCode = (o = l.product.partner) == null ? void 0 : o.currencyCode, this.experienceOptions = {
|
|
14451
|
+
product: l.product,
|
|
14452
|
+
transaction: l,
|
|
14469
14453
|
layouts: [],
|
|
14470
14454
|
stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: i } }),
|
|
14471
14455
|
readOnly: t
|
|
@@ -14473,22 +14457,22 @@ class ss {
|
|
|
14473
14457
|
return;
|
|
14474
14458
|
}
|
|
14475
14459
|
try {
|
|
14476
|
-
const
|
|
14460
|
+
const l = (r = (await A.mutate({
|
|
14477
14461
|
mutation: ka,
|
|
14478
14462
|
variables: { id: e },
|
|
14479
14463
|
errorPolicy: "all"
|
|
14480
14464
|
})).data) == null ? void 0 : r.transactionClaim;
|
|
14481
|
-
if (!
|
|
14465
|
+
if (!l)
|
|
14482
14466
|
throw new H("Failed to read transaction.");
|
|
14483
|
-
if (!
|
|
14467
|
+
if (!l.product)
|
|
14484
14468
|
throw new H("Failed to load transaction, product not available.");
|
|
14485
|
-
this.currencyCode = (c =
|
|
14486
|
-
product:
|
|
14487
|
-
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,
|
|
14488
14472
|
layouts: [],
|
|
14489
14473
|
stateMutationFunc: async (d) => this.updateTransactionState({
|
|
14490
14474
|
...d,
|
|
14491
|
-
context: { transactionOwnerId:
|
|
14475
|
+
context: { transactionOwnerId: l.transactionOwnerId }
|
|
14492
14476
|
}),
|
|
14493
14477
|
readOnly: t
|
|
14494
14478
|
}, this.initialized = !0;
|
|
@@ -14539,8 +14523,8 @@ class ss {
|
|
|
14539
14523
|
model: this.experienceOptions.product.modelUrl,
|
|
14540
14524
|
contextService: this.experienceOptions.renderableContextService
|
|
14541
14525
|
}));
|
|
14542
|
-
const
|
|
14543
|
-
return await
|
|
14526
|
+
const l = new Me(this, this.experienceOptions);
|
|
14527
|
+
return await l.getWorkflowManager().getInitializationPromise(), l;
|
|
14544
14528
|
}
|
|
14545
14529
|
throw new H("No workflow ID provided.");
|
|
14546
14530
|
}
|
|
@@ -14776,7 +14760,7 @@ class Ys {
|
|
|
14776
14760
|
return [];
|
|
14777
14761
|
}
|
|
14778
14762
|
}
|
|
14779
|
-
var os = /* @__PURE__ */ ((
|
|
14763
|
+
var os = /* @__PURE__ */ ((g) => (g.SelectFrame = "SelectFrame", g.SelectImage = "SelectImage", g.Position = "Position", g))(os || {});
|
|
14780
14764
|
class rs extends X {
|
|
14781
14765
|
constructor(e, t, A) {
|
|
14782
14766
|
var a;
|
|
@@ -15046,8 +15030,8 @@ export {
|
|
|
15046
15030
|
ni as generateCommands,
|
|
15047
15031
|
co as generateSVGWithUnknownColors,
|
|
15048
15032
|
ys as generateStateFromDesignInputSteps,
|
|
15049
|
-
|
|
15050
|
-
|
|
15033
|
+
go as getAttributesFromArrayBuffer,
|
|
15034
|
+
lo as getAxisAlignedBoundingBox,
|
|
15051
15035
|
Wa as getBoundedOffsets,
|
|
15052
15036
|
Bo as getFrameData,
|
|
15053
15037
|
Co as getSvgElement,
|
|
@@ -15070,7 +15054,7 @@ export {
|
|
|
15070
15054
|
uo as registerWindowImplementation,
|
|
15071
15055
|
mo as rehydrateSerializedLayout,
|
|
15072
15056
|
$a as rgbToPms,
|
|
15073
|
-
|
|
15057
|
+
la as setBearerAuthenticationToken,
|
|
15074
15058
|
Qo as setCanvasModule,
|
|
15075
15059
|
Ee as shapeStepService,
|
|
15076
15060
|
qa as shortenUrl,
|